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 1sjj2r-003MCw-SP for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Aug 2024 17:34:54 +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 1sjj2p-0057iv-Id for pgsql-hackers@arkaria.postgresql.org; Thu, 29 Aug 2024 17:34:52 +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 1sjj2n-0057iP-Vw for pgsql-hackers@lists.postgresql.org; Thu, 29 Aug 2024 17:34:51 +0000 Received: from mail-yb1-xb2b.google.com ([2607:f8b0:4864:20::b2b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sjj2P-00233o-Q6 for pgsql-hackers@lists.postgresql.org; Thu, 29 Aug 2024 17:34:49 +0000 Received: by mail-yb1-xb2b.google.com with SMTP id 3f1490d57ef6-e1161ee54f7so1018828276.2 for ; Thu, 29 Aug 2024 10:34:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724952865; x=1725557665; 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=AkrDiUMHtjFHwWvvKu+36AbdkrJdYZgfcPrjgDX8iyM=; b=JbTcDf1DO6PdQjp9UwoppRxznG4P7PeHeFhVmgMg2CD3BzJQ00R76Wy/IspLITa4Lr Gq9lfboii5HvYeBi/uKuv0xzvk+Oc6GQlBu7xYXzlGI7J4vjhb3suEBU7NiMfwW7Tk8T wtAb4WfG7YqL/dmpuuvUm7pqGosykACQUbeSNTeNNm29BSsfxWty/IlezzeeV72PfeR1 aXaOKXKX0t3f/b8flQreqfcGOAroZUw73IIETwjhQ3nUMHxmF6UpKvg7iOUx7IWY/4u1 t9oUifAzyB1PMS4e9jNHqycbaBI3elnWSOlgcqcVISshKr8Qx8qmUhnoOhZWF3BpCQmX c3pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724952865; x=1725557665; 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=AkrDiUMHtjFHwWvvKu+36AbdkrJdYZgfcPrjgDX8iyM=; b=LKKIkcQnUEzlLTdF/I+OXeeq/QzOsCi+S3qZcEeq3/wBI5v6lapFAZvdm72NeGg948 SsFLolg91G8cFTxRZ7zeOLC4oM12XQUcY1Bw5hOEZsHRxPphJ9AXMMIZchJ1Pd/8ICMl hh1gHYR9f8ZqhkFY+rZx7yu6gJdk762e12Za7I04DL52kmTs/GnusLWgnMPTp4n3Veas pAIEyuT53o7Uoiq+xQu+Hm3TXB9NVA9YQalV8JPrK6Bg7nPrO0FNrSW8YSO/eLA7GX74 rl/3Pqd6Io9/Z4qI8kfHfwBhMZ7H+Yq1hTL3Cc3OkSbH3FfhvMjI/q6e9y9j1JrlQVd+ D/kQ== X-Forwarded-Encrypted: i=1; AJvYcCVQ12ATaLgrcLxwk9M+KwGEKR28eYUSGTOvKKsuebNbdFIuT9CMe1PAVZ2qhldbVieE4RGGaI/ZrbMCFJW4@lists.postgresql.org X-Gm-Message-State: AOJu0YyFvsZzrOU6CgDnukio7MWyBPLtQIQj9PKA5MDhbcLS4QfQT0Xs +yEw3uhzstBYzPVFRQqZFQ6RgNaUcYRoDxl50yWHq/Xcxmto2F4iSu6ix7i7ehcmxcslc22PMIV HlHChimKPGoET8HeUPY96YQkrSeM= X-Google-Smtp-Source: AGHT+IFd/kfdar2yXDJByBQvAeKP9B3GqFecC8sdIsS/llww0OMPyoHxRLFxd5rvaNb50kNneC/xD3qrQ5QYsxUelgw= X-Received: by 2002:a05:6902:248b:b0:e1a:21ee:9980 with SMTP id 3f1490d57ef6-e1a5ab8431amr3808765276.24.1724952864626; Thu, 29 Aug 2024 10:34:24 -0700 (PDT) MIME-Version: 1.0 References: <20200924035637.GF28585@paquier.xyz> <20201001033824.GC8130@paquier.xyz> <51a9a68e8a998d04df17417d45c1dbd4@xs4all.nl> <89817942c99da01cd5e7850fe418436b@xs4all.nl> <56ca532c37eb0b540961f74a7bd5db39@xs4all.nl> <8181bd3abc647bdae5a4f78e71e62478a98c75f4.camel@cybertec.at> <9e67d49deb18270eddb95e602c83f02b98459843.camel@cybertec.at> <3b662dc5b615d4c20a55e8e2fbe6fc00fe00609d.camel@cybertec.at> <6996931e8c9edf3b82223e74e92326a7ed06c1d6.camel@cybertec.at> <67aa68a7e6dfb44c0cbbdf7f97cadfede4269ce5.camel@cybertec.at> <04ec666686e9e21cb515617df06885c66f3d34ce.camel@cybertec.at> In-Reply-To: From: Pavel Stehule Date: Thu, 29 Aug 2024 19:33:46 +0200 Message-ID: Subject: Re: proposal: schema variables To: Laurenz Albe Cc: Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000c171a20620d5e23f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c171a20620d5e23f Content-Type: multipart/alternative; boundary="000000000000c171a10620d5e23d" --000000000000c171a10620d5e23d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable =C3=BAt 27. 8. 2024 v 8:52 odes=C3=ADlatel Pavel Stehule napsal: > Hi > > =C3=BAt 27. 8. 2024 v 8:15 odes=C3=ADlatel Laurenz Albe > napsal: > >> On Thu, 2024-08-15 at 07:55 +0200, Pavel Stehule wrote: >> > =C3=BAt 30. 7. 2024 v 21:46 odes=C3=ADlatel Laurenz Albe < >> laurenz.albe@cybertec.at> napsal: >> > > - A general reminder: single line comments should start with a lower >> case >> > > letter and have to period in the end: >> > >> > Should it be "have not to period in the end" ? >> >> I made a typo. I mean "have *no* period in the end". >> >> > I fixed almost all without parts related to psql and executor - there >> almost all >> > current comments break the mentioned rule. So I use the style used in >> these files. >> > I can fix it (if you like it) - or it can be fixed generally in a >> separated patch set. >> >> Thanks. I also noticed that a lot of existing comments break that rule, >> so I think that it is fine if you stick with the way that the surroundin= g >> code does it. >> >> > > - Variable as parameter: >> > > >> > > CREATE VARIABLE var AS date; >> > > LET var =3D current_date; >> > > PREPARE stmt(date) AS SELECT $1; >> > > EXECUTE stmt(var); >> > > ERROR: paramid of PARAM_VARIABLE param is out of range >> > > >> > > Is that working as intended? I don't understand the error message= . >> > >> > fixed in 0002 patch (variables cannot be used as EXECUTE argument) and >> 0014 (enable usage variables as an argument of EXECUTE) >> >> Thanks. >> >> > > > --- a/src/backend/catalog/namespace.c >> > > > +++ b/src/backend/catalog/namespace.c >> > > > [...] >> > > > +/* >> > > > + * IdentifyVariable - try to find variable identified by list o= f >> names. >> > > > [...] >> > > >> > > Perhaps part of the reason why this function is so complicated is >> that >> > > you support things like this: >> > > >> > > CREATE SCHEMA sch; >> > > CREATE TYPE cp AS (a integer, b integer); >> > > CREATE VARIABLE sch.v AS cp; >> > > LET sch.v =3D (1, 2); >> > > SELECT sch.v.b; >> > > b >> > > =E2=95=90=E2=95=90=E2=95=90 >> > > 2 >> > > (1 row) >> > > >> > > test=3D# SELECT test.sch.v.b; >> > > b >> > > =E2=95=90=E2=95=90=E2=95=90 >> > > 2 >> > > (1 row) >> > > >> > > We don't support that for tables: >> > > >> > > CREATE TABLE tab (c cp); >> > > INSERT INTO tab VALUES (ROW(42, 43)); >> > > SELECT tab.c.b FROM tab; >> > > ERROR: cross-database references are not implemented: tab.c.b >> > > >> > > You have to use extra parentheses: >> > > >> > > SELECT (tab.c).b FROM tab; >> > > b >> > > =E2=95=90=E2=95=90=E2=95=90=E2=95=90 >> > > 43 >> > > (1 row) >> > > >> > > I'd say that this should be the same for session variables. >> > > What do you think? >> > >> > I prefer the current state, but I don't have a very strong opinion >> about it. >> > It can save 115 lines of almost trivial code, but I think the user >> experience >> > can be much worse. Using composite types in tables is not too common = a >> > pattern (and when I read some recommendations for Oracle, it is an >> antipattern), >> > but usage of composite variables is common (it can hold a row). >> Moreover, >> > we talked long about possible identifier's collisions, and the pattern >> > schema.variable is very good protection against possible collisions. >> > Probably the pattern catalog.schema.variable.field is not too >> interesting >> > but the support has 50 lines. >> > >> > More, the plpgsql supports pattern label.variable.field, so can be >> little bit >> > unfriendly if session variables doesn't support "similar" pattern >> >> I see your point, and I'm fine with leaving it as it is. >> >> > >> > >> > > - src/backend/commands/session_variable.c >> > > >> > > There is one comment that confuses me and that I did not edit: >> > > >> > > > +Datum >> > > > +GetSessionVariable(Oid varid, bool *isNull, Oid *typid) >> > > > +{ >> > > > + SVariable svar; >> > > > + >> > > > + svar =3D get_session_variable(varid); >> > > > + >> > > > + /* >> > > > + * Although svar is freshly validated in this point, the >> svar->is_valid can >> > > > + * be false, due possible accepting invalidation message >> inside domain >> > > > + * check. Now, the validation is done after lock, that can >> also accept >> > > > + * invalidation message, so validation should be trustful. >> > > > + * >> > > > + * For now, we don't need to repeat validation. Only svar >> should be valid >> > > > + * pointer. >> > > > + */ >> > >> > This comment is related to assertions. Before I had there >> `Assert(svar->is_valid)`, >> > because I expected it. But it was not always true. And although it is >> true, >> > we don't need to validate a variable, because at this moment, the >> variable >> > should be locked, and then we can return content safely. >> >> I guess my main problem is the word "trustful". I don't recognize that >> word. >> Perhaps you can reword the comment along the lines of your above >> explanation. >> > > I'll try to change it > is this better <-->/* <--> * Although svar is freshly validated in this point, the svar->is_valid can <--> * be false, due possible accepting invalidation message inside domain <--> * check. But now, the variable, and all dependencies are locked, so we <--> * don't need to repeat validation. <--> */ > > >> >> > >> > > - src/backend/executor/execMain.c >> > > >> > > > @@ -196,6 +198,51 @@ standard_ExecutorStart(QueryDesc *queryDesc= , >> int eflags) >> > > > Assert(queryDesc->sourceText !=3D NULL); >> > > > estate->es_sourceText =3D queryDesc->sourceText; >> > > > >> > > > + /* >> > > > + * The executor doesn't work with session variables directly= . >> Values of >> > > > + * related session variables are copied to dedicated array, >> and this array >> > > > + * is passed to executor. >> > > > + */ >> > > >> > > Why? Is that a performance measure? The comment should explain >> that. >> > >> > Session variables are volatile internally - some function that uses LE= T >> statements >> > can be called more times inside a query. This behavior is not >> consistent with >> > plpgsql's variables or external parameters. And if we want to support >> parallel >> > queries, then volatile session variables can be pretty messy (and >> unusable). >> > If we want the same behaviour for queries with or without parallel >> support, >> > then the session variables should be "stable" (like stable functions). >> > Simple implementation is using "snapshot" of values of used session >> variables >> > when query is started. This "snapshot" is immutable, so we don't need >> to make >> > a copy more times. >> > >> > I changed this comment >> >> Thanks. >> >> > > - parallel safety >> > > >> > > > --- a/src/backend/optimizer/util/clauses.c >> > > > +++ b/src/backend/optimizer/util/clauses.c >> > > > @@ -935,6 +936,13 @@ max_parallel_hazard_walker(Node *node, >> max_parallel_hazard_context *context) >> > > > if (param->paramkind =3D=3D PARAM_EXTERN) >> > > > return false; >> > > > >> > > > + /* We doesn't support passing session variables to >> workers */ >> > > > + if (param->paramkind =3D=3D PARAM_VARIABLE) >> > > > + { >> > > > + if (max_parallel_hazard_test(PROPARALLEL_RESTRICTED, >> context)) >> > > > + return true; >> > > > + } >> > > >> > > Even if a later patch alleviates that restriction, this patch >> should document that >> > > session variables imply "parallel restricted". I have added that >> to doc/src/sgml/parallel.sgml. >> > > >> > >> > merged (and removed in 0015) >> >> Thanks. >> >> >> I hope I can do some more review at some point in the future... >> >> I sincerely hope that this patch set gets merged at some point. >> The big obstacle is that it is so large. That's probably because it is >> pretty >> feature-complete (but, as we have found, not totally free of bugs). >> > > Any feature that builds its own system catalog cannot be short. The first > two patches have 300KB, like all others and just basic support for readin= g > and writing. All other features have 300KB. On second hand almost all cod= e > is simple, and there are no changes in critical parts of Postgres. The si= ze > and complexity of JSONPath is level higher. I can throw 200KB from anothe= r > 300KB patch set which can be better for review, but it can be harder to > maintain this patch set. I'll try it, and I'll send a reduced version. > > >> Judging from the amount of time I put into my review so far, I guess tha= t >> this >> patch set would keep a committer busy for several weeks. Perhaps the >> only way to >> get this done would be to make you a committer... >> > > :-) > > Unfortunately, I am very bad at languages, I had a lot of problems in > basic school just with Czech lang, Russian and English was more terrible)= - > so I very appreciate your work on this patch. > > Thank you very much > > Pavel > Regards Pavel > > >> Yours, >> Laurenz Albe >> > --000000000000c171a10620d5e23d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
=C3=BAt 27. 8. 2024 v=C2=A08:52 odes= =C3=ADlatel Pavel Stehule <pavel.stehule@gmail.com> napsal:
Hi
<= br>
=C3=BAt= 27. 8. 2024 v=C2=A08:15 odes=C3=ADlatel Laurenz Albe <laurenz.albe@cybertec.at&g= t; napsal:
On Th= u, 2024-08-15 at 07:55 +0200, Pavel Stehule wrote:
> =C3=BAt 30. 7. 2024 v=C2=A021:46 odes=C3=ADlatel Laurenz Albe <laurenz.albe@cybe= rtec.at> napsal:
> > - A general reminder: single line comments should start with a lo= wer case
> > =C2=A0 letter and have to period in the end:
>
> Should it be "have not to period in the end" ?

I made a typo.=C2=A0 I mean "have *no* period in the end".

> I fixed almost all without parts related to psql and executor - there = almost all
> current comments break the mentioned rule. So I use the style used in = these files.
> I can fix it (if you like it) - or it can be fixed generally in a sepa= rated patch set.

Thanks.=C2=A0 I also noticed that a lot of existing comments break that rul= e,
so I think that it is fine if you stick with the way that the surrounding code does it.

> > - Variable as parameter:
> >
> > =C2=A0 CREATE VARIABLE var AS date;
> > =C2=A0 LET var =3D current_date;
> > =C2=A0 PREPARE stmt(date) AS SELECT $1;
> > =C2=A0 EXECUTE stmt(var);
> > =C2=A0 ERROR:=C2=A0 paramid of PARAM_VARIABLE param is out of ran= ge
> >
> > =C2=A0 Is that working as intended?=C2=A0 I don't understand = the error message.
>
> fixed in 0002 patch (variables cannot be used as EXECUTE argument) and= 0014 (enable usage variables as an argument of EXECUTE)

Thanks.

> > =C2=A0 > --- a/src/backend/catalog/namespace.c
> > =C2=A0 > +++ b/src/backend/catalog/namespace.c
> > =C2=A0 > [...]
> > =C2=A0 > +/*
> > =C2=A0 > + * IdentifyVariable - try to find variable identifie= d by list of names.
> > =C2=A0 > [...]
> >
> > =C2=A0 Perhaps part of the reason why this function is so complic= ated is that
> > =C2=A0 you support things like this:
> >
> > =C2=A0 =C2=A0 CREATE SCHEMA sch;
> > =C2=A0 =C2=A0 CREATE TYPE cp AS (a integer, b integer);
> > =C2=A0 =C2=A0 CREATE VARIABLE sch.v AS cp;
> > =C2=A0 =C2=A0 LET sch.v =3D (1, 2);
> > =C2=A0 =C2=A0 SELECT sch.v.b;
> > =C2=A0 =C2=A0 =C2=A0b
> > =C2=A0 =C2=A0 =E2=95=90=E2=95=90=E2=95=90
> > =C2=A0 =C2=A0 =C2=A02
> > =C2=A0 =C2=A0 (1 row)
> >
> > =C2=A0 =C2=A0 test=3D# SELECT test.sch.v.b;
> > =C2=A0 =C2=A0 =C2=A0b
> > =C2=A0 =C2=A0 =E2=95=90=E2=95=90=E2=95=90
> > =C2=A0 =C2=A0 =C2=A02
> > =C2=A0 =C2=A0 (1 row)
> >
> > =C2=A0 We don't support that for tables:
> >
> > =C2=A0 =C2=A0 CREATE TABLE tab (c cp);
> > =C2=A0 =C2=A0 INSERT INTO tab VALUES (ROW(42, 43));
> > =C2=A0 =C2=A0 SELECT tab.c.b FROM tab;
> > =C2=A0 =C2=A0 ERROR:=C2=A0 cross-database references are not impl= emented: tab.c.b
> >
> > =C2=A0 You have to use extra parentheses:
> >
> > =C2=A0 =C2=A0 SELECT (tab.c).b FROM tab;
> > =C2=A0 =C2=A0 =C2=A0b=C2=A0
> > =C2=A0 =C2=A0 =E2=95=90=E2=95=90=E2=95=90=E2=95=90
> > =C2=A0 =C2=A0 =C2=A043
> > =C2=A0 =C2=A0 (1 row)
> >
> > =C2=A0 I'd say that this should be the same for session varia= bles.
> > =C2=A0 What do you think?
>
> I prefer the current state, but I don't have a very strong opinion= about it.
> It can save 115 lines of almost trivial code, but I think the user exp= erience
> can be much worse.=C2=A0 Using composite types in tables is not too co= mmon a
> pattern (and when I read some recommendations for Oracle, it is an ant= ipattern),
> but usage of composite variables is common (it can hold a row). Moreov= er,
> we talked long about possible identifier's collisions, and the pat= tern
> schema.variable is very good protection against possible collisions. > Probably the pattern catalog.schema.variable.field is not too interest= ing
> but the support has 50 lines.
>
> More, the plpgsql supports pattern label.variable.field, so can be lit= tle bit
> unfriendly if session variables doesn't support "similar"= ; pattern

I see your point, and I'm fine with leaving it as it is.

>
>
> > - src/backend/commands/session_variable.c
> >
> > =C2=A0 There is one comment that confuses me and that I did not e= dit:
> >
> > =C2=A0 > +Datum
> > =C2=A0 > +GetSessionVariable(Oid varid, bool *isNull, Oid *typ= id)
> > =C2=A0 > +{
> > =C2=A0 > +=C2=A0 =C2=A0SVariable=C2=A0 =C2=A0svar;
> > =C2=A0 > +
> > =C2=A0 > +=C2=A0 =C2=A0svar =3D get_session_variable(varid); > > =C2=A0 > +
> > =C2=A0 > +=C2=A0 =C2=A0/*
> > =C2=A0 > +=C2=A0 =C2=A0 * Although svar is freshly validated i= n this point, the svar->is_valid can
> > =C2=A0 > +=C2=A0 =C2=A0 * be false, due possible accepting inv= alidation message inside domain
> > =C2=A0 > +=C2=A0 =C2=A0 * check. Now, the validation is done a= fter lock, that can also accept
> > =C2=A0 > +=C2=A0 =C2=A0 * invalidation message, so validation = should be trustful.
> > =C2=A0 > +=C2=A0 =C2=A0 *
> > =C2=A0 > +=C2=A0 =C2=A0 * For now, we don't need to repeat= validation. Only svar should be valid
> > =C2=A0 > +=C2=A0 =C2=A0 * pointer.
> > =C2=A0 > +=C2=A0 =C2=A0 */
>
> This comment is related to assertions. Before I had there `Assert(svar= ->is_valid)`,
> because I expected it. But it was not always true. And although it is = true,
> we don't need to validate a variable, because at this moment, the = variable
> should be locked, and then we can return content safely.

I guess my main problem is the word "trustful".=C2=A0 I don't= recognize that word.
Perhaps you can reword the comment along the lines of your above explanatio= n.

I'll try to change it

is this better

=
<-->/*
<--> * Although svar is freshly validated in thi= s point, the svar->is_valid can
<--> * be false, due possible a= ccepting invalidation message inside domain
<--> * check. But now,= the variable, and all dependencies are locked, so we
<--> * don&#= 39;t need to repeat validation.
<--> */
=C2=A0
=
=C2=A0

>
> > - src/backend/executor/execMain.c
> >
> > =C2=A0 > @@ -196,6 +198,51 @@ standard_ExecutorStart(QueryDesc= *queryDesc, int eflags)
> > =C2=A0 >=C2=A0 =C2=A0 =C2=A0Assert(queryDesc->sourceText != =3D NULL);
> > =C2=A0 >=C2=A0 =C2=A0 =C2=A0estate->es_sourceText =3D query= Desc->sourceText;
> > =C2=A0 >
> > =C2=A0 > +=C2=A0 =C2=A0/*
> > =C2=A0 > +=C2=A0 =C2=A0 * The executor doesn't work with s= ession variables directly. Values of
> > =C2=A0 > +=C2=A0 =C2=A0 * related session variables are copied= to dedicated array, and this array
> > =C2=A0 > +=C2=A0 =C2=A0 * is passed to executor.
> > =C2=A0 > +=C2=A0 =C2=A0 */
> >
> > =C2=A0 Why?=C2=A0 Is that a performance measure?=C2=A0 The commen= t should explain that.
>
> Session variables are volatile internally - some function that uses LE= T statements
> can be called more times inside a query. This behavior is not consiste= nt with
> plpgsql's variables or external parameters. And if we want to supp= ort parallel
> queries, then volatile session variables can be pretty messy (and unus= able).
> If we want the same behaviour for queries with or without parallel sup= port,
> then the session variables should be "stable" (like stable f= unctions).
> Simple implementation is using "snapshot" of values of used = session variables
> when query is started. This "snapshot" is immutable, so we d= on't need to make
> a copy more times.
>
> I changed this comment

Thanks.

> > - parallel safety
> >
> > =C2=A0 > --- a/src/backend/optimizer/util/clauses.c
> > =C2=A0 > +++ b/src/backend/optimizer/util/clauses.c
> > =C2=A0 > @@ -935,6 +936,13 @@ max_parallel_hazard_walker(Node = *node, max_parallel_hazard_context *context)
> > =C2=A0 >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (param->paramk= ind =3D=3D PARAM_EXTERN)
> > =C2=A0 >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return= false;
> > =C2=A0 >
> > =C2=A0 > +=C2=A0 =C2=A0 =C2=A0 =C2=A0/* We doesn't support= passing session variables to workers */
> > =C2=A0 > +=C2=A0 =C2=A0 =C2=A0 =C2=A0if (param->paramkind = =3D=3D PARAM_VARIABLE)
> > =C2=A0 > +=C2=A0 =C2=A0 =C2=A0 =C2=A0{
> > =C2=A0 > +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (max_par= allel_hazard_test(PROPARALLEL_RESTRICTED, context))
> > =C2=A0 > +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0return true;
> > =C2=A0 > +=C2=A0 =C2=A0 =C2=A0 =C2=A0}
> >
> > =C2=A0 Even if a later patch alleviates that restriction, this pa= tch should document that
> > =C2=A0 session variables imply "parallel restricted".= =C2=A0 I have added that to doc/src/sgml/parallel.sgml.
> >
>
> merged (and removed in 0015)

Thanks.


I hope I can do some more review at some point in the future...

I sincerely hope that this patch set gets merged at some point.
The big obstacle is that it is so large.=C2=A0 That's probably because = it is pretty
feature-complete (but, as we have found, not totally free of bugs).

Any feature that builds its own system catalog= cannot be short. The first two patches have 300KB, like all others and jus= t basic support for reading and writing. All other features have 300KB. On = second hand almost all code is simple, and there are no changes in critical= parts of Postgres. The size and complexity of JSONPath is level higher. I = can throw 200KB from another 300KB patch set which can be better for review= , but it can be harder to maintain this patch set. I'll try it, and I&#= 39;ll send a reduced version.


Judging from the amount of time I put into my review so far, I guess that t= his
patch set would keep a committer busy for several weeks.=C2=A0 Perhaps the = only way to
get this done would be to make you a committer...

=
:-)
=C2=A0
Unfortunately, I am very bad = at languages, I had a lot of problems in basic school just with Czech lang,= Russian and English was more terrible) - so I very appreciate your work on= this patch.

Thank you very much
Pavel

Regards

Pavel
=C2=A0


Yours,
Laurenz Albe
--000000000000c171a10620d5e23d-- --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0020-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20240829-0020-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrp80 RnJvbSAyYjRlMzE1MzdkZTJmYzkwMmEyMzA3ZDU4NTAxM2JhN2QyZGZkMmY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDIxIEp1bCAyMDI0IDE3OjA0OjQxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMC8yMF0gcGdfcmVzdG9yZSAtQSwgLS12YXJpYWJsZQoKcG9zc2liaWxpdHkgdG8gcmVz dG9yZSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9wZ19yZXN0b3JlLnNnbWwgfCAxMSArKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X3Jlc3RvcmUuYyAgICAgfCAgOSArKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdf cmVzdG9yZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3JlLnNnbWwKaW5kZXggYjhi MjdlMTcxOWUuLjdhM2E0ZWFiZTI1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jl c3RvcmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2 LDYgKzEwNiwxNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVy bT48b3B0aW9uPi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zhcmlh YmxlPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0t dmFyaWFibGU9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8 L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11 bHRpcGxlIHNlc3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBt dWx0aXBsZSA8b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+ PG9wdGlvbj4tLWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX3Jlc3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggZGYx MTk1OTFjY2EuLmE3YzNhZTliZmQxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVz dG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTEwNSw2ICsxMDUs NyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJ0cmlnZ2VyIiwgMSwgTlVMTCwg J1QnfSwKIAkJeyJ1c2UtbGlzdCIsIDEsIE5VTEwsICdMJ30sCiAJCXsidXNlcm5hbWUiLCAxLCBO VUxMLCAnVSd9LAorCQl7InZhcmlhYmxlIiwgMSwgTlVMTCwgJ0EnfSwKIAkJeyJ2ZXJib3NlIiwg MCwgTlVMTCwgJ3YnfSwKIAkJeyJzaW5nbGUtdHJhbnNhY3Rpb24iLCAwLCBOVUxMLCAnMSd9LAog CkBAIC0xNTUsNyArMTU2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCX0KIAl9 CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWNDZDplZjpGOmg6STpq OmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4MSIsCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmco YXJnYywgYXJndiwgIkE6YWNDZDplZjpGOmg6STpqOmxMOm46TjpPcDpQOlJzUzp0OlQ6VTp2d1d4 MSIsCiAJCQkJCQkJY21kb3B0cywgTlVMTCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAt MTYzLDYgKzE2NCwxMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNhc2UgJ2En OgkJCS8qIER1bXAgZGF0YSBvbmx5ICovCiAJCQkJb3B0cy0+ZGF0YU9ubHkgPSAxOwogCQkJCWJy ZWFrOworCQkJY2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9 IDE7CisJCQkJb3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9h cHBlbmQoJm9wdHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNl ICdjJzoJCQkvKiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwog CQkJCW9wdHMtPmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDYzLDYgKzQ2OSw3IEBA IHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250 cm9sbGluZyB0aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkg ICAgICAgICAgICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJp bnRmKF8oIiAgLUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Np b24gdmFyaWFibGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAg ICAgIGNsZWFuIChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7 CiAJcHJpbnRmKF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRh cmdldCBkYXRhYmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAg ICAgICAgZXhpdCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40 Ni4wCgo= --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0019-transactional-variables.patch" Content-Disposition: attachment; filename="v20240829-0019-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrq41 RnJvbSAwMDc1ZTc3ZGM0OGViN2FkMmQ5YzU2OTI0ZWEyZWMzMzkxODFiNzEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDIyOjQwOjU1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxOS8yMF0gdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKClRoaXMgY29tbWl0IGltcGxlbWVu dHMgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMuIFRoZSBjb250ZW50IG9mIHRyYW5zYWN0aW9uYWwK c2Vzc2lvbiB2YXJpYWJsZXMgaXMgc2Vuc2l0aXZlIHRvIHRyYW5zYWN0aW9ucyBhbmQgc3VidHJh bnNhY3Rpb25zLiBBbnkKdHJhbnNhY3Rpb25hbCB2YXJpYWJsZSBob2xkcyBhIGhpc3Rvcnkgb2Yg dmFsdWVzIG5lY2Vzc2FyeSBmb3IgcmV2ZXJ0LiBUaGlzIGhpc3RvcnkKaXMgY2xlYW5lZCAocHVy Z2VkKSB3aGVuIGEpIHdlIHJlYWQgdGhlIHZhcmlhYmxlLCBiKSB3aGVuIHRoZSB0cmFuc2FjdGlv biBpcyBmaW5pc2hlZC4KCldlIGRvbid0IHRyeSB0byBwdXJnZSwgd2hlbiB0aGUgbGFzdCBtb2Rp ZmljYXRpb24gb2YgYSB2YXJpYWJsZSBpcyBmcm9tCmN1cnJlbnQgc3VidHJhbnNhY3Rpb24sIG9y IHdoZW4gcHVyZ2Ugd2FzIHByb2Nlc3NlZCBpbiBjdXJyZW50IHN1YnRyYW5zYWN0aW9uLgoKVGhp cyBwYXRjaCBpcyBiYXNlZCBvbiBteSB3b3JrIGZyb20gRmViIDIwMjAgYW5kIGl0IGlzIHJlbGF0 ZWQgdG8gZGlzY3Vzc2lvbgphYm91dCBmZWF0dXJlcyByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLiBOb3csIHdoZW4gdGhlIGFsbCBmZWF0dXJlcyBhcmUKc2VwYXJhdGVkIHRvIGlzb2xhdGVk IHBhdGNoZXMgSSBjYW4gcmV2aXRhbGl6ZSB0aGlzIHBhdGNoLCBiZWNhdXNlIGl0IGRvZXNuJ3QK aW5jcmVhc2UgY29tcGxleGl0eSBvZiBiYXNpYyBwYXRjaGVzLgoKVW5saWtlIG90aGVyIHBhdGNo ZXMsIHRoaXMgcGF0Y2ggaXMgd2l0aG91dCBhbnkgcmV2aWV3IGF0IHRoaXMgbW9tZW50IChGZWIg MjAyNCksCmJ1dCB0aGUgZmVhdHVyZSBzaG91bGQgYmUgZnVsbHkgZnVuY3Rpb25hbCBmb3IgcGVv cGxlIHdobyBhcmUgaW50ZXJlc3RlZCBhYm91dAp0aGlzIGZlYXR1cmUgKGZvciB0ZXN0aW5nKS4K LS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTIg KwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDEwICst CiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMzAxICsrKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgIDUwICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAg IHwgIDM2ICsrKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAg fCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICst LQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTEwICsr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1 OCArKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA1OTIgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCA0NTEyYzQ1MjViZi4uOWUwNDIwZjdjZjIgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC05ODUxLDYgKzk4NTEsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+ Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxzdHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2Vu dHJ5PgorICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzIDxx dW90ZT50cmFuc2FjdGlvbmFsPC9xdW90ZT4uIEluIHRoZSBjYXNlCisgICAgICAgb2YgYSB0cmFu c2FjdGlvbiByb2xsYmFjaywgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgYXJlIHJlc2V0IHRvIHRo ZQorICAgICAgIHZhbHVlIHRoZXkgaGFkIHdoZW4gdGhlIHRyYW5zYWN0aW9uIHN0YXJ0ZWQuIFRo ZSBkZWZhdWx0IHZhbHVlIGlzCisgICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAg ICAgPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAg ICAgICAgPHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8 L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCAwMDkzODc0M2Mw ZC4uYjczZjAzMmRkYmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsNyArMjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFC TEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJ TU1VVEFCTEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIE5P VCBOVUxMIF0gWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0 X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTQ3LDYg KzQ3LDE0IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjCiAgICBzYW1lIGFzIHJlZ3VsYXIgdmFy aWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+Cisg ICBXaGVuIGEgc2NoZW1hIHZhcmlhYmxlIGlzIGNyZWF0ZWQgd2l0aCBhCisgICA8Y29tbWFuZD5D UkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCwgdGhlIHZhcmlh YmxlcworICAgY29udGVudCBjaGFuZ2VzIGFyZSB0cmFuc2FjdGlvbmFsOiBpbiBjYXNlIG9mIHJv bGxiYWNrLCB0aGV5IGFyZSByZXNldCB0bworICAgdGhlaXIgdmFsdWUgYXQgdGhlIGJlZ2lubmlu ZyBvZiB0aGUgdHJhbnNhY3Rpb24gb3IgdGhlIGxhdGVzdCBzdWJ0cmFuc2FjdGlvbi4KKyAgIFRo ZSB2YXJpYWJsZSBjb250ZW50IGlzIG9ubHkgaG9sZCBpbiBtZW1vcnksIGFuZCB0aHVzIGlzIG5v dCBwZXJzaXN0ZW50LgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CiAgICBjb21t YW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCAzNGIwYjk3MTUxNi4uZjlh NTI4MWVjYzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQyLDYgKzQyLDcgQEAg c3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUs CiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkJIGJvb2wgbm90X251bGws CiAJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCisJCQkJCQkJCQkgYm9vbCBpc190cmFuc2Fj dCwKIAkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVu ZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIApAQCAtNTksNiArNjAsNyBAQCBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCiAJCQkJ Ym9vbCBub3RfbnVsbCwKIAkJCQlib29sIGlzX2ltbXV0YWJsZSwKKwkJCQlib29sIGlzX3RyYW5z YWN0LAogCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CkBAIC0xMjMsNiArMTI1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9u IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKG5vdF9udWxsKTsKIAl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlz X2ltbXV0YWJsZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXN0cmFuc2FjdCAtIDFd ID0gQm9vbEdldERhdHVtKGlzX3RyYW5zYWN0KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAK IAlpZiAodmFyRGVmZXhwcikKQEAgLTI2Nyw2ICsyNzAsNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHN0 bXQtPmlmX25vdF9leGlzdHMsCiAJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCiAJCQkJCQkJICAg c3RtdC0+aXNfaW1tdXRhYmxlLAorCQkJCQkJCSAgIHN0bXQtPmlzX3RyYW5zYWN0LAogCQkJCQkJ CSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggYTg0YzUyYTVjZDAuLmM2 ZTRkNTI0YTg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC00 Nyw2ICs0NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIAlTdWJU cmFuc2FjdGlvbklkIGRlbGV0aW5nX3N1YmlkOwogfSBTVmFyaWFibGVYQWN0RHJvcEl0ZW07CiAK Ky8qCisgKiBVc2VkIGZvciB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcy4gSG9sZHMgcHJldiB2ZXJz aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBQcmV2VmFsdWUKK3sKKwlEYXR1bQkJdmFsdWU7CisJ Ym9vbAkJaXNudWxsOworCisJU3ViVHJhbnNhY3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwlzdHJ1 Y3QgUHJldlZhbHVlICpwcmV2X3ZhbHVlOworfSBQcmV2VmFsdWU7CisKIC8qCiAgKiBUaGUgdmFs dWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2 YXRlIG1lbW9yeQogICogaW4gdGhlIGRlZGljYXRlZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVN ZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQuCkBAIC02OCw2ICs4MSwyNSBAQCB0eXBlZGVm IHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJaXNudWxsOwogCURhdHVtCQl2YWx1ZTsKIAor CS8qCisJICogV2UgZG9uJ3QgbmVlZCBzdGFjayB2ZXJzaW9ucyBtb2RpZmllZCBpbiBzYW1lIHN1 YnRyYW5zYWN0aW9uLgorCSAqIFVzZWQgYnkgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgb25seS4g VGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uYWwKKwkgKiB2YXJpYWJsZSBjYW4gYmUgcmV0dXJuZWQg aW1tZWRpYXRlbHkgd2hlbiBtb2RpZnlfc3ViaWQgaXMgc2FtZQorCSAqIGxpa2UgY3VycmVudCBz dWJpZC4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKworCS8qCisJICog V2hlbiB0aGUgbW9kaWZ5X3N1YmlkIGlzIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgc3ViaWQsIHRo ZW4KKwkgKiB3ZSBuZWVkIHRvIHJlY2hlY2sgdmVyc2lvbnMgYW5kIHRocm93IHZlcnNpb25zIHJl bGF0ZWQgdG8KKwkgKiByZXZlcnRlZCB0cmFuc2FjdGlvbnMuIFdoZW4gcHVyZ2Vfc3ViaWQgaXMg c2FtZSBsaWtlIGN1cnJlbnQgc3ViaWQKKwkgKiB3ZSBjYW4gcmV0dXJuIHRoZSB2YWx1ZSBvZiB0 cmFuc2FjdGlvbiB2YXJpYWJsZSB3aXRob3V0IHRoaXMKKwkgKiByZWNoZWNrLgorCSAqLworCVN1 YlRyYW5zYWN0aW9uSWQgcHVyZ2Vfc3ViaWQ7CisKKwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOwor CiAJT2lkCQkJdHlwaWQ7CiAJaW50MTYJCXR5cGxlbjsKIAlib29sCQl0eXBieXZhbDsKQEAgLTg2 LDYgKzExOCw3IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAogCWJvb2wJCW5vdF9u dWxsOwogCWJvb2wJCWlzX2ltbXV0YWJsZTsKKwlib29sCQlpc190cmFuc2FjdDsKIAogCWJvb2wJ CXJlc2V0X2F0X2VveDsKIApAQCAtMTI1LDYgKzE1OCw5IEBAIHN0YXRpYyBib29sIG5lZWRzX3Zh bGlkYXRpb24gPSBmYWxzZTsKICAqLwogc3RhdGljIGJvb2wgaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7CiAKKy8qIHRydWUsIHdoZW4gdHJhbnNhY3Rpb25h bCB2YXJpYWJsZXMgd2FzIG1vZGlmaWVkICovCitzdGF0aWMgYm9vbCBoYXNfbW9kaWZpZWRfdHJh bnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9mIHNl c3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAgKiBp cyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVuIHRo ZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0xNDAsNiArMTc2LDcgQEAgc3RhdGljIExpc3QgKnhh Y3RfZHJvcF9pdGVtcyA9IE5JTDsKIAogc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lv bl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyBib29sIHB1cmdlX3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIpOwogCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24g Zm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgpAQCAtMjkzLDggKzMzMCwyNSBAQCB1 bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKICAqIFJlbGVh c2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCiBzdGF0aWMgdm9pZAotZnJlZV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQorZnJlZV9zZXNzaW9uX3ZhcmlhYmxl X3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sIGRlZXBfZnJlZSkKIHsKKwlpZiAoZGVlcF9mcmVl KQorCXsKKwkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwkJUHJl dlZhbHVlICpuZXh0X3ZhbHVlOworCisJCXdoaWxlIChwcmV2X3ZhbHVlKQorCQl7CisJCQlpZiAo IXN2YXItPnR5cGJ5dmFsKQorCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihwcmV2X3ZhbHVlLT52 YWx1ZSkpOworCisJCQluZXh0X3ZhbHVlID0gcHJldl92YWx1ZS0+cHJldl92YWx1ZTsKKwkJCXBm cmVlKHByZXZfdmFsdWUpOworCisJCQlwcmV2X3ZhbHVlID0gbmV4dF92YWx1ZTsKKwkJfQorCX0K KwogCS8qIGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCiAJaWYgKCFzdmFyLT5pc251bGwpCiAJ ewpAQCAtMzkzLDcgKzQ0Nyw3IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJv b2wgYXRFT1gpCiAJCQl7CiAJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKIAotCQkJCWZy ZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFi bGVfdmFsdWUoc3ZhciwgdHJ1ZSk7CiAJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJp ZCwgSEFTSF9SRU1PVkUsIE5VTEwpOwogCQkJCXN2YXIgPSBOVUxMOwogCQkJfQpAQCAtNDI5LDYg KzQ4Myw5NCBAQCByZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9p ZCkKIAloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIH0K IAorLyoKKyAqIHJlbW92ZSBwcmV2IHZhbHVlcyBhdCBlb3gKKyAqLworc3RhdGljIHZvaWQKK3Jl bW92ZV9wcmV2X3ZhbHVlc19hdF9lb3goYm9vbCBpc0NvbW1pdCkKK3sKKwlIQVNIX1NFUV9TVEFU VVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0 dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJs ZXMgKi8KKwlpZiAoIWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcykKKwkJcmV0 dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsK KwkJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmIHN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlk U3ViVHJhbnNhY3Rpb25JZCkKKwkJeworCQkJaWYgKGlzQ29tbWl0KQorCQkJeworCQkJCWlmIChw dXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpwcmV2 X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKworCQkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJ CQkJeworCQkJCQkJUHJldlZhbHVlICpjdXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQkJ aWYgKCFzdmFyLT50eXBieXZhbCAmJiAhY3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJCXBmcmVl KERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCQlwcmV2X3ZhbHVl ID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJ CQl9CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJz LCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJ CQkJfQorCQkJfQorCQkJZWxzZQorCQkJeworCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2 YXItPnByZXZfdmFsdWU7CisKKwkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCVBy ZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJCQkJaWYgKGN1cnJlbnRfcHYt Pm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJCQkJCWJyZWFrOwor CisJCQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJ CXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCXByZXZf dmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQkJCQlwZnJlZShjdXJyZW50X3B2KTsK KwkJCQl9CisKKwkJCQlpZiAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCXN2YXItPnZhbHVlID0g cHJldl92YWx1ZS0+dmFsdWU7CisJCQkJCXN2YXItPmlzbnVsbCA9IHByZXZfdmFsdWUtPmlzbnVs bDsKKworCQkJCQlwZnJlZShwcmV2X3ZhbHVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJ CQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5V TEwpOworCQkJCQlzdmFyID0gTlVMTDsKKwkJCQl9CisJCQl9CisKKwkJCS8qIHdoZW4gc3ZhciBp cyBzdGlsbCB2YWxpZCAobm90IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaWYgKHN2 YXIpCisJCQl7CisJCQkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQ7CisJCQkJc3Zhci0+cHJldl92YWx1ZSA9IE5VTEw7CisJCQl9CisJCX0KKwl9CisKKwloYXNf bW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00NzYs NiArNjE4LDggQEAgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQog CQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKIAl9CiAKKwlyZW1vdmVf cHJldl92YWx1ZXNfYXRfZW94KGlzQ29tbWl0KTsKKwogCS8qCiAJICogV2UgaGF2ZSB0byBjbGVh biB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUgZHJvcHBlZAogCSAq IG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KQEAgLTYyMSw2ICs3NjUs NyBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJv b2wgaXNfd3JpdGUpCiAKIAlzdmFyLT5ub3RfbnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CiAJ c3Zhci0+aXNfaW1tdXRhYmxlID0gdmFyZm9ybS0+dmFyaXNpbW11dGFibGU7CisJc3Zhci0+aXNf dHJhbnNhY3QgPSB2YXJmb3JtLT52YXJpc3RyYW5zYWN0OwogCiAJc3Zhci0+aXNfZG9tYWluID0g KGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwpAQCAtNjQ2LDYgKzc5MSwxNyBAQCBzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUp CiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKIAorCWlm IChzdmFyLT5pc190cmFuc2FjdCkKKwl7CisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEdldEN1cnJl bnRTdWJUcmFuc2FjdGlvbklkKCk7CisJCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3Zhcmlh YmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1 YlRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2Fj dGlvbklkOworCXN2YXItPnByZXZfdmFsdWUgPSBOVUxMOworCiAJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCiAJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxF T0lELApAQCAtNjc5LDYgKzgzNSw2OSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CiB9CiAKKy8qCisgKiBUcnkgdG8gcmVtb3ZlIGFsbCBwcmV2aW91cyB2ZXJzaW9ucyByZWxhdGVk IHRvIHJldmVydGVkIHRyYW5zYWN0aW9ucy4KKyAqIFJldHVybnMgdHJ1ZSwgd2hlbiB2YWxpZCB2 ZXJzaW9uIHdhcyBmb3VuZC4KKyAqLworc3RhdGljIGJvb2wKK3B1cmdlX3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIpCit7CisJU3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkOwor CVByZXZWYWx1ZQkgICAqcHJldl92YWx1ZTsKKwlib29sCQkJZm91bmQgPSB0cnVlOworCisJQXNz ZXJ0KHN2YXItPmlzX3RyYW5zYWN0KTsKKworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gSW52 YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCXJldHVybiB0cnVlOworCisJY3VycmVudF9zdWJpZCA9 IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1Ymlk ID09IGN1cnJlbnRfc3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKHN2YXItPnB1cmdlX3N1 YmlkID09IGN1cnJlbnRfc3ViaWQpCisJCXJldHVybiB0cnVlOworCisJaWYgKFN1YlRyYW5zYWN0 aW9uSXNBY3RpdmUoc3Zhci0+bW9kaWZ5X3N1YmlkKSkKKwl7CisJCXN2YXItPnB1cmdlX3N1Ymlk ID0gY3VycmVudF9zdWJpZDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcHJldl92YWx1ZSA9IHN2 YXItPnByZXZfdmFsdWU7CisKKwl3aGlsZSAocHJldl92YWx1ZSkKKwl7CisJCVByZXZWYWx1ZSAq Y3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJp ZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCB8fAorCQkJU3ViVHJhbnNhY3Rpb25Jc0FjdGl2 ZShjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQpKQorCQl7CisJCQlzdmFyLT52YWx1ZSA9IGN1cnJl bnRfcHYtPnZhbHVlOworCQkJc3Zhci0+aXNudWxsID0gY3VycmVudF9wdi0+aXNudWxsOworCQkJ c3Zhci0+bW9kaWZ5X3N1YmlkID0gY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkOworCisJCQlwcmV2 X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCXBmcmVlKGN1cnJlbnRfcHYpOwor CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCisJCWlmICghc3Zhci0+dHlwYnl2 YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJy ZW50X3B2LT52YWx1ZSkpOworCisJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVl OworCQlwZnJlZShjdXJyZW50X3B2KTsKKwl9CisKKwlzdmFyLT5wcmV2X3ZhbHVlID0gcHJldl92 YWx1ZTsKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisKKwlyZXR1cm4gZm91 bmQ7Cit9CisKIC8qCiAgKiBBc3NpZ24gYSBuZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFi bGUuICBJdCBpcyBjb3BpZWQgdG8KICAqIFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNz YXJ5LgpAQCAtNjkxLDYgKzkxMCwxMCBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUg c3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCURhdHVtCQluZXd2YWw7CiAJU1Zhcmlh YmxlRGF0YSBsb2NzdmFyLAogCQkJICAgKl9zdmFyOworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVu dF9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJU3ViVHJhbnNhY3Rpb25J ZCBwcmV2X3B1cmdlX3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJYm9vbAkJc2F2 ZV9wcmV2X3ZhbHVlOworCVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CiAKIAlBc3NlcnQoc3Zhcik7 CiAJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKQEAgLTcyNiw2ICs5NDks MjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBi b29sIGlzbnVsbCkKIAllbHNlCiAJCV9zdmFyID0gc3ZhcjsKIAorCWlmIChfc3Zhci0+aXNfdHJh bnNhY3QgJiYgX3N2YXItPmNyZWF0ZV9sc24gPT0gc3Zhci0+Y3JlYXRlX2xzbikKKwl7CisJCUFz c2VydChzdmFyLT50eXBpZCA9PSBfc3Zhci0+dHlwaWQpOworCQlBc3NlcnQoc3Zhci0+dHlwYnl2 YWwgPT0gX3N2YXItPnR5cGJ5dmFsKTsKKwkJQXNzZXJ0KHN2YXItPnR5cGxlbiA9PSBfc3Zhci0+ dHlwbGVuKTsKKworCQlzYXZlX3ByZXZfdmFsdWUgPSBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gY3Vy cmVudF9zdWJpZDsKKwkJcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJfQorCWVsc2UK Kwl7CisJCXNhdmVfcHJldl92YWx1ZSA9IGZhbHNlOworCQlwcmV2X3ZhbHVlID0gTlVMTDsKKwl9 CisKIAlpZiAoIWlzbnVsbCkKIAl7CiAJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOwpAQCAtNzM3LDcgKzk3NSwzNyBA QCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wg aXNudWxsKQogCWVsc2UKIAkJbmV3dmFsID0gdmFsdWU7CiAKLQlmcmVlX3Nlc3Npb25fdmFyaWFi bGVfdmFsdWUoc3Zhcik7CisJaWYgKHNhdmVfcHJldl92YWx1ZSkKKwl7CisJCXZvbGF0aWxlIFBy ZXZWYWx1ZSAqbmV3X3ByZXZfdmFsdWU7CisKKwkJUEdfVFJZKCk7CisJCXsKKwkJCW5ld19wcmV2 X3ZhbHVlID0gTWVtb3J5Q29udGV4dEFsbG9jKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQsCisJCQkJ CQkJCQkJCQlzaXplb2YoUHJldlZhbHVlKSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJeworCQkJ LyogcmVsZWFzZSBtZW0gZnJvbSBwZXJzaXN0ZW50IGNvbnRlbnQgKi8KKwkJCWlmIChuZXd2YWwg IT0gdmFsdWUpCisJCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKG5ld3ZhbCkpOworCQkJUEdfUkVf VEhST1coKTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CisKKwkJbmV3X3ByZXZfdmFsdWUtPnZhbHVl ID0gc3Zhci0+dmFsdWU7CisJCW5ld19wcmV2X3ZhbHVlLT5pc251bGwgPSBzdmFyLT5pc251bGw7 CisJCW5ld19wcmV2X3ZhbHVlLT5tb2RpZnlfc3ViaWQgPSBzdmFyLT5tb2RpZnlfc3ViaWQ7CisJ CW5ld19wcmV2X3ZhbHVlLT5wcmV2X3ZhbHVlID0gcHJldl92YWx1ZTsKKworCQlwcmV2X3ZhbHVl ID0gKFByZXZWYWx1ZSAqKSBuZXdfcHJldl92YWx1ZTsKKwkJcHJldl9wdXJnZV9zdWJpZCA9IHN2 YXItPnB1cmdlX3N1YmlkOworCisJCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxl cyA9IHRydWU7CisKKwl9CisJZWxzZQorCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zh ciwgcHJldl92YWx1ZSA9PSBOVUxMKTsKIAogCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCiAJCSBnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCkBAIC03NTAs NiArMTAxOCw5IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2 YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251 bGwgPSBpc251bGw7CisJc3Zhci0+bW9kaWZ5X3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwlzdmFy LT5wdXJnZV9zdWJpZCA9IHByZXZfcHVyZ2Vfc3ViaWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IHBy ZXZfdmFsdWU7CiAKIAkvKiBkb24ndCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2 YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8KIAlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQpAQCAtODUz LDYgKzExMjQsOCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJZWxzZQogCQlz dmFyLT5pc192YWxpZCA9IGZhbHNlOwogCityZWluaXQ6CisKIAkvKgogCSAqIEZvcmNlIHNldHVw IGZvciBub3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5u b3QKIAkgKiBiZSB2YWxpZGF0ZWQuCkBAIC04ODUsNiArMTE1OCwyOCBAQCBnZXRfc2Vzc2lvbl92 YXJpYWJsZShPaWQgdmFyaWQpCiAJCQkgdmFyaWQpOwogCX0KIAorCS8qCisJICogVHJhbnNhY3Rp b25hbCB2YXJpYWJsZXMgc2hvdWxkIGJlIHB1cmdlZCBiZWZvcmUgKHJlbW92ZQorCSAqIHZlcnNp b25zIGNyZWF0ZWQgYnkgcG9zc2libHkgcmV2ZXJ0ZWQgc3VidHJhbnNhY3Rpb25zKS4KKwkgKi8K KwlpZiAoc3Zhci0+aXNfdHJhbnNhY3QgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEdldEN1 cnJlbnRTdWJUcmFuc2FjdGlvbklkKCkgJiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFs aWRTdWJUcmFuc2FjdGlvbklkKQorCXsKKwkJaWYgKCFwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2 YXIpKQorCQl7CisJCQkvKiBmb3JjZSByZWluaXQgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFs c2U7CisKKwkJCS8qCisJCQkgKiBJbiBuZXh0IGl0ZXJhdGlvbiBtb2RpZnlfc3ViaWQgc2hvdWxk IGJlCisJCQkgKiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCBvciBjdXJyZW50IHN1YmlkLAorCQkJ ICogc28gdGhlcmUgaXMgbm90IHJpc2sgb2YgaW5maW5pdHkgY3ljbGUuCisJCQkgKi8KKwkJCWdv dG8gcmVpbml0OworCQl9CisJfQorCiAJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0 aWxsIG9mIHRoZSBjb3JyZWN0IGRvbWFpbiAqLwogCWlmIChzdmFyLT5pc19kb21haW4pCiAJewpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggMTM2Y2Q4OWM1ODYuLjQ0N2NiNjg1NTJjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTY4MCw3ICs2ODAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fb2JqZWN0 X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJCWpzb25fYXJyYXlfY29uc3RydWN0b3Jf bnVsbF9jbGF1c2Vfb3B0CiAKLSV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFi bGUKKyV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUgT3B0VHJhbnNhY3Rp b25hbAogCiAvKgogICogTm9uLWtleXdvcmQgdG9rZW4gdHlwZXMuICBUaGVzZSBhcmUgaGFyZC13 aXJlZCBpbnRvIHRoZSAiZmxleCIgbGV4ZXIuCkBAIC03ODUsNyArNzg1LDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJUFRJT04gU1VCU1RSSU5HIFNVUFBPUlQgU1lNTUVUUklD IFNZU0lEIFNZU1RFTV9QIFNZU1RFTV9VU0VSCiAKIAlUQUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUg VEFCTEVTUEFDRSBUQVJHRVQgVEVNUCBURU1QTEFURSBURU1QT1JBUlkgVEVYVF9QIFRIRU4KLQlU SUVTIFRJTUUgVElNRVNUQU1QIFRPIFRSQUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TRk9STQorCVRJ RVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNBQ1RJT05BTCBU UkFOU0ZPUk0KIAlUUkVBVCBUUklHR0VSIFRSSU0gVFJVRV9QCiAJVFJVTkNBVEUgVFJVU1RFRCBU WVBFX1AgVFlQRVNfUAogCkBAIC01MTgwLDMxICs1MTgwLDMzIEBAIGNyZWF0ZV9leHRlbnNpb25f b3B0X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10 OgotCQkJQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1l IG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9u VmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBPcHRUcmFu c2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlw ZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIg WGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4g PSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ1LT5yZWxwZXJzaXN0ZW5j ZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsKLQkJCQkJbi0+dmFyaWFibGUgPSAk NTsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNzsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRl Q2xhdXNlICopICQ4OwotCQkJCQluLT5ub3RfbnVsbCA9ICQ5OwotCQkJCQluLT5kZWZleHByID0g JDEwOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOworCQkJCQkkNi0+cmVscGVyc2lzdGVu Y2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0 ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJ CQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+bm90X251 bGwgPSAkMTA7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24g PSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElG X1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVf Y2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlv bgorCQkJfCBDUkVBVEUgT3B0VGVtcCBPcHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rp b25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkOC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJ CQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDg7Ci0JCQkJCW4t PnR5cGVOYW1lID0gJDEwOwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDExOwotCQkJCQluLT5ub3RfbnVsbCA9ICQxMjsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMzsKLQkJ CQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNDsKKwkJCQkJJDktPnJlbHBlcnNpc3RlbmNlID0gJDI7 CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQ0OworCQkJCQluLT5pc190cmFuc2FjdCA9ICQzOwor CQkJCQluLT52YXJpYWJsZSA9ICQ5OworCQkJCQluLT50eXBlTmFtZSA9ICQxMTsKKwkJCQkJbi0+ Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMjsKKwkJCQkJbi0+bm90X251bGwgPSAk MTM7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTQ7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTU7 CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJ CQkJfQpAQCAtNTIzMiw2ICs1MjM0LDEyIEBAIE9wdEltbXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJ CQl7ICQkID0gdHJ1ZTsgfQogCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0K IAkJOwogCitPcHRUcmFuc2FjdGlvbmFsOgorCQkJVFJBTlNBQ1RJT04JCQkJCQkJCXsgJCQgPSB0 cnVlOyB9CisJCQl8IFRSQU5TQUNUSU9OQUwJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyog RU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBA IC0xNzk3Miw2ICsxNzk4MCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVEVYVF9QCiAJ CQl8IFRJRVMKIAkJCXwgVFJBTlNBQ1RJT04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFO U0ZPUk0KIAkJCXwgVFJJR0dFUgogCQkJfCBUUlVOQ0FURQpAQCAtMTg2MTksNiArMTg2MjgsNyBA QCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFRJTUVTVEFNUAogCQkJfCBUUkFJTElORwogCQkJ fCBUUkFOU0FDVElPTgorCQkJfCBUUkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBU UkVBVAogCQkJfCBUUklHR0VSCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBlOGMxZTg0MTgzNi4uZGQxMTQyNjJj NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYwpAQCAtNTQyMyw2ICs1NDIzLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hp dmUgKmZvdXQpCiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJaW50CQkJaV92YXJub3RudWxsOwog CWludAkJCWlfdmFyaXNpbW11dGFibGU7CisJaW50CQkJaV92YXJpc3RyYW5zYWN0OwogCWludAkJ CWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlpbnQJCQlpLApAQCAtNTQ0Nyw2ICs1 NDQ4LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICBFTkQg QVMgdmFyY29sbGF0aW9uLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgogCQkJ CQkgICIgICAgICAgdi52YXJpc2ltbXV0YWJsZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyaXN0 cmFuc2FjdCxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJk ZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2 LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBB UyBhY2xkZWZhdWx0XG4iCkBAIC01NDY5LDYgKzU0NzEsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24i KTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIpOwogCWlfdmFy aXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsKKwlpX3Zhcmlz dHJhbnNhY3QgPSBQUWZudW1iZXIocmVzLCAidmFyaXN0cmFuc2FjdCIpOwogCiAJaV92YXJvd25l ciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJl cywgInZhcmFjbCIpOwpAQCAtNTQ5Nyw2ICs1NTAwLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUg KmZvdXQpCiAJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3ZhcmNvbGxhdGlvbikpOwogCQl2YXJpbmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51bGwpKSA9PSAndCc7CiAJCXZhcmluZm9baV0udmFyaXNp bW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3Qn OworCQl2YXJpbmZvW2ldLnZhcmlzdHJhbnNhY3QgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cmlzdHJhbnNhY3QpKSA9PSAndCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRl ZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAt NTU0NCw2ICs1NTQ4LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlh YmxlSW5mbyAqdmFyaW5mbykKIAljb25zdCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIg KnZhcnhhY3RlbmRhY3Rpb247CiAJY29uc3QgY2hhciAqdmFyaXNpbW11dGFibGU7CisJY29uc3Qg Y2hhciAqdmFyaXN0cmFuc2FjdDsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJYm9vbAkJdmFybm90 bnVsbDsKIApAQCAtNTU2MSwxMiArNTU2NiwxMyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91 dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8t PnZhcmNvbGxhdGlvbjsKIAl2YXJub3RudWxsID0gdmFyaW5mby0+dmFybm90bnVsbDsKIAl2YXJp c2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlzaW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7 CisJdmFyaXN0cmFuc2FjdCA9IHZhcmluZm8tPnZhcmlzdHJhbnNhY3QgPyAiVFJBTlNBQ1RJT05B TCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztc biIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJD UkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAgdmFyaXNpbW11dGFibGUsIHF1YWx2 YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAl cyVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzdHJhbnNhY3QsIHZhcmlzaW1tdXRh YmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xs YXRpb24pKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGNiYjA2YjY2Zjc0Li4yMmJjYWNlMzMwZSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCkBAIC03MTIsNiArNzEyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5m bwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJp bmcgKi8KIAlib29sCQl2YXJub3RudWxsOwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlOworCWJvb2wJ CXZhcmlzdHJhbnNhY3Q7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKaW5kZXggOWViZmQ2ZGJhNzIuLjg2OWUwOWZiM2U1IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbApAQCAtNDAzMSw2ICs0MDMxLDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAog CisJJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJ YWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5k cycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJB TlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXInLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rl c3QudmFyaWFibGU4IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVu cywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEs CisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwK KwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRF IFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJ YWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5k cycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJB TlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRl Z2VyJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRB QkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTkgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlr ZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNl Y3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVt cF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJ CX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVy ID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCmluZGV4IDE1Y2E3Nzc5OTZhLi5jZTA3NGEwMGI4YiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUxNTks NyArNTE1OSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVl cnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2Nv bHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5z bGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNl dC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MTgyLDYgKzUxODIsNyBAQCBsaXN0VmFyaWFi bGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRh bG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Tk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11 dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFyaXN0cmFuc2FjdCBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFz IFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkg ICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCkBAIC01MTk0LDYgKzUxOTUs NyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJs ZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMKaW5kZXggNzJiNjU1NThlNjkuLmMwY2JjZGYwNjE5IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBA IC0xMjg0LDYgKzEyODQsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRl cl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlRF WFQgU0VBUkNIIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJUUkFOU0ZPUk0iLCBOVUxMLCBOVUxM LCBOVUxMLCBOVUxMLCBUSElOR19OT19BTFRFUn0sCisJeyJUUkFOU0FDVElPTkFMIiwgTlVMTCwg TlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9y IENSRUFURSBUUkFOU0FDVElPTkFMCisJCQkJCQkJCQkJCQkJCQkJCQkJCSogVkFSSUFCTEUgLi4u ICovCiAJeyJUUklHR0VSIiwgIlNFTEVDVCB0Z25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX3RyaWdn ZXIgV0hFUkUgdGduYW1lIExJS0UgJyVzJyBBTkQgTk9UIHRnaXNpbnRlcm5hbCJ9LAogCXsiVFlQ RSIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXN9LAogCXsiVU5JUVVF IiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVS fSwgLyogZm9yIENSRUFURSBVTklRVUUKQEAgLTM1ODIsOCArMzU4NCwxMSBAQCBwc3FsX2NvbXBs ZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIC8qIENSRUFU RSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRh aWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFT ICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlRSQU5TQUNUSU9OfFRSQU5TQUNUSU9O QUwiKSkKKwkJQ09NUExFVEVfV0lUSCgiSU1NVVRBQkxFIiwgIlZBUklBQkxFIik7CiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAogCQkJIFRh aWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJ IFRhaWxNYXRjaGVzKCJUUkFOU0FDVElPTnxUUkFOU0FDVElPTkFMIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIklNTVVUQUJMRSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFS SUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXgg NjhiYzQ5YTBlMjcuLjFkYzQ0ZWRmNmU1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBA IC02MSw2ICs2MSw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9u SWQpCiAJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlIEJL SV9ERUZBVUxUKGYpOwogCisJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCisJYm9vbAkJdmFy aXN0cmFuc2FjdCBCS0lfREVGQVVMVChmKTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBl bmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKaW5kZXggN2NmMmRlYWNhNDYuLjE2ODZlNDU3NTBhIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCkBAIC0zNDQ0LDYgKzM0NDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNz aW9uVmFyU3RtdAogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxy ZWFkeSBleGlzdHMgKi8KIAlib29sCQlub3RfbnVsbDsJCS8qIGRpc2FsbG93IG51bGxzICovCiAJ Ym9vbAkJaXNfaW1tdXRhYmxlOwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJaXNf dHJhbnNhY3Q7CS8qIHN1cHBvcnRzIHRyYW5zYWN0aW9ucyAqLwogCU5vZGUJICAgKmRlZmV4cHI7 CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0 cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCmluZGV4IGY5MGQzZDQzZjdmLi42M2RiZTUxYjcyNCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApA QCAtNDU0LDYgKzQ1NCw3IEBAIFBHX0tFWVdPUkQoInRpbWVzdGFtcCIsIFRJTUVTVEFNUCwgQ09M X05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRvIiwgVE8sIFJFU0VSVkVE X0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidHJhaWxpbmciLCBUUkFJTElORywgUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyYW5zYWN0aW9uIiwgVFJB TlNBQ1RJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInRy YW5zYWN0aW9uYWwiLCBUUkFOU0FDVElPTkFMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJ0cmFuc2Zvcm0iLCBUUkFOU0ZPUk0sIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyZWF0IiwgVFJFQVQsIENPTF9OQU1FX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmlnZ2VyIiwgVFJJR0dFUiwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXgg NjA0YmQ2NTdhYWMuLjY1OTk1YjIxYmZlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTU4ODgsMjAgKzU4ODgsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwg RGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0g cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNv bWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjM2OSw5ICs2MzY5LDkgQEAgTGlzdCBvZiBzY2hlbWFz CiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTQ0LDkgKzY1NDQs OSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYg Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVs dCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9u cy4KQEAgLTY2ODMsOSArNjY4Myw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAo MCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJs ZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGEyM2E5NTdlZTQxLi40MTg0YjYxNThiZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTQ1LDExICs0NSwxMSBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwog Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OwogU0VUIFJPTEUgVE8gREVGQVVM VDsKIFxkVisgc3ZhcnRlc3QudmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAg ICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRl c3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIg fCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0g ICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmls ZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAK ICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTc2MCwzICsxNzYw LDEwMyBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiBFUlJPUjogIHNlc3Npb24gdmFy aWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKIERST1AgVkFSSUFCTEUg dmFyMTsKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKK0NSRUFURSBUUkFOU0FDVElP TiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDsK KyAgU0VMRUNUIHR2OworIHR2ICAKKy0tLS0tCisgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOwor U0VMRUNUIHR2OworIHR2IAorLS0tLQorICAwCisoMSByb3cpCisKK0xFVCB0diA9IDEwMDsKK0JF R0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworU0VMRUNUIHR2OworICB0diAgCistLS0t LS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7 CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgIHR2 ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0 diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7 CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitST0xMQkFDSzsKK1NF TEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVU IHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAg TEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisg IDIKKygxIHJvdykKKworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1Qg dHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworQ09NTUlUOworU0VMRUNUIHR2OworIHR2 IAorLS0tLQorICAxCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdHY7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggZWIzZGExZjM1ZjcuLmJjYTlhOTJl YzQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0x MjA3LDMgKzEyMDcsNjEgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMwOwogCiBEUk9QIFZB UklBQkxFIHZhcjE7CisKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKK0NSRUFURSBU UkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworCitCRUdJTjsKKyAgTEVU IHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitMRVQg dHYgPSAxMDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsKKworU0VMRUNUIHR2 OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisKK1NF TEVDVCB0djsKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKKworQkVHSU47CisgIExFVCB0diA9 IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0 diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworICBMRVQgdHYgPSAxMDsKK1JP TExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitC RUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQ T0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7Cisg IExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKK0NPTU1JVDsKKwor U0VMRUNUIHR2OworCitEUk9QIFZBUklBQkxFIHR2OwotLSAKMi40Ni4wCgo= --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0017-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20240829-0017-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrqv3 RnJvbSA4MTVkZGFlMDZlNGQ0ZGIzNWZjYmFiY2ExZjk2NmViOTI3OTI5ZjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE3 LzIwXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAwOTJlZDIzNTNhYy4uZDk4Y2YyMmRhZWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3MzIsOCArNDczMiw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5MzcsMjEgKzQ5MzYsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwKIAkJCQkJCQkJICAgKHZvaWQgKikgY29udGV4dCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDY0NjZhMjQ3MzI4 Li4xODI5YTJhN2VkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTEwNCw3ICsxMDQsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4 KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQotQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBs aW5lIDEgYXQgUkVUVVJOCkBAIC0yMTEsMTAgKzIxMCwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CiAKIC0tIGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEo c3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8 ICcsICc6OnRleHQpIHx8ICgodmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkK ICgyIHJvd3MpCiAKIERST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40Ni4wCgo= --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20240829-0018-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrqg2 RnJvbSAzNGNiMDMyMDgwNGFjMjhkMjAyMDJmMzY3YTBhZmU1MjJmNDE2YmVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMTc6MDY6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIwXSB0aGlzIHBhdGNoIGNoYW5nZXMgZXJyb3IgbWVzc2FnZSAiY29sdW1uIGRvZXNuJ3QgZXhp c3QiCiB0byBtZXNzYWdlICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lc24ndCBleGlzdCIKClRoZSBl cnJvciBtZXNzYWdlIHdpbGwgYmUgbW9yZSBjb3JyZWN0LiBUb2RheSwgbWlzc2luZyBQTC9wZ1NR TCB2YXJpYWJsZSBjYW4gYmUgcmVwb3J0ZWQuIFRoZSBjaGFuZ2UgaGFzCmltcGFjdCBvbiBsb3Qg b2YgcmVncmVzcyB0ZXN0cyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxl cywgYW5kIHRoZW4gaXQgaXMgZGlzdHJpYnV0ZWQgYXMgc2VwYXJhdGUgcGF0Y2gKLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjQgKysrKysrKysrKyst LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICA4ICsr Ky0tCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAgICAgICAgICAgfCAgMiAr Kwogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0IHwgIDIgKy0K IC4uLi9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQgICB8ICA0ICstLQog Li4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDIgKy0KIHNy Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgICAgICAgICB8IDEyICsrKy0tLS0K IC4uLi9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgICAgIHwgMzIgKysrKysr KysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgICAgICAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCAgICAgICAg ICB8ICA4ICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAg ICAgfCAxMiArKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCAg ICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgICAgICAg ICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAg ICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAg ICAgfCAgMiArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAg IHwgIDYgKystLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0ICAg IHwgIDQgKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCAgICAgICAgICAg fCAgMiArLQogMjEgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNjg3NTFmY2IwODYuLmM0MGVhNmIwNjZk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyMiw3ICs1MjIsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggYmRlNWIxMTE4YzUu LjkzYTU4OThjNmMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMjcsNiAr MjcsNyBAQAogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25v ZGVGdW5jcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9lbnIuaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5o IgpAQCAtMzY1NSw2ICszNjU2LDE5IEBAIGVycm9yTWlzc2luZ1JURShQYXJzZVN0YXRlICpwc3Rh dGUsIFJhbmdlVmFyICpyZWxhdGlvbikKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg cmVsYXRpb24tPmxvY2F0aW9uKSkpOwogfQogCisvKgorICogc2V0IG1lc3NhZ2UgImNvbHVtbiBk b2VzIG5vdCBleGlzdCIgb3IgImNvbHVtbiBvciB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdCIKKyAq IGluIGRlcGVuZGVuY3kgaWYgZXhwcmVzc2lvbiBjb250ZXh0IGFsbG93cyBzZXNzaW9uIHZhcmlh Ymxlcy4KKyAqLworc3RhdGljIGludAorY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0 cyhQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IGNoYXIgKmNvbG5hbWUpCit7CisJaWYgKGV4cHJf a2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCXJl dHVybiBlcnJtc2coImNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBj b2xuYW1lKTsKKwllbHNlCisJCXJldHVybiBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLCBjb2xuYW1lKTsKK30KKwogLyoKICAqIEdlbmVyYXRlIGEgc3VpdGFibGUgZXJyb3Ig YWJvdXQgYSBtaXNzaW5nIGNvbHVtbi4KICAqCkBAIC0zNjg5LDcgKzM3MDMsNyBAQCBlcnJvck1p c3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAogCQkJCQkgcmVsbmFtZSA/CiAJCQkJCSBlcnJtc2coImNvbHVtbiAl cy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCQkgY29sdW1uX29y X3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCQkgZXJyZGV0 YWlsKCJUaGVyZSBhcmUgY29sdW1ucyBuYW1lZCBcIiVzXCIsIGJ1dCB0aGV5IGFyZSBpbiB0YWJs ZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku IiwKIAkJCQkJCQkgICBjb2xuYW1lKSwKIAkJCQkJICFyZWxuYW1lID8gZXJyaGludCgiVHJ5IHVz aW5nIGEgdGFibGUtcXVhbGlmaWVkIG5hbWUuIikgOiAwLApAQCAtMzY5OSw3ICszNzEzLDcgQEAg ZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1 bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmRl dGFpbCgiVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgXCIlc1wiIGluIHRhYmxlIFwiJXNcIiwgYnV0 IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4iLAog CQkJCQkJICAgY29sbmFtZSwgc3RhdGUtPnJleGFjdDEtPmVyZWYtPmFsaWFzbmFtZSksCiAJCQkJ IHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwocHN0YXRlLCBzdGF0ZS0+cmV4YWN0MSkgPwpAQCAtMzcx NywxNCArMzczMSwxNCBAQCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCQkgcmVsbmFtZSA/ CiAJCQkJCSBlcnJtc2coImNvbHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNv bG5hbWUpIDoKLQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNv bG5hbWUpLAorCQkJCQkgY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUs IGNvbG5hbWUpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7 CiAJCS8qIEhhbmRsZSBjYXNlIHdoZXJlIHdlIGhhdmUgYSBzaW5nbGUgYWx0ZXJuYXRpdmUgc3Bl bGxpbmcgdG8gb2ZmZXIgKi8KIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RF X1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1bW4g JXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5fb3Jf dmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhpbnQo IlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIi4iLAog CQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFsaWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwobGlz dF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29sbmFtZXMsCkBAIC0zNzM4LDcgKzM3NTIsNyBA QCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNv bHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVt bl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJy aGludCgiUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wi IG9yIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIsCiAJCQkJCQkgc3RhdGUtPnJmaXJzdC0+ZXJlZi0+ YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChsaXN0X250aChzdGF0ZS0+cmZpcnN0LT5lcmVmLT5j b2xuYW1lcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBlZTZmY2QwNTAzYS4uZTdk Y2MxNmI1ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTc3Niw3ICs3NzYsOSBA QCB0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ aWYgKCF0eXByZWxpZCkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZp ZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgaXRzIHR5cGUgJXMgaXMgbm90IGEg Y29tcG9zaXRlIHR5cGUiLAorCQkJCQkJIGVycm1zZyhleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25f dmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpID8KKwkJCQkJCQkJICJjYW5ub3QgYXNzaWdu IHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGJlY2F1c2UgaXRz IHR5cGUgJXMgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiIDoKKwkJCQkJCQkJICJjYW5ub3QgYXNz aWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgaXRzIHR5cGUgJXMg aXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAogCQkJCQkJCQlzdHJWYWwobiksIHRhcmdldE5hbWUs CiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkpLAogCQkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpAQCAtNzg1LDcgKzc4Nyw5IEBAIHRyYW5z Zm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAoYXR0 bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAotCQkJCQkJIGVycm1zZygiY2Fubm90IGFz c2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIFwiJXNcIiBiZWNhdXNlIHRoZXJlIGlzIG5v IHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9h bGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkg ImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVz XCIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiIDoKKwkJ CQkJCQkJICJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKIAkJCQkJCQkJ c3RyVmFsKG4pLCB0YXJnZXROYW1lLAogCQkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBl SWQpKSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IDBkNjRiMzAwZjhhLi5lNWFlYmY5OWI0YSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCkBAIC0yMyw0ICsyMyw2IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zv cm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHBy S2luCiAKIGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5k IGV4cHJLaW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3Zhcmlh YmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNF X0VYUFJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfYXJyYXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXku b3V0CmluZGV4IGFkNjBlMGU4YmUzLi5jMWFiOWZkN2VkOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0CisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dApAQCAtNDEsNyArNDEsNyBAQCBOT1RJQ0U6 ICBhID0geyIoLDExKSJ9LCBhWzFdLmkgPSAxMQogLS0gcGVyaGFwcyB0aGlzIG91Z2h0IHRvIHdv cmssIGJ1dCBmb3Igbm93IGl0IGRvZXNuJ3Q6CiBkbyAkJCBkZWNsYXJlIGEgY29tcGxleFtdOwog YmVnaW4gYVsxOjJdLmkgOj0gYXJyYXlbMTEsMTJdOyByYWlzZSBub3RpY2UgJ2EgPSAlJywgYTsg ZW5kJCQ7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgImkiIG9mIGNvbHVtbiAiYSIg YmVjYXVzZSBpdHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKK0VSUk9S OiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBi ZWNhdXNlIGl0cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQogTElORSAx OiBhWzE6Ml0uaSA6PSBhcnJheVsxMSwxMl0KICAgICAgICAgXgogUVVFUlk6ICBhWzE6Ml0uaSA6 PSBhcnJheVsxMSwxMl0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3JlY29yZC5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9y ZWNvcmQub3V0CmluZGV4IGE5YjViNzc4ZWZjLi4wN2FiYzJlODRkNCAxMDA2NDQKLS0tIGEvc3Jj L3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dAorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CkBAIC0xMzUsNyArMTM1LDcg QEAgRVJST1I6ICByZWNvcmQgImMiIGhhcyBubyBmaWVsZCAieCIKIENPTlRFWFQ6ICBQTC9wZ1NR TCBhc3NpZ25tZW50ICJjLngucTEgPSAxIgogUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVf YmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQkIGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7 IGJlZ2luIGMuYzIueCA9IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVs ZCAieCIgb2YgY29sdW1uICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRh dGEgdHlwZSB0d29faW50OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2Yg Y29sdW1uIG9yIHZhcmlhYmxlICJjIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGlu IGRhdGEgdHlwZSB0d29faW50OHMKIExJTkUgMTogYy5jMi54ID0gMQogICAgICAgICBeCiBRVUVS WTogIGMuYzIueCA9IDEKQEAgLTE1Nyw3ICsxNTcsNyBAQCBFUlJPUjogIHJlY29yZCAiYyIgaGFz IG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1lbnQgImIuYy54LnExID0g MSIKIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBhc3NpZ25t ZW50CiBkbyAkJCA8PGI+PiBkZWNsYXJlIGMgbmVzdGVkX2ludDhzOyBiZWdpbiBiLmMuYzIueCA9 IDE7IGVuZCAkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1u ICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0d29faW50 OHMKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uIG9yIHZhcmlh YmxlICJiIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0d29f aW50OHMKIExJTkUgMTogYi5jLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYi5jLmMyLngg PSAxCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNz aW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0CmluZGV4IDc4OWMzMTIzYjBjLi5mMDA2ZGI0ZmFhOCAxMDA2NDQK LS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJs ZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQKQEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VU IFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBu b3QgY3Jhc2gKIFNFTEVDVCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVtbiAicGxwZ3Nx bF9zdl92YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInBs cGdzcWxfc3ZfdmFyMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9zdl92YXIxCiAg ICAgICAgIF4KIFFVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNs L2V4cGVjdGVkL3BsdGNsX3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9x dWVyaWVzLm91dAppbmRleCAzNWNjNmU2MmFhZC4uNDk3Y2QzODE4OWIgMTAwNjQ0Ci0tLSBhL3Ny Yy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQKKysrIGIvc3JjL3BsL3RjbC9leHBl Y3RlZC9wbHRjbF9xdWVyaWVzLm91dApAQCAtNDUwLDEyICs0NTAsMTIgQEAgQ09OVEVYVDogIHdo aWxlIGV4ZWN1dGluZwogIl9fUExUY2xfcHJvY190Y2xfZXZhbF90ZXh0IHNwaV9wcmVwYXJlXCBh XCBcImJcIFx7XCIiCiBpbiBQTC9UY2wgZnVuY3Rpb24gdGNsX2V2YWwodGV4dCkKIHNlbGVjdCB0 Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCgkdGNsJHNwaV9wcmVwYXJlICJzZWxlY3QgbW9vIiBbXSR0 Y2wkKTsKLSAgICAgICB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFNRTFNUQVRFOiA0MjcwMyAgICAgICAgICAg ICAgICAgICAgICsKLSBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAgICArCi0gY3Vy c29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgKwotIG1lc3NhZ2U6IGNvbHVtbiAibW9v IiBkb2VzIG5vdCBleGlzdCsKKyAgICAgICAgICAgICB0Y2xfZXJyb3JfaGFuZGxpbmdfdGVzdCAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNRTFNUQVRFOiA0MjcwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyBjb25kaXRpb246IHVuZGVmaW5lZF9jb2x1bW4gICAgICAgICAgICAgICAgICAgICArCisg Y3Vyc29yX3Bvc2l0aW9uOiA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIG1lc3Nh Z2U6IGNvbHVtbiBvciB2YXJpYWJsZSAibW9vIiBkb2VzIG5vdCBleGlzdCsKICBzdGF0ZW1lbnQ6 IHNlbGVjdCBtb28KICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4 cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IDE5YTJlNWE4ZjY0Li4xYzQxNDlmNmVmMSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0 CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApA QCAtMTAsNyArMTAsNyBAQCB0ZXN0CiAKIHN0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsK IHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0 CiAKIHN0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQogc3RlcCBs ZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKQEAgLTIzLDcgKzIzLDcgQEAgdGVzdAogc3RlcCBzMTog QkVHSU47CiBzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CiBzdGVwIHZhbDogU0VMRUNU IG15dmFyOwotRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgIm15dmFyIiBkb2VzIG5vdCBleGlzdAogc3RlcCBzcjE6IFJPTExC QUNLOwogCiBzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJn IHZhbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dAppbmRleCA3OWNm ODJiNWFlZC4uZWIzMTBkNGUxOTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYWx0ZXJfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJf dGFibGUub3V0CkBAIC0xMzA5LDE5ICsxMzA5LDE5IEBAIHNlbGVjdCAqIGZyb20gYXRhY2MxOwog KDEgcm93KQogCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJST1I6ICBjb2x1 bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFj YzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1 bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjog IGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBu b3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJPUjogIGNvbHVt biAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSBhOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNj MSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVt biAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwpAQCAtMTMzMSw3ICsxMzMxLDcg QEAgc2VsZWN0IGF0YWNjMS4qIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSBmcm9t IGF0YWNjMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhIGZyb20g YXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20gYXRhY2MxOwpA QCAtMTM0NSwxNSArMTM0NSwxNSBAQCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7CiAoMSByb3cp CiAKIHNlbGVjdCBhLGIsYyxkIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc2VsZWN0IGEsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBz ZWxlY3QgKiBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4iIGZyb20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4u Li4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0 ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAg ICAgIF4KIHNlbGVjdCBhdGFjYzEuIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20g YXRhY2MxOwpAQCAtMTM2MSwxMSArMTM2MSwxMSBAQCBFUlJPUjogIGNvbHVtbiBhdGFjYzEuLi4u Li4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg YXRhY2MxLiIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAg ICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQg ZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4iID0gMTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4u IiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcu ZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20g YXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4uLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0xMzc0LDcgKzEz NzQsNyBAQCBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwotRVJST1I6 ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi YSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUg YSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBh dGFjYzEgc2V0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBAIC0xMzgyLDcg KzEzODIsNyBAQCBFUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg b2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRhdGUgYXRhY2Mx IHNldCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5k cm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBk YXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIElOU0VSVHMK QEAgLTE0MzAsMTEgKzE0MzAsMTEgQEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFjYzEgKCIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCkgdmEuLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiAtLSBERUxFVEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7 Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hl cmUgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBkZWxldGUgZnJv bSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKLUVSUk9S OiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogZGVsZXRlIGZyb20gYXRhY2MxOwpAQCAtMTcyMCw3ICsxNzIwLDcgQEAgc2VsZWN0 IGYxIGZyb20gYzE7CiAKIGFsdGVyIHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwogc2VsZWN0IGYx IGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBm cm9tIGMxOwogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJl ZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIuCkBAIC0xNzM0LDcgKzE3MzQsNyBAQCBFUlJPUjog IGNhbm5vdCBkcm9wIGluaGVyaXRlZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUgcDEgZHJvcCBj b2x1bW4gZjE7CiAtLSBjMS5mMSBpcyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUgaXMgbm8gbG9j YWwgZGVmaW5pdGlvbiBmb3IgaXQKIHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBjb2x1bW4g ImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAgICAgIF4K IEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAiYzEuZjIi LgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAppbmRleCA2MWExOWNkYzRjYS4uYWJhMzQx ODk3ZmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CkBAIC0xNDQsNyArMTQ0LDcg QEAgTElORSAxOiBDT1BZIHggVE8gc3Rkb3V0IFdIRVJFIGEgPSAxOwogQ09QWSB4IGZyb20gc3Rk aW4gV0hFUkUgYSA9IDUwMDA0OwogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA+IDYwMDAzOwog Q09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwotRVJST1I6ICBjb2x1bW4gImYiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZiIgZG9lcyBub3QgZXhp c3QKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgZiA+IDYwMDAzOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID0gbWF4 KHguYik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKaW5kZXggOGM1Mjc0NzRkYWYu LmU1M2FlNDUxZGZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9y cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0CkBAIC0yNyw3 ICsyNyw3IEBAIExJTkUgMTogc2VsZWN0ICogZnJvbSBub25lc3VjaDsKICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBiYWQgbmFtZSBpbiB0YXJnZXQgbGlzdAogc2VsZWN0IG5vbmVzdWNoIGZy b20gcGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHNlbGVjdCBub25lc3VjaCBmcm9tIHBnX2RhdGFiYXNlOwogICAgICAgICAgICAgICAg XgogLS0gZW1wdHkgZGlzdGluY3QgbGlzdCBpc24ndCBPSwpAQCAtMzcsMTcgKzM3LDE3IEBAIExJ TkUgMTogc2VsZWN0IGRpc3RpbmN0IGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gbGhzIG9mIG9wZXJhdG9yCiBzZWxl Y3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmFt ZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0 ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBub25lc3VjaCA9IHBnX2RhdGFiYXNlLmRhdG5hLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gYmFkIGF0dHJp YnV0ZSBuYW1lIG9uIHJocyBvZiBvcGVyYXRvcgogc2VsZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3 aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7Ci1FUlJPUjogIGNvbHVtbiAibm9u ZXN1Y2giIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9uZXN1 Y2giIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLmVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hl cmUgcGdfZGF0YWJhc2UuZGF0bmFtZSA9IG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmli dXRlIG5hbWUgaW4gc2VsZWN0IGRpc3RpbmN0IG9uCiBzZWxlY3QgZGlzdGluY3Qgb24gKGZvb2Jh cikgKiBmcm9tIHBnX2RhdGFiYXNlOwotRVJST1I6ICBjb2x1bW4gImZvb2JhciIgZG9lcyBub3Qg ZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmb29iYXIiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdfZGF0YWJhc2U7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZ3JvdXBpbmcgd2l0aCBGT1IgVVBE QVRFCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAppbmRleCAzMWZiN2QxNDJlYi4uYTc0Njkz YWYxODcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAtNjIzMCwxMyArNjIzMCwx MyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5pcXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3Ug bWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlx dWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0t IGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25jZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgdXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAg XgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51 bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAg dGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVk IHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29sdW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNl bGVjdCBjdGlkIGZyb20KICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1 bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSBy ZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTczMzMsNyArNzMzMyw3 IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20gaW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBl cnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNob3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0 CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJP UjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90Ymwg YSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4g dGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2Yg dGhlIHF1ZXJ5LgpAQCAtNzM0NSw3ICs3MzQ1LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9t IGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBhcyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFu IGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5UOiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlv dSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9t IGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1 bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mg am9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5h bWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0 aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzM4Miw3ICs3MzgyLDcgQEAgTElORSAxOiBzZWxl Y3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwgKHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGku Li4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBhcyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBm cm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNhbid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4 MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1F UlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChz ZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJ TDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBj YW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NDAy LDcgKzc0MDIsNyBAQCB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20geHgxLCBsYXRlcmFsIChz ZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpCiBFUlJPUjogIHRhYmxlIG5hbWUg Inh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCiAtLSBhbHNvIGVycm9yczoKIGRlbGV0ZSBm cm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsK LUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4udGUgZnJvbSB4eDEgdXNpbmcg KHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVU QUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0 IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dAppbmRleCBkYmJkYTcyZDM5NS4uZDk4Nzkz ZjkyYTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKQEAgLTIzLDcg KzIzLDcgQEAgQkVHSU47CiBTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCB0ZXN0X25zX3NjaGVt YV8xOwogQ1JFQVRFIFNDSEVNQSB0ZXN0X25zX3NjaGVtYV8yCiAgICAgICAgQ1JFQVRFIFZJRVcg YWJjX3ZpZXcgQVMgU0VMRUNUIGMgRlJPTSBhYmM7Ci1FUlJPUjogIGNvbHVtbiAiYyIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJjIiBkb2VzIG5vdCBleGlzdAog TElORSAyOiAgICAgICAgQ1JFQVRFIFZJRVcgYWJjX3ZpZXcgQVMgU0VMRUNUIGMgRlJPTSBhYmM7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ09NTUlU OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKaW5kZXggNzE3YTIzN2Rm OTguLjM4NWM0YjFiNGNjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251 bWVyb2xvZ3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5v dXQKQEAgLTMxNCw3ICszMTQsNyBAQCBOT1RJQ0U6ICBpID0gMTAwMgogTk9USUNFOiAgaSA9IDEw MDMKIC0tIGVycm9yIGNhc2VzCiBTRUxFQ1QgXzEwMDsKLUVSUk9SOiAgY29sdW1uICJfMTAwIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIl8xMDAiIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBfMTAwOwogICAgICAgICAgICAgICAgXgogU0VMRUNUIDEw MF87CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dAppbmRleCAwNzRhZjhmMzNhOC4u MGE3YTlmZWI2ZTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3Nx bC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dApAQCAtMjU5 OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hvdWxkIGZhaWw6 IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGluIGRlZmluZWQgRVhDRVBUSU9OCiAtLSBi bG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJST1I6ICBjb2x1bW4gInNxbHN0YXRlIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInNxbHN0YXRlIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBeCiBRVUVSWTogIHNxbHN0YXRl CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5kOyAkJCBsYW5ndWFnZSBwbHBnc3FsOwog LS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0MigpOwotRVJST1I6ICBjb2x1bW4gInNx bHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInNxbHN0 YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAgICAgICBeCiBRVUVSWTog IHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBCRUdJTgogICAgICAgICBSQUlTRSBOT1RJ Q0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50OwogICAgIEVORCBMT09QOwogRU5EJCQ7Ci1F UlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHJ0cmltKHJvb21ubykg QVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZIHJvb21uLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVFUlk6ICBTRUxFQ1QgcnRyaW0ocm9vbW5v KSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW5vCkBAIC00NzE3LDcgKzQ3 MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlJywgeDsKIGVuZDsKICQkOwotRVJS T1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJs ZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCArIDEKICAgICAgICAgXgogUVVFUlk6ICB4 ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4KICAgcmFpc2Ugbm90aWNlICd4ID0gJSwg eSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjogIGNvbHVtbiAieCIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4IiBkb2VzIG5vdCBleGlzdAogTElORSAx OiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAxCkBAIC01NzY5LDcgKzU3NjksNyBAQCBB TFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFuc2l0aW9uX3RhYmxlcwogICBEUk9QIGNv bHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAg IFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5hbWUiIGRvZXMgbm90IGV4aXN0CitFUlJP UjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogKFNF TEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIChTRUxFQ1Qgc3RyaW5n X2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9NIGQpCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dAppbmRleCBjMTEwYzcwZDVhZC4uNjA0YmQ2NTdhYWMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dApAQCAtMTY3LDcgKzE2Nyw3IEBAIFNFTEVDVCAkMSwgJDIgXGJpbmQgJ2Zv bycgJ2JhcicgXGcKIC0tIGVycm9ycwogLS0gcGFyc2UgZXJyb3IKIFNFTEVDVCBmb28gXGJpbmQg XGcKLUVSUk9SOiAgY29sdW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgZm9vIAogICAg ICAgICAgICAgICAgXgogLS0gdGNvcCBlcnJvcgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dAppbmRleCA4NjI0MzNlZTUyYi4uOTZiYTE5MjNjMWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0CkBAIC0xMTkxLDcgKzExOTEsNyBAQCBkcm9wIHJ1bGUgcnVsZXNfZm9vcnVsZSBv biBydWxlc19mb287CiAtLSB0aGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgZjEgaXMgbm90IGV4cG9z ZWQgZm9yIHVucXVhbGlmaWVkIHJlZmVyZW5jZToKIGNyZWF0ZSBydWxlIHJ1bGVzX2Zvb3J1bGUg YXMgb24gaW5zZXJ0IHRvIHJ1bGVzX2ZvbyB3aGVyZSBmMSA8IDEwMAogZG8gaW5zdGVhZCBpbnNl cnQgaW50byBydWxlc19mb28yIHZhbHVlcyAoZjEpOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlz dAogTElORSAyOiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChmMSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERF VEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJmMSIsIGJ1dCB0aGV5IGFyZSBpbiB0YWJs ZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnku CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IDE4MjlhMmE3ZWRhLi5hMjNhOTU3ZWU0MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTMwOSw3ICszMDksNyBAQCBFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNuJ3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEg PSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFy MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAgICAgIF4KIC0tIHNo b3VsZCBiZSBvawpAQCAtNTIwLDcgKzUyMCw3IEBAIFNFTEVDVCB2MTsKIAogLS0gc2hvdWxkIGZh aWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CiBMRVQgdjEueCA9IDEwOwotRVJST1I6ICBjYW5u b3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5v IHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQorRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZp ZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1 Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQogTElORSAxOiBMRVQgdjEueCA9IDEwOwogICAgICAg ICAgICAgXgogLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQpA QCAtMTA2Nyw3ICsxMDY3LDcgQEAgQkVHSU47CiBEUk9QIFZBUklBQkxFIHZhcjE7CiAtLSBzaG91 bGQgZmFpbAogU0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElO RSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAgICAgIF4KIFJPTExCQUNLOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CmluZGV4IDdmNTc1N2U4OWM0Li5iMDVi MTZkOTRiZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlv bnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dApA QCAtMjU2LDcgKzI1Niw3IEBAIFNFTEVDVCAqIEZST00gdHJhbnNfYmFyYmF6OwktLSBzaG91bGQg aGF2ZSAxCiBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJS T1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9y IHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFu c19mb287CiAgICAgICAgICAgICAgICBeCiAJUk9MTEJBQ0sgVE8gU0FWRVBPSU5UIG9uZTsKQEAg LTMwNSw3ICszMDUsNyBAQCBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlJTlNFUlQgSU5UTyBz YXZlcG9pbnRzIFZBTFVFUyAoNSk7CiAJCVNFTEVDVCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVt biAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg InRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAg ICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKaW5k ZXggMDQ1NmQ0OGM5M2EuLmRhZGQwYzk0MzU5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3VuaW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9u Lm91dApAQCAtOTIyLDcgKzkyMiw3IEBAIE9SREVSIEJZIHEyLHExOwogCiAtLSBUaGlzIHNob3Vs ZCBmYWlsLCBiZWNhdXNlIHEyIGlzbid0IGEgbmFtZSBvZiBhbiBFWENFUFQgb3V0cHV0IGNvbHVt bgogU0VMRUNUIHExIEZST00gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBGUk9NIGludDhfdGJs IE9SREVSIEJZIHEyIExJTUlUIDE7Ci1FUlJPUjogIGNvbHVtbiAicTIiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicTIiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6 IC4uLiBpbnQ4X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkgcTIg TElNSVQgMS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJxMiIg aW4gdGFibGUgIipTRUxFQ1QqIDIiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0 aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgotLSAKMi40Ni4wCgo= --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0016-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20240829-0016-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrr34 RnJvbSBjYzRjMzQ2NzYxMGM0ZjA2ZDAzNDk1NjY4NWNlMWZkM2EwYmMzMDRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2 LzIwXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs 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 c3BpLmMKaW5kZXggZDY1MTZiMWJjYTMuLjdkZWZjYTMzYmUyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwpAQCAt Mjk4NSw2ICsyOTg1LDkgQEAgX1NQSV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJCQljYXNl IFJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjM6CiAJCQkJZXJyY29udGV4dCgiUEwvcGdTUUwgYXNz aWdubWVudCBcIiVzXCIiLCBxdWVyeSk7CiAJCQkJYnJlYWs7CisJCQljYXNlIFJBV19QQVJTRV9Q TFBHU1FMX0xFVDoKKwkJCQllcnJjb250ZXh0KCJMRVQgc3RhdGVtZW50IFwiJXNcIiIsIHF1ZXJ5 KTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZXJyY29udGV4dCgiU1FMIHN0YXRlbWVu dCBcIiVzXCIiLCBxdWVyeSk7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCA0NmNl NjhlOGFkNy4uMWRlOWM3NjJjZDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMTkyMiw2ICsxOTIy LDE4IEBAIHRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10 KQogCiAJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBxdWVyeTsKIAorCS8qCisJICogSW5zaWRlIFBM L3BnU1FMIHdlIGRvbid0IHdhbnQgdG8gZXhlY3V0ZSBMRVQgc3RhdGVtZW50IGFzIHV0aWxpdHkK KwkgKiBjb21tYW5kLCBiZWNhdXNlIGl0IGRpc2FsbG93IHRvIGV4ZWN1dGUgZXhwcmVzc2lvbiBh cyBzaW1wbGUKKwkgKiBleHByZXNzaW9uLiBTbyBmb3IgUEwvcGdTUUwgd2UgaGF2ZSBleHRyYSBw YXRoLCBhbmQgd2UgcmV0dXJuIFNFTEVDVC4KKwkgKiBUaGVuIGl0IGNhbiBiZSBleGVjdXRlZCBi eSBleGVjX2V2YWxfZXhwci4gUmVzdWx0IGlzIGRpcnJlY3RseSBhc3NpZ25lZAorCSAqIHRvIHRh cmdldCBzZXNzaW9uIHZhcmlhYmxlIGluc2lkZSBQTC9wZ1NRTCBMRVQgc3RhdGVtZW50IGhhbmRs ZXIuIFRoaXMKKwkgKiBpcyBleHRyYSBjb2RlLCBleHRyYSBwYXRoLCBidXQgcG9zc2liaWxpdHkg dG8gZ2V0IGZhc3RlciBleGVjdXRpb24gaXMKKwkgKiB0b28gYXR0cmFjdGl2ZS4KKwkgKi8KKwlp ZiAoc3RtdC0+cGxwZ3NxbF9tb2RlKQorCQlyZXR1cm4gcXVlcnk7CisKIAkvKiByZXByZXNlbnQg dGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5ICovCiAJcmVzdWx0ID0gbWFrZU5vZGUoUXVl cnkpOwogCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4 IDI3ZTMxYTRjMmNiLi4xMzZjZDg5YzU4NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC04MjksNiArODI5LDcg QEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExp c3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjEK ICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lH TjMKKyV0b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8qIFByZWNlZGVuY2U6IGxvd2VzdCB0 byBoaWdoZXN0ICovCkBAIC05NjAsNiArOTYxLDEzIEBAIHBhcnNlX3RvcGxldmVsOgogCQkJCXBn X3l5Z2V0X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9CiAJCQkJCWxpc3RfbWFrZTEobWFr ZVJhd1N0bXQoKE5vZGUgKikgbiwgMCkpOwogCQkJfQorCQkJfCBNT0RFX1BMUEdTUUxfTEVUIExl dFN0bXQKKwkJCXsKKwkJCQlMZXRTdG10ICpuID0gKExldFN0bXQgKikgJDI7CisJCQkJbi0+cGxw Z3NxbF9tb2RlID0gdHJ1ZTsKKwkJCQlwZ195eWdldF9leHRyYSh5eXNjYW5uZXIpLT5wYXJzZXRy ZWUgPQorCQkJCQlsaXN0X21ha2UxKG1ha2VSYXdTdG10KChOb2RlICopIG4sIDApKTsKKwkJCX0K IAkJOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCmluZGV4IDExODQ4OGMzZjMwLi5mOTQzMGEzMjkxOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZXIuYwpAQCAtNjIsNiArNjIsNyBAQCByYXdfcGFyc2VyKGNvbnN0IGNoYXIg KnN0ciwgUmF3UGFyc2VNb2RlIG1vZGUpCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMV0g PSBNT0RFX1BMUEdTUUxfQVNTSUdOMSwKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04yXSA9 IE1PREVfUExQR1NRTF9BU1NJR04yLAogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjNdID0g TU9ERV9QTFBHU1FMX0FTU0lHTjMsCisJCQlbUkFXX1BBUlNFX1BMUEdTUUxfTEVUXSA9IE1PREVf UExQR1NRTF9MRVQsCiAJCX07CiAKIAkJeXlleHRyYS5oYXZlX2xvb2thaGVhZCA9IHRydWU7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMDI3ZTM5MTk2OWMuLjdjZjJkZWFjYTQ2IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMDk2LDYgKzIwOTYsOCBAQCB0eXBlZGVmIHN0cnVjdCBMZXRT dG10CiAJTm9kZVRhZwkJdHlwZTsKIAlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlh YmxlICovCiAJTm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlib29s CQlwbHBnc3FsX21vZGU7CS8qIHRydWUsIHdoZW4gY29tbWFuZCB3aWxsIGJlIGV4ZWN1dGVkCisJ CQkJCQkJCSAqIChwYXJzZWQpIGJ5IHBscGdzcWwgcnVudGltZSAqLwogCWludAkJCWxvY2F0aW9u OwogfSBMZXRTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmgg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmgKaW5kZXggYmUxODRlYzUwNjYuLmVmYmM3NmYw YWQ0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlci5oCkBAIC0zMyw2ICszMyw5IEBACiAgKiBSQVdfUEFSU0VfUExQ R1NRTF9BU1NJR05uOiBwYXJzZSBhIFBML3BnU1FMIGFzc2lnbm1lbnQgc3RhdGVtZW50LAogICog YW5kIHJldHVybiBhIG9uZS1lbGVtZW50IExpc3QgY29udGFpbmluZyBhIFJhd1N0bXQgbm9kZS4g ICJuIgogICogZ2l2ZXMgdGhlIG51bWJlciBvZiBkb3R0ZWQgbmFtZXMgY29tcHJpc2luZyB0aGUg dGFyZ2V0IENvbHVtblJlZi4KKyAqCisgKiBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6IHBhcnNlIGEg TEVUIHN0YXRlbWVudCwgYW5kIHJldHVybiBhCisgKiBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5p bmcgYSBSYXdTdG10IG5vZGUuCiAgKi8KIHR5cGVkZWYgZW51bQogewpAQCAtNDIsNiArNDUsNyBA QCB0eXBlZGVmIGVudW0KIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04xLAogCVJBV19QQVJTRV9Q TFBHU1FMX0FTU0lHTjIsCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMywKKwlSQVdfUEFSU0Vf UExQR1NRTF9MRVQsCiB9IFJhd1BhcnNlTW9kZTsKIAogLyogVmFsdWVzIGZvciB0aGUgYmFja3Ns YXNoX3F1b3RlIEdVQyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXggZWE5NzQwZTNmODkuLjM0ZTYw MjliMjg5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisrKyBiL3Ny Yy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9z cGkuaCIKICNpbmNsdWRlICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5oIgpAQCAtMzI4LDYgKzMy OSw4IEBAIHN0YXRpYyBpbnQJZXhlY19zdG10X2NvbW1pdChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0 YXRlLAogCQkJCQkJCSBQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyBpbnQJZXhl Y19zdG10X3JvbGxiYWNrKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQkJCQkJICAgUExw Z1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyBpbnQJZXhlY19zdG10X2xldChQTHBn U1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAorCQkJCQkJICBQTHBnU1FMX3N0bXRfbGV0ICpsZXQpOwog CiBzdGF0aWMgdm9pZCBwbHBnc3FsX2VzdGF0ZV9zZXR1cChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0 YXRlLAogCQkJCQkJCQkgUExwZ1NRTF9mdW5jdGlvbiAqZnVuYywKQEAgLTIxMjAsNiArMjEyMywx MCBAQCBleGVjX3N0bXRzKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIExpc3QgKnN0bXRzKQog CQkJCXJjID0gZXhlY19zdG10X3JvbGxiYWNrKGVzdGF0ZSwgKFBMcGdTUUxfc3RtdF9yb2xsYmFj ayAqKSBzdG10KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJ CXJjID0gZXhlY19zdG10X2xldChlc3RhdGUsIChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOwor CQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCS8qIHBvaW50IGVycl9zdG10IHRvIHBhcmVu dCwgc2luY2UgdGhpcyBvbmUgc2VlbXMgY29ycnVwdCAqLwogCQkJCWVzdGF0ZS0+ZXJyX3N0bXQg PSBzYXZlX2VzdG10OwpAQCAtNTAwMyw2ICs1MDEwLDU0IEBAIGV4ZWNfc3RtdF9yb2xsYmFjayhQ THBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKnN0bXQpCiAJ cmV0dXJuIFBMUEdTUUxfUkNfT0s7CiB9CiAKKy8qIC0tLS0tLS0tLS0KKyAqIGV4ZWNfc3RtdF9s ZXQJCQlFdmFsdWF0ZSBhbiBleHByZXNzaW9uIGFuZAorICoJCQkJCXB1dCB0aGUgcmVzdWx0IGlu dG8gYSBzZXNzaW9uIHZhcmlhYmxlLgorICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgaW50Citl eGVjX3N0bXRfbGV0KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIFBMcGdTUUxfc3RtdF9sZXQg KnN0bXQpCit7CisJYm9vbAkJaXNOdWxsOworCU9pZAkJCXZhbHR5cGU7CisJaW50MzIJCXZhbHR5 cG1vZDsKKwlEYXR1bQkJdmFsdWU7CisJT2lkCQkJdmFyaWQ7CisKKwlMaXN0CSAgICpwbGFuc291 cmNlczsKKwlDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlOworCisJdmFsdWUgPSBleGVjX2V2 YWxfZXhwcihlc3RhdGUsCisJCQkJCQkgICBzdG10LT5leHByLAorCQkJCQkJICAgJmlzTnVsbCwK KwkJCQkJCSAgICZ2YWx0eXBlLAorCQkJCQkJICAgJnZhbHR5cG1vZCk7CisKKwkvKgorCSAqIE9p ZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBzdG9yZWQgaW4gUXVlcnkgc3RydWN0dXJl LiBJdCBpcworCSAqIHNhZmVyIHRvIHJlYWQgdGhpcyB2YWx1ZSBkaXJlY3RseSBmcm9tIHRoZSBw bGFuIHRoYW4gdG8gaG9sZCB0aGlzIHZhbHVlCisJICogaW4gdGhlIHBscGdzcWwgY29udGV4dCwg YmVjYXVzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gaGFuZGxlCisJICogaW52YWxpZGF0aW9uIG9m IHRoZSBjYWNoZWQgdmFsdWUuIE5leHQgb3BlcmF0aW9ucyBhcmUgcmVhZCBvbmx5IHdpdGhvdXQK KwkgKiBhbnkgYWxsb2NhdGlvbnMsIHNvIHdlIGNhbiBleHBlY3QgdGhhdCByZXRyaWV2aW5nIHZh cmlkIGZyb20gUXVlcnkKKwkgKiBzaG91bGQgYmUgZmFzdC4KKwkgKi8KKwlwbGFuc291cmNlcyA9 IFNQSV9wbGFuX2dldF9wbGFuX3NvdXJjZXMoc3RtdC0+ZXhwci0+cGxhbik7CisJaWYgKGxpc3Rf bGVuZ3RoKHBsYW5zb3VyY2VzKSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBsZW5n dGggb2YgcGxhbnNvdXJjZXMgb2YgcXVlcnkgZm9yIExFVCBzdGF0ZW1lbnQiKTsKKworCXBsYW5z b3VyY2UgPSAoQ2FjaGVkUGxhblNvdXJjZSAqKSBsaW5pdGlhbChwbGFuc291cmNlcyk7CisJaWYg KGxpc3RfbGVuZ3RoKHBsYW5zb3VyY2UtPnF1ZXJ5X2xpc3QpICE9IDEpCisJCWVsb2coRVJST1Is ICJ1bmV4cGVjdGVkIGxlbmd0aCBvZiBwbGFuc291cmNlIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVt ZW50Iik7CisKKwl2YXJpZCA9IGxpbml0aWFsX25vZGUoUXVlcnksIHBsYW5zb3VyY2UtPnF1ZXJ5 X2xpc3QpLT5yZXN1bHRWYXJpYWJsZTsKKwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQllbG9n KEVSUk9SLCAib2lkIG9mIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB2YWxpZCIpOwor CisJU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2sodmFyaWQsIHZhbHVlLCBpc051 bGwpOworCisJcmV0dXJuIFBMUEdTUUxfUkNfT0s7Cit9CisKIC8qIC0tLS0tLS0tLS0KICAqIGV4 ZWNfYXNzaWduX2V4cHIJCQlQdXQgYW4gZXhwcmVzc2lvbidzIHJlc3VsdCBpbnRvIGEgdmFyaWFi bGUuCiAgKiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVu Y3MuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCmluZGV4IGVlYjdjNGQ3YzA0Li4x YjM5MzUxZGI3ZiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMKKysr IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMKQEAgLTI4OCw2ICsyODgsOCBAQCBwbHBn c3FsX3N0bXRfdHlwZW5hbWUoUExwZ1NRTF9zdG10ICpzdG10KQogCQkJcmV0dXJuICJDT01NSVQi OwogCQljYXNlIFBMUEdTUUxfU1RNVF9ST0xMQkFDSzoKIAkJCXJldHVybiAiUk9MTEJBQ0siOwor CQljYXNlIFBMUEdTUUxfU1RNVF9MRVQ6CisJCQlyZXR1cm4gIkxFVCI7CiAJfQogCiAJcmV0dXJu ICJ1bmtub3duIjsKQEAgLTM3MCw2ICszNzIsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX3BlcmZvcm0o UExwZ1NRTF9zdG10X3BlcmZvcm0gKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9jYWxsKFBMcGdT UUxfc3RtdF9jYWxsICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfY29tbWl0KFBMcGdTUUxfc3Rt dF9jb21taXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9yb2xsYmFjayhQTHBnU1FMX3N0bXRf cm9sbGJhY2sgKnN0bXQpOworc3RhdGljIHZvaWQgZnJlZV9sZXQoUExwZ1NRTF9zdG10X2xldCAq c3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2V4cHIoUExwZ1NRTF9leHByICpleHByKTsKIAogCkBA IC00NTksNiArNDYyLDkgQEAgZnJlZV9zdG10KFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJY2FzZSBQ TFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlmcmVlX3JvbGxiYWNrKChQTHBnU1FMX3N0bXRfcm9s bGJhY2sgKikgc3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJ ZnJlZV9sZXQoKFBMcGdTUUxfc3RtdF9sZXQgKikgc3RtdCk7CisJCQlicmVhazsKIAkJZGVmYXVs dDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgY21kX3R5cGU6ICVkIiwgc3RtdC0+Y21k X3R5cGUpOwogCQkJYnJlYWs7CkBAIC03MTMsNiArNzE5LDEyIEBAIGZyZWVfZ2V0ZGlhZyhQTHBn U1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIHsKIH0KIAorc3RhdGljIHZvaWQKK2ZyZWVfbGV0KFBM cGdTUUxfc3RtdF9sZXQgKnN0bXQpCit7CisJZnJlZV9leHByKHN0bXQtPmV4cHIpOworfQorCiBz dGF0aWMgdm9pZAogZnJlZV9leHByKFBMcGdTUUxfZXhwciAqZXhwcikKIHsKQEAgLTgxNSw2ICs4 MjcsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX3BlcmZvcm0oUExwZ1NRTF9zdG10X3BlcmZvcm0gKnN0 bXQpOwogc3RhdGljIHZvaWQgZHVtcF9jYWxsKFBMcGdTUUxfc3RtdF9jYWxsICpzdG10KTsKIHN0 YXRpYyB2b2lkIGR1bXBfY29tbWl0KFBMcGdTUUxfc3RtdF9jb21taXQgKnN0bXQpOwogc3RhdGlj IHZvaWQgZHVtcF9yb2xsYmFjayhQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKnN0bXQpOworc3RhdGlj IHZvaWQgZHVtcF9sZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1w X2V4cHIoUExwZ1NRTF9leHByICpleHByKTsKIAogCkBAIC05MTQsNiArOTI3LDkgQEAgZHVtcF9z dG10KFBMcGdTUUxfc3RtdCAqc3RtdCkKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJ CQlkdW1wX3JvbGxiYWNrKChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7CiAJCQlicmVh azsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJZHVtcF9sZXQoKFBMcGdTUUxfc3RtdF9s ZXQgKikgc3RtdCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJl Y29nbml6ZWQgY21kX3R5cGU6ICVkIiwgc3RtdC0+Y21kX3R5cGUpOwogCQkJYnJlYWs7CkBAIC0x NTkwLDYgKzE2MDYsMTQgQEAgZHVtcF9nZXRkaWFnKFBMcGdTUUxfc3RtdF9nZXRkaWFnICpzdG10 KQogCXByaW50ZigiXG4iKTsKIH0KIAorc3RhdGljIHZvaWQKK2R1bXBfbGV0KFBMcGdTUUxfc3Rt dF9sZXQgKnN0bXQpCit7CisJZHVtcF9pbmQoKTsKKwlkdW1wX2V4cHIoc3RtdC0+ZXhwcik7CisJ cHJpbnRmKCJcbiIpOworfQorCiBzdGF0aWMgdm9pZAogZHVtcF9leHByKFBMcGdTUUxfZXhwciAq ZXhwcikKIHsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55CmluZGV4IDgxODJjZTI4YWExLi4zZjE1NWM0ZjhhNCAx MDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZ3JhbS55CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljCXZvaWQJCQljaGVj a19yYWlzZV9wYXJhbWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldHlwZSA8c3Rt dD4Jc3RtdF9yZXR1cm4gc3RtdF9yYWlzZSBzdG10X2Fzc2VydCBzdG10X2V4ZWNzcWwKICV0eXBl IDxzdG10PglzdG10X2R5bmV4ZWN1dGUgc3RtdF9mb3Igc3RtdF9wZXJmb3JtIHN0bXRfY2FsbCBz dG10X2dldGRpYWcKICV0eXBlIDxzdG10PglzdG10X29wZW4gc3RtdF9mZXRjaCBzdG10X21vdmUg c3RtdF9jbG9zZSBzdG10X251bGwKLSV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3JvbGxi YWNrCisldHlwZSA8c3RtdD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjayBzdG10X2xldAogJXR5 cGUgPHN0bXQ+CXN0bXRfY2FzZSBzdG10X2ZvcmVhY2hfYQogCiAldHlwZSA8bGlzdD4JcHJvY19l eGNlcHRpb25zCkBAIC0zMDcsNiArMzA3LDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9w YXJhbWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGtleXdvcmQ+CUtf SU5UTwogJXRva2VuIDxrZXl3b3JkPglLX0lTCiAldG9rZW4gPGtleXdvcmQ+CUtfTEFTVAorJXRv a2VuIDxrZXl3b3JkPglLX0xFVAogJXRva2VuIDxrZXl3b3JkPglLX0xPRwogJXRva2VuIDxrZXl3 b3JkPglLX0xPT1AKICV0b2tlbiA8a2V5d29yZD4JS19NRVJHRQpAQCAtODc2LDYgKzg3Nyw4IEBA IHByb2Nfc3RtdAkJOiBwbF9ibG9jayAnOycKIAkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCXwgc3Rt dF9yb2xsYmFjawogCQkJCQkJeyAkJCA9ICQxOyB9CisJCQkJfCBzdG10X2xldAorCQkJCQkJeyAk JCA9ICQxOyB9CiAJCQkJOwogCiBzdG10X3BlcmZvcm0JOiBLX1BFUkZPUk0KQEAgLTk5Miw2ICs5 OTUsMjkgQEAgc3RtdF9hc3NpZ24JCTogVF9EQVRVTQogCQkJCQl9CiAJCQkJOwogCitzdG10X2xl dAkJOiBLX0xFVAorCQkJCQl7CisJCQkJCQlQTHBnU1FMX3N0bXRfbGV0ICpuZXc7CisJCQkJCQlS YXdQYXJzZU1vZGUgcG1vZGU7CisKKwkJCQkJCXBtb2RlID0gUkFXX1BBUlNFX1BMUEdTUUxfTEVU OworCisJCQkJCQluZXcgPSBwYWxsb2MwKHNpemVvZihQTHBnU1FMX3N0bXRfbGV0KSk7CisJCQkJ CQluZXctPmNtZF90eXBlID0gUExQR1NRTF9TVE1UX0xFVDsKKwkJCQkJCW5ldy0+bGluZW5vICAg PSBwbHBnc3FsX2xvY2F0aW9uX3RvX2xpbmVubyhAMSk7CisJCQkJCQluZXctPnN0bXRpZCA9ICsr cGxwZ3NxbF9jdXJyX2NvbXBpbGUtPm5zdGF0ZW1lbnRzOworCisJCQkJCQkvKiBwdXNoIGJhY2sg dGhlIGhlYWQgbmFtZSB0byBpbmNsdWRlIGl0IGluIHRoZSBzdG10ICovCisJCQkJCQlwbHBnc3Fs X3B1c2hfYmFja190b2tlbihLX0xFVCk7CisJCQkJCQluZXctPmV4cHIgPSByZWFkX3NxbF9jb25z dHJ1Y3QoJzsnLCAwLCAwLCAiOyIsCisJCQkJCQkJCQkJCQkJICAgcG1vZGUsCisJCQkJCQkJCQkJ CQkJICAgZmFsc2UsIHRydWUsCisJCQkJCQkJCQkJCQkJICAgTlVMTCwgTlVMTCk7CisKKwkJCQkJ CSQkID0gKFBMcGdTUUxfc3RtdCAqKW5ldzsKKwkJCQkJfQorCQkJCTsKKwogc3RtdF9nZXRkaWFn CTogS19HRVQgZ2V0ZGlhZ19hcmVhX29wdCBLX0RJQUdOT1NUSUNTIGdldGRpYWdfbGlzdCAnOycK IAkJCQkJewogCQkJCQkJUExwZ1NRTF9zdG10X2dldGRpYWcgKm5ldzsKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9yZXNlcnZlZF9rd2xpc3QuaAppbmRleCBkMzM4ZTlmNjM3NC4uYmU5NGFhNzUxYTQgMTAw NjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaAorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKQEAgLTQwLDYgKzQwLDcgQEAg UEdfS0VZV09SRCgiZnJvbSIsIEtfRlJPTSkKIFBHX0tFWVdPUkQoImlmIiwgS19JRikKIFBHX0tF WVdPUkQoImluIiwgS19JTikKIFBHX0tFWVdPUkQoImludG8iLCBLX0lOVE8pCitQR19LRVlXT1JE KCJsZXQiLCBLX0xFVCkKIFBHX0tFWVdPUkQoImxvb3AiLCBLX0xPT1ApCiBQR19LRVlXT1JEKCJu b3QiLCBLX05PVCkKIFBHX0tFWVdPUkQoIm51bGwiLCBLX05VTEwpCmRpZmYgLS1naXQgYS9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF91bnJlc2VydmVkX2t3bGlzdC5oCmluZGV4IDY3MGI0Y2YwYzFlLi42MDI2MjhkN2QyYSAx MDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmgKKysr IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmgKQEAgLTY5LDYgKzY5 LDcgQEAgUEdfS0VZV09SRCgiaW5mbyIsIEtfSU5GTykKIFBHX0tFWVdPUkQoImluc2VydCIsIEtf SU5TRVJUKQogUEdfS0VZV09SRCgiaXMiLCBLX0lTKQogUEdfS0VZV09SRCgibGFzdCIsIEtfTEFT VCkKK1BHX0tFWVdPUkQoImxldCIsIEtfTEVUKQogUEdfS0VZV09SRCgibG9nIiwgS19MT0cpCiBQ R19LRVlXT1JEKCJtZXJnZSIsIEtfTUVSR0UpCiBQR19LRVlXT1JEKCJtZXNzYWdlIiwgS19NRVNT QUdFKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaCBiL3NyYy9wbC9w bHBnc3FsL3NyYy9wbHBnc3FsLmgKaW5kZXggNTBjM2IyODQ3MmIuLmJiNDAwNjI5YWRiIDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVudW0gUExwZ1NRTF9z dG10X3R5cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQTFBHU1FMX1NUTVRfQ09NTUlULAogCVBM UEdTUUxfU1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NUTVRfTEVULAogfSBQTHBnU1FMX3N0bXRf dHlwZTsKIAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9z dG10X2Fzc2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsKIH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsK IAorLyoKKyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10 X2xldAoreworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90eXBlOworCWludAkJCWxpbmVubzsKKwl1 bnNpZ25lZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhwciAqZXhwcjsKK30gUExwZ1NRTF9zdG10 X2xldDsKKwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKaW5kZXggMzE4YzY3YjU4ZDUuLjlmM2FmMzA3OWEzIDEwMDY0NAotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdApAQCAtMTg4Nyw2ICsxODg3LDcgQEAgUExwZ1NRTF9zdG10X2ZvcnEKIFBMcGdTUUxf c3RtdF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwogUExwZ1NRTF9zdG10X2lmCitQTHBnU1FM X3N0bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExwZ1NRTF9zdG10X29wZW4KIFBMcGdTUUxf c3RtdF9wZXJmb3JtCi0tIAoyLjQ2LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20240829-0014-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrrh6 RnJvbSBmZDZkYzVmZDQ0ZTRkYmI3MTNmNDQyNWNjMzQxYTdkOGE2OWM3NDNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDY6MzE6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDE0 LzIwXSBhbGxvdyByZWFkIGFuIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgZGlyZWN0bHkgZnJv bQogZXhwcmVzc2lvbiBleGVjdXRvcgoKVGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgY2FuIGJlIGNh bGxlZCBkaXJlY3RseSAobm90IGluc2lkZSBxdWVyeSBleGVjdXRvcikKd2hlbiBleHByZXNzaW9u IGlzIGV2YWx1YXRlZCBhcyBzaW1wbGUgZXhwcmVzc2lvbiBpbiBwbHBnc3FsIG9yIHdoZW4gZXhw cmVzc2lvbgppcyBhbiBhcmd1bWVudCBvZiBDQUxMIG9yIEVYRUNVVEUgc3RhdGVtZW50cy4gRm9y IHRoZXNlIGNhc2VzIHdlIG5lZWQgdG8gYWxsb3cgZGlyZWN0CmFjY2VzcyB0byBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGZyb20gZXhlY3V0b3IuIFdlIGNhbiBkbyBpdCwgYmVjYXVzZQp3 ZSBrbm93IHNvIHRoZSBleHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQgdW5kZXIgcXVlcnkgYW5k IGNhbm5vdCBiZQpldmFsdWF0ZWQgaW5zaWRlIHBhcmFsbGVsIHdvcmtlci4KClRoaXMgcGF0Y2gg ZW5hYmxlcyBzZXNzaW9uIHZhcmlhYmxlcyBmb3Igc2ltcGxlIGV4cHJlc3Npb24gZXZhbHVhdGlv bi4KClRoaXMgcGF0Y2ggZW5hYmxlcyB1c2FnZSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBhcmd1bWVu dHMgb2YgQ0FMTCBzdG10LgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAg ICAgICAgICAgICB8ICA4IC0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAg ICAgICAgICAgfCA4MiArKysrKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jICAgICAgICAgfCAxNiArKysrCiBzcmMvYmFja2VuZC9qaXQvbGx2bS9s bHZtaml0X2V4cHIuYyAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyAgICAgICAgICAgICAgICAgIHwgIDggLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmggICAgICAgICAgICAgICB8IDEyICsrLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMg ICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgICAgfCAyNiArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlv bnMoKyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCAyMDQ2ZmE4 YTU0My4uMzY0ZGY3NzdlYTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBh cmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTMzOCwxNCArMzM4 LDYgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlZFN0YXRlbWVu dCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAotCS8qCi0JICogVGhlIGFyZ3Vt ZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAq IGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Npb24gdmFyaWFi bGVzIHlldC4KLQkgKiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0ZXIuCi0JICovCi0JaWYgKHBzdGF0 ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJpYWJs ZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJLyogUHJlcGFyZSB0aGUgZXhw cmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJM aXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggYmZkZjE1 YTUwNzEuLjAzNmRiZmM1OGY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTEwMDUsMjUg KzEwMDUsNjkgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUs CiAJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRl LT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CiAJCQkJCQkJfQogCi0JCQkJCQkJQXNzZXJ0KGVz X3Nlc3Npb25fdmFyaWFibGVzKTsKLQotCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hlY2tz ICovCi0JCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxl cykKLQkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0g aXMgb3V0IG9mIHJhbmdlIik7Ci0KLQkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNb cGFyYW0tPnBhcmFtaWRdOwotCi0JCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFt dHlwZSkKLQkJCQkJCQkJZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUgaXMgZGlm ZmVyZW50IHRoYW4gUEFSQU1fVkFSSUFCTEUgdHlwZSIpOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkg KiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQotCQkJCQkJCSAqIGNvbnN0YW50 LgotCQkJCQkJCSAqLwotCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKLQkJCQkJ CQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOwotCQkJCQkJCXNjcmF0Y2gu ZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKLQkJCQkJCQlFeHByRXZhbFB1c2hTdGVw KHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJaWYgKGVzX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJ CQkJCXsKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogVGhpcyBwYXRoIGlzIHVzZWQgd2hlbiBleHBy ZXNzaW9uIGlzCisJCQkJCQkJCSAqIGV2YWx1YXRlZCBpbnNpZGUgcXVlcnkgZXZhbHVhdGlvbi4g Rm9yCisJCQkJCQkJCSAqIGVuc3VyaW5nIG9mIGltbXV0YWJpbGl0eSBvZiBzZXNzaW9uIHZhcmlh YmxlCisJCQkJCQkJCSAqIGluc2lkZSBxdWVyeSB3ZSB1c2Ugc3BlY2lhbCBidWZmZXIgd2l0aCBj b3B5CisJCQkJCQkJCSAqIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoaXMgbWV0aG9kIGhl bHBzCisJCQkJCQkJCSAqIHdpdGggcGFyYWxsZWwgZXhlY3V0aW9uIHRvby4KKwkJCQkJCQkJICov CisKKwkJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KKwkJCQkJCQkJaWYgKHBh cmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJCWVsb2co RVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIp OworCisJCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07 CisKKwkJCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJCQkJCQkJ CWVsb2coRVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBB UkFNX1ZBUklBQkxFIHR5cGUiKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNh c2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJ ICovCisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRj aC5kLmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0 dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRl LCAmc2NyYXRjaCk7CisJCQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCUFj bFJlc3VsdAlhY2xyZXN1bHQ7CisJCQkJCQkJCU9pZAkJCXZhcmlkID0gcGFyYW0tPnBhcmFtdmFy aWQ7CisJCQkJCQkJCU9pZAkJCXZhcnR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOworCisJCQkJCQkJ CUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJ biBzb21lIGNhc2VzIChwbHBnc3FsJ3Mgc2ltcGxlIGV4cHJlc3Npb24KKwkJCQkJCQkJICogZXZh bHVhdGlvbiBvciBldmFsdWF0aW9uIG9mIENBTEwgYXJndW1lbnRzKSwKKwkJCQkJCQkJICogdGhl IGV4cHJlc3Npb24gZXhlY3V0b3IgaXMgY2FsbGVkIGRpcmVjdGx5LgorCQkJCQkJCQkgKiBXZSBj YW4gYWxsb3cgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uCisJCQkJCQkJCSAqIHZhcmlhYmxlcyAo Y29weSBvbmx5KSwgYmVjYXVzZSB3ZSBrbm93LCBzbworCQkJCQkJCQkgKiBvdXRzaWRlIGlzIG5v dCBhbnkgcXVlcnkgKGFuZCBleHByZXNzaW9uCisJCQkJCQkJCSAqIGNhbm5vdCBiZSBleGVjdXRl ZCBwYXJhbGxlbCkuCisJCQkJCQkJCSAqCisJCQkJCQkJCSAqIEluIHRoaXMgY2FzZSB3ZSBzaG91 bGQgdG8gZG8gYWNsY2hlY2ssCisJCQkJCQkJCSAqIGJlY2F1c2UgdXN1YWwgYWNsY2hlY2sgZnJv bQorCQkJCQkJCQkgKiBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0IGlzIG5vdCBleGVjdXRlZCBpbgor CQkJCQkJCQkgKiB0aGlzIGNhc2UuIEZvcnR1bmF0ZWx5IGl0IGlzIGp1c3Qgb25jZSBwZXIKKwkJ CQkJCQkJICogdHJhbnNhY3Rpb24uCisJCQkJCQkJCSAqLworCQkJCQkJCQlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkJ CUdldFVzZXJJZCgpLCBBQ0xfU0VMRUNUKTsKKwkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xD SEVDS19PSykKKwkJCQkJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklB QkxFLAorCQkJCQkJCQkJCQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOwor CisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJMRTsKKwkJCQkJCQkJ c2NyYXRjaC5kLnZwYXJhbS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlzY3JhdGNoLmQudnBhcmFt LnZhcnR5cGUgPSB2YXJ0eXBlOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2Ny YXRjaCk7CisJCQkJCQkJfQogCQkJCQkJfQogCQkJCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jCmluZGV4IDc3Mzk0ZTc2YzM3Li41ZTBiYTBlYjZhYSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVk ZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3Ivbm9kZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC00NTAsNiArNDUx LDcgQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250 ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMsCiAJCSYmQ0FTRV9F RU9QX1BBUkFNX0VYVEVSTiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJCSYmQ0FT RV9FRU9QX1BBUkFNX1ZBUklBQkxFLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9TRVQsCiAJCSYmQ0FT RV9FRU9QX0NBU0VfVEVTVFZBTCwKIAkJJiZDQVNFX0VFT1BfTUFLRV9SRUFET05MWSwKQEAgLTEw OTksNiArMTEwMSwyMCBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29u dGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7CiAJCX0KIAorCQlF RU9fQ0FTRShFRU9QX1BBUkFNX1ZBUklBQkxFKQorCQl7CisJCQkvKgorCQkJICogRGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlICh3aXRob3V0IGJ1ZmZlcmluZykuIEJlY2F1c2UKKwkJ CSAqIHJldHVybmVkIHZhbHVlIGNhbiBiZSB1c2VkICh3aXRob3V0IGFuIGFzc2lnbmVtZW50KSBh ZnRlciB0aGUKKwkJCSAqIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgdXBkYXRlZCwg d2UgaGF2ZSB0byB1c2UgYW4gY29weQorCQkJICogb2Ygc3RvcmVkIHZhbHVlIGV2ZXJ5IHRpbWUu CisJCQkgKi8KKwkJCSpvcC0+cmVzdmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNo ZWNrKG9wLT5kLnZwYXJhbS52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCW9wLT5yZXNudWxsLAorCQkJ CQkJCQkJCQkJCQkJb3AtPmQudnBhcmFtLnZhcnR5cGUpOworCQkJRUVPX05FWFQoKTsKKwkJfQor CiAJCUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQgb2YgbGluZSwgdW5s aWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNld2lzZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0 X2V4cHIuYwppbmRleCA0OGNjZGI5NDJhMi4uNmM3NDQ4N2Y4ZmUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jCkBAIC0xMTQ1LDYgKzExNDUsMTIgQEAgbGx2bV9jb21waWxlX2V4cHIo RXhwclN0YXRlICpzdGF0ZSkKIAkJCQkJYnJlYWs7CiAJCQkJfQogCisJCQljYXNlIEVFT1BfUEFS QU1fVkFSSUFCTEU6CisJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsUGFyYW1W YXJpYWJsZSIsCisJCQkJCQkJCXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKKwkJCQlMTFZNQnVp bGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOworCQkJCWJyZWFrOworCiAJCQljYXNlIEVFT1Bf UEFSQU1fU0VUOgogCQkJCWJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFBhcmFtU2V0 IiwKIAkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5k ZXggYmQxYjk5ZGM4YTcuLjQ2Y2U2OGU4YWQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTMzNzcs MTQgKzMzNzcsNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxT dG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRp b24pOwogCi0JLyoKLQkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFs dWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIHBh dGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKLQkgKiBlbmFi bGVkIGxhdGVyLgotCSAqLwotCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJ ZWxvZyhFUlJPUiwgInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1l bnQiKTsKLQogCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2RlKTsKIAogCWZleHBy ID0gY2FzdE5vZGUoRnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY0V4cHIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKaW5kZXgg ZWVjMGFhNjk5ZTUuLmYzMWJlMjU2NjllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRv ci9leGVjRXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKQEAgLTE1 NiwxMCArMTU2LDExIEBAIHR5cGVkZWYgZW51bSBFeHByRXZhbE9wCiAJRUVPUF9CT09MVEVTVF9J U19GQUxTRSwKIAlFRU9QX0JPT0xURVNUX0lTX05PVF9GQUxTRSwKIAotCS8qIGV2YWx1YXRlIFBB UkFNX0VYRUMvRVhURVJOIHBhcmFtZXRlcnMgKi8KKwkvKiBldmFsdWF0ZSBQQVJBTV9FWEVDL0VY VEVSTi9WQVJJQUJMRSBwYXJhbWV0ZXJzICovCiAJRUVPUF9QQVJBTV9FWEVDLAogCUVFT1BfUEFS QU1fRVhURVJOLAogCUVFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJRUVPUF9QQVJBTV9WQVJJQUJMRSwK IAkvKiBzZXQgUEFSQU1fRVhFQyB2YWx1ZSAqLwogCUVFT1BfUEFSQU1fU0VULAogCkBAIC00MDks NiArNDEwLDEzIEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJT2lkCQkJcGFyYW10 eXBlOwkvKiBPSUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJfQkJCWNwYXJhbTsKIAor CQkvKiBmb3IgRUVPUF9QQVJBTV9WQVJJQUJMRSAqLworCQlzdHJ1Y3QKKwkJeworCQkJT2lkCQkJ dmFyaWQ7CQkvKiBPSUQgb2YgYXNzaWduZWQgdmFyaWFibGUgKi8KKwkJCU9pZAkJCXZhcnR5cGU7 CS8qIE9JRCBvZiBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLworCQl9CQkJdnBhcmFtOworCiAJCS8q IGZvciBFRU9QX0NBU0VfVEVTVFZBTC9ET01BSU5fVEVTVFZBTCAqLwogCQlzdHJ1Y3QKIAkJewpA QCAtODMwLDYgKzgzOCw4IEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1TZXQoRXhwclN0YXRl ICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkgRXhwckNvbnRleHQgKmVjb250ZXh0 KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhwclN0YXRlICpzdGF0ZSwgRXhw ckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiB2 b2lkIEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAg Km9wLAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVj RXZhbENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsK IGV4dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsQ3VycmVudE9mRXhwcihFeHBy U3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3Bs cGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggZWMw N2YxY2JhZTkuLjc4OWMzMTIzYjBjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMjExLDggKzIxMSw3 IEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKIC0tIHNob3VsZCB0byBmYWls CiBTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSBwbHBnc3FsX3N2X3ZhcjEKLUNPTlRFWFQ6ICBTUUwgZXhwcmVzc2lv biAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxp bmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMo KSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGY3 NmRlYjU2ZDVhLi5lYTk3NDBlM2Y4OSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MTAzLDggKzgx MDMsNyBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5 LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRD b3VudCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAotCQlxdWVyeS0+aGFzU2Vzc2lvblZh cmlhYmxlcykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8q CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IGRlMjI5YmEzMDFiLi5kOGFmYTdhZTRlMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEwNyw4ICsxMDcsNyBAQCBFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBT UUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRF WFQ6ICBTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3Nx bGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlv biBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgogLS0gc2hvdWxkIGJlIG9rCiBT RUxFQ1Qgc3FsZnhfc2QoMjApOwogIHNxbGZ4X3NkIApAQCAtMjc4LDI3ICsyNzcsMjggQEAgJCQ7 CiBOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0KIERST1AgVkFS SUFCTEUgdmFyMTsKIERST1AgVkFSSUFCTEUgdmFyMjsKLS0tIENBTEwgc3RhdGVtZW50IGlzIG5v dCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBpcyBzdXBw b3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMTsKIENSRUFURSBQUk9DRURV UkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOwotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0 ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorTk9USUNFOiAgMQogRE8gJCQg QkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90 IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAo dikiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAor Tk9USUNFOiAgMQogRFJPUCBQUk9DRURVUkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2OwotLS0g RVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVj dCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0t IEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CiBMRVQgdiA9IDIwOwog UFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKLS0tIHNob3VsZCBmYWlsCistLSBzaG91 bGQgYmUgb2sKIEVYRUNVVEUgcHRlc3Qodik7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fu bm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAg ICAyMAorKDEgcm93KQorCiBERUFMTE9DQVRFIHB0ZXN0OwogRFJPUCBWQVJJQUJMRSB2OwogLS0g dGVzdCBzZWFyY2ggcGF0aApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IGQwZTZlN2NlMjYyLi5lYjNkYTFmMzVmNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMjA3LDEzICsyMDcsMTQgQEAgJCQ7CiBEUk9Q IFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3RhdGVtZW50 IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Np b24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBp cyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOworCiBDUkVB VEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJn OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlz IG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKIAogRE8g JCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CkBAIC0yMjEsMTMgKzIyMiwxMiBAQCBETyAkJCBC RUdJTiBDQUxMIHAodik7IEVORCAkJDsKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERST1AgVkFS SUFCTEUgdjsKIAotLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLS0t IHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Np b24gZXhlY3V0b3IKKy0tIEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7 CiBMRVQgdiA9IDIwOwogUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKIAotLS0gc2hv dWxkIGZhaWwKKy0tIHNob3VsZCBiZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKIAogREVBTExPQ0FU RSBwdGVzdDsKLS0gCjIuNDYuMAoK --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20240829-0015-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrra5 RnJvbSBlZDRkODlkNzNiZjRmNzQxZDhmODY0NjdjMzZlOWEzNTE4ZGMwZjE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDc6NTc6MjkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1 LzIwXSBhbGxvdyBwYXJhbGxlbCBleGVjdXRpb24gcXVlcmllcyB3aXRoIHNlc3Npb24gdmFyaWFi bGVzCgotLS0KIGRvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICAgNiAtCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAg MTQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8IDE0 NyArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMu YyAgICAgICAgICB8ICAxOCArLS0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCAgICB8ICAxMiArLQogNSBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwg MjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAppbmRleCBhNWNlZjRjZDc5Yi4uNTkwY2IzODVk ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MjEsMTIgKzUyMSw2IEBAIEVYUExBSU4gU0VMRUNUICog RlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9s aXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVt PgotICAgICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZh cmlhYmxlLgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0 PgogCiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCA2N2ZhZDdlZWI4My4uZDc0ZTBkOWJjMDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwpAQCAtMjA4LDcgKzIwOCwxOSBAQCBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAq cXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCSAqICAgIGJlIGNoYW5nZWQgaW5zaWRlIHF1ZXJ5IGV4 ZWN1dGlvbiB0aW1lLCBhbmQgdGhlbiBhIHJlZmVyZW5jZSB0bwogCSAqICAgIHByZXZpb3VzbHkg cmV0dXJuZWQgdmFsdWUgY2FuIGJlIGNvcnJ1cHRlZCkuCiAJICovCi0JaWYgKHF1ZXJ5RGVzYy0+ cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJaWYgKHF1ZXJ5RGVzYy0+bnVtX3Nlc3Np b25fdmFyaWFibGVzID4gMCkKKwl7CisJCS8qCisJCSAqIFdoZW4gYSBwYXJhbGxlbCBxdWVyeSBu ZWVkcyB0byBhY2Nlc3MgcXVlcnkgcGFyYW1ldGVycyAoaW5jbHVkaW5nCisJCSAqIHJlbGF0ZWQg c2Vzc2lvbiB2YXJpYWJsZXMpLCB0aGVuIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlCisJ CSAqIHJlc3RvcmVkIChkZXNlcmlhbGl6ZWQpIGluIHF1ZXJ5RGVzYyBhbHJlYWR5LiBTbyBqdXN0 IHB1c2ggcG9pbnRlcgorCQkgKiBvZiB0aGlzIGFycmF5IHRvIGV4ZWN1dG9yJ3MgZXN0YXRlLgor CQkgKi8KKwkJQXNzZXJ0KElzUGFyYWxsZWxXb3JrZXIoKSk7CisJCWVzdGF0ZS0+ZXNfc2Vzc2lv bl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPnNlc3Npb25fdmFyaWFibGVzOworCQllc3RhdGUtPmVz X251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHF1ZXJ5RGVzYy0+bnVtX3Nlc3Npb25fdmFyaWFibGVz OworCX0KKwllbHNlIGlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVz KQogCXsKIAkJTGlzdENlbGwgICAqbGM7CiAJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwppbmRleCBiZmIzNDE5ZWZiNy4uY2I0MzRlMjc2OGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC0xMiw4ICsxMiw5IEBACiAgKiB3 b3JrZXJzIGFuZCBlbnN1cmluZyB0aGF0IHRoZWlyIHN0YXRlIGdlbmVyYWxseSBtYXRjaGVzIHRo YXQgb2YgdGhlCiAgKiBsZWFkZXI7IHNlZSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9SRUFE TUUucGFyYWxsZWwgZm9yIGRldGFpbHMuCiAgKiBIb3dldmVyLCB3ZSBtdXN0IHNhdmUgYW5kIHJl c3RvcmUgcmVsZXZhbnQgZXhlY3V0b3Igc3RhdGUsIHN1Y2ggYXMKLSAqIGFueSBQYXJhbUxpc3RJ bmZvIGFzc29jaWF0ZWQgd2l0aCB0aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywgYW5k Ci0gKiB0aGUgYWN0dWFsIHBsYW4gdG8gYmUgcGFzc2VkIGRvd24gdG8gdGhlIHdvcmtlci4KKyAq IGFueSBQYXJhbUxpc3RJbmZvIGFzc29jaWF0ZWQgd2l0aCB0aGUgcXVlcnksIGJ1ZmZlci9XQUwg dXNhZ2UgaW5mbywKKyAqIHNlc3Npb24gdmFyaWFibGVzIGJ1ZmZlciwgYW5kIHRoZSBhY3R1YWwg cGxhbiB0byBiZSBwYXNzZWQgZG93biB0bworICogdGhlIHdvcmtlci4KICAqCiAgKiBJREVOVElG SUNBVElPTgogICoJICBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtNjQs NiArNjUsNyBAQAogI2RlZmluZSBQQVJBTExFTF9LRVlfUVVFUllfVEVYVAkJVUlOVDY0Q09OU1Qo MHhFMDAwMDAwMDAwMDAwMDA4KQogI2RlZmluZSBQQVJBTExFTF9LRVlfSklUX0lOU1RSVU1FTlRB VElPTiBVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMDkpCiAjZGVmaW5lIFBBUkFMTEVMX0tF WV9XQUxfVVNBR0UJCQlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMEEpCisjZGVmaW5lIFBB UkFMTEVMX0tFWV9TRVNTSU9OX1ZBUklBQkxFUwlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAw MEIpCiAKICNkZWZpbmUgUEFSQUxMRUxfVFVQTEVfUVVFVUVfU0laRQkJNjU1MzYKIApAQCAtMTM4 LDYgKzE0MCwxMiBAQCBzdGF0aWMgYm9vbCBFeGVjUGFyYWxsZWxSZXRyaWV2ZUluc3RydW1lbnRh dGlvbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIC8qIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJ1bnMg aW4gdGhlIHBhcmFsbGVsIHdvcmtlci4gKi8KIHN0YXRpYyBEZXN0UmVjZWl2ZXIgKkV4ZWNQYXJh bGxlbEdldFJlY2VpdmVyKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKKy8qIEhl bHBlciBmdW5jdGlvbnMgdGhhdCBjYW4gcGFzcyB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg Ki8KK3N0YXRpYyBTaXplIEVzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSk7 CitzdGF0aWMgdm9pZCBTZXJpYWxpemVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlLCBj aGFyICoqc3RhcnRfYWRkcmVzcyk7CitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKlJlc3Rv cmVTZXNzaW9uVmFyaWFibGVzKGNoYXIgKipzdGFydF9hZGRyZXNzLAorCQkJCQkJCQkJCQkJCSBp bnQgKm51bV9zZXNzaW9uX3ZhcmlhYmxlcyk7CisKIC8qCiAgKiBDcmVhdGUgYSBzZXJpYWxpemVk IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFuIHRvIGJlIHNlbnQgdG8gZWFjaCB3b3JrZXIuCiAg Ki8KQEAgLTU5Niw2ICs2MDQsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBs YW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJY2hhcgkgICAqcHN0bXRfZGF0YTsKIAljaGFyCSAg ICpwc3RtdF9zcGFjZTsKIAljaGFyCSAgICpwYXJhbWxpc3RpbmZvX3NwYWNlOworCWNoYXIJICAg KnNlc3Npb25fdmFyaWFibGVzX3NwYWNlOwogCUJ1ZmZlclVzYWdlICpidWZ1c2FnZV9zcGFjZTsK IAlXYWxVc2FnZSAgICp3YWx1c2FnZV9zcGFjZTsKIAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRh dGlvbiAqaW5zdHJ1bWVudGF0aW9uID0gTlVMTDsKQEAgLTYwNSw2ICs2MTQsNyBAQCBFeGVjSW5p dFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJaW50 CQkJaW5zdHJ1bWVudGF0aW9uX2xlbiA9IDA7CiAJaW50CQkJaml0X2luc3RydW1lbnRhdGlvbl9s ZW4gPSAwOwogCWludAkJCWluc3RydW1lbnRfb2Zmc2V0ID0gMDsKKwlpbnQJCQlzZXNzaW9uX3Zh cmlhYmxlc19sZW4gPSAwOwogCVNpemUJCWRzYV9taW5zaXplID0gZHNhX21pbmltdW1fc2l6ZSgp OwogCWNoYXIJICAgKnF1ZXJ5X3N0cmluZzsKIAlpbnQJCQlxdWVyeV9sZW47CkBAIC02NjAsNiAr NjcwLDExIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3Rh dGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHBh cmFtbGlzdGluZm9fbGVuKTsKIAlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRv ciwgMSk7CiAKKwkvKiBFc3RpbWF0ZSBzcGFjZSBmb3Igc2VyaWFsaXplZCBzZXNzaW9uIHZhcmlh Ymxlcy4gKi8KKwlzZXNzaW9uX3ZhcmlhYmxlc19sZW4gPSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJs ZXMoZXN0YXRlKTsKKwlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHNl c3Npb25fdmFyaWFibGVzX2xlbik7CisJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3Rp bWF0b3IsIDEpOworCiAJLyoKIAkgKiBFc3RpbWF0ZSBzcGFjZSBmb3IgQnVmZmVyVXNhZ2UuCiAJ ICoKQEAgLTc2MSw2ICs3NzYsMTEgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpw bGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFS QUxMRUxfS0VZX1BBUkFNTElTVElORk8sIHBhcmFtbGlzdGluZm9fc3BhY2UpOwogCVNlcmlhbGl6 ZVBhcmFtTGlzdChlc3RhdGUtPmVzX3BhcmFtX2xpc3RfaW5mbywgJnBhcmFtbGlzdGluZm9fc3Bh Y2UpOwogCisJLyogU3RvcmUgc2VyaWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNz aW9uX3ZhcmlhYmxlc19zcGFjZSA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBzZXNzaW9u X3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZ X1NFU1NJT05fVkFSSUFCTEVTLCBzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisJU2VyaWFsaXpl U2Vzc2lvblZhcmlhYmxlcyhlc3RhdGUsICZzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisKIAkv KiBBbGxvY2F0ZSBzcGFjZSBmb3IgZWFjaCB3b3JrZXIncyBCdWZmZXJVc2FnZTsgbm8gbmVlZCB0 byBpbml0aWFsaXplLiAqLwogCWJ1ZnVzYWdlX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0 LT50b2MsCiAJCQkJCQkJCQkgIG11bF9zaXplKHNpemVvZihCdWZmZXJVc2FnZSksIHBjeHQtPm53 b3JrZXJzKSk7CkBAIC0xNDExLDYgKzE0MzEsNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2Vn bWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRf aW5zdHJ1bWVudGF0aW9uOwogCWludAkJCWluc3RydW1lbnRfb3B0aW9ucyA9IDA7CiAJdm9pZAkg ICAqYXJlYV9zcGFjZTsKKwljaGFyCSAgICpzZXNzaW9udmFyaWFibGVfc3BhY2U7CiAJZHNhX2Fy ZWEgICAqYXJlYTsKIAlQYXJhbGxlbFdvcmtlckNvbnRleHQgcHdjeHQ7CiAKQEAgLTE0MzYsNiAr MTQ1NywxNCBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0 b2MpCiAJYXJlYV9zcGFjZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0RTQSwg ZmFsc2UpOwogCWFyZWEgPSBkc2FfYXR0YWNoX2luX3BsYWNlKGFyZWFfc3BhY2UsIHNlZyk7CiAK KwkvKiBSZWNvbnN0cnVjdCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9udmFyaWFibGVf c3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsCisJCQkJCQkJCQkJICAgUEFSQUxMRUxfS0VZX1NF U1NJT05fVkFSSUFCTEVTLAorCQkJCQkJCQkJCSAgIGZhbHNlKTsKKwlxdWVyeURlc2MtPnNlc3Np b25fdmFyaWFibGVzID0KKwkJUmVzdG9yZVNlc3Npb25WYXJpYWJsZXMoJnNlc3Npb252YXJpYWJs ZV9zcGFjZSwKKwkJCQkJCQkJJnF1ZXJ5RGVzYy0+bnVtX3Nlc3Npb25fdmFyaWFibGVzKTsKKwog CS8qIFN0YXJ0IHVwIHRoZSBleGVjdXRvciAqLwogCXF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPmpp dEZsYWdzID0gZnBlcy0+aml0X2ZsYWdzOwogCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCBmcGVz LT5lZmxhZ3MpOwpAQCAtMTUwNCwzICsxNTMzLDExNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21f c2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOwog CXJlY2VpdmVyLT5yRGVzdHJveShyZWNlaXZlcik7CiB9CisKKy8qCisgKiBFc3RpbWF0ZSB0aGUg YW1vdW50IG9mIHNwYWNlIHJlcXVpcmVkIHRvIHNlcmlhbGl6ZSBhIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK3N0YXRpYyBTaXplCitFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3Rh dGUpCit7CisJaW50CQkJaTsKKwlTaXplCQlzeiA9IHNpemVvZihpbnQpOworCisJaWYgKGVzdGF0 ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXMgPT0gTlVMTCkKKwkJcmV0dXJuIHN6OworCisJZm9yIChp ID0gMDsgaSA8IGVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOyBpKyspCisJeworCQlT ZXNzaW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJ CXR5cExlbjsKKwkJYm9vbAkJdHlwQnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nl c3Npb25fdmFyaWFibGVzW2ldOworCisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKworCQlz eiA9IGFkZF9zaXplKHN6LCBzaXplb2YoT2lkKSk7IC8qIHNwYWNlIGZvciB0eXBlIE9JRCAqLwor CisJCS8qIHNwYWNlIGZvciBkYXR1bS9pc251bGwgKi8KKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlw ZU9pZCkpOworCQlnZXRfdHlwbGVuYnl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsK KworCQlzeiA9IGFkZF9zaXplKHN6LAorCQkJCQkgIGRhdHVtRXN0aW1hdGVTcGFjZShzdmFydmFs LT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0eXBCeVZhbCwgdHlwTGVuKSk7CisJfQorCisJcmV0 dXJuIHN6OworfQorCisvKgorICogU2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVy IGludG8gY2FsbGVyLXByb3ZpZGVkIHN0b3JhZ2UuCisgKgorICogV2Ugd3JpdGUgdGhlIG51bWJl ciBvZiBwYXJhbWV0ZXJzIGZpcnN0LCBhcyBhIDQtYnl0ZSBpbnRlZ2VyLCBhbmQgdGhlbgorICog d3JpdGUgZGV0YWlscyBmb3IgZWFjaCBwYXJhbWV0ZXIgaW4gdHVybi4gIFRoZSBkZXRhaWxzIGZv ciBlYWNoIHBhcmFtZXRlcgorICogY29uc2lzdCBvZiBhIDQtYnl0ZSB0eXBlIE9JRCwgYW5kIHRo ZW4gdGhlIGRhdHVtIGFzIHNlcmlhbGl6ZWQgYnkKKyAqIGRhdHVtU2VyaWFsaXplKCkuICBUaGUg Y2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGF0IHRoZXJlIGlzCisgKiBlbm91 Z2ggc3RvcmFnZSB0byBzdG9yZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2lsbCBiZSB3cml0 dGVuOyB1c2UKKyAqIEVzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyB0byBmaW5kIG91dCBob3cgbWFu eSB3aWxsIGJlIG5lZWRlZC4KKyAqICpzdGFydF9hZGRyZXNzIGlzIHVwZGF0ZWQgdG8gcG9pbnQg dG8gdGhlIGJ5dGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRob3NlCisgKiB3cml0dGVuLgorICoK KyAqIFJlc3RvcmVTZXNzaW9uVmFyaWFibGVzIGNhbiBiZSB1c2VkIHRvIHJlY3JlYXRlIGEgc2Vz c2lvbiB2YXJpYWJsZSBidWZmZXIKKyAqIGJhc2VkIG9uIHRoZSBzZXJpYWxpemVkIHJlcHJlc2Vu dGF0aW9uOworICovCitzdGF0aWMgdm9pZAorU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3Rh dGUgKmVzdGF0ZSwgY2hhciAqKnN0YXJ0X2FkZHJlc3MpCit7CisJaW50CQkJbnBhcmFtczsKKwlp bnQJCQlpOworCisJLyogV3JpdGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMuICovCisJbnBhcmFtcyA9 IGVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCW1lbWNweSgqc3RhcnRfYWRkcmVz cywgJm5wYXJhbXMsIHNpemVvZihpbnQpKTsKKwkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50 KTsKKworCS8qIFdyaXRlIGVhY2ggcGFyYW1ldGVyIGluIHR1cm4uICovCisJZm9yIChpID0gMDsg aSA8IG5wYXJhbXM7IGkrKykKKwl7CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsOwor CQlPaWQJCQl0eXBlT2lkOworCQlpbnQxNgkJdHlwTGVuOworCQlib29sCQl0eXBCeVZhbDsKKwor CQlzdmFydmFsID0gJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV07CisJCXR5cGVPaWQg PSBzdmFydmFsLT50eXBpZDsKKworCQkvKiBXcml0ZSB0eXBlIE9JRC4gKi8KKwkJbWVtY3B5KCpz dGFydF9hZGRyZXNzLCAmdHlwZU9pZCwgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyAr PSBzaXplb2YoT2lkKTsKKworCQlBc3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7CisJCWdldF90 eXBsZW5ieXZhbCh0eXBlT2lkLCAmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJCWRhdHVtU2VyaWFs aXplKHN2YXJ2YWwtPnZhbHVlLCBzdmFydmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4sCisJ CQkJCSAgIHN0YXJ0X2FkZHJlc3MpOworCX0KK30KKworc3RhdGljIFNlc3Npb25WYXJpYWJsZVZh bHVlICoKK1Jlc3RvcmVTZXNzaW9uVmFyaWFibGVzKGNoYXIgKipzdGFydF9hZGRyZXNzLCBpbnQg Km51bV9zZXNzaW9uX3ZhcmlhYmxlcykKK3sKKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lv bl92YXJpYWJsZXM7CisJaW50CQkJaTsKKwlpbnQJCQlucGFyYW1zOworCisJbWVtY3B5KCZucGFy YW1zLCAqc3RhcnRfYWRkcmVzcywgc2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNp emVvZihpbnQpOworCisJKm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IG5wYXJhbXM7CisJc2Vzc2lv bl92YXJpYWJsZXMgPSAoU2Vzc2lvblZhcmlhYmxlVmFsdWUgKikKKwkJcGFsbG9jKG5wYXJhbXMg KiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCWZvciAoaSA9IDA7IGkgPCBucGFy YW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbCA9ICZzZXNzaW9u X3ZhcmlhYmxlc1tpXTsKKworCQkvKiBSZWFkIHR5cGUgT0lELiAqLworCQltZW1jcHkoJnN2YXJ2 YWwtPnR5cGlkLCAqc3RhcnRfYWRkcmVzcywgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVz cyArPSBzaXplb2YoT2lkKTsKKworCQkvKiBSZWFkIGRhdHVtL2lzbnVsbC4gKi8KKwkJc3ZhcnZh bC0+dmFsdWUgPSBkYXR1bVJlc3RvcmUoc3RhcnRfYWRkcmVzcywgJnN2YXJ2YWwtPmlzbnVsbCk7 CisJfQorCisJcmV0dXJuIHNlc3Npb25fdmFyaWFibGVzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvY2xhdXNlcy5jCmluZGV4IDAwNjNiMmI2MzIyLi4wOTJlZDIzNTNhYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtOTI0LDI1ICs5MjQsMTkgQEAgbWF4X3BhcmFsbGVs X2hhemFyZF93YWxrZXIoTm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVsX2hhemFyZF9jb250ZXh0ICpj b250ZXh0KQogCiAJLyoKIAkgKiBXZSBjYW4ndCBwYXNzIFBhcmFtcyB0byB3b3JrZXJzIGF0IHRo ZSBtb21lbnQgZWl0aGVyLCBzbyB0aGV5IGFyZSBhbHNvCi0JICogcGFyYWxsZWwtcmVzdHJpY3Rl ZCwgdW5sZXNzIHRoZXkgYXJlIFBBUkFNX0VYVEVSTiBQYXJhbXMgb3IgYXJlCi0JICogUEFSQU1f RVhFQyBQYXJhbXMgbGlzdGVkIGluIHNhZmVfcGFyYW1faWRzLCBtZWFuaW5nIHRoZXkgY291bGQg YmUKLQkgKiBlaXRoZXIgZ2VuZXJhdGVkIHdpdGhpbiB3b3JrZXJzIG9yIGNhbiBiZSBjb21wdXRl ZCBieSB0aGUgbGVhZGVyIGFuZAotCSAqIHRoZW4gdGhlaXIgdmFsdWUgY2FuIGJlIHBhc3NlZCB0 byB3b3JrZXJzLgorCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJB TV9FWFRFUk4gb3IgUEFSQU1fVkFSSUFCTEUKKwkgKiBQYXJhbXMgb3IgYXJlIFBBUkFNX0VYRUMg UGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5CisJICogY291bGQg YmUgZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkg dGhlCisJICogbGVhZGVyIGFuZCB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29y a2Vycy4KIAkgKi8KIAllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQogCXsKIAkJUGFyYW0JICAg KnBhcmFtID0gKFBhcmFtICopIG5vZGU7CiAKLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFS QU1fRVhURVJOKQorCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwKKwkJ CXBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCiAJCQlyZXR1cm4gZmFsc2U7CiAK LQkJLyogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtl cnMgKi8KLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCi0JCXsKLQkJ CWlmIChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29u dGV4dCkpCi0JCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQogCQlpZiAocGFyYW0tPnBhcmFta2luZCAh PSBQQVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1f aWRzLCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZDhhZmE3YWU0ZTAuLjY0NjZhMjQ3MzI4IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtNjQyLDEyICs2NDIsMTQgQEAgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJF IGElMTAgPSB6ZXJvOwogCiAtLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5 ZXQKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdI RVJFIGElMTAgPSB6ZXJvOwotICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBBZ2dyZWdhdGUKLSAgIC0+ICBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKLSAg ICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKLSgzIHJvd3MpCisgICAtPiAgR2F0aGVy CisgICAgICAgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEg U2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVy bykKKyg1IHJvd3MpCiAKIExFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVz dCk7CiAtLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKLS0gCjIuNDYuMAoK --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20240829-0013-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrrp7 RnJvbSBlMjQ2NjZiZWRlNzVhMDAzODkwMTgwODI1Mjg4MjNhODU1MmZkODk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxNDo0MDozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MjBdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoKQWxt b3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKystCiBzcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrLS0KIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOSArKy0KIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgMzYgKysrKwogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICsrLS0KIC4uLi9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE1NSArKysrKysrKysrKysrKysr Ky0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEyMiAr KysrKysrKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgNTIzIGluc2VydGlvbnMoKyksIDQ2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggOWQzOTQyYmRiNGIuLjQ1MTJjNDUyNWJmIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbApAQCAtOTgzNCw2ICs5ODM0LDI2IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxh Y2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxl PiZsCiAKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZh cm5vdG51bGw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2Vz bid0IGFsbG93IG51bGwgdmFsdWVzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyaXNpbW11dGFibGU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5ib29sZWFuPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1 ZSBpZiB0aGUgdmFyaWFibGUgaXMgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWlt bXV0YWJsZSI+aW1tdXRhYmxlPC9saW5rPiAoY2Fubm90IGJlIG1vZGlmaWVkKS4KKyAgICAgICBU aGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ dmFyZW94YWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlwZT4KICAgICAgICA8c3Ry dWN0ZmllbGQ+dmFyeGFjdGVuZGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+ CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9w bHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IGJmYmZmOWFiNzRl Li5lNzA0ZTA1YTk5MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDQ0LDcgKzYwNDQsOCBAQCAkJCBMQU5H VUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiAgICAgIFlvdSBjYW4gY29uc2lkZXIgdHJh bnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgogICAgICA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5kIHBy b2NlZHVyZXMKICAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVz IGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQotICAgICB2YXJpYWJsZXMgY291bGQgYmUgdHJh bnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgdmFyaWFi bGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgb3IgaW1tdXRhYmxl IHNlc3Npb24KKyAgICAgdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgogICAgICAoc2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCiAgICAgPC9wYXJhPgogICAgPC9z ZWN0Mz4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDgxODdjMThlMjhi Li4wMDkzODc0M2MwZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0y Niw4ICsyNiw4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2 PgogPHN5bm9wc2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBb IElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBl PC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1J VCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQorQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsg Q09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNl YWJsZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9Q IHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9w c2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVNUE9S QVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxFPC9s aXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGFz c2lnbmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdlZC4K KyAgICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVmYXVs dCB2YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNpbmcg dGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwgbm8g ZnVydGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAgICAg IGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRlcmFs Pk9OIFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCByZXNl dCBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQgVkFS SUFCTEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAgIG9i amVjdHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0 ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRlcm0+ PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpA QCAtMTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklB QkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0ZXJh bD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJh bD5OT1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lvbgor ICAgICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3JlYXRl ZCBhcyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVmYXVs dCB2YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2YWx1 ZSwgdGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVG QVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90 ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf dmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA3ODE1 ODdmOTkxMy4uMzRiMGI5NzE1MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQw LDYgKzQwLDggQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJD b2xsYXRpb24sCiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIGJvb2wg bm90X251bGwsCisJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9kZSAq dmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbik7CiAKQEAgLTU1LDYgKzU3LDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZh ck5hbWUsCiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9v bCBpZl9ub3RfZXhpc3RzLAorCQkJCWJvb2wgbm90X251bGwsCisJCQkJYm9vbCBpc19pbW11dGFi bGUsCiAJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFy WGFjdEVuZEFjdGlvbikKIHsKQEAgLTExNyw2ICsxMjEsOCBAQCBjcmVhdGVfdmFyaWFibGUoY29u c3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAx XSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxh dGlvbik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdl dERhdHVtKG5vdF9udWxsKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJs ZSAtIDFdID0gQm9vbEdldERhdHVtKGlzX2ltbXV0YWJsZSk7CiAJdmFsdWVzW0FudW1fcGdfdmFy aWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRBY3Rp b24pOwogCiAJaWYgKHZhckRlZmV4cHIpCkBAIC0yNTksNiArMjY1LDggQEAgQ3JlYXRlVmFyaWFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJ CQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZf bm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKKwkJCQkJCQkgICBzdG10LT5p c19pbW11dGFibGUsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+ WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpp bmRleCA5MjViMTIzZjMzZi4uYTg0YzUyYTVjZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKQEAgLTg0LDYgKzg0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxl RGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9uSWQg ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlub3RfbnVsbDsKKwlib29sCQlpc19p bW11dGFibGU7CisKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKIAkvKgpAQCAtMTAyLDYgKzEwNSw5 IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlpc192YWxpZDsKIAogCXVp bnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLwor CisJLyogdHJ1ZSwgd2hlbiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBzZXQsIGFuZCBjYW5ub3QgYmUg Y2hhbmdlZCBtb3JlICovCisJYm9vbAkJcHJvdGVjdF92YWx1ZTsKIH0gU1ZhcmlhYmxlRGF0YTsK IAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CkBAIC01NjYsNiArNTcyLDIzIEBA IGV2YWxfYXNzaWduX2RlZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCiAKIAkJ CU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CisJCWVsc2UKKwkJeworCQkJLyoK KwkJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBOT1QgTlVMTCB2YXJpYWJsZSBidXQg dGhlIHJlc3VsdCBvZgorCQkJICogREVGQVVMVCBleHByZXNzaW9uIGlzIE5VTEwuCisJCQkgKi8K KwkJCWlmIChzdmFyLT5ub3RfbnVsbCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJCSBlcnJtc2coIm51bGwg dmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4l c1wiIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHN2YXItPnZhcmlkKSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcmVzdWx0IG9mIERFRkFVTFQg ZXhwcmVzc2lvbiBpcyBOVUxMLiIpKSk7CisJCX0KKworCQlpZiAoc3Zhci0+aXNfaW1tdXRhYmxl KQorCQkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CiAKIAkJRnJlZUV4ZWN1dG9yU3RhdGUo ZXN0YXRlKTsKIAl9CkBAIC01OTYsNiArNjE5LDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJZ2V0X3R5cGxlbmJ5 dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOwogCisJc3Zh ci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOworCXN2YXItPmlzX2ltbXV0YWJsZSA9 IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0 eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21haW5f Y2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52 YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTYyNSw5ICs2NTEsMzEgQEAgc2V0dXBfc2Vzc2lv bl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2 YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKIAkJCQkJ CQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCi0JaWYgKCFpc193cml0ZSkKKwlzdmFy LT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4gdGhlIHZhcmlhYmxlIGlz IG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHByZWZlciB0byBldmFsdWF0ZQorCSAqIHBvc3NpYmxl IERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcm90ZWN0 CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0IGFueSBvdmVyd3JpdGUuCisJICovCisJaWYgKCFp c193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11dGFibGUpCisJewogCQlldmFsX2Fzc2lnbl9kZWZl eHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJICogUmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBh IE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQgZGVmYXVsdAorCQkgKiBleHByZXNzaW9uLgorCQkg Ki8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJCQkJ CSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24g dmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3 YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkpOworCX0KKwogCVJlbGVhc2VTeXNDYWNoZSh0dXAp OwogfQogCkBAIC02NDcsNiArNjk1LDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2Vy dCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CiAKKwlpZiAoc3Zhci0+cHJvdGVjdF92 YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0VSUk9SX0lOX0FT U0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIGRl Y2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKworCS8qIGRvbid0IGFsbG93IGFzc2lnbm1lbnQg b2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJsZSAqLworCWlmIChpc251bGwgJiYgc3Zhci0+bm90 X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVF X05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNnKCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZv ciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlnZXRfbmFtZXNw YWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJ CQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKwogCS8qCiAJ ICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3aGVu IHRoZXkgYXJlCiAJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3YXMg bm90IGFjY2VwdGVkIGZvciB0aGlzCkBAIC02ODcsNiArNzUwLDEwIEBAIHNldF9zZXNzaW9uX3Zh cmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlzdmFy LT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisKKwkvKiBkb24ndCBh bGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8K KwlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQorCQlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDE4OTUzZTZhNGFkLi4yN2UzMWE0YzJjYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC02ODAsNiArNjgwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlq c29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2Nv bnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwg T3B0SW1tdXRhYmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFy ZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUxNzEsMjcgKzUxNzIsMzEg QEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAog Q3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZp ZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJs ZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgog CQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNz aW9uVmFyU3RtdCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJp YWJsZSA9ICQ0OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0g KENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+ aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVO YW1lID0gJDc7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJ CQkJbi0+bm90X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkk JCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9Q IE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2Ns YXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFU RSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVk X25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNl c3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNl c3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkk Ny0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+ dHlwZU5hbWUgPSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQx MDsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsK KwkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQz OworCQkJCQluLT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJ bi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwg PSAkMTI7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAk MTQ7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQpAQCAtNTIxMSw2ICs1MjE2LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBD T01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitP cHROb3ROdWxsOiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBU WSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJM RQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZh bHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5T SU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiZTg5M2I1MDIw OS4uZThjMWU4NDE4MzYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQyMSw2ICs1NDIxLDggQEAgZ2V0VmFy aWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJ CWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJub3RudWxs OworCWludAkJCWlfdmFyaXNpbW11dGFibGU7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJaV9h Y2xkZWZhdWx0OwogCWludAkJCWksCkBAIC01NDQzLDYgKzU0NDUsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxu IgogCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2 YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJCSAg IiAgICAgICB2LnZhcmlzaW1tdXRhYmxlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5w Z19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAg ICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgn VicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKQEAgLTU0NjMsNiArNTQ2Nyw4IEBAIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMs ICJ2YXJkZWZleHByIik7CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZh cnhhY3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJj b2xsYXRpb24iKTsKKwlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIp OworCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsK IAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFjbCA9 IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKQEAgLTU0ODksNiArNTQ5NSw4IEBAIGdldFZhcmlh YmxlcyhBcmNoaXZlICpmb3V0KQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cnhhY3RlbmRhY3Rpb24pKTsKIAogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJub3Ru dWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2YXJp bmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2ltbXV0 YWJsZSkpID09ICd0JzsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9 IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NTM1LDcg KzU1NDMsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZv ICp2YXJpbmZvKQogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFyZGVm ZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZhcmlz aW1tdXRhYmxlOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwlib29sCQl2YXJub3RudWxsOwogCiAJ Lyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAg fHwgZG9wdC0+ZGF0YU9ubHkpCkBAIC01NTQ5LDEyICs1NTU5LDE0IEBAIGR1bXBWYXJpYWJsZShB cmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJdmFyZGVmZXhwciA9 IHZhcmluZm8tPnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhh Y3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCXZh cm5vdG51bGwgPSB2YXJpbmZvLT52YXJub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0gdmFyaW5m by0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBRRXhwQnVm ZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFtZSk7CiAK LQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCi0J CQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRhYmxlLCBx dWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24p KQogCXsKQEAgLTU1NjYsNiArNTU3OCw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBj b25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJs ZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcm5vdG51bGwpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIE5PVCBOVUxMIik7CisKIAlpZiAodmFyZGVmZXhwcikKIAkJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksICIgREVGQVVMVCAlcyIsCiAJCQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgK aW5kZXggZTJjYjA2Y2M4ODMuLmNiYjA2YjY2Zjc0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcxMCw2ICs3 MTAsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY2hhcgkgICAqaW5pdHJ2YXJh Y2w7CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1l IG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KKwlib29sCQl2YXJub3RudWxsOworCWJvb2wJ CXZhcmlzaW1tdXRhYmxlOwogfSBWYXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCmluZGV4IDA0ZmU5ODQzYWU2Li45ZWJmZDZkYmE3MiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwKQEAgLTM5OTUsNiArMzk5NSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwK IAorCSdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxs X3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycs CisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRB QkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9 PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxl NSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVt cF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1 bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1 bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUg VkFSSUFCTEUgdGVzdF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5z ICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQlj cmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAx MCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVt cF90ZXN0LnZhcmlhYmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJ CWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJ CQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRl X2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAx LAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9v cmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3Rf dmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCA1NjY1NTkzMTZlZS4uMTVjYTc3Nzk5NmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01 MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmlu dFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0 ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVt bnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAw MDApCiAJewpAQCAtNTE4MCw2ICs1MTgwLDggQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00g cGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJ CSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlw ZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJ CQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wi LFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIg IE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9n LnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENB U0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBD T01NSVQgRFJPUCdcbiIKQEAgLTUxOTAsNiArNTE5Miw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29w KCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJICBnZXR0 ZXh0X25vb3AoIk11dGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5jCmluZGV4IDA0YzQ5ZTQxNzc0Li43MmI2NTU1OGU2OSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpA QCAtMTI1Miw2ICsxMjUyLDggQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0 ZXJfY3JlYXRlW10gPSB7CiAJeyJGT1JFSUdOIFRBQkxFIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAJ eyJGVU5DVElPTiIsIE5VTEwsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0X29mX2Z1bmN0aW9uc30sCiAJ eyJHUk9VUCIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzfSwKKwl7IklNTVVUQUJMRSBWQVJJQUJM RSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRF Un0sIC8qIGZvciBDUkVBVEUgSU1NVVRBQkxFCisJCQkJCQkJCQkJCQkJCQkJCQkJCQkgKiBWQVJJ QUJMRSAuLi4gKi8KIAl7IklOREVYIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX2lu ZGV4ZXN9LAogCXsiTEFOR1VBR0UiLCBRdWVyeV9mb3JfbGlzdF9vZl9sYW5ndWFnZXN9LAogCXsi TEFSR0UgT0JKRUNUIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQ1JFQVRFIHwg VEhJTkdfTk9fRFJPUH0sCkBAIC0zMjYzLDcgKzMyNjUsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBp cyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkv KiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1w IG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9S QVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwg IlZJRVciKTsKKwkJQ09NUExFVEVfV0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNF IiwgIlRBQkxFIiwgIlZBUklBQkxFIiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENvbXBsZXRlICJD UkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWls TWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwg IlNFUVVFTkNFIik7CkBAIC0zNTgwLDcgKzM1ODMsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3Qg Y2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBp cyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkv KiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KIAllbHNlIGlmIChU YWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8Ci0JCQkgVGFpbE1h dGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQkJIFRhaWxN YXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJIFRh aWxNYXRjaGVzKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRF X1dJVEgoIkFTIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnks ICJBUyIpKQogCQkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlw ZXMgKi8KQEAgLTQyMjgsNiArNDIzMiwxMCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAq dGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJGUk9NIiwg IlNFUlZFUiIsIE1hdGNoQW55LCAiSU5UTyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgi T1BUSU9OUyAoIik7CiAKKy8qIElNTVVUQUJMRSAtLSBjYW4gYmUgZXhwZW5kIHRvIElNTVVUQUJM RSBWQVJJQUJMRSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiSU1NVVRBQkxF IikpCisJCUNPTVBMRVRFX1dJVEgoIlZBUklBQkxFIik7CisKIC8qIElOU0VSVCAtLS0gY2FuIGJl IGluc2lkZSBFWFBMQUlOLCBSVUxFLCBldGMgKi8KIAkvKiBDb21wbGV0ZSBOT1QgTUFUQ0hFRCBU SEVOIElOU0VSVCAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJOT1QiLCAiTUFUQ0hFRCIsICJU SEVOIiwgIklOU0VSVCIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IGU4YmZlZWJl ZDExLi42OGJjNDlhMGUyNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTUsNiAr NTUsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkv KiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RF RkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVMTCAqLworCWJvb2wJCXZhcm5vdG51bGwg QktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJdmFy aXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24g ZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IGJmZmJhNWIyNTlmLi4wMjdlMzkxOTY5YyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtMzQ0MCw2ICszNDQwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vz c2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlh YmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3Rz OwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJYm9vbAkJbm90X251bGw7 CQkvKiBkaXNhbGxvdyBudWxscyAqLworCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxs b3cgY2hhbmdlcyAqLwogCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24g Ki8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICov CiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5k ZXggYTc0MGJhZTM0NzMuLmMxMTBjNzBkNWFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5v dXQKQEAgLTU4ODgsMjAgKzU4ODgsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9v d25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlv biB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0 aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2Ny aXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdy ZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEdS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFSSUFC TEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUg ICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdl cyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMg fCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24K LSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1y L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAg fCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZB UklBQkxFIHZhcjE7CkBAIC02MzY5LDkgKzYzNjksOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJv d3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93 cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBA IC02NTQ0LDkgKzY1NDQsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90 dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1l ICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50 LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0 YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NjgzLDkgKzY2ODMs OSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBl IHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29s bGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQg ZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZjJkZjIzOTViMTguLmRlMjI5YmEzMDFi IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dApAQCAtNDUsMTEgKzQ1LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CiBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZB VUxUOwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFi bGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3du ZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAg ICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24g Ci0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0g c3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAg IHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9y ZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdl cyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFy dGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l ciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAK KyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTYxNCwz ICsxNjE0LDE0OCBAQCBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91bGQgYmUgb2sK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0byBmYWls CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9U IE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUgc2Vzc2lv biB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4KKy0tc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAwOworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvawor TEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSBy b3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0g TlVMTDsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vz c2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0 IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0 ZXN0X2Z4KCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIG51bGwg dmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgInB1Ymxp Yy52YXIxIgorREVUQUlMOiAgVGhlIHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVM TC4KK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4K KyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworRElTQ0FSRCBWQVJJQUJM RVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAw CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9m eCgpOworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFT IGludDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAg ICAKKygxIHJvdykKKworLS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUgb2sK K0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAg c2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElT Q0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91 bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2 YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNs YXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBJTU1VVEFCTEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVu IHZhcmlhYmxlIGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEg PSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVk IElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitM RVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMg ZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgb2sK K0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVGQVVMVCAx MDsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitMRVQgdmFyMSA9IDIw OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1N VVRBQkxFCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg IDEwCisoMSByb3cpCisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitE Uk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl cy5zcWwKaW5kZXggYTkzZTMwYzE0OTguLmQwZTZlN2NlMjYyIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDg1LDMgKzEwODUsMTI1IEBAIFNFTEVD VCB2YXIxOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngo KTsKKworLS0gdGVzdCBOT1QgTlVMTAorLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgTk9UIE5VTEw7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CisK Ky0tc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQgTk9UIE5VTEwgREVGQVVMVCAwOworCistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJE IFZBUklBQkxFUzsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4g TlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKworLS0gc2hvdWxkIHRvIGZh aWwKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiAwOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVO Q1RJT04gdmFydGVzdF9meCgpOworCistLSB0ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxF IFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOwor LS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7 CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIElNTVVUQUJM RSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIDEwOworCistLSBkb24ndCBhbGxvdyBjaGFu Z2Ugd2hlbiB2YXJpYWJsZSBoYXMgREVGQVVMVCB2YWx1ZQorLS0gc2hvdWxkIHRvIGZhaWwKK0xF VCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZh cjEgQVMgSU5UIE5PVCBOVUxMIERFRkFVTFQgMTA7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQg dmFyMSA9IDEwOworTEVUIHZhcjEgPSAyMDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy MTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMzA7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKLS0gCjIuNDYuMAoK --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20240829-0012-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrrv8 RnJvbSA2NmVlNTI1NWM5ZGQ3ZTA1ZjFlMDEzYjAwOWE0MGZhOGY1MWU2NzA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAxMDo0NDoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjBdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNzaW9u cwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1bHQg ZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9udmFy cwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNzZnVs bHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFnIGZv ciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21sL2Rk bC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9iaW4v cHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNzMgKysrKysrKysrKysrKystLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNDggKysrKysrKysr KwogMjAgZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggMzBkZmU4Nzc1NzIuLjlkMzk0MmJkYjRiIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bApAQCAtOTg2Niw2ICs5ODY2LDE0IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmRlZmV4cHI8L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19u b2RlX3RyZWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg aW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhcmlhYmxlIGRlZmF1bHQgdmFsdWUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3Jv dXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggNTZkZWU4OWE5MDYuLjY3NThhYzVhMmUwIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzAxLDE0ICs1MzAxLDE0IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAKICAgIDxwYXJh PgogICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1 cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZwotICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5z IGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCi0gICAgYmVl biBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUK LSAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBh cmUgbm90IHRyYW5zYWN0aW9uYWw6Ci0gICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUg b2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKLSAgICBiZSB1bmRv bmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVz IGluCi0gICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNl bHZlcyBjYW4gYmUgcGVyc2lzdGVudAotICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVl cyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVu dCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBh IDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICB1bmxlc3Mg aXRzIHZhbHVlIGhhcyAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQg c2Vzc2lvbgorICAgIHVzaW5nIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBT ZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90CisgICAgdHJhbnNhY3Rpb25hbDogYW55IGNoYW5nZXMg bWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluCisgICAgYSB0cmFuc2Fj dGlvbiB3b24ndCBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChq dXN0IGxpa2UKKyAgICB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lv biB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUKKyAgICBwZXJzaXN0ZW50IG9yIHRlbXBvcmFy eSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQKKyAg ICAobGlrZSB0aGUgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBlMWMyOTQw ZDRjYS4uODE4N2MxOGUyOGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApA QCAtMjcsNyArMjcsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNk aXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5 cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KKyAgICBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1J VCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3Jl ZnN5bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTQxLDEwICs0MSwxMCBAQCBDUkVBVEUgWyB7 IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icAogCiAgIDxwYXJhPgogICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBsb2NhbCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiAgUmV0cmlldmluZwotICAgYSBz ZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlz IHNldCB0bwotICAgc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgotICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNz aW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCi0g ICByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgIGEgc2Vzc2lv biB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCBvciBhIGRlZmF1bHQgdmFsdWUsIHVubGVz cyBpdHMgdmFsdWUKKyAgIGlzIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBz ZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlIGNv bnRlbnQgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiAgVGhpcyBp cyB0aGUKKyAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFn ZXMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTEwNSw2ICsxMDUsMTcgQEAgQ1JFQVRFIFsg eyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0Ij4KKyAgICA8dGVy bT48bGl0ZXJhbD5ERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxl PjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSA8bGl0ZXJhbD5ERUZBVUxUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgdG8gYXNzaWdu IGEgZGVmYXVsdAorICAgICAgdmFsdWUgdG8gYSBzZXNzaW9uIHZhcmlhYmxlLiBUaGlzIGV4cHJl c3Npb24gaXMgZXZhbHVhdGVkIHdoZW4gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlIGlzIGZp cnN0IGFjY2Vzc2VkIGZvciByZWFkaW5nIGFuZCBoYWQgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEg dmFsdWUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi1jb21taXQtZHJv cCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKaW5kZXggNjFiOTY3ZjljOWIuLjZiMGNi OTUwMzRmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbApAQCAtNzEsNyArNzEsOCBAQCBESVNDQVJEIHsg QUxMIHwgUExBTlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0K ICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgUmVzZXRzIHRoZSB2YWx1ZSBvZiBh bGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKLSAgICAgIGlzIGxhdGVyIHJldXNl ZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAg ICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIGVpdGhlcgorICAgICAg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gb3IgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgIDwvcGFy YT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMKaW5kZXggZDE3YjI3NTYxNjUuLjc4MTU4N2Y5OTEzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z192YXJpYWJsZS5jCkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2NvbGxhdGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAgLTM3LDYgKzQwLDcgQEAgc3Rh dGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJ CQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ CQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJ CQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKQEAg LTUxLDYgKzU1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJ T2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhp c3RzLAorCQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pCiB7CiAJQWNsCQkgICAqdmFyYWNsOwpAQCAtMTE0LDYgKzExOSwxMSBA QCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9u KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFy R2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKKwlpZiAodmFyRGVmZXhwcikKKwkJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShu b2RlVG9TdHJpbmcodmFyRGVmZXhwcikpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJs ZV92YXJkZWZleHByIC0gMV0gPSB0cnVlOworCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9h Y2woT0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwog CWlmICh2YXJhY2wgIT0gTlVMTCkKQEAgLTE1MCw2ICsxNjAsMTEgQEAgY3JlYXRlX3ZhcmlhYmxl KGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2ll cygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOwogCWZyZWVfb2JqZWN0X2FkZHJl c3NlcyhhZGRycyk7CiAKKwkvKiBkZXBlbmRlbmN5IG9uIGRlZmF1bHQgZXhwciAqLworCWlmICh2 YXJEZWZleHByKQorCQlyZWNvcmREZXBlbmRlbmN5T25FeHByKCZteXNlbGYsIChOb2RlICopIHZh ckRlZmV4cHIsCisJCQkJCQkJICAgTklMLCBERVBFTkRFTkNZX05PUk1BTCk7CisKIAkvKiBkZXBl bmRlbmN5IG9uIG93bmVyICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOwogCkBAIC0xODUsNiArMjAwLDcgQEAgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAlP aWQJCQljb2xsYXRpb247CiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFy aWFibGU7CisJTm9kZQkgICAqY29va2VkX2RlZmF1bHQgPSBOVUxMOwogCiAJLyogY2hlY2sgY29u c2lzdGVuY3kgb2YgYXJndW1lbnRzICovCiAJaWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFS SUFCTEVfWEFDVEVORF9EUk9QCkBAIC0yMjYsNiArMjQyLDE2IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQlmb3Jt YXRfdHlwZV9iZSh0eXBpZCkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10 LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKIAorCWlmIChzdG10LT5kZWZleHByKQorCXsKKwkJ Y29va2VkX2RlZmF1bHQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgc3RtdC0+ZGVmZXhwciwKKwkJ CQkJCQkJCSAgIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUKTsKKworCQljb29rZWRfZGVmYXVs dCA9IGNvZXJjZV90b19zcGVjaWZpY190eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCSBjb29rZWRf ZGVmYXVsdCwgdHlwaWQsICJERUZBVUxUIik7CisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0 YXRlLCBjb29rZWRfZGVmYXVsdCk7CisJfQorCiAJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUo c3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCiAJCQkJCQkJICAgbmFtZXNwYWNlaWQsCiAJCQkJCQkJ ICAgdHlwaWQsCkBAIC0yMzMsNiArMjU5LDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwK IAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJ CQkJCQkgICBjb29rZWRfZGVmYXVsdCwKIAkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsK IAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lk OiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKaW5kZXggNzg4MWVlODEzYTUuLjkyNWIxMjNmMzNmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVk ZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgog I2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xt Z3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTUxMywxMSArNTE0LDY4IEBAIEF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKIAl9CiB9CiAKKy8qCisg KiBldmFsdWF0ZSBhbiBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCitldmFsX2Fzc2lnbl9k ZWZleHByKFNWYXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVwKQoreworCURhdHVtCQlkZWZleHBy X3ZhbHVlOworCWJvb2wJCWlzbnVsbDsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoc3Zhci0+ aXNfdmFsaWQpOworCUFzc2VydChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpOworCisJZGVmZXhwcl92 YWx1ZSA9IFN5c0NhY2hlR2V0QXR0cihWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCXR1cCwKKwkJCQkJ CQkJCUFudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhwciwKKwkJCQkJCQkJCSZpc251bGwpOworCisJ aWYgKCFpc251bGwpCisJeworCQlFU3RhdGUJICAgKmVzdGF0ZTsKKwkJRXhwclN0YXRlICAqZGVm ZXhwcnM7CisJCUV4cHIJICAgKmRlZmV4cHI7CisJCWNoYXIJICAgKmRlZmV4cHJfc3RyOworCQlE YXR1bQkJdmFsdWU7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCWVzdGF0ZSA9IENyZWF0 ZUV4ZWN1dG9yU3RhdGUoKTsKKworCQlkZWZleHByX3N0ciA9IFRleHREYXR1bUdldENTdHJpbmco ZGVmZXhwcl92YWx1ZSk7CisJCWRlZmV4cHIgPSAoRXhwciAqKSBzdHJpbmdUb05vZGUoZGVmZXhw cl9zdHIpOworCisJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1 ZXJ5X2N4dCk7CisKKwkJZGVmZXhwciA9IGV4cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSBkZWZl eHByKTsKKwkJZGVmZXhwcnMgPSBFeGVjSW5pdEV4cHIoZGVmZXhwciwgTlVMTCk7CisKKwkJdmFs dWUgPSBFeGVjRXZhbEV4cHJTd2l0Y2hDb250ZXh0KGRlZmV4cHJzLAorCQkJCQkJCQkJCSAgR2V0 UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUpLAorCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJaWYgKCFpc251bGwpCisJCXsKKwkJ CW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsK KworCQkJc3Zhci0+dmFsdWUgPSBkYXR1bUNvcHkodmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFy LT50eXBsZW4pOworCQkJc3Zhci0+aXNudWxsID0gZmFsc2U7CisKKwkJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjeHQpOworCQl9CisKKwkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKwl9 Cit9CisKIC8qCiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICov CiBzdGF0aWMgdm9pZAotc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk LCBib29sIGlzX3dyaXRlKQogewogCUhlYXBUdXBsZQl0dXA7CiAJRm9ybV9wZ192YXJpYWJsZSB2 YXJmb3JtOwpAQCAtNTY3LDYgKzYyNSw5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zhcmlh YmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hW YWx1ZTEoVkFSSUFCTEVPSUQsCiAJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsK IAorCWlmICghaXNfd3JpdGUpCisJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3ZhciwgdHVwKTsKKwog CVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCkBAIC01OTYsNyArNjU3LDcgQEAgc2V0X3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAkg Ki8KIAlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgm bG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFy LCBzdmFyLT52YXJpZCwgZmFsc2UpOwogCQlfc3ZhciA9ICZsb2NzdmFyOwogCX0KIAllbHNlCkBA IC03MzEsNyArNzkyLDI1IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkgKi8K IAlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFy LCB2YXJpZCk7CisJCS8qIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHVzZSBkZWZleHAgaWYgaXQg aXMgZGVmaW5lZCAqLworCQlQR19UUlkoKTsKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgY2Fz ZSwgdGhlIHNldHVwIGNhbiBleGVjdXRlIGRlZmF1bHQgZXhwcmVzc2lvbi4gV2hlbgorCQkJICog dGhlIGV4ZWN1dGlvbiBvZiBkZWZhdWx0IGV4cHJlc3Npb24gZmFpbHMsIHRoZW4gd2UgbmVlZCB0 bworCQkJICogcmVtb3ZlIGVudHJ5IGZyb20gc2Vzc2lvbiB2YXJzLgorCQkJICovCisJCQlzZXR1 cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCBmYWxzZSk7CisJCX0KKwkJUEdfQ0FUQ0go KTsKKwkJeworCQkJLyogdGhpcyBlbnRyeSBjYW5ub3QgYmUgdmFsaWQsIHJlbW92ZSBmcm9tIHNl c3Npb252YXJzICovCisJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JF TU9WRSwgTlVMTCk7CisKKwkJCS8qIHByb3BhZ2F0ZSB0aGUgZXJyb3IgKi8KKwkJCVBHX1JFX1RI Uk9XKCk7CisJCX0KKwkJUEdfRU5EX1RSWSgpOwogCiAJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAo ZW1pdHRlZCBieSBSRUFEKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLApAQCAtNzk1LDcgKzg3NCw3IEBAIFNldFNlc3Npb25W YXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAogCWlmICghZm91 bmQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJc2V0dXBf c2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCwgdHJ1ZSk7CiAKIAkJZWxvZyhERUJVRzEsICJz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4g bWVtb3J5IChlbWl0dGVkIGJ5IFdSSVRFKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg ZWE2ZDRkOTQ2ODUuLjE4OTUzZTZhNGFkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY1MCw2ICs2NTAsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPHBhcnRib3VuZHNwZWM+IFBhcnRpdGlv bkJvdW5kU3BlYwogJXR5cGUgPGxpc3Q+CQloYXNoX3BhcnRib3VuZAogJXR5cGUgPGRlZmVsdD4J CWhhc2hfcGFydGJvdW5kX2VsZW0KKyV0eXBlIDxub2RlPgkJT3B0U2Vzc2lvblZhckRlZkV4cHIK IAogJXR5cGUgPG5vZGU+CWpzb25fZm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0X2NsYXVz ZV9vcHQKQEAgLTUxNzAsMzAgKzUxNzEsMzYgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToK ICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVB VEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2Nv bGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIFZBUklB QkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0 U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRl U2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CiAJCQkJ CSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ0OwogCQkJCQlu LT50eXBlTmFtZSA9ICQ2OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDc7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkODsKKwkJCQkJbi0+ZGVmZXhwciA9ICQ4Owor CQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDk7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxz ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFS SUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRf Y29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBW QVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9w dF9jb2xsYXRlX2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9u CiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKIAkJCQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZh cmlhYmxlID0gJDc7CiAJCQkJCW4tPnR5cGVOYW1lID0gJDk7CiAJCQkJCW4tPmNvbGxDbGF1c2Ug PSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CisJ CQkJCW4tPmRlZmV4cHIgPSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQog CQk7CiAKK09wdFNlc3Npb25WYXJEZWZFeHByOiBERUZBVUxUIGJfZXhwcgkJCQkJeyAkJCA9ICQy OyB9CisJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogLyoKICAq IFRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBvbiBzdWNjZXNzZnVs CiAgKiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5k ZXggYjQ5NGM4ODVlOWYuLmNiNTcyMDNlMTg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00 ODUsNiArNDg1LDcgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQ Ul9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAKIAkJCWlmIChpc0FnZykKIAkJCQllcnIgPSBfKCJh Z2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25z Iik7CkBAIC05MzQsNiArOTM1LDcgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lO RF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJ Y2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oIndpbmRvdyBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFr OwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKaW5kZXggYzliZTNkNmIzOGUuLjY4NzUxZmNiMDg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKQEAgLTU4NCw2ICs1ODQsNyBAQCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVz KFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCiAJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6 CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9U QVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQlyZXN1bHQgPSBm YWxzZTsKIAkJCWJyZWFrOwogCX0KQEAgLTY2OSw2ICs2NzAsNyBAQCB0cmFuc2Zvcm1Db2x1bW5S ZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5E X0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CiAJCWNhc2UgRVhQ Ul9LSU5EX0xFVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJ CQkvKiBva2F5ICovCiAJCQlicmVhazsKIApAQCAtMjA3Nyw2ICsyMDc5LDcgQEAgdHJhbnNmb3Jt U3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCQlicmVhazsK IAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNU SU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIg PSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwogCQkJYnJl YWs7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CkBAIC0zNDI5LDYgKzM0MzIs NyBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJu ICJDSEVDSyI7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJf S0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxU OgogCQkJcmV0dXJuICJERUZBVUxUIjsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lP TjoKIAkJCXJldHVybiAiaW5kZXggZXhwcmVzc2lvbiI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpp bmRleCA5YWE0ZjYwNzY4Yi4uZmNhYzY5NDQ1NWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpA QCAtMjYyMCw2ICsyNjIwLDcgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJCWJyZWFrOwogCQljYXNl IEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVG QVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oInNl dC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Np b25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCmluZGV4IGFiZDlhNTVkY2Q2Li5iZTg5M2I1MDIwOSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01 NDE3LDYgKzU0MTcsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3Zh cm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBuYW1lOworCWlu dAkJCWlfdmFyZGVmZXhwcjsKIAlpbnQJCQlpX3ZhcnhhY3RlbmRhY3Rpb247CiAJaW50CQkJaV92 YXJvd25lcjsKIAlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKQEAgLTU0NDIsNiArNTQ0Myw3IEBAIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYudmFy Y29sbGF0aW9uXG4iCiAJCQkJCSAgIiAgICAgICAgICAgIEVMU0UgMFxuIgogCQkJCQkgICIgICAg ICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdf Z2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAg ICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1Yn LCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCiAJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5w Z192YXJpYWJsZSB2XG4iCkBAIC01NDU4LDYgKzU0NjAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAlpX3Zhcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2Ui KTsKIAlpX3ZhcnR5cGUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFt ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBuYW1lIik7CisJaV92YXJkZWZleHByID0gUFFmbnVt YmVyKHJlcywgInZhcmRlZmV4cHIiKTsKIAlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIo cmVzLCAidmFyeGFjdGVuZGFjdGlvbiIpOwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJl cywgInZhcmNvbGxhdGlvbiIpOwogCkBAIC01NDkzLDYgKzU0OTYsMTEgQEAgZ2V0VmFyaWFibGVz KEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0uZGFjbC5pbml0cHJpdnMgPSBOVUxMOwogCQl2 YXJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV92YXJv d25lcikpOwogCisJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfdmFyZGVmZXhwcikpCisJCQl2 YXJpbmZvW2ldLnZhcmRlZmV4cHIgPSBOVUxMOworCQllbHNlCisJCQl2YXJpbmZvW2ldLnZhcmRl ZmV4cHIgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyZGVmZXhwcikpOworCiAJ CS8qIGRvIG5vdCB0cnkgdG8gZHVtcCBBQ0wgaWYgbm8gQUNMIGV4aXN0cyAqLwogCQlpZiAoIVBR Z2V0aXNudWxsKHJlcywgaSwgaV92YXJhY2wpKQogCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVu dHMgfD0gRFVNUF9DT01QT05FTlRfQUNMOwpAQCAtNTUyNSw2ICs1NTMzLDcgQEAgZHVtcFZhcmlh YmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1 ZmZlciBxdWVyeTsKIAljaGFyCSAgICpxdWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBu YW1lOworCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29uc3QgY2hhciAqdmFyeGFjdGVuZGFj dGlvbjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAKQEAgLTU1MzcsNiArNTU0Niw3IEBAIGR1bXBW YXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAKIAlx dWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CiAJ dmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyZGVmZXhwciA9IHZhcmluZm8t PnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3RlbmRhY3Rp b247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOwogCkBAIC01NTU2LDYg KzU1NjYsMTAgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5m byAqdmFyaW5mbykKIAkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKIAl9CiAK KwlpZiAodmFyZGVmZXhwcikKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAl cyIsCisJCQkJCQkgIHZhcmRlZmV4cHIpOworCiAJaWYgKHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9u LCAiciIpID09IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAwOTEwNTA3ZDlhYy4uZTJjYjA2Y2M4ODMg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNzAyLDYgKzcwMiw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJs ZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFy dHlwbmFtZTsKKwljaGFyCSAgICp2YXJkZWZleHByOwogCWNoYXIJICAgKnZhcnhhY3RlbmRhY3Rp b247CiAJY2hhcgkgICAqdmFyYWNsOwogCWNoYXIJICAgKnJ2YXJhY2w7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IDA4ZWE3OTE0MjBhLi4wNGZlOTg0M2FlNiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKQEAgLTM5NTksNiArMzk1OSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJ fSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUJyA9PiB7CisJCWFs bF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMn LAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50ZWdlciBERUZBVUxUIDEwOycsCisJCXJlZ2V4 cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGlu dGVnZXIgREVGQVVMVCAxMDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJ JWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwK KwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFSSUFC TEUgdGVzdF92YXJpYWJsZSBERUZBVUxUIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCcgPT4gewor CQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1h bmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlNCBBUyBpbnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJ T04gRU5EIFJFU0VUO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVt cF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1 bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1 bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3Rf dmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFU RSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTBiYWU1MzkxMTMuLjU2NjU1 OTMxNmVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwpAQCAtNTE1OSw3ICs1MTU5LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25z dCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQ R3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0 aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wg dHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgw MDAwKQogCXsKQEAgLTUxODAsNiArNTE4MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9N IHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJ CQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5 cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgog CQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNc IixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkg YXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJ CSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKIAkJCQkJICAiICAgIFdI RU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKQEAgLTUxODksNiArNTE5 MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQog CQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0 aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXgg NjAyOTFlZjdhYzIuLmU4YmZlZWJlZDExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBA IC02Nyw2ICs2Nyw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9u SWQpCiAJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCiAJYWNsaXRlbQkJdmFyYWNsWzFdIEJLSV9E RUZBVUxUKF9udWxsXyk7CiAKKwkvKiBsaXN0IG9mIGV4cHJlc3Npb24gdHJlZXMgZm9yIHZhcmlh YmxlIGRlZmF1bHQgKE5VTEwgaWYgbm9uZSkgKi8KKwlwZ19ub2RlX3RyZWUgdmFyZGVmZXhwciBC S0lfREVGQVVMVChfbnVsbF8pOworCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAyMmFkZTIxNDdhOC4uYmZmYmE1YjI1OWYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NDAsNiArMzQ0MCw3IEBAIHR5cGVkZWYgc3RydWN0IENy ZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBv ZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90 X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCU5vZGUJICAg KmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9u OwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10 OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA2ZDkzNjkxOTY1OS4uYmFiYTIyZWQ4NDAg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODQsNiArODQsNyBAQCB0eXBlZGVmIGVudW0g UGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFyayB2YWx1 ZSAqLwogCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25tZW50IHRh cmdldCAqLwogCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdldCAqLworCUVYUFJf S0lORF9WQVJJQUJMRV9ERUZBVUxULCAvKiBkZWZhdWx0IHZhbHVlIGZvciBzZXNzaW9uIHZhcmlh YmxlICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK aW5kZXggNThkNmZlYjI4MjMuLmE3NDBiYWUzNDczIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQKQEAgLTU4ODgsMjAgKzU4ODgsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJs ZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNj ZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUg ICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9u IAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAoMSBy b3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1FTlQg T04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBU eXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAg ICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAg ICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK KyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAg ICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3Jp cHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8 IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zhcmlh YmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAg ICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAg LTYzNjksOSArNjM2OSw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5z dWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hl bWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTQ0LDkgKzY1NDQsOSBAQCBpbXByb3BlciBxdWFsaWZp ZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGlt cHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlv biB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0t Ky0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRh dGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjY4Myw5ICs2Njgz LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAt LSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dAppbmRleCAyODBiMjdlNzA1NC4uZjJkZjIzOTViMTggMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEg QEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0 LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAg ICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQotIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdy ZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAg ICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAg U2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVz dCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIx OwpAQCAtMTU1MSwzICsxNTUxLDY2IEBAIFNFTEVDVCB2YXIxIElTIE5VTEw7CiAoMSByb3cpCiAK IERST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3Rf ZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9m eCBleGVjdXRlZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKy0tIHZhcnRl c3RfZnggc2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAsIHNob3VsZCBmYWlsCitEUk9QIEZVTkNU SU9OIHZhcnRlc3RfZngoKTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24gdmFydGVzdF9m eCgpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24g dmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIGZ1bmN0aW9uIHZhcnRlc3RfZngoKQorSElOVDogIFVz ZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2YXJ0ZXN0X2Z4IGV4ZWN1dGVk CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworLS0gdGhlIGRlZmV4cHIgc2hvdWxk IGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg ICAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gaW4gdGhpcyBjYXNlLCB0aGUg ZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAorTEVUIHZhcjEgPSAxMDA7CitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxF UzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQg QVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQVElPTiAndmFydGVzdF9meCBpcyBleGVjdXRpbmcn OworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgdG8g ZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRlc3RfZngg aXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9meCgpIGxp bmUgMyBhdCBSQUlTRQorLS0gYWdhaW4KK1NFTEVDVCB2YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4 IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBs aW5lIDMgYXQgUkFJU0UKKy0tIGJ1dCB3ZSBjYW4gd3JpdGUKK0xFVCB2YXIxID0gMTAwOworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggODI5MjkzZGRjYzQuLmE5M2UzMGMxNDk4IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDM3LDMg KzEwMzcsNTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogCiBEUk9QIFZBUklB QkxFIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRl ZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSB2YXJ0ZXN0X2Z4 IHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2 YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHRoZSBk ZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsKKworRElT Q0FSRCBWQVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5v dCBiZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQg VkFSSUFCTEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMg ZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCist LSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CisKKy0tIGFn YWluCitTRUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7 CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCk7Ci0tIAoyLjQ2LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20240829-0011-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrs19 RnJvbSBkMzgwNTdmYjFmYTk3Njc0MDRjMTM3OWFhZWIyOWU0ZmJiNjg3MDVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjAgTWFyIDIwMjQgMDg6Mzc6MTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIwXSBJbXBsZW1lbnRhdGlvbiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlCgpUaGlz IGlzIHNpbXBsZSBwYXRjaCAtIGp1c3QgYWRkIHNwZWNpYWwgZmxhZyB0byBzZXNzaW9uIHZhcmlh YmxlIG1lbW9yeSBlbnRyeS4KVGhlIGVudHJpZXMgd2l0aCBhY3RpdmUgdGhpcyBmbGFnIGFyZSBy ZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZQphdCB0cmFuc2FjdGlvbiBlbmQuIFRo ZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBzeW5vbnltcyBmb3IgIkNPTU1JVCBST0xMQkFDSyIKYnV0 IHRoZSAiVFJBTlNBQ1RJT04gRU5EIiBpcyBtb3JlIGlsbHVzdHJhdGl2ZSBhbmQgbGVzcyBjb25m dXNpbmcgdGhlbiAiQ09NTUlUIFJPTExCQUNLIi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCAgICAgICAgIHwgMTMgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8IDE4ICsrKysrKysKIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICA0ICstCiAuLi4vaXNvbGF0aW9uL3NwZWNz L3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMzQgKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjAgKysrKysrKysKIDEzIGZpbGVz IGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggNjdhNTRhYTNlNjQuLjMwZGZlODc3NTcyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTgzOCw3 ICs5ODM4LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA2NDIzNDYxODZmMC4uZTFjMjk0MGQ0Y2Eg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjcsNyArMjcsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBD UkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMTcsNiArMTE3LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCBjMTllYTFlM2UzZi4uNzg4MWVlODEzYTUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTgzLDYgKzgzLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUgaWYgYW55LiAgV2UgbmVl ZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgpAQCAtMTEwLDYg KzExMiwxMiBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIC8qIHRydWUgYWZ0ZXIgYWNjZXB0ZWQgc2ludmFsIG1lc3NhZ2UgKi8KIHN0YXRpYyBi b29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4gc29tZSB1 c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBUUkFOU0FD VElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJp YWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250ZW50IG9m IHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiBXaGVuIGl0CiAg KiBpcyBwb3NzaWJsZSB3ZSBkbyB0aGlzIGF0IHRoZSB0cmFuc2FjdGlvbiBlbmQuIEJ1dCB3aGVu IHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQsCkBAIC0zODgsNiArMzk2LDMyIEBAIHJlbW92ZV9pbnZh bGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJfQogfQogCisvKgorICogcmVtb3Zl IGVudHJpZXMgbWFya2VkIGFzICJyZXNldF9hdF9lb3giCisgKi8KK3N0YXRpYyB2b2lkCityZW1v dmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJaWYgKCFzZXNzaW9udmFycykK KwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2 YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2Vv eCkKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKHN2YXItPnJlc2V0X2F0X2VveCkKKwkJCWhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwl9CisKKwloYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKK30KKwogLyoKICAgKiBQ ZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZvciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAg ICogYW5kIHJlbW92ZSBhbGwgZHJvcHBlZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC0zOTUs NiArNDI5LDggQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkK IHZvaWQKIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIHsKKwly ZW1vdmVfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3goKTsKKwogCWlmIChpc0Nv bW1pdCkKIAl7CiAJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCkBAIC01MDYsNiArNTQyLDIxIEBAIHNl dHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCS8qCisJICogV2UgZG9uJ3QgbmVlZCB0 byBleHBsaWNpdGx5IHJlc2V0IHZhcmlhYmxlcyBtYXJrZWQgT04gQ09NTUlUIERST1AuIEl0CisJ ICogY2FuIGJlIGRvbmUgYnkgc2ludmFsIG1lc3NhZ2UgcHJvY2Vzc2luZy4gQnV0IHRoaXMgcHJv Y2Vzc2luZyBjYW4gYmUKKwkgKiBwb3N0cG9uZWQgZHVlIGFib3J0ZWQgdHJhbnNhY3Rpb24uIE9u IHNlY29uZCBoYW5kIHRoZXJlIGlzIG5vdCBhCisJICogcmVhc29uLCB3aHkgZG9uJ3QgZG8gaXQg YXQgdHJhbnNhY3Rpb24gZW5kIGltbWVkaWF0ZWx5LgorCSAqLworCWlmICh2YXJmb3JtLT52YXJ4 YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfUkVTRVQgfHwKKwkJdmFyZm9ybS0+dmFy eGFjdGVuZGFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1ApCisJeworCQlzdmFyLT5yZXNl dF9hdF9lb3ggPSB0cnVlOworCQloYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9l b3ggPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXItPnJlc2V0X2F0X2VveCA9IGZhbHNlOworCiAJ c3Zhci0+ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAlzdmFyLT5pc251bGwg PSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOWJlNWM3NWIwNzYuLmVhNmQ0ZDk0Njg1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTUxOTksNiArNTE5OSw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICogdHJh bnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAgT04g Q09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBPTiBU UkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VUOyB9 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsgfQog CQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCmluZGV4IDVkMWNhYzcwOWExLi5hYmQ5YTU1ZGNkNiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCkBAIC01NDE3LDYgKzU0MTcsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlp bnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBu YW1lOworCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVyOwogCWlu dAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFyYWNsOwpAQCAtNTQzNCw2ICs1NDM1LDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJLyogZ2V0IHRoZSB2YXJpYWJsZXMgaW4g Y3VycmVudCBkYXRhYmFzZSAqLwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkgICJT RUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAiICAgICAgIHYu dmFyeGFjdGVuZGFjdGlvbixcbiIKIAkJCQkJICAiICAgICAgIHYudmFybmFtZXNwYWNlLCB2LnZh cnR5cGUsXG4iCiAJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlw ZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCiAJCQkJCSAgIiAgICAgICBDQVNFIFdI RU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgpAQCAtNTQ1Niw2ICs1NDU4LDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1i ZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZh cnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOwor CWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7 CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAKIAlp X3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CkBAIC01NDc5LDYgKzU0ODIs OSBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAogCQl2YXJpbmZvW2ldLnZhcnR5cGUg PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOwogCQl2YXJpbmZvW2ldLnZh cnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwbmFtZSkpOwor CQl2YXJpbmZvW2ldLnZhcnhhY3RlbmRhY3Rpb24gPQorCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3ZhcnhhY3RlbmRhY3Rpb24pKTsKKwogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlv biA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKIAogCQl2YXJp bmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkp OwpAQCAtNTUxOSw2ICs1NTI1LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAljaGFyCSAgICpx dWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOworCWNvbnN0IGNoYXIgKnZhcnhh Y3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCiAJLyogc2tpcCBpZiBub3QgdG8g YmUgZHVtcGVkICovCkBAIC01NTMwLDYgKzU1MzcsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19z dHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJp bmZvLT52YXJ0eXBuYW1lOworCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5k YWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAogCWFwcGVu ZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKQEAgLTU1NDgsNiArNTU1 Niw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZh cmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYg KHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9uLCAiciIpID09IDApCisJCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCIpOworCiAJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksICI7XG4iKTsKIAogCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBP TkVOVF9ERUZJTklUSU9OKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggMzZhNjlhMDgzMjQuLjA5MTA1MDdkOWFj IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKQEAgLTcwMiw2ICs3MDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFi bGVJbmZvCiAJRHVtcGFibGVBY2wgZGFjbDsKIAlPaWQJCQl2YXJ0eXBlOwogCWNoYXIJICAgKnZh cnR5cG5hbWU7CisJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlvbjsKIAljaGFyCSAgICp2YXJhY2w7 CiAJY2hhcgkgICAqcnZhcmFjbDsKIAljaGFyCSAgICppbml0dmFyYWNsOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbAppbmRleCAwZDM3NjVlZWQ0Zi4uMDhlYTc5MTQyMGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCkBAIC0zOTQxLDYgKzM5NDEsMjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAog CX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgT04gVFJBTlNBQ1RJT04gRU5E IFJFU0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NS RUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwg ICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQ7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQg UkVTRVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rf c2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9 PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFz dXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9 PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcg ZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBmNmFhOGJjNWY2Yy4uNTBiYWU1MzkxMTMg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCkBAIC01MTgyLDYgKzUxODIsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIg KnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2Vy YnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3Rl bmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xu IgorCQkJCQkgICIgICAgV0hFTiAncicgVEhFTiAnT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xu IgogCQkJCQkgICIgIEVORCBhcyBcIiVzXCJcbiIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hl bWEiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaAppbmRleCAxZTZkZDk4ZDQxNS4uNjAyOTFlZjdhYzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKQEAgLTc0LDYgKzc0LDcgQEAgdHlwZWRlZiBlbnVtIFZhcmlhYmxlWGFjdEVuZEFj dGlvbgogewogCVZBUklBQkxFX1hBQ1RFTkRfTk9PUCA9ICduJywJLyogTk9PUCAqLwogCVZBUklB QkxFX1hBQ1RFTkRfRFJPUCA9ICdkJywJLyogT04gQ09NTUlUIERST1AgKi8KKwlWQVJJQUJMRV9Y QUNURU5EX1JFU0VUID0gJ3InLAkvKiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgKi8KIH0JCQlW YXJpYWJsZVhhY3RFbmRBY3Rpb247CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAppbmRleCA5ZmJiZjkw NTdhNi4uMTlhMmU1YThmNjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQv c2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTg1LDExICs4NSwxMiBAQCBteXZhcgogCiBzdGVwIHNy MTogUk9MTEJBQ0s7CiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19j X2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3Rh cnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQg bGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKIHN0ZXAgY3Jl YXRlMzogQ1JFQVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2 YXIzID0gJ3Rlc3QnOwogc3RlcCBzMzogQkVHSU47CiBzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBW QVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOworc3RlcCBvX2VveF9y OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVO RCBSRVNFVDsgTEVUIG15dmFyX29fZW94X3IgPSAndGVzdCc7CiBzdGVwIGNyZWF0ZTQ6IENSRUFU RSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0 JzsKIHN0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpAQCAtMTAyLDYgKzEwMyw3IEBA IHQKIAogc3RlcCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKIHN0ZXAgc2MzOiBDT01NSVQ7 CitzdGVwIGNsZWFuOiBEUk9QIFZBUklBQkxFIG15dmFyX29fZW94X3I7CiBzdGVwIHN0YXRlOiBT RUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOwogdmFybmFtZQogLS0tLS0tLQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggNDVlNjVk NDA4NWQuLjVkMDg5YzhhNGVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mv c2Vzc2lvbi12YXJpYWJsZS5zcGVjCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNz aW9uLXZhcmlhYmxlLnNwZWMKQEAgLTI1LDEyICsyNSwxNCBAQCBzZXNzaW9uIHMzCiBzdGVwIHMz CQkJeyBCRUdJTjsgfQogc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KIHN0ZXAg b19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01N SVQgRFJPUDsgfQorc3RlcCBvX2VveF9yCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyX29fZW94X3Ig QVMgdGV4dCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7IExFVCBteXZhcl9vX2VveF9yID0gJ3Rl c3QnOyB9CiBzdGVwIGNyZWF0ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0K IHN0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rlc3QnOyB9CiBzdGVwIGRyb3A0CQl7IERST1Ag VkFSSUFCTEUgbXl2YXI0OyB9CiBzdGVwIGludmFsMwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBG Uk9NIHBnX2ZvcmVpZ25fdGFibGU7IH0KIHN0ZXAgZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVT OyB9CiBzdGVwIHNjMwkJeyBDT01NSVQ7IH0KK3N0ZXAgY2xlYW4JCXsgRFJPUCBWQVJJQUJMRSBt eXZhcl9vX2VveF9yOyB9CiBzdGVwIHN0YXRlCQl7IFNFTEVDVCB2YXJuYW1lIEZST00gcGdfdmFy aWFibGU7IH0KIAogc2Vzc2lvbiBzNApAQCAtNDgsNCArNTAsNCBAQCBwZXJtdXRhdGlvbiBsZXQg dmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVy IHRoZSBjb25jdXJyZW50IGRyb3AKIHBlcm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3Jl YXRlIGRiZyB2YWwgc3IxCiAjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFs IHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQz IHMzIG9fY19kIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3Rh dGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0 NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggYTg5MzJmZjM2 MzIuLjI4MGIyN2U3MDU0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dApAQCAtMTUxNywzICsxNTE3LDM3IEBAIFNFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CiAgICAgIDAKICgxIHJvdykKIAorQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKK0JFR0lOOworICBM RVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygx IHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIE5VTEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxM OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworQkVHSU47CisgIExFVCB2 YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93 KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBOVUxMOwor ID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDYzYjUx ZjlhMzRhLi44MjkyOTNkZGNjNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTAxNywzICsxMDE3LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUg emVybwogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVH SU47CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hv dWxkIGJlIE5VTEw7CitTRUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIFNFTEVDVCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitT RUxFQ1QgdmFyMSBJUyBOVUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ2LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0010-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20240829-0010-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrs810 RnJvbSBmOTE3MDdhZDM5MWQ4ZGM2MjU4YzZhMDY0MjRjMTlkZTNjY2YxZjc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjE6MzY6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDEw LzIwXSBpbXBsZW1lbnRhdGlvbiBvZiB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMKClRoZSB0 ZW1wb3JhcnkgdmFyaWFibGVzIGFyZSBjcmVhdGVkIGluc2lkZSB0ZW1wIHNjaGVtYSBhbmQgdGhl eSBhcmUgZHJvcHBlZCBieSBkcm9wcGluZwp0aGlzIHNjaGVtYS4gRm9yIGNvbnNpc3RlbmN5IHdp dGggdGVtcCB0YWJsZXMsIHRoZSBDUkVBVEUgVEVNUCBWQVJJQUJMRSBjb21tYW5kIHN1cHBvcnRz Ck9OIENPTU1JVCBEUk9QIGNsYXVzZS4gVGhlIHRlbXBvcmFyeSB2YXJpYWJsZXMgd2l0aCB0aGlz IGNsYXVzZSBhcmUgY29sbGVjdGVkIGluIHhhY3RfZHJvcF9pdGVtcwpsaXN0LiBUaGlzIGxpc3Qg c2hvdWxkIGJlIGNhcmVmdWxseSBtYWludGFpbmVkIGFuZCBjYW4gY29udGFpbiBvbmx5IHZhbGlk IGVudHJpZXMgKG5vdAp5ZXQgZHJvcHBlZCkuIEZyb20gdGhpcyByZWFzb25zIG5vdyB0aGUgc3Vi Y29tbWl0IGFuZCBzdWJhYm9ydGluZyBoYXZlIHRvIGJlIGhhbmRsZWQuCi0tLQogZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIGRvYy9zcmMvc2dt bC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAyNCArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE5MCArKysrKysrKysrKysrKysrKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgMjIgKy0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgIDkgKwogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA3ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8ICAgMyArLQogLi4uL2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKysrLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgIDY2ICsrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDIz IGZpbGVzIGNoYW5nZWQsIDUyMSBpbnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IGFjM2IwNGZmOTEyLi42N2E1NGFhM2U2NCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTk4MzIsNiArOTgzMiwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0 aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hh cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjdGlvbiBwZXJm b3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMDYzMjgzNTJlYzEuLjU2ZGVlODlhOTA2IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC01MzA2LDkgKzUzMDYsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIDxjb21tYW5k PkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgdHJhbnNh Y3Rpb25hbDoKICAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24g dmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAogICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJh bnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMgaW4KLSAgICBwcm9j ZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJz aXN0ZW50LCBidXQKLSAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Ig c2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCi0gICAgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAg cHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4g YmUgcGVyc2lzdGVudAorICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVp dGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCisgICAgY29udGVudCBvZiB0ZW1w b3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdmFyaWFibGUuc2dtbAppbmRleCAwNWJmNjdlMzQxMS4uNjQyMzQ2MTg2ZjAgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyArMjYsOCBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBP TiBDT01NSVQgRFJPUCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNl Y3QxPgpAQCAtMTA0LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBD T01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSA8bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNp ZmllcyB0aGUgYmVoYXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxl IGF0IHRyYW5zYWN0aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNz aW9uIHZhcmlhYmxlIGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25s eSBhbGxvd2VkCisgICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4K ICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggMWNiMzc0MzMz MDMuLmM4OWUzYzkwN2JkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0yMzA4LDcg KzIzMDgsNyBAQCBDb21taXRUcmFuc2FjdGlvbih2b2lkKQogCXNtZ3JEb1BlbmRpbmdTeW5jcyh0 cnVlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCiAJLyogcmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5ICovCi0JQXRQcmVFT1hhY3RfU2Vzc2lvblZh cmlhYmxlcygpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSk7CiAKIAkvKiBj bG9zZSBsYXJnZSBvYmplY3RzIGJlZm9yZSBsb3dlci1sZXZlbCBjbGVhbnVwICovCiAJQXRFT1hh Y3RfTGFyZ2VPYmplY3QodHJ1ZSk7CkBAIC0yOTA1LDYgKzI5MDUsNyBAQCBBYm9ydFRyYW5zYWN0 aW9uKHZvaWQpCiAJQXRBYm9ydF9Qb3J0YWxzKCk7CiAJc21nckRvUGVuZGluZ1N5bmNzKGZhbHNl LCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0RU9YYWN0X0xhcmdlT2JqZWN0KGZhbHNlKTsKKwlB dFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlKTsKIAlBdEFib3J0X05vdGlmeSgpOwog CUF0RU9YYWN0X1JlbGF0aW9uTWFwKGZhbHNlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0QWJv cnRfVHdvcGhhc2UoKTsKQEAgLTUxODEsNiArNTE4Miw4IEBAIENvbW1pdFN1YlRyYW5zYWN0aW9u KHZvaWQpCiAJQXRFT1N1YlhhY3RfU1BJKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0 RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rpb25zKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJ CQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwlBdEVPU3ViWGFjdF9TZXNz aW9uVmFyaWFibGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCSBzLT5wYXJl bnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9TdWJYYWN0X05hbWVzcGFjZSh0cnVlLCBzLT5z dWJUcmFuc2FjdGlvbklkLAogCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwog CUF0RU9TdWJYYWN0X0ZpbGVzKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCkBAIC01MzQ1LDYg KzUzNDgsOCBAQCBBYm9ydFN1YlRyYW5zYWN0aW9uKHZvaWQpCiAJCUF0RU9TdWJYYWN0X1NQSShm YWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rp b25zKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkJICBzLT5wYXJlbnQtPnN1 YlRyYW5zYWN0aW9uSWQpOworCQlBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlLCBz LT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25J ZCk7CiAJCUF0RU9TdWJYYWN0X05hbWVzcGFjZShmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwK IAkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X0Zp bGVzKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j CmluZGV4IDBmYjhjN2YyMmE0Li5kMTdiMjc1NjE2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFi bGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBpbnQzMiB2YXJUeXBtb2QsCiAJCQkJ CQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCi0JCQkJCQkJ CQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJ CQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKIC8q CkBAIC00OSw3ICs1MCw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CQkJCWludDMyIHZhclR5cG1vZCwKIAkJCQlPaWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxh dGlvbiwKLQkJCQlib29sIGlmX25vdF9leGlzdHMpCisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAor CQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAg KnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwpAQCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92 YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2 YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0 dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0 aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKIAl2YXJhY2wgPSBn ZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkg IHZhck5hbWVzcGFjZSk7CkBAIC0xODMsNiArMTg2LDEzIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJdHlwY29s bGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CiAKKwkvKiBjaGVjayBjb25zaXN0ZW5j eSBvZiBhcmd1bWVudHMgKi8KKwlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9Y QUNURU5EX0RST1AKKwkJJiYgc3RtdC0+dmFyaWFibGUtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBF UlNJU1RFTkNFX1RFTVApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJPTiBDT01NSVQgRFJPUCBj YW4gb25seSBiZSB1c2VkIG9uIHRlbXBvcmFyeSB2YXJpYWJsZXMiKSkpOworCiAJbmFtZXNwYWNl aWQgPQogCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFi bGUsIE5vTG9jaywgTlVMTCk7CiAKQEAgLTIyMiw3ICsyMzIsOCBAQCBDcmVhdGVWYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAg IHR5cG1vZCwKIAkJCQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJ CQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cywKKwkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVj b3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBw Z192YXJpYWJsZSIsCiAJCSBzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0 SWQpOwpAQCAtMjMwLDYgKzI0MSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJLyogd2Ugd2FudCBTZXNzaW9uVmFyaWFi bGVDcmVhdGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hhbmdlcy4gKi8KIAlDb21t YW5kQ291bnRlckluY3JlbWVudCgpOwogCisJU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nl c3ModmFyaWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24pOworCiAJcmV0dXJuIHZh cmlhYmxlOwogfQogCkBAIC0yNDIsNiArMjU1LDcgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFy aWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkJWGFjdEVuZEFj dGlvbjsKIAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKIApAQCAtMjUwLDYgKzI2NCw4IEBAIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlk KQogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlYYWN0RW5kQWN0aW9uID0g KChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhhY3RlbmRhY3Rpb247CisK IAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwogCiAJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CkBAIC0yNTcsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQp CiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCS8qIGRvIHRoZSBuZWNl c3NhcnkgY2xlYW51cCBpZiBuZWVkZWQgaW4gbG9jYWwgbWVtb3J5ICovCi0JU2Vzc2lvblZhcmlh YmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nl c3ModmFyaWQsIFhhY3RFbmRBY3Rpb24pOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCmluZGV4IDI1MTgxYmRlMjhlLi5jMTllYTFlM2UzZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTYsNiArMTYsOCBAQAogCiAjaW5jbHVkZSAi YWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC0zMSw2ICsz MywxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNj YWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KK3sKKwlPaWQJ CQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlhYmxlICovCisKKwkvKgorCSAqIGNy ZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRpbmcgc3VieGFjdC4gSWYgdGhlIGFj dGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0aGUgZGVsZXRpbmcgc3VieGFjdCwg b3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgorCSAqLworCVN1YlRyYW5zYWN0aW9u SWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25JZCBkZWxldGluZ19zdWJpZDsKK30g U1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZh cmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKICAqIGlu IHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBi aW5hcnkgZm9ybWF0LgpAQCAtMTA1LDYgKzEyMCwxMiBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxp ZGF0aW9uID0gZmFsc2U7CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVk X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxk cyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJv cF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94 YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv ciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTQxLDE2ICsxNjIsNDUg QEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWlu dDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8g c2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoK KyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRy eSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Np b25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9u KQoreworCS8qCisJICogRm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRl IGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNh dGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9Q KQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao dmFyaWQpOworCX0KK30KKwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAg Zm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBj YXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAot U2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3Nl cnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYg KFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlz VGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisK KwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJ aWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xNzMsNiArMjIzLDU3IEBA 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 bW9yeQogICovCkBAIC0yODgsMTUgKzM4OSw5MiBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3Zh cmlhYmxlcyhib29sIGF0RU9YKQogfQogCiAvKgotICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICAqIFBlcmZvcm0gT04gQ09NTUlUIERS T1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKKyAgKiBhbmQgcmVtb3ZlIGFsbCBk cm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KICAqLwogdm9pZAotQXRQcmVFT1hhY3RfU2Vz c2lvblZhcmlhYmxlcyh2b2lkKQorQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlz Q29tbWl0KQogewotCS8qIHdlIGNhbm5vdCB0byBkbyBpdCB3aGVuIHRyYW5zYWN0aW9uIGlzIGFi b3J0ZWQgKi8KLQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCWlmIChpc0NvbW1pdCkK Kwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJCXsKKwkJCUxpc3RDZWxsICAgKmw7CisKKwkJ CWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCQkJeworCQkJCVNWYXJpYWJsZVhBY3REcm9w SXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwp OworCisJCQkJLyogaXRlcmF0ZSBvbmx5IG92ZXIgZW50cmllcyB0aGF0IGFyZSBzdGlsbCBwZW5k aW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID09IEludmFsaWRTdWJUcmFu c2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJb2Jq ZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9uSWQ7CisJCQkJCW9iamVjdC5vYmplY3RJZCA9 IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJCQkJCS8q CisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0b21hdGljIGRyb3AsIHJhdGhlciB0aGFuIG9u ZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQgYnkgdGhlIHVzZXIsIHdlIHBhc3MgdGhlCisJ CQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgZmxhZy4KKwkJCQkJICovCisJCQkJCWVs b2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAob2lkOiV1KSB3aWxsIGJlIGRlbGV0ZWQgKGZv cmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2UpIiwKKwkJCQkJCSB4YWN0X2FpLT52YXJpZCk7 CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJ CVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9R VUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KIAotCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFy aWFibGVzKHRydWUpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsK Kwl9CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVs YXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0 ZWQgdHJhbnNhY3Rpb24uCisJICovCisJbGlzdF9mcmVlX2RlZXAoeGFjdF9kcm9wX2l0ZW1zKTsK Kwl4YWN0X2Ryb3BfaXRlbXMgPSBOVUxMOworfQorCisvKgorICogUG9zdC1zdWJjb21taXQgb3Ig cG9zdC1zdWJhYm9ydCBjbGVhbnVwIG9mIHhhY3QgZHJvcCBsaXN0LgorICoKKyAqIER1cmluZyBz dWJhYm9ydCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVzIGNyZWF0ZWQgZHVyaW5n IHRoaXMKKyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0LCBqdXN0IHRyYW5zZmVy IGVudHJpZXMgbWFya2VkIGR1cmluZworICogdGhpcyBzdWJ0cmFuc2FjdGlvbiBhcyBiZWluZyB0 aGUgcGFyZW50J3MgcmVzcG9uc2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0RU9TdWJYYWN0X1Nlc3Np b25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBteVN1 YmlkLAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKQoreworCUxpc3RDZWxs ICAgKmN1cl9pdGVtOworCisJZm9yZWFjaChjdXJfaXRlbSwgeGFjdF9kcm9wX2l0ZW1zKQorCXsK KwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKikgbGZpcnN0KGN1cl9pdGVtKTsKKworCQlpZiAoIWlzQ29tbWl0ICYmIHhhY3RfYWkt PmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1cl9pdGVtIG11c3QgYmUg cmVtb3ZlZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9kZWxldGVfY3VycmVudCh4 YWN0X2Ryb3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3RfYWkpOworCQl9CisJCWVs c2UKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJCWlmICh4YWN0 X2FpLT5jcmVhdGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmNyZWF0aW5nX3N1 YmlkID0gcGFyZW50U3ViaWQ7CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPT0gbXlT dWJpZCkKKwkJCQl4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9IGlzQ29tbWl0ID8gcGFyZW50U3Vi aWQgOiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJfQorCX0KIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zp ZXcuYwppbmRleCBmZGFkODMzODMyNC4uNmY3NGYxNGY2YWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKQEAg LTQ4NCw3ICs0ODQsNyBAQCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpx dWVyeVN0cmluZywKIAkgKi8KIAl2aWV3ID0gY29weU9iamVjdChzdG10LT52aWV3KTsJLyogZG9u J3QgY29ycnVwdCBvcmlnaW5hbCBjb21tYW5kICovCiAJaWYgKHZpZXctPnJlbHBlcnNpc3RlbmNl ID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAotCQkmJiBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRp b24odmlld1BhcnNlKSkKKwkJJiYgaXNRdWVyeVVzaW5nVGVtcE9iamVjdCh2aWV3UGFyc2UpKQog CXsKIAkJdmlldy0+cmVscGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOwogCQllcmVw b3J0KE5PVElDRSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGY1MzY1M2FhMzY4Li5iZDFiOTlkYzhh NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMjk3LDEwICszMjk3LDEwIEBAIHRyYW5zZm9ybUNy ZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0bXQgKnN0 bXQpCiAJCSAqIGNyZWF0aW9uIHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJlc2ggZGF0 YSBvciBpbmNyZW1lbnRhbGx5CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRpc2FwcGVh cmVkLgogCQkgKi8KLQkJaWYgKGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkpCisJCWlm IChpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygi bWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9yIHZpZXdz IikpKTsKKwkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1w b3JhcnkgdGFibGVzLCB2aWV3cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJLyoKIAkJ ICogQSBtYXRlcmlhbGl6ZWQgdmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBhcmFtZXRl cnMgZm9yIHVzZSBpbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMGI4ODg2ZTczMWIuLjliZTVjNzViMDc2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTQ3OSw2ICs0NzksNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog JXR5cGUgPGl2YWw+CSBPcHRUZW1wCiAldHlwZSA8aXZhbD4JIE9wdE5vTG9nCiAldHlwZSA8b25j b21taXQ+IE9uQ29tbWl0T3B0aW9uCisldHlwZSA8aXZhbD4JIFhhY3RFbmRBY3Rpb25PcHRpb24K IAogJXR5cGUgPGl2YWw+CWZvcl9sb2NraW5nX3N0cmVuZ3RoCiAldHlwZSA8bm9kZT4JZm9yX2xv Y2tpbmdfaXRlbQpAQCAtNTE2OSwyNiArNTE3MCwzOSBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9p dGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJ CUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxh dGVfY2xhdXNlCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRf YXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7 CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZh clN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQzOwotCQkJCQluLT50eXBlTmFtZSA9ICQ1Owot CQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCSQ0LT5yZWxw ZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ0OworCQkJCQluLT50eXBlTmFt ZSA9ICQ2OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7CisJCQkJ CW4tPlhhY3RFbmRBY3Rpb24gPSAkODsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZfUCBO T1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1 c2UKKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmll ZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9w dGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVh dGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDY7Ci0JCQkJCW4tPnR5cGVO YW1lID0gJDg7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJ CQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxlID0gJDc7CisJCQkJ CW4tPnR5cGVOYW1lID0gJDk7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAq KSAkMTA7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CiAJCQkJCW4tPmlmX25vdF9leGlz dHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKKy8qCisgKiBU ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vzc2Z1bAor ICogdHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgorICovCitYYWN0RW5kQWN0aW9uT3B0aW9u OiAgT04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJ fCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX05PT1A7IH0KKwkJOwor CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQ REFURSBbIFRPIHZlcnNpb24gXQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCAy ZjY0ZWFmMGUzNy4uYmRlNWIxMTE4YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j CkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgZXhwYW5kVHVwbGVEZXNjKFR1cGxlRGVz YyB0dXBkZXNjLCBBbGlhcyAqZXJlZiwKIHN0YXRpYyBpbnQJc3BlY2lhbEF0dE51bShjb25zdCBj aGFyICphdHRuYW1lKTsKIHN0YXRpYyBib29sIHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwogc3RhdGljIGJvb2wgcnRlX3Zpc2li bGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsK LXN0YXRpYyBib29sIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY29udGV4dCk7CitzdGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtl cihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIAogCiAvKgpAQCAtMzgyMSwxMyArMzgyMSwx MyBAQCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRi bEVudHJ5ICpydGUpCiAgKiB0aGUgcXVlcnkgaXMgYSB0ZW1wb3JhcnkgcmVsYXRpb24gKHRhYmxl LCB2aWV3LCBvciBtYXRlcmlhbGl6ZWQgdmlldykuCiAgKi8KIGJvb2wKLWlzUXVlcnlVc2luZ1Rl bXBSZWxhdGlvbihRdWVyeSAqcXVlcnkpCitpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1ZXJ5ICpx dWVyeSkKIHsKLQlyZXR1cm4gaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcigoTm9kZSAq KSBxdWVyeSwgTlVMTCk7CisJcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKChO b2RlICopIHF1ZXJ5LCBOVUxMKTsKIH0KIAogc3RhdGljIGJvb2wKLWlzUXVlcnlVc2luZ1RlbXBS ZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK2lzUXVlcnlVc2luZ1Rl bXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiB7CiAJaWYgKG5vZGUg PT0gTlVMTCkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzg1MywxMyArMzg1MywyMyBAQCBpc1F1ZXJ5 VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCX0K IAogCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCi0JCQkJCQkJCSBpc1F1ZXJ5VXNp bmdUZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93 YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LAogCQkJCQkJCQkgUVRXX0lHTk9SRV9KT0lOQUxJQVNF Uyk7CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9 IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUp CisJCXsKKwkJCWlmIChpc0FueVRlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKHAtPnBhcmFtdmFyaWQpKSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0KIAogCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCi0JCQkJCQkJCSAgaXNRdWVyeVVzaW5n VGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dh bGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBhZGY4M2VkMTk3MC4u ZjZhYThiYzVmNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MTU5LDcgKzUxNTksNyBAQCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVm OwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0Owot CXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRy YW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsK QEAgLTUxNzksMTIgKzUxNzksMTYgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJu LCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxu YW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0 XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9 IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVz XCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikg YXMgXCIlc1wiXG4iLAorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFy b3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxu IgorCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJCQkJCSAg IiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAog CQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJP d25lciIpKTsKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9u b29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmMKaW5kZXggMmU5MWFkNDFmMzQuLjA0YzQ5ZTQxNzc0IDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jCkBAIC0zMjYzLDcgKzMyNjMsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4 dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGlu c2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8K IAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNP TVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lU SCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCS8qIENvbXBsZXRl ICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChU YWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxF IiwgIlNFUVVFTkNFIik7CkBAIC0zNTc5LDcgKzM1NzksOCBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIC8qIENSRUFURSBWQVJJQUJM RSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVz ICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCi0JZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwllbHNl IGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkg VGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlD T01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1h dGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTIHR5cGVzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggZGI1OTNjZDViZWQu LjFlNmRkOThkNDE1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01NSw2ICs1NSw5 IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogdHlw bW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlpbnQzMgkJdmFydHlwbW9kIEJLSV9ERUZBVUxU KC0xKTsKIAorCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KKwljaGFyCQl2YXJ4YWN0 ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOworCiAJLyogdmFyaWFibGUgY29sbGF0aW9uICovCiAJ T2lkCQkJdmFyY29sbGF0aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxh dGlvbik7CiAKQEAgLTY3LDYgKzcwLDEyIEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJp YWJsZVJlbGF0aW9uSWQpCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAKK3R5cGVk ZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24KK3sKKwlWQVJJQUJMRV9YQUNURU5EX05PT1Ag PSAnbicsCS8qIE5PT1AgKi8KKwlWQVJJQUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENP TU1JVCBEUk9QICovCit9CQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uOworCiAvKiAtLS0tLS0tLS0t LS0tLS0tCiAgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIgdG8g YSB0dXBsZSB3aXRoCiAgKgkJdGhlIGZvcm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVsYXRpb24u CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMGQ0YzYzNWFlN2Iu LmRjODMyOTZiMWJhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBA IC0yMSw4ICsyMSwxMSBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRp bHMvcXVlcnllbnZpcm9ubWVudC5oIgogCi1leHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9w UG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsKLWV4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25W YXJpYWJsZXModm9pZCk7CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJv Y2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBTZXNzaW9u VmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pOwor ZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KTsK K2V4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwg U3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBh cmVudFN1YmlkKTsKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBjZGQxZDllZTI2YS4uMjJhZGUyMTQ3YTggMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0NDAsNiArMzQ0MCw3IEBAIHR5cGVkZWYgc3RydWN0IENy ZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBv ZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90 X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWNoYXIJCVhh Y3RFbmRBY3Rpb247CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vz c2lvblZhclN0bXQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA1ZjdiODNkMTNmYS4uZGQ4 ZWQzOTY1YjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC01MSw3ICs1MSw5IEBAIHR5cGVkZWYg c3RydWN0IEFsaWFzCiAJTGlzdAkgICAqY29sbmFtZXM7CQkvKiBvcHRpb25hbCBsaXN0IG9mIGNv bHVtbiBhbGlhc2VzICovCiB9IEFsaWFzOwogCi0vKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1l IGZvciB0ZW1wb3JhcnkgcmVsYXRpb25zICovCisvKgorICogV2hhdCB0byBkbyBhdCBjb21taXQg dGltZSBmb3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyBvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLwog dHlwZWRlZiBlbnVtIE9uQ29tbWl0QWN0aW9uCiB7CiAJT05DT01NSVRfTk9PUCwJCQkJLyogTm8g T04gQ09NTUlUIGNsYXVzZSAoZG8gbm90aGluZykgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmgKaW5kZXggYmVhMmRhNTQ5NjEuLjU4NWVhZGY2NTI0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfcmVsYXRpb24uaApAQCAtMTI0LDYgKzEyNCw2IEBAIGV4dGVybiBpbnQJYXR0bmFtZUF0dE51 bShSZWxhdGlvbiByZCwgY29uc3QgY2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7CiBleHRl cm4gY29uc3QgTmFtZURhdGEgKmF0dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7 CiBleHRlcm4gT2lkCWF0dG51bVR5cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVy biBPaWQJYXR0bnVtQ29sbGF0aW9uSWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1leHRlcm4g Ym9vbCBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVybiBib29s IGlzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJCQkJCS8q IFBBUlNFX1JFTEFUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBl Y3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9z ZXNzaW9uLXZhcmlhYmxlLm91dAppbmRleCAyOTY4Y2NlMDg5NS4uOWZiYmY5MDU3YTYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAor KysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAg LTg1LDEwICs4NSwxMSBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKLXN0YXJ0aW5n IHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGlu dmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0 MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0 YXRlCiBzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsKIHN0ZXAg bGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOworc3RlcCBvX2NfZDog Q1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsK IHN0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0 OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5z cGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwppbmRl eCBjODY0ZmVlNDAwNi4uNDVlNjVkNDA4NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpAQCAtMjQsNiArMjQsNyBAQCBzdGVwIGNyZWF0ZQkJ eyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQogc2Vzc2lvbiBzMwogc3RlcCBzMwkJ CXsgQkVHSU47IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIG9f Y19kCQl7IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlU IERST1A7IH0KIHN0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsg fQogc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJCXsgRFJP UCBWQVJJQUJMRSBteXZhcjQ7IH0KQEAgLTQ3LDQgKzQ4LDQgQEAgcGVybXV0YXRpb24gbGV0IHZh bCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0 aGUgY29uY3VycmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0 ZSBkYmcgdmFsIHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBx dWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBz MyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJt dXRhdGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGlu dmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXgg YzcwYzYxNDA5MWUuLjU4ZDZmZWIyODIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTU4ODgsMjAgKzU4ODgsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAg ICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAg ICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcg fCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdz b21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNj aGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3du ZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAg ICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQot IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5n IHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25l cit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAg IHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTYzNjksOSArNjM2OSw5IEBA IExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTQ0LDkgKzY1NDQsOSBAQCBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIK IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1h IHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFn YWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmlj YXRpb25zLgpAQCAtNjY4Myw5ICs2NjgzLDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0 ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu dmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0 IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCAwY2M5MmMyMmUxNi4uYTg5MzJmZjM2MzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00NSwxMSArNDUsMTEgQEAgU0VUIFJPTEUg VE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIx IEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKLSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAg ICAgICBPd25lciAgICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gc3ZhcnRlc3Qg fCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAg ICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8IAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0x Mzk3LDMgKzEzOTcsMTIzIEBAIFNFTEVDVCB2YXIxOwogCiBERUFMTE9DQVRFIHAxOwogRFJPUCBW QVJJQUJMRSB2YXIxOworLS0gdGVtcG9yYXJ5IHZhcmlhYmxlcworQ1JFQVRFIFRFTVAgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hvdWxkIGJlIHRlbXBvcmFyeQorQ1JFQVRF IFZJRVcgdmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZpZXcgInZhcl90 ZXN0X3ZpZXciIHdpbGwgYmUgYSB0ZW1wb3JhcnkgdmlldworRFJPUCBWQVJJQUJMRSB2YXIxIENB U0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdmFyX3Rlc3RfdmlldworQkVH SU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENP TU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorICAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFy MSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklB QkxFIHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09N TUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xM QkFDSzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJs ZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lO OworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor ICBST0xMQkFDSyBUTyBzMTsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IDBiNGE1M2NlMTA3Li42M2I1MWY5YTM0YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtODI1LDYgKzgyNSw3IEBAIEJFR0lOOwogICBEUk9QIFZBUklB QkxFIHZhcjE7CiAgIFNFTEVDVCB2YXIyOwogUk9MTEJBQ0s7CisKIC0tIHNob3VsZCBiZSBvawog U0VMRUNUIHZhcjE7CiAKQEAgLTk1MSwzICs5NTIsNjggQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxM T0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMK K0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBi ZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CisK K0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFS SUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBT RUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVH SU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUg PSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEg QVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJM RSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJv CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsK KyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExF VCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hv dWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5h bWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FWRVBPSU5U IHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1Qg dmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAtLWdpdCBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKaW5kZXggN2IyNDU2YjllODkuLjMxOGM2N2I1OGQ1IDEwMDY0NAotLS0gYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdApAQCAtMjc5Myw2ICsyNzkzLDcgQEAgU3VwcG9ydFJlcXVlc3RXRnVuY01v bm90b25pYwogU1ZhcmlhYmxlCiBTVmFyaWFibGVEYXRhCiBTVmFyaWFibGVTdGF0ZQorU1Zhcmlh YmxlWEFjdERyb3BJdGVtCiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ2 LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0009-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20240829-0009-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrse11 RnJvbSAwNDk1NjE4Njg4YzUyZGRlYzUzYmEyNDAxMGYwZWYyM2Q5NzMzYjViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIwXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCA0OGJkY2FiMmFkNS4uMGI4ODg2ZTczMWIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIwOTMsNyArMTIwOTMsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggZGU5YWU5YjQ4MzQuLmI0YjliNWI2MWM4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDQzZmI2NWY4 ZTM4Li4yZTkxYWQ0MWYzNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtNDI2OCw5ICs0MjY4LDkgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwg IlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKLS8qIExFVCAqLworLyogTEVULCBF WFBMQUlOIExFVCwgUFJFUEFSRSBMRVQgKi8KIAkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdn ZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KLQllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJs ZT4gd2l0aCAiPSIgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCA4YzVkOGE1ZWIyOS4uMGNjOTJjMjJlMTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MzgsOSArNDM4LDkgQEAgRFJPUCBWQVJJ QUJMRSB2YXIxLCB2YXIyOwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93 ZWQgaW4gQ1RFCiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2 YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICJMRVQiCitFUlJPUjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUg MTogV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAg ICAgICAgICAgIF4KKyAgICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0g Z2VuZXJhdGVfc2VyaWVzKDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTEzMTgsNSArMTMxOCw4 MiBAQCBTRUxFQ1QgdmFyMTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1Qg Y291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAx CisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJf dGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElN SU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYpIEVYRUNVVEUgcDE7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1 YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rl c3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQg YmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKK0RFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIG51bWVyaWM7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxh bjsKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAkMTsKK1BSRVBBUkUgcDIgQVMg U0VMRUNUIHZhcjE7CitFWEVDVVRFIHAxKHBpKCkgKyAxMDApOworRVhFQ1VURSBwMjsKKyAgICAg IHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLQorIDEwMy4xNDE1OTI2NTM1OQorKDEgcm93 KQorCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklB QkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworLS0gc2hvdWxkIGJlIE5V TEwKK0VYRUNVVEUgcDI7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworREVBTExP Q0FURSBwMTsKK0RFQUxMT0NBVEUgcDI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgcGxhbl9j YWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWNbXTsKK1BSRVBBUkUgcDEoaW50LCBudW1lcmljKSBBUyBMRVQgdmFyMVskMV0gPSAkMjsK K0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VYRUNV VEUgcDEoMiwgMTAuMyk7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgICAKKy0tLS0tLS0tLS0t LS0KKyB7MTAuMiwxMC4zfQorKDEgcm93KQorCitERUFMTE9DQVRFIHAxOworRFJPUCBWQVJJQUJM RSB2YXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IDM2NDlmYzEzMTZiLi4wYjRhNTNjZTEwNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtODkyLDUgKzg5Miw2MiBAQCBFWFBMQUlOIChDT1NUUyBPRkYs IFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291 bnQoKgogLS0gc2hvdWxkIGJlIDEwCiBTRUxFQ1QgdmFyMTsKIAorU0VUIHBsYW5fY2FjaGVfbW9k ZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VM RUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworTEVUIHZhcjEgPSBOVUxM OworCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDE7CisKKy0tIHNob3VsZCBiZSBOVUxM CitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpF LCBTVU1NQVJZIE9GRikgRVhFQ1VURSBwMTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFy MTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCitERUFMTE9DQVRFIHAxOwor CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAk MTsKK1BSRVBBUkUgcDIgQVMgU0VMRUNUIHZhcjE7CisKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7 CitFWEVDVVRFIHAyOworCistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0 CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCist LSBzaG91bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKworREVBTExPQ0FURSBwMTsKK0RFQUxMT0NB VEUgcDI7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBm b3JjZV9nZW5lcmljX3BsYW47CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWNbXTsKKwor UFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQxXSA9ICQyOworCitMRVQgdmFy MSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRFIHAxKDIs IDEwLjMpOworCitTRUxFQ1QgdmFyMTsKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKLS0gCjIuNDYuMAoK --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0008-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20240829-0008-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrsm12 RnJvbSBkMTQ3OGEyZjEwNTg2MzY3Yzc5Y2M5MDBhYmUwNzE0NWUwMGI2MDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE4OjI4OjA3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8yMF0gRVhQTEFJTiBMRVQgc3VwcG9ydAoKRW5oYW5jaW5nIEV4cGxhaW5PbmVQbGFu IGlzIG5lY2Vzc2FyeSB0byBiZSBFWFBMQUlOIEFOQUxZWkUgTEVUIGZ1bGx5IHdvcmthYmxlLgpJ biB0aGlzIGNhc2Ugd2Ugd2FudCB0byBiZSByZXN1bHQgb2YgcXVlcnkgb3IgZXhwcmVzc2lvbiB3 cml0dGVuIHRvIHRhcmdldCB2YXJpYWJsZS4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4u c2dtbCAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaCAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA0MCArKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMSArKysrKysrKysrCiA3 IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2V4 cGxhaW4uc2dtbAppbmRleCBkYjlkM2E4NTQ5YS4uY2FjY2M3MDY1OGMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFp bi5zZ21sCkBAIC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAg PGNvbW1hbmQ+Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVD VVRFPC9jb21tYW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwK KyAgICBvciA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0 dGluZyB0aGUgY29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxw cm9ncmFtbGlzdGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDExZGY0YTA0 ZDQzLi5lZjk4NmM1YTcwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgsNiArMTgsNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL2NyZWF0ZWFzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNpbmNs dWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTUwNyw4ICs1 MDgsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29y T3B0aW9ucywKIAl9CiAKIAkvKiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0 ICovCi0JRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMs IHF1ZXJ5RW52LAotCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2Fn ZSA6IE5VTEwpLAorCUV4cGxhaW5PbmVQbGFuKHBsYW4sIGludG8sIHF1ZXJ5LT5yZXN1bHRWYXJp YWJsZSwgZXMsIHF1ZXJ5U3RyaW5nLAorCQkJCSAgIHBhcmFtcywgcXVlcnlFbnYsICZwbGFuZHVy YXRpb24sCisJCQkJICAgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCiAJCQkJICAg ZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNTkyLDYgKzU5NCwy NSBAQCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50 bywgRXhwbGFpblN0YXRlICplcywKIAkJZWxzZQogCQkJRXhwbGFpbkR1bW15R3JvdXAoIk5vdGlm eSIsIE5VTEwsIGVzKTsKIAl9CisJZWxzZSBpZiAoSXNBKHV0aWxpdHlTdG10LCBMZXRTdG10KSkK Kwl7CisJCUxldFN0bXQgICAgKmxldHN0bXQgPSAoTGV0U3RtdCAqKSB1dGlsaXR5U3RtdDsKKwkJ TGlzdAkgICAqcmV3cml0dGVuOworCQlRdWVyeQkgICAqcXVlcnk7CisKKwkJaWYgKGVzLT5mb3Jt YXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMt PnN0ciwgIlNFVCBTRVNTSU9OIFZBUklBQkxFXG4iKTsKKwkJZWxzZQorCQkJRXhwbGFpbkR1bW15 R3JvdXAoIlNldCBTZXNzaW9uIFZhcmlhYmxlIiwgTlVMTCwgZXMpOworCisJCXJld3JpdHRlbiA9 IFF1ZXJ5UmV3cml0ZShjYXN0Tm9kZShRdWVyeSwgY29weU9iamVjdChsZXRzdG10LT5xdWVyeSkp KTsKKworCQlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKwkJcXVlcnkgPSBs aW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdyaXR0ZW4pOworCQlFeHBsYWluT25lUXVlcnkocXVlcnks CisJCQkJCQlDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBOVUxMLCBlcywKKwkJCQkJCXF1ZXJ5U3Ry aW5nLCBwYXJhbXMsIHF1ZXJ5RW52KTsKKwl9CiAJZWxzZQogCXsKIAkJaWYgKGVzLT5mb3JtYXQg PT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKQEAgLTYxNSw4ICs2MzYsOCBAQCBFeHBsYWluT25lVXRp bGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICpl cywKICAqIHRvIGNhbGwgaXQuCiAgKi8KIHZvaWQKLUV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10 ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKLQkJCSAg IGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKK0V4cGxhaW5P bmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgT2lkIHRh cmdldHZhciwKKwkJCSAgIEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52 LCBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCiAJCQkgICBjb25zdCBCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3Vu dGVycykKQEAgLTY2NSw2ICs2ODYsOCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxh bm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJICovCiAJaWYg KGludG8pCiAJCWRlc3QgPSBDcmVhdGVJbnRvUmVsRGVzdFJlY2VpdmVyKGludG8pOworCWVsc2Ug aWYgKE9pZElzVmFsaWQodGFyZ2V0dmFyKSkKKwkJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJl Y2VpdmVyKHRhcmdldHZhcik7CiAJZWxzZSBpZiAoZXMtPnNlcmlhbGl6ZSAhPSBFWFBMQUlOX1NF UklBTElaRV9OT05FKQogCQlkZXN0ID0gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZl cihlcyk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDcxOWU2M2ZlODIzLi4yMDQ2 ZmE4YTU0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNjYzLDggKzY2Myw5IEBAIEV4cGxh aW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBF eHBsYWluU3RhdGUgKmVzLAogCQlQbGFubmVkU3RtdCAqcHN0bXQgPSBsZmlyc3Rfbm9kZShQbGFu bmVkU3RtdCwgcCk7CiAKIAkJaWYgKHBzdG10LT5jb21tYW5kVHlwZSAhPSBDTURfVVRJTElUWSkK LQkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLCBwYXJhbUxJ LCBxdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1 c2FnZSA6IE5VTEwpLAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQs IGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBxdWVyeUVudiwgJnBsYW5kdXJh dGlvbiwKKwkJCQkJCSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCQkJ ICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIAkJZWxzZQogCQkJRXhwbGFp bk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRvLCBlcywgcXVlcnlfc3RyaW5nLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggM2Q2MmNmYjBmNmYuLjQ4YmRjYWIyYWQ1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTEyMDYyLDcgKzEyMDYyLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQK IAkJCXwgQ3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4 ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0 ZVN0bXQKKwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwog CQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IDli OGIzNTFkOWEyLi44OTY1NjYyNTA2NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaApAQCAtMTAxLDcg KzEwMSw4IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJCSAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOwogCi1leHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQbGFubmVk U3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sCitleHRlcm4gdm9pZCBFeHBsYWlu T25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsCisJCQkJCQkgICBJbnRvQ2xhdXNlICpp bnRvLCBPaWQgdGFyZ2V0dmFyLAogCQkJCQkJICAgRXhwbGFpblN0YXRlICplcywgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsCiAJCQkJCQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRp b24sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IDY2MDQyM2Q1ZGU4Li44YzVkOGE1ZWIyOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEyODAsMyArMTI4MCw0MyBAQCBT RVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJM RSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKK0NSRUFURSBWQVJJQUJM RSB2YXIxIGJpZ2ludDsKK0NSRUFURSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOwor SU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTApOworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3Rf dGFibGUpOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNT SU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUK KyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykK KworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAg CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VN TUFSWSBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90 YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJ QUJMRQorIFJlc3VsdCAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUgKGFjdHVhbCByb3dzPTEwIGxvb3BzPTEpCiso NSByb3dzKQorCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFyX3Rh Yl90ZXN0X3RhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IDM5MWMxMzQ5ZmZhLi4zNjQ5ZmMxMzE2YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtODczLDMgKzg3MywyNCBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54 eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IGJpZ2ludDsKKworQ1JFQVRFIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZShhIGludCk7CisKK0lO U0VSVCBJTlRPIHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwKTsKKworVkFDVVVNIEFOQUxZWkUgdmFyX3RhYl90ZXN0X3RhYmxlOworCitFWFBMQUlO IChDT1NUUyBPRkYpIExFVCB2YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVz dF90YWJsZSk7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJf dGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ2LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20240829-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrsy14 RnJvbSBlYzdjM2M2NWE0YzUyNTg5MmNlM2FiMDg2ZWE4N2EwYTBjYTUxNmNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTY6MDg6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2 LzIwXSBwbHBnc3FsIHRlc3RzCgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUub3V0IHwgMzgyICsrKysrKysrKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3Jj L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9zcmMvc3FsL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5zcWwgICAgICB8IDI4OSArKysrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5v dXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZp bGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKaW5kZXggNjNjYjk2ZmFlM2UuLmJiY2Fl MjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi42ZThiNDEzNGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMzgy IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CistLSBwYXNz aW5nIHBhcmFtZXRlcnMgdG8gRE8gYmxvY2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug J3ZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyOworRU5EOwor JCQ7CitOT1RJQ0U6ICB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzIDMuMTQxNTkyNjUzNTg5 NzkKKy0tIHBhc3Npbmcgb3V0cHV0IGZyb20gRE8gYmxvY2s7CitETyAkJAorQkVHSU4KKyAgTEVU IHBscGdzcWxfc3ZfdmFyID0gMiAqIHBpKCk7CitFTkQKKyQkOworU0VMRUNUIHBscGdzcWxfc3Zf dmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKyAgcGlfbXVsdGlwbHlfMiAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgNi4yODMxODUzMDcxNzk1OQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyOworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIy IEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB1cGRhdGVyX2Z1bmMoKQor UkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gcGxwZ3Nx bF9zdl92YXIxICsgMTAwOworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gcGxwZ3NxbF9zdl92YXIy ICsgMTAwMDAwMDAwMDAwOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMyA9IHBscGdzcWxfc3ZfdmFyMyB8fCBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAw MCkpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9U SUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIyID0g JScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9ICUn LCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7Cist LSBleGVjdXRlIHVuZGVyIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygp OworIHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVh ZGVyX2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVw ZGF0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJf ZnVuYygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAw My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRl cl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91 dCBvZiB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMgCist LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9USUNF OiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAg bGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIFBML3BnU1FMIGJsb2NrCitETyAk JAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5j KCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsK K0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2 NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNFOiAgdmFyMSA9 IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxkIGJlIGNvcnJl Y3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxf c3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBzaG91bGQgdG8g d29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsKKyAgUEVS Rk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQRVJGT1JN IHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAg dmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIK K05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMuMTQxNTky NjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKK0RST1Ag RlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOworRFJPUCBG VU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBj YWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUg diBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTsK KyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBM RVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBnc3FsX3N2 X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAw fQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7MTAwfQor Tk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwg cGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9OIFNDSEVN QSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3Jv bGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xFVCBwbHBn c3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBw bHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFyMQor Q09OVEVYVDogIFNRTCBleHByZXNzaW9uICJwbHBnc3FsX3N2X3ZhcjEiCitQTC9wZ1NRTCBmdW5j dGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxU OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitTRVQg Uk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyX3JlYWRfZnVuYygpOworTk9USUNFOiAgMTAKKyB2YXJf cmVhZF9mdW5jIAorLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgY3Jhc2gKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBk b2VzIG5vdCBleGlzdAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorUVVFUlk6 ICBwbHBnc3FsX3N2X3ZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9m dW5jKCkgbGluZSAzIGF0IFJBSVNFCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBGVU5DVElP TiB2YXJfcmVhZF9mdW5jOworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVz c192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4 ZWNfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHJldHVybnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX2ludChpbnQpCitS RVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IENPQUxFU0NF KHBscGdzcWxfc3ZfdmFyMSArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjE7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192 YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBp bmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEp IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0t LQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAgICA3 CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAgMTEK KyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdz cWxfc3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9u dW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIGluY192 YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDIK KygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisgaW5jX3Zhcl9udW0gCistLS0t LS0tLS0tLS0tCisgICAgICAgICAgIDMKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfbnVtKDEu MCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9udW0gCistLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAgICAg IDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAgICAx MQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitEUk9QIFZBUklBQkxF IHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworRFJPUCBGVU5DVElPTiBpbmNfdmFy X2ludDsKK0RST1AgRlVOQ1RJT04gaW5jX3Zhcl9udW07CistLSBwbHBnc3FsIHZhcmlhYmxlcyBh cmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdz cWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9U SUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBt eWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElD RSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAw MAorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjE7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKK0NSRUFURSBG VU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVu YyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNU SU9OIGdmdW5jKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdiA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK3NlbGVjdCBmZnVuYygpOworIGZmdW5jIAorLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVz b24uYnVpbGQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggM2RkNzM0Yjc3 NmIuLjM5MDVjMGI2ZDQ1IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVp bGQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBA IHRlc3RzICs9IHsKICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dl cicsCiAgICAgICAncGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3Jj L3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zOThlN2ZlMmE3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgor ICBMRVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBn c3FsX3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2 YXIyID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFy MyA9ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CisKKy0tIGV4ZWN1dGUgdW5kZXIgdHJhbnNhY3Rpb24KK0JFR0lOOworU0VMRUNUIHdyaXRl cl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsK K1NFTEVDVCByZWFkZXJfZnVuYygpOworRU5EOworCistLSBleGVjdXRlIG91dCBvZiB0cmFuc2Fj dGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK1NFTEVD VCB1cGRhdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworCistLSBleGVjdXRlIGlu c2lkZSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOwor ICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxhbiBjYWNoZXMgc2hv dWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIg QVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsK KworLS0gc2hvdWxkIHRvIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRl cl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1 bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKwor RFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitE Uk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBvZiBjb3JyZWN0 IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQK K0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92 YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltw bHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFy MjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKKwor RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKKworQ1JFQVRF IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RST1AgRlVOQ1RJ T04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3Fs X3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9OIFNDSEVNQSBw dWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVhZGVyX3JvbGUs IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJf cm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2 YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklU WSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyX3JlYWRfZnVu YygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3JlYWRf ZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9yZWFk X2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFyX293 bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0g cmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVNDRShw bHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VMRUNU IGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5jX3Zh cl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAuMDsK KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0UocGxw Z3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VMRUNU IGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNUIGlu Y192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04gaW5j X3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZhcmlh YmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xB UkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx MDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBS QUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3Zh cjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUg aXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxkIG5v dCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xFVCBw bHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMg dGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitSRVRV Uk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOworICBS RVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygpOwor CitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOworCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDYuMAoK --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20240829-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrss13 RnJvbSA0OGFjYzM5YjA0YWE1Yjc0NWE3YmEzOTdiOGE1NDI0ZjllMGJiZmVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIxIE1heSAyMDI0IDE3OjU1OjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8yMF0gR1VDIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCgpJbnNp ZGUgYW4gcXVlcnkgdGhlIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZC4gVGhpcyBi ZWhhdmlvdXIgaXMgYnkgZGVzaWduLApiZWNhdXNlIHRoaXMgZW5zdXJpbmcgc28gbmV3IHZhcmlh YmxlcyBkb2Vzbid0IGJyZWFrIGV4aXN0aW5nIHF1ZXJpZXMuIEJ1dCB0aGlzCmJlaGF2aW91ciBj YW4gYmUgY29uZnVzaW5nLCBiZWNhdXNlIHNoYWRvd2luZyBpcyBxdWlldC4KCldoZW4gbmV3IEdV QyBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyBvbiwgdGhlbiB0aGUgd2Fy bmluZwppcyBkaXNwbGF5ZWQsIHdoZW4gc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2Vk LCBidXQgaXQgaXMgbm90IHVzZWQKZHVlIHNoYWRvd2luZy4gVGhpcyBmZWF0dXJlIHNob3VsZCB0 byBoZWxwIHdpdGggaW52ZXN0aWdhdGlvbiBvZiB1bmV4cGVjdGVkCmJlaGF2aW91ci4KCk5vdGU6 IFBMcGdTUUwgaGFzIGFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHByaW9yaXR5IG9mIGlkZW50aWZp ZXIncyBzcGFjZXMKKFNRTCBvciBQTHBnU1FMKS4gRGVmYXVsdCBiZWhhdmlvdXIgZG9lc24ndCBh bGxvd3MgY29sbGlzaW9ucy4gSSBiZWxpZXZlCnRoaXMgZGVmYXVsdCBpcyB0aGUgYmVzdC4gSSBj YW5ub3QgdG8gaW1wbGVtZW50IHNpbWlsYXIgdmVyeSBzdHJpY3QKYmVoYXZpb3VyIHRvIHNlc3Np b24gdmFyaWFibGVzLCBiZWNhdXNlIG9uZSB1bmhhcHB5IG5hbWVkIHNlc3Npb24gdmFyaWFibGUK Y2FuIGJyZWFrcyBhbiBhcHBsaWNhdGlvbnMuIFRoZSBwcm9ibGVtcyByZWxhdGVkIHRvIGJhZGx5 IG5hbWVkIFBMcGdTUUwncwp2YXJpYmxlIGlzIGxpbWl0dGVkIGp1c3QgdG8gb25seSBvbmUgcm91 dGluZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCA2MCArKysrKysrKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxMCArKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICA5ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0IHwgMzMgKysrKysrKysrKwogLi4uL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjkgKysrKysrKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMiArKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrCiAxMCBmaWxlcyBj aGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXgg MTJmZWFjNjA4NzQuLmRjNDc0YThjYmZkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0xMDcwNiw2ICsxMDcwNiw2 NiBAQCBkeW5hbWljX2xpYnJhcnlfcGF0aCA9ICdDOlx0b29sc1xwb3N0Z3Jlc3FsO0g6XG15X3By b2plY3RcbGliOyRsaWJkaXInCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1 aXR5LXdhcm5pbmciIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmciPgorICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmc8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+ CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmc8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAg PC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBh cmE+CisgICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhbnkgaWRlbnRp ZmllciBpbiBhIHF1ZXJ5IGNvdWxkIGJlCisgICAgICAgIHVzZWQgYXMgYm90aCBhIGNvbHVtbiBp ZGVudGlmaWVyLCByb3V0aW5lIHZhcmlhYmxlIG9yIGEgc2Vzc2lvbgorICAgICAgICB2YXJpYWJs ZSBpZGVudGlmaWVyLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+LgorICAg ICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2Fu IGJlIHNoYWRvd2VkIGJ5IGNvbHVtbiByZWZlcmVuY2VzIGluIGEgcXVlcnksIHRoaXMKKyAgICAg ICAgaXMgYW4gZXhwZWN0ZWQgYmVoYXZpb3IuICBQcmV2aW91c2x5IHdvcmtpbmcgcXVlcmllcyBz aG91bGRuJ3QgZXJyb3Igb3V0CisgICAgICAgIGJ5IGNyZWF0aW5nIGFueSBzZXNzaW9uIHZhcmlh YmxlLCBzbyBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWx3YXlzIHNoYWRvd2VkCisgICAgICAgIGlm IGFuIGlkZW50aWZpZXIgaXMgYW1iaWd1b3VzLiAgVmFyaWFibGVzIHNob3VsZCBiZSByZWZlcmVu Y2VkIHVzaW5nCisgICAgICAgIGFudW5hbWJpZ3VvdXMgaWRlbnRpZmllciB3aXRob3V0IGFueSBw b3NzaWJpbGl0eSBmb3IgYSBjb2xsaXNpb24gd2l0aAorICAgICAgICBpZGVudGlmaWVyIG9mIG90 aGVyIGRhdGFiYXNlIG9iamVjdHMgKGNvbHVtbiBuYW1lcyBvciByZWNvcmQgZmllbGRzIG5hbWVz KS4KKyAgICAgICAgVGhlIHdhcm5pbmcgbWVzc2FnZXMgZW1pdHRlZCB3aGVuIGVuYWJsaW5nIDx2 YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPgorICAg ICAgICBjYW4gaGVscCBmaW5kaW5nIHN1Y2ggaWRlbnRpZmllciBjb2xsaXNpb24uCis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxV RVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGEgaW50OworTEVUIGEgPSAxMDA7CitTRUxFQ1QgYSBG Uk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKzxzY3JlZW4+CisgYQorLS0tLQorIDEwCiso MSByb3cpCis8L3NjcmVlbj4KKworPHByb2dyYW1saXN0aW5nPgorU0VUIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3Byb2dy YW1saXN0aW5nPgorCis8c2NyZWVuPgorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlz IHNoYWRvd2VkCitMSU5FIDE6IFNFTEVDVCBhIEZST00gZm9vOworICAgICAgICAgICAgICAgXgor REVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJv dXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBu YW1lLgorIGEKKy0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgor ICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGZlYXR1cmUgY2FuIHNpZ25pZmljYW50bHkgaW5j cmVhc2UgbG9nIHNpemUsIHNvIGl0J3MgZGlzYWJsZWQgYnkKKyAgICAgICAgZGVmYXVsdC4gIEZv ciB0ZXN0aW5nIG9yIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpdCdzIHJlY29tbWVuZGVkIHRv CisgICAgICAgIGVuYWJsZSBpdCBpZiB5b3UgdXNlIHNlc3Npb24gdmFyaWFibGVzLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAg IDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zdGFuZGFyZC1jb25mb3JtaW5nLXN0cmluZ3MiIHhyZWZs YWJlbD0ic3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1l PnN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5nczwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5 cGU+KQogICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5zdHJpbmdzPC9wcmltYXJ5PjxzZWNvbmRh cnk+c3RhbmRhcmQgY29uZm9ybWluZzwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDdl ZWUyYThlODAzLi4wNjMyODM1MmVjMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTMyMSw2ICs1MzIxLDE2IEBAIFNFTEVD VCBjdXJyZW50X3VzZXJfaWQ7CiAgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1c2Ug dGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQogICAgIGJsb2NrIGxhYmVs cywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KICAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZpZXJz IG9yIHF1YWxpZmllZCBpZGVudGlmaWVycyB0aGF0IGNvdWxkIGJlCisgICAgdXNlZCBhcyBib3Ro IGEgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZpZXIs CisgICAgdGhlbiB0aGUgY29sdW1uIGlkZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRpbWUu ICBXYXJuaW5ncyBjYW4gYmUKKyAgICBlbWl0dGVkIHdoZW4gdGhpcyBzaXR1YXRpb24gaGFwcGVu cyBieSBlbmFibGluZyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciA8eHJlZgorICAgIGxpbmtlbmQ9 Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1hbWJpZ3VpdHktd2FybmluZyIvPi4gVXNlciBjYW4gZXhw bGljaXRseQorICAgIHF1YWxpZnkgdGhlIHNvdXJjZSBvYmplY3QgYnkgc3ludGF4IDxsaXRlcmFs PnRhYmxlLmNvbHVtbjwvbGl0ZXJhbD4gb3IKKyAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8 L2xpdGVyYWw+LgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3Ro ZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDc2M2I3Yjc3OTc1Li5jOWJlM2Q2YjM4 ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00Nyw2ICs0Nyw3IEBACiAKIC8qIEdVQyBw YXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKK2Jvb2wJ CXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gZmFsc2U7CiAKIAogc3RhdGlj IE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw cik7CkBAIC05NjIsMTEgKzk2Myw1MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCSAqCiAJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIs IGZvby5jIEZST00gZm9vOwogCQkgKgotCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVz aW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4gIFdlIGRvbid0IHRyeSB0bwotCQkgKiBpZGVudGlmeSBh IHZhcmlhYmxlIGlmIHdlIGtub3cgdGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KLQkJICogLS0t LS0KKwkJICogSG93ZXZlciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cg aXQuCisJCSAqCisJCSAqIFdoZW4gc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg aXMgcmVxdWVzdGVkLCB0aGVuIHdlCisJCSAqIG5lZWQgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSBh bHRob3VnaCB3ZSBrbm93LCBzbyB0aGlzIHZhcmlhYmxlCisJCSAqIHdvdWxkIGJlIHNoYWRvd2Vk LgogCQkgKi8KLQkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19D T0xVTU4pKQorCQlpZiAobm9kZSB8fCAocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xV TU4pKQorCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBwYXRoIHdlIGp1c3QgdHJ5IChpZiBpdCBp cyB3YW50ZWQpIGRldGVjdCBpZiBzZXNzaW9uCisJCQkgKiB2YXJpYWJsZSBpcyBzaGFkb3dlZC4K KwkJCSAqLworCQkJaWYgKHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKQorCQkJ eworCQkJCS8qCisJCQkJICogVGhlIEFjY2Vzc1NoYXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0 ZWQgc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkgKiBUaGUgbG9jayB3aWxsIGJlIGtlcHQgZm9yIHRo ZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkJCQkgKi8KKwkJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFi bGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCB0cnVlKTsKKworCQkJCWlm IChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCQl7CisJCQkJCS8qIHRoaXMgcGF0aCB3aWxsIGVuZGlu ZyBieSBXQVJOSU5HLiBVbmxvY2sgdmFyaWFibGUgZmlyc3QgKi8KKwkJCQkJVW5sb2NrRGF0YWJh c2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsK KworCQkJCQlpZiAobm9kZSkKKwkJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1OKSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzXCIgaXMgc2hhZG93ZWQiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco Y3JlZi0+ZmllbGRzKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNh biBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5l J3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCQkJCQllbHNlCisJCQkJCQkvKiBz ZXNzaW9uIHZhcmlhYmxlIGlzIHNoYWRvd2VkIGJ5IFJURSAqLworCQkJCQkJZXJlcG9ydChXQVJO SU5HLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJ CQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJ CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2 YXJpZCkpLAorCQkJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJ CQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRh YmxlcyBvciB0YWJsZSdzIGFsaWFzZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJfQorCQkJ fQorCQl9CisJCWVsc2UKIAkJewogCQkJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRo ZSBzZXNzaW9uIHZhcmlhYmxlICovCiAJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jCmluZGV4IDg4MGQ3NmFhZTBmLi4wZDcwMzUyODM4OSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE1OTUsNiArMTU5NSwxNSBAQCBzdHJ1Y3QgY29uZmln X2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVM TAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIiwgUEdD X1VTRVJTRVQsIENMSUVOVF9DT05OX09USEVSLAorCQkJZ2V0dGV4dF9ub29wKCJSYWlzZSBhIHdh cm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGFtYmlndW91cy4i KSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n LAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewogCQl7ImRlZmF1bHRfdHJh bnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwK IAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVsdCByZWFkLW9ubHkgc3RhdHVzIG9mIG5l dyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bv c3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKaW5kZXggNjY3ZTBkYzQwYTIuLjNlYWUxYzE1MTYwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTMsNiArNzEzLDcg QEAKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9mZgogI2RlZmF1bHRfdHJhbnNh Y3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Npb25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmln aW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBvZmYKICNzdGF0ZW1l bnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFu c2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAj bG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKaW5kZXggOWI0NmRmZDllY2MuLjBkNjRiMzAwZjhhIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmgKQEAgLTE3LDYgKzE3LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMg Ki8KIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFRyYW5zZm9ybV9udWxsX2VxdWFsczsKK2V4dGVy biBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nOwog CiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IDZlOGI0 MTM0YzA2Li5lYzA3ZjFjYmFlOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3Jj L2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTM1NCw2ICszNTQsMzkg QEAgJCQ7CiBOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAogTk9USUNFOiAgcGxwZ3Nx bCB2YXJpYWJsZSBpcyAxMDAwCiBOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCistLSBhZ2FpbnQg d2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyhvbikKK1NFVCBzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK0RPICQkCis8PG15YmxvY2s+Pgor REVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFy MSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIHBscGdzcWxf c3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAg LS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1 YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2Fybmlu ZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAl JywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRvIHByaW50IHBscGdz cWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNF ICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICBz ZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBpcyAxMDAw CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAicGxwZ3NxbF9zdl92YXIxIiBpcyBzaGFkb3dl ZAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgorREVUQUlMOiAgU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMg YW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorUVVFUlk6ICBwbHBn c3FsX3N2X3ZhcjEKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMTsKIC0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAogQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdiB0ZXh0OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCmluZGV4IDM5OGU3ZmUyYTdjLi5lZjcwNWE0Y2M4 NyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJTgogRU5EOwogJCQ7CiAKKy0tIGFn YWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9uKQorCitTRVQg c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CisKK0RPICQkCis8PG15 YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdz cWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisg IHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdh cm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUg aXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhv dXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJp YWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIHRvIHBy aW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJ U0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CisK K1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKIERST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBj b3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggN2U0ZDQxZGUzZTYuLjY2MDQyM2Q1ZGU4IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTI1OCwzICsxMjU4LDI1 IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Cist LSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1B IHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworQ1JFQVRFIFRBQkxFIHB1 YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVTKDEp OworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlh YmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgeHh0YWIuYXZhciBG Uk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFu ZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhdmFyIAorLS0tLS0t CisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBD QVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFi LmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBi M2YzZDZmMTZhMS4uMzkxYzEzNDlmZmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKQEAgLTg1MywzICs4NTMsMjMgQEAgQkVHSU47IERST1AgVkFSSUFCTEUg dmFyMTsgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUg U0NIRU1BIHh4dGFiOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NSRUFU RSBUQUJMRSBwdWJsaWMueHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMueHh0 YWIgVkFMVUVTKDEpOworCitMRVQgeHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92YXJp YWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5p bmcsIHNob3cgMQorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFCTEUg cHVibGljLnh4dGFiOworRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDYuMAoK --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20240829-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrt415 RnJvbSA1ZjJkMWEyMTQyNzZiMzIyNzIxZGE2YWJmN2E2YzZlYzNhYzEwYWViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTg6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1 LzIwXSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0IG9mIHNpbnZh bCBtZXNzYWdlIGludmFsaWRhdGVzIGVudHJpZXMgaW4gc2Vzc2lvbnZhcnMgaGFzaCB0YWJsZS4g VGhlc2UgZW50cmllcwphcmUgdmFsaWRhdGVkIGJlZm9yZSBhbnkgcmVhZCBvciB3cml0ZSBvcGVy YXRpb25zIG9uIHNlc3Npb24gdmFyaWFibGVzLiBXaGVuIHRoZSBlbnRyeQpjYW5ub3QgYmUgdmFs aWRhdGVkLCB0aGVuIGl0IGlzIHJlbW92ZWQuIFRoZSByZW1vdmluZyBjYW4gYmUgZGVsYXllZCB3 aGVuIHZhcmlhYmxlCmlzIGRyb3BwZWQgaW5zaWRlIGN1cnJlbnQgdHJhbnNhY3Rpb24uIFRoaXMg dHJhbnNhY3Rpb24gY2FuIGJlIGFib3J0ZWQgYW5kIGluIHRoaXMgY2FzZQp3ZSB3YW50IHRvIHBy ZXNlcnZlIGNvbnRlbnQgb2YgdGhlIHZhcmlhYmxlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jICAgICAgIHwgMTcyICsrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDMgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTA5ICsrKysrKysrKwogc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAyMTkgKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMjEg KysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2ODEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmlu ZGV4IDBmZTE2MzBmY2E4Li4xY2IzNzQzMzMwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3Qu YwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Rh YmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t YW5kcy93YWl0bHNuLmgiCkBAIC0yMzA2LDYgKzIzMDcsOSBAQCBDb21taXRUcmFuc2FjdGlvbih2 b2lkKQogCSAqLwogCXNtZ3JEb1BlbmRpbmdTeW5jcyh0cnVlLCBpc19wYXJhbGxlbF93b3JrZXIp OwogCisJLyogcmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20g bWVtb3J5ICovCisJQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcygpOworCiAJLyogY2xvc2Ug bGFyZ2Ugb2JqZWN0cyBiZWZvcmUgbG93ZXItbGV2ZWwgY2xlYW51cCAqLwogCUF0RU9YYWN0X0xh cmdlT2JqZWN0KHRydWUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggZWY4OTU5 NGEyNjguLjBmYjhjN2YyMmE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0yMiw2 ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK KyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2Fk bWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9i dWlsdGlucy5oIgpAQCAtMjU0LDQgKzI1NSw3IEBAIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlk KQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCS8qIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW51cCBpZiBuZWVkZWQgaW4gbG9j YWwgbWVtb3J5ICovCisJU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA2NzYxMWM1MTdmMy4u MjUxODFiZGUyOGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAg LTE0LDYgKzE0LDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJh Y2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCIKQEAgLTY3LDYgKzY4LDE0IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJs ZURhdGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7CiAJTG9jYWxUcmFuc2FjdGlvbklk IGRvbWFpbl9jaGVja19leHRyYV9seGlkOwogCisJLyoKKwkgKiBUb3AgbGV2ZWwgbG9jYWwgdHJh bnNhY3Rpb24gaWQgb2YgdGhlIGxhc3QgdHJhbnNhY3Rpb24gdGhhdCBkcm9wcGVkIHRoZQorCSAq IHZhcmlhYmxlIGlmIGFueS4gIFdlIG5lZWQgdGhpcyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVl aW5nIG1lbW9yeSBmb3IKKwkgKiB2YXJpYWJsZSBkcm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5k IHRoYXQgbWF5IGJlIGV2ZW50dWFsbHkKKwkgKiByb2xsYmFja2VkLgorCSAqLworCUxvY2FsVHJh bnNhY3Rpb25JZCBkcm9wX2x4aWQ7CisKIAkvKgogCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBk ZXNjcmlwdGlvbiBjYW4gYmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKIAkgKiBzaW52YWwg bWVzc2FnZS4gIFdlIHRoZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0 aWxsCkBAIC04Myw2ICs5MiwxOSBAQCBzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkv KiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyAqLwogCiBzdGF0aWMgTWVtb3J5Q29u dGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKIAorLyogdHJ1ZSBhZnRlciBhY2Nl cHRlZCBzaW52YWwgbWVzc2FnZSAqLworc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZh bHNlOworCisvKgorICogVGhlIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJl bW92ZWQgaW1tZWRpYXRlbHkuIFdoZW4gaXQKKyAqIGlzIHBvc3NpYmxlIHdlIGRvIHRoaXMgYXQg dGhlIHRyYW5zYWN0aW9uIGVuZC4gQnV0IHdoZW4gdGhlIHRyYW5zYWN0aW9uIGZhaWxlZCwKKyAq IHdlIGNhbm5vdCBkbyBpdCwgYmVjYXVzZSB3ZSBsb3N0IGFjY2VzcyB0byB0aGUgc3lzdGVtIGNh dGFsb2cuIFNvIHdlCisgKiB0cnkgdG8gZG8gaXQgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gYmVm b3JlIGFueSBnZXQgb3Igc2V0IG9mIGFueSBzZXNzaW9uCisgKiB2YXJpYWJsZS4gV2UgZG9uJ3Qg d2FudCB0byByZXBlYXQgdGhpcyBvcGVuaW5nIGNsZWFuaW5nIGluIHRyYW5zYWN0aW9uLAorICog U28gd2Ugc3RvcmUgdGhlIGlkIG9mIHRoZSB0cmFuc2FjdGlvbiB3aGVyZSBvcGVuaW5nIHZhbGlk YXRpb24gd2FzIGRvbmUuCisgKi8KK3N0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVk X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOworCiAvKgogICogQ2FsbGJhY2sgZnVu Y3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgogICovCkBAIC0xMTQsNiAr MTM2LDM5IEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hl aWQsIHVpbnQzMiBoYXNodmFsdWUpCiAJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNo dmFsdWUgPT0gaGFzaHZhbHVlKQogCQl7CiAJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJ bmVlZHNfdmFsaWRhdGlvbiA9IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhl IGxvY2FsIG1lbW9yeSBjbGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisg KiBDYWxsZXIgc2hvdWxkIHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50 cnkgZmlyc3QuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQg dmFyaWQpCit7CisJQXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlk Lmx4aWQpKTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFy aWFibGUJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQs CisJCQkJCQkJCQkJCQkgICBIQVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7 CisJCQkvKgorCQkJICogU2F2ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rp b24gaWQgdG8gbWFrZSBzdXJlIHdlCisJCQkgKiBkb24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0 aGUgbG9jYWwgdmFyaWFibGUgc3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25f dmFyaWFibGVzLCBhcyB0aGUgRFJPUCBWQVJJQUJMRSB3aWxsIHNlbmQKKwkJCSAqIGFuIGludmFs aWRhdGlvbiBtZXNzYWdlLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJ c3Zhci0+ZHJvcF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisKKwkJCW5lZWRzX3ZhbGlkYXRp b24gPSB0cnVlOwogCQl9CiAJfQogfQpAQCAtMTY3LDYgKzIyMiw4MyBAQCBpc19zZXNzaW9uX3Zh cmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisg KiBJdCBjaGVja3MgYWxsIHBvc3NpYmx5IGludmFsaWQgZW50cmllcyBhZ2FpbnN0IHRoZSBzeXN0 ZW0gY2F0YWxvZy4KKyAqIER1cmluZyB0aGlzIHZhbGlkYXRpb24sIHRoZSBzeXN0ZW0gY2FjaGUg Y2FuIGJlIGludmFsaWRhdGVkLCBhbmQgdGhlCisgKiBzb21lIHNpbnZhbCBtZXNzYWdlIGNhbiBi ZSBhY2NlcHRlZC4gVGhpcyByb3V0aW5lIGRvZXNuJ3QgZW5zdXJlCisgKiBhbGwgbGl2aW5nIGVu dHJpZXMgb2Ygc2Vzc2lvbnZhcnMgd2lsbCBoYXZlIGlzX3ZhbGlkIGZsYWcsIGJ1dCBpdCBlbnN1 cmVzCisgKiB0aGF0IGFsbCBlbnRyaWVzIGFyZSBjaGVja2VkIG9uY2UuCisgKgorICogVGhpcyBy b3V0aW5lIGlzIGNhbGxlZCBiZWZvcmUgYW55IHVzYWdlIChyZWFkLCB3cml0ZSwgZGVidWcpIG9m IHNlc3Npb24KKyAqIHZhcmlhYmxlcyAob25seSBvbmNlIGluIGEgdHJhbnNhY3Rpb24pIG9yIGF0 IGEgdHJhbnNhY3Rpb24gZW5kLiAgQXQgdGhlCisgKiBlbmQgb2YgdHJhbnNhY3Rpb24gKHNwZWNp ZmllZCBieSB0cnVlIG9mIGFyZ3VtZW50IGF0RU9YKSB3ZSBjYW4KKyAqIHRocm93IGFsbCBpbnZh bGlkIHZhcmlhYmxlcy4gSW5zaWRlIHRoZSB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgZmFsc2UpIHdl IHdhbnQKKyAqIHRvIHBvc3Rwb25lIGNsZWFuaW5nIG9mIHZhcmlhYmxlcyBkcm9wcGVkIGluc2lk ZSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4KKyAqIFRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGNh biBiZSBhYm9ydGVkLCB0aGUgcmVsYXRlZCBkcm9wIGNvbW1hbmQgd2lsbCBiZQorICogYWJvcnRl ZCB0b28uIEluIHRoaXMgY2FzZSB3ZSBkb24ndCB3YW50IGxvc2UgdGhlIGNvbnRlbnQgb2YgdGhl IHZhcmlhYmxlLAorICogYW5kIHRoZXJlZm9yZSB3ZSBuZWVkIHRvIGhvbGQgdGhlIGNvbnRlbnQg b2YgdGhlIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogdW50aWwgdGhlIGVuZCBvZiB0aGUg dHJhbnNhY3Rpb24gKHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCkuCisgKi8KK3N0YXRp YyB2b2lkCityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQorewor CUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRo ZSB2YWxpZGF0aW9uIHJlcXVpcmVzIGFuIGFjY2VzcyB0byBzeXN0ZW0gY2F0YWxvZywgYW5kIHRo ZW4gdGhlCisJICogc2Vzc2lvbiBzdGF0ZSBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkg Ki8KKwlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0 aW9uIHx8ICFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGlzIGZs YWcgaGVyZSwgYmVmb3JlIHdlIHN0YXJ0IHRoZSB2YWxpZGF0aW9uLiBJdCBjYW4gYmUgc2V0IHRv CisJICogb24gYnkgaW5jb21taW5nIHNpbnZhbCBtZXNzYWdlLgorCSAqLworCW5lZWRzX3ZhbGlk YXRpb24gPSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRh dGVfYWxsX3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywg c2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJj aCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJ CWlmICghYXRFT1ggJiYgc3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJ eworCQkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJ CQlpZiAoIWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCisJCQl7CisJCQkJT2lkCQkJ dmFyaWQgPSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShz dmFyKTsKKwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwg TlVMTCk7CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQkJc3Zhci0+aXNfdmFs aWQgPSB0cnVlOworCQl9CisJfQorfQorCisvKgorICogUmVtb3ZlIHZhbHVlcyBvZiBkcm9wcGVk IHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9T ZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogd2UgY2Fubm90IHRvIGRvIGl0IHdoZW4gdHJh bnNhY3Rpb24gaXMgYWJvcnRlZCAqLworCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisK KwlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMjgs OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDUzLDQ0IEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiB0aHJvdyBpbnZhbGlkIGVudHJpZXMsIHNraXAgZW50cmllcyBkcm9wcGVkIGJ5IHRo aXMgdHJhbnNhY3Rpb24uICovCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZh bHNlKTsKKworCQkvKiBkb24ndCByZXBlYXQgaXQgaW4gdGhpcyB0cmFuc2FjdGlvbiAqLworCQl2 YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1Zhcmlh YmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VO VEVSLCAmZm91bmQpOwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Npb24g dmFyaWFibGUgY2FuIGJlIGRyb3BwZWQgYnkgRFJPUCBWQVJJQUJMRSBjb21tYW5kLAorCQkgKiBi dXQgZWZmZWN0IG9mIHRoaXMgY29tbWFuZCBjYW4gYmUgcmV2ZXJ0ZWQgYnkgUk9MTEJBQ0sgdG8g c2F2ZXBvaW50LAorCQkgKiBzbyB3ZSBjYW4gd29yayBoZXJlIHdpdGggcmVhZGFibGUgdmFsdWUg aW4gdmFyaWFibGUgbWFya2VkIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlzX3Zh bGlkKQogCQl7CiAJCQkvKgogCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBtZXNz YWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKIAkJCSAqIHZhbGlkLCBidXQgd2UgaGF2 ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqCisJCQkgKiBJZiB3ZSBh Y2Nlc3MgdGhpcyBzZXNzaW9uIHZhcmlhYmxlLCB0aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUK KwkJCSAqIHBvc3NpYmx5IHZhbGlkYXRlZC4gVGhlIG9pZCBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgcmVsYXRlZAorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NrZWQgYWxyZWFkeSwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzCisJCQkgKiBzaG91bGQgdG8gcmVtb3Zl IHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJCSAqLwogCQkJaWYg KGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+aXNfdmFsaWQgPSB0 cnVlOwogCQkJZWxzZQotCQkJCS8qIGlmIHRoZSB2YWx1ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3 ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KLQkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUo c3Zhcik7CisJCQl7CisJCQkJLyogd2UgZG9uJ3QgZXhwZWN0IGl0ICovCisJCQkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgc3RhdGUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwkJ CX0KIAkJfQogCX0KIAllbHNlCkBAIC0zOTUsNiArNTUxLDE2IEBAIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAlpZiAoIXNlc3Npb252YXJz KQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9s eGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0g TXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiB0aHJvdyBpbnZhbGlkIGVudHJpZXMsIHNraXAg ZW50cmllcyBkcm9wcGVkIGJ5IHRoaXMgdHJhbnNhY3Rpb24gKi8KKwkJcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOworCisJCS8qIGRvbid0IHJlcGVhdCBpdCBpbiB0aGlz IHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJ fQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQs CiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CiAKQEAgLTU5MSw2ICs3NTcsOCBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJZWxvZyhERUJVRzEsICJw Z19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOwogCisJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92 YXJpYWJsZXMoZmFsc2UpOworCiAJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOwogCiAJ aWYgKHNlc3Npb252YXJzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmlu ZGV4IDQ0M2FmYmFmZDRhLi4wZDRjNjM1YWU3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOSBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgi CiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNz aW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIEF0UHJl RU9YYWN0X1Nlc3Npb25WYXJpYWJsZXModm9pZCk7CisKIGV4dGVybiB2b2lkIFNldFNlc3Npb25W YXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gdm9p ZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhPaWQgdmFyaWQsIERhdHVtIHZh bHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2 YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lz b2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMjk2OGNjZTA4OTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwxMDkgQEAK K1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9u OiBsZXQgdmFsIGRyb3AgdmFsCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2 YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBk cm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK0VSUk9S OiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKKworc3RhcnRpbmcgcGVybXV0YXRpb246 IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOwor c3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKwor c3RlcCBzMTogQkVHSU47CitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIHZh bDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAor c3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAg dmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAg ZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGlj fG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFy Oworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0Oworc3RlcCBkYmc6 IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp Oworc2NoZW1hfG5hbWV8cmVtb3ZlZAorLS0tLS0tKy0tLS0rLS0tLS0tLQorKDAgcm93cykKKwor c3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQorICAgICAKKygxIHJvdykKKwor CitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZh bCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15 dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsKK3N0 ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJp YWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVi bGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15 dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0Oworc3RlcCBk Ymc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8 bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIK Ky0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9MTEJBQ0s7CisKK3N0YXJ0aW5n IHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGlu dmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFCTEUgbXl2 YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7CitzdGVwIHMzOiBC RUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Oworc3Rl cCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBt eXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFyMzsKK3N0ZXAgaW52YWwzOiBT RUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7Cis/Y29sdW1uPworLS0t LS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2FyZDogRElTQ0FSRCBWQVJJQUJM RVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VMRUNUIHZhcm5hbWUgRlJPTSBw Z192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAKKygxIHJvdykKKwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSBiL3NyYy90ZXN0L2lz b2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggMTQzMTA5YWE0ZGEuLjc0NTM2ODVkMDQ2 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCisrKyBi L3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTExNSwzICsxMTUsNCBA QCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFsaXphYmxlLXBhcmFs bGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1ub3dhaXQKK3Rlc3Q6 IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12 YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jODY0 ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNz aW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24gdmFyaWFi bGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVBVEUgVkFS SUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZBUklBQkxF IElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJTjsgfQor c3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNUIG15dmFy OyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Npb24gczIK K3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJeyBDUkVB VEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMzCQkJeyBC RUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgY3JlYXRl NAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7IExFVCBt eXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjQ7IH0K K3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJs ZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2MzCQl7IENP TU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOyB9 CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMg dGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisjIENvbmN1 cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVycm9yCitw ZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4cGxpY2l0 IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQorIyBDb25j dXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQgdG8gZW1w dHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwK KyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFk IHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtlIHN1cmUg dGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0aGUgZGJn IHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZhbCBzMSBk YmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwgd2hlbiBh bGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRhdGlvbiBj cmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNj MyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAppbmRleCAzOGUwMzYwMTU2Zi4uN2U0ZDQxZGUzZTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMDM5LDMgKzEwMzksMjIy IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CiAtLS0tLS0t CiAgICAgIDAKICgxIHJvdykKKworLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92 ZWQgZnJvbSBtZW1vcnkKKy0tIGF0IHRoZSBlbmQgb2YgdHJhbnNhY3Rpb24gb3IgYmVmb3JlIG5l eHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIG5leHQgdHJhbnNhY3Rpb24u CitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBj YW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAgICB0eXBu YW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVyIHZhcnlp bmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBz aG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSB0aGUgY29udGVudCBv ZiB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gdmFyaWFibGUgaXMgZHJvcHBlZAorLS0g YnkgYWJvcnRlZCB0cmFuc2FjdGlvbgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsK K0xFVCB2YXIxID0gJ0Fob2onOworQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91 bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhp c3QKK0xJTkUgMTogU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICBeCitST0xMQkFDSzsKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJv dykKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9r LCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93 KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0ICdBaG9qJworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47Cisg IENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVD VCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIG5hbWUs IHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgaW50ZWdlciB8IHQg ICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOwor LS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIG5hbWUsIHR5 cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgaW50ZWdlciB8IHQgICAg ICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50OworTEVUIHZhcjEgPSAx MDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFC TEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9u IHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cp CisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisg IFJPTExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMx OworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5n IGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0t CisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7Cisg IERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7 CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcg YW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKKyAgU0FWRVBPSU5UIHMyOworICAtLSBmb3JjZSBjbGVhbmluZyBi eSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFy MiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9y Y2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVD VCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykK KworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUg dmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JF R0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHZhcjEsIHZhcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK aW5kZXggZDQxNjVmMzRmZmEuLmIzZjNkNmYxNmExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC03MzIsMyArNzMyLDEyNCBAQCBESVNDQVJEIFZBUklB QkxFUzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSBy ZW1vdmVkIGZyb20gbWVtb3J5CistLSBhdCB0aGUgZW5kIG9mIHRyYW5zYWN0aW9uIG9yIGJlZm9y ZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJsZSBpbiBuZXh0IHRyYW5zYWN0 aW9uLgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2Vs ZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKKy0tIHRoZSBjb250ZW50IG9mIHZhbHVlIHNob3VsZCBiZSBw cmVzZXJ2ZWQgd2hlbiB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhYm9ydGVkIHRyYW5zYWN0 aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhvaic7 CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2 YXIxOworCitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0g YW5vdGhlciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQg MTAwCitTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fo b2onCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVH SU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3Vw ZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK K0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5 cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitT RUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFy MSA9IDEwOworTEVUIHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNl c3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZF UE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExC QUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVH SU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBj bGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZh cjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUg dmFyMTsKKyAgU0VMRUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK KyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxl CisgIFNFTEVDVCB2YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcg YnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBS T0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBz ZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47 IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIx OyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Ci0t IAoyLjQ2LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20240829-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrtg17 RnJvbSAzMzM4OWEzOTBmYjUyZjNlODUzZWYxZWFiZTgwMGFlZDI4ZDUyOGU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIwXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDFk MWIzM2FjMTJjLi43NGU5YTZkY2U5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTY5LDMgKzU2OSwxMDUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25f dmFyaWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rp b24gZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisg KiBjb250ZW50IG9mIHNlc3Npb252YXJzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNwbGF5 IGVudHJpZXMgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkIGJ1 dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVkIGlu dmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMgOAor CisJZWxvZyhERUJVRzEsICJwZ19zZXNzaW9uX3ZhcmlhYmxlcyBzdGFydCIpOworCisJSW5pdE1h dGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJzKQorCXsKKwkJUmV0 dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZv OworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3ZhcjsKKworCQloYXNo X3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAoKHN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJCXsKKwkJCURhdHVt CQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJYm9vbAkJbnVsbHNb TlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxlCXRwOworCQkJYm9v bAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2 YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7CisKKwkJCXZhbHVl c1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFsdWVzWzNdID0gT2Jq ZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qIGNoZWNrIGlmIHNlc3Npb24gdmFy aWFibGUgaXMgdmlzaWJsZSBpbiBzeXN0ZW0gY2F0YWxvZyAqLworCQkJdHAgPSBTZWFyY2hTeXND YWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJ LyoKKwkJCSAqIFNlc3Npb252YXJzIGNhbiBob2xkIGRhdGEgb2YgdmFyaWFibGVzIHJlbW92ZWQg ZnJvbSBjYXRhbG9nLAorCQkJICogKGFuZCBub3QgcHVyZ2VkKSBhbmQgdGhlbiBuYW1lc3BhY2Vu YW1lIGFuZCBuYW1lIGNhbm5vdCBiZSByZWFkCisJCQkgKiBmcm9tIGNhdGFsb2cuCisJCQkgKi8K KwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKTsKKworCQkJCS8qIHdo ZW4gd2Ugc2VlIGRhdGEgaW4gY2F0YWxvZyAqLworCQkJCWlmIChzdmFyLT5jcmVhdGVfbHNuID09 IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJeworCQkJCQkvKiBhbmQgd2hlbiB3aGVuIHRo ZXNlIGRhdGEgYXJlIG5vdCBvdXQgb2YgZGF0ZSAqLworCQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52 YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKE5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlkKSk7CisJCQkJCXZhbHVlc1s1XSA9IEJv b2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVzWzZdID0gQm9vbEdldERhdHVtKAorCQkJ CQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgc3Zhci0+dmFyaWQs CisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpID09IEFDTENIRUNLX09L KTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJ CSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhcl9p c192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0K KworCQkJaWYgKCF2YXJfaXNfdmFsaWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBXaGVuIHNlc3Np b24gdmFyaWFibGUgd2FzIHJlbW92ZWQgZnJvbSBjYXRhbG9nLCBidXQgd2UKKwkJCQkgKiBoYXZl bid0IHByb2Nlc3NlZCB0aGUgaW52bGlkYXRpb24geWV0LiBJbiB0aGlzIGNhc2UsIHdlIGNhbgor CQkJCSAqIGRpc3BsYXkgb25seSBmZXcgb2lkcy4gT3RoZXIgZGF0YSBhcmUgbm90IGF2YWlsYWJs ZQorCQkJCSAqICh3aXRob3V0IEZvcm1fcGdfdmFyaWFibGUgcmVjb3JkKSwgb3IgY2FuIGJlIGxv c3QgKGJlY2F1c2UKKwkJCQkgKiB0aGVyZSBpcyBub3QgcHJvdGVjdGlvbiBieSBkZXBlbmRlbmN5 IChtb3JlKS4KKwkJCQkgKi8KKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0 cnVlOworCQkJCW51bGxzWzRdID0gdHJ1ZTsKKwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVs bHNbN10gPSB0cnVlOworCisJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKHRydWUpOworCQkJ fQorCisJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCWVsb2coREVCVUcxLCAicGdfc2Vz c2lvbl92YXJpYWJsZXMgZW5kIik7CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggYWRlODRlMjNkZWEuLjg5ZTA4N2Y2OTczIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTEyMjU4LDQgKzEyMjU4LDEyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7 c3VtbWFyaXplZF90bGksc3VtbWFyaXplZF9sc24scGVuZGluZ19sc24sc3VtbWFyaXplcl9waWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfd2FsX3N1bW1hcml6ZXJfc3RhdGUnIH0sCiAKK3sgb2lk ID0+ICc4NDg4JywgZGVzY3IgPT4gJ2xpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcycsCisg IHByb25hbWUgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJywgcHJvcm93cyA9PiAnMTAwMCcsIHBy b3JldHNldCA9PiAndCcsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJn dHlwZXMgPT4gJ3tvaWQsdGV4dCx0ZXh0LG9pZCx0ZXh0LGJvb2wsYm9vbCxib29sfScsCisgIHBy b2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7dmFy aWQsc2NoZW1hLG5hbWUsdHlwaWQsdHlwbmFtZSxyZW1vdmVkLGNhbl9zZWxlY3QsY2FuX3VwZGF0 ZX0nLAorICBwcm9zcmMgPT4gJ3BnX3Nlc3Npb25fdmFyaWFibGVzJyB9LAorCiBdCi0tIAoyLjQ2 LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20240829-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrt916 RnJvbSA4MjhmOWUxMjA3MzhiOWQ3YzhlNWI0MDNhZTU3ODA1YWM0ZDM5YTU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIwXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYyICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggOTJkOTgzYWM3 NDguLmQwNmViYWJhNmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA3NGU5YTZkY2U5 My4uNjc2MTFjNTE3ZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv bnZhcnMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjcxLDMgKzY3NywyMyBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkg MDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiBhbGwg c2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0 IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSBE SVNDQVJEIFZBUklBQkxFUyAoYW5kIERJU0NBUkQgQUxMKSBjb21tYW5kLgorICovCit2b2lkCitS ZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCkKK3sKKwkvKiBkZXN0cm95IGhhc2ggdGFibGUgYW5k IHJlc2V0IHJlbGF0ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwlpZiAoc2Vzc2lvbnZhcnMpCisJewor CQloYXNoX2Rlc3Ryb3koc2Vzc2lvbnZhcnMpOworCQlzZXNzaW9udmFycyA9IE5VTEw7CisJfQor CisJLyogcmVsZWFzZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHNlc3Npb24gdmFyaWFibGVzICovCisJ aWYgKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgIT0gTlVMTCkKKwkJTWVtb3J5Q29udGV4dFJlc2V0 KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYmUxZTcwZTNlYmYu LjNkNjJjZmIwZjZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTIwNzEsNyArMjA3MSwxMyBAQCBEaXNjYXJk U3RtdDoKIAkJCQkJbi0+dGFyZ2V0ID0gRElTQ0FSRF9TRVFVRU5DRVM7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQl8IERJU0NBUkQgVkFSSUFCTEVTCisJCQkJeworCQkJCQlEaXNj YXJkU3RtdCAqbiA9IG1ha2VOb2RlKERpc2NhcmRTdG10KTsKIAorCQkJCQluLT50YXJnZXQgPSBE SVNDQVJEX1ZBUklBQkxFUzsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKaW5kZXggYmRhYzY5MWFmMTMuLjg0NDE1ZjBjYWExIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtMjk1OSw2ICsyOTU5LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRf U0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4 IGRiMGU5Y2QzNjE4Li40M2ZiNjVmOGUzOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMzcyMCw3ICsz NzIwLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50 IGVuZCkKIAogLyogRElTQ0FSRCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRJU0NBUkQiKSkKLQkJ Q09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIik7CisJCUNP TVBMRVRFX1dJVEgoIkFMTCIsICJQTEFOUyIsICJTRVFVRU5DRVMiLCAiVEVNUCIsICJWQVJJQUJM RVMiKTsKIAogLyogRE8gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJETyIpKQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGIzZjAzYzY1ODI3Li40NDNhZmJhZmQ0YSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjksNCArMjksNiBA QCBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQs IGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdAogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJ CQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsK IAorZXh0ZXJuIHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAppbmRleCA2Y2I0MGE1ZjE3MC4uY2RkMWQ5ZWUyNmEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKQEAgLTM5NTAsNiArMzk1MCw3IEBAIHR5cGVkZWYgZW51bSBEaXNjYXJk TW9kZQogCURJU0NBUkRfUExBTlMsCiAJRElTQ0FSRF9TRVFVRU5DRVMsCiAJRElTQ0FSRF9URU1Q LAorCURJU0NBUkRfVkFSSUFCTEVTLAogfSBEaXNjYXJkTW9kZTsKIAogdHlwZWRlZiBzdHJ1Y3Qg RGlzY2FyZFN0bXQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIv c3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggYTkyMWFmMjQ4NmYuLmJkNzk2NGFl YTZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTM1LDYgKzEzNSw3IEBAIFBHX0NNRFRBRyhD TURUQUdfRElTQ0FSRF9BTEwsICJESVNDQVJEIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RJU0NBUkRfUExBTlMsICJESVNDQVJEIFBMQU5TIiwgZmFsc2UsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9TRVFVRU5DRVMsICJESVNDQVJE IFNFUVVFTkNFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NB UkRfVEVNUCwgIkRJU0NBUkQgVEVNUCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUco Q01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTLCAiRElTQ0FSRCBWQVJJQUJMRVMiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ETywgIkRPIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAiRFJPUCBBQ0NFU1MgTUVU SE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FHR1JFR0FU RSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAxNmUxZDAxZGRjNi4u MzhlMDM2MDE1NmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC05NzcsMyArOTc3LDY1IEBAIERST1AgVkFSSUFCTEUgOiJEQk5BTUUi LjoiREJOQU1FIi5iOwogRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1F IjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIFJFU0VUIHNlYXJjaF9wYXRoOworLS0gbWVtb3J5 IGNsZWFuaW5nIGJ5IERJU0NBUkQgY29tbWFuZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFy Y2hhcjsKK0xFVCB2YXIxID0gJ0hlbGxvJzsKK1NFTEVDVCB2YXIxOworIHZhcjEgIAorLS0tLS0t LQorIEhlbGxvCisoMSByb3cpCisKK0RJU0NBUkQgQUxMOworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorIAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdBSE9KJzsKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyBBSE9KCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZh cjE7CistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rp b24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAg ICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CistLSBzaG91 bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdB SE9KJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAgICB0eXBuYW1lICAgICAgfCBjYW5f c2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCB0ICAgICAgICAg IHwgdAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSB6ZXJvIGFn YWluCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKaW5kZXggZDViYjVkYzgzYmUuLmQ0MTY1ZjM0ZmZhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC02OTYsMyArNjk2LDM5IEBA IERST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CiBEUk9QIFNDSEVN QSA6IkRCTkFNRSI7CiAKIFJFU0VUIHNlYXJjaF9wYXRoOworCistLSBtZW1vcnkgY2xlYW5pbmcg YnkgRElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVU IHZhcjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgQUxMOworU0VMRUNUIHZh cjE7CisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFC TEVTOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gaW5pdGlhbCB0 ZXN0IG9mIGRlYnVnIHBnX3Nlc3Npb25fdmFyaWFibGVzIGZ1bmN0aW9uCistLSBzaG91bGQgYmUg emVybyBub3cKK0RJU0NBUkQgVkFSSUFCTEVTOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOwor CistLSBzaG91bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKworTEVUIHZhcjEgPSAnQUhPSic7CisKK1NFTEVDVCBuYW1lLCB0eXBu YW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwotLSAKMi40Ni4wCgo= --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20240829-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrtm18 RnJvbSA1NDE0MjE1ZDdkNGQ1NzIzMTkwYjRkMTYzNTA5MGU0MmUxNjgyYzZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjBdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTMgKwogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMyICsKIGRvYy9zcmMv c2dtbC9ldmVudC10cmlnZ2VyLnNnbWwgICAgICAgICAgICAgICB8ICAyNCArCiBkb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogZG9jL3NyYy9zZ21s L3BscGdzcWwuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICsKIGRvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvZHJv cF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2xldC5z Z21sICAgICAgICAgICAgICAgICAgICAgfCAgOTYgKysKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uu c2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVu ZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYyAgICAgICAgICAgICAgIHwgMzE1ICsrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192 YXJpYWJsZS5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2Vm aWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5j ICAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYyAgICAgICB8IDU3MSArKysrKysrKysrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFr ZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHByLmMgICAgICAgICAgICAgICB8ICAzNiArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jICAgICAgICAgICAgICAgfCAgNTcgKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1 aWxkICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5jICAgICAgfCAyMDEgKysrKwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMg ICAgICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYyAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZz LmMgICAgICAgICAgfCAxMzUgKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9p bnRyZWUuYyAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5j ICAgICAgICAgIHwgIDM1ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAg ICAgICAgICAgfCAyNjQgKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAg ICAgICAgICAgICB8ICA0OSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAg ICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDIyMCArKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jICAgICAgICAgICAgICAg ICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAg ICAgIHwgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAg ICB8ICA0NiArCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyAgICAgICAgICAg fCAgNDEgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwg IDEyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA4 ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAzMiAr CiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oICAgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgIDIyICsKIHNy Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxNiArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMTcgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNs dWRlL25vZGVzL3BsYW5ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRl L29wdGltaXplci9wbGFubWFpbi5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rl c3QuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2V4ZWMuYyAgICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA5MjIgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCA2MzcgKysrKysrKysrKysr CiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDUgKwog NTkgZmlsZXMgY2hhbmdlZCwgMzkyOCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IGRlMTIyZTU0M2Y3Li5hYzNiMDRmZjkxMiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk3NzcsNiArOTc3NywxOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ WExvZ1JlY1B0cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIExT TiBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1l IHVuaXF1ZQorICAgICAgIGlkZW50aWZpZXIgKDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxk PiBhbG9uZSBpcyBub3QgZW5vdWdoLCBzaW5jZQorICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBj YW4gZ2V0IHJldXNlZCkuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAg ICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0 cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGRmNmUxYjQyNGM3Li43ZWVlMmE4 ZTgwMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9kZGwuc2dtbApAQCAtNTI3OSw2ICs1Mjc5LDM4IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCop IEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsK ICAgICBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZC4KICAgIDwvcGFyYT4KIAorICAgPHBhcmE+ CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBzZXQgd2l0aCB0aGUgU1FM IHN0YXRlbWVudAorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4uICBUaGUgdmFsdWUgb2YgYSBz ZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSByZXRyaWV2ZWQKKyAgICB3aXRoIHRoZSBTUUwgc3RhdGVt ZW50IDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4uCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1Qg dmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICBvcgorCis8cHJvZ3JhbWxpc3Rpbmc+CitD UkVBVEUgVkFSSUFCTEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBBUyBpbnRlZ2VyOworR1JBTlQg UkVBRCBPTiBWQVJJQUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIFRPIFBVQkxJQzsKK0xFVCBj dXJyZW50X3VzZXJfaWQgPSAoU0VMRUNUIGlkIEZST00gdXNlcnMgV0hFUkUgdXNlbmFtZSA9IHNl c3Npb25fdXNlcik7CitTRUxFQ1QgY3VycmVudF91c2VyX2lkOworPC9wcm9ncmFtbGlzdGluZz4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBsb2NhbCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCisgICAgYSB2 YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNz IGl0cyB2YWx1ZSBoYXMKKyAgICBiZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3Vy cmVudCBzZXNzaW9uIHVzaW5nIHRoZQorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFu ZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgdHJhbnNhY3Rpb25hbDoKKyAgICBhbnkgY2hh bmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2Fj dGlvbiB3b24ndAorICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJh Y2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMgaW4KKyAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBT ZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJzaXN0ZW50LCBidXQKKyAgICB0aGVp ciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZSBjb250 ZW50IG9mCisgICAgdGVtcG9yYXJ5IHRhYmxlcykuCisgICA8L3BhcmE+CisKICAgIDxwYXJhPgog ICAgIEluc2lkZSBhIHF1ZXJ5IG9yIGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBj YW4gYmUKICAgICA8cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBz YW1lIG5hbWUuICBTaW1pbGFybHksIHRoZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2V2ZW50 LXRyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9ldmVudC10cmlnZ2VyLnNnbWwKaW5kZXggMTVi MmFmOTlkY2EuLjU3OGI5N2FmZWVmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZXZlbnQtdHJp Z2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9ldmVudC10cmlnZ2VyLnNnbWwKQEAgLTQzMiw2 ICs0MzIsMTQgQEAKICAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xp dGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgogICAg ICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxp dGVyYWw+QUxURVIgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFs aWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVu dHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAg PGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg ICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxy b3c+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+QUxURVIgVklFVzwvbGl0 ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwv bGl0ZXJhbD48L2VudHJ5PgpAQCAtNzI4LDYgKzczNiwxNCBAQAogICAgICAgICA8ZW50cnkgYWxp Z249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkg YWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAg ICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5DUkVBVEUgVkFSSUFCTEU8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08 L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFs Pi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5 PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVm dCI+PGxpdGVyYWw+Q1JFQVRFIFZJRVc8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5 IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KQEAgLTEwMjQsNiAr MTA0MCwxNCBAQAogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0 ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAg ICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0 ZXJhbD5EUk9QIFZBUklBQkxFPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGln bj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBh bGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRy eSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDxl bnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAg IDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KICAgICAgICA8cm93 PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRlcmFsPkRST1AgVklFVzwvbGl0ZXJh bD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0 ZXJhbD48L2VudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAppbmRleCA1OTBjYjM4NWRkZi4uYTVjZWY0Y2Q3OWIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9wYXJhbGxlbC5zZ21sCkBAIC01MjEsNiArNTIxLDEyIEBAIEVYUExBSU4gU0VMRUNUICogRlJP TSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFu IG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRl cmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlh YmxlLgorICAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0Pgog CiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCA3OGU0OTgz MTM5Yi4uYmZiZmY5YWI3NGUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjAzNCw2ICs2MDM0LDIwIEBAICQk IExBTkdVQUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJMRTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAg ICAgPC9wYXJhPgogICAgPC9zZWN0Mz4KKworICAgPHNlY3QzIGlkPSJwbHBnc3FsLXBvcnRpbmct cGFja2FnZS12YXJpYWJsZXMiPgorICAgIDx0aXRsZT48Y29tbWFuZD5QYWNrYWdlcyBhbmQgcGFj a2FnZSB2YXJpYWJsZXM8L2NvbW1hbmQ+PC90aXRsZT4KKworICAgIDxwYXJhPgorICAgICBUaGUg PGFwcGxpY2F0aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBhY2th Z2VzLCBhbmQKKyAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2thZ2Ug Y29uc3RhbnRzLgorICAgICBZb3UgY2FuIGNvbnNpZGVyIHRyYW5zbGF0aW5nIGFuIE9yYWNsZSBw YWNrYWdlIGludG8gYSBzY2hlbWEgaW4KKyAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3By b2R1Y3RuYW1lPi4gIFBhY2thZ2UgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzCisgICAgIHdvdWxk IHRoZW4gYmVjb21lIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBpbiB0aGF0IHNjaGVtYSwgYW5k IHBhY2thZ2UKKyAgICAgdmFyaWFibGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2 YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCisgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNl c3Npb24tdmFyaWFibGVzIi8+KS4KKyAgICA8L3BhcmE+CisgICA8L3NlY3QzPgogICA8L3NlY3Qy PgogCiAgIDxzZWN0MiBpZD0icGxwZ3NxbC1wb3J0aW5nLWFwcGVuZGl4Ij4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmls ZXMuc2dtbAppbmRleCAyZjY3ZGUzZTIxYi4uY2MzYmQ1YWI1NDAgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVz LnNnbWwKQEAgLTE1OCw2ICsxNTgsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNv dXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGdyYW50ICAgICAgICAgICAg ICBTWVNURU0gImdyYW50LnNnbWwiPgogPCFFTlRJVFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNU RU0gImltcG9ydF9mb3JlaWduX3NjaGVtYS5zZ21sIj4KIDwhRU5USVRZIGluc2VydCAgICAgICAg ICAgICBTWVNURU0gImluc2VydC5zZ21sIj4KKzwhRU5USVRZIGxldCAgICAgICAgICAgICAgICBT WVNURU0gImxldC5zZ21sIj4KIDwhRU5USVRZIGxpc3RlbiAgICAgICAgICAgICBTWVNURU0gImxp c3Rlbi5zZ21sIj4KIDwhRU5USVRZIGxvYWQgICAgICAgICAgICAgICBTWVNURU0gImxvYWQuc2dt bCI+CiA8IUVOVElUWSBsb2NrICAgICAgICAgICAgICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCmluZGV4IGQ4NzU3MGU3ZDhiLi5kMjAzNjM1MWU1 MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApAQCAtMTczLDYgKzE3Myw3IEBA IEFMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NIRU1BIHByaXZhdGU7CiAgIDxzaW1wbGVsaXN0IHR5 cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJs ZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxl Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJl cj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2VjdDE+CiA8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggZWMxNjVhYjk2ZmMuLjA1YmY2N2UzNDExIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTE0NSw2ICsxNDUsNyBAQCBT RUxFQ1QgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNl Y3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCmluZGV4IDViZGIzNTYwZjBiLi42 Nzk4OGI1ZmNkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTExMSw2ICsx MTEsNyBAQCBEUk9QIFZBUklBQkxFIHZhcjE7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+ CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+ CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVy PgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2lt cGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2xl dC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZjY2NDA1NzZiZWUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2xldC5zZ21sCkBAIC0wLDAgKzEsOTYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9y ZWYvbGV0LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBp ZD0ic3FsLWxldCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+TEVU PC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vz c2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5jaGFuZ2luZzwvc2Vjb25kYXJ5 PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwvcmVm ZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5T UUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8 cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+TEVUPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFu Z2UgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2 PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorTEVUIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPgorPC9zeW5v cHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3Jp cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZCBhc3NpZ25zIGEgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBzZXNzaW9uCisgICB2YXJp YWJsZS4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxsaXRlcmFsPnNlc3Npb25fdmFyaWFibGU8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lv biB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5zcWxfZXhwcmVz c2lvbjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IEFuIGFyYml0cmFyeSBTUUwgZXhwcmVzc2lvbi4gIFRoZSByZXN1bHQgbXVzdCBiZSBvZiBhIGRh dGEgdHlwZSB0aGF0IGNhbgorICAgICAgYmUgY2FzdCB0byB0aGUgdHlwZSBvZiB0aGUgc2Vzc2lv biB2YXJpYWJsZSBpbiBhbiBhc3NpZ25tZW50LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorCisgIDxwYXJhPgor ICAgRXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBteXZhciBBUyBp bnRlZ2VyOworTEVUIG15dmFyID0gMTA7CitMRVQgbXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZS T00gdGFiKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUaGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FM PC9wcm9kdWN0bmFtZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3Qg dHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFi bGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlh YmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFi bGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5 PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sCmluZGV4IDI1NTc4ZjM5NDZjLi4xM2U0YWRjNWRmMyAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVu Y2Uuc2dtbApAQCAtMTg2LDYgKzE4Niw3IEBACiAgICAmZ3JhbnQ7CiAgICAmaW1wb3J0Rm9yZWln blNjaGVtYTsKICAgICZpbnNlcnQ7CisgICAmbGV0OwogICAgJmxpc3RlbjsKICAgICZsb2FkOwog ICAgJmxvY2s7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IGM5ZDY4NjY2NWRlLi4xNDg3 MTllNDkwZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTE4NjQsNiArMTg2NCwxMSBA QCBmaW5kX2V4cHJfcmVmZXJlbmNlc193YWxrZXIoTm9kZSAqbm9kZSwKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCisJCS8qIGEgdmFyaWFibGUgcGFyYW1ldGVyIGRl cGVuZHMgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQg PT0gUEFSQU1fVkFSSUFCTEUpCisJCQlhZGRfb2JqZWN0X2FkZHJlc3MoVmFyaWFibGVSZWxhdGlv bklkLCBwYXJhbS0+cGFyYW12YXJpZCwgMCwKKwkJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisK IAkJLyogQSBwYXJhbWV0ZXIgbXVzdCBkZXBlbmQgb24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBl ICovCiAJCWFkZF9vYmplY3RfYWRkcmVzcyhUeXBlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlw ZSwgMCwKIAkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmlu ZGV4IGZkOTk0YzkyZDRmLi4zNzVmZWE1ZGFlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBA IC0zMzk3LDYgKzMzOTcsMzIxIEBAIExvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUs CiAJcmV0dXJuIHZhcm9pZDsKIH0KIAorLyoKKyAqIFRoZSBpbnB1dCBsaXN0IGNvbnRhaW5zIG5h bWVzIHdpdGggaW5kaXJlY3Rpb24gZXhwcmVzc2lvbnMgdXNlZCBhcyB0aGUgbGVmdAorICogcGFy dCBvZiBMRVQgc3RhdGVtZW50LiBUaGUgZm9sbG93aW5nIHJvdXRpbmUgcmV0dXJucyBhIG5ldyBs aXN0IHdpdGggb25seQorICogaW5pdGlhbCBzdHJpbmdzIChuYW1lcykgLSB3aXRob3V0IGluZGly ZWN0aW9uIGV4cHJlc3Npb25zLgorICovCitMaXN0ICoKK05hbWVzRnJvbUxpc3QoTGlzdCAqbmFt ZXMpCit7CisJTGlzdENlbGwgICAqbDsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlmb3Jl YWNoKGwsIG5hbWVzKQorCXsKKwkJTm9kZQkgICAqbiA9IGxmaXJzdChsKTsKKworCQlpZiAoSXNB KG4sIFN0cmluZykpCisJCXsKKwkJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwkJfQor CQllbHNlCisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKiAtLS0tLQor ICogSWRlbnRpZnlWYXJpYWJsZSAtIHRyeSB0byBmaW5kIGEgdmFyaWFibGUgZnJvbSBhIGxpc3Qg b2YgaWRlbnRpZmllcnMKKyAqCisgKiBSZXR1cm5zIHRoZSBPSUQgb2YgdGhlIHZhcmlhYmxlIGZv dW5kLCBvciBJbnZhbGlkT2lkLgorICoKKyAqICJuYW1lcyIgaXMgYSBsaXN0IG9mIHVwIHRvIGZv dXIgaWRlbnRpZmllcnM7IHBvc3NpYmxlIG1lYW5pbmdzIGFyZToKKyAqIC0gdmFyaWFibGUgIChz ZWFyY2hlZCBvbiB0aGUgc2VhcmNoX3BhdGgpCisgKiAtIHNjaGVtYS52YXJpYWJsZQorICogLSB2 YXJpYWJsZS5hdHRyaWJ1dGUgIChzZWFyY2hlZCBvbiB0aGUgc2VhcmNoX3BhdGgpCisgKiAtIHNj aGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUKKyAqIC0gZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlCisg KiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUKKyAqCisgKiBJZiB0aGVyZSBp cyBtb3JlIHRoYW4gb25lIHdheSB0byBpZGVudGlmeSBhIHZhcmlhYmxlLCAibm90X3VuaXF1ZSIg d2lsbCBiZQorICogc2V0IHRvIHRydWUuCisgKgorICogVW5sZXNzICJub2Vycm9yIiBpcyB0cnVl LCBhbiBlcnJvciBpcyByYWlzZWQgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBmb3VyCisgKiAgaWRl bnRpZmllcnMgaW4gdGhlIGxpc3QsIG9yIGlmIHRoZSBuYW1lZCBkYXRhYmFzZSBpcyBub3QgdGhl IGN1cnJlbnQgb25lLgorICogVGhpcyBpcyB1c2VmdWwgaWYgd2Ugd2FudCB0byBpZGVudGlmeSBh IHNoYWRvd2VkIHZhcmlhYmxlLgorICoKKyAqIElmIGFuIGF0dHJpYnV0ZSBpcyBpZGVudGlmaWVk LCBpdCBpcyBzdG9yZWQgaW4gImF0dHJuYW1lIiwgb3RoZXJ3aXNlIHRoZQorICogcGFyYW1ldGVy IGlzIHNldCB0byBOVUxMLgorICoKKyAqIFRoZSBpZGVudGlmaWVkIHNlc3Npb24gdmFyaWFibGUg d2lsbCBiZSBsb2NrZWQgd2l0aCBhbiBBY2Nlc3NTaGFyZUxvY2suCisgKiAtLS0tLQorICovCitP aWQKK0lkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiphdHRybmFtZSwgYm9vbCAq bm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKQoreworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsK KwlPaWQJCQlvbGRfdmFyaWQgPSBJbnZhbGlkT2lkOworCXVpbnQ2NAkJaW52YWxfY291bnQ7CisJ Ym9vbAkJcmV0cnkgPSBmYWxzZTsKKworCS8qCisJICogRERMIG9wZXJhdGlvbnMgY2FuIGNoYW5n ZSB0aGUgcmVzdWx0cyBvZiBhIG5hbWUgbG9va3VwLiAgU2luY2UgYWxsIHN1Y2gKKwkgKiBvcGVy YXRpb25zIHdpbGwgZ2VuZXJhdGUgaW52YWxpZGF0aW9uIG1lc3NhZ2VzLCB3ZSBrZWVwIHRyYWNr IG9mCisJICogd2hldGhlciBhbnkgc3VjaCBtZXNzYWdlcyBzaG93IHVwIHdoaWxlIHdlJ3JlIHBl cmZvcm1pbmcgdGhlIG9wZXJhdGlvbiwKKwkgKiBhbmQgcmV0cnkgdW50aWwgZWl0aGVyICgxKSBu byBtb3JlIGludmFsaWRhdGlvbiBtZXNzYWdlcyBzaG93IHVwIG9yICgyKQorCSAqIHRoZSBhbnN3 ZXIgZG9lc24ndCBjaGFuZ2UuCisJICovCisJZm9yICg7OykKKwl7CisJCU5vZGUJICAgKmZpZWxk MSA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkMiA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkMyA9 IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkNCA9IE5VTEw7CisJCWNoYXIJICAgKmEgPSBOVUxMOwor CQljaGFyCSAgICpiID0gTlVMTDsKKwkJY2hhcgkgICAqYyA9IE5VTEw7CisJCWNoYXIJICAgKmQg PSBOVUxMOworCQlPaWQJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gSW52YWxpZE9pZDsKKwkJT2lk CQkJdmFyb2lkX3dpdGhfYXR0ciA9IEludmFsaWRPaWQ7CisKKwkJKm5vdF91bmlxdWUgPSBmYWxz ZTsKKwkJKmF0dHJuYW1lID0gTlVMTDsKKwkJdmFyaWQgPSBJbnZhbGlkT2lkOworCisJCWludmFs X2NvdW50ID0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyOworCisJCXN3aXRjaCAobGlzdF9s ZW5ndGgobmFtZXMpKQorCQl7CisJCQljYXNlIDE6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFt ZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCisJCQkJdmFyaWQgPSBM b29rdXBWYXJpYWJsZShOVUxMLCBzdHJWYWwoZmllbGQxKSwgdHJ1ZSk7CisJCQkJYnJlYWs7CisK KwkJCWNhc2UgMjoKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJZmllbGQyID0g bHNlY29uZChuYW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJ YSA9IHN0clZhbChmaWVsZDEpOworCisJCQkJaWYgKElzQShmaWVsZDIsIFN0cmluZykpCisJCQkJ eworCQkJCQkvKiB3aGVuIGJvdGggZmllbGRzIGFyZSBvZiBzdHJpbmcgdHlwZSAqLworCQkJCQli ID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJLyoKKwkJCQkJICogYS5iIGNhbiBtZWFuICJzY2hl bWEiLiJ2YXJpYWJsZSIgb3IgInZhcmlhYmxlIi4iZmllbGQiLgorCQkJCQkgKiBDaGVjayBib3Ro IHZhcmlhbnRzLCBhbmQgcmV0dXJucyBJbnZhbGlkT2lkIHdpdGgKKwkJCQkJICogbm90X3VuaXF1 ZSBmbGFnLCB3aGVuIGJvdGggaW50ZXJwcmV0YXRpb25zIGFyZQorCQkJCQkgKiBwb3NzaWJsZS4K KwkJCQkJICovCisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBi LCB0cnVlKTsKKwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIGEs IHRydWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKiB0aGUgbGFzdCBmaWVsZCBv ZiBsaXN0IGNhbiBiZSBzdGFyIHRvbyAqLworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgQV9TdGFy KSk7CisKKwkJCQkJLyoKKwkJCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgZmllbGQxIHNob3VsZCBi ZSB2YXJpYWJsZSBuYW1lLiBCdXQKKwkJCQkJICogZGlyZWN0IHVuYm94aW5nIG9mIGNvbXBvc2l0 ZSBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QKKwkJCQkJICogc3VwcG9ydGVkIG5vdywgYW5kIHRo ZW4gd2UgZG9uJ3QgbmVlZCB0byB0cnkgbG9va3VwCisJCQkJCSAqIHJlbGF0ZWQgdmFyaWFibGUu CisJCQkJCSAqCisJCQkJCSAqIFVuYm94aW5nIGlzIHN1cHBvcnRlZCBieSBzeW50YXggKHZhciku KgorCQkJCQkgKi8KKwkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJfQorCisJCQkJaWYgKE9p ZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9h dHRyKSkKKwkJCQl7CisJCQkJCSpub3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJdmFyaWQgPSB2YXJv aWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93 aXRob3V0X2F0dHIpKQorCQkJCXsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOwor CQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsK KwkJCQkJKmF0dHJuYW1lID0gYjsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJ CX0KKwkJCQlicmVhazsKKworCQkJY2FzZSAzOgorCQkJCXsKKwkJCQkJYm9vbAkJZmllbGQxX2lz X2NhdGFsb2cgPSBmYWxzZTsKKworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJ CWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOwor CisJCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVs ZDIsIFN0cmluZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0clZh bChmaWVsZDIpOworCisJCQkJCWlmIChJc0EoZmllbGQzLCBTdHJpbmcpKQorCQkJCQl7CisJCQkJ CQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBhLmIuYyBjYW4gbWVh biBjYXRhbG9nLnNjaGVtYS52YXJpYWJsZSBvcgorCQkJCQkJICogc2NoZW1hLnZhcmlhYmxlLmZp ZWxkLgorCQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZCBzZXQgbm90 X3VuaXF1ZSBmbGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0aW9ucyBhcmUgcG9z c2libGUuCisJCQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlzIHN0YXIsIG9ubHkg cG9zc2libGUKKwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52YXJpYWJsZS4qLCBi dXQgdGhpcworCQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5vdy4KKwkJCQkJCSAq LworCQkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIsIHRydWUpOwor CisJCQkJCQkvKgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNjaGVtYS52YXJpYWJs ZSBvbmx5IHdoZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRvIHN1Y2Nlc3MuCisJ CQkJCQkgKi8KKwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFz ZUlkKSkgPT0gMCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxvZyA9IHRydWU7CisJ CQkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOwor CQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0KElzQShmaWVs ZDMsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0KKworCQkJCQlp ZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9pZF93 aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoT2lkSXNWYWxp ZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0 aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhf YXR0cikpCisJCQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2YXJpZCA9IHZhcm9p ZF93aXRoX2F0dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVuIHdlIGRpZG4ndCBm aW5kIHZhcmlhYmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxsb3dlZCkgcmFpc2Ug Y3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJCQkJaWYgKCFPaWRJ c1ZhbGlkKHZhcmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFsb2cpCisJCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5v dCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkp OworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJCQkJZmllbGQxID0g bGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJZmll bGQzID0gbHRoaXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChuYW1lcyk7CisKKwkJ CQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwg U3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsKKworCQkJCQlhID0g c3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJCQkJYyA9IHN0clZh bChmaWVsZDMpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgImEiIGlzIHVzZWQg YXMgY2F0YWxvZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlpZiAoc3RyY21wKGEs IGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJCXsKKwkJCQkJCWlm ICghbm9lcnJvcikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1zZygiY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCQkJCU5h bWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisKKwkJCQkJaWYgKElzQShmaWVsZDQs IFN0cmluZykpCisJCQkJCXsKKwkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsKKwkJCQkJfQorCQkJ CQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQ0LCBBX1N0YXIpKTsKKwkJCQkJ CXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJKmF0dHJuYW1lID0gZDsKKwkJCQkJ dmFyaWQgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQl9CisJCQkJYnJlYWs7CisK KwkJCWRlZmF1bHQ6CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkgZXJybXNnKCJpbXBy b3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJ CQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJ CX0KKworCQkvKgorCQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sgdGhlIHNhbWUgT0lE IHdlIGRpZCBsYXN0IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlcyB3 ZSBwcm9jZXNzZWQgZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4KKwkJICogU28gd2Un cmUgZG9uZS4KKwkJICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9JRCwgd2UndmUgbG9j a2VkIHRoZSB2YXJpYWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlzIG5hbWUgcmF0aGVy IHRoYW4gdGhlIG9uZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUKKwkJICogbG9jay4K KwkJICovCisJCWlmIChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9PSB2YXJpZCkKKwkJ CQlicmVhazsKKworCQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJCQlVbmxvY2tEYXRh YmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJfQorCisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAgVGhpcyB3aWxsIGFs c28gYWNjZXB0IGFueSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNzYWdlcy4gIElmIHdl IGdvdCBiYWNrIEludmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0aGVuCisJCSAqIHRo ZXJlJ3Mgbm90aGluZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRhdGlvbiBtZXNzYWdl cworCQkgKiBhbnl3YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNoZSBlbnRyaWVzIHRo YXQgbWF5IGJlCisJCSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh2YXJp ZCkpCisJCQlBY2NlcHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNlIGlmIChPaWRJc1Zh bGlkKHZhcmlkKSkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZh cmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCWlmIChpbnZhbF9jb3VudCA9PSBTaGFyZWRJ bnZhbGlkTWVzc2FnZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7CisJCW9s ZF92YXJpZCA9IHZhcmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0dXJuIHZh cmlkOworfQorCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2ZW4gYSBw b3NzaWJseS1xdWFsaWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmluZyBub2Rl cywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBlM2E4NjFjOGNiYS4uZWY4OTU5NGEy NjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCiAj aW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRl X3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCkBAIC0xMDEsNiArMTAyLDcgQEAgY3JlYXRl X3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5k ZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKIAogCXZh bHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7 CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY3JlYXRlX2xzbiAtIDFdID0gTFNOR2V0RGF0 dW0oR2V0WExvZ0luc2VydFJlY1B0cigpKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJu YW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnZhcm5hbWUpOwogCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3Zhcm5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpOwog CXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o dmFyVHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IGNlZGU5MGMzYjk4Li41OWE2MzQwYTg1 ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTUwLDYgKzUwLDcgQEAgT0JKUyA9IFwKIAlzY2hl bWFjbWRzLm8gXAogCXNlY2xhYmVsLm8gXAogCXNlcXVlbmNlLm8gXAorCXNlc3Npb25fdmFyaWFi bGUubyBcCiAJc3RhdHNjbWRzLm8gXAogCXN1YnNjcmlwdGlvbmNtZHMubyBcCiAJdGFibGVjbWRz Lm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA3NTQ5YmU1ZGMzYi4uODZkYTgxMDUx NDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJhY2tlbmRf c291cmNlcyArPSBmaWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5jJywKICAg J3NlcXVlbmNlLmMnLAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21kcy5jJywK ICAgJ3N1YnNjcmlwdGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVw YXJlLmMKaW5kZXggMDcyNTdkNGRiOTQuLjcxOWU2M2ZlODIzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jCkBAIC0zMzgsNiArMzM4LDE0IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUHJlcGFyZWRTdGF0ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAK KwkvKgorCSAqIFRoZSBhcmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGly ZWN0IGV4cHJlc3Npb24KKwkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3Vw cG9ydCBzZXNzaW9uIHZhcmlhYmxlcyB5ZXQuCisJICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVy LgorCSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJZWxvZyhFUlJP UiwgInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKTsKKwog CS8qIFByZXBhcmUgdGhlIGV4cHJlc3Npb25zIGZvciBleGVjdXRpb24gKi8KIAlleHByc3RhdGVz ID0gRXhlY1ByZXBhcmVFeHByTGlzdChwYXJhbXMsIGVzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMWQxYjMzYWMxMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw1NzEgQEAKKy8qLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIHNlc3Npb25fdmFyaWFibGUuYworICoJICBzZXNzaW9uIHZhcmlhYmxlIGNyZWF0 aW9uL21hbmlwdWxhdGlvbiBjb21tYW5kcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNs dWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2lu Y2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9z dmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJtaXNj YWRtaW4uaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVkZSAi c3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAidGNv cC90Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRp bHMvZGF0dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgorI2luY2x1ZGUgInV0aWxzL2xz eXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9z eXNjYWNoZS5oIgorCisvKgorICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUg c3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKKyAqIGluIHRoZSBkZWRpY2F0 ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9ybWF0 LgorICogVGhleSBhcmUgc3RvcmVkIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2ggdGFibGUsIHdo b3NlIGtleSBpcyB0aGUgT0lEIG9mIHRoZQorICogdmFyaWFibGUuICBIb3dldmVyLCB0aGUgT0lE IGlzIG5vdCBnb29kIGVub3VnaCB0byBpZGVudGlmeSBhIHNlc3Npb24KKyAqIHZhcmlhYmxlOiBj b25jdXJyZW50IHNlc3Npb25zIGNvdWxkIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgYW5kIGNy ZWF0ZSBhCisgKiBuZXcgb25lLCB3aGljaCBjb3VsZCBiZSBhc3NpZ25lZCB0aGUgc2FtZSBPSUQu ICBUbyBlbnN1cmUgdGhhdCB0aGUgdmFsdWVzCisgKiBzdG9yZWQgaW4gbWVtb3J5IGFuZCB0aGUg Y2F0YWxvZyBkZWZpbml0aW9uIG1hdGNoLCB3ZSBhbHNvIGtlZXAgdHJhY2sgb2YKKyAqIHRoZSAi Y3JlYXRlX2xzbiIuICBCZWZvcmUgYW55IGFjY2VzcyB0byB0aGUgdmFyaWFibGUgdmFsdWVzLCB3 ZSBuZWVkIHRvCisgKiBjaGVjayBpZiB0aGUgTFNOIHN0b3JlZCBpbiBtZW1vcnkgbWF0Y2hlcyB0 aGUgTFNOIGluIHRoZSBjYXRhbG9nLiAgSWYgdGhlcmUKKyAqIGlzIGEgbWlzbWF0Y2ggYmV0d2Vl biB0aGUgTFNOcywgb3IgaWYgdGhlIE9JRCBpcyBub3QgcHJlc2VudCBpbiBwZ192YXJpYWJsZQor ICogYXQgYWxsLCB0aGUgdmFsdWUgc3RvcmVkIGluIG1lbW9yeSBpcyByZWxlYXNlZC4KKyAqLwor dHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHBnX3Zh cmlhYmxlIE9JRCBvZiB0aGUgdmFyaWFibGUgKGhhc2gga2V5KSAqLworCVhMb2dSZWNQdHIJY3Jl YXRlX2xzbjsKKworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7CisKKwlPaWQJCQl0eXBp ZDsKKwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworCisJYm9vbAkJaXNfZG9tYWlu OworCisJLyoKKwkgKiBkb21haW5fY2hlY2tfZXh0cmEgaG9sZHMgY2FjaGVkIGRvbWFpbiBtZXRh ZGF0YS4gIFRoaXMgImV4dHJhIiBpcworCSAqIHVzdWFsbHkgc3RvcmVkIGluIGZuX21jeHQuICBX ZSBkbyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhhdCBtZW1vcnkgY29udGV4dAorCSAqIGZvciBzZXNz aW9uIHZhcmlhYmxlcywgYnV0IHdlIGNhbiB1c2UgVG9wVHJhbnNhY3Rpb25Db250ZXh0IGluc3Rl YWQuCisJICogQSBmcmVzaCB2YWx1ZSBpcyBmb3JjZWQgd2hlbiB3ZSBkZXRlY3Qgd2UgYXJlIGlu IGEgZGlmZmVyZW50IHRyYW5zYWN0aW9uCisJICogKHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJRCBk aWZmZXJzIGZyb20gZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAgKmRv bWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4g YmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRo ZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1c3R3 b3J0aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJCS8q IHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsKKwor dHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNzaW9u dmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisKK3N0 YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisvKgor ICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgor ICovCitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBp bnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVz OworCVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNoZV9j YWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lvbnZh cnMpOworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdlIGhh dmUgdG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4g IFNpbmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBmcm9t IGl0cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0aGUg aGFzaCBidWNrZXQuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7 CisKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykp ICE9IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09 IGhhc2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJfQorCX0KK30K KworLyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQorICovCitzdGF0aWMg dm9pZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQoreworCS8q IGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251bGwpCisJeworCQlp ZiAoIXN2YXItPnR5cGJ5dmFsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZhbHVl KSk7CisKKwkJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwl9CisKKwlzdmFyLT52YWx1ZSA9IChEYXR1 bSkgMDsKK30KKworLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBlbnRyeSBpbiBwZ192YXJp YWJsZSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdpdmVuCisgKiBzZXNzaW9uIHZhcmlhYmxlLgor ICovCitzdGF0aWMgYm9vbAoraXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3Zh cikKK3sKKwlIZWFwVHVwbGUJdHA7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlBc3NlcnQo T2lkSXNWYWxpZChzdmFyLT52YXJpZCkpOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFC TEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCWlmIChIZWFwVHVwbGVJ c1ZhbGlkKHRwKSkKKwl7CisJCS8qCisJCSAqIFRoZSBPSUQgYWxvbmUgaXMgbm90IGVub3VnaCBh cyBhbiB1bmlxdWUgaWRlbnRpZmllciwgYmVjYXVzZSBPSUQKKwkJICogdmFsdWVzIGdldCByZWN5 Y2xlZCwgYW5kIGEgbmV3IHNlc3Npb24gdmFyaWFibGUgY291bGQgaGF2ZSBnb3QKKwkJICogdGhl IHNhbWUgT0lELiAgV2UgZG8gYSBzZWNvbmQgY2hlY2sgYWdhaW5zdCB0aGUgNjQtYml0IExTTiB3 aGVuCisJCSAqIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKwkJICovCisJCWlmIChzdmFyLT5j cmVhdGVfbHNuID09ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKSktPnZhcmNyZWF0 ZV9sc24pCisJCQlyZXN1bHQgPSB0cnVlOworCisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJfQor CisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNo ZWQgaW4gInN2YXIiCisgKi8KK3N0YXRpYyB2b2lkCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNW YXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zh cmlhYmxlIHZhcmZvcm07CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisK KwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0g KEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJc3Zhci0+dmFyaWQgPSB2YXJp ZDsKKwlzdmFyLT5jcmVhdGVfbHNuID0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbjsKKworCXN2YXIt PnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKworCWdldF90eXBsZW5ieXZhbChzdmFyLT50eXBp ZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKKworCXN2YXItPmlzX2RvbWFpbiA9 IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CisJc3Zh ci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFf bHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5pc251bGwgPSB0cnVl OworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworCisJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOwor CisJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAor CQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKK30KKworLyoKKyAqIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byB0aGUgc2Vzc2lvbiB2YXJp YWJsZS4gIEl0IGlzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBuZWNl c3NhcnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlzdGluZyB2YWx1ZSB3 b24ndCBiZSBtb2RpZmllZC4KKyAqLworc3RhdGljIHZvaWQKK3NldF9zZXNzaW9uX3ZhcmlhYmxl KFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCit7CisJRGF0dW0JCW5l d3ZhbDsKKwlTVmFyaWFibGVEYXRhIGxvY3N2YXIsCisJCQkgICAqX3N2YXI7CisKKwlBc3NlcnQo c3Zhcik7CisJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKKworCS8qCisJ ICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3aGVu IHRoZXkgYXJlCisJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3YXMg bm90IGFjY2VwdGVkIGZvciB0aGlzCisJICogdmFyaWFibGUpLiAgSWYgdGhlIHZhcmlhYmxlIG1p Z2h0IGJlIGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90IG92ZXJ3cml0ZSB0 aGUgcGFzc2VkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgd2UgY2FuIGJlIGNlcnRhaW4KKwkgKiB0 aGF0IG5vIGVycm9yIGNhbiBiZSB0aHJvd24uCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkK Kwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlkKTsKKwkJ X3N2YXIgPSAmbG9jc3ZhcjsKKwl9CisJZWxzZQorCQlfc3ZhciA9IHN2YXI7CisKKwlpZiAoIWlz bnVsbCkKKwl7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRv KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCW5ld3ZhbCA9IGRhdHVtQ29weSh2YWx1ZSwg X3N2YXItPnR5cGJ5dmFsLCBfc3Zhci0+dHlwbGVuKTsKKworCQlNZW1vcnlDb250ZXh0U3dpdGNo VG8ob2xkY3h0KTsKKwl9CisJZWxzZQorCQluZXd2YWwgPSB2YWx1ZTsKKworCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKworCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCisJCSBnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCSBnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJIHN2YXItPnZhcmlkKTsKKwor CS8qIG5vIG1vcmUgZXJyb3IgZXhwZWN0ZWQsIHNvIHdlIGNhbiBvdmVyd3JpdGUgdGhlIG9sZCB2 YXJpYWJsZSBub3cgKi8KKwlpZiAoc3ZhciAhPSBfc3ZhcikKKwkJbWVtY3B5KHN2YXIsIF9zdmFy LCBzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCisJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CisJc3Zh ci0+aXNudWxsID0gaXNudWxsOworfQorCisvKgorICogQ3JlYXRlIHRoZSBoYXNoIHRhYmxlIGZv ciBzdG9yaW5nIHNlc3Npb24gdmFyaWFibGVzLgorICovCitzdGF0aWMgdm9pZAorY3JlYXRlX3Nl c3Npb252YXJzX2hhc2h0YWJsZXModm9pZCkKK3sKKwlIQVNIQ1RMCQl2YXJzX2N0bDsKKworCUFz c2VydCghc2Vzc2lvbnZhcnMpOworCisJaWYgKCFTVmFyaWFibGVNZW1vcnlDb250ZXh0KQorCXsK KwkJLyogcmVhZCBzaW52YWwgbWVzc2FnZXMgKi8KKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2Fs bGJhY2soVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkgIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNr LAorCQkJCQkJCQkJICAoRGF0dW0pIDApOworCisJCS8qIHdlIG5lZWQgb3VyIG93biBsb25nLWxp dmVkIG1lbW9yeSBjb250ZXh0ICovCisJCVNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPQorCQkJQWxs b2NTZXRDb250ZXh0Q3JlYXRlKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCSAgInNlc3Npb24g dmFyaWFibGVzIiwKKwkJCQkJCQkJICBBTExPQ1NFVF9TVEFSVF9TTUFMTF9TSVpFUyk7CisJfQor CisJbWVtc2V0KCZ2YXJzX2N0bCwgMCwgc2l6ZW9mKHZhcnNfY3RsKSk7CisJdmFyc19jdGwua2V5 c2l6ZSA9IHNpemVvZihPaWQpOworCXZhcnNfY3RsLmVudHJ5c2l6ZSA9IHNpemVvZihTVmFyaWFi bGVEYXRhKTsKKwl2YXJzX2N0bC5oY3h0ID0gU1ZhcmlhYmxlTWVtb3J5Q29udGV4dDsKKworCXNl c3Npb252YXJzID0gaGFzaF9jcmVhdGUoIlNlc3Npb24gdmFyaWFibGVzIiwgNjQsICZ2YXJzX2N0 bCwKKwkJCQkJCQkgIEhBU0hfRUxFTSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NPTlRFWFQpOworfQor CisvKgorICogU2VhcmNoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgaGFzaCB0YWJsZSBnaXZl biBpdHMgT0lELiAgSWYgaXQKKyAqIGRvZXNuJ3QgZXhpc3QsIHRoZW4gaW5zZXJ0IGl0IHRoZXJl LgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Npb24g Y2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gYWNxdWlyZXMg YSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRoZSBl bmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCitzdGF0aWMgU1ZhcmlhYmxlCitnZXRfc2Vzc2lv bl92YXJpYWJsZShPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7 CisKKwkvKiBwcm90ZWN0IHRoZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBEUk9QICov CisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vz c1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZhcnNf aGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252 YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAoZm91 bmQpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQkvKgorCQkJICogSWYgdGhl cmUgd2FzIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwg YmUKKwkJCSAqIHZhbGlkLCBidXQgd2UgaGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0 YWxvZy4KKwkJCSAqLworCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCisJ CQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQkJZWxzZQorCQkJCS8qIGlmIHRoZSB2YWx1ZSBj YW5ub3QgYmUgdmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KKwkJCQlmcmVlX3Nl c3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCX0KKwl9CisJZWxzZQorCQlzdmFyLT5pc192 YWxpZCA9IGZhbHNlOworCisJLyoKKwkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0aWFs aXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CisJICogYmUgdmFsaWRhdGVk LgorCSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQgYnkg UkVBRCkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJ CSB2YXJpZCk7CisJfQorCisJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0aWxsIG9m IHRoZSBjb3JyZWN0IGRvbWFpbiAqLworCWlmIChzdmFyLT5pc19kb21haW4pCisJeworCQkvKgor CQkgKiBTdG9yZSAiZXh0cmEiIGZvciBkb21haW5fY2hlY2soKSBpbiBUb3BUcmFuc2FjdGlvbkNv bnRleHQuICBXaGVuIHdlCisJCSAqIGFyZSBpbiBhIG5ldyB0cmFuc2FjdGlvbiwgZG9tYWluX2No ZWNrX2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZCBhbnkKKwkJICogbW9yZS4KKwkJICovCisJCWlm IChzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJ CXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisKKwkJZG9tYWluX2NoZWNrKHN2YXIt PnZhbHVlLCBzdmFyLT5pc251bGwsCisJCQkJCSBzdmFyLT50eXBpZCwgJnN2YXItPmRvbWFpbl9j aGVja19leHRyYSwKKwkJCQkJIFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisKKwkJc3Zhci0+ZG9t YWluX2NoZWNrX2V4dHJhX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKKwlyZXR1cm4g c3ZhcjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBnaXZlbiB2YWx1ZSBpbiBhIHNlc3Npb24gdmFy aWFibGUgaW4gdGhlIGNhY2hlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9y IGRvaW5nIHBlcm1pc3Npb24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMg ZnVuY3Rpb24gYWNxdWlyZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24KKyAqIHZh cmlhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCit2b2lkCitTZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7CisJ U1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisKKwkvKiBwcm90ZWN0IHVzZWQgc2Vzc2lv biB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZh cnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJp YWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9F TlRFUiwgJmZvdW5kKTsKKworCWlmICghZm91bmQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQgYnkg V1JJVEUpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFy LT52YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGlmIHRoaXMgZmFpbHMsIGl0IHdvbid0 IGNoYW5nZSB0aGUgc3RvcmVkIHZhbHVlICovCisJc2V0X3Nlc3Npb25fdmFyaWFibGUoc3Zhciwg dmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBXcmFwcGVyIGFyb3VuZCBTZXRTZXNzaW9uVmFy aWFibGUgd2l0aCBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLwordm9pZAorU2V0U2Vzc2lvblZhcmlh YmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwp Cit7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCS8qIGlzIHRoZSBjYWxsZXIgYWxsb3dlZCB0 byB1cGRhdGUgdGhlIHNlc3Npb24gdmFyaWFibGU/ICovCisJYWNscmVzdWx0ID0gb2JqZWN0X2Fj bGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRF KTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xy ZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkp OworCisJU2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoK KyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzdG9yZWQgaW4gYSB2YXJpYWJsZS4KKyAq Lworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJp YWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJRGF0dW0JCXZhbHVlOworCisJLyogZm9yY2Ug Y29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJdmFs dWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4p OworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVsc2UKKwl7CisJCXZhbHVlID0gKERhdHVtKSAw OworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qCisgKiBS ZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgKGluIHRo ZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4dCkuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxl IGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZShP aWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsK KworCXN2YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7CisKKwkvKgorCSAqIEFsdGhv dWdoIHN2YXIgaXMgZnJlc2hseSB2YWxpZGF0ZWQgaW4gdGhpcyBwb2ludCwgdGhlIHN2YXItPmlz X3ZhbGlkIGNhbgorCSAqIGJlIGZhbHNlLCBkdWUgcG9zc2libGUgYWNjZXB0aW5nIGludmFsaWRh dGlvbiBtZXNzYWdlIGluc2lkZSBkb21haW4KKwkgKiBjaGVjay4gQnV0IG5vdywgdGhlIHZhcmlh YmxlLCBhbmQgYWxsIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkLCBzbyB3ZQorCSAqIGRvbid0IG5l ZWQgdG8gcmVwZWF0IHZhbGlkYXRpb24uCisJICovCisJQXNzZXJ0KHN2YXIpOworCisJKnR5cGlk ID0gc3Zhci0+dHlwaWQ7CisKKwlyZXR1cm4gY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2Yg dGhlIHNlc3Npb24gdmFyaWFibGUgYWZ0ZXIgY2hlY2tpbmcgaWYgdGhlCisgKiB0eXBlIGlzIHRo ZSBzYW1lIGFzICJleHBlY3RlZF90eXBpZCIuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv cgorICogcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGVX aXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0ZWRfdHlwaWQp Cit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFy aWQpOworCisJQXNzZXJ0KHN2YXIgJiYgc3Zhci0+aXNfdmFsaWQpOworCisJaWYgKGV4cGVjdGVk X3R5cGlkICE9IHN2YXItPnR5cGlkKQorCQllbG9nKEVSUk9SLCAidHlwZSBvZiB2YXJpYWJsZSBc IiVzLiVzXCIgaXMgZGlmZmVyZW50IHRoYW4gZXhwZWN0ZWQiLAorCQkJIGdldF9uYW1lc3BhY2Vf bmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCSBnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwlyZXR1cm4gY29weV9zZXNzaW9uX3Zhcmlh YmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJlc3VsdCBv ZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAqLwor dm9pZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAq c3RtdCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVu dCAqcXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpx dWVyeSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVu OworCURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRT dG10ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5 LT5yZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKiBk byB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGU/ICov CisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09L KQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNlaXZlciBm b3IgTEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKwor CS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3QocXVlcnkp OworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChsaXN0X2xl bmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBy ZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisK KwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5LCBwc3Rh dGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBwYXJhbXMp OworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFuZCBJRCB0 byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHByZXZpb3Vz bHkgZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJICogdGhl IHBsYW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0IGNoYW5n ZWQgdGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3YXkgdG8g YmUgcGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLworCVB1c2hD b3BpZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVTbmFwc2hv dENvbW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGluZyBvdXRw dXQgdG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVlcnlEZXNj KHBsYW4sIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFwc2hvdCgp LCBJbnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYsIDApOwor CisJLyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4ZWN1dGlv biAqLworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVuIHRoZSBw bGFuIHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSByb3cuICBU bworCSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2UgdHJ5IHRv IGZldGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRTY2FuRGly ZWN0aW9uLCAyTCwgdHJ1ZSk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZl biBhIFF1ZXJ5Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBs ZXRpb24ocWMsIENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOwor CisJLyogYW5kIGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVj dXRvckVuZChxdWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9w QWN0aXZlU25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01h a2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5kZXggMTExMThkMGNlMDIu LjcxMjQ4YTM0ZjI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtNzYsNiArNzYsNyBAQCBPQkpT ID0gXAogCW5vZGVXaW5kb3dBZ2cubyBcCiAJbm9kZVdvcmt0YWJsZXNjYW4ubyBcCiAJc3BpLm8g XAorCXN2YXJpYWJsZVJlY2VpdmVyLm8gXAogCXRxdWV1ZS5vIFwKIAl0c3RvcmVSZWNlaXZlci5v CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDYzMjg5ZWUzNWVlLi5iZmRmMTVhNTA3MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2Rl U3VicGxhbi5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk5MSw2ICs5OTIsNDEgQEAgRXhl Y0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQlzY3JhdGNo LmQucGFyYW0ucGFyYW10eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKIAkJCQkJCUV4cHJFdmFsUHVz aFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKIAkJCQkJCWJyZWFrOworCisJCQkJCWNhc2UgUEFSQU1f VkFSSUFCTEU6CisJCQkJCQl7CisJCQkJCQkJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVz ID0gMDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXMg PSBOVUxMOworCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2YXI7CisKKwkJCQkJCQlpZiAo c3RhdGUtPnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkKKwkJCQkJCQl7CisJCQkJCQkJ CWVzX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX3Nlc3Npb25f dmFyaWFibGVzOworCQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFy ZW50LT5zdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJCX0KKworCQkJCQkJ CUFzc2VydChlc19zZXNzaW9uX3ZhcmlhYmxlcyk7CisKKwkJCQkJCQkvKiBwYXJhbWV0ZXIgc2Fu aXR5IGNoZWNrcyAqLworCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lv bl92YXJpYWJsZXMpCisJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklB QkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25f dmFyaWFibGVzW3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCWlmICh2YXItPnR5cGlkICE9IHBh cmFtLT5wYXJhbXR5cGUpCisJCQkJCQkJCWVsb2coRVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZh bHVlIGlzIGRpZmZlcmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5cGUiKTsKKworCQkJCQkJCS8q CisJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkg KiBjb25zdGFudC4KKwkJCQkJCQkgKi8KKwkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09O U1Q7CisJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJ CQlzY3JhdGNoLmQuY29uc3R2YWwuaXNudWxsID0gdmFyLT5pc251bGw7CisJCQkJCQkJRXhwckV2 YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJfQorCQkJCQkJYnJlYWs7CisKIAkJ CQkJY2FzZSBQQVJBTV9FWFRFUk46CiAKIAkJCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpp bmRleCAyOWUxODZmYTczZC4uNjdmYWQ3ZWViODMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpA QCAtNDMsNyArNDMsOSBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9tYXR2aWV3Lmgi CisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUg ImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCkBAIC0xOTEsNiArMTkzLDYxIEBAIHN0YW5kYXJkX0V4 ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJQXNzZXJ0KHF1 ZXJ5RGVzYy0+c291cmNlVGV4dCAhPSBOVUxMKTsKIAllc3RhdGUtPmVzX3NvdXJjZVRleHQgPSBx dWVyeURlc2MtPnNvdXJjZVRleHQ7CiAKKwkvKgorCSAqIFRoZSBleGVjdXRvciBkb2Vzbid0IHdv cmsgd2l0aCBzZXNzaW9uIHZhcmlhYmxlcyBkaXJlY3RseS4gVmFsdWVzIG9mCisJICogcmVsYXRl ZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgY29waWVkIHRvIGEgZGVkaWNhdGVkIGFycmF5LCBhbmQg dGhpcyBhcnJheQorCSAqIGlzIHBhc3NlZCB0byB0aGUgZXhlY3V0b3IuIFRoaXMgYXJyYXkgaXMg c3RhYmxlICJzbmFwc2hvdCIgb2YgdmFsdWVzIG9mCisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gVGhlcmUgYXJlIHRocmVlIGJlbmVmaXRzIG9mIHRoaXMgc3RyYXRlZ3k6CisJICoKKwkgKiAt IGNvbnNpc3RlbmN5IHdpdGggZXh0ZXJuYWwgcGFyYW1ldGVycyBhbmQgcGxwZ3NxbCB2YXJpYWJs ZXMsCisJICoKKwkgKiAtIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBwYXJhbGxlbCBzYWZlLAor CSAqCisJICogLSB3ZSBkb24ndCBuZWVkIG1ha2UgZnJlc2ggY29weSBmb3IgYW55IHJlYWQgb2Yg c2Vzc2lvbiB2YXJpYWJsZQorCSAqICAgICh0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBp bnRlcm5hbGx5IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbgorCSAqICAgIGJlIGNoYW5nZWQgaW5z aWRlIHF1ZXJ5IGV4ZWN1dGlvbiB0aW1lLCBhbmQgdGhlbiBhIHJlZmVyZW5jZSB0bworCSAqICAg IHByZXZpb3VzbHkgcmV0dXJuZWQgdmFsdWUgY2FuIGJlIGNvcnJ1cHRlZCkuCisJICovCisJaWYg KHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJeworCQlMaXN0Q2Vs bCAgICpsYzsKKwkJaW50CQkJblNlc3Npb25WYXJpYWJsZXM7CisJCWludAkJCWkgPSAwOworCisJ CS8qCisJCSAqIEluIHRoaXMgY2FzZSwgdGhlIHF1ZXJ5IHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMs IGJ1dCB3ZSBoYXZlIHRvCisJCSAqIHByZXBhcmUgdGhlIGFycmF5IHdpdGggcGFzc2VkIHZhbHVl cyAob2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcykKKwkJICogZmlyc3QuCisJCSAqLworCQlBc3Nl cnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisJCW5TZXNzaW9uVmFyaWFibGVzID0gbGlzdF9sZW5n dGgocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcyk7CisKKwkJLyogY3Jl YXRlIHRoZSBhcnJheSB1c2VkIGZvciBwYXNzaW5nIHZhbHVlcyBvZiB1c2VkIHNlc3Npb24gdmFy aWFibGVzICovCisJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSAoU2Vzc2lvblZhcmlh YmxlVmFsdWUgKikKKwkJCXBhbGxvYyhuU2Vzc2lvblZhcmlhYmxlcyAqIHNpemVvZihTZXNzaW9u VmFyaWFibGVWYWx1ZSkpOworCisJCS8qIGZpbGwgdGhlIGFycmF5ICovCisJCWZvcmVhY2gobGMs IHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCUFjbFJl c3VsdAlhY2xyZXN1bHQ7CisJCQlPaWQJCQl2YXJpZCA9IGxmaXJzdF9vaWQobGMpOworCisJCQlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0 VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykK KwkJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwKKwkJCQkJCQkg ICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwkJCWVzdGF0ZS0+ZXNfc2Vz c2lvbl92YXJpYWJsZXNbaV0udmFyaWQgPSB2YXJpZDsKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92 YXJpYWJsZXNbaV0udmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCisJCQkJCQkJCQkJ CQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLmlzbnVsbCwKKwkJCQkJ CQkJCQkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udHlwaWQpOwor CisJCQlpKys7CisJCX0KKworCQllc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IG5T ZXNzaW9uVmFyaWFibGVzOworCX0KKwogCS8qCiAJICogRmlsbCBpbiB0aGUgcXVlcnkgZW52aXJv bm1lbnQsIGlmIGFueSwgZnJvbSBxdWVyeURlc2MuCiAJICovCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1 aWxkCmluZGV4IGI1MTFhNDI5YWRmLi5iNjY2MmM2ZThmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24u YnVpbGQKQEAgLTY0LDYgKzY0LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAnbm9k ZVdpbmRvd0FnZy5jJywKICAgJ25vZGVXb3JrdGFibGVzY2FuLmMnLAogICAnc3BpLmMnLAorICAn c3ZhcmlhYmxlUmVjZWl2ZXIuYycsCiAgICd0cXVldWUuYycsCiAgICd0c3RvcmVSZWNlaXZlci5j JywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNGNmZjQ0ZWNmNAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKQEAgLTAsMCArMSwy MDEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmMKKyAq CSAgQW4gaW1wbGVtZW50YXRpb24gb2YgRGVzdFJlY2VpdmVyIHRoYXQgc3RvcmVzIHRoZSByZXN1 bHQgdmFsdWUgaW4KKyAqCSAgYSBzZXNzaW9uIHZhcmlhYmxlLgorICoKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJz aXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2Vu ZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisKKyNp bmNsdWRlICJhY2Nlc3MvZGV0b2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhl Y3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xvY2suaCIKKyNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgor I2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGlzIERlc3RSZWNlaXZlciBp cyB1c2VkIGJ5IHRoZSBMRVQgY29tbWFuZCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHRvIGEKKyAq IHNlc3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0IGhhcyB0byBoYXZlIG9ubHkgb25lIHR1cGxl IHdpdGggb25seSBvbmUKKyAqIG5vbi1kZWxldGVkIGF0dHJpYnV0ZS4gIFRoZSByb3cgY291bnRl ciAoZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRlZAorICogYWZ0ZXIgcmVjZWl2aW5nIGEgcm93 LCBhbmQgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3Mgb3IKKyAqIHRo ZXJlIGFyZSBtb3JlIHRoYW4gb25lIHJlY2VpdmVkIHJvd3MuICBCZWNhdXNlIGEgcmVjZWl2ZWQg dHVwbGUgY2FuIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcywgd2UgbmVlZCB0byBmaW5kIHRo ZSBmaXJzdCBub24tZGVsZXRlZCBhdHRyaWJ1dGUKKyAqIChmaWVsZCAic2xvdF9vZmZzZXQiKS4g IFRoZSB2YWx1ZSBpcyBkZXRvYXN0ZWQgYmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisgKiBzZXNz aW9uIHZhcmlhYmxlLgorICovCit0eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBwdWI7 CisJT2lkCQkJdmFyaWQ7CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkJLyogZG8gd2UgbmVlZCB0byBk ZXRvYXN0IHRoZSBhdHRyaWJ1dGU/ICovCisJaW50CQkJc2xvdF9vZmZzZXQ7CQkvKiBwb3NpdGlv biBvZiBub24tZGVsZXRlZCBhdHRyaWJ1dGUgKi8KKwlpbnQJCQlyb3dzOwkJCQkvKiByb3cgY291 bnRlciAqLworfSBTVmFyaWFibGVTdGF0ZTsKKworLyoKKyAqIFByZXBhcmUgdG8gcmVjZWl2ZSB0 dXBsZXMgZnJvbSBleGVjdXRvci4KKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZVN0YXJ0dXBS ZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBl aW5mbykKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBz ZWxmOworCWludAkJCW5hdHRzID0gdHlwZWluZm8tPm5hdHRzOworCWludAkJCW91dGNvbHMgPSAw OworCWludAkJCWk7CisJTE9DS1RBRwkJbG9ja3RhZyBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7 CisKKwlBc3NlcnQobXlTdGF0ZS0+cHViLm15ZGVzdCA9PSBEZXN0VmFyaWFibGUpOworCUFzc2Vy dChPaWRJc1ZhbGlkKG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KFNlYXJjaFN5c0NhY2hlRXhp c3RzMShWQVJJQUJMRU9JRCwgbXlTdGF0ZS0+dmFyaWQpKTsKKworI2lmZGVmIFVTRV9BU1NFUlRf Q0hFQ0tJTkcKKworCVNFVF9MT0NLVEFHX09CSkVDVChsb2NrdGFnLAorCQkJCQkgICBNeURhdGFi YXNlSWQsCisJCQkJCSAgIFZhcmlhYmxlUmVsYXRpb25JZCwKKwkJCQkJICAgbXlTdGF0ZS0+dmFy aWQsCisJCQkJCSAgIDApOworCisJQXNzZXJ0KExvY2tIZWxkQnlNZSgmbG9ja3RhZywgQWNjZXNz U2hhcmVMb2NrLCBmYWxzZSkpOworCisjZW5kaWYKKworCWZvciAoaSA9IDA7IGkgPCBuYXR0czsg aSsrKQorCXsKKwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1cGxlRGVzY0F0dHIodHlwZWlu Zm8sIGkpOworCQlPaWQJCQl0eXBpZDsKKwkJT2lkCQkJY29sbGlkOworCQlpbnQzMgkJdHlwbW9k OworCisJCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCisJCQljb250aW51ZTsKKworCQlpZiAoKytv dXRjb2xzID4gMSkKKwkJCWNvbnRpbnVlOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVf dHlwbW9kX2NvbGxpZChteVN0YXRlLT52YXJpZCwKKwkJCQkJCQkJCQkJCSZ0eXBpZCwKKwkJCQkJ CQkJCQkJCSZ0eXBtb2QsCisJCQkJCQkJCQkJCQkmY29sbGlkKTsKKworCQkvKgorCQkgKiBEb3Vi bGUgY2hlY2sgLSB0aGUgdHlwZSBhbmQgdHlwbW9kIG9mIHRhcmdldCB2YXJpYWJsZSBzaG91bGQg YmUgdGhlCisJCSAqIHNhbWUgYXMgdGhlIHR5cGUgYW5kIHR5cG1vZCBvZiBhc3NpZ25tZW50IGV4 cHJlc3Npb24uICBUaGUKKwkJICogZXhwcmVzc2lvbiBzaG91bGQgYmUgd3JhcHBlZCBieSBhIGNh c3QgdG8gdGhlIHRhcmdldCB0eXBlL3R5cG1vZC4KKwkJICovCisJCWlmIChhdHRyLT5hdHR0eXBp ZCAhPSB0eXBpZCB8fAorCQkJKGF0dHItPmF0dHR5cG1vZCA+PSAwICYmCisJCQkgYXR0ci0+YXR0 dHlwbW9kICE9IHR5cG1vZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidGFyZ2V0IHNlc3Npb24gdmFy aWFibGUgaXMgb2YgdHlwZSAlcyIKKwkJCQkJCQkiIGJ1dCBleHByZXNzaW9uIGlzIG9mIHR5cGUg JXMiLAorCQkJCQkJCWZvcm1hdF90eXBlX3dpdGhfdHlwZW1vZCh0eXBpZCwgdHlwbW9kKSwKKwkJ CQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QoYXR0ci0+YXR0dHlwaWQsCisJCQkJCQkJCQkJ CQkJIGF0dHItPmF0dHR5cG1vZCkpKSk7CisKKwkJbXlTdGF0ZS0+bmVlZF9kZXRvYXN0ID0gYXR0 ci0+YXR0bGVuID09IC0xOworCQlteVN0YXRlLT5zbG90X29mZnNldCA9IGk7CisJfQorCisJaWYg KG91dGNvbHMgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2lnbm1lbnQgZXhwcmVzc2lvbiBy ZXR1cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0 dXJuZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgb3V0Y29scywKKwkJCQkJCQkgICBvdXRjb2xz KSkpOworCisJbXlTdGF0ZS0+cm93cyA9IDA7Cit9CisKKy8qCisgKiBSZWNlaXZlIGEgdHVwbGUg ZnJvbSB0aGUgZXhlY3V0b3IgYW5kIHN0b3JlIGl0IGluIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICovCitzdGF0aWMgYm9vbAorc3ZhcmlhYmxlUmVjZWl2ZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNs b3QsIERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChT VmFyaWFibGVTdGF0ZSAqKSBzZWxmOworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisJ Ym9vbAkJZnJlZXZhbCA9IGZhbHNlOworCisJLyogbWFrZSBzdXJlIHRoZSB0dXBsZSBpcyBmdWxs eSBkZWNvbnN0cnVjdGVkICovCisJc2xvdF9nZXRhbGxhdHRycyhzbG90KTsKKworCXZhbHVlID0g c2xvdC0+dHRzX3ZhbHVlc1tteVN0YXRlLT5zbG90X29mZnNldF07CisJaXNudWxsID0gc2xvdC0+ dHRzX2lzbnVsbFtteVN0YXRlLT5zbG90X29mZnNldF07CisKKwlpZiAobXlTdGF0ZS0+bmVlZF9k ZXRvYXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFMKERhdHVtR2V0UG9pbnRlcih2 YWx1ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oZGV0b2FzdF9leHRlcm5hbF9h dHRyKChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAgRGF0dW1HZXRQb2ludGVyKHZh bHVlKSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0YXRlLT5yb3dzICs9IDE7CisK KwlpZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVybmVk IG1vcmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZShteVN0YXRlLT52 YXJpZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0dW1HZXRQ b2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFuIHVwIGF0 IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVTaHV0 ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlpZiAoKChTVmFyaWFibGVTdGF0 ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5lZCBu byByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJlY2VpdmVyIHdoZW4gd2UgYXJl IGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVy KERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIEluaXRp YWxseSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIgKgor Q3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVN0YXRl ICpzZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAoc2l6ZW9mKFNWYXJpYWJsZVN0YXRl KSk7CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFyaWFibGVSZWNlaXZlU2xvdDsKKwlz ZWxmLT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXI7CisJc2VsZi0+cHVi LnJTaHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJEZXN0 cm95ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNlbGYtPnB1Yi5teWRlc3QgPSBEZXN0 VmFyaWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOworCisJcmV0dXJuIChEZXN0UmVjZWl2 ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j IGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggZDJlMmFmNGY4MTEuLjA3ZmUw NWRlYWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtNDMyOCw2ICs0MzI4LDE2IEBAIHJhd19l eHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7 CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQl7CisJCQkJTGV0U3RtdCAg ICAqc3RtdCA9IChMZXRTdG10ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzdG10LT50YXJnZXQp KQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdG10LT5xdWVyeSkpCisJCQkJCXJl dHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CiAJCQl7 CiAJCQkJUExBc3NpZ25TdG10ICpzdG10ID0gKFBMQXNzaWduU3RtdCAqKSBub2RlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IGI1ODI3ZDM5ODA4Li4zNDRlYWJhNjUzMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMzIzLDYgKzMyMyw3IEBAIHN0 YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGlu dCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmxhc3RQbGFuTm9kZUlkID0gMDsKIAlnbG9iLT50cmFu c2llbnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09uUm9sZSA9IGZhbHNlOworCWdsb2It PnNlc3Npb25WYXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3Mg ZmVhc2libGUgdG8gdXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NTcs NiArNTU4LDcgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1 ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9 IGdsb2ItPnBhcmFtRXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBi dXQgd2UgbWlnaHQgYXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBh cnNlLT51dGlsaXR5U3RtdDsKKwlyZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBnbG9iLT5zZXNz aW9uVmFyaWFibGVzOwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0 aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTcyNyw2ICs3 MjksMTMgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFy c2UsIFBsYW5uZXJJbmZvICpwYXJlbnRfcm9vdCwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMo cm9vdCk7CiAKKwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24g dmFyaWFibGUuICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRy dWUgaWYgdGhlIHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJp YWJsZS4KKwkgKi8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8q CiAJICogSWYgdGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50 byBhbiBhcHBlbmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBh cHBseWluZyBwdWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYwppbmRleCA3YWVkODQ1ODRjNi4uZDg0YWRmZGNjZWQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTIwOSw2ICsyMDksOSBAQCBzdGF0aWMgTGlzdCAq c2V0X3JldHVybmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRp YyBMaXN0ICpzZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZv ICpyb290LAogCQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJ ICAgUGxhbiAqcGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl c193YWxrZXIoTm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7Citz dGF0aWMgdm9pZCByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpy b290LCBPaWQgdmFyaWQpOwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTMwOCw2ICsx MzExLDUwIEBAIHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGlu dCBydG9mZnNldCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAqIFNlYXJjaCB1c2FnZSBvZiBz ZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWJxdWVyaWVzCisgKi8KK3ZvaWQKK3B1bGxfdXBfaGFzX3Nl c3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KQoreworCVF1ZXJ5CSAgICpxdWVyeSA9 IHJvb3QtPnBhcnNlOworCisJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJ cm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCSh2b2lk KSBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25f dmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KK30KKwor c3RhdGljIGJvb2wKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpu b2RlLCBQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlpZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4g ZmFsc2U7CisJaWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlRdWVyeQkgICAqcXVlcnkgPSAo UXVlcnkgKikgbm9kZTsKKworCQlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXsK KwkJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCQkJcmV0dXJuIGZhbHNlOwor CQl9CisKKwkJLyogcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8KKwkJcmV0dXJuIHF1ZXJ5X3Ry ZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAorCQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92 YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7CisJfQorCXJldHVy biBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFi bGVzX3dhbGtlciwKKwkJCQkJCQkJICAodm9pZCAqKSByb290KTsKK30KKwogLyoKICAqIHNldF9p bmRleG9ubHlzY2FuX3JlZmVyZW5jZXMKICAqCQlEbyBzZXRfcGxhbl9yZWZlcmVuY2VzIHByb2Nl c3Npbmcgb24gYW4gSW5kZXhPbmx5U2NhbgpAQCAtMTk1Niw4ICsyMDAzLDkgQEAgY29weVZhcihW YXIgKnZhcikKICAqIFRoaXMgaXMgY29kZSB0aGF0IGlzIGNvbW1vbiB0byBhbGwgdmFyaWFudHMg b2YgZXhwcmVzc2lvbi1maXhpbmcuCiAgKiBXZSBtdXN0IGxvb2sgdXAgb3BlcmF0b3Igb3Bjb2Rl IGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKICAqIGFkZCBPSURzIGZyb20gcmVn Y2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMsIGFuZAotICog YWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGludG8gcm9vdC0+ Z2xvYi0+aW52YWxJdGVtcy4KLSAqIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMg Zm9yIEdST1VQSU5HKCkgZXhwcmVzc2lvbnMuCisgKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVz ZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGludG8KKyAqIHJvb3Qt Pmdsb2ItPmludmFsSXRlbXMuICBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZv ciBHUk9VUElORygpCisgKiBleHByZXNzaW9ucy4KICAqCiAgKiBXZSBhc3N1bWUgaXQncyBva2F5 IHRvIHVwZGF0ZSBvcGNvZGUgaW5mbyBpbi1wbGFjZS4gIFNvIHRoaXMgY291bGQgcG9zc2libHkK ICAqIHNjcmliYmxlIG9uIHRoZSBwbGFubmVyJ3MgaW5wdXQgZGF0YSBzdHJ1Y3R1cmVzLCBidXQg aXQncyBPSy4KQEAgLTIwNDcsNiArMjA5NSwxMyBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lcklu Zm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJCQkJZy0+Y29scyA9IGNvbHM7CiAJCX0KIAl9CisJZWxz ZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5v ZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJlY29yZF9w bGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3kocm9vdCwgcC0+cGFyYW12YXJpZCk7CisJfQogfQogCiAv KgpAQCAtMjA1Niw2ICsyMTExLDEwIEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9v dCwgTm9kZSAqbm9kZSkKICAqIElmIGl0J3MgYSBQQVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQg d2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0gZnJvbQogICogcm9vdC0+bXVsdGlleHByX3BhcmFt czsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBuZWVkZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdz IHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAq IElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwgdGhlbiB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMgaW4KKyAqIHRoZSBsaXN0IHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZS4gIEFs c28sIGFzc2lnbiB0aGUgcGFyYW1ldGVyJ3MKKyAqICJwYXJhbWlkIiB0byB0aGUgcGFyYW1ldGVy J3MgcG9zaXRpb24gaW4gdGhhdCBsaXN0LgogICovCiBzdGF0aWMgTm9kZSAqCiBmaXhfcGFyYW1f bm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCkBAIC0yMDc0LDYgKzIxMzMsNDEgQEAg Zml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQogCQkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgUEFSQU1fTVVMVElFWFBSIElEOiAlZCIsIHAtPnBhcmFtaWQpOwogCQly ZXR1cm4gY29weU9iamVjdChsaXN0X250aChwYXJhbXMsIGNvbG5vIC0gMSkpOwogCX0KKworCWlm IChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlMaXN0Q2VsbCAgICpsYzsK KwkJaW50CQkJbiA9IDA7CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkJLyogd2Ugd2lsbCBt b2RpZnkgb2JqZWN0ICovCisJCXAgPSAoUGFyYW0gKikgY29weU9iamVjdChwKTsKKworCQkvKgor CQkgKiBOb3csIHdlIGNhbiBhY3R1YWxpemUgbGlzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcywgYW5k IHdlIGNhbgorCQkgKiBjb21wbGV0ZSBwYXJhbWlkIHBhcmFtZXRlci4KKwkJICovCisJCWZvcmVh Y2gobGMsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCWlmIChsZmlyc3Rf b2lkKGxjKSA9PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAtPnBhcmFtaWQgPSBuOworCQkJ CWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4gKz0gMTsKKwkJfQorCisJCWlm ICghZm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBsYXBwZW5k X29pZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJCQkJCQkJCQkJCSAgIHAtPnBh cmFtdmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKworCQlyZXR1cm4gKE5vZGUgKikg cDsKKwl9CisKIAlyZXR1cm4gKE5vZGUgKikgY29weU9iamVjdChwKTsKIH0KIApAQCAtMjEzNSw3 ICsyMjI5LDEwIEBAIGZpeF9hbHRlcm5hdGl2ZV9zdWJwbGFuKFBsYW5uZXJJbmZvICpyb290LCBB bHRlcm5hdGl2ZVN1YlBsYW4gKmFzcGxhbiwKICAqIHJlcGxhY2luZyBBZ2dyZWYgbm9kZXMgdGhh dCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaW5pdHBsYW4gb3V0cHV0IFBhcmFtcywKICAqIGNob29z aW5nIHRoZSBiZXN0IGltcGxlbWVudGF0aW9uIGZvciBBbHRlcm5hdGl2ZVN1YlBsYW5zLAogICog bG9va2luZyB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5v ZGVzLAotICogYW5kIGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byBy b290LT5nbG9iLT5yZWxhdGlvbk9pZHMuCisgKiBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENv bnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLAorICogYXNzaWduaW5nIHBh cmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFCTEUgcGFyYW1zLCBhbmQgY29sbGVjdGluZyB0aGUKKyAq IE9JRHMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhlIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJp YWJsZXMgbGlzdAorICogKHBhcmFtdmFyaWQgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZXNzaW9u IHZhcmlhYmxlIGluIHRoaXMgbGlzdCkuCiAgKgogICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0 byBiZSBtb2RpZmllZAogICogJ3J0b2Zmc2V0JzogaG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5v cyBieQpAQCAtMjE1Nyw3ICsyMjU0LDggQEAgZml4X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9v dCwgTm9kZSAqbm9kZSwgaW50IHJ0b2Zmc2V0LCBkb3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11 bHRpZXhwcl9wYXJhbXMgIT0gTklMIHx8CiAJCXJvb3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwK IAkJcm9vdC0+bWlubWF4X2FnZ3MgIT0gTklMIHx8Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3Vi UGxhbnMpCisJCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vz c2lvblZhcmlhYmxlcykKIAl7CiAJCXJldHVybiBmaXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwg JmNvbnRleHQpOwogCX0KQEAgLTM1MjAsNiArMzYxOCwyNSBAQCByZWNvcmRfcGxhbl90eXBlX2Rl cGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBS ZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgdmFyaWFibGUgY2Fu IGJlIHVzZWQgYXMgYQorICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBhbiBleHByZXNzaW9uIGxpc3Qs IG9yIGFzIHRoZSB0YXJnZXQgb2YgYSBMRVQgc3RhdGVtZW50LgorICovCitzdGF0aWMgdm9pZAor cmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZh cmlkKQoreworCVBsYW5JbnZhbEl0ZW0gKmludmFsX2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJ dGVtKTsKKworCS8qIHBhcmFtaWQgaXMgc3RpbGwgc2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWlu dmFsX2l0ZW0tPmNhY2hlSWQgPSBWQVJJQUJMRU9JRDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUg PSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVj dElkR2V0RGF0dW0odmFyaWQpKTsKKworCS8qIGFwcGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2Jh bCwgcmVnaXN0ZXIgZGVwZW5kZW5jeSAqLworCXJvb3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBw ZW5kKHJvb3QtPmdsb2ItPmludmFsSXRlbXMsCisJCQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisK IC8qCiAgKiBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVu LCBidXQgbm90IHlldCBwbGFubmVkLCBxdWVyeSBvciBxdWVyaWVzCkBAIC0zNjA1LDkgKzM3MjIs OSBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5l ckluZm8gKmNvbnRleHQpCiAJCQl9CiAKIAkJCS8qCi0JCQkgKiBJZ25vcmUgb3RoZXIgdXRpbGl0 eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTikKLQkJCSAqIHRoYXQg Y29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IgdGhvc2UsIHdlCi0J CQkgKiBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29udGFpbmVk IHF1ZXJ5LgorCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRo b3NlIChzdWNoIGFzIEVYUExBSU4KKwkJCSAqIG9yIExFVCkgdGhhdCBjb250YWluIGEgcGFyc2Vk LWJ1dC1ub3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwKKwkJCSAqIHdlIGp1c3QgbmVlZCB0 byB0cmFuc2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCiAJCQkgKi8K IAkJCXF1ZXJ5ID0gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXVlcnktPnV0aWxpdHlTdG10KTsKIAkJ CWlmIChxdWVyeSA9PSBOVUxMKQpAQCAtMzYzMCw2ICszNzQ3LDEwIEBAIGV4dHJhY3RfcXVlcnlf ZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJ CQkJbGFwcGVuZF9vaWQoY29udGV4dC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBydGUtPnJlbGlkKTsK IAkJfQogCisJCS8qIHJlY29yZCBkZXBlbmRlbmN5IG9uIHRoZSB0YXJnZXQgdmFyaWFibGUgb2Yg YSBMRVQgY29tbWFuZCAqLworCQlpZiAoT2lkSXNWYWxpZChxdWVyeS0+cmVzdWx0VmFyaWFibGUp KQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShjb250ZXh0LCBxdWVyeS0+cmVz dWx0VmFyaWFibGUpOworCiAJCS8qIEFuZCByZWN1cnNlIGludG8gdGhlIHF1ZXJ5J3Mgc3ViZXhw cmVzc2lvbnMgKi8KIAkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LCBleHRyYWN0X3F1 ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIsCiAJCQkJCQkJCSAodm9pZCAqKSBjb250ZXh0LCAwKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKaW5kZXggOTY5ZTI1N2Y3 MGIuLjA2MWFjMmRjN2NkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRy ZWUuYwpAQCAtMTMxNCw2ICsxMzE0LDkgQEAgcHVsbF91cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5l ckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxFbnRyeSAqcnRlLAogCS8qIElmIHN1 YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlvbnMsIG5vdyBtYWluIHF1ZXJ5IGRvZXMgdG9vICov CiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9IHN1YnF1ZXJ5LT5oYXNSb3dTZWN1cml0eTsKIAor CS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vzc2lvbiB2YXJpYWJsZXMsIHRoZSBtYWluIHF1ZXJ5 IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nlc3Npb25WYXJpYWJsZXMgfD0gc3VicXVlcnktPmhh c1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgogCSAqIHN1YnF1ZXJ5IHdvbid0IGJlIHB1bGxlZCB1 cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dGdW5jcywgb3IKIAkgKiBoYXNUYXJnZXRTUkZzLCBz byBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBmbGFncwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xh dXNlcy5jCmluZGV4IGI0ZTA4NWU5ZDRiLi4wMDYzYjJiNjMyMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf b3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9mdW5jdGlv bnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05MzUsNiArOTM2LDEzIEBAIG1heF9wYXJh bGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4 dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOKQogCQkJ cmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZh cmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZB UklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVM X1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVybiB0cnVlOworCQl9CisKIAkJaWYgKHBh cmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250 ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQogCQl7CkBAIC0yMzg5LDYgKzIz OTcsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3Bfd2Fsa2VyKE5vZGUgKm5vZGUsIHZv aWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQYXJhbS4KICAqIDIuIEZvbGQgc3RhYmxl LCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25zIHRvIGNvbnN0YW50cy4KICAqIDMuIFJl ZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVpciBjb250YWluZWQgZXhwcmVzc2lvbnMu CisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9y IGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiBOb2RlICoKQEAg LTI1MTUsNiArMjUyNCwyOSBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAq bm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJCQllbHNlIGlmIChwYXJhbS0+cGFyYW1r aW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkgY29udGV4dC0+ZXN0aW1hdGUpCisJCQkJ eworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29sCQl0eXBCeVZhbDsKKwkJCQkJRGF0dW0J CXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCQlnZXRfdHlwbGVuYnl2YWwocGFyYW0t PnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9 IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2socGFyYW0tPnBhcmFtdmFyaWQsCisJCQkJ CQkJCQkJCQkJCSAgICZpc251bGwsCisJCQkJCQkJCQkJCQkJCSAgIHBhcmFtLT5wYXJhbXR5cGUp OworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtlQ29uc3QocGFyYW0tPnBhcmFtdHlwZSwKKwkJ CQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2QsCisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFt Y29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5cExlbiwKKwkJCQkJCQkJCQkJICBwdmFsLAor CQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJCQkJICB0eXBCeVZhbCk7CisJCQkJfQogCiAJ CQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUsIHNvIGp1c3QgY29weSB0aGUgUGFyYW0gKG5v IG5lZWQgdG8KQEAgLTQ3MDYsNyArNDczOCw4IEBAIGlubGluZV9mdW5jdGlvbihPaWQgZnVuY2lk LCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAogCQlxdWVyeXRyZWUtPmxpbWl0 T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAogCQlxdWVyeXRyZWUtPnNldE9w ZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSB8fAorCQlxdWVyeXRy ZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdvdG8gZmFpbDsKIAogCS8qIElmIHRoZSBmdW5j dGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpp bmRleCBlOTAxMjAzNDI0ZC4uZjUzNjUzYWEzNjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjUs OSArMjUsMTIgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL3N5 c2F0dHIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNs dWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgi CiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNz LmgiCkBAIC01MSw2ICs1NCw3IEBACiAjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9zdGF0dXMuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgorI2lu Y2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKQEAgLTgzLDYgKzg3LDggQEAgc3RhdGljIFF1ZXJ5ICp0 cmFuc2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJ IENyZWF0ZVRhYmxlQXNTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ2FsbFN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQlDYWxsU3RtdCAqc3RtdCk7CitzdGF0aWMg UXVlcnkgKnRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCSAgIExl dFN0bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtTG9ja2luZ0NsYXVzZShQYXJzZVN0 YXRlICpwc3RhdGUsIFF1ZXJ5ICpxcnksCiAJCQkJCQkJCSAgIExvY2tpbmdDbGF1c2UgKmxjLCBi b29sIHB1c2hlZERvd24pOwogI2lmZGVmIERFQlVHX05PREVfVEVTVFNfRU5BQkxFRApAQCAtMzMw LDYgKzMzNiw3IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJz ZVRyZWUpCiAJCQljYXNlIFRfVXBkYXRlU3RtdDoKIAkJCWNhc2UgVF9EZWxldGVTdG10OgogCQkJ Y2FzZSBUX01lcmdlU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10OgogCQkJCSh2b2lkKSB0ZXN0X3Jh d19leHByZXNzaW9uX2NvdmVyYWdlKHBhcnNlVHJlZSwgTlVMTCk7CiAJCQkJYnJlYWs7CiAJCQlk ZWZhdWx0OgpAQCAtNDA5LDYgKzQxNiwxMSBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJCQkJCQkJICAgKENhbGxTdG10ICopIHBhcnNlVHJl ZSk7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXJlc3VsdCA9IHRyYW5zZm9y bUxldFN0bXQocHN0YXRlLAorCQkJCQkJCQkJICAoTGV0U3RtdCAqKSBwYXJzZVRyZWUpOworCQkJ YnJlYWs7CisKIAkJZGVmYXVsdDoKIAogCQkJLyoKQEAgLTQ2MCw2ICs0NzIsNyBAQCBzdG10X3Jl cXVpcmVzX3BhcnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAkJY2FzZSBUX1NlbGVj dFN0bXQ6CiAJCWNhc2UgVF9SZXR1cm5TdG10OgogCQljYXNlIFRfUExBc3NpZ25TdG10OgorCQlj YXNlIFRfTGV0U3RtdDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsKIApAQCAtNTY4LDYg KzU4MSw3IEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWxldGVT dG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVu Y3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5 LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVz ID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0 aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTk5NCw2ICsxMDA4LDcgQEAgdHJhbnNmb3JtSW5zZXJ0 U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQgKnN0bXQpCiAKIAlxcnktPmhhc1Rh cmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc1N1YkxpbmtzID0g cHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0 ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0 YXRlLCBxcnkpOwogCkBAIC0xNDU5LDYgKzE0NzQsNyBAQCB0cmFuc2Zvcm1TZWxlY3RTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNz ID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0 ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOwor CXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJZm9yZWFjaChsLCBzdG10LT5sb2NraW5nQ2xhdXNlKQogCXsKQEAgLTE2ODUsMTIgKzE3 MDEsMjM1IEBAIHRyYW5zZm9ybVZhbHVlc0NsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVj dFN0bXQgKnN0bXQpCiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3RhdGUtPnBfam9p bmxpc3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5r czsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIAogCXJldHVy biBxcnk7CiB9CiAKKy8qCisgKiB0cmFuc2Zvcm1MZXRTdG10IC0KKyAqCSAgdHJhbnNmb3JtIGFu IExldCBTdGF0ZW1lbnQKKyAqLworc3RhdGljIFF1ZXJ5ICoKK3RyYW5zZm9ybUxldFN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10KQoreworCVF1ZXJ5CSAgICpxdWVyeTsKKwlR dWVyeQkgICAqcmVzdWx0OworCUxpc3QJICAgKmV4cHJMaXN0ID0gTklMOworCUxpc3QJICAgKmV4 cHJMaXN0Q29lciA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0Q2VsbCAgICppbmRpcmVj dGlvbl9oZWFkID0gTlVMTDsKKwlRdWVyeQkgICAqc2VsZWN0UXVlcnk7CisJT2lkCQkJdmFyaWQ7 CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91bmlxdWU7CisJYm9vbAkJ aXNfcm93dHlwZTsKKwlPaWQJCQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCWNvbGxp ZDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJ CQlpbmRpcmVjdGlvbl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJl IGFueSBvdXRlciBXSVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVu YW1lc3BhY2UgPT0gTklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQp OworCisJLyogbG9ja3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJ dmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBm YWxzZSk7CisJaWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wi IG9mIExFVCBjb21tYW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5h bWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkp OworCisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFy aWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1l cykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsK KworCS8qCisJICogQ2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGlu ZGlyZWN0aW9uIGluIGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBz dG9yZSBwb2ludGVyIG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJl Y3Rpb25fc3RhcnQgPSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJ aWYgKGxpc3RfbGVuZ3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5k aXJlY3Rpb25faGVhZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9z dGFydCk7CisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQs ICZ0eXBpZCwgJnR5cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0 eXBlKHR5cGlkKTsKKworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJy bXNnKCJ0eXBlIFwiJXNcIiBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMg bm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJ CQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJp ZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwg QUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tf ZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIE5hbWVMaXN0VG9TdHJpbmcobmFtZXMp KTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfTEVUX1RBUkdFVDsKKworCS8q IHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lvbiBvZiAidW5rbm93biIgdG8gdGV4dCAqLwor CXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0gZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9IHRy YW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5xdWVyeSk7CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91 bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAqLworCUFzc2VydChJc0Eoc2VsZWN0UXVlcnksIFF1 ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKgor CSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Npb24gbGlzdCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMg YWxsIHRoZSBub24tcmVzanVuaworCSAqIGNvbHVtbnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICov CisJZXhwckxpc3QgPSBOSUw7CisJZm9yZWFjaChsYywgc2VsZWN0UXVlcnktPnRhcmdldExpc3Qp CisJeworCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisK KwkJaWYgKHRsZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVu ZChleHByTGlzdCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVt biByZXN1bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2df cGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJ CQkgICAiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJ CSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlz dCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0 aW9uKChOb2RlICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZv cmVhY2gobGMsIGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJz dChsYyk7CisJCUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJUGFyYW0JICAgKnBhcmFtOworCQlP aWQJCQlleHBydHlwaWQ7CisKKwkJLyogbm93IHdlIGNhbiByZWFkIHRoZSB0eXBlIG9mIHRoZSBl eHByZXNzaW9uICovCisJCWV4cHJ0eXBpZCA9IGV4cHJUeXBlKChOb2RlICopIGV4cHIpOworCisJ CXBhcmFtID0gbWFrZU5vZGUoUGFyYW0pOworCQlwYXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFS SUFCTEU7CisJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCXBhcmFtLT5wYXJhbXR5cGUg PSB0eXBpZDsKKwkJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCisJCWlmIChpbmRpcmVj dGlvbl9oZWFkKQorCQl7CisJCQlib29sCQl0YXJnZXRJc0FycmF5OworCQkJY2hhcgkgICAqdGFy Z2V0TmFtZTsKKworCQkJdGFyZ2V0TmFtZSA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpOworCQkJdGFyZ2V0SXNBcnJheSA9IE9pZElzVmFsaWQoZ2V0X2VsZW1lbnRfdHlwZSh0eXBp ZCkpOworCisJCQlwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwkJCWNv ZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJdHJhbnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9u KHBzdGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgcGFyYW0sCisJCQkJCQkJCQkJCSAgIHRh cmdldE5hbWUsCisJCQkJCQkJCQkJCSAgIHRhcmdldElzQXJyYXksCisJCQkJCQkJCQkJCSAgIHR5 cGlkLAorCQkJCQkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJCQkJCSAgIEludmFsaWRPaWQsCisJ CQkJCQkJCQkJCSAgIHN0bXQtPnRhcmdldCwKKwkJCQkJCQkJCQkJICAgaW5kaXJlY3Rpb25faGVh ZCwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCQkJICAgQ09FUkNJT05f QVNTSUdOTUVOVCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+bG9jYXRpb24pOworCQl9CisJCWVsc2UK KwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJY29lcmNlX3RvX3RhcmdldF90eXBlKHBz dGF0ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCSAgZXhwcnR5cGlkLAor CQkJCQkJCQkJICB0eXBpZCwgdHlwbW9kLAorCQkJCQkJCQkJICBDT0VSQ0lPTl9BU1NJR05NRU5U LAorCQkJCQkJCQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwKKwkJCQkJCQkJCSAgc3RtdC0+bG9j YXRpb24pOworCisJCWlmIChjb2VyY2VkX2V4cHIgPT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNn KCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSAlcywiCisJCQkJCQkJIiBidXQgZXhwcmVz c2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJCWZv cm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAorCQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVlZCB0 byByZXdyaXRlIG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uIiksCisJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUgKikgZXhwcikpKSk7CisKKwkJZXhwckxp c3RDb2VyID0gbGFwcGVuZChleHByTGlzdENvZXIsIGNvZXJjZWRfZXhwcik7CisJfQorCisJLyog Z2VuZXJhdGUgcXVlcnkncyB0YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBvZiBl eHByZXNzaW9ucyAqLworCXF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCXF1ZXJ5LT5jb21tYW5k VHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdENvZXIpCisJeworCQlF eHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJVGFyZ2V0RW50cnkgKnRsZTsK KworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoZXhwciwKKwkJCQkJCQkgIGkgKyAxLAorCQkJCQkJ CSAgRmlndXJlQ29sbmFtZSgoTm9kZSAqKSBleHByKSwKKwkJCQkJCQkgIGZhbHNlKTsKKwkJcXVl cnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0bGUpOworCX0KKwor CS8qIGRvbmUgYnVpbGRpbmcgdGhlIHJhbmdlIHRhYmxlIGFuZCBqb2ludHJlZSAqLworCXF1ZXJ5 LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9t RXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOworCisJcXVlcnktPmhhc1RhcmdldFNSRnMg PSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKKwlxdWVyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUt PnBfaGFzU3ViTGlua3M7CisJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlczsKKworCS8qIHRoaXMgaXMgdG9wLWxldmVsIHF1ZXJ5ICovCisJ cXVlcnktPmNhblNldFRhZyA9IHRydWU7CisKKwkvKgorCSAqIFNhdmUgdGFyZ2V0IHNlc3Npb24g dmFyaWFibGUgSUQuICBUaGlzIHZhbHVlIGlzIHVzZWQgbXVsdGlwbGUgdGltZXM6IGJ5CisJICog dGhlIHF1ZXJ5IHJld3JpdGVyIChmb3IgZ2V0dGluZyByZWxhdGVkIGRlZmV4cHIpLCBieSBwbGFu bmVyIChmb3IKKwkgKiBhY3F1aXJpbmcgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRhcmdldCB2YXJp YWJsZSksIGFuZCBieSB0aGUgZXhlY3V0b3IKKwkgKiAod2UgbmVlZCB0byBrbm93IHRoZSB0YXJn ZXQgdmFyaWFibGUgSUQpLgorCSAqLworCXF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSA9IHZhcmlkOwor CisJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxdWVyeSk7CisKKwlzdG10LT5xdWVy eSA9IChOb2RlICopIHF1ZXJ5OworCisJLyogcmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRp bGl0eSBRdWVyeSAqLworCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlyZXN1bHQtPmNvbW1h bmRUeXBlID0gQ01EX1VUSUxJVFk7CisJcmVzdWx0LT51dGlsaXR5U3RtdCA9IChOb2RlICopIHN0 bXQ7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogdHJhbnNmb3JtU2V0T3BlcmF0aW9u U3RtdCAtCiAgKgkgIHRyYW5zZm9ybXMgYSBzZXQtb3BlcmF0aW9ucyB0cmVlCkBAIC0xOTM2LDYg KzIxNzUsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg U2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dp bmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZz OwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZh cmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBs b2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0MTAsNiArMjY1MCw3IEBAIHRyYW5zZm9ybVJldHVyblN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93 RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0g cHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0Fn Z3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJp YWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI0 NzcsNiArMjcxOCw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBV cGRhdGVTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rh cmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlx cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsK IAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjY2NCw5ICsy OTA2LDE1IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNz aWduU3RtdCAqc3RtdCkKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgdGFyZ2V0IHJlZmVyZW5jZS4g IFR5cGljYWxseSB3ZSB3aWxsIGdldCBiYWNrIGEgUGFyYW0KIAkgKiBub2RlLCBidXQgdGhlcmUn cyBubyByZWFzb24gdG8gYmUgdG9vIHBpY2t5IGFib3V0IGl0cyB0eXBlLgorCSAqCisJICogU2Vz c2lvbiB2YXJpYWJsZXMgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHRhcmdldCBvZiBhIFBML3BnU1FM IGFzc2lnbgorCSAqIHN0YXRlbWVudC4gIFNvIHdlIHNob3VsZCB1c2UgYSBkZWRpY2F0ZWQgZXhw cmVzc2lvbiBraW5kIGFuZCBkaXNhbGxvdworCSAqIHNlc3Npb24gdmFyaWFibGVzIHRoZXJlLiAg VGhlIGRlZGljYXRlZCBjb250ZXh0IGFsbG93cyB0byBlbGltaW5hdGUKKwkgKiB1bmRlc2lyYWJs ZSB3YXJuaW5ncyBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgYSB0YXJnZXQgUEwvcGdTUUwgdmFy aWFibGUKKwkgKiBzaGFkb3dpbmcgYSBzZXNzaW9uIHZhcmlhYmxlLgogCSAqLwogCXRhcmdldCA9 IHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBjcmVmLAotCQkJCQkJICAgRVhQUl9LSU5E X1VQREFURV9UQVJHRVQpOworCQkJCQkJICAgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQpOwogCXRh cmdldHR5cGUgPSBleHByVHlwZSh0YXJnZXQpOwogCXRhcmdldHR5cG1vZCA9IGV4cHJUeXBtb2Qo dGFyZ2V0KTsKIAl0YXJnZXRjb2xsYXRpb24gPSBleHByQ29sbGF0aW9uKHRhcmdldCk7CkBAIC0y NzA4LDYgKzI5NTYsMTAgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCSAqLwogCXR5cGVfaWQgPSBleHByVHlwZSgoTm9kZSAq KSB0bGUtPmV4cHIpOwogCisJLyoKKwkgKiBGb3IgaW5kaXJlY3Rpb24gcHJvY2Vzc2luZyBhbmQg YWRkaXRpb25hbCBjYXN0cyB3ZSBjYW4gdXNlIGV4cHJfa2luZAorCSAqIEVYUFJfS0lORF9VUERB VEVfVEFSR0VULgorCSAqLwogCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfVVBEQVRF X1RBUkdFVDsKIAogCWlmIChpbmRpcmVjdGlvbikKQEAgLTI4NTAsNiArMzEwMiw4IEBAIHRyYW5z Zm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkK IAkJCQkJCQkgICAoTG9ja2luZ0NsYXVzZSAqKSBsZmlyc3QobCksIGZhbHNlKTsKIAl9CiAKKwlx cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsK KwogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIAogCS8qIHRoaXMgbXVz dCBiZSBkb25lIGFmdGVyIGNvbGxhdGlvbnMsIGZvciByZWxpYWJsZSBjb21wYXJpc29uIG9mIGV4 cHJzICovCkBAIC0zMTIzLDYgKzMzNzcsMTQgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ ZnVuY2NhbGwtPmxvY2F0aW9uKTsKIAorCS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0 YXRlbWVudCBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KKwkgKiBleGVjdXRv ciBjYWxsLiAgVGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3 aWxsIGJlCisJICogZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXMpCisJCWVsb2coRVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1 c2VkIGFzIGFuIGFyZ3VtZW50Iik7CisKIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwg bm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDUxYjkyNmViZGMwLi5iZTFlNzBlM2ViZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0zMDYsNyArMzA2 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJv cFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3JhbnRTdG10IEdyYW50 Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IEluc2VydFN0bXQKLQkJ TGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWlu YWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10IExvYWRTdG10IExv Y2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3Rt dAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVpbmRleFN0bXQgUmVt b3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBS ZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVs ZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC00NTYsNiArNDU2LDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAkJCQlUcmlnZ2VyVHJhbnNpdGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5n CiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0CiAJCQkJ ZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJCQlsZXRfdGFyZ2V0CiAKICV0eXBlIDxu b2RlPglvcHRfcm91dGluZV9ib2R5CiAldHlwZSA8Z3JvdXBjbGF1c2U+IGdyb3VwX2NsYXVzZQpA QCAtNzQ2LDcgKzc0Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJS0VFUCBLRVkgS0VZ UwogCiAJTEFCRUwgTEFOR1VBR0UgTEFSR0VfUCBMQVNUX1AgTEFURVJBTF9QCi0JTEVBRElORyBM RUFLUFJPT0YgTEVBU1QgTEVGVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCisJ TEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4g TE9BRCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFNUCBMT0NBVElPTiBMT0NLX1AgTE9D S0VEIExPR0dFRAogCiAJTUFQUElORyBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhWQUxV RSBNRVJHRSBNRVJHRV9BQ1RJT04gTUVUSE9ECkBAIC0xMDk3LDYgKzEwOTgsNyBAQCBzdG10Ogog CQkJfCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdAogCQkJfCBJbmRleFN0bXQKIAkJCXwgSW5zZXJ0 U3RtdAorCQkJfCBMZXRTdG10CiAJCQl8IExpc3RlblN0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdT dG10CiAJCQl8IExvYWRTdG10CkBAIC0xMjY5OCw2ICsxMjcwMCw0NyBAQCBvcHRfaG9sZDogLyog RU1QVFkgKi8JCQkJCQl7ICQkID0gMDsgfQogCQkJfCBXSVRIT1VUIEhPTEQJCQkJCXsgJCQgPSAw OyB9CiAJCTsKIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZOgorICoJCQkJ TEVUIFNUQVRFTUVOVAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0xldFN0bXQ6CUxFVCBs ZXRfdGFyZ2V0ICc9JyBhX2V4cHIKKwkJCQl7CisJCQkJCUxldFN0bXQJICAgKm4gPSBtYWtlTm9k ZShMZXRTdG10KTsKKwkJCQkJU2VsZWN0U3RtdCAqc2VsZWN0OworCQkJCQlSZXNUYXJnZXQgICpy ZXM7CisKKwkJCQkJbi0+dGFyZ2V0ID0gJDI7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2Vs ZWN0U3RtdCk7CisJCQkJCXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3Jl YXRlIHRhcmdldCBsaXN0IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBO VUxMOworCQkJCQlyZXMtPmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2Rl ICopICQ0OworCQkJCQlyZXMtPmxvY2F0aW9uID0gQDQ7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRM aXN0ID0gbGlzdF9tYWtlMShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsK KworCQkJCQluLT5sb2NhdGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQk7CisKK2xldF90YXJnZXQ6CisJCQlDb2xJZCBvcHRfaW5kaXJlY3Rpb24KKwkJCQl7CisJCQkJ CSQkID0gbGlzdF9tYWtlMShtYWtlU3RyaW5nKCQxKSk7CisJCQkJCWlmICgkMikKKwkJCQkJCSAg JCQgPSBsaXN0X2NvbmNhdCgkJCwKKwkJCQkJCQkJCQkgICBjaGVja19pbmRpcmVjdGlvbigkMiwg eXlzY2FubmVyKSk7CisJCQkJfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAq CQlRVUVSWToKQEAgLTE3NzI5LDYgKzE3NzcyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJ fCBMQVJHRV9QCiAJCQl8IExBU1RfUAogCQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExF VkVMCiAJCQl8IExJU1RFTgogCQkJfCBMT0FECkBAIC0xODMzOSw2ICsxODM4Myw3IEBAIGJhcmVf bGFiZWxfa2V5d29yZDoKIAkJCXwgTEVBS1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJ CXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMKaW5kZXggYmVlN2Q4MzQ2YTMuLmI0OTRjODg1ZTlmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Fn Zy5jCkBAIC01NzcsNiArNTc3LDExIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJZXJya2luZCA9IHRydWU7CiAJCQli cmVhazsKIAorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lO RF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKKwogCQkJLyoKIAkJ CSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0 IHRoZQogCQkJICogY29tcGlsZXIgd2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4cHJL aW5kIHdpdGhvdXQKQEAgLTk2Nyw2ICs5NzIsMTAgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwo UGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9L SU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJr aW5kID0gdHJ1ZTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9u YWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYwppbmRleCA1NmU0MTNkYTlmNS4uNzYzYjdiNzc5NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBl LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9t YWtlZnVuY3MuaCIKQEAgLTM0LDEyICszNSwxNCBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9y ZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQuaCIKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0 aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvanNvbmIuaCIKICNpbmNsdWRlICJ1dGls cy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJ1 dGlscy90eXBjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCiAvKiBHVUMgcGFyYW1l dGVycyAqLwpAQCAtMTA4LDYgKzExMSw5IEBAIHN0YXRpYyBFeHByICptYWtlX2Rpc3RpbmN0X29w KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3BuYW1lLAogCQkJCQkJCSAgTm9kZSAqbHRyZWUs IE5vZGUgKnJ0cmVlLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3Rf ZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFfRXhwciAqZGlz dGluY3RhLCBOb2RlICphcmcpOworc3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBp bnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBpbnQg bG9jYXRpb24pOwogCiAKIC8qCkBAIC01MDEsNiArNTA3LDg5IEBAIHRyYW5zZm9ybUluZGlyZWN0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCXJldHVybiByZXN1 bHQ7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24ga2lu ZCBpcyB2YWxpZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMuCisgKiBTZXNzaW9uIHZhcmlhYmxlcyBj YW4gYmUgdXNlZCBldmVyeXdoZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMgY2FuIGJlCisg KiB1c2VkLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGluIERETCBjb21tYW5k cyBvciBpbiBjb25zdHJhaW50cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNhbiBiZSBwYXJzZWQg YXMgYSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2luZHMKKyAqIHdoZXJl IHNlc3Npb24gdmFyaWFibGVzIGFyZSBhbGxvd2VkLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSB1c2Fn ZSBvZiB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgc2Vjb25kIHVzYWdlIG9mIHRoaXMg ZnVuY3Rpb24gaXMgdG8gZGVjaWRlIHdoZXRoZXIgYSAiY29sdW1uIGRvZXMgbm90CisgKiBleGlz dCIgb3IgYSAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBlcnJvciBtZXNzYWdl IHNob3VsZCBiZQorICogcHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hl cmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlCisgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmly c3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgorICovCitzdGF0aWMgYm9vbAorZXhwcl9raW5kX2Fs bG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQoreworCWJv b2wJCXJlc3VsdCA9IGZhbHNlOworCisJc3dpdGNoIChwX2V4cHJfa2luZCkKKwl7CisJCWNhc2Ug RVhQUl9LSU5EX05PTkU6CisJCQlBc3NlcnQoZmFsc2UpOwkJLyogY2FuJ3QgaGFwcGVuICovCisJ CQlyZXR1cm4gZmFsc2U7CisKKwkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQlj YXNlIEVYUFJfS0lORF9PVEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBF WFBSX0tJTkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046 CisJCWNhc2UgRVhQUl9LSU5EX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNh c2UgRVhQUl9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoK KwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1df RlJBTUVfUkFOR0U6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNl IEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1Rf VEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lO RF9VUERBVEVfU09VUkNFOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNl IEVYUFJfS0lORF9NRVJHRV9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6 CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgorCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToK KwkJY2FzZSBFWFBSX0tJTkRfRElTVElOQ1RfT046CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgor CQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJ Y2FzZSBFWFBSX0tJTkRfVkFMVUVTOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgor CQljYXNlIEVYUFJfS0lORF9BTFRFUl9DT0xfVFJBTlNGT1JNOgorCQljYXNlIEVYUFJfS0lORF9F WEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfUE9MSUNZOgorCQljYXNlIEVYUFJf S0lORF9DQUxMX0FSR1VNRU5UOgorCQljYXNlIEVYUFJfS0lORF9DT1BZX1dIRVJFOgorCQljYXNl IEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJ CS8qIHNlc3Npb24gdmFyaWFibGVzIG5vdCBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5EX0NI RUNLX0NPTlNUUkFJTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBF WFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFV TFQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5E X0lOREVYX1BSRURJQ0FURToKKwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoKKwkJ Y2FzZSBFWFBSX0tJTkRfVFJJR0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05f Qk9VTkQ6CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNlIEVY UFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgor CQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFS R0VUOgorCQkJcmVzdWx0ID0gZmFsc2U7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0 OworfQorCiAvKgogICogVHJhbnNmb3JtIGEgQ29sdW1uUmVmLgogICoKQEAgLTU3Nyw2ICs2NjYs OCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNy ZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVS QVRFRF9DT0xVTU46CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9L SU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBv a2F5ICovCiAJCQlicmVhazsKIApAQCAtODQ5LDggKzk0MCw2MSBAQCB0cmFuc2Zvcm1Db2x1bW5S ZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJfQogCiAJLyoKLQkgKiBU aHJvdyBlcnJvciBpZiBubyB0cmFuc2xhdGlvbiBmb3VuZC4KKwkgKiBUaGVyZSBhcmUgY29udGV4 dHMgd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkLiAgV2UgZG9uJ3QKKwkg KiBuZWVkIHRvIGlkZW50aWZ5IHNlc3Npb24gdmFyaWFibGVzIGluIHN1Y2ggYSBjb250ZXh0LCBi dXQgaWRlbnRpZnlpbmcKKwkgKiB0aGVtIGFsbG93cyB1cyB0byByYWlzZSBtZWFuaW5nZnVsIGVy cm9yIG1lc3NhZ2VzIGxpa2UgInlvdSBjYW5ub3QgdXNlCisJICogc2Vzc2lvbiB2YXJpYWJsZXMg aGVyZSIuCiAJICovCisJaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0 YXRlLT5wX2V4cHJfa2luZCkpCisJeworCQlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJCWNo YXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwkJYm9vbAkJbm90X3VuaXF1ZTsKKworCQkvKiAtLS0t LQorCQkgKiBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGlu ZSB2YXJpYWJsZXMgb3IKKwkJICogcm91dGluZSBhcmd1bWVudHMuICBXZSBjZXJ0YWlubHkgZG9u J3Qgd2FudCB0byB1c2UgYSBzZXNzaW9uIHZhcmlhYmxlCisJCSAqIHdoZW4gaXQgaXMgZXhhY3Rs eSBzaGFkb3dlZCwgYnV0IGEgUlRFIGxpa2UgdGhpcyBpcyBjb25jZWl2YWJsZToKKwkJICoKKwkJ ICogQ1JFQVRFIFRZUEUgdCBBUyAoYyBpbnQpOworCQkgKiBDUkVBVEUgVkFSSUFCTEUgZm9vIEFT IHQ7CisJCSAqIENSRUFURSBUQUJMRSBmb28oYSBpbnQsIGIgaW50KTsKKwkJICoKKwkJICogU0VM RUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CisJCSAqCisJCSAqIEhvd2V2ZXIsIHRo YXQgaXMgdmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRv CisJCSAqIGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNo YWRvd2VkLgorCQkgKiAtLS0tLQorCQkgKi8KKwkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBj cmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQl7CisJCQkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFy ZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJCXZhcmlkID0gSWRlbnRpZnlWYXJp YWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCQkJ aWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJeworCQkJCU9pZAkJCXR5cGlkOworCQkJCWludDMy CQl0eXBtb2Q7CisJCQkJT2lkCQkJY29sbGlkOworCisJCQkJaWYgKG5vdF91bmlxdWUpCisJCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1F VEVSKSwKKwkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBcIiVzXCIg aXMgYW1iaWd1b3VzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSks CisJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwor CisJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlw aWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJCQkJCSZjb2xsaWQpOworCisJCQkJbm9kZSA9IG1ha2VQ YXJhbVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5 cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJ CX0KKwkJfQorCX0KKworCS8qIHRocm93IGFuIGVycm9yIGlmIG5vIHRyYW5zbGF0aW9uIHdhcyBm b3VuZCAqLwogCWlmIChub2RlID09IE5VTEwpCiAJewogCQlzd2l0Y2ggKGNyZXJyKQpAQCAtODgy LDYgKzEwMjYsNzIgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29s dW1uUmVmICpjcmVmKQogCXJldHVybiBub2RlOwogfQogCisvKgorICogR2VuZXJhdGUgcGFyYW0g dmFyaWFibGUgZm9yIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBO b2RlICoKK21ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJ CQkgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJ CSBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKQoreworCVBhcmFtCSAgICpwYXJhbTsKKwor CXBhcmFtID0gbWFrZU5vZGUoUGFyYW0pOworCisJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZB UklBQkxFOworCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJcGFyYW0tPnBhcmFtdHlwZSA9 IHR5cGlkOworCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKKwlwYXJhbS0+cGFyYW1jb2xs aWQgPSBjb2xsaWQ7CisKKwlwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisK KwlpZiAoYXR0cm5hbWUgIT0gTlVMTCkKKwl7CisJCVR1cGxlRGVzYwl0dXBkZXNjOworCQlpbnQJ CQlpOworCisJCXR1cGRlc2MgPSBsb29rdXBfcm93dHlwZV90dXBkZXNjX25vZXJyb3IodHlwaWQs IHR5cG1vZCwgdHJ1ZSk7CisJCWlmICghdHVwZGVzYykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJ2YXJp YWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSBcIiVzXCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0 ZSB0eXBlIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJp ZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCisJCWZvciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5u YXR0czsgaSsrKQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRy KHR1cGRlc2MsIGkpOworCisJCQlpZiAoc3RyY21wKGF0dHJuYW1lLCBOYW1lU3RyKGF0dC0+YXR0 bmFtZSkpID09IDAgJiYKKwkJCQkhYXR0LT5hdHRpc2Ryb3BwZWQpCisJCQl7CisJCQkJLyogc3Vj Y2Vzcywgc28gZ2VuZXJhdGUgYSBGaWVsZFNlbGVjdCBleHByZXNzaW9uICovCisJCQkJRmllbGRT ZWxlY3QgKmZzZWxlY3QgPSBtYWtlTm9kZShGaWVsZFNlbGVjdCk7CisKKwkJCQlmc2VsZWN0LT5h cmcgPSAoRXhwciAqKSBwYXJhbTsKKwkJCQlmc2VsZWN0LT5maWVsZG51bSA9IGkgKyAxOworCQkJ CWZzZWxlY3QtPnJlc3VsdHR5cGUgPSBhdHQtPmF0dHR5cGlkOworCQkJCWZzZWxlY3QtPnJlc3Vs dHR5cG1vZCA9IGF0dC0+YXR0dHlwbW9kOworCQkJCS8qIHNhdmUgYXR0cmlidXRlJ3MgY29sbGF0 aW9uIGZvciBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJCQlmc2VsZWN0LT5yZXN1bHRjb2xsaWQgPSBh dHQtPmF0dGNvbGxhdGlvbjsKKworCQkJCVJlbGVhc2VUdXBsZURlc2ModHVwZGVzYyk7CisJCQkJ cmV0dXJuIChOb2RlICopIGZzZWxlY3Q7CisJCQl9CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY291 bGQgbm90IGlkZW50aWZ5IGNvbHVtbiBcIiVzXCIgaW4gdmFyaWFibGUiLCBhdHRybmFtZSksCisJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCX0KKworCXJldHVy biAoTm9kZSAqKSBwYXJhbTsKK30KKwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtUGFyYW1SZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIHsKQEAgLTE4MTcsNiArMjAyNyw3 IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5r KQogCQljYXNlIEVYUFJfS0lORF9WQUxVRVM6CiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5H TEU6CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9U QVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tf Q09OU1RSQUlOVDoKQEAgLTE4NjAsNiArMjA3MSw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFU RURfQ09MVU1OOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2Vu ZXJhdGlvbiBleHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdO X1RBUkdFVDoKKwkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgYXMgdGFyZ2V0IG9mIGFz c2lnbiBzdGF0ZW1lbnQiKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50 ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMTk5LDYg KzM0MTMsMTAgQEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJ CXJldHVybiAiR0VORVJBVEVEIEFTIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJ CXJldHVybiAiQ1lDTEUiOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmV0 dXJuICJBU1NJR04iOworCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmV0dXJuICJM RVQiOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBj YXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA5YjIzMzQ0 YTNiMS4uOWFhNGY2MDc2OGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjY1Niw2ICsy NjU2LDggQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVu Y3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9ucyIp OwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9L SU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQllcnJr aW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL2Rl c3QuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCmluZGV4IDk2ZjgwYjMwNDYzLi5kYWM3OGJh NWNjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKKysrIGIvc3JjL2JhY2tl bmQvdGNvcC9kZXN0LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9mdW5j dGlvbnMuaCIKICNpbmNsdWRlICJleGVjdXRvci90cXVldWUuaCIKICNpbmNsdWRlICJleGVjdXRv ci90c3RvcmVSZWNlaXZlci5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmgiCiAjaW5jbHVkZSAibGlicHEvbGlicHEuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5o IgogCkBAIC0xNTUsNiArMTU2LDkgQEAgQ3JlYXRlRGVzdFJlY2VpdmVyKENvbW1hbmREZXN0IGRl c3QpCiAKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKIAkJCXJldHVybiBDcmVhdGVFeHBs YWluU2VyaWFsaXplRGVzdFJlY2VpdmVyKE5VTEwpOworCisJCWNhc2UgRGVzdFZhcmlhYmxlOgor CQkJcmV0dXJuIENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKEludmFsaWRPaWQpOwogCX0KIAog CS8qIHNob3VsZCBuZXZlciBnZXQgaGVyZSAqLwpAQCAtMTkxLDYgKzE5NSw3IEBAIEVuZENvbW1h bmQoY29uc3QgUXVlcnlDb21wbGV0aW9uICpxYywgQ29tbWFuZERlc3QgZGVzdCwgYm9vbCBmb3Jj ZV91bmRlY29yYXRlZF9vCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVw bGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFi bGU6CiAJCQlicmVhazsKIAl9CiB9CkBAIC0yMzcsNiArMjQyLDcgQEAgTnVsbENvbW1hbmQoQ29t bWFuZERlc3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBs ZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJs ZToKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTI4MSw2ICsyODcsNyBAQCBSZWFkeUZvclF1ZXJ5KENv bW1hbmREZXN0IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVw bGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFi bGU6CiAJCQlicmVhazsKIAl9CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVy eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYwppbmRleCBhMWY4ZDAzZGIxZS4uZWYzMWIx ODgxYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdGNvcC9wcXVlcnkuYwpAQCAtODYsNiArODYsOSBAQCBDcmVhdGVRdWVyeURlc2MoUGxh bm5lZFN0bXQgKnBsYW5uZWRzdG10LAogCXFkLT5xdWVyeUVudiA9IHF1ZXJ5RW52OwogCXFkLT5p bnN0cnVtZW50X29wdGlvbnMgPSBpbnN0cnVtZW50X29wdGlvbnM7CS8qIGluc3RydW1lbnRhdGlv biB3YW50ZWQ/ICovCiAKKwlxZC0+bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwlxZC0+c2Vz c2lvbl92YXJpYWJsZXMgPSBOVUxMOworCiAJLyogbnVsbCB0aGVzZSBmaWVsZHMgdW50aWwgc2V0 IGJ5IEV4ZWN1dG9yU3RhcnQgKi8KIAlxZC0+dHVwRGVzYyA9IE5VTEw7CiAJcWQtPmVzdGF0ZSA9 IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDQ1YWYzODc3ZWE5Li5iZGFjNjkxYWYxMyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRz LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXF1ZW5jZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFi bGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgpAQCAtMjM1LDYgKzIz Niw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkK IAogCQljYXNlIFRfQ2FsbFN0bXQ6CiAJCWNhc2UgVF9Eb1N0bXQ6CisJCWNhc2UgVF9MZXRTdG10 OgogCQkJewogCQkJCS8qCiAJCQkJICogQ29tbWFuZHMgaW5zaWRlIHRoZSBETyBibG9jayBvciB0 aGUgY2FsbGVkIHByb2NlZHVyZSBtaWdodApAQCAtMTA2NCw2ICsxMDY2LDExIEBAIHN0YW5kYXJk X1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJCQlicmVhazsKIAkJCX0KIAor CQljYXNlIFRfTGV0U3RtdDoKKwkJCUV4ZWN1dGVMZXRTdG10KHBzdGF0ZSwgKExldFN0bXQgKikg cGFyc2V0cmVlLCBwYXJhbXMsCisJCQkJCQkgICBxdWVyeUVudiwgcWMpOworCQkJYnJlYWs7CisK IAkJZGVmYXVsdDoKIAkJCS8qIEFsbCBvdGhlciBzdGF0ZW1lbnQgdHlwZXMgaGF2ZSBldmVudCB0 cmlnZ2VyIHN1cHBvcnQgKi8KIAkJCVByb2Nlc3NVdGlsaXR5U2xvdyhwc3RhdGUsIHBzdG10LCBx dWVyeVN0cmluZywKQEAgLTIyMDMsNiArMjIxMCwxMCBAQCBVdGlsaXR5Q29udGFpbnNRdWVyeShO b2RlICpwYXJzZXRyZWUpCiAJCQkJcmV0dXJuIFV0aWxpdHlDb250YWluc1F1ZXJ5KHFyeS0+dXRp bGl0eVN0bXQpOwogCQkJcmV0dXJuIHFyeTsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXFyeSA9 IGNhc3ROb2RlKFF1ZXJ5LCAoKExldFN0bXQgKikgcGFyc2V0cmVlKS0+cXVlcnkpOworCQkJcmV0 dXJuIHFyeTsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMjQwMSw2ICsy NDEyLDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJdGFnID0gQ01E VEFHX1NFTEVDVDsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJdGFnID0gQ01E VEFHX0xFVDsKKwkJCWJyZWFrOworCiAJCQkvKiB1dGlsaXR5IHN0YXRlbWVudHMgLS0tIHNhbWUg d2hldGhlciByYXcgb3IgY29va2VkICovCiAJCWNhc2UgVF9UcmFuc2FjdGlvblN0bXQ6CiAJCQl7 CkBAIC0zMjg2LDYgKzMzMDEsNyBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVl KQogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6 CiAJCQlsZXYgPSBMT0dTVE1UX0FMTDsKIAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKaW5kZXggMDBlZGExYjM0YzAuLjg3ZWM1N2E3MjFjIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdGF0aXN0 aWNfZXh0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIK ICNpbmNsdWRlICJjb21tb24va2V5d29yZHMuaCIKQEAgLTUxOSw2ICs1MjAsNyBAQCBzdGF0aWMg Y2hhciAqZ2VuZXJhdGVfZnVuY3Rpb25fbmFtZShPaWQgZnVuY2lkLCBpbnQgbmFyZ3MsCiBzdGF0 aWMgY2hhciAqZ2VuZXJhdGVfb3BlcmF0b3JfbmFtZShPaWQgb3BlcmlkLCBPaWQgYXJnMSwgT2lk IGFyZzIpOwogc3RhdGljIHZvaWQgYWRkX2Nhc3RfdG8oU3RyaW5nSW5mbyBidWYsIE9pZCB0eXBp ZCk7CiBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfcXVhbGlmaWVkX3R5cGVfbmFtZShPaWQgdHlwaWQp Oworc3RhdGljIGNoYXIgKmdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQp Owogc3RhdGljIHRleHQgKnN0cmluZ190b190ZXh0KGNoYXIgKnN0cik7CiBzdGF0aWMgY2hhciAq ZmxhdHRlbl9yZWxvcHRpb25zKE9pZCByZWxpZCk7CiBzdGF0aWMgdm9pZCBnZXRfcmVsb3B0aW9u cyhTdHJpbmdJbmZvIGJ1ZiwgRGF0dW0gcmVsb3B0aW9ucyk7CkBAIC04Mzc1LDYgKzgzNzcsMTQg QEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAqcGFyYW0sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkK IAkJcmV0dXJuOwogCX0KIAorCS8qIHRyYW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24gdmFy aWFibGUgbmFtZSAqLworCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQor CXsKKwkJYXBwZW5kU3RyaW5nSW5mbyhjb250ZXh0LT5idWYsICIlcyIsCisJCQkJCQkgZ2VuZXJh dGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCXJldHVybjsK Kwl9CisKIAkvKgogCSAqIEFsdGVybmF0aXZlbHksIG1heWJlIGl0J3MgYSBzdWJwbGFuIG91dHB1 dCwgd2hpY2ggd2UgcHJpbnQgYXMgYQogCSAqIHJlZmVyZW5jZSB0byB0aGUgc3VicGxhbi4gIChX ZSBjb3VsZCBkcmlsbCBkb3duIGludG8gdGhlIHN1YnBsYW4gYW5kCkBAIC0xMzE1NSw2ICsxMzE2 NSw0MiBAQCBnZW5lcmF0ZV9jb2xsYXRpb25fbmFtZShPaWQgY29sbGlkKQogCXJldHVybiByZXN1 bHQ7CiB9CiAKKy8qCisgKiBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlDb21w dXRlIHRoZSBuYW1lIHRvIGRpc3BsYXkgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQg YnkgT0lECisgKgorICogVGhlIHJlc3VsdCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5IHF1b3Rpbmcg YW5kIHNjaGVtYS1wcmVmaXhpbmcuCisgKi8KK3N0YXRpYyBjaGFyICoKK2dlbmVyYXRlX3Nlc3Np b25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3Bn X3ZhcmlhYmxlIHZhcmZvcm07CisJY2hhcgkgICAqdmFybmFtZTsKKwljaGFyCSAgICpuc3BuYW1l OworCWNoYXIJICAgKnJlc3VsdDsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9J RCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1 cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIs IHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7 CisKKwl2YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCWlmICghVmFyaWFi bGVJc1Zpc2libGUodmFyaWQpKQorCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3Rl bXAodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwllbHNlCisJCW5zcG5hbWUgPSBOVUxMOworCisJ cmVzdWx0ID0gcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwgdmFybmFtZSk7CisK KwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBH aXZlbiBhIEMgc3RyaW5nLCBwcm9kdWNlIGEgVEVYVCBkYXR1bS4KICAqCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3BsYW5jYWNoZS5jCmluZGV4IDVhZjFhMTY4ZWMyLi43ZTFlOWUyOGYxMiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTU4LDYgKzU4LDcgQEAKIAogI2luY2x1ZGUgImFj Y2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIK ICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAg LTE2Miw2ICsxNjMsNyBAQCBJbml0UGxhbkNhY2hlKHZvaWQpCiAJQ2FjaGVSZWdpc3RlclN5c2Nh Y2hlQ2FsbGJhY2soQU1PUE9QSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwog CUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05TRVJWRVJPSUQsIFBsYW5DYWNo ZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNr KEZPUkVJR05EQVRBV1JBUFBFUk9JRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7 CisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soVkFSSUFCTEVPSUQsIFBsYW5DYWNoZU9i amVjdENhbGxiYWNrLCAoRGF0dW0pIDApOwogfQogCiAvKgpAQCAtMTkwMywxOCArMTkwNSwzMyBA QCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiAKIAkv KgogCSAqIFJlY3Vyc2UgaW50byBzdWJsaW5rIHN1YnF1ZXJpZXMsIHRvby4gIEJ1dCB3ZSBhbHJl YWR5IGRpZCB0aGUgb25lcyBpbgotCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuCisJICogdGhl IHJ0YWJsZSBhbmQgY3RlTGlzdC4gIFdlIG5lZWQgdG8gZm9yY2UgYSByZWN1cnNpdmUgY2FsbCBm b3Igc2Vzc2lvbgorCSAqIHZhcmlhYmxlcyB0b28sIHRvIGZpbmQgYW5kIGxvY2sgdmFyaWFibGVz IHVzZWQgaW4gdGhlIHF1ZXJ5IChzZWUKKwkgKiBTY2FuUXVlcnlXYWxrZXIpLgogCSAqLwotCWlm IChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzKQorCWlmIChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzIHx8 CisJCXBhcnNldHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXF1ZXJ5X3RyZWVfd2Fs a2VyKHBhcnNldHJlZSwgU2NhblF1ZXJ5V2Fsa2VyLAogCQkJCQkJICAodm9pZCAqKSAmYWNxdWly ZSwKIAkJCQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVTKTsKIAl9CisKKwkvKiBwcm9jZXNz IHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKE9pZElzVmFsaWQocGFyc2V0cmVlLT5yZXN1bHRW YXJpYWJsZSkpCisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJp YWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJICAgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFi bGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCQkgMCwgQWNj ZXNzU2hhcmVMb2NrKTsKKwl9CiB9CiAKIC8qCi0gKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1 YnF1ZXJpZXMgZm9yIFNjYW5RdWVyeUZvckxvY2tzCisgKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5r IHN1YnF1ZXJpZXMgb3IgcmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcworICogZm9yIFNjYW5R dWVyeUZvckxvY2tzCiAgKi8KIHN0YXRpYyBib29sCiBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9k ZSwgYm9vbCAqYWNxdWlyZSkKQEAgLTE5MjksNiArMTk0NiwyMCBAQCBTY2FuUXVlcnlXYWxrZXIo Tm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKIAkJU2NhblF1ZXJ5Rm9yTG9ja3MoY2FzdE5vZGUo UXVlcnksIHN1Yi0+c3Vic2VsZWN0KSwgKmFjcXVpcmUpOwogCQkvKiBGYWxsIHRocm91Z2ggdG8g cHJvY2VzcyBsZWZ0aGFuZCBhcmdzIG9mIFN1YkxpbmsgKi8KIAl9CisJZWxzZSBpZiAoSXNBKG5v ZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYg KHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKGFjcXVpcmUpCisJ CQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcC0+cGFyYW12YXJpZCwK KwkJCQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCWVsc2UKKwkJCQlVbmxvY2tEYXRh YmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkg MCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCX0KIAogCS8qCiAJICogRG8gTk9UIHJlY3Vyc2Ug aW50byBRdWVyeSBub2RlcywgYmVjYXVzZSBTY2FuUXVlcnlGb3JMb2NrcyBhbHJlYWR5CkBAIC0y MDYwLDcgKzIwOTEsOSBAQCBQbGFuQ2FjaGVSZWxDYWxsYmFjayhEYXR1bSBhcmcsIE9pZCByZWxp ZCkKIAogLyoKICAqIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrCi0gKgkJU3lzY2FjaGUgaW52YWwg Y2FsbGJhY2sgZnVuY3Rpb24gZm9yIFBST0NPSUQgYW5kIFRZUEVPSUQgY2FjaGVzCisgKgkJU3lz Y2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFRZUEVPSUQsIFBST0NPSUQsIE5BTUVT UEFDRU9JRCwKKyAqCQlPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlHTlNFUlZFUk9JRCwgRk9SRUlH TkRBVEFXUkFQUEVST0lEIGFuZAorICoJCVZBUklBQkxFT0lEIGNhY2hlcy4KICAqCiAgKiBJbnZh bGlkYXRlIGFsbCBwbGFucyBtZW50aW9uaW5nIHRoZSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVk IGhhc2ggdmFsdWUsCiAgKiBvciBhbGwgcGxhbnMgbWVudGlvbmluZyBhbnkgbWVtYmVyIG9mIHRo aXMgY2FjaGUgaWYgaGFzaHZhbHVlID09IDAuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IGU0OGE4 NmJlNTRiLi5lYWFlMGM1YTkzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9m bWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTIwMjYsOSArMjAy NiwxMyBAQCBnZXRfY2FsbF9leHByX2FyZ19zdGFibGUoTm9kZSAqZXhwciwgaW50IGFyZ251bSkK IAkgKi8KIAlpZiAoSXNBKGFyZywgQ29uc3QpKQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAoSXNBKGFy ZywgUGFyYW0pICYmCi0JCSgoUGFyYW0gKikgYXJnKS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVS TikKLQkJcmV0dXJuIHRydWU7CisJaWYgKElzQShhcmcsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAg ICpwID0gKFBhcmFtICopIGFyZzsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVS TiB8fCBwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9 CiAKIAlyZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggYmFhZTU5NjUxMzMuLmRi MGU5Y2QzNjE4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xNzA5LDggKzE3MDksOCBAQCBwc3FsX2Nv bXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiQUJPUlQi LCAiQUxURVIiLCAiQU5BTFlaRSIsICJCRUdJTiIsICJDQUxMIiwgIkNIRUNLUE9JTlQiLCAiQ0xP U0UiLCAiQ0xVU1RFUiIsCiAJCSJDT01NRU5UIiwgIkNPTU1JVCIsICJDT1BZIiwgIkNSRUFURSIs ICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAogCQkiREVMRVRFIEZST00iLCAiRElTQ0FSRCIsICJE TyIsICJEUk9QIiwgIkVORCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCQkiRkVUQ0giLCAiR1JB TlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklOU0VSVCBJTlRPIiwgIkxJU1RFTiIsICJM T0FEIiwgIkxPQ0siLAotCQkiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJF IiwKKwkJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQg SU5UTyIsICJMRVQiLAorCQkiTElTVEVOIiwgIkxPQUQiLCAiTE9DSyIsICJNRVJHRSBJTlRPIiwg Ik1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAogCQkiUkVBU1NJR04iLCAiUkVGUkVTSCBNQVRF UklBTElaRUQgVklFVyIsICJSRUlOREVYIiwgIlJFTEVBU0UiLAogCQkiUkVTRVQiLCAiUkVWT0tF IiwgIlJPTExCQUNLIiwKIAkJIlNBVkVQT0lOVCIsICJTRUNVUklUWSBMQUJFTCIsICJTRUxFQ1Qi LCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApAQCAtNDI2OCw2ICs0MjY4LDE0IEBAIHBzcWxfY29t cGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAo VGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxVRVMi KSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCisvKiBMRVQgKi8KKwkvKiBJZiBwcmV2LiB3b3Jk IGlzIExFVCBzdWdnZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KKwllbHNlIGlmIChNYXRjaGVz KCJMRVQiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf dmFyaWFibGVzKTsKKwkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAqLworCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIj0i KTsKKwogLyogTE9DSyAqLwogCS8qIENvbXBsZXRlIExPQ0sgW1RBQkxFXSBbT05MWV0gd2l0aCBh IGxpc3Qgb2YgdGFibGVzICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiTE9DSyIpKQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKaW5kZXggMThlYTZhYzgzYTUuLmRlZjY5MWRhZmIzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKQEAgLTE3MSw3ICsxNzEsOSBAQCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIg KkdldFNlYXJjaFBhdGhNYXRjaGVyKE1lbW9yeUNvbnRleHQgY29udGV4dCk7CiBleHRlcm4gU2Vh cmNoUGF0aE1hdGNoZXIgKkNvcHlTZWFyY2hQYXRoTWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAq cGF0aCk7CiBleHRlcm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChT ZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiAKK2V4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0KExp c3QgKm5hbWVzKTsKIGV4dGVybiBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFt ZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJSWRl bnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpub3RfdW5p cXVlLCBib29sIG5vZXJyb3IpOwogCiBleHRlcm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3Qg KmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9v aWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaAppbmRleCAzODEwZTA0MGYyOC4uZGI1OTNjZDViZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKQEAgLTM1LDYgKzM1LDE0IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJp YWJsZVJlbGF0aW9uSWQpCiAJLyogT0lEIG9mIGVudHJ5IGluIHBnX3R5cGUgZm9yIHZhcmlhYmxl J3MgdHlwZSAqLwogCU9pZAkJCXZhcnR5cGUgQktJX0xPT0tVUChwZ190eXBlKTsKIAorCS8qCisJ ICogVXNlZCBmb3IgaWRlbnRpdHkgY2hlY2sgW29pZCwgY3JlYXRlX2xzbl0uCisJICoKKwkgKiBU aGlzIGNvbHVtbiBvZiB0aGUgOC1ieXRlIFhsb2dSZWNQdHIgdHlwZSBzaG91bGQgYmUgYXQgYW4g YWRkcmVzcyB0aGF0CisJICogaXMgZGl2aXNpYmxlIGJ5IDgsIGJ1dCBiZWZvcmUgYW55IGNvbHVt biBvZiB0eXBlIE5hbWVEYXRhLgorCSAqLworCVhMb2dSZWNQdHIJdmFyY3JlYXRlX2xzbjsKKwog CS8qIHZhcmlhYmxlIG5hbWUgKi8KIAlOYW1lRGF0YQl2YXJuYW1lOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmIzZjAzYzY1ODI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIHNlc3Npb252YXJpYWJsZS5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHNlc3Npb252 YXJpYWJsZS5jLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisgKgorICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTRVNTSU9OVkFSSUFCTEVfSAorI2RlZmluZSBTRVNT SU9OVkFSSUFCTEVfSAorCisjaW5jbHVkZSAibm9kZXMvcGFyYW1zLmgiCisjaW5jbHVkZSAibm9k ZXMvcGFyc2Vub2Rlcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVk ZSAidGNvcC9jbWR0YWcuaCIKKyNpbmNsdWRlICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCisK K2V4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBi b29sIGlzTnVsbCk7CitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlD aGVjayhPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CitleHRlcm4gRGF0dW0g R2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKTsK K2V4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwg Ym9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0ZWRfdHlwaWQpOworCitleHRlcm4gdm9pZCBFeGVjdXRl TGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8g cGFyYW1zLAorCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxl dGlvbiAqcWMpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4 ZWNkZXNjLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCmluZGV4IDBhNzI3NGUy NmM4Li5kMWIyZjU5ZTBjZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rl c2MuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCkBAIC00OCw2ICs0OCwx MCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeURlc2MKIAlFU3RhdGUJICAgKmVzdGF0ZTsJCQkvKiBl eGVjdXRvcidzIHF1ZXJ5LXdpZGUgc3RhdGUgKi8KIAlQbGFuU3RhdGUgICpwbGFuc3RhdGU7CQkv KiB0cmVlIG9mIHBlci1wbGFuLW5vZGUgc3RhdGUgKi8KIAorCS8qIHJlZmVyZW5jZSB0byBzZXNz aW9uIHZhcmlhYmxlcyBidWZmZXIgKi8KKwlpbnQJCQludW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJ U2Vzc2lvblZhcmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCiAJLyogVGhpcyBmaWVs ZCBpcyBzZXQgYnkgRXhlY3V0b3JSdW4gKi8KIAlib29sCQlhbHJlYWR5X2V4ZWN1dGVkOwkvKiB0 cnVlIGlmIHByZXZpb3VzbHkgZXhlY3V0ZWQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRi NDRkOGI5NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaApAQCAtMCwwICsxLDIyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBzdmFyaWFibGVSZWNlaXZlci5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHN2YXJpYWJsZVJlY2Vp dmVyLmMKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNy Yy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKKyAqCisgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworCisjaWZuZGVmIFNWQVJJQUJMRV9SRUNFSVZFUl9ICisjZGVmaW5lIFNWQVJJ QUJMRV9SRUNFSVZFUl9ICisKKyNpbmNsdWRlICJ0Y29wL2Rlc3QuaCIKKworZXh0ZXJuIERlc3RS ZWNlaXZlciAqQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKTsKKworI2VuZGlm CQkJCQkJCS8qIFNWQVJJQUJMRV9SRUNFSVZFUl9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4 IGFmN2Q4ZmQxZTcyLi5hYTNiY2EyNGJkZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv ZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTYxMSw2 ICs2MTEsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxl cykgKi8KIH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9u VmFyaWFibGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBT ZXNzaW9uVmFyaWFibGVWYWx1ZQoreworCU9pZAkJCXZhcmlkOworCU9pZAkJCXR5cGlkOworCWJv b2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Npb25WYXJpYWJsZVZhbHVlOworCiAv KiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZvcm1hdGlvbgogICoKQEAgLTY2Myw2 ICs2NzUsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJUGFyYW1MaXN0SW5mbyBlc19wYXJh bV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBwYXJhbXMgKi8KIAlQYXJhbUV4ZWNE YXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBvZiBpbnRlcm5hbCBwYXJhbXMgKi8K IAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJaW50CQkJZXNfbnVtX3Nlc3Npb25f dmFyaWFibGVzOwkJLyogbnVtYmVyIG9mIHVzZWQgdmFyaWFibGVzICovCisJU2Vzc2lvblZhcmlh YmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBhcnJheSBvZiBjb3BpZXMgb2YgdmFs dWVzICovCisKIAlRdWVyeUVudmlyb25tZW50ICplc19xdWVyeUVudjsJLyogcXVlcnkgZW52aXJv bm1lbnQgKi8KIAogCS8qIE90aGVyIHdvcmtpbmcgc3RhdGU6ICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggODQ3YjNlYWM2ZGMuLjZjYjQwYTVmMTcwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC0xNDIsNiArMTQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAkgKi8KIAlpbnQJCQly ZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKKwkvKiB0 YXJnZXQgdmFyaWFibGUgb2YgTEVUIHN0YXRlbWVudCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxl OworCiAJLyogaGFzIGFnZ3JlZ2F0ZXMgaW4gdGxpc3Qgb3IgaGF2aW5nUXVhbCAqLwogCWJvb2wJ CWhhc0FnZ3MgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGhhcyB3aW5k b3cgZnVuY3Rpb25zIGluIHRsaXN0ICovCkBAIC0xNjAsNiArMTYzLDggQEAgdHlwZWRlZiBzdHJ1 Y3QgUXVlcnkKIAlib29sCQloYXNGb3JVcGRhdGUgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9p Z25vcmUpOwogCS8qIHJld3JpdGVyIGhhcyBhcHBsaWVkIHNvbWUgUkxTIHBvbGljeSAqLwogCWJv b2wJCWhhc1Jvd1NlY3VyaXR5IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkv KiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlcyBw Z19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4gc3RhdGVt ZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwogCkBAIC0yMDgyLDYgKzIwODcsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJV2l0 aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCiB9IE1lcmdlU3RtdDsKIAor LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCUxldCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAoreworCU5vZGVUYWcJ CXR5cGU7CisJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLworCU5vZGUJ ICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJaW50CQkJbG9jYXRpb247Cit9 IExldFN0bXQ7CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlTZWxlY3QgU3RhdGVt ZW50CiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCA1NDBkMDIxNTkyZS4uMjE1YjY5YjNlYWYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0xNjMsNiArMTYzLDkgQEAgdHlwZWRlZiBzdHJ1Y3Qg UGxhbm5lckdsb2JhbAogCiAJLyogcGFydGl0aW9uIGRlc2NyaXB0b3JzICovCiAJUGFydGl0aW9u RGlyZWN0b3J5IHBhcnRpdGlvbl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdu b3JlKTsKKworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAg KnNlc3Npb25WYXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRj aGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTUwOCw2 ICs1MTEsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlwbGFjZWhvbGRlcnNGcm96ZW47 CiAJLyogdHJ1ZSBpZiBwbGFubmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0ZW0gKi8KIAlib29sCQlo YXNSZWN1cnNpb247CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQgKi8K Kwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBJbmZvcm1hdGlvbiBhYm91 dCBhZ2dyZWdhdGVzLiBGaWxsZWQgYnkgcHJlcHJvY2Vzc19hZ2dyZWZzKCkuCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oCmluZGV4IDYyY2Q2YTY2NjZlLi4xODQ5M2IyYzRlOSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVz LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAogCU5vZGVU YWcJCXR5cGU7CiAKLQlDbWRUeXBlCQljb21tYW5kVHlwZTsJLyogc2VsZWN0fGluc2VydHx1cGRh dGV8ZGVsZXRlfG1lcmdlfHV0aWxpdHkgKi8KKwlDbWRUeXBlCQljb21tYW5kVHlwZTsJLyogc2Vs ZWN0fGxldHxpbnNlcnR8dXBkYXRlfGRlbGV0ZXxtZXJnZXx1dGlsaXR5ICovCiAKIAl1aW50NjQJ CXF1ZXJ5SWQ7CQkvKiBxdWVyeSBpZGVudGlmaWVyIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIApA QCAtOTQsNiArOTQsOCBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVkU3RtdAogCiAJTm9kZQkgICAq dXRpbGl0eVN0bXQ7CS8qIG5vbi1udWxsIGlmIHRoaXMgaXMgdXRpbGl0eSBzdG10ICovCiAKKwlM aXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwkvKiBPSURzIGZvciBQQVJBTV9WQVJJQUJMRSBQYXJh bXMgKi8KKwogCS8qIHN0YXRlbWVudCBsb2NhdGlvbiBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQg ZnJvbSBRdWVyeSkgKi8KIAlQYXJzZUxvYwlzdG10X2xvY2F0aW9uOwkvKiBzdGFydCBsb2NhdGlv biwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCXN0bXRfbGVuOwkJLyogbGVuZ3RoIGlu IGJ5dGVzOyAwIG1lYW5zICJyZXN0IG9mIHN0cmluZyIgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5k ZXggZWE0NzY1MmFkYjguLjVmN2I4M2QxM2ZhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzYx LDYgKzM2MSw5IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQn IGZpZWxkIGNvbnRhaW4gdGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxv dy1vcmRlciAxNiBiaXRzIGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAg KgkJCQlvZiBQYXJhbSBpcyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFu bmluZy4pCisgKgorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhlIHBhcmFtZXRlciBpcyBhIHJlZmVy ZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCShwYXJhbWlkIGhvbGRzIHRoZSB2YXJp YWJsZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIHsKQEAgLTM2OCw2ICsz NzEsNyBAQCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJUEFSQU1fRVhFQywKIAlQQVJBTV9TVUJM SU5LLAogCVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9WQVJJQUJMRSwKIH0gUGFyYW1LaW5kOwog CiB0eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzgwLDYgKzM4NCw4IEBAIHR5cGVkZWYgc3RydWN0 IFBhcmFtCiAJaW50MzIJCXBhcmFtdHlwbW9kIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsKIAkvKiBPSUQgb2YgY29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KIAlP aWQJCQlwYXJhbWNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyog T0lEIG9mIHNlc3Npb24gdmFyaWFibGUgaWYgaXQgaXMgdXNlZCAqLworCU9pZAkJCXBhcmFtdmFy aWQ7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwls b2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxh bm1haW4uaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCmluZGV4IGFhZmMxNzM3 OTIxLi5kZTQ3MTY5MmU4MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEyMCw0ICsx MjAsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5u ZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVf ZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4 dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAq Y29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBs YW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaAppbmRleCA5NjRlMjdiNTc3Zi4uZjkwZDNkNDNmN2YgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK QEAgLTI1Niw2ICsyNTYsNyBAQCBQR19LRVlXT1JEKCJsZWFkaW5nIiwgTEVBRElORywgUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYWtwcm9vZiIsIExFQUtQUk9P RiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVhc3QiLCBM RUFTVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlZnQiLCBM RUZULCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibGV0 IiwgTEVULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZXZl bCIsIExFVkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJs aWtlIiwgTElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImxpbWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKaW5kZXggNWI3ODFkODdhOWQuLjZkOTM2OTE5NjU5IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKQEAgLTgyLDYgKzgyLDggQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQK IAlFWFBSX0tJTkRfQ09QWV9XSEVSRSwJCS8qIFdIRVJFIGNvbmRpdGlvbiBpbiBDT1BZIEZST00g Ki8KIAlFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTiwgLyogZ2VuZXJhdGlvbiBleHByZXNzaW9u IGZvciBhIGNvbHVtbiAqLwogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFyayB2 YWx1ZSAqLworCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25tZW50 IHRhcmdldCAqLworCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdldCAqLwogfSBQ YXJzZUV4cHJLaW5kOwogCiAKQEAgLTIyNSw2ICsyMjcsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQog CWJvb2wJCXBfaGFzVGFyZ2V0U1JGczsKIAlib29sCQlwX2hhc1N1YkxpbmtzOwogCWJvb2wJCXBf aGFzTW9kaWZ5aW5nQ1RFOworCWJvb2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCU5vZGUJ ICAgKnBfbGFzdF9zcmY7CQkvKiBtb3N0IHJlY2VudCBzZXQtcmV0dXJuaW5nIGZ1bmMvb3AgZm91 bmQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCA5NDY1ZGY3YjJmZi4uYTkyMWFmMjQ4NmYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRB R19HUkFOVCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19H UkFOVF9ST0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFs c2UsIGZhbHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2Us IGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3Jj L2luY2x1ZGUvdGNvcC9kZXN0LmgKaW5kZXggYTNkNTIxYjZmOTcuLjM4Y2M4N2Y0ZTdhIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2Rl c3QuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGVudW0KIAlEZXN0VHJhbnNpZW50UmVsLAkJ CS8qIHJlc3VsdHMgc2VudCB0byB0cmFuc2llbnQgcmVsYXRpb24gKi8KIAlEZXN0VHVwbGVRdWV1 ZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHR1cGxlIHF1ZXVlICovCiAJRGVzdEV4cGxhaW5TZXJp YWxpemUsCQkvKiByZXN1bHRzIGFyZSBzZXJpYWxpemVkIGFuZCBkaXNjYXJkZWQgKi8KKwlEZXN0 VmFyaWFibGUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byBzZXNzaW9uIHZhcmlhYmxlICovCiB9IENv bW1hbmREZXN0OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCBl YTk3NDBlM2Y4OS4uZjc2ZGViNTZkNWEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODEwMyw3ICs4 MTAzLDggQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVy eS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0 Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25z IHx8CisJCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkv KgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApp bmRleCBhY2E3NjYwNDJkYi4uMTZlMWQwMWRkYzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC01NSwzICs1NSw5MjUgQEAgU0VUIFJP TEUgVE8gREVGQVVMVDsKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKIERST1AgU0NIRU1B IHN2YXJ0ZXN0OwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CistLSBjaGVjayBh Y2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeChpbnQpCitS RVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbDsKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNF TEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERFRklORVI7CitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVH SU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVH SU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVG SU5FUjsKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZh cjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeCgyMCk7Cisgc3FsZngg CistLS0tLS0tCisgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKKyBzcWxm eF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4 KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAzMAorKDEgcm93KQorCitT RUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhfc2QgCistLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAzMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorU0VUIFJPTEUgVE8gcmVn cmVzc19ub293bmVyOworU0VMRUNUIHZhcjE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCBzcWxmeCgyMCk7CitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBTUUwgZnVu Y3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQorU0VMRUNUIHBscGdzcWxmeCgyMCk7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBT UUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGlu dGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3Nk KDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93KQorCitTRUxF Q1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhfc2QgCistLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAzMAorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworLS0gc2hvdWxkIGJlIG9rCitT RVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0t CisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQor ICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0t LS0tLS0tLS0tCisgICAgICAgIDMwCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZVTkNU SU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJPUCBG VU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKK0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7Cist LSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVt ZXJpYzsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBB UyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0t LS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VM RUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUu MTQKKygyIHJvd3MpCisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCitTRUxFQ1QgKiBGUk9N IHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93 cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0 IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHNob3VsZCBmYWls LCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNl c3Npb24gdmFyaWFibGUgdmFyMSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitE RVRBSUw6ICB2aWV3IHRlc3RfdmlldyBkZXBlbmRzIG9uIHNlc3Npb24gdmFyaWFibGUgdmFyMQor SElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3Rz IHRvby4KKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CitOT1RJ Q0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdGVzdF92aWV3CitDUkVBVEUgVkFSSUFCTEUgdmFy MSB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgdGV4dDsKKy0tIHVzZSB2YXJpYWJsZXMgaW4g U1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIp CitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywgJyB8fCAkMSAkJCBMQU5H VUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitS RVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFH RSBzcWw7CitMRVQgdmFyMSA9ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOworU0VMRUNUIHNx bGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgc3FsZngxICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLQorIHN0cjEsIHN0cjIsIEhlbGxvCisoMSByb3cpCisKKy0tIGlubGluaW5nIGlzIGJs b2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIo J0hlbGxvJykpOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBSZXN1bHQKKyAgIE91dHB1dDogc3FsZngxKHNxbGZ4MignSGVsbG8nOjpjaGFy YWN0ZXIgdmFyeWluZykpCisoMiByb3dzKQorCitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFy KTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBWQVJJQUJMRSB2YXIyOworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3 b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRVUk4g dmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitzZXQgcGxhbl9jYWNoZV9tb2RlIFRPIGZv cmNlX2dlbmVyaWNfcGxhbjsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsK KyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgMy4xNAorKDEgcm93KQorCitMRVQgdmFy MSA9IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0t LS0tCisgICAgICA2LjI4CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGRlcGVu ZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgbnVtZXJpYzsKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7 CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDkuNDIKKygxIHJvdykKKworTEVUIHZh cjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0t LS0tLQorICAgICAxMi41NgorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZV TkNUSU9OIHBscGdzcWxmeCgpOworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworLS0g dXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmljW107CitETyAkJAorQkVH SU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAor ICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7CisgIEVORCBMT09QOwor ICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitFTkQ7CiskJDsKK05PVElD RTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQorRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBv cnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBm cm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKK0NSRUFURSBQ Uk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVO RCAkJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBz dXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5v dCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsK K0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAor Q09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlu bGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitEUk9QIFBST0NFRFVSRSBwKGludCk7CitE Uk9QIFZBUklBQkxFIHY7CistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHll dAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhw cmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAyMDsKK1BS RVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CistLSBzaG91bGQgZmFpbAorRVhFQ1VURSBw dGVzdCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBh cmd1bWVudAorREVBTExPQ0FURSBwdGVzdDsKK0RST1AgVkFSSUFCTEUgdjsKKy0tIHRlc3Qgc2Vh cmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBBUyBudW1lcmljOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAorTElORSAxOiBMRVQg dmFyMSA9IHBpKCk7CisgICAgICAgICAgICBeCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1u ICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAg ICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNU IHN2YXJ0ZXN0LnZhcjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQor IDMuMTQxNTkyNjUzNTg5NzkKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0 OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIxOwor ICAgICAgIHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAxMy4xNDE1OTI2NTM1ODk4 CisoMSByb3cpCisKK1JFU0VUIHNlYXJjaF9wYXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FT Q0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVz dC52YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworLS0gdmFyaWFibGVzIGNhbiBi ZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElPTiBS RUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitDT01NSVQ7CitTRUxFQ1QgdmFyMTsKKyB2 YXIxICAKKy0tLS0tLS0KKyBoZWxsbworKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5V TEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21h aW47CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9t YWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gMTAwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisK Ky0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWlu IGludF9kb21haW4gdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiaW50X2RvbWFpbl9jaGVjayIK Ky0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9t YWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBub3RlIC0gZG9tYWluIGRlZmF1bHRz IGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBET01BSU4gaW50X2RvbWFpbjsKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCByZW1h aW4gInVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOwor LS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxb MTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIs MTAwKX0nOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICAgICB2YXIxICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJ7WzIs OCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KKygxIHJvdykKKworLS1JdCBzaG91bGQg d29yayBpbiBwbHBnc3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsKKyAg TEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CisgIExF VCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAnJScsIHZh cjE7CitFTkQ7CiskJDsKK05PVElDRTogIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwx MDApfSJ9CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0IENSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0xFVCBzdmFy dGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisgdmFyMSAKKy0tLS0tLQor ICAxMDAKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRoIHRvIHB1YmxpYywgc3ZhcnRlc3Q7CitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitEUk9QIFNDSEVN QSBzdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9i amVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZm9vCitkcm9wIGNhc2NhZGVz IHRvIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9 ICd7fSc6OmludFtdOworTEVUIHZhcjJbdmFyMV0gPSAwOworU0VMRUNUIHZhcjI7CisgICB2YXIy ICAgIAorLS0tLS0tLS0tLS0KKyBbMjoyXT17MH0KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2 YXIxLCB2YXIyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxF IHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOwor U0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorIHt9CisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgdmFyMSwgdmFyMjsKKy0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2Vk IGluIENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFy MSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVh ciAiTEVUIgorTElORSAxOiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9N IHg7CisgICAgICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdl bmVyYXRlX3NlcmllcygxLCAxKTsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVyYXRl X3NlcmllcygxLCAyKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBtb3JlIHRoYW4gb25l IHJvdworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CitFUlJPUjogIGV4cHJlc3Np b24gcmV0dXJuZWQgbm8gcm93cworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gY29tcG9zaXRlIHZh cmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJpYygx MCwyKSk7CitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3ZfeHl6OworQ1JFQVRFIFZBUklBQkxFIHYy IEFTIHN2X3h5ejsKK0xFVCB2MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMu MTQgKiAxMCk7CistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMK K0xFVCB2MSA9ICgxLCAyLCAzKTsKK1NFTEVDVCB2MTsKKyAgICAgdjEgICAgIAorLS0tLS0tLS0t LS0tCisgKDEsMiwzLjAwKQorKDEgcm93KQorCitTRUxFQ1QgdjI7CisgICAgICB2MiAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLQorICgxMCwyMCwzMS40MCkKKygxIHJvdykKKworU0VMRUNUICh2MSku KjsKKyB4IHwgeSB8ICB6ICAgCistLS0rLS0tKy0tLS0tLQorIDEgfCAyIHwgMy4wMAorKDEgcm93 KQorCitTRUxFQ1QgKHYyKS4qOworIHggIHwgeSAgfCAgIHogICAKKy0tLS0rLS0tLSstLS0tLS0t CisgMTAgfCAyMCB8IDMxLjQwCisoMSByb3cpCisKK1NFTEVDVCB2MS54ICsgdjEuejsKKyA/Y29s dW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgNC4wMAorKDEgcm93KQorCitTRUxFQ1QgdjIueCArIHYy Lno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgNDEuNDAKKygxIHJvdykKKworLS0gYWNj ZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlIHYyCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJ QUJMRSB2MTsKK0RST1AgVkFSSUFCTEUgdjI7CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9y b2xlOworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CitDUkVB VEUgVkFSSUFCTEUgdjEgQVMgdDE7CitMRVQgdjEgPSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxF Q1QgdjE7CisgICAgICAgICAgICAgdjEgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKDEsMy4xNDE1OTI2NTM1ODk3OSxoZWxsbykKKygxIHJvdykKKworTEVUIHYx LmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOworICAgICAgICB2MSAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLQorICgxLDEwLjIyMjIsaGVsbG8pCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWls LCBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdAorTEVUIHYxLnggPSAxMDsKK0VSUk9SOiAgY2Fubm90 IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uICJ2MSIgYmVjYXVzZSB0aGVyZSBpcyBubyBz dWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKK0xJTkUgMTogTEVUIHYxLnggPSAxMDsKKyAgICAg ICAgICAgIF4KKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkK K0xFVCB2MSA9IChOVUxMOjp0MSkuKjsKK0VSUk9SOiAgYXNzaWdubWVudCBleHByZXNzaW9uIHJl dHVybmVkIDMgY29sdW1ucworTElORSAxOiBMRVQgdjEgPSAoTlVMTDo6dDEpLio7CisgICAgICAg ICAgICAgICAgICBeCistLSBhbGxvdyBEUk9QIG9yIEFERCBBVFRSSUJVVEUgb24gY29tcG9zaXRl IHR5cGVzCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYzsK K1NFTEVDVCB2MTsKKyAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyKQor KDEgcm93KQorCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBj IGludDsKK1NFTEVDVCB2MTsKKyAgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tLQorICgxLDEw LjIyMjIsKQorKDEgcm93KQorCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsK KyAgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tLQorICgxMCwxMC4zLDIwKQorKDEgcm93KQor CistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVD VCB2MTsKKyAgIHYxICAgIAorLS0tLS0tLS0tCisgKDEwLDIwKQorKDEgcm93KQorCistLSBzaG91 bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQRSB0MSBBTFRFUiBB VFRSSUJVVEUgYyBUWVBFIGludDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNh dXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52MSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2 MTsKK0RST1AgVFlQRSB0MTsKKy0tIHRoZSB0YWJsZSB0eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBv c2l0ZSB0eXBlIHRvbworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCwgYiBudW1lcmljLCBj IGRhdGUpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgc3Zhcl90ZXN0OworTEVUIHZhcjEgPSAo MTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIHZh cjEgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAo MTAsMy4xNDE1OTI2NTM1ODk3OSwwNS0yNi0yMDIzKQorKDEgcm93KQorCistLSBzaG91bGQgZmFp bCBkdWUgZGVwZW5kZW5jeQorQUxURVIgVEFCTEUgc3Zhcl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZ UEUgdGV4dDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJzdmFyX3Rlc3QiIGJlY2F1c2Ug c2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKKy0tIHNob3VsZCBmYWlsCitE Uk9QIFRBQkxFIHN2YXJfdGVzdDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdGFibGUgc3Zhcl90ZXN0 IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFy aWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgc3Zhcl90ZXN0CitISU5UOiAgVXNlIERST1AgLi4u IENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CistLSBhcnJheXMgYXJlIHN1cHBvcnRlZAor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBBUlJBWVsxLjEs Mi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgCist LS0tLS0tLS0tLS0KKyB7MTAuMSwyLjF9CisoMSByb3cpCisKKy0tIExFVCB0YXJnZXQgZG9lc24n dCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0g PSAxMDA7CitFUlJPUjogIHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBp biBMRVQKK0xJTkUgMTogTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworICAg ICAgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBhcnJheXMgaW5zaWRlIGNv bXBvc2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmljW10pOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAsIDAu MF0pOworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgdmFyMSAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMC4yLCJ7MC4wLDAuMH0iKQorKDEgcm93KQor CitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworICAgICAgICB2YXIxICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAuMiwiezEwLjMsMC4wfSIpCisoMSByb3cp CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKy0tIEVuY291cmFnZSB1c2Ug b2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJh bGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0g MDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKy0tIHRlc3Qgb24g cXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VS VCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOwor QU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFSSUFCTEUgemVybyBpbnQ7CitMRVQgemVybyA9 IDA7CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAorU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90 ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworIGNvdW50IAorLS0tLS0tLQorICAgMTAwCisoMSByb3cp CisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHpl cm87CisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBTZXEgU2NhbiBvbiBzdmFy X3Rlc3QKKyAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKKygzIHJvd3MpCisKK0xF VCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CistLSByZXN1bHQgc2hv dWxkIGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworIHplcm8gCistLS0tLS0KKyAxMDAwCisoMSByb3cp CisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworUkVTRVQgcGFy YWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5f cGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVy X2dhdGhlcjsKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJhbGxl bCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDsK K0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1 bHQ7CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIDEw CisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKK1NFTEVDVCAqIEZS T00gdmFyMXZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgMTAKKygxIHJvdykKKworU0VU IGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsKK0RST1AgVklFVyB2YXIxdmlldzsKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUg c3Zhcl90ZXN0KGlkIGludCwgdiBpbnQpOworTEVUIHZhcmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2 YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBp ZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8IDEwMAorKDEgcm93KQorCitVUERBVEUgc3Zhcl90 ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVz dDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8IDIwMAorKDEgcm93KQorCitERUxFVEUg RlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0 OworIGlkIHwgdiAKKy0tLS0rLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsK K0RST1AgVkFSSUFCTEUgdmFyaWQ7CistLSB2aXNpYmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMg c2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsK K1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFt ZSA9ICdwZ19jbGFzcyc7CisgcmVsbmFtZSAgCistLS0tLS0tLS0tCisgcGdfY2xhc3MKKygxIHJv dykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsK K0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworQ1JFQVRFIFRZUEUgeHh0eXBlIEFTIChh dmFyIGludCk7CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0eXBlOworSU5TRVJUIElOVE8g eHh0YWIgVkFMVUVTKDEwKTsKKy0tIGl0IGlzIGFtYmlndW91cywgYnV0IGNvbHVtbnMgYXJlIHBy ZWZlcnJlZAorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisg IDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJP TSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKK0NSRUFU RSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CistLSBzaG91bGQgYmUgb2ssIHNlZSB0aGUg dGFibGUKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAg IDEwCisoMiByb3dzKQorCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMuYXZhciBGUk9N IHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgICAgCisgICAgIAorKDIgcm93cykKKworRFJPUCBW QVJJQUJMRSB4eHRhYjsKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0t LS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFy OworRFJPUCBUWVBFIHh4dHlwZTsKK0RST1AgVEFCTEUgeHh0YWI7CistLSBUaGUgdmFyaWFibGUg Y2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJsaWMu c3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJMRSBwdWJs aWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEg aW50LCBiIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMuc3ZhciBWQUxVRVMoMTAsIDIwKTsKK0xF VCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAwKTsKKy0tIHNob3VsZCBiZSBvaworLS0gc2hv dyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0t CisgMTAgfCAyMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7Cisg YSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFy OworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIHNob3cgdmFy aWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAgICAgIAorLS0tLS0tLS0tLS0t LS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitTRUxFQ1QgcHVibGljLnN2YXIuYzsKKyAg YyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworICBh ICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0tCisgMTAwIHwgMjAwIHwgMzAwCisoMSBy b3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBw dWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitFUlJPUjogIGNvbHVtbiBzdmFyLmMgZG9l cyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3Zh cjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1 YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworICBjICAKKy0tLS0tCisgMzAwCisoMSBy b3cpCisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAor KDEgcm93KQorCitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0t LS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1 YmxpYy5zdmFyOworICAgICBzdmFyICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwz MDApCisoMSByb3cpCisKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworICBjICAKKy0tLS0tCisgMzAw CisoMSByb3cpCisKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAor LS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAyMDAgfCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZh cmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJP TSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29sdW1uIHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElO RSAxOiBTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworICAgICAgICAgICAg ICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9N IHB1YmxpYy5zdmFyIHg7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVEFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRZUEUgcHVi bGljLnN2YXJfdHlwZTsKK0NSRUFURSBUWVBFIGFiIEFTIChhIGludGVnZXIsIGIgaW50ZWdlcik7 CitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKK0NSRUFURSBUQUJMRSB2X2FiIChhIGludGVn ZXIsIGIgaW50ZWdlcik7CitJTlNFUlQgSU5UTyB2X2FiIFZBTFVFUygxMCwyMCk7CistLSB3ZSBz aG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIHZfYWI7CitDUkVBVEUgVkFSSUFCTEUgdl9hYi5h IEFTIGludGVnZXI7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00g dl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZfYWI7CitE Uk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7CitDUkVBVEUgVFlQRSB0X2FtX3R5cGUgQVMg KGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworU0VUIHNlYXJjaF9wYXRoIFRPIHB1Ymxp YzsKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVUIHh4eF9hbSA9IFJP VygxMCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0t LS0KKyAoMTApCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitM RVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7CistLSBzaG91bGQgYmUgc3RpbGwgb2sKK1NFTEVD VCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cpCisKKy0tIHNob3Vs ZCBmYWlsLCB0aGUgcmVmZXJlbmNlIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCB4eHhfYW0u YjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInh4eF9hbS5iIiBpcyBhbWJp Z3VvdXMKK0xJTkUgMTogU0VMRUNUIHh4eF9hbS5iOworICAgICAgICAgICAgICAgXgorLS0gZW5o YW5jZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMueHh4X2FtLmI7Cisg YiAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKyBi ICAKKy0tLS0KKyAyMAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgeHh4X2FtKGIgIGludCk7CitJ TlNFUlQgSU5UTyB4eHhfYW0gVkFMVUVTKDEwKTsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NF TEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitT RUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworRFJP UCBUQUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklB QkxFIHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworQ1JFQVRFIFNDSEVNQSA6IkRCTkFN RSI7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSIgQVMgdF9h bV90eXBlOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYiBBUyBpbnQ7CitT RVQgc2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOworLS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VM RUNUIDoiREJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAicmVn cmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdyZXNzaW9uIi5iOwor ICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0b28KK1NFTEVDVCA6IkRC TkFNRSIuOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJy ZWdyZXNzaW9uLnJlZ3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVn cmVzc2lvbiIuInJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAgICAgICBeCitDUkVBVEUgVEFCTEUg OiJEQk5BTUUiKGIgaW50KTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJOQU1FIi5iIEZS T00gOiJEQk5BTUUiOworIGIgCistLS0KKygwIHJvd3MpCisKK0RST1AgVEFCTEUgOiJEQk5BTUUi OworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoi REJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworUkVT RVQgc2VhcmNoX3BhdGg7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggNDJkZmI5NWEwMjIuLmQ1YmI1ZGM4M2JlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC01OSwzICs1OSw2NDAgQEAgRFJPUCBWQVJJQUJM RSBzdmFydGVzdC52YXIxOwogRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CiAKIERST1AgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOworCistLSBjaGVjayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9M RSByZWdyZXNzX25vb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VM RUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHNxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQg TEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2 YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSAr IHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0xFVCB2 YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIw KTsKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKK1NFTEVDVCBw bHBnc3FsZnhfc2QoMjApOworCistLSBzaG91bGQgZmFpbAorU0VUIFJPTEUgVE8gcmVncmVzc19u b293bmVyOworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3Nx bGZ4KDIwKTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNU IHBscGdzcWxmeF9zZCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7CisKKy0tIHNob3VsZCBiZSBvawor U0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxm eCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJ T04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNxbGZ4X3NkKGludCk7CitEUk9QIEZV TkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOworCitEUk9QIFJPTEUgcmVncmVzc19ub293bmVyOwor CistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg bnVtZXJpYzsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cworQ1JFQVRFIFZJRVcgdGVzdF92 aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMgcmVzdWx0IEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEg PSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Np b24KK1xjCisKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEgPSAzLjE0OworU0VM RUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHNob3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENB U0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFy MiB0ZXh0OworCistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNF TEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VM RUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CisKK0xFVCB2YXIxID0gJ3N0 cjEnOworTEVUIHZhcjIgPSAnc3RyMic7CisKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycp KTsKKworLS0gaW5saW5pbmcgaXMgYmxvY2tlZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NF KSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisKK0RST1AgRlVOQ1RJT04gc3FsZngx KHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hhcik7CitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGFjY2VzcyBmcm9tIGNhY2hlZCBwbGFu cyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBC RUdJTiBSRVRVUk4gdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NldCBwbGFuX2Nh Y2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxF Q1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgp OworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0 aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKworTEVU IHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBnc3FsZngoKTsKK0xFVCB2YXIxID0gMy4xNCAq IDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVO Q1RJT04gcGxwZ3NxbGZ4KCk7CisKK3NldCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKwor LS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmljW107CisKK0RPICQk CitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBGT1IgaSBJTiAxLi4xMAorICBM T09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3ZhcjFdID0gaTsKKyAgRU5EIExP T1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywgdmFyMjsKK0VORDsKKyQkOwor CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIENBTEwgc3Rh dGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRv IHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFC TEUgdiBpbnQ7CisKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlT RSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91bGQg bm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CisKK0RPICQk IEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOworCitEUk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9Q IFZBUklBQkxFIHY7CisKKy0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0 CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHBy ZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9IDIwOworUFJF UEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKworLS0gc2hvdWxkIGZhaWwKK0VYRUNVVEUg cHRlc3Qodik7CisKK0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIHRl c3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBw aSgpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEg PSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBzdmFy dGVzdDsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2 YXIxOworCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7 CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CisKKy0tIHZhcmlhYmxlcyBjYW4gYmUg dXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitTRVQgVFJBTlNBQ1RJT04gUkVB RCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOworCitTRUxFQ1QgdmFyMTsKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4g aW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFy MTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFyMTsKKwor LS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MSA9IE5VTEw7CisKKy0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQg eWV0IChsaWtlIFBMcGdTUUwpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGlu dF9kb21haW47CisKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCByZW1haW4gInVua25vd24iCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4 KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNU IHZhcjE7CisKKy0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RPICQkCitCRUdJTgor ICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1 LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKKwor ICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQg Q1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NFTEVD VCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCBzdmFydGVzdDsK KworU0VMRUNUIHZhcjE7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOwor CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitMRVQgdmFyMlt2YXIx XSA9IDA7CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CisKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtd OworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitTRUxFQ1QgdmFy MjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0aGUgTEVUIHN0YXRlbWVudCBz aG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsK K1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKKworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKworLS0gc2hvdWxkIGZh aWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworTEVUIHZhcjEgPSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gY29tcG9zaXRlIHZh cmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJpYygx MCwyKSk7CisKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVBVEUgVkFSSUFCTEUg djIgQVMgc3ZfeHl6OworCitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIw LCAzLjE0ICogMTApOworCistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQg Y2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKKworU0VMRUNUIHYxOworU0VMRUNUIHYyOworU0VM RUNUICh2MSkuKjsKK1NFTEVDVCAodjIpLio7CisKK1NFTEVDVCB2MS54ICsgdjEuejsKK1NFTEVD VCB2Mi54ICsgdjIuejsKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJl IHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2Mi54 OworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJ QUJMRSB2MjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworQ1JFQVRFIFRZ UEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CisKK0NSRUFURSBWQVJJQUJMRSB2 MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVDVCB2MTsKK0xFVCB2 MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBk b2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworCistLSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxs b3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7CisKKy0tIGFsbG93 IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0tIHNob3VsZCBiZSBv aworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYxOworCistLSBzaG91 bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKK1NFTEVDVCB2MTsK KworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBv aworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYxOworCistLSBzaG91 bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQRSB0MSBBTFRFUiBB VFRSSUJVVEUgYyBUWVBFIGludDsKKworRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVFlQRSB0MTsK KworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRlIHR5cGUgdG9vCitD UkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0ZSk7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CisKK0xFVCB2YXIxID0gKDEwLCBwaSgpLCAnMjAy My0wNS0yNicpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsIGR1ZSBkZXBlbmRlbmN5 CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0OworCistLSBz aG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK K0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCistLSBhcnJheXMgYXJlIHN1cHBvcnRlZAorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBBUlJBWVsxLjEsMi4xXTsK K0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOworCistLSBMRVQgdGFyZ2V0IGRvZXNu J3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyld ID0gMTAwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGFycmF5cyBpbnNpZGUgY29tcG9z aXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVyaWNbXSk7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFSUkFZWzAuMCwgMC4wXSk7 CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOworTEVUIHZhcjEuYlsxXSA9IDEwLjM7 CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOworCist LSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0dXBfY29z dCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFsbGVsX3Rh YmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9 IDI7CisKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFCTEUgc3Zhcl90 ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFSSUFCTEUgemVy byBpbnQ7CitMRVQgemVybyA9IDA7CisKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisKKy0tIHBhcmFsbGVs IGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisKK0xFVCB6ZXJv ID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CisKKy0tIHJlc3VsdCBzaG91bGQg YmUgMTAwMAorU0VMRUNUIHplcm87CisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RST1AgVEFCTEUg c3Zhcl90ZXN0OworCitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxf dHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBt YXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworCistLSB0aGUgcmVzdWx0IG9mIHZpZXcg c2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDsKK0xFVCB2YXIxID0gMTA7CisKK0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNFTEVD VCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1bHQ7CisKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7 CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKKworU0VMRUNUICogRlJPTSB2YXIx dmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsKKworRFJPUCBWSUVXIHZh cjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgVkFSSUFCTEUgdmFyaWQgaW50 OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKKworTEVUIHZhcmlkID0g MTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitTRUxFQ1QgKiBG Uk9NIHN2YXJfdGVzdDsKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUgaWQgPSB2 YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdI RVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKworRFJPUCBUQUJMRSBz dmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOworCisKKy0tIHZpc2liaWxpdHkgY2hlY2sK Ky0tIHZhcmlhYmxlcyBzaG91bGQgYmUgc2hhZG93ZWQgYWx3YXlzCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB0ZXh0OworU0VMRUNUIHZhcjEucmVsbmFtZSBGUk9NIHBnX2NsYXNzIHZhcjEgV0hF UkUgdmFyMS5yZWxuYW1lID0gJ3BnX2NsYXNzJzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitD UkVBVEUgVEFCTEUgeHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMo MzMzKTsKKworQ1JFQVRFIFRZUEUgeHh0eXBlIEFTIChhdmFyIGludCk7CisKK0NSRUFURSBWQVJJ QUJMRSB4eHRhYiBBUyB4eHR5cGU7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygxMCk7CisK Ky0tIGl0IGlzIGFtYmlndW91cywgYnV0IGNvbHVtbnMgYXJlIHByZWZlcnJlZAorU0VMRUNUIHh4 dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgYXZhciBGUk9N IHh4dGFiOworCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmF2YXIgQVMgaW50OworCistLSBzaG91 bGQgYmUgb2ssIHNlZSB0aGUgdGFibGUKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy5hdmFyIEZST00geHh0YWI7CisKK0RST1AgVkFSSUFC TEUgeHh0YWI7CisKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisKK0RST1AgVkFSSUFC TEUgcHVibGljLmF2YXI7CisKK0RST1AgVFlQRSB4eHR5cGU7CisKK0RST1AgVEFCTEUgeHh0YWI7 CisKKy0tIFRoZSB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkgdGFibGUgb3IgYnkgYWxpYXMK K0NSRUFURSBUWVBFIHB1YmxpYy5zdmFyX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQpOwor Q1JFQVRFIFZBUklBQkxFIHB1YmxpYy5zdmFyIEFTIHB1YmxpYy5zdmFyX3R5cGU7CisKK0NSRUFU RSBUQUJMRSBwdWJsaWMuc3ZhcihhIGludCwgYiBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMu c3ZhciBWQUxVRVMoMTAsIDIwKTsKKworTEVUIHB1YmxpYy5zdmFyID0gKDEwMCwgMjAwLCAzMDAp OworCistLSBzaG91bGQgYmUgb2sKKy0tIHNob3cgdGFibGUKK1NFTEVDVCAqIEZST00gcHVibGlj LnN2YXI7CitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zhci4qIEZS T00gcHVibGljLnN2YXI7CisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsK K1NFTEVDVCBwdWJsaWMuc3Zhci5jOworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKworLS0gdGhl IHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMg RlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVi bGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJs aWMuc3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2YXJp YWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxFQ1Qg KHB1YmxpYy5zdmFyKS4qOworCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVy cm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4gYmUg Zml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsK KworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVEFCTEUgcHVibGljLnN2YXI7CitE Uk9QIFRZUEUgcHVibGljLnN2YXJfdHlwZTsKKworQ1JFQVRFIFRZUEUgYWIgQVMgKGEgaW50ZWdl ciwgYiBpbnRlZ2VyKTsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIgQVMgYWI7CisKK0NSRUFURSBU QUJMRSB2X2FiIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitJTlNFUlQgSU5UTyB2X2FiIFZBTFVF UygxMCwyMCk7CisKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2 X2FiOworCitDUkVBVEUgU0NIRU1BIHZfYWI7CisKK0NSRUFURSBWQVJJQUJMRSB2X2FiLmEgQVMg aW50ZWdlcjsKKworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZf YWI7CisKK0RST1AgVkFSSUFCTEUgdl9hYjsKK0RST1AgVEFCTEUgdl9hYjsKK0RST1AgVFlQRSBh YjsKKworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFTIChiIGludCk7CitDUkVBVEUgU0NIRU1BIHh4 eF9hbTsKKworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKKworQ1JFQVRFIFZBUklBQkxFIHh4 eF9hbSBBUyB0X2FtX3R5cGU7CitMRVQgeHh4X2FtID0gUk9XKDEwKTsKKworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgeHh4X2FtOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtLmIgQVMgaW50Owor TEVUIDoiREJOQU1FIi54eHhfYW0uYiA9IDIwOworCistLSBzaG91bGQgYmUgc3RpbGwgb2sKK1NF TEVDVCB4eHhfYW07CisKKy0tIHNob3VsZCBmYWlsLCB0aGUgcmVmZXJlbmNlIHNob3VsZCBiZSBh bWJpZ3VvdXMKK1NFTEVDVCB4eHhfYW0uYjsKKworLS0gZW5oYW5jZWQgcmVmZXJlbmNlcyBzaG91 bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMueHh4X2FtLmI7CitTRUxFQ1QgOiJEQk5BTUUiLnh4eF9h bS5iOworCitDUkVBVEUgVEFCTEUgeHh4X2FtKGIgIGludCk7CitJTlNFUlQgSU5UTyB4eHhfYW0g VkFMVUVTKDEwKTsKKworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHh4eF9hbS5iIEZS T00geHh4X2FtOworU0VMRUNUIHguYiBGUk9NIHh4eF9hbSB4OworCitEUk9QIFRBQkxFIHh4eF9h bTsKK0RST1AgVkFSSUFCTEUgcHVibGljLnh4eF9hbTsKK0RST1AgVkFSSUFCTEUgeHh4X2FtLmI7 CitEUk9QIFNDSEVNQSB4eHhfYW07CisKK0NSRUFURSBTQ0hFTUEgOiJEQk5BTUUiOworCitDUkVB VEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSIgQVMgdF9hbV90eXBlOwor Q1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYiBBUyBpbnQ7CisKK1NFVCBzZWFy Y2hfcGF0aCBUTyA6IkRCTkFNRSI7CisKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCA6 IkRCTkFNRSIuYjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0b28KK1NFTEVDVCA6IkRCTkFN RSIuOiJEQk5BTUUiLmI7CisKK0NSRUFURSBUQUJMRSA6IkRCTkFNRSIoYiBpbnQpOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBGUk9NIDoiREJOQU1FIjsKKworRFJPUCBU QUJMRSA6IkRCTkFNRSI7CisKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOwor RFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKK0RST1AgU0NIRU1B IDoiREJOQU1FIjsKKworUkVTRVQgc2VhcmNoX3BhdGg7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CmluZGV4IDIzN2RmMWMyMWE5Li43YjI0NTZiOWU4OSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKQEAgLTE0OTUsNiArMTQ5NSw3IEBAIExhcmdlT2JqZWN0RGVzYwogTGF0Y2gKIExhdW5jaGVy TGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xldFN0bXQKIExleERlc2NyCiBMZXhlbWVF bnRyeQogTGV4ZW1lSGFzaEtleQpAQCAtMjU5OCw2ICsyNTk5LDcgQEAgU2VyaWFsaXplZFRyYW5z YWN0aW9uU3RhdGUKIFNlc3Npb24KIFNlc3Npb25CYWNrdXBTdGF0ZQogU2Vzc2lvbkVuZFR5cGUK K1Nlc3Npb25WYXJpYWJsZVZhbHVlCiBTZXRDb25zdHJhaW50U3RhdGUKIFNldENvbnN0cmFpbnRT dGF0ZURhdGEKIFNldENvbnN0cmFpbnRUcmlnZ2VyRGF0YQpAQCAtMjc4OCw2ICsyNzkwLDkgQEAg U3VwcG9ydFJlcXVlc3RSb3dzCiBTdXBwb3J0UmVxdWVzdFNlbGVjdGl2aXR5CiBTdXBwb3J0UmVx dWVzdFNpbXBsaWZ5CiBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3RvbmljCitTVmFyaWFibGUKK1NW YXJpYWJsZURhdGEKK1NWYXJpYWJsZVN0YXRlCiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25maWdE YXRhCi0tIAoyLjQ2LjAKCg== --000000000000c171a20620d5e23f Content-Type: text/x-patch; charset="US-ASCII"; name="v20240829-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20240829-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0fkcrtq19 RnJvbSBhZWVkZWRiY2M1YThiY2U0MjIzYWM5NDliM2VlYzhjMGY3NjU3NzFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIwXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDMxICsrKwogZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCAgICAgICAg ICAgICAgIHwgIDI0ICsrCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTMgKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgIDE1ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAg ICAgfCAgIDMgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sICAg IHwgIDI2ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAg fCAxNzggKysrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAg ICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAg ICAgICAgIHwgICA3ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAg ICAgICAgfCAxNTEgKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5z Z21sICAgICAgICAgICB8IDExNyArKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21s ICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwg ICAgICAgICAgICAgICAgICB8ICAgNyArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAg ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAg ICAgICAgICAgICB8ICA3NyArKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5j ICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAg ICAgICAgICAgIHwgMTMzICsrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmMgICAgICAgICAgIHwgMTIxICsrKysrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyAgICAgICAgICAgICB8IDI1NSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgNDEgKysrCiBzcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysrKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAxMTMgKysrKysrKysKIHNyYy9iaW4vcGdfZHVt cC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgOSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jICAgICAgICAgICAgICAgICAgICAgfCAxOTUgKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxOSArKwogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA2NCArKysrKwogc3JjL2Jpbi9wc3Fs L2NvbW1hbmQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9k ZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrCiBzcmMvYmluL3Bz cWwvZGVzY3JpYmUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3Fs L2hlbHAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA0MiArKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFs b2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2RlZmF1bHRfYWNsLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaCAgICAgICAgICAgICB8ICA4MSArKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNiArKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hl LmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVw ZW5kZW5jeS5vdXQgICAgICB8ICAxNyArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5v dXQgICAgICAgICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgICAgfCAgNTcgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5 LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAg ICAgICAgICAgICAgIHwgIDIxICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwgICAgfCAgNjEgKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 ICAgICAgICAgICAgICB8ICAgNCArCiA2NiBmaWxlcyBjaGFuZ2VkLCAyMzg3IGluc2VydGlvbnMo KyksIDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBiNjU0ZmFl MWIyZi4uZGUxMjJlNTQzZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0zNjksNiArMzY5LDExIEBACiAg ICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy11c2VyLW1hcHBpbmciPjxzdHJ1 Y3RuYW1lPnBnX3VzZXJfbWFwcGluZzwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAg IDxlbnRyeT5tYXBwaW5ncyBvZiB1c2VycyB0byBmb3JlaWduIHNlcnZlcnM8L2VudHJ5PgogICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctdmFyaWFibGUiPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvbGlu az48L2VudHJ5PgorICAgICAgPGVudHJ5PnNlc3Npb24gdmFyaWFibGVzPC9lbnRyeT4KKyAgICAg PC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpAQCAtOTcyNiw0 ICs5NzMxLDExOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICA8L3RhYmxlPgogIDwvc2Vj dDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpv bmU9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICAgPHByaW1hcnk+cGdfdmFyaWFibGU8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5h bWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IHN0b3JlcyBpbmZvcm1hdGlvbiBhYm91dAorICAg c2Vzc2lvbiB2YXJpYWJsZXMuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBE ZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhl YWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ0eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVjdG5h bWU+cGdfdHlwZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhl IHZhcmlhYmxlJ3MgZGF0YSB0eXBlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5h bWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lc3BhY2U8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1uYW1lc3Bh Y2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIHRoaXMgdmFyaWFibGUK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIE93bmVyIG9mIHRoZSB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0Zmll bGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZpYyBkYXRhCisgICAgICAgc3VwcGxpZWQgYXQgdmFyaWFi bGUgY3JlYXRpb24gdGltZSAoZm9yIGV4YW1wbGUsIHRoZSBtYXhpbXVtCisgICAgICAgbGVuZ3Ro IG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlwZT4gY29sdW1uKS4gIEl0IGlzIHBhc3NlZCB0bworICAg ICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQgZnVuY3Rpb25zIGFuZCBsZW5ndGggY29lcmNpb24gZnVu Y3Rpb25zLgorICAgICAgIFRoZSB2YWx1ZSB3aWxsIGdlbmVyYWxseSBiZSAtMSBmb3IgdHlwZXMg dGhhdCBkbyBub3QgbmVlZCA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4uCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0aW9uIG9mIHRoZSB2YXJpYWJsZSwgb3Ig emVybyBpZiB0aGUgdmFyaWFibGUgaXMKKyAgICAgICBub3Qgb2YgYSBjb2xsYXRhYmxlIGRhdGEg dHlwZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyYWNsPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+YWNsaXRlbVtdPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgQWNjZXNzIHByaXZpbGVnZXM7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1ncmFu dCIvPiBhbmQKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtcmV2b2tlIi8+CisgICAgICAgZm9y IGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJv ZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgogPC9jaGFwdGVyPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmlu ZGV4IGI2NzE4NTg2MjdiLi5kZjZlMWI0MjRjNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTI2MCw2ICs1MjYwLDM3IEBA IEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAm Z3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgIDxzZWN0 MSBpZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlhYmxl czwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4K KyAgICA8cHJpbWFyeT5TZXNzaW9uIHZhcmlhYmxlczwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJt PgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1h cnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIGRhdGFiYXNlIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24g dmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVp ciBhY2Nlc3MKKyAgICBpcyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4g YW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2 YXJpYWJsZSBjYW4gYmUgY3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFC TEU8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluc2lk ZSBhIHF1ZXJ5IG9yIGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUKKyAg ICA8cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBzYW1lIG5hbWUu ICBTaW1pbGFybHksIHRoZQorICAgIG5hbWUgb2YgYSBmdW5jdGlvbiBvciBwcm9jZWR1cmUgYXJn dW1lbnQgb3IgYSBQTC9wZ1NRTCB2YXJpYWJsZSAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0icGxw Z3NxbC1kZWNsYXJhdGlvbnMiLz4pIGNhbiBzaGFkb3cgYSBzZXNzaW9uIHZhcmlhYmxlCisgICAg aW4gdGhlIHJvdXRpbmUncyBib2R5LiAgU3VjaCBjb2xsaXNpb25zIG9mIGlkZW50aWZpZXJzIGNh biBiZSByZXNvbHZlZAorICAgIGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVyczogU2Vzc2lv biB2YXJpYWJsZXMgY2FuIGJlIHF1YWxpZmllZCB3aXRoCisgICAgdGhlIHNjaGVtYSBuYW1lLCBj b2x1bW5zIGNhbiB1c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQor ICAgIGJsb2NrIGxhYmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRp bmUgbmFtZS4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVy cyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2V2ZW50LXRyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9ldmVudC10 cmlnZ2VyLnNnbWwKaW5kZXggOGUwMDljY2EwNTAuLjE1YjJhZjk5ZGNhIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZXZlbnQtdHJpZ2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9ldmVudC10 cmlnZ2VyLnNnbWwKQEAgLTQyNCw2ICs0MjQsMTQgQEAKICAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWdu PSJsZWZ0Ij48L2VudHJ5PgogICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+CisgICAgICAgIDxl bnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+QUxURVIgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAg ICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxp dGVyYWw+QUxURVIgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249 ImNlbnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpAQCAtNzEyLDYgKzcyMCwxNCBA QAogICAgICAgICA8ZW50cnkgYWxpZ249ImNlbnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2Vu dHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+ CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5DUkVB VEUgVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50 ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWduPSJj ZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFsaWdu PSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5IGFs aWduPSJjZW50ZXIiPjxsaXRlcmFsPi08L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 IGFsaWduPSJsZWZ0Ij48L2VudHJ5PgorICAgICAgIDwvcm93PgogICAgICAgIDxyb3c+CiAgICAg ICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PGxpdGVyYWw+Q1JFQVRFIFZJRVc8L2xpdGVyYWw+PC9l bnRyeT4KICAgICAgICAgPGVudHJ5IGFsaWduPSJjZW50ZXIiPjxsaXRlcmFsPlg8L2xpdGVyYWw+ PC9lbnRyeT4KQEAgLTEwMDAsNiArMTAxNiwxNCBAQAogICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+LTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249 ImxlZnQiPjwvZW50cnk+CiAgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVu dHJ5IGFsaWduPSJsZWZ0Ij48bGl0ZXJhbD5EUk9QIFZBUklBQkxFPC9saXRlcmFsPjwvZW50cnk+ CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD5YPC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0iY2VudGVyIj48bGl0ZXJhbD4tPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgIDxlbnRyeSBhbGlnbj0ibGVmdCI+PC9lbnRyeT4KKyAgICAg ICA8L3Jvdz4KICAgICAgICA8cm93PgogICAgICAgICA8ZW50cnkgYWxpZ249ImxlZnQiPjxsaXRl cmFsPkRST1AgVklFVzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICA8ZW50cnkgYWxpZ249ImNl bnRlciI+PGxpdGVyYWw+WDwvbGl0ZXJhbD48L2VudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggNDYxZmMzZjQzN2Mu LjIyYTYzYjUzZTU4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAgLTI1NjkyLDYgKzI1NjkyLDE5IEBAIFNFTEVDVCByZWxu YW1lIEZST00gcGdfY2xhc3MgV0hFUkUgcGdfdGFibGVfaXNfdmlzaWJsZShvaWQpOwogICAgICAg ICBJcyB0eXBlIChvciBkb21haW4pIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CiAgICAgICAgPC9w YXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkg cm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAg ICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdfdmFyaWFibGVfaXNfdmlzaWJs ZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ192 YXJpYWJsZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhcmlhYmxlPC9wYXJh bWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwv cmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJcyBz ZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwv dGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IDQwNWZlNmRjOGI5Li5kNWY0YmNjNmUwOCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKQEAgLTE2NTQsNiArMTY1NCwyMSBAQAogICAgPC9nbG9zc2RlZj4KICAgPC9nbG9z c2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zZXNzaW9uLXZhcmlhYmxlIj4K KyAgIDxnbG9zc3Rlcm0+U2Vzc2lvbiB2YXJpYWJsZTwvZ2xvc3N0ZXJtPgorICAgPGdsb3NzZGVm PgorICAgIDxwYXJhPgorICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9s ZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKKyAgICAgdmFsdWUgaXMgcHJpdmF0 ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4K KyAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJv bGxlZCBieSBwcml2aWxlZ2VzLAorICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVj dHMuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwg c2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAgICA8L3BhcmE+ CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LXNoYXJlZC1tZW1vcnkiPgogICAgPGdsb3NzdGVybT5TaGFyZWQgbWVtb3J5PC9nbG9z c3Rlcm0+CiAgICA8Z2xvc3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2 N2EuLjJmNjdkZTNlMjFiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0Nyw3IEBA IENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0 b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlwZS5zZ21s Ij4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAgICAgICBTWVNURU0gImFsdGVyX3VzZXIuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5nICAgU1lTVEVNICJhbHRlcl91c2VyX21hcHBpbmcu c2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlhYmxlICAgICAgU1lTVEVNICJhbHRlcl92YXJpYWJs ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcu c2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXplLnNnbWwi PgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CkBAIC05 OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBp biB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZVR5cGUgICAgICAgICBTWVNURU0gImNy ZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3Jl YXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVh dGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlVmFyaWFibGUgICAgIFNZU1RF TSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZ U1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBkZWFsbG9jYXRlICAgICAgICAgU1lT VEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFFTlRJVFkgZGVjbGFyZSAgICAgICAgICAgIFNZU1RF TSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVz YWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BU eXBlICAgICAgICAgICBTWVNURU0gImRyb3BfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2Vy ICAgICAgICAgICBTWVNURU0gImRyb3BfdXNlci5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyTWFw cGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgZHJvcFZh cmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BW aWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21sIj4KIDwhRU5USVRZIGVuZCAgICAg ICAgICAgICAgICBTWVNURU0gImVuZC5zZ21sIj4KIDwhRU5USVRZIGV4ZWN1dGUgICAgICAgICAg ICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZh dWx0X3ByaXZpbGVnZXMuc2dtbAppbmRleCA4OWFhY2VjNGZhYi4uMDQxYzc4ZDQzMmYgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbApAQCAtNTEs NiArNTEsMTAgQEAgR1JBTlQgeyB7IFVTQUdFIHwgQ1JFQVRFIH0KICAgICBPTiBTQ0hFTUFTCiAg ICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFt ZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0K IAorR1JBTlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9O IFZBUklBQkxFUworICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdS QU5UIE9QVElPTiBdCisKIFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQogICAgIHsgeyBTRUxF Q1QgfCBJTlNFUlQgfCBVUERBVEUgfCBERUxFVEUgfCBUUlVOQ0FURSB8IFJFRkVSRU5DRVMgfCBU UklHR0VSIHwgTUFJTlRBSU4gfQogICAgIFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQpA QCAtODMsNiArODcsMTIgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gU0NI RU1BUwogICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FE RSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNF TEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZB UklBQkxFUworICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FT Q0FERSB8IFJFU1RSSUNUIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAt MTE3LDE0ICsxMjcsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgog ICAgQ3VycmVudGx5LAogICAgb25seSB0aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVz IChpbmNsdWRpbmcgdmlld3MgYW5kIGZvcmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVu Y3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1ZGluZyBkb21haW5zKSBjYW4gYmUKLSAgIGFsdGVyZWQu ICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9j ZWR1cmVzLgotICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxs aXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21t YW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5n IGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJl cyB0YWtlbgotICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9u bHkgdGhlCi0gICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQu ICBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNl cywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpLCBhbmQgc2Vzc2lvbgorICAg dmFyaWFibGVzIGNhbiBiZSBhbHRlcmVkLiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGlu Y2x1ZGUgYWdncmVnYXRlcworICAgYW5kIHByb2NlZHVyZXMuICBUaGUgd29yZHMgPGxpdGVyYWw+ RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQKKyAgIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBh cmUgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuCisgICAoPGxpdGVyYWw+Uk9VVElORVM8L2xp dGVyYWw+IGlzIHByZWZlcnJlZCBnb2luZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZAorICAgdGVy bSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuIHRvZ2V0aGVyLiAgSW4gZWFybGll ciBQb3N0Z3JlU1FMCisgICByZWxlYXNlcywgb25seSB0aGUgd29yZCA8bGl0ZXJhbD5GVU5DVElP TlM8L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90CisgICBwb3NzaWJsZSB0byBzZXQg ZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVs eS4pCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDg3NTcwZTdkOGIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAg LTAsMCArMSwxNzggQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0 ZXJ2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgIDxw cmltYXJ5PkFMVEVSIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5hbHRlcmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkFMVEVSIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVt Pjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8 L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5B TFRFUiBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+CisgICBjaGFuZ2UgdGhlIGRl ZmluaXRpb24gb2YgYSBzZXNzaW9uIHZhcmlhYmxlCisgIDwvcmVmcHVycG9zZT4KKyA8L3JlZm5h bWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBWQVJJQUJMRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRP IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIFZB UklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVOQU1FIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFj ZWFibGU+CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgVGhlIDxjb21tYW5kPkFMVEVSIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNoYW5n ZXMgdGhlIGRlZmluaXRpb24gb2YgYW4KKyAgIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUuIFRo ZXJlIGFyZSBzZXZlcmFsIHN1YmZvcm1zOgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPk9XTkVSPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG93bmVy IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPlJFTkFNRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlNFVCBTQ0hFTUE8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gbW92 ZXMgdGhlIHNlc3Npb24gdmFyaWFibGUgaW50byBhbm90aGVyIHNjaGVtYS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlz dD4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgT25seSB0aGUgb3duZXIgb3IgYSBzdXBlcnVz ZXIgaXMgYWxsb3dlZCB0byBhbHRlciBhIHNlc3Npb24gdmFyaWFibGUuCisgICBJbiBvcmRlciB0 byBtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIG9uZSBzY2hlbWEgdG8gYW5vdGhlciwgdGhl IHVzZXIKKyAgIG11c3QgYWxzbyBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHBy aXZpbGVnZSBvbiB0aGUgbmV3IHNjaGVtYSAob3IKKyAgIGJlIGEgc3VwZXJ1c2VyKS4KKworICAg SW4gb3JkZXIgdG8gbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBvd25lcnNoaXAgZnJvbSBvbmUg cm9sZSB0byBhbm90aGVyLAorICAgdGhlIHVzZXIgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGlu ZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3CisgICBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBt dXN0IGhhdmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlCisgICBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSdzIHNjaGVtYSAob3IgYmUgYSBzdXBlcnVzZXIpLiBUaGVzZSBy ZXN0cmljdGlvbnMKKyAgIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBk byBhbnl0aGluZyB5b3UgY291bGRuJ3QgZG8gYnkKKyAgIGRyb3BwaW5nIGFuZCByZWNyZWF0aW5n IHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICA8dmFy aWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5hbWUgKHBvc3NpYmx5IHNjaGVtYS1x dWFsaWZpZWQpIG9mIHRoZSBleGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlCisgICAgICAgIHRvIGFs dGVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vzc2lv biB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg ICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgdXNlciBuYW1lIG9mIHRo ZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAg ICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1h PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoZSBuZXcgc2NoZW1hIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8L3Zh cmlhYmxlbGlzdD4KKyAgIDwvcGFyYT4KKyAgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSBhIHNlc3Np b24gdmFyaWFibGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBmb28gUkVOQU1F IFRPIGJvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRv IGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9s aXRlcmFsPiB0bworICAgPGxpdGVyYWw+am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4K K0FMVEVSIFZBUklBQkxFIGJvbyBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIHNjaGVtYSBvZiB0aGUgc2Vzc2lv biB2YXJpYWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5wcml2YXRl PC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NI RU1BIHByaXZhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJh PgorICAgU2Vzc2lvbiB2YXJpYWJsZXMgYW5kIHRoaXMgY29tbWFuZCBpbiBwYXJ0aWN1bGFyIGFy ZSBhIFBvc3RncmVTUUwgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MSBpZD0ic3FsLWFsdGVydmFyaWFibGUtc2VlLWFsc28iPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlz dD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY29tbWVudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0 M2M1NmIxMzMuLjIxY2Q4MDgxOGZiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1l bnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtNjUsNiArNjUs NyBAQCBDT01NRU5UIE9OCiAgIFRSQU5TRk9STSBGT1IgPHJlcGxhY2VhYmxlPnR5cGVfbmFtZTwv cmVwbGFjZWFibGU+IExBTkdVQUdFIDxyZXBsYWNlYWJsZT5sYW5nX25hbWU8L3JlcGxhY2VhYmxl PiB8CiAgIFRSSUdHRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFt ZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9u YW1lPC9yZXBsYWNlYWJsZT4gfAogICBUWVBFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKKyAgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBWSUVXIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+CiB9IElT IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0cmluZ19saXRlcmFsPC9yZXBsYWNl YWJsZT4gfCBOVUxMIH0KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2No ZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAppbmRleCBlZDY5 Mjk4Y2NjNi4uYTgzNGM4NzZiYzkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCkBA IC0xMDMsOSArMTAzLDEwIEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBBVVRIT1JJWkFU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwCiAgICAgICAgIHNjaGVt YS4gQ3VycmVudGx5LCBvbmx5IDxjb21tYW5kPkNSRUFURQogICAgICAgICBUQUJMRTwvY29tbWFu ZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCiAgICAg ICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFNFUVVFTkNFPC9jb21tYW5kPiwg PGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5H UkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMKLSAgICAgICAgd2l0aGluIDxj b21tYW5kPkNSRUFURSBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1h eQotICAgICAgICBiZSBjcmVhdGVkIGluIHNlcGFyYXRlIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hl bWEgaXMgY3JlYXRlZC4KKyAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4sIDxjb21tYW5kPkdSQU5U PC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFZBUklBQkxFPC9jb21tYW5k PiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcyB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAg IFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5IGJlIGNyZWF0ZWQg aW4gc2VwYXJhdGUKKyAgICAgICAgY29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVk LgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5 PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmVjMTY1YWI5NmZjCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE1MSBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZBUklB QkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+ c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vjb25k YXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFU RSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+Cisg IDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8 L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxFPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJw b3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NS RUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KKzwvc3lub3BzaXM+Cisg PC9yZWZzeW5vcHNpc2Rpdj4KKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5k PiBjb21tYW5kIGNyZWF0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgU2Vzc2lvbiB2YXJpYWJs ZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2Vz cyBpcworICAgY29udHJvbGxlZCB2aWEgdGhlIGNvbW1hbmRzIDxjb21tYW5kPkdSQU5UPC9jb21t YW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPi4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiAgUmV0cmlldmluZworICAgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWUg cmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNldCB0bworICAgc29tZXRoaW5nIGVs c2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBj b21tYW5kLgorICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFu c2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCisgICByZWd1bGFyIHZhcmlhYmxlcyBpbiBw cm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2 YXJpYWJsZXMgYXJlIHJldHJpZXZlZCBieSB0aGUgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPgor ICAgY29tbWFuZC4gIFRoZWlyIHZhbHVlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFuZD5MRVQ8L2Nv bW1hbmQ+IGNvbW1hbmQuCisgIDwvcGFyYT4KKworICA8bm90ZT4KKyAgIDxwYXJhPgorICAgIFNl c3Npb24gdmFyaWFibGVzIGNhbiBiZSA8cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBvdGhlciBp ZGVudGlmaWVycy4KKyAgICBGb3IgZGV0YWlscywgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNz aW9uLXZhcmlhYmxlcyIvPi4KKyAgIDwvcGFyYT4KKyAgPC9ub3RlPgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVs aXN0PgorCisgICA8dmFybGlzdGVudHJ5ICBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWlmLW5vdC1l eGlzdHMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xpdGVyYWw+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJy b3IgaWYgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMuIEEgbm90aWNlIGlzIGlzc3VlZCBpbgorICAg ICAgdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtbmFtZSI+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUs IG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kYXRhX3R5cGUiPgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlv bmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIGRhdGEgdHlwZSBvZiB0aGUgc2Vzc2lvbgor ICAgICAgdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1jb2xs YXRlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5DT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248 L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5DT0xMQVRFPC9saXRlcmFsPiBjbGF1c2UgYXNzaWducyBh IGNvbGxhdGlvbiB0byB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgKHdoaWNoIG11c3QgYmUg b2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZSkuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgdGhl IGRhdGEgdHlwZSdzIGRlZmF1bHQgY29sbGF0aW9uIGlzIHVzZWQuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPk5vdGVzPC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFVzZSB0aGUgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFu ZCB0byByZW1vdmUgYSBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBDcmVhdGUgYW4gZGF0ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVy YWw+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0 aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklB QkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJp bmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwv bWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNWJkYjM1NjBmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDExNyBAQAorPCEtLQorZG9jL3NyYy9zZ21s L3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisK KzxyZWZlbnRyeSBpZD0ic3FsLWRyb3B2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwt ZHJvcHZhcmlhYmxlIj4KKyAgPHByaW1hcnk+RFJPUCBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgIDxzZWNvbmRhcnk+cmVtb3Zpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIFZBUklBQkxFPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExh bmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1l ZGl2PgorICA8cmVmbmFtZT5EUk9QIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5y ZW1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgVkFSSUFCTEUgWyBJRiBFWElTVFMg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2 PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gcmVtb3ZlcyBhIHNlc3Npb24g dmFyaWFibGUuCisgICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIG9ubHkgYmUgcmVtb3ZlZCBieSBp dHMgb3duZXIgb3IgYSBzdXBlcnVzZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4K KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFs PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93 IGFuIGVycm9yIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0LiBBIG5vdGlj ZSBpcworICAgICAgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxs eSBzY2hlbWEtcXVhbGlmaWVkLCBvZiBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQg ZGVwZW5kIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChzdWNoIGFzCisgICAgICB2aWV3cyksIGFu ZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAg IChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBp ZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlzCisgICAgICB0aGUgZGVmYXVsdC4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92 YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKworPHByb2dyYW1saXN0aW5nPgorRFJPUCBWQVJJ QUJMRSB2YXIxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHBy b2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgor CisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZz ZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5OTlmNjU3ZDVjMC4uNzhm ZjEwZmNmNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKQEAgLTEwMSw2ICsxMDEsMTIgQEAgR1JBTlQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gVE8gPHJlcGxhY2UKICAgICBbIFdJVEggeyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSB7IE9Q VElPTiB8IFRSVUUgfCBGQUxTRSB9IF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KIAorR1JB TlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklB QkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAg ICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgVE8gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFss IC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisK IDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lm aWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3Jldm9rZS5zZ21sCmluZGV4IDhkZjQ5MjI4MWExLi42MjZjMDIzMWQwZCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9r ZS5zZ21sCkBAIC0xMzcsNiArMTM3LDEzIEBAIFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklUIHwg U0VUIH0gT1BUSU9OIEZPUiBdCiAgIHwgQ1VSUkVOVF9ST0xFCiAgIHwgQ1VSUkVOVF9VU0VSCiAg IHwgU0VTU0lPTl9VU0VSCisKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsgeyBT RUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBW QVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0K KyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZST00geyBb IEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFj ZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwv c3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGZmODVh Y2U4M2ZjLi4yNTU3OGYzOTQ2YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtNzUsNiArNzUsNyBAQAog ICAgJmFsdGVyVHlwZTsKICAgICZhbHRlclVzZXI7CiAgICAmYWx0ZXJVc2VyTWFwcGluZzsKKyAg ICZhbHRlclZhcmlhYmxlOwogICAgJmFsdGVyVmlldzsKICAgICZhbmFseXplOwogICAgJmJlZ2lu OwpAQCAtMTI3LDYgKzEyOCw3IEBACiAgICAmY3JlYXRlVHlwZTsKICAgICZjcmVhdGVVc2VyOwog ICAgJmNyZWF0ZVVzZXJNYXBwaW5nOworICAgJmNyZWF0ZVZhcmlhYmxlOwogICAgJmNyZWF0ZVZp ZXc7CiAgICAmZGVhbGxvY2F0ZTsKICAgICZkZWNsYXJlOwpAQCAtMTc1LDYgKzE3Nyw3IEBACiAg ICAmZHJvcFR5cGU7CiAgICAmZHJvcFVzZXI7CiAgICAmZHJvcFVzZXJNYXBwaW5nOworICAgJmRy b3BWYXJpYWJsZTsKICAgICZkcm9wVmlldzsKICAgICZlbmQ7CiAgICAmZXhlY3V0ZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9n L01ha2VmaWxlCmluZGV4IDE1ODlhNzVmZDUzLi43YTkwZmNmYzQ1NyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlCkBAIC00NSw2ICs0NSw3IEBAIE9CSlMgPSBcCiAJcGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vi c2NyaXB0aW9uLm8gXAogCXBnX3R5cGUubyBcCisJcGdfdmFyaWFibGUubyBcCiAJc3RvcmFnZS5v IFwKIAl0b2FzdGluZy5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hr LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGE0NGNjZWUzYjY4Li42OTY4 YjFlNmViZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJs ZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5k cy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC0yOTAs NiArMjkxLDkgQEAgcmVzdHJpY3RfYW5kX2NoZWNrX2dyYW50KGJvb2wgaXNfZ3JhbnQsIEFjbE1v ZGUgYXZhaWxfZ29wdGlvbnMsIGJvb2wgYWxsX3ByaXZzLAogCQljYXNlIE9CSkVDVF9QQVJBTUVU RVJfQUNMOgogCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FM TF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBub3QgcmVh Y2hlZCwgYnV0IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTUzNCw2ICs1MzgsMTAgQEAgRXhl Y3V0ZUdyYW50U3RtdChHcmFudFN0bXQgKnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9B TExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcGFyYW1ldGVyIik7CiAJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAo aW50KSBzdG10LT5vYmp0eXBlKTsKQEAgLTYzOSw2ICs2NDcsOSBAQCBFeGVjR3JhbnRTdG10X29p ZHMoSW50ZXJuYWxHcmFudCAqaXN0bXQpCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJ CQlFeGVjR3JhbnRfUGFyYW1ldGVyKGlzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0bXQsIFZhcmlhYmxlUmVsYXRpb25JZCwg QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUsIE5VTEwpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJ IChpbnQpIGlzdG10LT5vYmp0eXBlKTsKQEAgLTgyOSw2ICs4NDAsMTggQEAgb2JqZWN0TmFtZXNU b09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmpuYW1lcywgYm9vbCBpc19ncmFudCkK IAkJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIHBhcmFtZXRlcklkKTsKIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2goY2VsbCwgb2Jq bmFtZXMpCisJCQl7CisJCQkJUmFuZ2VWYXIgICAqdmFydmFyID0gKFJhbmdlVmFyICopIGxmaXJz dChjZWxsKTsKKwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBMb29rdXBWYXJpYWJs ZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxuYW1lLAorCQkJCQkJ CQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcmVsT2lkKTsK KwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXpl ZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBvYmp0eXBlKTsKQEAgLTkxOCw2 ICs5NDEsMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlz dCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJ CQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQl7CisJCQkJCVNj YW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJsZVNjYW5EZXNjIHNj YW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5pdCgma2V5LAorCQkJ CQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJQlRFcXVhbFN0cmF0 ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlk KSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIEFjY2Vzc1No YXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhyZWwsIDEsICZr ZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2NhbiwgRm9yd2FyZFNj YW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlvaWQgPSAoKEZvcm1f cGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2JqZWN0cyA9IGxhcHBl bmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9lbmRzY2FuKHNjYW4p OworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJfQorCQkJCWJy ZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKQEAgLTEwNzcsNiAr MTEyNiwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19TQ0hFTUE7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxp ZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2NoZW1hIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxF OworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBh Y3Rpb24tPm9ianR5cGUpOwpAQCAtMTI2OCw2ICsxMzIxLDEyIEBAIFNldERlZmF1bHRBQ0woSW50 ZXJuYWxEZWZhdWx0QUNMICppYWNscykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJ R0hUU19TQ0hFTUE7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW9i anR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFsbF9wcml2cyAmJiB0 aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlhY2xz LT5vYmp0eXBlKTsKQEAgLTE1MTEsNiArMTU3MCw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNM KE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIERFRkFDTE9CSl9O QU1FU1BBQ0U6CiAJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9TQ0hFTUE7CiAJCQkJYnJlYWs7 CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNU X1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91bGRuJ3QgZ2V0 IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFDTCB0eXBlOiAl ZCIsCkBAIC0xNTcxLDYgKzE2MzMsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9s ZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJBY2xSZWxhdGlv bklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsKIAkJCQlicmVh azsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1 bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFrOwpAQCAtMjgx MCw2ICsyODc1LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlw ZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9u b29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJ CWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24g ZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI5MjEsNiArMjk4OSw5IEBA IGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJ CQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBv d25lciBvZiB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJ CQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIpOwogCQkJCQkJ YnJlYWs7CkBAIC0zMDY5LDYgKzMxNDAsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5cGUgb2JqdHlw ZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlkLAogCQkJcmV0 dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gb2JqZWN0 X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soVmFyaWFi bGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChp bnQpIG9ianR5cGUpOwpAQCAtNDMzNiw2ICs0NDA5LDEwIEBAIGdldF91c2VyX2RlZmF1bHRfYWNs KE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQogCQkJZGVmYWNs b2JqdHlwZSA9IERFRkFDTE9CSl9OQU1FU1BBQ0U7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQli cmVhazsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVu ZGVuY3kuYwppbmRleCAwNDg5Y2JhYmNiOC4uYzlkNjg2NjY1ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCkBAIC02NSwxMiArNjUsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3Rl bXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5k cy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRz LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXF1ZW5jZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTE0NDQsNiArMTQ0 NiwxMCBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdz KQogCQkJUmVtb3ZlUHVibGljYXRpb25CeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7 CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlEcm9wVmFyaWFibGVCeUlkKG9iamVj dC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoKIAkJY2Fz ZSBDb2xsYXRpb25SZWxhdGlvbklkOgogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMmYzZGVkOGEwZTcuLmJmZGI0ZGEzMzAxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKQEAgLTMyLDYgKzMyLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZp bGVzKAogICAncGdfc2hkZXBlbmQuYycsCiAgICdwZ19zdWJzY3JpcHRpb24uYycsCiAgICdwZ190 eXBlLmMnLAorICAncGdfdmFyaWFibGUuYycsCiAgICdzdG9yYWdlLmMnLAogICAndG9hc3Rpbmcu YycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA0M2I3MDc2OTlkNy4uZmQ5OTRjOTJk NGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2hhc2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk3MSw2 ICs5NzIsNjcgQEAgUmVsYXRpb25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBib29sICppc19taXNz aW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogVmFyaWFibGVJc1Zpc2libGUKKyAq CQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlz aWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3Vs ZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxl IG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpCit7CisJSGVh cFR1cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFt ZXNwYWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodmFydHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBH RVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCS8qCisJ ICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwgaXQgYWluJ3Qg dmlzaWJsZS4gV2UKKwkgKiBkb24ndCBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg aW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+ dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJjaFBhdGgsIHZh cm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkvKgorCQkgKiBJ ZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2libGU7IGl0IGNv dWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUg ZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9y IGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCQlMaXN0Q2VsbCAgICpsOworCisJCXZpc2libGUgPSBm YWxzZTsKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQlPaWQJCQluYW1l c3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2YXJuYW1l c3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQgaXQgZmlyc3QgaW4gcGF0aCAqLworCQkJCXZpc2li bGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0X3Zhcm5h bWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBzb21l dGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisK KwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVybiB2aXNpYmxlOworfQogCiAvKgog ICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI3NCw2ICszMzM2LDY2IEBAIFRTQ29uZmlnSXNWaXNp YmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0K IAorLyoKKyAqIFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBv c3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJu cyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQK K0xvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2 YXJuYW1lLAorCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCW5hbWVzcGFjZUlkOwor CU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisJTGlzdENlbGwgICAqbDsKKworCWlmIChuc3Bu YW1lKQorCXsKKwkJbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1l LCBtaXNzaW5nX29rKTsKKworCQkvKiBpZiBuc3BuYW1lIGlzIGEga25vd24gbmFtZXNwYWNlLCB0 aGUgdmFyaWFibGUgbXVzdCBiZSB0aGVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJ ZCkpCisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFu dW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwK KwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9CisJZWxz ZQorCXsKKwkJLyogaXRlcmF0ZSBvdmVyIHRoZSBzY2hlbWFzIG9uIHRoZSBzZWFyY2hfcGF0aCAq LworCQlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJZm9yZWFjaChsLCBhY3RpdmVTZWFy Y2hQYXRoKQorCQl7CisJCQluYW1lc3BhY2VJZCA9IGxmaXJzdF9vaWQobCk7CisKKwkJCXZhcm9p ZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lk LAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJ ZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZCkpCisJ CQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIU9pZElzVmFsaWQodmFyb2lkKSAmJiAhbWlzc2lu Z19vaykKKwl7CisJCWlmIChuc3BuYW1lKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCW5zcG5hbWUsIHZhcm5hbWUp KSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2YXJuYW1lKSkpOworCX0KKworCXJldHVybiB2YXJvaWQ7 Cit9CiAKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUKQEAgLTUwNzUsMyArNTE5Nywx NCBAQCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVU VVJOX0JPT0woaXNPdGhlclRlbXBOYW1lc3BhY2Uob2lkKSk7CiB9CisKK0RhdHVtCitwZ192YXJp YWJsZV9pc192aXNpYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VU QVJHX09JRCgwKTsKKworCWlmICghU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKFZBUklBQkxFT0lELCBP YmplY3RJZEdldERhdHVtKG9pZCkpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJO X0JPT0woVmFyaWFibGVJc1Zpc2libGUob2lkKSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jCmluZGV4IDg1YTdiN2U2NDFhLi5lZTcwZWVlZWQ0NCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9v YmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Rz X3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTYzNiw2ICs2 MzcsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlwZSBPYmplY3RQcm9wZXJ0eVtd ID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJZmFsc2UKIAl9LAorCXsKKwkJInNlc3Npb24g dmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9uSWQsCisJCVZhcmlhYmxlT2lkSW5kZXhJZCwK KwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFNRU5TUCwKKwkJQW51bV9wZ192YXJpYWJsZV9v aWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJu YW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyb3duZXIsCisJCUFudW1fcGdfdmFyaWFi bGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUsCisJCXRydWUKKwl9CiB9OwogCiAvKgpAQCAt ODMxLDYgKzg0Niw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJfSwK IAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9CSkVDVF9TVEFUSVNUSUNfRVhUCisJfSwKKwl7 CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNUX1ZBUklBQkxFCiAJfQogfTsKIApAQCAtODU2 LDYgKzg3NCw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19hdHRy ZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJCWJvb2wgbWlzc2luZ19vayk7CiBz dGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfdHlwZShPYmplY3RUeXBlIG9i anR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAqdHlwZW5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAq b2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVj dF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkJ CQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9h ZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBvYmp0eXBlLApAQCAtMTEyNiw2ICsxMTQ1LDkg QEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAog CQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwogCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAw OwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJYWRkcmVzcyA9IGdl dF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5n X29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBkZWZhdWx0LCB0byBsZXQgY29tcGlsZXIgd2Fy biBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQogCkBAIC0yMDAwLDE2ICsyMDIyLDIwIEBAIGdl dF9vYmplY3RfYWRkcmVzc19kZWZhY2woTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJ CWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCW9ianR5cGVfc3RyID0gInNjaGVtYXMiOwog CQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJb2JqdHlwZV9zdHIgPSAi dmFyaWFibGVzIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJCSBlcnJt c2coInVucmVjb2duaXplZCBkZWZhdWx0IEFDTCBvYmplY3QgdHlwZSBcIiVjXCIiLCBvYmp0eXBl KSwKLQkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIs IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwKKwkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0 eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4i LAogCQkJCQkJCSBERUZBQ0xPQkpfUkVMQVRJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9TRVFVRU5D RSwKIAkJCQkJCQkgREVGQUNMT0JKX0ZVTkNUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfVFlQRSwK LQkJCQkJCQkgREVGQUNMT0JKX05BTUVTUEFDRSkpKTsKKwkJCQkJCQkgREVGQUNMT0JKX05BTUVT UEFDRSwKKwkJCQkJCQkgREVGQUNMT0JKX1ZBUklBQkxFKSkpOwogCX0KIAogCS8qCkBAIC0yMDkz LDYgKzIxMTksMjQgQEAgdGV4dGFycmF5X3RvX3N0cnZhbHVlbGlzdChBcnJheVR5cGUgKmFycikK IAlyZXR1cm4gbGlzdDsKIH0KIAorLyoKKyAqIEZpbmQgdGhlIE9iamVjdEFkZHJlc3MgZm9yIGEg c2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworZ2V0X29iamVjdF9h ZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9iamVj dEFkZHJlc3MgYWRkcmVzczsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2 YXJuYW1lID0gTlVMTDsKKworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgVmFyaWFibGVSZWxh dGlvbklkLCBJbnZhbGlkT2lkKTsKKworCURlY29uc3RydWN0UXVhbGlmaWVkTmFtZShvYmplY3Qs ICZuc3BuYW1lLCAmdmFybmFtZSk7CisJYWRkcmVzcy5vYmplY3RJZCA9IExvb2t1cFZhcmlhYmxl KG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdfb2spOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisK IC8qCiAgKiBTUUwtY2FsbGFibGUgdmVyc2lvbiBvZiBnZXRfb2JqZWN0X2FkZHJlc3MKICAqLwpA QCAtMjI4Nyw2ICsyMzMxLDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6 CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCW9i am5vZGUgPSAoTm9kZSAqKSBuYW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19N RVRIT0Q6CkBAIC0yNDU4LDYgKzI1MDMsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCBy b2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNl IE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNh c2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlp ZiAoIW9iamVjdF9vd25lcmNoZWNrKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJZCwg cm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUs CiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CkBA IC0zNDQ2LDYgKzM0OTIsMzIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2Fz ZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlI ZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9 IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJ CSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAoVmFyaWFibGVJc1Zpc2libGUob2JqZWN0LT5vYmpl Y3RJZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdl dF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJzZXNzaW9uIHZhcmlhYmxlICVzIiksCisJCQkJCQkJCSBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cih2 YXJmb3JtLT52YXJuYW1lKSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJl YWs7CisJCQl9CisKIAkJY2FzZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1 cGxlCXR1cDsKQEAgLTM3OTgsNiArMzg3MCwxNiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25z dCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgXygi ZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzY2hlbWFzIGJlbG9uZ2luZyB0byByb2xlICVzIiks CiAJCQkJCQkJCQkJIHJvbGVuYW1lKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9C Sl9WQVJJQUJMRToKKwkJCQkJCWlmIChuc3BuYW1lKQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lv biB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMgaW4gc2NoZW1hICVzIiksCisJCQkJCQkJ CQkJCSByb2xlbmFtZSwgbnNwbmFtZSk7CisJCQkJCQllbHNlCisJCQkJCQkJYXBwZW5kU3RyaW5n SW5mbygmYnVmZmVyLAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBz ZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAorCQkJCQkJCQkJCQkgcm9s ZW5hbWUpOworCQkJCQkJYnJlYWs7CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQkvKiBzaG91bGRuJ3Qg Z2V0IGhlcmUgKi8KIAkJCQkJCWlmIChuc3BuYW1lKQpAQCAtNDYxNCw2ICs0Njk2LDEwIEBAIGdl dE9iamVjdFR5cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaykKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInRyYW5zZm9y bSIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsK KwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczog JXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KQEAgLTU3MjAsNiArNTgwNiwxMCBAQCBnZXRPYmpl Y3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKIAkJCQkJCQkJCQkJICAgIiBvbiBzY2hlbWFzIik7 CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkJCSAgICIgb24gc2Vzc2lvbiB2 YXJpYWJsZXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCWlmIChvYmpuYW1lKQpAQCAt NTk2MCw2ICs2MDUwLDMzIEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9u SWQ6CisJCQl7CisJCQkJY2hhcgkgICAqc2NoZW1hOworCQkJCWNoYXIJICAgKnZhcm5hbWU7CisJ CQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJCQl0 dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0 LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJ CQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFi bGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29y X3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwkJCQl2YXJuYW1lID0gTmFtZVN0cih2YXJm b3JtLT52YXJuYW1lKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiVzIiwKKwkJ CQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKHNjaGVtYSwgdmFybmFtZSkpOworCisJ CQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHZhcm5h bWUpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwg b2JqZWN0LT5jbGFzc0lkKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKaW5kZXggNzUz YWZiODg0NTMuLjFlYTNkNmRiMDVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCkBAIC00 Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0 ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCkBAIC0xNzE0LDYgKzE3MTUsNyBAQCBzaGRlcFJlYXNzaWduT3duZWRfT3du ZXIoRm9ybV9wZ19zaGRlcGVuZCBzZGVwRm9ybSwgT2lkIG5ld3JvbGUpCiAJCWNhc2UgRGF0YWJh c2VSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKIAkJY2FzZSBUU0RpY3Rp b25hcnlSZWxhdGlvbklkOgorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKIAkJCUFsdGVyT2Jq ZWN0T3duZXJfaW50ZXJuYWwoc2RlcEZvcm0tPmNsYXNzaWQsCiAJCQkJCQkJCQkgIHNkZXBGb3Jt LT5vYmppZCwKIAkJCQkJCQkJCSAgbmV3cm9sZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUzYTg2MWM4Y2JhCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0wLDAg KzEsMjU1IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192YXJpYWJsZS5jCisgKgkJ c2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy NCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIK KworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVu Y3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2Uu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCisKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBj aGFyICp2YXJOYW1lLAorCQkJCQkJCQkJIE9pZCB2YXJOYW1lc3BhY2UsCisJCQkJCQkJCQkgT2lk IHZhclR5cGUsCisJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAorCQkJCQkJCQkJIE9pZCB2YXJP d25lciwKKwkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAorCQkJCQkJCQkJIGJvb2wgaWZfbm90 X2V4aXN0cyk7CisKKworLyoKKyAqIENyZWF0ZXMgZW50cnkgaW4gcGdfdmFyaWFibGUgdGFibGUK KyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5cGUsCisJCQkJaW50 MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9uLAor CQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlBY2wJCSAgICp2YXJhY2w7CisJTmFtZURhdGEJ dmFybmFtZTsKKwlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CisJRGF0dW0JCXZhbHVl c1tOYXR0c19wZ192YXJpYWJsZV07CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisJ VHVwbGVEZXNjCXR1cGRlc2M7CisJT2JqZWN0QWRkcmVzcyBteXNlbGYsCisJCQkJcmVmZXJlbmNl ZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOworCU9pZAkJCXZhcmlkOworCisJQXNzZXJ0KHZh ck5hbWUpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck5hbWVzcGFjZSkpOworCUFzc2VydChPaWRJ c1ZhbGlkKHZhclR5cGUpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJPd25lcikpOworCisJcmVs ID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJ LyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRlcy4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcmVh bGx5IHByZXZlbnQKKwkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5p Y2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCisJICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlv biBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KKwkgKi8KKwlpZiAoU2VhcmNoU3lz Q2FjaGVFeGlzdHMyKFZBUklBQkxFTkFNRU5TUCwKKwkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSh2 YXJOYW1lKSwKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKSkpCisJewor CQlpZiAoaWZfbm90X2V4aXN0cykKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxl IFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJCXZhck5hbWUpKSk7CisJ CWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkg ZXhpc3RzIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhj bHVzaXZlTG9jayk7CisKKwkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOworCX0KKworCW1l bXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBz aXplb2YobnVsbHMpKTsKKworCW5hbWVzdHJjcHkoJnZhcm5hbWUsIHZhck5hbWUpOworCisJdmFy aWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdf dmFyaWFibGVfb2lkKTsKKworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAt IDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKKwl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5 cGUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXRE YXR1bSh2YXJUeXBtb2QpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0g PSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKworCXZh cmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCisJ CQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlpZiAodmFyYWNsICE9IE5VTEwpCisJCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gUG9pbnRlckdldERhdHVtKHZhcmFjbCk7CisJ ZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUo dHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJl c3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRk X2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRl bmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJl bGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNl ZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNW YWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElP Tl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0 aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJl bmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMo Jm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNz ZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVu Y3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRl cGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQgaW4gZGVmYXVsdCBBQ0wgKi8KKwlyZWNvcmRE ZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgdmFyT3duZXIs IHZhcmFjbCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLworCXJlY29yZERlcGVu ZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisJaGVhcF9mcmVldHVw bGUodHVwKTsKKworCS8qIHBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IGZ1bmN0aW9uICovCisJ SW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCk7 CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2Vs ZjsKK30KKworLyoKKyAqIENyZWF0ZXMgYSBuZXcgdmFyaWFibGUKKyAqCisgKiBVc2VkIGJ5IENS RUFURSBWQVJJQUJMRSBjb21tYW5kCisgKi8KK09iamVjdEFkZHJlc3MKK0NyZWF0ZVZhcmlhYmxl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCit7CisJT2lk CQkJbmFtZXNwYWNlaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQl0eXBpZDsKKwlp bnQzMgkJdHlwbW9kOworCU9pZAkJCXZhcm93bmVyID0gR2V0VXNlcklkKCk7CisJT2lkCQkJY29s bGF0aW9uOworCU9pZAkJCXR5cGNvbGxhdGlvbjsKKwlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOwor CisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uo c3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CisKKwl0eXBlbmFtZVR5cGVJZEFuZE1vZChw c3RhdGUsIHN0bXQtPnR5cGVOYW1lLCAmdHlwaWQsICZ0eXBtb2QpOworCisJLyogZGlzYWxsb3cg cHNldWRvdHlwZXMgKi8KKwlpZiAoZ2V0X3R5cHR5cGUodHlwaWQpID09IFRZUFRZUEVfUFNFVURP KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZ UEUpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBl ICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSkpKTsKKworCWFjbHJlc3VsdCA9IG9i amVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNB R0UpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yX3R5 cGUoYWNscmVzdWx0LCB0eXBpZCk7CisKKwl0eXBjb2xsYXRpb24gPSBnZXRfdHlwY29sbGF0aW9u KHR5cGlkKTsKKworCWlmIChzdG10LT5jb2xsQ2xhdXNlKQorCQljb2xsYXRpb24gPSBMb29rdXBD b2xsYXRpb24ocHN0YXRlLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+Y29sbG5hbWUsCisJ CQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbik7CisJZWxzZQorCQljb2xsYXRpb24g PSB0eXBjb2xsYXRpb247OworCisJLyogY29tcGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRv IGFuIHVuY29sbGF0YWJsZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAh T2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQgYnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkp LAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2Nh dGlvbikpKTsKKworCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5y ZWxuYW1lLAorCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJ CSAgIHR5cG1vZCwKKwkJCQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJ CQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBm b3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFy aWFibGUiLAorCQkgc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsK KworCS8qIHdlIHdhbnQgU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nlc3MgdG8gc2VlIHRo ZSBjYXRhbG9nIGNoYW5nZXMuICovCisJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCXJl dHVybiB2YXJpYWJsZTsKK30KKworLyoKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQgcmVn aXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgorICovCit2b2lk CitEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKK3sKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1 cGxlCXR1cDsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNs dXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0 SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsK KworCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CisKKwlSZWxlYXNlU3lz Q2FjaGUodHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvYWx0ZXIuYwppbmRleCA0Zjk5ZWJiNDQ3MC4uNjNmYTk5ZmFkMzQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv YWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC0xMzksNiArMTQwLDEwIEBA IHJlcG9ydF9uYW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUs IE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9 IGdldHRleHRfbm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBl eGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxh dGlvbklkOgorCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0 ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVt YSBcIiVzXCIiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3Vw cG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDE4LDYg KzQyMyw3IEBAIEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNU X1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9T VUJTQ1JJUFRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFk ZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpAQCAtNTYxLDYgKzU2Nyw3IEBA IEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAog CQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQlj YXNlIE9CSkVDVF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJ CQlSZWxhdGlvbgljYXRhbG9nOwogCQkJCVJlbGF0aW9uCXJlbGF0aW9uOwpAQCAtNjQ1LDYgKzY1 Miw3IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJZCwgT2lkIG9iamlkLCBP aWQgbnNwT2lkLAogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNUZW1w bGF0ZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgorCQljYXNlIFZhcmlh YmxlUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCkBAIC04NzUsNiAr ODgzLDcgQEAgRXhlY0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10ICpzdG10KQogCQljYXNl IE9CSkVDVF9UQUJMRVNQQUNFOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2Ug T0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJ CQkJUmVsYXRpb24JcmVsYXRpb247CiAJCQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMKaW5kZXggODVlZWM3ZTM5NDcuLjNjY2UxN2U5MmFmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMKQEAgLTQ3Niw2ICs0NzYsMTAgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBp bmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QpCiAJCQltc2cgPSBnZXR0ZXh0X25v b3AoInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKIAkJCW5h bWUgPSBzdHJWYWwob2JqZWN0KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCW1zZyA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QsIHNraXBwaW5nIik7CisJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShM aXN0LCBvYmplY3QpKTsKKwkJCWJyZWFrOwogCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2Fz ZSBPQkpFQ1RfREFUQUJBU0U6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXgg N2E1ZWQ2Yjk4NTAuLjZkNDFhYTdlYzNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5jCkBAIC0yMTU2LDYgKzIxNTYsOCBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9UWVBF OgogCQkJcmV0dXJuICJUWVBFIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4g IlZBUklBQkxFIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNl IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0yMjM5 LDYgKzIyNDEsOCBAQCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0 eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFUyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQly ZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklB QkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpF Q1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMKaW5kZXggNTYwNzI3M2JmOWYuLmMwMjZhYjVkY2I4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2Jq ZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1Rf VFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKaW5kZXggYjNjYzZmOGY2OTAuLmM0MWU5NTIxZDAxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKQEAgLTY2NjEsNiArNjY2Miw3IEBAIEFUVHlwZWRUYWJs ZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNt ZCwKICAqIChwb3NzaWJseSBuZXN0ZWQgc2V2ZXJhbCBsZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUg dHlwZXMsIGFycmF5cywgZXRjISkuCiAgKiBFdmVudHVhbGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFn YXRlIHRoZSBjaGVjayBvciByZXdyaXRlIG9wZXJhdGlvbgogICogaW50byBzdWNoIHRhYmxlcywg YnV0IGZvciBub3csIGp1c3QgZXJyb3Igb3V0IGlmIHdlIGZpbmQgYW55LgorICogQWxzbywgY2hl Y2sgaWYgInR5cGVPaWQiIGlzIHVzZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFibGUu CiAgKgogICogQ2FsbGVyIHNob3VsZCBwcm92aWRlIGVpdGhlciB0aGUgYXNzb2NpYXRlZCByZWxh dGlvbiBvZiBhIHJvd3R5cGUsCiAgKiBvciBhIHR5cGUgbmFtZSAobm90IGJvdGgpIGZvciB1c2Ug aW4gdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFueS4KQEAgLTY3MjQsNiArNjcyNiw0NSBAQCBmaW5k X2NvbXBvc2l0ZV90eXBlX2RlcGVuZGVuY2llcyhPaWQgdHlwZU9pZCwgUmVsYXRpb24gb3JpZ1Jl bGF0aW9uLAogCQkJY29udGludWU7CiAJCX0KIAorCQkvKiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1 c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwZ19kZXBlbmQt PmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJCQlPaWQJCQl2YXJpZCA9IHBn X2RlcGVuZC0+b2JqaWQ7CisKKwkJCWlmIChvcmlnVHlwZU5hbWUpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJ CSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlvcmlnVHlwZU5hbWUsCisJCQkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwK KwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlm IChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBF KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVj YXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9u YW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlv bi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGZvcmVpZ24gdGFibGUgXCIlc1wiIGJlY2F1c2Ug c2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkJCSBvcmlnUmVsYXRpb24t PnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlv bi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNz aW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKworCQkJY29udGludWU7CisJCX0KKwogCQkvKiBFbHNl LCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHJlbGF0aW9ucyAqLwogCQlpZiAocGdfZGVw ZW5kLT5jbGFzc2lkICE9IFJlbGF0aW9uUmVsYXRpb25JZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggODRjZWY1N2E3MDcuLjUxYjkyNmViZGMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUzLDYg KzUzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdyYW1wYXJzZS5oIgpAQCAtMjk0 LDggKzI5NSw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCUNvbnN0cmFpbnRzU2V0U3Rt dCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQKIAkJQ3JlYXRlRG9tYWluU3Rt dCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBDcmVhdGVPcENsYXNzU3RtdAog CQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQgQ3JlYXRlUExhbmdTdG10Ci0J CUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3Rt dCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2 ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVT ZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQgQ3JlYXRlU3RhdHNTdG10CisJ CUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3JlYXRlRm9yZWlnblNlcnZlclN0 bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3NlcnRpb25TdG10IENyZWF0ZVRy YW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRUcmlnU3RtdAogCQlDcmVhdGVV c2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9sZVN0bXQgQ3JlYXRlUG9saWN5 U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQgRGVmaW5lU3RtdCBEZWxldGVT dG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzg3LDggKzc4OCw4IEBAIHN0YXRpYyBOb2RlICpt YWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2Rl ICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJT05BTCBVTkNPTU1JVFRFRCBV TkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElTVEVOIFVOTE9HR0VEIFVOVElM IFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZB TFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJPU0UgVkVSU0lPTl9Q IFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZB TFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFCTEUgVkFSSUFCTEVTCisJVkFSSUFESUMgVkFSWUlO RyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxFCiAKIAlXSEVOIFdIRVJFIFdI SVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JLIFdSQVBQRVIgV1JJVEUK IApAQCAtMTA1OCw2ICsxMDU5LDcgQEAgc3RtdDoKIAkJCXwgQ3JlYXRlUG9saWN5U3RtdAogCQkJ fCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3RtdAorCQkJfCBDcmVhdGVTZXNz aW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENyZWF0ZVN0bXQKIAkJCXwgQ3Jl YXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTYwMiw2ICsxNjA0LDcgQEAgc2NoZW1hX3N0bXQ6CiAJ CQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAogCQkJfCBWaWV3U3RtdAorCQkJfCBD cmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTE1MCw2ICs1MTUzLDM0IEBAIGNyZWF0 ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFSSUFCTEUgdmFybmFtZSBbQVNdIHR5 cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0ZVNlc3Npb25WYXJTdG10Ogor CQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5v ZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQzOworCQkJCQlu LT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBu OworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVh dGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJ CQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29s bENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0g dHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9u IF0KQEAgLTY5MzYsNiArNjk2Nyw3IEBAIG9iamVjdF90eXBlX2FueV9uYW1lOgogCQkJfCBURVhU X1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVDVF9UU0RJQ1RJT05BUlk7IH0KIAkJ CXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0gT0JKRUNUX1RTVEVNUExBVEU7IH0K IAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJeyAkJCA9IE9CSkVDVF9UU0NPTkZJ R1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7 IH0KIAkJOwogCiAvKgpAQCAtNzgxMiw2ICs3ODQ0LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJ CQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgVkFSSUFCTEUgcXVh bGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0 ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFDTF9U QVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQlu LT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IEFMTCBUQUJMRVMgSU5fUCBT Q0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQg KikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC03ODU3LDYgKzc4OTcsMTQgQEAgcHJp dmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJCQkkJCA9IG47CiAJCQkJfQor CQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJp dlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwor CQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1NDSEVNQTsKKwkJCQkJbi0+b2Jq dHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQ1OworCQkJCQkkJCA9IG47 CisJCQkJfQogCQk7CiAKIApAQCAtODA1NCw2ICs4MTAyLDcgQEAgZGVmYWNsX3ByaXZpbGVnZV90 YXJnZXQ6CiAJCQl8IFNFUVVFTkNFUwkJeyAkJCA9IE9CSkVDVF9TRVFVRU5DRTsgfQogCQkJfCBU WVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwgU0NIRU1BUwkJeyAkJCA9IE9CSkVD VF9TQ0hFTUE7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJ CTsKIAogCkBAIC05ODM2LDYgKzk4ODUsMjQgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRF IGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFS SUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4g PSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJ QUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld25hbWUgPSAk NjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJ CQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFueV9uYW1lIFJFTkFNRSBUTyBu YW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJ CQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChO b2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0 cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogb3B0X2NvbHVtbjogQ09M VU1OCkBAIC0xMDE5Nyw2ICsxMDI2NCwyNCBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJ CW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJ CXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlB bHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQp OworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3Qg PSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDY7CisJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJ QUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFs dGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7 CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9 IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19v ayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKQEAgLTEwNDc4LDYgKzEwNTYzLDE0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRF UiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJ CQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwg QUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9sZVNwZWMKKwkJCQl7CisJCQkJCUFs dGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0bXQpOworCQkJCQluLT5vYmpl Y3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsK KwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7 CiAKIApAQCAtMTc4MDUsNiArMTc4OTgsOCBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZB TElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCisJCQl8IFZBUklBQkxFCisJCQl8 IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0x ODQ1Nyw2ICsxODU1Miw4IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJ fCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJ CXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJTSU9OX1AKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCmluZGV4IDc5Y2FkNGFiMzBjLi4zNWYwNzk0MTM0YyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMDQsNiArMTA0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlM aXN0CSAgICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0ZW1zICovCiAJTGlzdAkgICAqdHJp Z2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwogCUxpc3QJICAgKmdyYW50czsJCQkv KiBHUkFOVCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxlczsJCS8qIENSRUFURSBWQVJJQUJM RSBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsKIAogCkBAIC0zNzkxLDYgKzM3 OTIsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0 cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5kZXhlcyA9IE5JTDsKIAljeHQudHJp Z2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwljeHQudmFyaWFibGVzID0gTklMOwog CiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEg ZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpAQCAtMzg1OSw2ICszODYxLDE1IEBAIHRyYW5zZm9ybUNy ZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hl bWFOYW1lKQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4dC5ncmFudHMsIGVsZW1lbnQpOwog CQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJeworCQkJ CQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIGVs ZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2NoZW1hbmFtZSwgJmVscC0+dmFyaWFi bGUtPnNjaGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVzID0gbGFwcGVuZChjeHQudmFyaWFi bGVzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkJIChpbnQpIG5vZGVU YWcoZWxlbWVudCkpOwpAQCAtMzg3Miw2ICszODgzLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1h U3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJ cmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5kZXhlcyk7CiAJcmVzdWx0ID0gbGlz dF9jb25jYXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJl c3VsdCwgY3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmFy aWFibGVzKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IGIyZWE4MTI1 YzkyLi40NWFmMzg3N2VhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK KysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgpAQCAtMTgyLDYgKzE4 Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkK IAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgogCQlj YXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10Ogog CQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0YXRzU3RtdDoKIAkJY2Fz ZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg2LDYgKzEzODgsMTAgQEAgUHJvY2Vzc1V0aWxpdHlTbG93 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVh dGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3JlYXRlVmFyaWFibGUocHN0YXRlLCAo Q3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJCS8q CiAJCQkJICogKioqKioqKioqKioqKiBvYmplY3QgY3JlYXRpb24gLyBkZXN0cnVjdGlvbiAqKioq KioqKioqKioqKgogCQkJCSAqLwpAQCAtMjMzOCw2ICsyMzQ0LDkgQEAgQWx0ZXJPYmplY3RUeXBl Q29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19F WFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfU1RBVElTVElDUzsKIAkJCWJyZWFrOworCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9WQVJJQUJMRTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQlicmVhazsKQEAg LTI2NDYsNiArMjY1NSw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJ CWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJ U1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQl0YWcg PSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJ dGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0zMjIyLDYgKzMyMzQsMTAgQEAgQ3JlYXRl Q29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRf Q3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX1ZBUklBQkxFOwor CQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9h Y2wuYwppbmRleCBkN2IzOTE0MGIzZC4uNWY4MGFmNGY1ZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hY2wuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKQEAg LTg1MCw2ICs4NTAsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25l cklkKQogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJCQlvd25lcl9kZWZhdWx0 ID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOworCQkJb3duZXJf ZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9i anR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KQEAgLTk0Nyw2ICs5NTEsOSBAQCBhY2xkZWZhdWx0X3NxbChQR19GVU5DVElP Tl9BUkdTKQogCQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfVFlQRTsKIAkJCWJyZWFr OworCQljYXNlICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgYWJi cmV2aWF0aW9uOiAlYyIsIG9ianR5cGVjKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNo ZS5jCmluZGV4IDQ4YTI4MGQwODliLi4yZWVkOTQ4OWY5ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgInV0aWxzL2FycmF5LmgiCkBAIC0zNzE0LDMgKzM3MTUsMTE1IEBAIGdldF9zdWJzY3JpcHRp b25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwog fQorCisvKgkJCQktLS0tLS0tLS0tIFBHX1ZBUklBQkxFIENBQ0hFIC0tLS0tLS0tLS0JCQkJICov CisKKy8qCisgKiBnZXRfdmFybmFtZV92YXJpZAorICoJCUdpdmVuIG5hbWUgYW5kIG5hbWVzcGFj ZSBvZiB2YXJpYWJsZSwgbG9vayB1cCB0aGUgT0lELgorICovCitPaWQKK2dldF92YXJuYW1lX3Zh cmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpCit7CisJcmV0dXJuIEdl dFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJ CQkJICAgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1 bSh2YXJuYW1lc3BhY2UpKTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUK KyAqCQlSZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUgbmFtZSBvZiBhIGdpdmVuIHNlc3Np b24gdmFyaWFibGUuCisgKi8KK2NoYXIgKgorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQg dmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJ Y2hhcgkgICAqdmFybmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkp CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHVwKTsKKworCXZhcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOwor CisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZTsKK30KKworLyoKKyAq IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZQorICoJCVJldHVybnMgdGhlIHBnX25hbWVz cGFjZSBPSUQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor T2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQoreworCUhlYXBU dXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFj ZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lc3BhY2Ug PSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJl dHVybiB2YXJuYW1lc3BhY2U7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBn aXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5 cGUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCU9pZAkJCXZhcnR5cGU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVP SUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHR1cCk7CisKKwl2YXJ0eXBlID0gdmFyZm9ybS0+dmFydHlwZTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworCisJcmV0dXJuIHZhcnR5cGU7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0 eXBlLCB0eXBtb2QgYW5kIGNvbGxpZCBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAq Lwordm9pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2YXJp ZCwgT2lkICp0eXBpZCwgaW50MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQlPaWQgKmNvbGxpZCkKK3sK KwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCSp0eXBpZCA9IHZhcmZvcm0tPnZh cnR5cGU7CisJKnR5cG1vZCA9IHZhcmZvcm0tPnZhcnR5cG1vZDsKKwkqY29sbGlkID0gdmFyZm9y bS0+dmFyY29sbGF0aW9uOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Cit9CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5k ZXggYzMyM2I1YmQzZDkuLjQwNzlhZDYwM2FjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0yNDcsNiArMjQ3LDkg QEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19s b2dfaW5mbygicmVhZGluZyBzdWJzY3JpcHRpb24gbWVtYmVyc2hpcCBvZiB0YWJsZXMiKTsKIAln ZXRTdWJzY3JpcHRpb25UYWJsZXMoZm91dCk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyB2YXJp YWJsZXMiKTsKKwlnZXRWYXJpYWJsZXMoZm91dCk7CisKIAlmcmVlKGluaGluZm8pOwkJCQkvKiBu b3QgbmVlZGVkIGFueSBsb25nZXIgKi8KIAogCSpudW1UYWJsZXNQdHIgPSBudW1UYWJsZXM7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMKaW5kZXggNTY0OTg1OWFhMWUuLjUwZGU1ZDBlYTI5IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGls cy5jCkBAIC01MTEsNiArNTExLDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VM RUNUIik7CiAJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKIAl9CisJZWxzZSBpZiAoc3Ry Y21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlZBUklBQkxF UyIpID09IDApCisJeworCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CisJCUNPTlZFUlRf UFJJVigndycsICJVUERBVEUiKTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmgKaW5kZXggZmJmNWYxYzUxNWUuLmU4MWNmZGUyNzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0x MzMsMTIgKzEzMywxNCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlz ZWxGdW5jdGlvbjsKIAlpbnQJCQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJ CXNlbFZhcmlhYmxlOwogCVNpbXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJp bmdMaXN0IGZ1bmN0aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlT aW1wbGVTdHJpbmdMaXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRy aWdnZXJOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5n TGlzdCB2YXJpYWJsZU5hbWVzOwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1z OwkJLyogcGFyYW1ldGVycyB0byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuYwppbmRleCA4YzIwYzI2M2M0Yi4uNmYwMTJhMWI1NTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTMwOTgsNiArMzA5OCwxNCBAQCBfdG9jRW50cnlSZXF1 aXJlZChUb2NFbnRyeSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZlSGFuZGxlICpB SCkKIAkJCQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdnZXJOYW1lcywg dGUtPnRhZykpCiAJCQkJCXJldHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKHRlLT5k ZXNjLCAiVkFSSUFCTEUiKSA9PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2VsVmFyaWFibGUp CisJCQkJCXJldHVybiAwOworCQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhlYWQgIT0gTlVM TCAmJgorCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFyaWFibGVOYW1l cywgdGUtPnRhZykpCisJCQkJCXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJCXJldHVybiAw OwogCQl9CkBAIC0zNjQ3LDYgKzM2NTUsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBC dWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFS Q0ggRElDVElPTkFSWSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBDT05G SUdVUkFUSU9OIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAwIHx8CisJCXN0 cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVklFVyIpID09 IDAgfHwKIAkvKiBub24tc2NoZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBl LCAiREFUQUJBU0UiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiNmUwMWQzZDI5Mi4uNWQxY2Fj NzA5YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMzYxLDYgKzM2MSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBQ dWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8p Owogc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3Qg UHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0 aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pOwogc3Rh dGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YlJl bEluZm8gKnN1YnJpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNl KEFyY2hpdmUgKmZvdXQpOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUg KkFILCBQUUV4cEJ1ZmZlciBvdXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lLCBP aWQgZGJvaWQpOwpAQCAtNTQwMCw2ICs1NDAxLDE5MCBAQCBnZXRfbmV4dF9wb3NzaWJsZV9mcmVl X3BnX3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVlcnkpCiAJ cmV0dXJuIG5leHRfcG9zc2libGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJpYWJsZXMK KyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAg ICpyZXM7CisJVmFyaWFibGVJbmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50 CQkJaV9vaWQ7CisJaW50CQkJaV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNlOworCWlu dAkJCWlfdmFydHlwZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJvd25lcjsK KwlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlpX2FjbGRl ZmF1bHQ7CisJaW50CQkJaSwKKwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9u IDwgMTgwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisK KwlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCS8qIGdldCB0aGUgdmFyaWFibGVzIGluIGN1 cnJlbnQgZGF0YWJhc2UgKi8KKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJICAiU0VM RUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2LnZh cm5hbWVzcGFjZSwgdi52YXJ0eXBlLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3Jt YXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgorCQkJCQkg ICIgICAgICAgQ0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKKwkJ CQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgorCQkJCQkgICIgICAgICAg ICAgICBFTFNFIDBcbiIKKwkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCisJ CQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKKwkJCQkJICAiICAgICAgIGFj bGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCisJCQkJCSAgIkZST00g cGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2XG4iCisJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ190 eXBlIHQgIgorCQkJCQkgICJPTiAodi52YXJ0eXBlID0gdC5vaWQpIik7CisKKwlyZXMgPSBFeGVj dXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisKKwludHVw cyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJs ZW9pZCIpOworCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlfdmFybmFtZSA9IFBR Zm51bWJlcihyZXMsICJ2YXJuYW1lIik7CisJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVz LCAidmFybmFtZXNwYWNlIik7CisJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUi KTsKKwlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFy Y29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOworCisJaV92YXJvd25l ciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOworCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJl cywgInZhcmFjbCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51bWJlcihyZXMsICJhY2xkZWZhdWx0 Iik7CisKKwl2YXJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFZhcmlhYmxlSW5mbykp OworCisJZm9yIChpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlUeXBlSW5mbyAgICp2dHlw ZTsKKworCQl2YXJpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX1ZBUklBQkxFOworCQl2YXJpbmZv W2ldLmRvYmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3RhYmxlb2lkKSk7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmdmFyaW5mb1tpXS5kb2JqKTsK KwkJdmFyaW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf dmFybmFtZSkpOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZXNwYWNlID0KKwkJCWZpbmROYW1lc3Bh Y2UoYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWVzcGFjZSkpKTsKKworCQl2YXJp bmZvW2ldLnZhcnR5cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOwor CQl2YXJpbmZvW2ldLnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf dmFydHlwbmFtZSkpOworCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKworCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOworCQl2YXJpbmZvW2ldLmRh Y2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0 KSk7CisJCXZhcmluZm9baV0uZGFjbC5wcml2dHlwZSA9IDA7CisJCXZhcmluZm9baV0uZGFjbC5p bml0cHJpdnMgPSBOVUxMOworCQl2YXJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdl dHZhbHVlKHJlcywgaSwgaV92YXJvd25lcikpOworCisJCS8qIGRvIG5vdCB0cnkgdG8gZHVtcCBB Q0wgaWYgbm8gQUNMIGV4aXN0cyAqLworCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJh Y2wpKQorCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRfQUNM OworCisJCWlmIChzdHJsZW4odmFyaW5mb1tpXS5yb2xuYW1lKSA9PSAwKQorCQkJcGdfbG9nX3dh cm5pbmcoIm93bmVyIG9mIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJzIHRvIGJlIGludmFsaWQiLAor CQkJCQkJICAgdmFyaW5mb1tpXS5kb2JqLm5hbWUpOworCisJCS8qIGRlY2lkZSB3aGV0aGVyIHdl IHdhbnQgdG8gZHVtcCBpdCAqLworCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHZhcmluZm9baV0u ZG9iaiksIGZvdXQpOworCisJCXZ0eXBlID0gZmluZFR5cGVCeU9pZCh2YXJpbmZvW2ldLnZhcnR5 cGUpOworCQlhZGRPYmplY3REZXBlbmRlbmN5KCZ2YXJpbmZvW2ldLmRvYmosIHZ0eXBlLT5kb2Jq LmR1bXBJZCk7CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVy eSk7Cit9CisKKy8qCisgKiBkdW1wVmFyaWFibGUKKyAqCSAgZHVtcCB0aGUgZGVmaW5pdGlvbiBv ZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgdm9pZAorZHVtcFZhcmlh YmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKK3sKKwlEdW1w T3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKKwlQUUV4cEJ1ZmZlciBkZWxxOworCVBRRXhw QnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnF1YWx2YXJuYW1lOworCWNvbnN0IGNoYXIgKnZhcnR5 cG5hbWU7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCisJLyogc2tpcCBpZiBub3QgdG8gYmUgZHVt cGVkICovCisJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgZG9wdC0+ZGF0YU9ubHkpCisJCXJl dHVybjsKKworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCXF1ZXJ5ID0gY3JlYXRlUFFF eHBCdWZmZXIoKTsKKworCXF1YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZtdFF1YWxpZmllZER1bXBh YmxlKHZhcmluZm8pKTsKKwl2YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFydHlwbmFtZTsKKwl2YXJj b2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihk ZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCisJCQkJCSAgcXVhbHZhcm5hbWUpOworCisJYXBw ZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkg IHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKworCWlmIChPaWRJc1ZhbGlkKHZhcmNvbGxhdGlv bikpCisJeworCQlDb2xsSW5mbyAgICpjb2xsOworCisJCWNvbGwgPSBmaW5kQ29sbGF0aW9uQnlP aWQodmFyY29sbGF0aW9uKTsKKwkJaWYgKGNvbGwpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwgIiBDT0xMQVRFICVzIiwKKwkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsK Kwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOworCisJaWYgKHZhcmluZm8t PmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShm b3V0LCB2YXJpbmZvLT5kb2JqLmNhdElkLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFS Q0hJVkVfT1BUUygudGFnID0gdmFyaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5uYW1lc3Bh Y2UgPSB2YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25l ciA9IHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIlZBUklBQkxF IiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAgLmNy ZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRh KSk7CisKKwkvKiBkdW1wIGNvbW1lbnQgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVt cCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJWQVJJQUJM RSIsIHF1YWx2YXJuYW1lLAorCQkJCQlOVUxMLCB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQl2YXJp bmZvLT5kb2JqLmNhdElkLCAwLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwkvKiBkdW1wIEFD TCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQUNM KQorCXsKKwkJY2hhcgkgICAqcXZhcm5hbWUgPSBwZ19zdHJkdXAoZm10SWQodmFyaW5mby0+ZG9i ai5uYW1lKSk7CisKKwkJZHVtcEFDTChmb3V0LCB2YXJpbmZvLT5kb2JqLmR1bXBJZCwgSW52YWxp ZER1bXBJZCwgIlZBUklBQkxFIiwKKwkJCQlxdmFybmFtZSwgTlVMTCwKKwkJCQl2YXJpbmZvLT5k b2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBOVUxMLCB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCSZ2 YXJpbmZvLT5kYWNsKTsKKworCQlmcmVlKHF2YXJuYW1lKTsKKwl9CisKKwlkZXN0cm95UFFFeHBC dWZmZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCWZyZWUocXVhbHZh cm5hbWUpOworfQorCiBzdGF0aWMgdm9pZAogYmluYXJ5X3VwZ3JhZGVfc2V0X3R5cGVfb2lkc19i eV90eXBlX29pZChBcmNoaXZlICpmb3V0LAogCQkJCQkJCQkJCSBQUUV4cEJ1ZmZlciB1cGdyYWRl X2J1ZmZlciwKQEAgLTk5NjIsNyArMTAxNDcsOCBAQCBnZXRBZGRpdGlvbmFsQUNMcyhBcmNoaXZl ICpmb3V0KQogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1RBQkxFIHx8CiAJCQkJCWRvYmotPm9i alR5cGUgPT0gRE9fUFJPQ0xBTkcgfHwKIAkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GRFcgfHwK LQkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUikKKwkJCQkJZG9iai0+b2Jq VHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUiB8fAorCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1ZB UklBQkxFKQogCQkJCXsKIAkJCQkJRHVtcGFibGVPYmplY3RXaXRoQWNsICpkYW9iaiA9IChEdW1w YWJsZU9iamVjdFdpdGhBY2wgKikgZG9iajsKIApAQCAtMTA1NjEsNiArMTA3NDcsOSBAQCBkdW1w RHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNh c2UgRE9fU1VCU0NSSVBUSU9OX1JFTDoKIAkJCWR1bXBTdWJzY3JpcHRpb25UYWJsZShmb3V0LCAo Y29uc3QgU3ViUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxF OgorCQkJZHVtcFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVh azsKIAkJY2FzZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9V TkRBUlk6CiAJCQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE1MDEwLDYg KzE1MTk5LDkgQEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFD TEluZm8gKmRhY2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQl0eXBlID0g IlNDSEVNQVMiOwogCQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJdHlw ZSA9ICJWQVJJQUJMRVMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGRuJ3Qg Z2V0IGhlcmUgKi8KIAkJCXBnX2ZhdGFsKCJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgaW4gZGVm YXVsdCBwcml2aWxlZ2VzOiAlZCIsCkBAIC0xODYyMSw2ICsxODgxMyw3IEBAIGFkZEJvdW5kYXJ5 RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2Fz ZSBET19DT05WRVJTSU9OOgogCQkJY2FzZSBET19UQUJMRToKIAkJCWNhc2UgRE9fVEFCTEVfQVRU QUNIOgorCQkJY2FzZSBET19WQVJJQUJMRToKIAkJCWNhc2UgRE9fQVRUUkRFRjoKIAkJCWNhc2Ug RE9fUFJPQ0xBTkc6CiAJCQljYXNlIERPX0NBU1Q6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA0YjJlNTg3MGE5 Yy4uMzZhNjlhMDgzMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTIsNiArNTIsNyBAQCB0eXBlZGVmIGVu dW0KIAlET19UQUJMRSwKIAlET19UQUJMRV9BVFRBQ0gsCiAJRE9fQVRUUkRFRiwKKwlET19WQVJJ QUJMRSwKIAlET19JTkRFWCwKIAlET19JTkRFWF9BVFRBQ0gsCiAJRE9fU1RBVFNFWFQsCkBAIC02 OTIsNiArNjkzLDIzIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJSZWxJbmZvCiAJY2hhcgkgICAqc3Jz dWJsc247CiB9IFN1YlJlbEluZm87CiAKKy8qCisgKiBUaGUgVmFyaWFibGVJbmZvIHN0cnVjdCBp cyB1c2VkIHRvIHJlcHJlc2VudCBzZXNzaW9uIHZhcmlhYmxlcworICovCit0eXBlZGVmIHN0cnVj dCBfVmFyaWFibGVJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1wYWJsZUFjbCBk YWNsOworCU9pZAkJCXZhcnR5cGU7CisJY2hhcgkgICAqdmFydHlwbmFtZTsKKwljaGFyCSAgICp2 YXJhY2w7CisJY2hhcgkgICAqcnZhcmFjbDsKKwljaGFyCSAgICppbml0dmFyYWNsOworCWNoYXIJ ICAgKmluaXRydmFyYWNsOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwljb25zdCBjaGFyICpyb2xu YW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICovCit9IFZhcmlhYmxlSW5m bzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBAIC03NzUsNSArNzkz LDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGludCBudW1UYWJsZXMpOwogZXh0ZXJuIHZvaWQg Z2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiB2b2lkIGdldFN1YnNjcmlw dGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0RVTVBfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jCmluZGV4IDRjYjc1NGNhYTU1Li5lYmI5YmYwMzdjOSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3Nv cnQuYwpAQCAtNzgsNiArNzgsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklP X0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAogCVBSSU9fTEFSR0VfT0JKRUNULAorCVBSSU9f VkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VOREFSWSwJCS8qIGJvdW5kYXJ5ISAqLwogCVBS SU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNFX1NFVCwKQEAgLTExOSw2ICsxMjAsNyBAQCBz dGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19UQUJMRV0gPSBQ UklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hdID0gUFJJT19UQUJMRV9BVFRBQ0gsCiAJW0RP X0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtET19WQVJJQUJMRV0gPSBQUklPX1ZBUklBQkxF LAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtET19JTkRFWF9BVFRBQ0hdID0gUFJJT19J TkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNFWFQsCkBAIC0xNDkwLDYg KzE0OTIsMTAgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBj aGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBPU1QtREFUQSBCT1VOREFSWSAgKElEICVk KSIsCiAJCQkJCSBvYmotPmR1bXBJZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fVkFSSUFCTEU6 CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFCTEUgJXMgIChJRCAlZCBP SUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsK IAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJc25wcmludGYoYnVmLCBidWZzaXplLApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA1YmNjMjI0NGQ1OC4uMGQzNzY1ZWVkNGYgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC03ODksNiArNzg5LDE2IEBAIG15ICV0ZXN0cyA9 ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKIAkgIH0sCiAKKwknQUxURVIgREVG QVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1 NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUg cmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJ QzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9S IFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRP IFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRh ID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCisJICB9LAorCiAJJ0FM VEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScgPT4gewogCQlyZWdleHAgPT4gcXIvXgog CQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgV0lUSCBcRQpAQCAtMTYzOCw2 ICsxNjQ4LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NPTU1FTlQgT04gVkFS SUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNzEsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUx CisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJsZVwnOycsCisJCXJlZ2V4cCA9PgorCQkg IHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBJUyAnY29tbWVu dCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1 bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgICAgID0+IDEsCisJCX0s CisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9u bHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ09QWSB0ZXN0X3Rh YmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAogCQljcmVhdGVfc3FsID0+ICdJTlNFUlQg SU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkgJwpAQCAtMzg5Niw2ICszOTIzLDI0IEBA IG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3Zhcmlh YmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFU RSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9 PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMgaW50ZWdlcjsnLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBB UyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90 ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxp a2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBf bWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3Rfdmll dycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBW SUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQzNTgsNiArNDQwMywyNSBAQCBteSAldGVzdHMg PSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVt cF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNzMsCisJCWNyZWF0ZV9z cWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEg VE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBUTyByZWdyZXNzX2R1bXBf dGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVk dW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJ CXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW5vX3By aXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+ IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIG1hdHZpZXcnID0+ IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgZHVtcF90ZXN0 Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1h bmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggNGRmYzdiMmQ4NTcuLjJlZTQwMmQ5 ZTNkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisrKyBiL3NyYy9iaW4vcHNx bC9jb21tYW5kLmMKQEAgLTEwODEsNiArMTA4MSw5IEBAIGV4ZWNfY29tbWFuZF9kKFBzcWxTY2Fu U3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpjbWQpCiAJ CQkJCQlicmVhazsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlICdWJzoJCQkvKiBWYXJpYWJs ZXMgKi8KKwkJCQlzdWNjZXNzID0gbGlzdFZhcmlhYmxlcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2Up OworCQkJCWJyZWFrOwogCQkJY2FzZSAneCc6CQkJLyogRXh0ZW5zaW9ucyAqLwogCQkJCWlmIChz aG93X3ZlcmJvc2UpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5zaW9uQ29udGVudHMocGF0dGVy bik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCmluZGV4IDdjOWExZjIzNGM2Li5hZGY4M2VkMTk3MCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUx NDgsNiArNTE0OCwxMDIgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoK KyAqIFxkVgorICoKKyAqIGxpc3RWYXJpYWJsZXMoKQorICovCitib29sCitsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEg YnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCisJaWYgKHBzZXQuc3ZlcnNp b24gPCAxODAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19sb2dfZXJyb3Io IlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJs ZXMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwK KwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7 CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1 ZiwKKwkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgdi52 YXJuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYu dmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICAoU0VMRUNUIGMu Y29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5 cGUgYnRcbiIKKwkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQu b2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFz IFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3du ZXIiKSk7CisKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIsXG4gICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAidi52YXJhY2wiKTsKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRp b24odi5vaWQsICdwZ192YXJpYWJsZScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9v cCgiRGVzY3JpcHRpb24iKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJ CQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIKKwkJCQkJCSAiXG4gICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gdi52YXJuYW1lc3Bh Y2UiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbldIRVJFIHRydWVcbiIpOwor CWlmICghcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiAgICAgIEFORCBu Lm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICIgICAgICBBTkQgbi5uc3BuYW1l IDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKworCWlmICghdmFsaWRhdGVTUUxOYW1lUGF0 dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJIm4ubnNwbmFtZSIsICJ2 LnZhcm5hbWUiLCBOVUxMLAorCQkJCQkJCQkicGdfY2F0YWxvZy5wZ192YXJpYWJsZV9pc192aXNp YmxlKHYub2lkKSIsCisJCQkJCQkJCU5VTEwsIDMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSwyOyIpOworCisJcmVzID0gUFNRTGV4 ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0 dXJuIGZhbHNlOworCisJLyoKKwkgKiBNb3N0IGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGNv bnRlbnQgdG8gcHJpbnQgYW4gZW1wdHkgdGFibGUgd2hlbgorCSAqIHRoZXJlIGFyZSBubyBtYXRj aGluZyBvYmplY3RzLiAgV2UgaW50ZW50aW9uYWxseSBkZXZpYXRlIGZyb20gdGhhdAorCSAqIGhl cmUsIGJ1dCBvbmx5IGluICFxdWlldCBtb2RlLCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgorCSAq LworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwICYmICFwc2V0LnF1aWV0KQorCXsKKwkJaWYgKHBh dHRlcm4pCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCSBwYXR0ZXJuKTsKKwkJZWxzZQorCQkJcGdfbG9nX2Vy cm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGVzLiIpOworCX0KKwllbHNlCisJ eworCQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCQlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2Yg dmFyaWFibGVzIik7CisJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCQlteW9wdC50 cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCQlteW9wdC5uX3RyYW5zbGF0 ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJCXByaW50UXVlcnko cmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKwl9CisK KwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCiAgKiBcZEZwCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCmlu ZGV4IDI3M2Y5NzQ1MzhlLi40ZTE1YTE4MGVhNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKQEAgLTE0OSw0ICsxNDksNyBA QCBleHRlcm4gYm9vbCBsaXN0T3BGYW1pbHlGdW5jdGlvbnMoY29uc3QgY2hhciAqYWNjZXNzX21l dGhvZF9wYXR0ZXJuLAogLyogXGRsIG9yIFxsb19saXN0ICovCiBleHRlcm4gYm9vbCBsaXN0TGFy Z2VPYmplY3RzKGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxkViAqLworZXh0ZXJuIGJvb2wgbGlzdFZh cmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZhcmJvc2UpOworCiAjZW5kaWYJCQkJ CQkJLyogREVTQ1JJQkVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3Ny Yy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggMTlkMjBjNTg3ODEuLjhlYTVjNGE4ZjJmIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTI2 OCw2ICsyNjgsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlIRUxQ MCgiICBcXGRUW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGRhdGEgdHlwZXNcbiIpOwogCUhFTFAw KCIgIFxcZHVbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpOwogCUhFTFAwKCIgIFxc ZHZbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgdmlld3NcbiIpOworCUhFTFAwKCIgIFxcZFYgICAg IFtQQVRURVJOXSAgICAgIGxpc3Qgc2Vzc2lvbiB2YXJpYWJsZXNcbiIpOwogCUhFTFAwKCIgIFxc ZHhbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5zaW9uc1xuIik7CiAJSEVMUDAoIiAgXFxk WCAgICAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbmRlZCBzdGF0aXN0aWNzXG4iKTsKIAlIRUxQ MCgiICBcXGR5WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGV2ZW50IHRyaWdnZXJzXG4iKTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYwppbmRleCBhN2NjZGU2ZDdkZi4uYmFhZTU5NjUxMzMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmMKQEAgLTk2Myw2ICs5NjMsMTMgQEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zv cl90cmlnZ2VyX29mX3RhYmxlID0gewogCS5yZWZuYW1lc3BhY2UgPSAiYzEucmVsbmFtZXNwYWNl IiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl92YXJp YWJsZXMgPSB7CisJLm1pbl9zZXJ2ZXJfdmVyc2lvbiA9IDE4MDAwMCwKKwkuY2F0bmFtZSA9ICJw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiLAorCS52aXNjb25kaXRpb24gPSAicGdfY2F0YWxvZy5w Z192YXJpYWJsZV9pc192aXNpYmxlKHYub2lkKSIsCisJLm5hbWVzcGFjZSA9ICJ2LnZhcm5hbWVz cGFjZSIsCisJLnJlc3VsdCA9ICJ2LnZhcm5hbWUiLAorfTsKIAogLyoKICAqIFF1ZXJpZXMgdG8g Z2V0IGxpc3RzIG9mIG5hbWVzIG9mIHZhcmlvdXMga2luZHMgb2YgdGhpbmdzLCBwb3NzaWJseQpA QCAtMTI4Myw2ICsxMjkwLDcgQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0 ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFCTEUgLi4uICovCiAJeyJV U0VSIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMsIE5VTEwsIE5VTEwsIEtleXdvcmRzX2Zvcl91 c2VyX3RoaW5nfSwKIAl7IlVTRVIgTUFQUElORyBGT1IiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7 IlZBUklBQkxFIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlc30sCiAJ eyJWSUVXIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzfSwKIAl7TlVMTH0J CQkJCQkvKiBlbmQgb2YgbGlzdCAqLwogfTsKQEAgLTE3MjIsNyArMTczMCw3IEBAIHBzcWxfY29t cGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSJcXGRGIiwg IlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAiXFxkaSIsICJcXGRsIiwgIlxcZEwi LAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxkTyIsICJcXGRwIiwgIlxcZFAiLCAiXFxk UGkiLCAiXFxkUHQiLAogCQkiXFxkcmRzIiwgIlxcZHJnIiwgIlxcZFJzIiwgIlxcZFJwIiwgIlxc ZHMiLAotCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJcXGR4IiwgIlxcZFgiLCAi XFxkeSIsCisJCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIs ICJcXGR5IiwgIlxcZFYiLAogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxcZWxpZiIs ICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9zZSIsICJc XGV2IiwKIAkJIlxcZiIsCkBAIC0yMjI0LDYgKzIyMzIsOSBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJCQkJCQkJCSAgIkFMTCIpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNZU1RFTSIsICJTRVQiLCBNYXRjaEFueSkpCiAJ CUNPTVBMRVRFX1dJVEgoIlRPIik7CisJLyogQUxURVIgVkFSSUFCTEUgPG5hbWU+ICovCisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRF X1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CiAJLyogQUxURVIg VklFVyA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWSUVXIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBTFRFUiBDT0xVTU4iLCAiT1dORVIgVE8iLCAiUkVOQU1F IiwgIlJFU0VUIiwgIlNFVCIpOwpAQCAtMjc5MCw3ICsyODAxLDcgQEAgcHNxbF9jb21wbGV0aW9u KGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCQkJICAiUk9VVElORSIs ICJSVUxFIiwgIlNDSEVNQSIsICJTRVFVRU5DRSIsICJTRVJWRVIiLAogCQkJCQkgICJTVEFUSVNU SUNTIiwgIlNVQlNDUklQVElPTiIsICJUQUJMRSIsCiAJCQkJCSAgIlRBQkxFU1BBQ0UiLCAiVEVY VCBTRUFSQ0giLCAiVFJBTlNGT1JNIEZPUiIsCi0JCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJW SUVXIik7CisJCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJBQ0NFU1MiLCAiTUVUSE9EIikpCiAJ CUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiQ09OU1RSQUlOVCIpKQpAQCAtMzU2 Niw2ICszNTc3LDEzIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlFeGNlcHQo IiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRFIFZBUklB QkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNo ZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwll bHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlD T01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1h dGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBD UkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUg WyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC0zODI5LDYg KzM4NDcsMTIgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIsICJGT1IiLCBN YXRjaEFueSwgIkxBTkdVQUdFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJDQVNDQURF IiwgIlJFU1RSSUNUIik7CiAKKwkvKiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hl cygiRFJPUCIsICJWQVJJQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJQ1Qi KTsKKwogLyogRVhFQ1VURSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUiKSkKIAkJQ09N UExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0ZW1lbnRzKTsK QEAgLTQwMzIsNyArNDA1Niw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBp bnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9iamVjdHMgc3VwcG9ydGVkLgogCQkgKi8KIAkJaWYg KEhlYWRNYXRjaGVzKCJBTFRFUiIsICJERUZBVUxUIiwgIlBSSVZJTEVHRVMiKSkKLQkJCUNPTVBM RVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMi LCAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIpOworCQkJQ09NUExFVEVfV0lUSCgiVEFC TEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIs ICJUWVBFUyIsICJTQ0hFTUFTIiwgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJ CQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00MDU0LDcgKzQwNzgsOCBAQCBw c3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJ CQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFC TEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJ CQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZP S0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIs ICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQw NjIsNyArNDA4Nyw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiUk9V VElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElOIFNDSEVNQSIsCi0JCQkJCSAg IlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIsCisJCQkJCSAg IlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlR8UkVW T0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVW T0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04i KSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNFUlZFUiIpOwpAQCAtNDA5OCw2 ICs0MTI0LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVz cGFjZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVfV0lU SF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBpZiAo VGFpbE1hdGNoZXMoIlZBUklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JB TlQiLCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgoIlRP Iik7CiAJCWVsc2UKQEAgLTQ0MDEsNyArNDQyOSw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBj aGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAKIC8qIFBSRVBBUkUgeHggQVMgKi8KIAll bHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnksICJBUyIpKQotCQlDT01QTEVURV9X SVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIik7CisJ CUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRF IEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRSQU5TQUNUSU9OIGlzIG1pc3Npbmcg b24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNhY3Rpb24KQEAgLTQ4NjksNiArNDg5 Nyw4IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMpOwogCWVs c2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJc XGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92 YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHgqIikpCiAJCUNPTVBMRVRF X1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0ZW5zaW9ucyk7CiAJZWxzZSBpZiAoVGFp bE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFr ZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5MWE2ZTNmLi41 MDdmMzgwODIxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSw4IEBAIENBVEFMT0df SEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAogCXBnX3B1YmxpY2F0 aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2NyaXB0aW9uX3JlbC5o CisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJsZS5oCiAKIEdFTkVSQVRFRF9I RUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24u YnVpbGQKaW5kZXggZjcwZDFkYWJhNTIuLjZlZWM3OWQyZWVjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24u YnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAncGdfcHVibGlj YXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdfc3Vic2NyaXB0aW9u X3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAjIFRoZSAuZGF0IGZpbGVzIHdlIG5l ZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKaW5kZXggOGQ0MzRkNDhkNTcuLjE4ZWE2YWM4M2E1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkKGNvbnN0IGNo YXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkRXh0ZW5kZWQoY29uc3Qg Y2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBib29sIFR5cGVJc1Zpc2libGUo T2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKTsK KwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0Q2FuZGlkYXRlcyhMaXN0ICpu YW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICphcmduYW1lcywKIAkJCQkJCQkJ CQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksNiArMTcxLDggQEAgZXh0ZXJuIFNl YXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRl eHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNoUGF0aE1hdGNoZXIoU2Vh cmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJy ZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCitleHRlcm4gT2lkCUxv b2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJv b2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAqY29s bG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252ZXJzaW9uX29pZChM aXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlGaW5kRGVmYXVsdENv bnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGluZywgaW50MzIgdG9fZW5jb2RpbmcpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCmluZGV4IGQyNzJjZGYwOGI0Li41MjlkNTNjNmJi NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjgsNiArNjgsNyBAQCBN QUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNwX29i al9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJJ2YnIC8qIGZ1bmN0aW9u ICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUgREVG QUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2RlZmluZSBERUZBQ0xPQkpf VkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RP X0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDRhYmM2ZDk1MjYy Li5hZGU4NGUyM2RlYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC02NDc4LDYgKzY0Nzgs OSBAQAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4g JzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJn dHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0s Cit7IG9pZCA9PiAnOTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUg aW4gc2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScs IHByb2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdi b29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlz aWJsZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50 IHNlc3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3Rl bXBfc2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjM4MTBlMDQwZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z192YXJpYWJsZS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAq IHBnX3ZhcmlhYmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0 ZW0gY2F0YWxvZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgor ICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQg ZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKyNpZm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNp bmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVz cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgorI2luY2x1ZGUgInV0aWxz L2FjbC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlv bi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192 YXJpYWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KKworCS8q IE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlPaWQJCQl2 YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFt ZURhdGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJs ZSBjbGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFjZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7 CisKKwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9pZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdf YXV0aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCisJaW50MzIJCXZh cnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlP aWQJCQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0 aW9uKTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmll bGRzIHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0J CXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOworCisjZW5kaWYKK30gRm9ybURhdGFfcGdf dmFyaWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNv cnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9m IHRoZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlw ZWRlZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9ybV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9U T0FTVChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BL RVkocGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3Zh cmlhYmxlLCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFy aWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYsIFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBn X3ZhcmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVfb3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykp OworCitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3Rh dGUsCisJCQkJCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CitleHRlcm4gdm9pZCBE cm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCk7CisKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVOQU1F TlNQLCBwZ192YXJpYWJsZV92YXJuYW1lX25zcF9pbmRleCwgOCk7CitNQUtFX1NZU0NBQ0hFKFZB UklBQkxFT0lELCBwZ192YXJpYWJsZV9vaWRfaW5kZXgsIDgpOworCisjZW5kaWYJCQkJCQkJLyog UEdfVkFSSUFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDEyNGQ4NTNlNDk5Li44 NDdiM2VhYzZkYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjI5Niw2ICsyMjk2LDcgQEAg dHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQ RSwKIAlPQkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklF VywKIH0gT2JqZWN0VHlwZTsKIApAQCAtMzQxMCw2ICszNDExLDIxIEBAIHR5cGVkZWYgc3RydWN0 IEFsdGVyU3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3Rh dGlzdGljcyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVt ZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0 ZVNlc3Npb25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJs ZTsJCS8qIHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJ CS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsK Kwlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3Rz ICovCit9IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqCQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggZjg2NTkwNzhjZWQuLjk2NGUyN2I1NzdmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCkBAIC00ODMsNiArNDgzLDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFM SURBVE9SLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1 ZSIsIFZBTFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhbHVlcyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInZhcmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQorUEdfS0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVO UkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9T RSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgK aW5kZXggN2ZkY2VjNmRkOTMuLjk0NjVkZjdiMmZmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAt NjgsNiArNjgsNyBAQCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRS QU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJ R0dFUiwgIkFMVEVSIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0FMVEVSX1RZUEUsICJBTFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0FMVEVSX1VTRVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUs IGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBW QVJJQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklF VywgIkFMVEVSIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FO QUxZWkUsICJBTkFMWVpFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf QkVHSU4sICJCRUdJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAg UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVB VEUgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRF X1RZUEUsICJDUkVBVEUgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX1VTRVJfTUFQUElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJ QUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcs ICJDUkVBVEUgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVB TExPQ0FURSwgIkRFQUxMT0NBVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19ERUFMTE9DQVRFX0FMTCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKQEAgLTE3NSw2ICsxNzcsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAi RFJPUCBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVFJJR0dFUiwgIkRST1AgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9UWVBFLCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdf Q01EVEFHKENNRFRBR19EUk9QX1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBW QVJJQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVX LCAiRFJPUCBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVD VVRFLCAiRVhFQ1VURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VY UExBSU4sICJFWFBMQUlOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggNzMxZDg0 YjJhOTMuLjk4YWFiOTgyMjllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAor KysgYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYg c3RydWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFD TF9VU0FHRXxBQ0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShB Q0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNk ZWZpbmUgQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAK IC8qIG9wZXJhdGlvbiBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRp bHMvbHN5c2NhY2hlLmgKaW5kZXggMjA0NDZmNmY4MzYuLjhhMzY4NGU3MTFmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaApAQCAtMTM0LDYgKzEzNCw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tp bmQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNp ZCk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBl eHRlcm4gT2lkCWdldF9yZWxuYW1lX3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxu YW1lc3BhY2UpOworZXh0ZXJuIE9pZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJu YW1lLCBPaWQgdmFybmFtZXNwYWNlKTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJl bGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBP aWQJZ2V0X3JlbF90eXBlX2lkKE9pZCByZWxpZCk7CkBAIC0yMDYsNiArMjA3LDE0IEBAIGV4dGVy biBjaGFyICpnZXRfcHVibGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gT2lkCWdldF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJv b2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBz dWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKE9pZCB2YXJpZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUo T2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9k X2NvbGxpZChPaWQgdmFyaWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJ CQlpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0 eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRP aWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFu ZCBkb21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5 cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc0ZDlmZjI5OThkLi5jMzM2 ZjY3YTU5NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5 Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CkBAIC0x NTEsMyArMTUxLDIwIEBAIG93bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9XTkVEIEJZIHJl Z3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2Rl cF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVuZGVuY3kgb24g dHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlw ZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB2YXJ0eXBlOworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0VSUk9S OiAgY2Fubm90IGRyb3AgdHlwZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFydHlwZSBkZXBl bmRzIG9uIHR5cGUgdmFyZG9tYWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJv cCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7CitFUlJPUjog IGNhbm5vdCBkcm9wIHR5cGUgdmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHZhcnR5 cGUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2Jq ZWN0cyB0b28uCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZh cnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CmluZGV4IDIxNWViODk5YmUzLi5kOTk1MzMyMTQwMiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVj a2luZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJ Q0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBn X3N1YnNjcmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3Jl bCB7c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Zhcmlh YmxlIHt2YXJ0eXBlfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJp YWJsZSB7dmFybmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNr aW5nIHBnX3ZhcmlhYmxlIHt2YXJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBj aGVja2luZyBwZ192YXJpYWJsZSB7dmFyY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDZhZWI3Y2I5NjM2Li5jNzBjNjE0MDkx ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01ODgzLDYgKzU4ODMsMzAgQEAg Q09NTUlUOwogIyBmaW5hbCBPTl9FUlJPUl9ST0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsK IERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMi OworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFS SUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRp b24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZp bGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1y dy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAK KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RS T1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZh bGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlm aWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjEw NCw2ICs2MTI4LDEyIEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVz dWNoLm15ZXZ0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVz KTogbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9w ZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lv bi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1Ymxp Yy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2Vz IGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQg ZG90cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5v LnN1Y2guYWNjZXNzLm1ldGhvZCIKIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKQEAgLTYzMzgsNiAr NjM2OCwxMiBAQCBMaXN0IG9mIHNjaGVtYXMKIC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tCiAoMCByb3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUi CisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwg Q29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIK IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC02NTA3LDYgKzY1NDMsMTIgQEAg aW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIAogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu ZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0t LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdh aW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNh dGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJl bGF0aW9uIgogICAgICAgTGlzdCBvZiByZWxhdGlvbnMKQEAgLTY2NDAsNiArNjY4MiwxMiBAQCBM aXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25l ciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykK KwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBx dWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5v dCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudGFibGUucmVsYXRpb24iCkBAIC02Njg3LDYgKzY3MzUsOCBAQCBjcm9zcy1kYXRhYmFzZSBy ZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3Vj aC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAi bm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBc ZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7 CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYWNhNzY2MDQyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMCwwICsxLDU3IEBACitDUkVB VEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5v dCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSBhbnllbGVtZW50CistLSBzaG91 bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIyIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKKy0t IGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50Owor Tk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5n CistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cworLS0gc2hvdWxkIGJlIG9rCitE Uk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJs ZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIx IElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2Ny aXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnOworICAgIG9ial9kZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgc29tZSB2YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tLSBjaGVjayBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBT Q0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSBzdmFydGVzdC52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworUkVWT0tFIEFM TCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7 CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FM VEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcnh4IFNFVCBTQ0hFTUEgcHVibGljOworRFJPUCBWQVJJ QUJMRSBwdWJsaWMudmFyeHg7CitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIKKyAgIElOIFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFUyBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tIGNyZWF0 aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50Owor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1xkVisgc3ZhcnRlc3QudmFyMQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJP UCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQppbmRleCA3YTVhOTEwNTYyZS4uNzJmMjhlNzU5N2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQpAQCAtMTExLDcgKzExMSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGlu ZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5C OiB0ZW1wLnNxbCBkb2VzIGEgcmVjb25uZWN0IHdoaWNoIHRyYW5zaWVudGx5IHVzZXMgMiBjb25u ZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBhcmFsbGVsIGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVz dHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVt cCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFi bGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3 aXRoIHhtbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4g cmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVu Y2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBz ZXNzaW9uX3ZhcmlhYmxlcwogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJh bGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAppbmRleCA4ZDc0ZWQ3MTIy Yy4uNmMxOGI3Zjg0MGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVu Y3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0xMTQs MyArMTE0LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQgQlkg cmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3Nf ZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRlbmN5 IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZh cnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsK K0RST1AgVFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwu c3FsCmluZGV4IDBhMmY4YjQ2OTIyLi4zOGUwZjY4NTU4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwK QEAgLTE2MTcsNiArMTYxNywxOSBAQCBDT01NSVQ7CiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVO Q1RJT04gcHNxbF9lcnJvcjsKIAorLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYr IHZhcjEKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQg T04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworCiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0 IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBcZEEgbm9uZXN1Y2guaGVhcApAQCAtMTcyOCw2 ICsxNzQxLDkgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRYIG5vbmVzdWNoLnB1Ymxp Yy5mdW5jX2RlcHNfc3RhdAogXGR5IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2 dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1 YmxpYy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCiAKIC0tIGNoZWNrIHRoYXQgZG90cyB3 aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2gu YWNjZXNzLm1ldGhvZCIKQEAgLTE3NjksNiArMTc4NSw4IEBAIERST1AgRlVOQ1RJT04gcHNxbF9l cnJvcjsKIFxkeCAibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNoLmV4 dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8u c3VjaC52YXJpYWJsZSIKKwogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2Qi CkBAIC0xODA5LDYgKzE4MjcsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtMTgzMyw2ICsxODUyLDcgQEAgRFJPUCBG VU5DVElPTiBwc3FsX2Vycm9yOwogXGRQIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxkVCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRh YmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4NTgs NiArMTg3OCw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxk VCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUi CiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5k ZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC52YXJpYWJsZSIKIAogLS0gY2hlY2sgXGRyZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSBy ZWdyZXNzX2R1X3JvbGUwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MmRmYjk1YTAyMgot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbApAQCAtMCwwICsxLDYxIEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OworCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0g c2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxF IHZhcjIgQVMgYW55ZWxlbWVudDsKKworLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9Q IFZBUklBQkxFIElGIEVYSVNUUyB2YXIyOworCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFC TEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElG IEVYSVNUUyB2YXIxOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFy aWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAn cGdfdmFyaWFibGUnKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBv cnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg c3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRl cjsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192 YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJP TSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBT RVQgU0NIRU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVS IERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgor ICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1 bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFU RSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisK K1xkVisgc3ZhcnRlc3QudmFyMQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CisKK0RS T1AgU0NIRU1BIHN2YXJ0ZXN0OworCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOWU5NTFhOWU2ZjMuLjIzN2RmMWMyMWE5IDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNTM0LDYgKzUzNCw3IEBAIENyZWF0ZVJvbGVT dG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVhdGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2Vx U3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQKIENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAog Q3JlYXRlU3RtdENvbnRleHQKQEAgLTg3Myw2ICs4NzQsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJz ZXIKIEZvcm1EYXRhX3BnX3RzX3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9w Z191c2VyX21hcHBpbmcKK0Zvcm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0 dHJpYnV0ZQogRm9ybV9wZ19hZ2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTkzMiw2ICs5MzQsNyBA QCBGb3JtX3BnX3RzX3BhcnNlcgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBG b3JtX3BnX3VzZXJfbWFwcGluZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJs b2NrTnVtYmVyQXJyYXkKIEZyZWVMaXN0RGF0YQpAQCAtMzA2Nyw2ICszMDcwLDcgQEAgVmFyU3Ry aW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFyaWFibGUKIFZhcmlhYmxlQXNzaWduSG9vawor VmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQKIFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVT aG93U3RtdAotLSAKMi40Ni4wCgo= --000000000000c171a20620d5e23f--