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 1tUm7R-002d71-Cf for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Jan 2025 12:22:06 +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 1tUm7Q-008Nvb-MD for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Jan 2025 12:22:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tUm7P-008NvM-O5 for pgsql-hackers@lists.postgresql.org; Mon, 06 Jan 2025 12:22:03 +0000 Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tUm7B-000A3n-2B for pgsql-hackers@lists.postgresql.org; Mon, 06 Jan 2025 12:22:02 +0000 Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-e461015fbd4so13692886276.2 for ; Mon, 06 Jan 2025 04:21:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736166108; x=1736770908; 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=XRE8aHrp3zE0IfjKHLLjVVmf3olwr9k//aGb/7KzDqM=; b=XNA8ctQsoc6LC7fPDwN3CE1XPF6eHqSfCswoeVMyUfHIul26DUIm8TWW72qqZ6z2lR 3/ZCDrQB2XR96w3vJWR4iGUFKbdct37Ts7fx9zfkSNhT4Y92cDwHMqefx/UTs4B+NydD mswt3SB8ulHbNRuQrQ6KctlmzPHAmd3gEPgZ1M2jMjMHVaGh0sNWSlZSes4Dsse8V0Ps VFyjqo0dB5HltoNSt5fjk9LF06UJ8Ekn4n/WxY2SlVxi+44CYuveubhJ5Cj6IWggJ13k Lj35I25gOkvokOnG0pFcArWSbKKNWK6EvSE6ZdW2k+En6vZH+TNCCjmaOD2Jg3DTxyRb gWeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736166108; x=1736770908; 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=XRE8aHrp3zE0IfjKHLLjVVmf3olwr9k//aGb/7KzDqM=; b=J80jSAH+MD5ccPlhe072OqESqDMW1FkD9ycnwVS7fD5WwqdSmHto8jh6wWWoP6z78A ejg71yZacjZpqESuZEF8m856CNUkIjiTZtPscHNDTgSNozolL8plIqsjU7nwzerq7Wb8 ePfIeKq116NLpgi7FTnIK8cTh+HQeNYLlKesSO7VrzKFEqryKW6FQzcvs6nZ5k25DK7o e3s0ciyoUzoMCFMha/n1p02v7WwcjjMcifvy9FeXc+QkIU0Jhv1nXnt6DkNXkF78AB2e wncDt9MGfjDm19tVbpMzgZpyakH7nsV/C11hExRxZbaWFIjvZHEmEtzV/KZMg3bvrlhx vh6w== X-Forwarded-Encrypted: i=1; AJvYcCWoBmfTGlyuiVhl8wbOVrfQ5SMsT7M0HbKPz+1QLsyTdZULOMoYrS8s3HIk+BmpCWOUMC3vDBURJe59aso7@lists.postgresql.org X-Gm-Message-State: AOJu0YzXezeqAa36nR4O9JmRZubhqfnwLxcSbeLCkFmS6bJ/2JGUHxKO dZlxR8quATrG185I23plPFgdqJ3X0ldvReMS0dXVPB+0oRp92febBwHi88XLYQJI1fvwwIEgjyK Drs3bE/Bb3rpyvh/ZhK+1Wi9zlhY= X-Gm-Gg: ASbGncsPBmw7D100bmf0KIRU+g1b/rqZa+mXXuKtXHXzzIaT8N0sbix6JBxqrwowq/s +hckTHlGFOZxA5Po4StUA1kkp+SCLExD69TkvhvaaRB6k/b3aPvjHIavRV2zKGnDnqOLtiR0= X-Google-Smtp-Source: AGHT+IEIZIELJTBFgmGbH1heWUE62nr9ZhvD79/vCS+Rjqs1WNTo3PfnuYU9JdMT49qyW8/sa05I52ZK/C54rDEYZgc= X-Received: by 2002:a05:690c:6711:b0:6ef:64e8:c708 with SMTP id 00721157ae682-6f3f8115a16mr471825617b3.17.1736166106862; Mon, 06 Jan 2025 04:21:46 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Mon, 6 Jan 2025 13:21:09 +0100 Message-ID: Subject: Re: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000133ffb062b08ace5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000133ffb062b08ace5 Content-Type: multipart/alternative; boundary="000000000000133ffa062b08ace3" --000000000000133ffa062b08ace3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi po 6. 1. 2025 v 8:59 odes=C3=ADlatel jian he napsal: > comment out the changes in > src/backend/utils/cache/plancache.c > > // /* process session variables */ > // if (OidIsValid(parsetree->resultVariable)) > // { > // if (acquire) > // LockDatabaseObject(VariableRelationId, > parsetree->resultVariable, > // 0, AccessShareLock); > // else > // UnlockDatabaseObject(VariableRelationId, > parsetree->resultVariable, > // 0, AccessShareLock); > // } > > // else if (IsA(node, Param)) > // { > // Param *p =3D (Param *) node; > // if (p->paramkind =3D=3D PARAM_VARIABLE) > // { > // if (acquire) > // LockDatabaseObject(VariableRelationId, p->paramvarid, > // 0, AccessShareLock); > // else > // UnlockDatabaseObject(VariableRelationId, p->paramvarid= , > // 0, AccessShareLock); > // } > // } > the regress tests are still successful, that means these code changes > don't have related tests. > the locking is tested by isolation test in patch05 > > > SetSessionVariable(Oid varid, Datum value, bool isNull) > { > create_sessionvars_hashtables(); > svar =3D (SVariable) hash_search(sessionvars, &varid, HASH_ENTER, > &found); > if (!found) > setup_session_variable(svar, varid); > /* if this fails, it won't change the stored value */ > set_session_variable(svar, value, isNull); > } > after set_session_variable, > we want to make sure that svar->is_valid is true, > svar->value =3D value and svar->isnull=3D isNull. > Based on this, I've simplified the function set_session_variable, > refer v1-0001-minor-refactoring-set_session_variable.no-cfbot > Unfortunately, I don't think it is possible. See comments /* * Assign a new value to the session variable. It is copied to * SVariableMemoryContext if necessary. * * **** If any error happens, the existing value won't be modified. **** */ So the variable cannot be released before memory for new content is allocated The current code is a little bit more complex, but significantly reduces the risk so the variable will hold unexpected value. The current code ensures stability of LET command - when it is successful, then value is changed, or when it is not successful, then variable is not changed. Proposed code breaks it. There is risk of palloc exception, and that means, after unsuccessful LET the variable can be initialized. So there are three ending states, not just two. pfree theoretically can raise an exception, but in this case it should be code our design error (using wrong allocator) > > we use PlannerGlobal > { > Oid basenodeSessionVarid; > Bitmapset *checkSelectPermVarids; > } > to solve the self-assigned corner case SELECT privilege. > (let v1.a =3Dv1.a; in this case, we need have SELECT priv for v1.a > but let v1.a =3D 1, we don't need SELECT priv for v1.a). > > i found out these two field value(information) most case is the same > as PlannerGlobal.sessionVariables; > I came up with another solution, introduce a bool > (Query.is_Variable_assigned), > and get rid of PlannerGlobal.basenodeSessionVarid, > PlannerGlobal.checkSelectPermVarids. > not sure it make sense to you, refer > v1-0002-refactoring-LET-statement-self-assign-privileg.no-cfbot > It is true, so bitmapset checkSelectPermVarids contains almost all the same data like sessionVariables. But checkSelectPermVarids allows fast checking if a variable is used already, and sessionVariables list ensures necessary order. My implementation needs more memory (one bitmapset), but I think it is very simple and less error prone (doesn't depend on iteration order). In this case and this moment I prefer my bitmapset based solution. It can be optimized maybe later - I thought about a dedicated item in sessionVariables for the basenode parameter. This should be a clear winner for value passed types, but for varlena types (for long varlena types), it can force passing content of some session variable twice. Regards Pavel --000000000000133ffa062b08ace3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

po 6. 1. 2025 v=C2=A08:59= odes=C3=ADlatel jian he <jian.universality@gmail.com> napsal:
comment out the changes in
src/backend/utils/cache/plancache.c

=C2=A0 =C2=A0 // /* process session variables */
=C2=A0 =C2=A0 // if (OidIsValid(parsetree->resultVariable))
=C2=A0 =C2=A0 // {
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0if (acquire)
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0LockDatabaseObject(Variab= leRelationId, parsetree->resultVariable,
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0, AccessShareLock);
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0else
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0UnlockDatabaseObject(Vari= ableRelationId,
parsetree->resultVariable,
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0, AccessShareLock);
=C2=A0 =C2=A0 // }

=C2=A0 =C2=A0 // else if (IsA(node, Param))
=C2=A0 =C2=A0 // {
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0Param=C2=A0 =C2=A0 =C2=A0 =C2=A0*p =3D = (Param *) node;
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0if (p->paramkind =3D=3D PARAM_VARIAB= LE)
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0{
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (acquire)
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0LockDatabas= eObject(VariableRelationId, p->paramvarid,
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0, AccessShareLock); =C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0else
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0UnlockDatab= aseObject(VariableRelationId, p->paramvarid,
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0, AccessShareL= ock);
=C2=A0 =C2=A0 //=C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 // }
the regress tests are still successful, that means these code changes
don't have related tests.

the locki= ng is tested by isolation test in patch05
=C2=A0


SetSessionVariable(Oid varid, Datum value, bool isNull)
{
=C2=A0 =C2=A0 create_sessionvars_hashtables();
=C2=A0 =C2=A0 svar =3D (SVariable) hash_search(sessionvars, &varid, HAS= H_ENTER, &found);
=C2=A0 =C2=A0 if (!found)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 setup_session_variable(svar, varid);
=C2=A0 =C2=A0 /* if this fails, it won't change the stored value */
=C2=A0 =C2=A0 set_session_variable(svar, value, isNull);
}
after set_session_variable,
we want to make sure that svar->is_valid is true,
svar->value =3D value and=C2=A0 svar->isnull=3D isNull.
Based on this, I've simplified the function set_session_variable,
refer v1-0001-minor-refactoring-set_session_variable.no-cfbot

Unfortunately, I don't think it is possible. See= comments

/*
=C2=A0* Assign a new value to the = session variable.=C2=A0 It is copied to
=C2=A0* SVariableMemoryContext i= f necessary.
=C2=A0*
=C2=A0* **** If any error happens, the existing = value won't be modified. ****
=C2=A0*/

So t= he variable cannot be released before memory for new content is allocated

The current code is a little bit more complex, but = significantly reduces the risk so the variable will hold unexpected value.<= /div>

The current code ensures stability of LET command = - when it is successful, then value is changed, or when it is not successfu= l, then variable is not changed.

Proposed code= breaks it. There is risk of palloc exception, and that means, after unsucc= essful LET the variable can be initialized. So there are three ending state= s, not just two.

pfree theoretically can raise= an exception, but in this case it should be code our design error (using w= rong allocator)



we use PlannerGlobal
{
=C2=A0 =C2=A0Oid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 basenodeSessionVa= rid;
=C2=A0 =C2=A0Bitmapset *checkSelectPermVarids;
}
to solve the self-assigned corner case SELECT privilege.
(let v1.a =3Dv1.a; in this case, we need have SELECT priv for v1.a
but let v1.a =3D 1, we don't need SELECT priv for v1.a).

i found out these two field value(information) most case is the same
as PlannerGlobal.sessionVariables;
I came up with another solution, introduce a bool (Query.is_Variable_assign= ed),
and get rid of PlannerGlobal.basenodeSessionVarid,
PlannerGlobal.checkSelectPermVarids.
not sure it make sense to you, refer
v1-0002-refactoring-LET-statement-self-assign-privileg.no-cfbot

It is true, so bitmapset=C2=A0checkSelectPermVarid= s contains almost all the same data like sessionVariables.
But ch= eckSelectPermVarids allows fast checking if a variable is used already, and= sessionVariables list ensures necessary order.

My= implementation needs more memory (one bitmapset), but I think it is very s= imple and less error prone (doesn't depend on iteration order).

In this case and this moment I prefer my bitmapset based = solution. It can be optimized maybe later - I thought about a dedicated ite= m in sessionVariables for the basenode parameter.
This should be = a clear winner for value passed types, but for varlena types (for long varl= ena types), it can force passing content of some session variable twice.

Regards

Pavel




--000000000000133ffa062b08ace3-- --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20250106-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg460 RnJvbSA5NWY5ZGVlZjBjZGJhMWIxZjVmZjc0NTZmYzExMGY0ZDRjNWI4NWI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIy LzIyXSBwZ19yZXN0b3JlIC1BLCAtLXZhcmlhYmxlCgpwb3NzaWJpbGl0eSB0byByZXN0b3JlIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG5hbWUKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbCB8IDExICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jICAgICB8ICA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3Jl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAppbmRleCBiOGIyN2UxNzE5 ZS4uN2EzYTRlYWJlMjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5zZ21sCkBAIC0xMDYsNiArMTA2 LDE3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgPC9saXN0aXRlbT4KICAgICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxvcHRp b24+LUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3Jl cGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS12YXJpYWJs ZT08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFj ZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBSZXN0b3JlIGEgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZSBvbmx5LiAgTXVsdGlwbGUg c2Vzc2lvbiB2YXJpYWJsZXMgbWF5CisgICAgICAgIGJlIHNwZWNpZmllZCB3aXRoIG11bHRpcGxl IDxvcHRpb24+LUE8L29wdGlvbj4gc3dpdGNoZXMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAg ICAgIDx0ZXJtPjxvcHRpb24+LWM8L29wdGlvbj48L3Rlcm0+CiAgICAgICA8dGVybT48b3B0aW9u Pi0tY2xlYW48L29wdGlvbj48L3Rlcm0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf cmVzdG9yZS5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwppbmRleCA4OGFlMzlkOTM4 YS4uNTIxODBjOTdkOTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwpAQCAtMTA2LDYgKzEwNiw3IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7InRyaWdnZXIiLCAxLCBOVUxMLCAnVCd9LAog CQl7InVzZS1saXN0IiwgMSwgTlVMTCwgJ0wnfSwKIAkJeyJ1c2VybmFtZSIsIDEsIE5VTEwsICdV J30sCisJCXsidmFyaWFibGUiLCAxLCBOVUxMLCAnQSd9LAogCQl7InZlcmJvc2UiLCAwLCBOVUxM LCAndid9LAogCQl7InNpbmdsZS10cmFuc2FjdGlvbiIsIDAsIE5VTEwsICcxJ30sCiAKQEAgLTE1 Niw3ICsxNTcsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJfQogCX0KIAotCXdo aWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhY0NkOmVmOkY6aDpJOmo6bEw6bjpO Ok9wOlA6UnNTOnQ6VDpVOnZ3V3gxIiwKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBh cmd2LCAiQTphY0NkOmVmOkY6aDpJOmo6bEw6bjpOOk9wOlA6UnNTOnQ6VDpVOnZ3V3gxIiwKIAkJ CQkJCQljbWRvcHRzLCBOVUxMKSkgIT0gLTEpCiAJewogCQlzd2l0Y2ggKGMpCkBAIC0xNjQsNiAr MTY1LDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJY2FzZSAnYSc6CQkJLyog RHVtcCBkYXRhIG9ubHkgKi8KIAkJCQlkYXRhX29ubHkgPSB0cnVlOwogCQkJCWJyZWFrOworCQkJ Y2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9IDE7CisJCQkJ b3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9hcHBlbmQoJm9w dHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNlICdjJzoJCQkv KiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwogCQkJCW9wdHMt PmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDY4LDYgKzQ3NCw3IEBAIHVzYWdlKGNv bnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250cm9sbGluZyB0 aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkgICAgICAgICAg ICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJpbnRmKF8oIiAg LUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Npb24gdmFyaWFi bGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAgICAgIGNsZWFu IChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7CiAJcHJpbnRm KF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRhcmdldCBkYXRh YmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAgICAgICAgZXhp dCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20250106-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg551 RnJvbSA1OTE0ZGFiMWU5ZjgxN2UzODZlNDNiZTIxZGZhOTYxYjNjZWQwYmM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjEvMjJdIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzLiBUaGUgY29udGVudCBvZiB0cmFuc2FjdGlvbmFsCnNlc3Np b24gdmFyaWFibGVzIGlzIHNlbnNpdGl2ZSB0byB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0 aW9ucy4gQW55CnRyYW5zYWN0aW9uYWwgdmFyaWFibGUgaG9sZHMgYSBoaXN0b3J5IG9mIHZhbHVl cyBuZWNlc3NhcnkgZm9yIHJldmVydC4gVGhpcyBoaXN0b3J5CmlzIGNsZWFuZWQgKHB1cmdlZCkg d2hlbiBhKSB3ZSByZWFkIHRoZSB2YXJpYWJsZSwgYikgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMg ZmluaXNoZWQuCgpXZSBkb24ndCB0cnkgdG8gcHVyZ2UsIHdoZW4gdGhlIGxhc3QgbW9kaWZpY2F0 aW9uIG9mIGEgdmFyaWFibGUgaXMgZnJvbQpjdXJyZW50IHN1YnRyYW5zYWN0aW9uLCBvciB3aGVu IHB1cmdlIHdhcyBwcm9jZXNzZWQgaW4gY3VycmVudCBzdWJ0cmFuc2FjdGlvbi4KClRoaXMgcGF0 Y2ggaXMgYmFzZWQgb24gbXkgd29yayBmcm9tIEZlYiAyMDIwIGFuZCBpdCBpcyByZWxhdGVkIHRv IGRpc2N1c3Npb24KYWJvdXQgZmVhdHVyZXMgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcy4g Tm93LCB3aGVuIHRoZSBhbGwgZmVhdHVyZXMgYXJlCnNlcGFyYXRlZCB0byBpc29sYXRlZCBwYXRj aGVzIEkgY2FuIHJldml0YWxpemUgdGhpcyBwYXRjaCwgYmVjYXVzZSBpdCBkb2Vzbid0CmluY3Jl YXNlIGNvbXBsZXhpdHkgb2YgYmFzaWMgcGF0Y2hlcy4KClVubGlrZSBvdGhlciBwYXRjaGVzLCB0 aGlzIHBhdGNoIGlzIHdpdGhvdXQgYW55IHJldmlldyBhdCB0aGlzIG1vbWVudCAoRmViIDIwMjQp LApidXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGZ1bGx5IGZ1bmN0aW9uYWwgZm9yIHBlb3BsZSB3 aG8gYXJlIGludGVyZXN0ZWQgYWJvdXQKdGhpcyBmZWF0dXJlIChmb3IgdGVzdGluZykuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAxMCArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMwMSArKysrKysrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDEwMCArKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1OCArKysr CiAxNiBmaWxlcyBjaGFuZ2VkLCA1ODcgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA5YWIyNGRmNTI4Mi4uNDU4MmVhMTY0MGYgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODU4LDYgKzk4NTgsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5Pjxz dHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAgICAgPGVu dHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2VudHJ5Pgor ICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzIDxxdW90ZT50 cmFuc2FjdGlvbmFsPC9xdW90ZT4uIEluIHRoZSBjYXNlCisgICAgICAgb2YgYSB0cmFuc2FjdGlv biByb2xsYmFjaywgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgYXJlIHJlc2V0IHRvIHRoZQorICAg ICAgIHZhbHVlIHRoZXkgaGFkIHdoZW4gdGhlIHRyYW5zYWN0aW9uIHN0YXJ0ZWQuIFRoZSBkZWZh dWx0IHZhbHVlIGlzCisgICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAgICAgPC9l bnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAg PHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCAxZmVkOTdkMTVhMy4uNDQ0 Y2RhYTg3OTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyAr MjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxz eW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCitDUkVBVEUgWyB7IFRFTVBPUkFSWSB8 IFRFTVAgfSBdIFsgeyBUUkFOU0FDVElPTkFMIHwgVFJBTlNBQ1RJT04gfSBdIFsgSU1NVVRBQkxF IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgTk9UIE5VTEwgXSBb IERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVw bGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VU IH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtNDcsNiArNDcsMTQgQEAg Q1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWMKICAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4g cHJvY2VkdXJhbCBsYW5ndWFnZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFdoZW4gYSBz Y2hlbWEgdmFyaWFibGUgaXMgY3JlYXRlZCB3aXRoIGEKKyAgIDxjb21tYW5kPkNSRUFURSBUUkFO U0FDVElPTkFMIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLCB0aGUgdmFyaWFibGVzCisgICBj b250ZW50IGNoYW5nZXMgYXJlIHRyYW5zYWN0aW9uYWw6IGluIGNhc2Ugb2Ygcm9sbGJhY2ssIHRo ZXkgYXJlIHJlc2V0IHRvCisgICB0aGVpciB2YWx1ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0 cmFuc2FjdGlvbiBvciB0aGUgbGF0ZXN0IHN1YnRyYW5zYWN0aW9uLgorICAgVGhlIHZhcmlhYmxl IGNvbnRlbnQgaXMgb25seSBob2xkIGluIG1lbW9yeSwgYW5kIHRodXMgaXMgbm90IHBlcnNpc3Rl bnQuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRy aWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBUaGVp ciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDBiNjA5M2EwMGJhLi5mYTQ5ZTcyMzNkNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMgT2Jq ZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJ CSBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKIAkJCQkJCQkJ CSBib29sIGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3RyYW5zYWN0LAogCQkJCQkJ CQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25z dCBjaGFyICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQlib29sIG5vdF9u dWxsLAogCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNfdHJhbnNhY3QsCiAJCQkJ Tm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbikKIHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJub3RudWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRhYmxl KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0IC0gMV0gPSBCb29sR2V0 RGF0dW0oaXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRh Y3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAogCWlmICh2YXJE ZWZleHByKQpAQCAtMjY3LDYgKzI3MCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90 X2V4aXN0cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJCQkgICBzdG10LT5pc19p bW11dGFibGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJCQkJCQkJICAgY29va2Vk X2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBjZGFiYWZkYmI4Yi4uODM5YmI3N2EzMGQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTU1LDYgKzU1LDE5 IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9wSXRlbQogaW50CQlzZXNzaW9uX3Zh cmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCA9CiAJCQkJCQkJCVNFU1NJT05WQVJJQUJM RV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT05FOwogCisvKgorICogVXNlZCBmb3IgdHJhbnNh Y3Rpb25hbCB2YXJpYWJsZXMuIEhvbGRzIHByZXYgdmVyc2lvbi4KKyAqLwordHlwZWRlZiBzdHJ1 Y3QgUHJldlZhbHVlCit7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKworCVN1YlRy YW5zYWN0aW9uSWQgbW9kaWZ5X3N1YmlkOworCisJc3RydWN0IFByZXZWYWx1ZSAqcHJldl92YWx1 ZTsKK30gUHJldlZhbHVlOworCiAvKgogICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxl cyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKICAqIGluIHRoZSBk ZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBiaW5hcnkg Zm9ybWF0LgpAQCAtNzYsNiArODksMjUgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQog CWJvb2wJCWlzbnVsbDsKIAlEYXR1bQkJdmFsdWU7CiAKKwkvKgorCSAqIFdlIGRvbid0IG5lZWQg c3RhY2sgdmVyc2lvbnMgbW9kaWZpZWQgaW4gc2FtZSBzdWJ0cmFuc2FjdGlvbi4KKwkgKiBVc2Vk IGJ5IHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIG9ubHkuIFRoZSB2YWx1ZSBvZiB0cmFuc2FjdGlv bmFsCisJICogdmFyaWFibGUgY2FuIGJlIHJldHVybmVkIGltbWVkaWF0ZWx5IHdoZW4gbW9kaWZ5 X3N1YmlkIGlzIHNhbWUKKwkgKiBsaWtlIGN1cnJlbnQgc3ViaWQuCisJICovCisJU3ViVHJhbnNh Y3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwkvKgorCSAqIFdoZW4gdGhlIG1vZGlmeV9zdWJpZCBp cyBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IHN1YmlkLCB0aGVuCisJICogd2UgbmVlZCB0byByZWNo ZWNrIHZlcnNpb25zIGFuZCB0aHJvdyB2ZXJzaW9ucyByZWxhdGVkIHRvCisJICogcmV2ZXJ0ZWQg dHJhbnNhY3Rpb25zLiBXaGVuIHB1cmdlX3N1YmlkIGlzIHNhbWUgbGlrZSBjdXJyZW50IHN1Ymlk CisJICogd2UgY2FuIHJldHVybiB0aGUgdmFsdWUgb2YgdHJhbnNhY3Rpb24gdmFyaWFibGUgd2l0 aG91dCB0aGlzCisJICogcmVjaGVjay4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIHB1cmdlX3N1 YmlkOworCisJUHJldlZhbHVlICAqcHJldl92YWx1ZTsKKwogCU9pZAkJCXR5cGlkOwogCWludDE2 CQl0eXBsZW47CiAJYm9vbAkJdHlwYnl2YWw7CkBAIC05NCw2ICsxMjYsNyBAQCB0eXBlZGVmIHN0 cnVjdCBTVmFyaWFibGVEYXRhCiAKIAlib29sCQlub3RfbnVsbDsKIAlib29sCQlpc19pbW11dGFi bGU7CisJYm9vbAkJaXNfdHJhbnNhY3Q7CiAKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKQEAgLTEz Myw2ICsxNjYsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CiAgKi8K IHN0YXRpYyBib29sIGhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZh bHNlOwogCisvKiB0cnVlLCB3aGVuIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIHdhcyBtb2RpZmll ZCAqLworc3RhdGljIGJvb2wgaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0g ZmFsc2U7CisKIC8qCiAgKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVz IGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiAgSWYKICAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0 IGF0IHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CkBA IC0xNDgsNiArMTg0LDcgQEAgc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVtcyA9IE5JTDsKIAog c3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlk KTsKIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lk IHZhcmlkKTsKK3N0YXRpYyBib29sIHB1cmdlX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2 YXIpOwogCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52 YWxpZGF0aW9uLgpAQCAtMzAwLDggKzMzNywyNSBAQCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFi bGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1l bW9yeQogICovCiBzdGF0aWMgdm9pZAotZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJp YWJsZSBzdmFyKQorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBi b29sIGRlZXBfZnJlZSkKIHsKKwlpZiAoZGVlcF9mcmVlKQorCXsKKwkJUHJldlZhbHVlICpwcmV2 X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwkJUHJldlZhbHVlICpuZXh0X3ZhbHVlOworCisJ CXdoaWxlIChwcmV2X3ZhbHVlKQorCQl7CisJCQlpZiAoIXN2YXItPnR5cGJ5dmFsKQorCQkJCXBm cmVlKERhdHVtR2V0UG9pbnRlcihwcmV2X3ZhbHVlLT52YWx1ZSkpOworCisJCQluZXh0X3ZhbHVl ID0gcHJldl92YWx1ZS0+cHJldl92YWx1ZTsKKwkJCXBmcmVlKHByZXZfdmFsdWUpOworCisJCQlw cmV2X3ZhbHVlID0gbmV4dF92YWx1ZTsKKwkJfQorCX0KKwogCS8qIGNsZWFuIHRoZSBjdXJyZW50 IHZhbHVlICovCiAJaWYgKCFzdmFyLT5pc251bGwpCiAJewpAQCAtMzk4LDcgKzQ1Miw3IEBAIHJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJCQl7CiAJCQkJT2lk CQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKIAotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgdHJ1ZSk7CiAJ CQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOwog CQkJCXN2YXIgPSBOVUxMOwogCQkJfQpAQCAtNDM0LDYgKzQ4OCw5NCBAQCByZW1vdmVfc2Vzc2lv bl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKIAloYXNfc2Vzc2lvbl92YXJpYWJs ZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIH0KIAorLyoKKyAqIHJlbW92ZSBwcmV2IHZh bHVlcyBhdCBlb3gKKyAqLworc3RhdGljIHZvaWQKK3JlbW92ZV9wcmV2X3ZhbHVlc19hdF9lb3go Ym9vbCBpc0NvbW1pdCkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlz dmFyOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5 LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19tb2RpZmll ZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcykKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgm c3RhdHVzLCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsKKwkJaWYgKHN2YXItPmlzX3RyYW5zYWN0 ICYmIHN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJewor CQkJaWYgKGlzQ29tbWl0KQorCQkJeworCQkJCWlmIChwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2 YXIpKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1 ZTsKKworCQkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQkJeworCQkJCQkJUHJldlZhbHVlICpj dXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQkJaWYgKCFzdmFyLT50eXBieXZhbCAmJiAh Y3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50 X3B2LT52YWx1ZSkpOworCisJCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1 ZTsKKwkJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJCQl9CisJCQkJfQorCQkJCWVsc2UKKwkJ CQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVN T1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQorCQkJfQorCQkJZWxzZQorCQkJ eworCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwkJCQl3 aGlsZSAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCVByZXZWYWx1ZSAqY3VycmVudF9wdiA9IHBy ZXZfdmFsdWU7CisKKwkJCQkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlk U3ViVHJhbnNhY3Rpb25JZCkKKwkJCQkJCWJyZWFrOworCisJCQkJCWlmICghc3Zhci0+dHlwYnl2 YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihj dXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2 X3ZhbHVlOworCQkJCQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQl9CisKKwkJCQlpZiAocHJldl92 YWx1ZSkKKwkJCQl7CisJCQkJCXN2YXItPnZhbHVlID0gcHJldl92YWx1ZS0+dmFsdWU7CisJCQkJ CXN2YXItPmlzbnVsbCA9IHByZXZfdmFsdWUtPmlzbnVsbDsKKworCQkJCQlwZnJlZShwcmV2X3Zh bHVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCQlzdmFyID0gTlVMTDsK KwkJCQl9CisJCQl9CisKKwkJCS8qIHdoZW4gc3ZhciBpcyBzdGlsbCB2YWxpZCAobm90IHJlbW92 ZWQgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaWYgKHN2YXIpCisJCQl7CisJCQkJc3Zhci0+bW9k aWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJCQkJc3Zhci0+cHJldl92YWx1 ZSA9IE5VTEw7CisJCQl9CisJCX0KKwl9CisKKwloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92 YXJpYWJsZXMgPSBmYWxzZTsKK30KKwogLyoKICAgKiBQZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZv ciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAgICogYW5kIHJlbW92ZSBhbGwgZHJvcHBl ZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00ODEsNiArNjIzLDggQEAgQXRQcmVFT1hhY3Rf U2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQogCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9u X3ZhcmlhYmxlcyh0cnVlKTsKIAl9CiAKKwlyZW1vdmVfcHJldl92YWx1ZXNfYXRfZW94KGlzQ29t bWl0KTsKKwogCS8qCiAJICogV2UgaGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCBy ZWxhdGVkIHZhcmlhYmxlcyBhcmUgZHJvcHBlZAogCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJv cnRlZCB0cmFuc2FjdGlvbi4KQEAgLTYyNiw2ICs3NzAsNyBAQCBzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAKIAlzdmFyLT5u b3RfbnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CiAJc3Zhci0+aXNfaW1tdXRhYmxlID0gdmFy Zm9ybS0+dmFyaXNpbW11dGFibGU7CisJc3Zhci0+aXNfdHJhbnNhY3QgPSB2YXJmb3JtLT52YXJp c3RyYW5zYWN0OwogCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZh cnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBO VUxMOwpAQCAtNjUxLDYgKzc5NiwxNyBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsK IAlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKIAorCWlmIChzdmFyLT5pc190cmFuc2FjdCkKKwl7 CisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJ CWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UK KwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisKKwlzdmFy LT5wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCXN2YXItPnByZXZfdmFs dWUgPSBOVUxMOworCiAJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOwogCiAJc3Zhci0+aGFzaHZhbHVl ID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELApAQCAtNjg0LDYgKzg0MCw2OSBA QCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wg aXNfd3JpdGUpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAKKy8qCisgKiBUcnkgdG8gcmVt b3ZlIGFsbCBwcmV2aW91cyB2ZXJzaW9ucyByZWxhdGVkIHRvIHJldmVydGVkIHRyYW5zYWN0aW9u cy4KKyAqIFJldHVybnMgdHJ1ZSwgd2hlbiB2YWxpZCB2ZXJzaW9uIHdhcyBmb3VuZC4KKyAqLwor c3RhdGljIGJvb2wKK3B1cmdlX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIpCit7CisJ U3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkOworCVByZXZWYWx1ZQkgICAqcHJldl92YWx1 ZTsKKwlib29sCQkJZm91bmQgPSB0cnVlOworCisJQXNzZXJ0KHN2YXItPmlzX3RyYW5zYWN0KTsK KworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJ CXJldHVybiB0cnVlOworCisJY3VycmVudF9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlv bklkKCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1YmlkID09IGN1cnJlbnRfc3ViaWQpCisJCXJl dHVybiB0cnVlOworCisJaWYgKHN2YXItPnB1cmdlX3N1YmlkID09IGN1cnJlbnRfc3ViaWQpCisJ CXJldHVybiB0cnVlOworCisJaWYgKFN1YlRyYW5zYWN0aW9uSXNBY3RpdmUoc3Zhci0+bW9kaWZ5 X3N1YmlkKSkKKwl7CisJCXN2YXItPnB1cmdlX3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwkJcmV0 dXJuIHRydWU7CisJfQorCisJcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwl3aGls ZSAocHJldl92YWx1ZSkKKwl7CisJCVByZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7 CisKKwkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rp b25JZCB8fAorCQkJU3ViVHJhbnNhY3Rpb25Jc0FjdGl2ZShjdXJyZW50X3B2LT5tb2RpZnlfc3Vi aWQpKQorCQl7CisJCQlzdmFyLT52YWx1ZSA9IGN1cnJlbnRfcHYtPnZhbHVlOworCQkJc3Zhci0+ aXNudWxsID0gY3VycmVudF9wdi0+aXNudWxsOworCQkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gY3Vy cmVudF9wdi0+bW9kaWZ5X3N1YmlkOworCisJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJl dl92YWx1ZTsKKwkJCXBmcmVlKGN1cnJlbnRfcHYpOworCisJCQlmb3VuZCA9IHRydWU7CisJCQli cmVhazsKKwkJfQorCisJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVs bCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCXBy ZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQlwZnJlZShjdXJyZW50X3B2KTsK Kwl9CisKKwlzdmFyLT5wcmV2X3ZhbHVlID0gcHJldl92YWx1ZTsKKwlzdmFyLT5wdXJnZV9zdWJp ZCA9IGN1cnJlbnRfc3ViaWQ7CisKKwlyZXR1cm4gZm91bmQ7Cit9CisKIC8qCiAgKiBBc3NpZ24g YSBuZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGUuICBJdCBpcyBjb3BpZWQgdG8KICAq IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNzYXJ5LgpAQCAtNjk2LDYgKzkxNSwxMCBA QCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wg aXNudWxsKQogCURhdHVtCQluZXd2YWw7CiAJU1ZhcmlhYmxlRGF0YSBsb2NzdmFyLAogCQkJICAg Kl9zdmFyOworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVudF9zdWJpZCA9IEdldEN1cnJlbnRTdWJU cmFuc2FjdGlvbklkKCk7CisJU3ViVHJhbnNhY3Rpb25JZCBwcmV2X3B1cmdlX3N1YmlkID0gSW52 YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJYm9vbAkJc2F2ZV9wcmV2X3ZhbHVlOworCVByZXZWYWx1 ZSAgKnByZXZfdmFsdWU7CiAKIAlBc3NlcnQoc3Zhcik7CiAJQXNzZXJ0KCFpc251bGwgfHwgdmFs dWUgPT0gKERhdHVtKSAwKTsKQEAgLTczMSw2ICs5NTQsMjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAllbHNlCiAJCV9z dmFyID0gc3ZhcjsKIAorCWlmIChfc3Zhci0+aXNfdHJhbnNhY3QgJiYgX3N2YXItPmNyZWF0ZV9s c24gPT0gc3Zhci0+Y3JlYXRlX2xzbikKKwl7CisJCUFzc2VydChzdmFyLT50eXBpZCA9PSBfc3Zh ci0+dHlwaWQpOworCQlBc3NlcnQoc3Zhci0+dHlwYnl2YWwgPT0gX3N2YXItPnR5cGJ5dmFsKTsK KwkJQXNzZXJ0KHN2YXItPnR5cGxlbiA9PSBfc3Zhci0+dHlwbGVuKTsKKworCQlzYXZlX3ByZXZf dmFsdWUgPSBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gY3VycmVudF9zdWJpZDsKKwkJcHJldl92YWx1 ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJfQorCWVsc2UKKwl7CisJCXNhdmVfcHJldl92YWx1ZSA9 IGZhbHNlOworCQlwcmV2X3ZhbHVlID0gTlVMTDsKKwl9CisKIAlpZiAoIWlzbnVsbCkKIAl7CiAJ CU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1l bW9yeUNvbnRleHQpOwpAQCAtNzQyLDcgKzk4MCwzNyBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCWVsc2UKIAkJbmV3dmFs ID0gdmFsdWU7CiAKLQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJaWYgKHNh dmVfcHJldl92YWx1ZSkKKwl7CisJCXZvbGF0aWxlIFByZXZWYWx1ZSAqbmV3X3ByZXZfdmFsdWU7 CisKKwkJUEdfVFJZKCk7CisJCXsKKwkJCW5ld19wcmV2X3ZhbHVlID0gTWVtb3J5Q29udGV4dEFs bG9jKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQsCisJCQkJCQkJCQkJCQlzaXplb2YoUHJldlZhbHVl KSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJeworCQkJLyogcmVsZWFzZSBtZW0gZnJvbSBwZXJz aXN0ZW50IGNvbnRlbnQgKi8KKwkJCWlmIChuZXd2YWwgIT0gdmFsdWUpCisJCQkJcGZyZWUoRGF0 dW1HZXRQb2ludGVyKG5ld3ZhbCkpOworCQkJUEdfUkVfVEhST1coKTsKKwkJfQorCQlQR19FTkRf VFJZKCk7CisKKwkJbmV3X3ByZXZfdmFsdWUtPnZhbHVlID0gc3Zhci0+dmFsdWU7CisJCW5ld19w cmV2X3ZhbHVlLT5pc251bGwgPSBzdmFyLT5pc251bGw7CisJCW5ld19wcmV2X3ZhbHVlLT5tb2Rp Znlfc3ViaWQgPSBzdmFyLT5tb2RpZnlfc3ViaWQ7CisJCW5ld19wcmV2X3ZhbHVlLT5wcmV2X3Zh bHVlID0gcHJldl92YWx1ZTsKKworCQlwcmV2X3ZhbHVlID0gKFByZXZWYWx1ZSAqKSBuZXdfcHJl dl92YWx1ZTsKKwkJcHJldl9wdXJnZV9zdWJpZCA9IHN2YXItPnB1cmdlX3N1YmlkOworCisJCWhh c19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IHRydWU7CisKKwl9CisJZWxzZQor CQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgcHJldl92YWx1ZSA9PSBOVUxMKTsK IAogCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IG5ldyB2YWx1ZSIsCiAJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCkBAIC03NTUsNiArMTAyMyw5IEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlz dmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisJc3Zhci0+bW9k aWZ5X3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IHByZXZfcHVy Z2Vfc3ViaWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CiAKIAkvKiBkb24ndCBh bGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8K IAlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQpAQCAtODU2LDYgKzExMjcsOCBAQCBnZXRfc2Vzc2lv bl92YXJpYWJsZShPaWQgdmFyaWQpCiAJZWxzZQogCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOwog CityZWluaXQ6CisKIAkvKgogCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRpYWxpemVk IHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKIAkgKiBiZSB2YWxpZGF0ZWQuCkBA IC04ODgsNiArMTE2MSwyOCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJCQkg dmFyaWQpOwogCX0KIAorCS8qCisJICogVHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgc2hvdWxkIGJl IHB1cmdlZCBiZWZvcmUgKHJlbW92ZQorCSAqIHZlcnNpb25zIGNyZWF0ZWQgYnkgcG9zc2libHkg cmV2ZXJ0ZWQgc3VidHJhbnNhY3Rpb25zKS4KKwkgKi8KKwlpZiAoc3Zhci0+aXNfdHJhbnNhY3Qg JiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCkg JiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCXsK KwkJaWYgKCFwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQorCQl7CisJCQkvKiBmb3JjZSBy ZWluaXQgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkJCS8qCisJCQkgKiBJbiBu ZXh0IGl0ZXJhdGlvbiBtb2RpZnlfc3ViaWQgc2hvdWxkIGJlCisJCQkgKiBJbnZhbGlkU3ViVHJh bnNhY3Rpb25JZCBvciBjdXJyZW50IHN1YmlkLAorCQkJICogc28gdGhlcmUgaXMgbm90IHJpc2sg b2YgaW5maW5pdHkgY3ljbGUuCisJCQkgKi8KKwkJCWdvdG8gcmVpbml0OworCQl9CisJfQorCiAJ LyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0aWxsIG9mIHRoZSBjb3JyZWN0IGRvbWFp biAqLwogCWlmIChzdmFyLT5pc19kb21haW4pCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYmY3Y2EzZjUx YzYuLmFmYjE1MWIzYWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY2Nyw3ICs2NjcsNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fb2JqZWN0X2NvbnN0cnVjdG9yX251bGxfY2xhdXNl X29wdAogCQkJCWpzb25fYXJyYXlfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAKLSV0eXBl IDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUKKyV0eXBlIDxib29sZWFuPgkJT3B0 Tm90TnVsbCBPcHRJbW11dGFibGUgT3B0VHJhbnNhY3Rpb25hbAogCiAvKgogICogTm9uLWtleXdv cmQgdG9rZW4gdHlwZXMuICBUaGVzZSBhcmUgaGFyZC13aXJlZCBpbnRvIHRoZSAiZmxleCIgbGV4 ZXIuCkBAIC03NzIsNyArNzcyLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJ UFRJT04gU1VCU1RSSU5HIFNVUFBPUlQgU1lNTUVUUklDIFNZU0lEIFNZU1RFTV9QIFNZU1RFTV9V U0VSCiAKIAlUQUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUgVEFCTEVTUEFDRSBUQVJHRVQgVEVNUCBU RU1QTEFURSBURU1QT1JBUlkgVEVYVF9QIFRIRU4KLQlUSUVTIFRJTUUgVElNRVNUQU1QIFRPIFRS QUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TRk9STQorCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJB SUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNBQ1RJT05BTCBUUkFOU0ZPUk0KIAlUUkVBVCBUUklHR0VS IFRSSU0gVFJVRV9QCiAJVFJVTkNBVEUgVFJVU1RFRCBUWVBFX1AgVFlQRVNfUAogCkBAIC01MjM5 LDMxICs1MjM5LDMzIEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIE9wdFRlbXAgT3B0 SW1tdXRhYmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9u T3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBPcHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBW QVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl IE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJ CXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9u VmFyU3RtdCk7Ci0JCQkJCSQ1LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11 dGFibGUgPSAkMzsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNTsKLQkJCQkJbi0+dHlwZU5hbWUgPSAk NzsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ4OwotCQkJCQluLT5u b3RfbnVsbCA9ICQ5OwotCQkJCQluLT5kZWZleHByID0gJDEwOwotCQkJCQluLT5YYWN0RW5kQWN0 aW9uID0gJDExOworCQkJCQkkNi0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1t dXRhYmxlID0gJDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxl ID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29s bGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTA7CisJCQkJCW4tPmRlZmV4 cHIgPSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJCW4tPmlmX25vdF9l eGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRF IE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vz c2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBP cHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVh bGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxs IE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNy ZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwot CQkJCQkkOC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7 Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDg7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDEwOwotCQkJCQlu LT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDExOwotCQkJCQluLT5ub3RfbnVsbCA9 ICQxMjsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMzsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQx NDsKKwkJCQkJJDktPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9 ICQ0OworCQkJCQluLT5pc190cmFuc2FjdCA9ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ5Owor CQkJCQluLT50eXBlTmFtZSA9ICQxMTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xh dXNlICopICQxMjsKKwkJCQkJbi0+bm90X251bGwgPSAkMTM7CisJCQkJCW4tPmRlZmV4cHIgPSAk MTQ7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTU7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMg PSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtNTI5MSw2ICs1MjkzLDEy IEBAIE9wdEltbXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQogCQkJfCAv KiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwogCitPcHRUcmFuc2FjdGlvbmFs OgorCQkJVFJBTlNBQ1RJT04JCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IFRSQU5TQUNUSU9O QUwJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZh bHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5T SU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC0xODA5OCw2ICsxODEwNiw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVEVYVF9QCiAJCQl8IFRJRVMKIAkJCXwgVFJBTlNBQ1RJ T04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFOU0ZPUk0KIAkJCXwgVFJJR0dFUgogCQkJ fCBUUlVOQ0FURQpAQCAtMTg3NDYsNiArMTg3NTUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJ CQl8IFRJTUVTVEFNUAogCQkJfCBUUkFJTElORwogCQkJfCBUUkFOU0FDVElPTgorCQkJfCBUUkFO U0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUkVBVAogCQkJfCBUUklHR0VSCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwppbmRleCBiNGM2MWRhMTg4NS4uNDZmYjI4YzFjOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0 Miw2ICs1NDQyLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJj b2xsYXRpb247CiAJaW50CQkJaV92YXJub3RudWxsOwogCWludAkJCWlfdmFyaXNpbW11dGFibGU7 CisJaW50CQkJaV92YXJpc3RyYW5zYWN0OwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNs ZGVmYXVsdDsKIAlpbnQJCQlpLApAQCAtNTQ2Niw2ICs1NDY3LDcgQEAgZ2V0VmFyaWFibGVzKEFy Y2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgogCQkJ CQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJpc2ltbXV0 YWJsZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyaXN0cmFuc2FjdCxcbiIKIAkJCQkJICAiICAg ICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIs XG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAg ICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDg4 LDYgKzU0OTAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlv biA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZu dW1iZXIocmVzLCAidmFybm90bnVsbCIpOwogCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIo cmVzLCAidmFyaXNpbW11dGFibGUiKTsKKwlpX3ZhcmlzdHJhbnNhY3QgPSBQUWZudW1iZXIocmVz LCAidmFyaXN0cmFuc2FjdCIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJv d25lciIpOwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAtNTUxNiw2 ICs1NTE5LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0udmFy Y29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOwog CQl2YXJpbmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51 bGwpKSA9PSAndCc7CiAJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzdHJh bnNhY3QgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAndCc7CiAK IAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2 YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU2Myw2ICs1NTY3LDcgQEAgZHVtcFZh cmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAljb25z dCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJY29u c3QgY2hhciAqdmFyaXNpbW11dGFibGU7CisJY29uc3QgY2hhciAqdmFyaXN0cmFuc2FjdDsKIAlP aWQJCQl2YXJjb2xsYXRpb247CiAJYm9vbAkJdmFybm90bnVsbDsKIApAQCAtNTU4MCwxMiArNTU4 NSwxMyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAl2YXJub3Ru dWxsID0gdmFyaW5mby0+dmFybm90bnVsbDsKIAl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZh cmlzaW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CisJdmFyaXN0cmFuc2FjdCA9IHZhcmlu Zm8tPnZhcmlzdHJhbnNhY3QgPyAiVFJBTlNBQ1RJT05BTCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4 cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUp OwogCi0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAl cyIsCi0JCQkJCSAgdmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAlcyVzVkFSSUFCTEUgJXMgQVMgJXMiLAor CQkJCQkgIHZhcmlzdHJhbnNhY3QsIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlw bmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmlu ZGV4IDA1NjI0OTdmMzRlLi5mM2U5ODIzYzhjYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MjcsNiArNzI3 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7 CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KIAlib29sCQl2YXJub3RudWxs OwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlOworCWJvb2wJCXZhcmlzdHJhbnNhY3Q7CiB9IFZhcmlh YmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggMWJiYTY4ZTZhZWUu LjAzNDQwYTQyMzBkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5w bAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDA3Nyw2ICs0MDc3 LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBUUkFOU0FDVElPTkFM IFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVB VEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXI7 XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1h X3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJ CQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVu dCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxF IFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFS SUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRlZ2VyJywKKwkJcmVnZXhwID0+IHFyL14K KwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTkgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ b25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklF VyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDc0ZTFiYzU1Nzhl Li5iNjgxYjUwY2VjMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNTAsNyArNTI1MCw3IEBAIGxpc3RWYXJpYWJs ZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBi dWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7 Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7 CkBAIC01MjczLDYgKzUyNzMsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZh cm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHYudmFyaXN0cmFuc2FjdCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBD QVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04g Q09NTUlUIERST1AnXG4iCkBAIC01Mjg1LDYgKzUyODYsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVy IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9v cCgiTXV0YWJsZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZDY4Mzhh ZTNjMTkuLmQzNDdiMmQyN2U5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMzA1LDYgKzEz MDUsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9 IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlRFWFQgU0VBUkNIIiwg TlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJUUkFOU0ZPUk0iLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxM LCBUSElOR19OT19BTFRFUn0sCisJeyJUUkFOU0FDVElPTkFMIiwgTlVMTCwgTlVMTCwgTlVMTCwg TlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENSRUFURSBUUkFO U0FDVElPTkFMCisJCQkJCQkJCQkJCQkJCQkJCQkJCSogVkFSSUFCTEUgLi4uICovCiAJeyJUUklH R0VSIiwgIlNFTEVDVCB0Z25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX3RyaWdnZXIgV0hFUkUgdGdu YW1lIExJS0UgJyVzJyBBTkQgTk9UIHRnaXNpbnRlcm5hbCJ9LAogCXsiVFlQRSIsIE5VTEwsIE5V TEwsICZRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXN9LAogCXsiVU5JUVVFIiwgTlVMTCwgTlVM TCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENS RUFURSBVTklRVUUKQEAgLTM5NjIsOCArMzk2NCwxMSBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAl9CiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5z aWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENS RUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJUUkFOU0FDVElPTnxUUkFOU0FDVElPTkFMIikpCisJCUNPTVBMRVRFX1dJVEgoIklNTVVU QUJMRSIsICJWQVJJQUJMRSIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAi VkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiVFJBTlNBQ1RJT058VFJB TlNBQ1RJT05BTCIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAogCQkJIFRhaWxNYXRjaGVzKCJJ TU1VVEFCTEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7 CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IGNmMjFlMDQyNmE3Li40NTRiYjI5NzA5NyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNjIsNiArNjIsOSBAQCBDQVRBTE9HKHBnX3Zh cmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIGRvbid0IGFsbG93IGNoYW5nZXMg Ki8KIAlib29sCQl2YXJpc2ltbXV0YWJsZSBCS0lfREVGQVVMVChmKTsKIAorCS8qIHN1cHBvcnRz IHRyYW5zYWN0aW9ucyAqLworCWJvb2wJCXZhcmlzdHJhbnNhY3QgQktJX0RFRkFVTFQoZik7CisK IAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlv biBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDk5MGNlYmJmMDhi Li5iNzQ0MGEwNjFiOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ5MSw2ICszNDkxLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlib29sCQlpZl9ub3RfZXhp c3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCiAJYm9vbAkJbm90X251 bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLwogCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3Qg YWxsb3cgY2hhbmdlcyAqLworCWJvb2wJCWlzX3RyYW5zYWN0OwkvKiBzdXBwb3J0cyB0cmFuc2Fj dGlvbnMgKi8KIAlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICovCiAJ Y2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBD cmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA2Zjg0ZmVmZDUyNS4uNGYx YzBlYjUzNmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQ1NSw2ICs0NTUsNyBAQCBQR19LRVlXT1JE KCJ0aW1lc3RhbXAiLCBUSU1FU1RBTVAsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ0byIsIFRPLCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdP UkQoInRyYWlsaW5nIiwgVFJBSUxJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ0cmFuc2FjdGlvbiIsIFRSQU5TQUNUSU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ0cmFuc2FjdGlvbmFsIiwgVFJBTlNBQ1RJT05BTCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNmb3JtIiwg VFJBTlNGT1JNLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0 cmVhdCIsIFRSRUFULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi dHJpZ2dlciIsIFRSSUdHRVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IGUxNjM1ZjY4NmMyLi5kYTlmNGE3MDMwYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsK IFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hh cmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAg ICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAg ICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFs IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2Vz IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0 ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUg ZGVzY3JpcHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxl IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgot ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENv bGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBU cmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAg ICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRp b24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBw dWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3 L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAg ICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAg ICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTY0MTYs OSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZh cmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBO dWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisg U2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0 YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgpAQCAtNjU5MSw5ICs2NTkxLDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUg KHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEK IFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5ldmVudC50cmlnZ2VyIgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFy aWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51 bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRh YmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5k IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0 IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0 IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCA3NzgyYTc4ODQzZC4uYWRlNWRmMDAxYzcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0yNTU5LDMgKzI1NTksMTAzIEBAIFNFTEVD VCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIEVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQogRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVz dCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9OIFZBUklBQkxFIHR2 IEFTIGludCBERUZBVUxUIDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7 CisgdHYgIAorLS0tLS0KKyAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7Cisg dHYgCistLS0tCisgIDAKKygxIHJvdykKKworTEVUIHR2ID0gMTAwOworQkVHSU47CisgIExFVCB0 diA9IDEwMDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygx IHJvdykKKworQkVHSU47CisgIExFVCB0diA9IDA7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0K KyAgMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisg MTAwMAorKDEgcm93KQorCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworQkVHSU47CisgIExFVCB0 diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExF VCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAy CisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2 OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworICB0 diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdHYgPSAxOworU0FW RVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBMRVQgdHYgPSAzOwor Uk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQor CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0t LS0KKyAgMQorKDEgcm93KQorCitDT01NSVQ7CitTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEK KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB0djsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbAppbmRleCAyYmI0NTUyNjI5Mi4uNDExNDI0YzllMTIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTE3ODMsMyArMTc4Myw2 MSBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsK KworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9OIFZB UklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CisKK0JFR0lOOworICBMRVQgdHYgPSAxMDA7Cisg IFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0xFVCB0diA9IDEwMDsKK0JF R0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworCitTRUxFQ1QgdHY7CisKK0JFR0lOOwor ICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCist LSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lO VCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExC QUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7 CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0JFR0lOOworICBMRVQg dHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBM RVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAgTEVUIHR2ID0gMTA7 CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworQ09NTUlUOworCitTRUxFQ1QgdHY7CisK K0RST1AgVkFSSUFCTEUgdHY7Ci0tIAoyLjQ3LjEKCg== --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20250106-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg5p3 RnJvbSBmOGYxZjNlZGYxNWZiMzZkNmRlNzdlZDNkMWYwNjhlMjk1OTJhODMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIyXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCA1YzMxYWU1NjMwMi4uZDNjZjAxYzc4NzAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3NDMsOCArNDc0Myw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5NDgsMjEgKzQ5NDcsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t 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 cnNfbXV0YXRvciwgY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGU3ZWM0MWZjMDFlLi4zNmIzNjMzMDgwZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAg LTQ1Niw3ICs0NTYsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4KDIwKTsKIEVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFNRTCBm dW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKIEVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDog IFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCkBA IC01NjMsMTAgKzU2MiwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CiAKIC0t IGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNU IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEoc3FsZngyKCdIZWxsbyc6OmNo YXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8ICcsICc6OnRleHQpIHx8ICgo dmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkKICgyIHJvd3MpCiAKIERST1Ag RlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20250106-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg5f2 RnJvbSAyY2ZjZTVhMjM4MTEyZjlkYjIzMjY2OWEwMGIxN2NlMmZmNGM4YjIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjJdIHRoaXMgcGF0Y2ggY2hhbmdlcyBlcnJvciBtZXNzYWdlICJjb2x1bW4gZG9lc24ndCBl eGlzdCIKIHRvIG1lc3NhZ2UgImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0IgoKVGhl IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtb3JlIGNvcnJlY3QuIFRvZGF5LCBtaXNzaW5nIFBML3Bn U1FMIHZhcmlhYmxlIGNhbiBiZSByZXBvcnRlZC4gVGhlIGNoYW5nZSBoYXMKaW1wYWN0IG9uIGxv dCBvZiByZWdyZXNzIHRlc3RzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLCBhbmQgdGhlbiBpdCBpcyBkaXN0cmlidXRlZCBhcyBzZXBhcmF0ZSBwYXRjaAotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAyNCArKysrKysrKysr Ky0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDgg KysrLS0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggICAgICAgICAgICAgICB8ICAy ICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQgfCAgMiAr LQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dCAgIHwgIDQgKy0t CiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMiArLQog c3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dCAgICAgICAgIHwgMTIgKysrLS0t LQogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAzMiArKysr KysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgICAg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0ICAgICAg ICAgIHwgIDggKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAgICAg ICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dCAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0 ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCAgICAg ICAgIHwgMTIgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAg ICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8ICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg ICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQg ICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0ICAgICAgICAg ICB8ICAyICstCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBjYTk2OGI1YzZjZC4uZTUxMjAyNTU3 YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTI2LDcgKzUyNiw3IEBAIHRyYW5zZm9y bUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogICog cHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJp YWJsZXMgY2Fubm90IGJlCiAgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJv ciBtZXNzYWdlLgogICovCi1zdGF0aWMgYm9vbAorYm9vbAogZXhwcl9raW5kX2FsbG93c19zZXNz aW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQogewogCWJvb2wJCXJlc3Vs dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCA4NjVhMTJkOGI3 MS4uYzg3YjQyYmFkMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yNyw2 ICsyNyw3IEBACiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMv bm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Vuci5oIgorI2luY2x1ZGUgInBh cnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVl LmgiCkBAIC0zNzMwLDYgKzM3MzEsMTkgQEAgZXJyb3JNaXNzaW5nUlRFKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUmFuZ2VWYXIgKnJlbGF0aW9uKQogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCByZWxhdGlvbi0+bG9jYXRpb24pKSk7CiB9CiAKKy8qCisgKiBzZXQgbWVzc2FnZSAiY29sdW1u IGRvZXMgbm90IGV4aXN0IiBvciAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0Igor ICogaW4gZGVwZW5kZW5jeSBpZiBleHByZXNzaW9uIGNvbnRleHQgYWxsb3dzIHNlc3Npb24gdmFy aWFibGVzLgorICovCitzdGF0aWMgaW50Citjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhp c3RzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgY2hhciAqY29sbmFtZSkKK3sKKwlpZiAoZXhw cl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJ cmV0dXJuIGVycm1zZygiY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIs IGNvbG5hbWUpOworCWVsc2UKKwkJcmV0dXJuIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIGNvbG5hbWUpOworfQorCiAvKgogICogR2VuZXJhdGUgYSBzdWl0YWJsZSBlcnJv ciBhYm91dCBhIG1pc3NpbmcgY29sdW1uLgogICoKQEAgLTM3NjQsNyArMzc3OCw3IEBAIGVycm9y TWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVycm1zZygiY29sdW1u ICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCQkgZXJybXNn KCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJCSBlcnJk ZXRhaWwoIlRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkIFwiJXNcIiwgYnV0IHRoZXkgYXJlIGluIHRh YmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVy eS4iLAogCQkJCQkJCSAgIGNvbG5hbWUpLAogCQkJCQkgIXJlbG5hbWUgPyBlcnJoaW50KCJUcnkg dXNpbmcgYSB0YWJsZS1xdWFsaWZpZWQgbmFtZS4iKSA6IDAsCkBAIC0zNzc0LDcgKzM3ODgsNyBA QCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNv bHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVt bl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJy ZGV0YWlsKCJUaGVyZSBpcyBhIGNvbHVtbiBuYW1lZCBcIiVzXCIgaW4gdGFibGUgXCIlc1wiLCBi dXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIs CiAJCQkJCQkgICBjb2xuYW1lLCBzdGF0ZS0+cmV4YWN0MS0+ZXJlZi0+YWxpYXNuYW1lKSwKIAkJ CQkgcnRlX3Zpc2libGVfaWZfbGF0ZXJhbChwc3RhdGUsIHN0YXRlLT5yZXhhY3QxKSA/CkBAIC0z NzkyLDE0ICszODA2LDE0IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSByZWxuYW1l ID8KIAkJCQkJIGVycm1zZygiY29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwg Y29sbmFtZSkgOgotCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0Iiwg Y29sbmFtZSksCisJCQkJCSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0 ZSwgY29sbmFtZSksCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikp KTsKIAkJLyogSGFuZGxlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhIHNpbmdsZSBhbHRlcm5hdGl2ZSBz cGVsbGluZyB0byBvZmZlciAqLwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVt biAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNn KCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9v cl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyaGlu dCgiUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIs CiAJCQkJCQkgc3RhdGUtPnJmaXJzdC0+ZXJlZi0+YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChs aXN0X250aChzdGF0ZS0+cmZpcnN0LT5lcmVmLT5jb2xuYW1lcywKQEAgLTM4MTMsNyArMzgyNyw3 IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygi Y29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBl cnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29s dW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBl cnJoaW50KCJQZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVz XCIgb3IgdGhlIGNvbHVtbiBcIiVzLiVzXCIuIiwKIAkJCQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVm LT5hbGlhc25hbWUsCiAJCQkJCQkgc3RyVmFsKGxpc3RfbnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYt PmNvbG5hbWVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDMwMGVhMzQ4Nzg4Li4z NDAyZWU4NmRlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc5LDcgKzc3OSw5 IEBAIHRyYW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQlpZiAoIXR5cHJlbGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJD T0RFX0RBVEFUWVBFX01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8g ZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3Qg YSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3Np Z24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBp dHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBh c3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAl cyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFt ZSwKIAkJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODgsNyArNzkwLDkgQEAgdHJh bnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChh dHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShl cnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3Qg YXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMg bm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5k X2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJ CSAiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwi JXNcIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgor CQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIg YmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJ CQlzdHJWYWwobiksIHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5 cGVJZCkpLAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggNWJkZTQzNzU4ZDEuLjcxZWMyMTNmODg0IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTI0LDQgKzI0LDYgQEAgZXh0ZXJuIE5vZGUgKnRyYW5z Zm9ybUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4 cHJLaW4KIAogZXh0ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktp bmQgZXhwcktpbmQpOwogCitleHRlcm4gYm9vbCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFy aWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpOworCiAjZW5kaWYJCQkJCQkJLyogUEFS U0VfRVhQUl9IICovCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9hcnJheS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJh eS5vdXQKaW5kZXggYWQ2MGUwZThiZTMuLmMxYWI5ZmQ3ZWQ5IDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0CkBAIC00MSw3ICs0MSw3IEBAIE5PVElD RTogIGEgPSB7IigsMTEpIn0sIGFbMV0uaSA9IDExCiAtLSBwZXJoYXBzIHRoaXMgb3VnaHQgdG8g d29yaywgYnV0IGZvciBub3cgaXQgZG9lc24ndDoKIGRvICQkIGRlY2xhcmUgYSBjb21wbGV4W107 CiBiZWdpbiBhWzE6Ml0uaSA6PSBhcnJheVsxMSwxMl07IHJhaXNlIG5vdGljZSAnYSA9ICUnLCBh OyBlbmQkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uICJh IiBiZWNhdXNlIGl0cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorRVJS T1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImEi IGJlY2F1c2UgaXRzIHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCiBMSU5F IDE6IGFbMToyXS5pIDo9IGFycmF5WzExLDEyXQogICAgICAgICBeCiBRVUVSWTogIGFbMToyXS5p IDo9IGFycmF5WzExLDEyXQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfcmVjb3JkLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3Fs X3JlY29yZC5vdXQKaW5kZXggNjk3NGM4ZjRhNDQuLjM5NzBhYzcyMWM5IDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUs NyBAQCBFUlJPUjogIHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3Bn U1FMIGFzc2lnbm1lbnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29k ZV9ibG9jayBsaW5lIDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4 czsgYmVnaW4gYy5jMi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZp ZWxkICJ4IiBvZiBjb2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4g ZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBv ZiBjb2x1bW4gb3IgdmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4g aW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFV RVJZOiAgYy5jMi54ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBo YXMgbm8gZmllbGQgIngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEg PSAxIgogUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2ln bm1lbnQKIGRvICQkIDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54 ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1 bW4gImIiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19p bnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFy aWFibGUgImIiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cwogTElORSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIu eCA9IDEKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggZWNhYzY0ZmNmYjQuLjhiZDJiMzk4YmRkIDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3Zhcmlh YmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLm91dApAQCAtMjMyLDcgKzIzMiw3IEBAIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBT RVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgZmFpbCwgYnV0IG5v dCBjcmFzaAogU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKLUVSUk9SOiAgY29sdW1uICJwbHBnc3Fs X3N2X3ZhcjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicGxw Z3NxbF9zdl92YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKICAg ICAgICAgXgogUVVFUlk6ICBwbHBnc3FsX3N2X3ZhcjEKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wv ZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3F1 ZXJpZXMub3V0CmluZGV4IDM1Y2M2ZTYyYWFkLi40OTdjZDM4MTg5YiAxMDA2NDQKLS0tIGEvc3Jj L3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAorKysgYi9zcmMvcGwvdGNsL2V4cGVj dGVkL3BsdGNsX3F1ZXJpZXMub3V0CkBAIC00NTAsMTIgKzQ1MCwxMiBAQCBDT05URVhUOiAgd2hp bGUgZXhlY3V0aW5nCiAiX19QTFRjbF9wcm9jX3RjbF9ldmFsX3RleHQgc3BpX3ByZXBhcmVcIGFc IFwiYlwgXHtcIiIKIGluIFBML1RjbCBmdW5jdGlvbiB0Y2xfZXZhbCh0ZXh0KQogc2VsZWN0IHRj bF9lcnJvcl9oYW5kbGluZ190ZXN0KCR0Y2wkc3BpX3ByZXBhcmUgInNlbGVjdCBtb28iIFtdJHRj bCQpOwotICAgICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gU1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAg ICAgICAgICAgKwotIGNvbmRpdGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICsKLSBjdXJz b3JfcG9zaXRpb246IDggICAgICAgICAgICAgICAgICArCi0gbWVzc2FnZTogY29sdW1uICJtb28i IGRvZXMgbm90IGV4aXN0KworICAgICAgICAgICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworIGNvbmRpdGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICAgICAgICAgICAgICsKKyBj dXJzb3JfcG9zaXRpb246IDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgbWVzc2Fn ZTogY29sdW1uIG9yIHZhcmlhYmxlICJtb28iIGRvZXMgbm90IGV4aXN0KwogIHN0YXRlbWVudDog c2VsZWN0IG1vbwogKDEgcm93KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQv c2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggZTlhMjU0YmNkMTIuLmQ4ODQ4ZDU1NWNkIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQK KysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBA IC0xMCw3ICsxMCw3IEBAIHRlc3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwog c3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3Qg ZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QK IAogc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxl dDogTEVUIG15dmFyID0gJ3Rlc3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBC RUdJTjsKIHN0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1Qg bXl2YXI7Ci1FUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJB Q0s7CiAKIHN0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcg dmFsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDEyODUy YWE2MTJhLi5kNmViNTFlMmNmYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9hbHRlcl90YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90 YWJsZS5vdXQKQEAgLTEyOTUsMTkgKzEyOTUsMTkgQEAgc2VsZWN0ICogZnJvbSBhdGFjYzE7CiAo MSByb3cpCiAKIHNlbGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5IGE7Ci1FUlJPUjogIGNvbHVt biAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNj MSBvcmRlciBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVt biAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgYTsKLUVSUk9SOiAgY29sdW1u ICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2Mx IGdyb3VwIGJ5ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIjsKLUVSUk9SOiAgY29sdW1u ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5ICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiBzZWxlY3QgYXRhY2MxLiogZnJvbSBhdGFjYzE7CkBAIC0xMzE3LDcgKzEzMTcsNyBA QCBzZWxlY3QgYXRhY2MxLiogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhIGZyb20g YXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVt biBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEgZnJvbSBh dGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3QgYXRhY2MxLmEgZnJvbSBhdGFjYzE7CkBA IC0xMzMxLDE1ICsxMzMxLDE1IEBAIHNlbGVjdCBiLGMsZCBmcm9tIGF0YWNjMTsKICgxIHJvdykK IAogc2VsZWN0IGEsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAog TElORSAxOiBzZWxlY3QgYSxiLGMsZCBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNl bGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDE7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0IGF0YWNjMS4iLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJvbSBh dGFjYzE7CkBAIC0xMzQ3LDExICsxMzQ3LDExIEBAIEVSUk9SOiAgY29sdW1uIGF0YWNjMS4uLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBh dGFjYzEuIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAg ICAgICAgICAgXgogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCBm cm9tIGF0YWNjMTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4u IiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcu ZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAg ICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgPSAxOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5k cm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBh dGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gLi4uCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIFVQREFURXMKQEAgLTEzNjAsNyArMTM2 MCw3IEBAIEVSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiYXRhY2MxIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCBhID0gMzsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7Ci1FUlJPUjog IGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJh IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSBh ID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogdXBkYXRlIGF0 YWNjMSBzZXQgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKQEAgLTEzNjgsNyAr MTM2OCw3IEBAIEVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBv ZiByZWxhdGlvbiAiYXRhY2MxIiBkb2VzIG5vdCBleGlzCiBMSU5FIDE6IHVwZGF0ZSBhdGFjYzEg c2V0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlICIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIu Li4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB1cGRh dGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gSU5TRVJUcwpA QCAtMTQxNiwxMSArMTQxNiwxMSBAQCBMSU5FIDE6IGluc2VydCBpbnRvIGF0YWNjMSAoIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLGIsYyxkKSB2YS4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIC0tIERFTEVURXMKIGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsK LUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVy ZSBhID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGRlbGV0ZSBmcm9t IGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6 ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiBkZWxldGUgZnJvbSBhdGFjYzE7CkBAIC0xNzA2LDcgKzE3MDYsNyBAQCBzZWxlY3Qg ZjEgZnJvbSBjMTsKIAogYWx0ZXIgdGFibGUgYzEgZHJvcCBjb2x1bW4gZjE7CiBzZWxlY3QgZjEg ZnJvbSBjMTsKLUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxIGZy b20gYzE7CiAgICAgICAgICAgICAgICBeCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVm ZXJlbmNlIHRoZSBjb2x1bW4gImMxLmYyIi4KQEAgLTE3MjAsNyArMTcyMCw3IEBAIEVSUk9SOiAg Y2Fubm90IGRyb3AgaW5oZXJpdGVkIGNvbHVtbiAiZjEiCiBhbHRlciB0YWJsZSBwMSBkcm9wIGNv bHVtbiBmMTsKIC0tIGMxLmYxIGlzIGRyb3BwZWQgbm93LCBzaW5jZSB0aGVyZSBpcyBubyBsb2Nh bCBkZWZpbml0aW9uIGZvciBpdAogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAi ZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAgICAgXgog SElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIu CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDY0ZWEzM2FlYWU4Li42ODc0ZjVh ZTBkMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTE2MCw3ICsxNjAsNyBA QCBMSU5FIDE6IENPUFkgeCBUTyBzdGRvdXQgV0hFUkUgYSA9IDE7CiBDT1BZIHggZnJvbSBzdGRp biBXSEVSRSBhID0gNTAwMDQ7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID4gNjAwMDM7CiBD T1BZIHggZnJvbSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7Ci1FUlJPUjogIGNvbHVtbiAiZiIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSBtYXgo eC5iKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAppbmRleCA4YzUyNzQ3NGRhZi4u ZTUzYWU0NTFkZmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3Jz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcg KzI3LDcgQEAgTElORSAxOiBzZWxlY3QgKiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAg ICAgICAgIF4KIC0tIGJhZCBuYW1lIGluIHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJv bSBwZ19kYXRhYmFzZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogc2VsZWN0IG5vbmVzdWNoIGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBe CiAtLSBlbXB0eSBkaXN0aW5jdCBsaXN0IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElO RSAxOiBzZWxlY3QgZGlzdGluY3QgZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVj dCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hlcmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1l OwotRVJST1I6ICBjb2x1bW4gIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg KiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmli dXRlIG5hbWUgb24gcmhzIG9mIG9wZXJhdG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdo ZXJlIHBnX2RhdGFiYXNlLmRhdG5hbWUgPSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25l c3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3Vj aCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVy ZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1 dGUgbmFtZSBpbiBzZWxlY3QgZGlzdGluY3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFy KSAqIGZyb20gcGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBl eGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc2VsZWN0IGRpc3RpbmN0IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERB VEUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CmluZGV4IDA3OWZjZjQ2ZjBkLi5hNmU3MTA1 YWNjZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC02Mzk3LDEzICs2Mzk3LDEz IEBAIExJTkUgMTogc2VsZWN0IHQyLnV1bmlxdWUxIGZyb20KIEhJTlQ6ICBQZXJoYXBzIHlvdSBt ZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAidDIudW5pcXVlMSIuCiBzZWxlY3QgdXVuaXF1 ZTEgZnJvbQogICB0ZW5rMSB0MSBqb2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0g ZXJyb3IsIHN1Z2dlc3QgYm90aCBhdCBvbmNlCi1FUlJPUjogIGNvbHVtbiAidXVuaXF1ZTEiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidXVuaXF1ZTEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCB1dW5pcXVlMSBmcm9tCiAgICAgICAgICAgICAgICBe CiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQxLnVu aXF1ZTEiIG9yIHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IGN0aWQgZnJvbQogICB0 ZW5rMSB0MSBqb2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIG5lZWQg cXVhbGlmaWNhdGlvbgotRVJST1I6ICBjb2x1bW4gImN0aWQiIGRvZXMgbm90IGV4aXN0CitFUlJP UjogIGNvbHVtbiBvciB2YXJpYWJsZSAiY3RpZCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0IGN0aWQgZnJvbQogICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVt bnMgbmFtZWQgImN0aWQiLCBidXQgdGhleSBhcmUgaW4gdGFibGVzIHRoYXQgY2Fubm90IGJlIHJl ZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzUwMCw3ICs3NTAwLDcg QEAgbGF0ZXJhbCAoc2VsZWN0ICogZnJvbSBpbnQ4X3RibCB0MSwKIAogLS0gdGVzdCBzb21lIGVy cm9yIGNhc2VzIHdoZXJlIExBVEVSQUwgc2hvdWxkIGhhdmUgYmVlbiB1c2VkIGJ1dCB3YXNuJ3QK IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKLUVSUk9S OiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBh LCAoc2VsZWN0IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBpbiB0 YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0 aGUgcXVlcnkuCkBAIC03NTEyLDcgKzc1MTIsNyBAQCBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20g aW50NF90YmwgYSwgKHNlbGVjdCBhLmYxIGFzIGcpIHNzOwogREVUQUlMOiAgVGhlcmUgaXMgYW4g ZW50cnkgZm9yIHRhYmxlICJhIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhp cyBwYXJ0IG9mIHRoZSBxdWVyeS4KIEhJTlQ6ICBUbyByZWZlcmVuY2UgdGhhdCB0YWJsZSwgeW91 IG11c3QgbWFyayB0aGlzIHN1YnF1ZXJ5IHdpdGggTEFURVJBTC4KIHNlbGVjdCBmMSxnIGZyb20g aW50NF90YmwgYSBjcm9zcyBqb2luIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVt biAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSBjcm9zcyBq b2luIChzZWxlY3QgZjEgYXMgZykgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFt ZWQgImYxIiBpbiB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NTQ5LDcgKzc1NDksNyBAQCBMSU5FIDE6IHNlbGVj dCAxIGZyb20gdGVuazEgYSwgbGF0ZXJhbCAoc2VsZWN0IG1heChhLnVuaXF1ZTEpIGZyb20gaS4u LgogY3JlYXRlIHRlbXAgdGFibGUgeHgxIGFzIHNlbGVjdCBmMSBhcyB4MSwgLWYxIGFzIHgyIGZy b20gaW50NF90Ymw7CiAtLSBlcnJvciwgY2FuJ3QgZG8gdGhpczoKIHVwZGF0ZSB4eDEgc2V0IHgy ID0gZjEgZnJvbSAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVS Uk9SOiAgY29sdW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlh YmxlICJ4MSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIHNldCB4MiA9IGYxIGZyb20gKHNl bGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlM OiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc1Njks NyArNzU2OSw3IEBAIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJvbSB4eDEsIGxhdGVyYWwgKHNl bGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkKIEVSUk9SOiAgdGFibGUgbmFtZSAi eHgxIiBzcGVjaWZpZWQgbW9yZSB0aGFuIG9uY2UKIC0tIGFsc28gZXJyb3JzOgogZGVsZXRlIGZy b20geHgxIHVzaW5nIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwot RVJST1I6ICBjb2x1bW4gIngxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIngxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi50ZSBmcm9tIHh4MSB1c2luZyAo c2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRB SUw6ICBUaGVyZSBpcyBhIGNvbHVtbiBuYW1lZCAieDEiIGluIHRhYmxlICJ4eDEiLCBidXQgaXQg Y2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CmluZGV4IGRiYmRhNzJkMzk1Li5kOTg3OTNm OTJhNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dApAQCAtMjMsNyAr MjMsNyBAQCBCRUdJTjsKIFNFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHRlc3RfbnNfc2NoZW1h XzE7CiBDUkVBVEUgU0NIRU1BIHRlc3RfbnNfc2NoZW1hXzIKICAgICAgICBDUkVBVEUgVklFVyBh YmNfdmlldyBBUyBTRUxFQ1QgYyBGUk9NIGFiYzsKLUVSUk9SOiAgY29sdW1uICJjIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImMiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDI6ICAgICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBBUyBTRUxFQ1QgYyBGUk9NIGFiYzsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDT01NSVQ7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAppbmRleCA5ZTIzMTY2ZmVk MS4uNjcyMDEyZTE0NjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVt ZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91 dApAQCAtMzE0LDcgKzMxNCw3IEBAIE5PVElDRTogIGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAw MwogLS0gZXJyb3IgY2FzZXMKIFNFTEVDVCBfMTAwOwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIF8xMDA7CiAgICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAw XzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CmluZGV4IDBhNjk0NTU4MWJkLi41 YzU5OWJhMzEyZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3Fs Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CkBAIC0yNTk4 LDcgKzI1OTgsNyBAQCBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQgZmFpbDog U1FMU1RBVEUgYW5kIFNRTEVSUk0gYXJlIG9ubHkgaW4gZGVmaW5lZCBFWENFUFRJT04KIC0tIGJs b2Nrcwogc2VsZWN0IGV4Y3B0X3Rlc3QxKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUK QEAgLTI2MTMsNyArMjYxMyw3IEBAIGJlZ2luCiBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAt LSBzaG91bGQgZmFpbAogc2VsZWN0IGV4Y3B0X3Rlc3QyKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fs c3RhdGUiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3Rh dGUiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAg c3Fsc3RhdGUKQEAgLTQ2NzUsNyArNDY3NSw3IEBAIEJFR0lOCiAgICAgICAgIFJBSVNFIE5PVElD RSAnJSwgJScsIHIucm9vbW5vLCByLmNvbW1lbnQ7CiAgICAgRU5EIExPT1A7CiBFTkQkJDsKLUVS Uk9SOiAgY29sdW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAiZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBB UyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW4uLi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIFNFTEVDVCBydHJpbShyb29tbm8p IEFTIHJvb21ubywgZm9vIEZST00gUm9vbSBPUkRFUiBCWSByb29tbm8KQEAgLTQ3MTcsNyArNDcx Nyw3IEBAIGJlZ2luCiAgIHJhaXNlIG5vdGljZSAneCA9ICUnLCB4OwogZW5kOwogJCQ7Ci1FUlJP UjogIGNvbHVtbiAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJ4IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHgg KyAxCkBAIC00NzI5LDcgKzQ3MjksNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlLCB5 ID0gJScsIHgsIHk7CiBlbmQ7CiAkJDsKLUVSUk9SOiAgY29sdW1uICJ4IiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIngiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6 IHggKyAxCiAgICAgICAgIF4KIFFVRVJZOiAgeCArIDEKQEAgLTU3NjksNyArNTc2OSw3IEBAIEFM VEVSIFRBQkxFIGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIERST1AgY29s dW1uIG5hbWU7CiBVUERBVEUgYWx0ZXJfdGFibGVfdW5kZXJfdHJhbnNpdGlvbl90YWJsZXMKICAg U0VUIGlkID0gaWQ7Ci1FUlJPUjogIGNvbHVtbiAibmFtZSIgZG9lcyBub3QgZXhpc3QKK0VSUk9S OiAgY29sdW1uIG9yIHZhcmlhYmxlICJuYW1lIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAoU0VM RUNUIHN0cmluZ19hZ2coaWQgfHwgJz0nIHx8IG5hbWUsICcsJykgRlJPTSBkKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIFFVRVJZOiAgKFNFTEVDVCBzdHJpbmdf YWdnKGlkIHx8ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bz cWwub3V0CmluZGV4IDc3YTdiZjQ1YzhhLi5lMTYzNWY2ODZjMiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0CkBAIC0yMTQsNyArMjE0LDcgQEAgc2VsZWN0ICQxOjppbnQgYXMgY29sIFxi aW5kIDEgXGcgXGJpbmQgMiBcZwogLS0gZXJyb3JzCiAtLSBwYXJzZSBlcnJvcgogU0VMRUNUIGZv byBcYmluZCBcZwotRVJST1I6ICBjb2x1bW4gImZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJmb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBm b28gCiAgICAgICAgICAgICAgICBeCiAtLSB0Y29wIGVycm9yCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0CmluZGV4IDMwMTRkMDQ3ZmVmLi43Mzc4Zjk1YjE3ZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQKQEAgLTExOTEsNyArMTE5MSw3IEBAIGRyb3AgcnVsZSBydWxlc19m b29ydWxlIG9uIHJ1bGVzX2ZvbzsKIC0tIHRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSBmMSBpcyBu b3QgZXhwb3NlZCBmb3IgdW5xdWFsaWZpZWQgcmVmZXJlbmNlOgogY3JlYXRlIHJ1bGUgcnVsZXNf Zm9vcnVsZSBhcyBvbiBpbnNlcnQgdG8gcnVsZXNfZm9vIHdoZXJlIGYxIDwgMTAwCiBkbyBpbnN0 ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChmMSk7Ci1FUlJPUjogIGNvbHVtbiAi ZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDI6IGRvIGluc3RlYWQgaW5zZXJ0IGludG8gcnVsZXNfZm9vMiB2YWx1 ZXMgKGYxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQgImYxIiwgYnV0IHRoZXkgYXJl IGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRo ZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggMzZiMzYzMzA4MGQuLjc3ODJhNzg4NDNkIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNzg3LDcgKzc4Nyw3IEBA IEVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAogTElORSAxOiBM RVQgdmFyMSA9IHBpKCk7CiAgICAgICAgICAgICBeCiBTRUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29s dW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInZh cjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAgICAgICAg XgogLS0gc2hvdWxkIGJlIG9rCkBAIC0xMDA2LDcgKzEwMDYsNyBAQCBTRUxFQ1QgdjE7CiAKIC0t IHNob3VsZCBmYWlsLCBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdAogTEVUIHYxLnggPSAxMDsKLUVS Uk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uICJ2MSIgYmVjYXVzZSB0 aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKK0VSUk9SOiAgY2Fubm90IGFz c2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlICJ2MSIgYmVjYXVzZSB0aGVy ZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKIExJTkUgMTogTEVUIHYxLnggPSAx MDsKICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1 bW4gcXVlcnkKQEAgLTE3MTgsNyArMTcxOCw3IEBAIEJFR0lOOwogRFJPUCBWQVJJQUJMRSB2YXIx OwogLS0gc2hvdWxkIGZhaWwKIFNFTEVDVCB2YXIxOwotRVJST1I6ICBjb2x1bW4gInZhcjEiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidmFyMSIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIHZhcjE7CiAgICAgICAgICAgICAgICBeCiBST0xMQkFDSzsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dAppbmRleCA3ZjU3NTdl ODljNC4uYjA1YjE2ZDk0YmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dHJhbnNhY3Rpb25zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0 aW9ucy5vdXQKQEAgLTI1Niw3ICsyNTYsNyBAQCBTRUxFQ1QgKiBGUk9NIHRyYW5zX2JhcmJhejsJ LS0gc2hvdWxkIGhhdmUgMQogQkVHSU47CiAJU0FWRVBPSU5UIG9uZTsKIAkJU0VMRUNUIHRyYW5z X2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjog IGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBT RUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAgICAgXgogCVJPTExCQUNLIFRPIFNBVkVQT0lO VCBvbmU7CkBAIC0zMDUsNyArMzA1LDcgQEAgQkVHSU47CiAJU0FWRVBPSU5UIG9uZTsKIAkJSU5T RVJUIElOVE8gc2F2ZXBvaW50cyBWQUxVRVMgKDUpOwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJS T1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9y IHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFu c19mb287CiAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5p b24ub3V0CmluZGV4IGNhYThmZTcwYTA1Li4xZDM0NDdlODRkZCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC91bmlvbi5vdXQKQEAgLTkzOSw3ICs5MzksNyBAQCBPUkRFUiBCWSBxMixxMTsKIAogLS0g VGhpcyBzaG91bGQgZmFpbCwgYmVjYXVzZSBxMiBpc24ndCBhIG5hbWUgb2YgYW4gRVhDRVBUIG91 dHB1dCBjb2x1bW4KIFNFTEVDVCBxMSBGUk9NIGludDhfdGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJP TSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxOwotRVJST1I6ICBjb2x1bW4gInEyIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInEyIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiAuLi4gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBGUk9NIGludDhfdGJsIE9S REVSIEJZIHEyIExJTUlUIDEuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVyZSBpcyBhIGNvbHVtbiBu YW1lZCAicTIiIGluIHRhYmxlICIqU0VMRUNUKiAyIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVu Y2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KLS0gCjIuNDcuMQoK --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20250106-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg5v4 RnJvbSBhMGNiMjAxYmNiMGJjMjFiMzgyOTM0ODhiYmQ0N2IyY2U3ZjIwYzRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNiArKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl ci5jICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAg ICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55ICAgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystCiBzcmMvcGwvcGxw Z3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggICAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxwZ3NxbC5oICAgICAgICAgICAgICAgICAgfCAxMiArKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNiArLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTcx IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCmluZGV4IGFmNzBlZDcxZDY1Li5jZGFiYWZkYmI4YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtOTU2LDYgKzk1NiwyMiBAQCBTZXRTZXNz aW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJc2V0X3Nl c3Npb25fdmFyaWFibGUoc3ZhciwgdmFsdWUsIGlzTnVsbCk7CiB9CiAKKy8qCisgKiBXcmFwcGVy IGFyb3VuZCBTZXRTZXNzaW9uVmFyaWFibGUgd2l0aCBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLwor dm9pZAorU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1 bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCS8qIGlz IHRoZSBjYWxsZXIgYWxsb3dlZCB0byB1cGRhdGUgdGhlIHNlc3Npb24gdmFyaWFibGU/ICovCisJ YWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdl dFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQor CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLCB2YWx1 ZSwgaXNOdWxsKTsKK30KKwogLyoKICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzdG9y ZWQgaW4gYSB2YXJpYWJsZS4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3BpLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwppbmRleCA0Y2U2YmM1ZjI5OC4uZTUy ZDhjYzEzYmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC0yOTk5LDYgKzI5OTksOSBAQCBfU1BJX2Vycm9y X2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCWNhc2UgUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMzoK IAkJCQllcnJjb250ZXh0KCJQTC9wZ1NRTCBhc3NpZ25tZW50IFwiJXNcIiIsIHF1ZXJ5KTsKIAkJ CQlicmVhazsKKwkJCWNhc2UgUkFXX1BBUlNFX1BMUEdTUUxfTEVUOgorCQkJCWVycmNvbnRleHQo IkxFVCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoK IAkJCQllcnJjb250ZXh0KCJTUUwgc3RhdGVtZW50IFwiJXNcIiIsIHF1ZXJ5KTsKIAkJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGI4ZGYxNmU0ZjA5Li4wZjkxZWM4OWM3NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCkBAIC0yMDEzLDYgKzIwMTMsMTggQEAgdHJhbnNmb3JtTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAKIAlzdG10LT5xdWVyeSA9IChOb2RlICop IHF1ZXJ5OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdTUUwgd2UgZG9uJ3Qgd2FudCB0byBleGVj dXRlIExFVCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAqIGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlz YWxsb3cgdG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNpbXBsZQorCSAqIGV4cHJlc3Npb24uIFNv IGZvciBQTC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgsIGFuZCB3ZSByZXR1cm4gU0VMRUNULgor CSAqIFRoZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMg ZGlycmVjdGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaW5zaWRl IFBML3BnU1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4gVGhpcworCSAqIGlzIGV4dHJhIGNvZGUs IGV4dHJhIHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBnZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcwor CSAqIHRvbyBhdHRyYWN0aXZlLgorCSAqLworCWlmIChzdG10LT5wbHBnc3FsX21vZGUpCisJCXJl dHVybiBxdWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVl cnkgKi8KIAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9 IENNRF9VVElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTU5ZjY4NTBiNzUuLmJmN2NhM2Y1MWM2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTgxNiw2ICs4MTYsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog JXRva2VuCQlNT0RFX1BMUEdTUUxfQVNTSUdOMQogJXRva2VuCQlNT0RFX1BMUEdTUUxfQVNTSUdO MgogJXRva2VuCQlNT0RFX1BMUEdTUUxfQVNTSUdOMworJXRva2VuCQlNT0RFX1BMUEdTUUxfTEVU CiAKIAogLyogUHJlY2VkZW5jZTogbG93ZXN0IHRvIGhpZ2hlc3QgKi8KQEAgLTk0Nyw2ICs5NDgs MTMgQEAgcGFyc2VfdG9wbGV2ZWw6CiAJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFy c2V0cmVlID0KIAkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCBAMikpOwog CQkJfQorCQkJfCBNT0RFX1BMUEdTUUxfTEVUIExldFN0bXQKKwkJCXsKKwkJCQlMZXRTdG10ICpu ID0gKExldFN0bXQgKikgJDI7CisJCQkJbi0+cGxwZ3NxbF9tb2RlID0gdHJ1ZTsKKwkJCQlwZ195 eWdldF9leHRyYSh5eXNjYW5uZXIpLT5wYXJzZXRyZWUgPQorCQkJCQlsaXN0X21ha2UxKG1ha2VS YXdTdG10KChOb2RlICopIG4sIDApKTsKKwkJCX0KIAkJOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCmlu ZGV4IDMzYTA0MDUwNmI0Li44ODcyMTJhZWZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYwpAQCAtNjIsNiAr NjIsNyBAQCByYXdfcGFyc2VyKGNvbnN0IGNoYXIgKnN0ciwgUmF3UGFyc2VNb2RlIG1vZGUpCiAJ CQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMV0gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMSwKIAkJ CVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04yXSA9IE1PREVfUExQR1NRTF9BU1NJR04yLAogCQkJ W1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjNdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjMsCisJCQlb UkFXX1BBUlNFX1BMUEdTUUxfTEVUXSA9IE1PREVfUExQR1NRTF9MRVQsCiAJCX07CiAKIAkJeXll eHRyYS5oYXZlX2xvb2thaGVhZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKaW5kZXggMjM4NDFhYjM3M2IuLjg2MTEyYjQzYjQ2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiB2b2lkIEF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwgU3ViVHJhbnNhY3Rpb25J ZCBteVN1YmlkCiAJCQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBl eHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9v bCBpc051bGwpOworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hl Y2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CiBl eHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJv b2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IDFhN2Y0NDNjZTc1Li45OTBjZWJiZjA4YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAt MjEyNCw2ICsyMTI0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAogCU5vZGVUYWcJCXR5cGU7 CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLwogCU5vZGUJICAgKnF1 ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJYm9vbAkJcGxwZ3NxbF9tb2RlOwkvKiB0 cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZAorCQkJCQkJCQkgKiAocGFyc2VkKSBi eSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gTGV0U3RtdDsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlci5oCmluZGV4IDM1MDE5NmNkNjQxLi5jOGQ1ZThkYmY5MiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdObjogcGFy c2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4gYSBvbmUt ZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdpdmVzIHRo ZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1bW5SZWYu CisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1lbnQsIGFu ZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3RtdCBub2Rl LgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBlbnVtCiAJ UkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04yLAog CVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVULAogfSBS YXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBHVUMgKi8K ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZXhlYy5jCmluZGV4IGU1YjBkYTA0ZTNjLi4yYjkyZmI1ZWVhNCAxMDA2NDQKLS0t IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3R1cGNvbnZlcnQu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi ZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRl ICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5oIgpAQCAtMzIzLDYgKzMyNCw4IEBAIHN0YXRpYyBp bnQJZXhlY19zdG10X2NvbW1pdChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSBQ THBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyBpbnQJZXhlY19zdG10X3JvbGxiYWNr KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQkJCQkJICAgUExwZ1NRTF9zdG10X3JvbGxi YWNrICpzdG10KTsKK3N0YXRpYyBpbnQJZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAq ZXN0YXRlLAorCQkJCQkJICBQTHBnU1FMX3N0bXRfbGV0ICpsZXQpOwogCiBzdGF0aWMgdm9pZCBw bHBnc3FsX2VzdGF0ZV9zZXR1cChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkg UExwZ1NRTF9mdW5jdGlvbiAqZnVuYywKQEAgLTIxMTYsNiArMjExOSwxMCBAQCBleGVjX3N0bXRz KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIExpc3QgKnN0bXRzKQogCQkJCXJjID0gZXhlY19z dG10X3JvbGxiYWNrKGVzdGF0ZSwgKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJ CQlicmVhazsKIAorCQkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJCXJjID0gZXhlY19zdG10 X2xldChlc3RhdGUsIChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJCWJyZWFrOworCiAJ CQlkZWZhdWx0OgogCQkJCS8qIHBvaW50IGVycl9zdG10IHRvIHBhcmVudCwgc2luY2UgdGhpcyBv bmUgc2VlbXMgY29ycnVwdCAqLwogCQkJCWVzdGF0ZS0+ZXJyX3N0bXQgPSBzYXZlX2VzdG10OwpA QCAtNDk5OSw2ICs1MDA2LDU1IEBAIGV4ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0 ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKnN0bXQpCiAJcmV0dXJuIFBMUEdTUUxf UkNfT0s7CiB9CiAKKy8qIC0tLS0tLS0tLS0KKyAqIGV4ZWNfc3RtdF9sZXQJCQlFdmFsdWF0ZSBh biBleHByZXNzaW9uIGFuZAorICoJCQkJCXB1dCB0aGUgcmVzdWx0IGludG8gYSBzZXNzaW9uIHZh cmlhYmxlLgorICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgaW50CitleGVjX3N0bXRfbGV0KFBM cGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpCit7CisJYm9v bAkJaXNOdWxsOworCU9pZAkJCXZhbHR5cGU7CisJaW50MzIJCXZhbHR5cG1vZDsKKwlEYXR1bQkJ dmFsdWU7CisJT2lkCQkJdmFyaWQ7CisKKwlMaXN0CSAgICpwbGFuc291cmNlczsKKwlDYWNoZWRQ bGFuU291cmNlICpwbGFuc291cmNlOworCisJdmFsdWUgPSBleGVjX2V2YWxfZXhwcihlc3RhdGUs CisJCQkJCQkgICBzdG10LT5leHByLAorCQkJCQkJICAgJmlzTnVsbCwKKwkJCQkJCSAgICZ2YWx0 eXBlLAorCQkJCQkJICAgJnZhbHR5cG1vZCk7CisKKwkvKgorCSAqIE9pZCBvZiB0YXJnZXQgc2Vz c2lvbiB2YXJpYWJsZSBpcyBzdG9yZWQgaW4gUXVlcnkgc3RydWN0dXJlLiBJdCBpcworCSAqIHNh ZmVyIHRvIHJlYWQgdGhpcyB2YWx1ZSBkaXJlY3RseSBmcm9tIHRoZSBwbGFuIHRoYW4gdG8gaG9s ZCB0aGlzIHZhbHVlCisJICogaW4gdGhlIHBscGdzcWwgY29udGV4dCwgYmVjYXVzZSBpdCdzIG5v dCBuZWNlc3NhcnkgdG8gaGFuZGxlCisJICogaW52YWxpZGF0aW9uIG9mIHRoZSBjYWNoZWQgdmFs dWUuIE5leHQgb3BlcmF0aW9ucyBhcmUgcmVhZCBvbmx5IHdpdGhvdXQKKwkgKiBhbnkgYWxsb2Nh dGlvbnMsIHNvIHdlIGNhbiBleHBlY3QgdGhhdCByZXRyaWV2aW5nIHZhcmlkIGZyb20gUXVlcnkK KwkgKiBzaG91bGQgYmUgZmFzdC4KKwkgKi8KKwlwbGFuc291cmNlcyA9IFNQSV9wbGFuX2dldF9w bGFuX3NvdXJjZXMoc3RtdC0+ZXhwci0+cGxhbik7CisJaWYgKGxpc3RfbGVuZ3RoKHBsYW5zb3Vy Y2VzKSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJj ZXMgb2YgcXVlcnkgZm9yIExFVCBzdGF0ZW1lbnQiKTsKKworCXBsYW5zb3VyY2UgPSAoQ2FjaGVk UGxhblNvdXJjZSAqKSBsaW5pdGlhbChwbGFuc291cmNlcyk7CisJaWYgKGxpc3RfbGVuZ3RoKHBs YW5zb3VyY2UtPnF1ZXJ5X2xpc3QpICE9IDEpCisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGxl bmd0aCBvZiBwbGFuc291cmNlIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwl2YXJp ZCA9IGxpbml0aWFsX25vZGUoUXVlcnksIHBsYW5zb3VyY2UtPnF1ZXJ5X2xpc3QpLT5yZXN1bHRW YXJpYWJsZTsKKwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQllbG9nKEVSUk9SLCAib2lkIG9m IHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB2YWxpZCIpOworCisJU2V0U2Vzc2lvblZh cmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2sodmFyaWQsIHZhbHVlLCBpc051bGwpOworCWV4ZWNfZXZh bF9jbGVhbnVwKGVzdGF0ZSk7CisKKwlyZXR1cm4gUExQR1NRTF9SQ19PSzsKK30KKwogLyogLS0t LS0tLS0tLQogICogZXhlY19hc3NpZ25fZXhwcgkJCVB1dCBhbiBleHByZXNzaW9uJ3MgcmVzdWx0 IGludG8gYSB2YXJpYWJsZS4KICAqIC0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9mdW5jcy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMKaW5kZXgg OGM4MjdmZTVjYzUuLmY3NDhkZjA0OGM0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZnVuY3MuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwpAQCAtMjg4LDYg KzI4OCw4IEBAIHBscGdzcWxfc3RtdF90eXBlbmFtZShQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCQly ZXR1cm4gIkNPTU1JVCI7CiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJcmV0dXJu ICJST0xMQkFDSyI7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCXJldHVybiAiTEVUIjsK IAl9CiAKIAlyZXR1cm4gInVua25vd24iOwpAQCAtMzcwLDYgKzM3Miw3IEBAIHN0YXRpYyB2b2lk IGZyZWVfcGVyZm9ybShQTHBnU1FMX3N0bXRfcGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMgdm9pZCBm cmVlX2NhbGwoUExwZ1NRTF9zdG10X2NhbGwgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9jb21t aXQoUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX3JvbGxiYWNr KFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgdm9pZCBmcmVlX2xldChQTHBn U1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfZXhwcihQTHBnU1FMX2V4cHIg KmV4cHIpOwogCiAKQEAgLTQ1OSw2ICs0NjIsOSBAQCBmcmVlX3N0bXQoUExwZ1NRTF9zdG10ICpz dG10KQogCQljYXNlIFBMUEdTUUxfU1RNVF9ST0xMQkFDSzoKIAkJCWZyZWVfcm9sbGJhY2soKFBM cGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIFBMUEdTUUxf U1RNVF9MRVQ6CisJCQlmcmVlX2xldCgoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBjbWRfdHlwZTog JWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJCQlicmVhazsKQEAgLTcxMyw2ICs3MTksMTIgQEAgZnJl ZV9nZXRkaWFnKFBMcGdTUUxfc3RtdF9nZXRkaWFnICpzdG10KQogewogfQogCitzdGF0aWMgdm9p ZAorZnJlZV9sZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCkKK3sKKwlmcmVlX2V4cHIoc3RtdC0+ ZXhwcik7Cit9CisKIHN0YXRpYyB2b2lkCiBmcmVlX2V4cHIoUExwZ1NRTF9leHByICpleHByKQog ewpAQCAtODE1LDYgKzgyNyw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfcGVyZm9ybShQTHBnU1FMX3N0 bXRfcGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2NhbGwoUExwZ1NRTF9zdG10X2Nh bGwgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9jb21taXQoUExwZ1NRTF9zdG10X2NvbW1pdCAq c3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX3JvbGxiYWNrKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAq c3RtdCk7CitzdGF0aWMgdm9pZCBkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0 YXRpYyB2b2lkIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpOwogCiAKQEAgLTkxNCw2ICs5 MjcsOSBAQCBkdW1wX3N0bXQoUExwZ1NRTF9zdG10ICpzdG10KQogCQljYXNlIFBMUEdTUUxfU1RN VF9ST0xMQkFDSzoKIAkJCWR1bXBfcm9sbGJhY2soKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBz dG10KTsKIAkJCWJyZWFrOworCQljYXNlIFBMUEdTUUxfU1RNVF9MRVQ6CisJCQlkdW1wX2xldCgo UExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBjbWRfdHlwZTogJWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJ CQlicmVhazsKQEAgLTE1OTAsNiArMTYwNiwxNCBAQCBkdW1wX2dldGRpYWcoUExwZ1NRTF9zdG10 X2dldGRpYWcgKnN0bXQpCiAJcHJpbnRmKCJcbiIpOwogfQogCitzdGF0aWMgdm9pZAorZHVtcF9s ZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCkKK3sKKwlkdW1wX2luZCgpOworCWR1bXBfZXhwcihz dG10LT5leHByKTsKKwlwcmludGYoIlxuIik7Cit9CisKIHN0YXRpYyB2b2lkCiBkdW1wX2V4cHIo UExwZ1NRTF9leHByICpleHByKQogewpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2dyYW0ueSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKaW5kZXggOTc4MzA2MzI1OGYu LmYwOWNjNTk3ZGVmIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55Cisr KyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0 aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpzdG10 KTsKICV0eXBlIDxzdG10PglzdG10X3JldHVybiBzdG10X3JhaXNlIHN0bXRfYXNzZXJ0IHN0bXRf ZXhlY3NxbAogJXR5cGUgPHN0bXQ+CXN0bXRfZHluZXhlY3V0ZSBzdG10X2ZvciBzdG10X3BlcmZv cm0gc3RtdF9jYWxsIHN0bXRfZ2V0ZGlhZwogJXR5cGUgPHN0bXQ+CXN0bXRfb3BlbiBzdG10X2Zl dGNoIHN0bXRfbW92ZSBzdG10X2Nsb3NlIHN0bXRfbnVsbAotJXR5cGUgPHN0bXQ+CXN0bXRfY29t bWl0IHN0bXRfcm9sbGJhY2sKKyV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3JvbGxiYWNr IHN0bXRfbGV0CiAldHlwZSA8c3RtdD4Jc3RtdF9jYXNlIHN0bXRfZm9yZWFjaF9hCiAKICV0eXBl IDxsaXN0Pglwcm9jX2V4Y2VwdGlvbnMKQEAgLTMwNyw2ICszMDcsNyBAQCBzdGF0aWMJdm9pZAkJ CWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpzdG10KTsKICV0b2tl biA8a2V5d29yZD4JS19JTlRPCiAldG9rZW4gPGtleXdvcmQ+CUtfSVMKICV0b2tlbiA8a2V5d29y ZD4JS19MQVNUCisldG9rZW4gPGtleXdvcmQ+CUtfTEVUCiAldG9rZW4gPGtleXdvcmQ+CUtfTE9H CiAldG9rZW4gPGtleXdvcmQ+CUtfTE9PUAogJXRva2VuIDxrZXl3b3JkPglLX01FUkdFCkBAIC04 NzYsNiArODc3LDggQEAgcHJvY19zdG10CQk6IHBsX2Jsb2NrICc7JwogCQkJCQkJeyAkJCA9ICQx OyB9CiAJCQkJfCBzdG10X3JvbGxiYWNrCiAJCQkJCQl7ICQkID0gJDE7IH0KKwkJCQl8IHN0bXRf bGV0CisJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQk7CiAKIHN0bXRfcGVyZm9ybQk6IEtfUEVSRk9S TQpAQCAtOTkyLDYgKzk5NSwyOSBAQCBzdG10X2Fzc2lnbgkJOiBUX0RBVFVNCiAJCQkJCX0KIAkJ CQk7CiAKK3N0bXRfbGV0CQk6IEtfTEVUCisJCQkJCXsKKwkJCQkJCVBMcGdTUUxfc3RtdF9sZXQg Km5ldzsKKwkJCQkJCVJhd1BhcnNlTW9kZSBwbW9kZTsKKworCQkJCQkJcG1vZGUgPSBSQVdfUEFS U0VfUExQR1NRTF9MRVQ7CisKKwkJCQkJCW5ldyA9IHBhbGxvYzAoc2l6ZW9mKFBMcGdTUUxfc3Rt dF9sZXQpKTsKKwkJCQkJCW5ldy0+Y21kX3R5cGUgPSBQTFBHU1FMX1NUTVRfTEVUOworCQkJCQkJ bmV3LT5saW5lbm8gICA9IHBscGdzcWxfbG9jYXRpb25fdG9fbGluZW5vKEAxKTsKKwkJCQkJCW5l dy0+c3RtdGlkID0gKytwbHBnc3FsX2N1cnJfY29tcGlsZS0+bnN0YXRlbWVudHM7CisKKwkJCQkJ CS8qIHB1c2ggYmFjayB0aGUgaGVhZCBuYW1lIHRvIGluY2x1ZGUgaXQgaW4gdGhlIHN0bXQgKi8K KwkJCQkJCXBscGdzcWxfcHVzaF9iYWNrX3Rva2VuKEtfTEVUKTsKKwkJCQkJCW5ldy0+ZXhwciA9 IHJlYWRfc3FsX2NvbnN0cnVjdCgnOycsIDAsIDAsICI7IiwKKwkJCQkJCQkJCQkJCQkgICBwbW9k ZSwKKwkJCQkJCQkJCQkJCQkgICBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJCQkgICBOVUxMLCBO VUxMKTsKKworCQkJCQkJJCQgPSAoUExwZ1NRTF9zdG10ICopbmV3OworCQkJCQl9CisJCQkJOwor CiBzdG10X2dldGRpYWcJOiBLX0dFVCBnZXRkaWFnX2FyZWFfb3B0IEtfRElBR05PU1RJQ1MgZ2V0 ZGlhZ19saXN0ICc7JwogCQkJCQl7CiAJCQkJCQlQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqbmV3Owpk aWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCmluZGV4IGNlN2IwYzlkMzMxLi5l MjY2YmQxY2M0NiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3 bGlzdC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaApAQCAt NDAsNiArNDAsNyBAQCBQR19LRVlXT1JEKCJmcm9tIiwgS19GUk9NKQogUEdfS0VZV09SRCgiaWYi LCBLX0lGKQogUEdfS0VZV09SRCgiaW4iLCBLX0lOKQogUEdfS0VZV09SRCgiaW50byIsIEtfSU5U TykKK1BHX0tFWVdPUkQoImxldCIsIEtfTEVUKQogUEdfS0VZV09SRCgibG9vcCIsIEtfTE9PUCkK IFBHX0tFWVdPUkQoIm5vdCIsIEtfTk9UKQogUEdfS0VZV09SRCgibnVsbCIsIEtfTlVMTCkKZGlm ZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5oIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmgKaW5kZXggOThmOTllYzQ3MGMu LmVkMTRmZDg2YzMxIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZl ZF9rd2xpc3QuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3Qu aApAQCAtNjksNiArNjksNyBAQCBQR19LRVlXT1JEKCJpbmZvIiwgS19JTkZPKQogUEdfS0VZV09S RCgiaW5zZXJ0IiwgS19JTlNFUlQpCiBQR19LRVlXT1JEKCJpcyIsIEtfSVMpCiBQR19LRVlXT1JE KCJsYXN0IiwgS19MQVNUKQorUEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJs b2ciLCBLX0xPRykKIFBHX0tFWVdPUkQoIm1lcmdlIiwgS19NRVJHRSkKIFBHX0tFWVdPUkQoIm1l c3NhZ2UiLCBLX01FU1NBR0UpCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaAppbmRleCBkMDBiOWNlMGRhMi4uNjAx YzVlNTkyMjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaApAQCAtMTI4LDYgKzEyOCw3IEBAIHR5cGVkZWYg ZW51bSBQTHBnU1FMX3N0bXRfdHlwZQogCVBMUEdTUUxfU1RNVF9DQUxMLAogCVBMUEdTUUxfU1RN VF9DT01NSVQsCiAJUExQR1NRTF9TVE1UX1JPTExCQUNLLAorCVBMUEdTUUxfU1RNVF9MRVQsCiB9 IFBMcGdTUUxfc3RtdF90eXBlOwogCiAvKgpAQCAtNTIwLDYgKzUyMSwxNyBAQCB0eXBlZGVmIHN0 cnVjdCBQTHBnU1FMX3N0bXRfYXNzaWduCiAJUExwZ1NRTF9leHByICpleHByOwogfSBQTHBnU1FM X3N0bXRfYXNzaWduOwogCisvKgorICogTGV0IHN0YXRlbWVudAorICovCit0eXBlZGVmIHN0cnVj dCBQTHBnU1FMX3N0bXRfbGV0Cit7CisJUExwZ1NRTF9zdG10X3R5cGUgY21kX3R5cGU7CisJaW50 CQkJbGluZW5vOworCXVuc2lnbmVkIGludCBzdG10aWQ7CisJUExwZ1NRTF9leHByICpleHByOwor fSBQTHBnU1FMX3N0bXRfbGV0OworCiAvKgogICogUEVSRk9STSBzdGF0ZW1lbnQKICAqLwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA2 MDI2ZWY5OTBkMy4uZTdlYzQxZmMwMWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMTAxLDggKzExMDEsNyBAQCBFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJF R0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIHN0YXRlbWVu dCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2Nv ZGVfYmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5j dGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgTEVUCiBTRVQgUk9MRSBUTyBERUZBVUxU OwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJfdGVzdF9yb2xl OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOwpAQCAtMTE0Myw4ICsxMTQyLDcg QEAgRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBD T05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJB SVNFCiBETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKIEVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDog IFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKLVBML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwgc3RhdGVtZW50CitDT05URVhUOiAg UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IExFVAogU0VUIFJP TEUgVE8gREVGQVVMVDsKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgUk9MRSByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDVjODc1YWU2ODQ2Li43 YWU1Yjg4ZmViMSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE4OTMsNiArMTg5Myw3 IEBAIFBMcGdTUUxfc3RtdF9mb3JxCiBQTHBnU1FMX3N0bXRfZm9ycwogUExwZ1NRTF9zdG10X2dl dGRpYWcKIFBMcGdTUUxfc3RtdF9pZgorUExwZ1NRTF9zdG10X2xldAogUExwZ1NRTF9zdG10X2xv b3AKIFBMcGdTUUxfc3RtdF9vcGVuCiBQTHBnU1FMX3N0bXRfcGVyZm9ybQotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20250106-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg645 RnJvbSAxZGVkM2M4MzExNDE2MmIxYmQyYTViODBlYmIzZjU5ODYzYTg0MjAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYyAgICAgICAg ICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggICAg ICAgICAgICAgICB8ICAgNCArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgICAgfCAgMTIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTc4IGluc2VydGlvbnMoKyksIDI2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKaW5kZXggNjgzZGVkZTZhZGMuLjFjZTlhYmY4NmY1 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbApAQCAtNTE1LDEyICs1MTUsNiBAQCBFWFBMQUlOIFNFTEVDVCAqIEZS T00gcGdiZW5jaF9hY2NvdW50cyBXSEVSRSBmaWxsZXIgTElLRSAnJXglJzsKICAgICAgICAgUGxh biBub2RlcyB0aGF0IHJlZmVyZW5jZSBhIGNvcnJlbGF0ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0 ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KLQotICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgICBQbGFuIG5vZGVzIHRoYXQgdXNlIGEgc2Vzc2lvbiB2YXJp YWJsZS4KLSAgICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlzdD4K IAogIDxzZWN0MiBpZD0icGFyYWxsZWwtbGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK aW5kZXggYTQ5ZmU1NjAzNjUuLjkzNjFjZGE0ZjUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK QEAgLTIxMCw3ICsyMTAsMTkgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1 ZXJ5RGVzYywgaW50IGVmbGFncykKIAkgKiAgICBiZSBjaGFuZ2VkIGluc2lkZSBxdWVyeSBleGVj dXRpb24gdGltZSwgYW5kIHRoZW4gYSByZWZlcmVuY2UgdG8KIAkgKiAgICBwcmV2aW91c2x5IHJl dHVybmVkIHZhbHVlIGNhbiBiZSBjb3JydXB0ZWQpLgogCSAqLwotCWlmIChxdWVyeURlc2MtPnBs YW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChxdWVyeURlc2MtPm51bV9zZXNzaW9u X3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVuIGEgcGFyYWxsZWwgcXVlcnkgbmVl ZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1ZGluZworCQkgKiByZWxhdGVkIHNl c3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZQorCQkg KiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURlc2MgYWxyZWFkeS4gU28ganVzdCBw dXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBleGVjdXRvcidzIGVzdGF0ZS4KKwkJ ICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOworCQllc3RhdGUtPmVzX3Nlc3Npb25f dmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlczsKKwkJZXN0YXRlLT5lc19u dW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlczsK Kwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK IAl7CiAJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOwogCQlpbnQJCQlpID0gMDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggZmY0ZDlkZDFiYjMuLjgzZTAzOTFhNDRkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtMTIsOCArMTIsOSBAQAogICogd29ya2Vy cyBhbmQgZW5zdXJpbmcgdGhhdCB0aGVpciBzdGF0ZSBnZW5lcmFsbHkgbWF0Y2hlcyB0aGF0IG9m IHRoZQogICogbGVhZGVyOyBzZWUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vUkVBRE1FLnBh cmFsbGVsIGZvciBkZXRhaWxzLgogICogSG93ZXZlciwgd2UgbXVzdCBzYXZlIGFuZCByZXN0b3Jl IHJlbGV2YW50IGV4ZWN1dG9yIHN0YXRlLCBzdWNoIGFzCi0gKiBhbnkgUGFyYW1MaXN0SW5mbyBh c3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdlIGluZm8sIGFuZAotICog dGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBhc3NlZCBkb3duIHRvIHRoZSB3b3JrZXIuCisgKiBhbnkg UGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdl IGluZm8sCisgKiBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIsIGFuZCB0aGUgYWN0dWFsIHBsYW4g dG8gYmUgcGFzc2VkIGRvd24gdG8KKyAqIHRoZSB3b3JrZXIuCiAgKgogICogSURFTlRJRklDQVRJ T04KICAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTY0LDYgKzY1 LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZX1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAw MDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX0pJVF9JTlNUUlVNRU5UQVRJT04g VUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQogI2RlZmluZSBQQVJBTExFTF9LRVlfV0FM X1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBBKQorI2RlZmluZSBQQVJBTExF TF9LRVlfU0VTU0lPTl9WQVJJQUJMRVMJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBCKQog CiAjZGVmaW5lIFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJWkUJCTY1NTM2CiAKQEAgLTEzOCw2ICsx NDAsMTIgQEAgc3RhdGljIGJvb2wgRXhlY1BhcmFsbGVsUmV0cmlldmVJbnN0cnVtZW50YXRpb24o UGxhblN0YXRlICpwbGFuc3RhdGUsCiAvKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBydW5zIGluIHRo ZSBwYXJhbGxlbCB3b3JrZXIuICovCiBzdGF0aWMgRGVzdFJlY2VpdmVyICpFeGVjUGFyYWxsZWxH ZXRSZWNlaXZlcihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpOwogCisvKiBIZWxwZXIg ZnVuY3Rpb25zIHRoYXQgY2FuIHBhc3MgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzICovCitz dGF0aWMgU2l6ZSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUpOworc3Rh dGljIHZvaWQgU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAq KnN0YXJ0X2FkZHJlc3MpOworc3RhdGljIFNlc3Npb25WYXJpYWJsZVZhbHVlICpSZXN0b3JlU2Vz c2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVzcywKKwkJCQkJCQkJCQkJCQkgaW50ICpu dW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAvKgogICogQ3JlYXRlIGEgc2VyaWFsaXplZCByZXBy ZXNlbnRhdGlvbiBvZiB0aGUgcGxhbiB0byBiZSBzZW50IHRvIGVhY2ggd29ya2VyLgogICovCkBA IC01OTYsNiArNjA0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3Rh dGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBzdG10X2RhdGE7CiAJY2hhcgkgICAqcHN0 bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5mb19zcGFjZTsKKwljaGFyCSAgICpzZXNz aW9uX3ZhcmlhYmxlc19zcGFjZTsKIAlCdWZmZXJVc2FnZSAqYnVmdXNhZ2Vfc3BhY2U7CiAJV2Fs VXNhZ2UgICAqd2FsdXNhZ2Vfc3BhY2U7CiAJU2hhcmVkRXhlY3V0b3JJbnN0cnVtZW50YXRpb24g Kmluc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC02MDUsNiArNjE0LDcgQEAgRXhlY0luaXRQYXJh bGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWludAkJCWlu c3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWppdF9pbnN0cnVtZW50YXRpb25fbGVuID0g MDsKIAlpbnQJCQlpbnN0cnVtZW50X29mZnNldCA9IDA7CisJaW50CQkJc2Vzc2lvbl92YXJpYWJs ZXNfbGVuID0gMDsKIAlTaXplCQlkc2FfbWluc2l6ZSA9IGRzYV9taW5pbXVtX3NpemUoKTsKIAlj aGFyCSAgICpxdWVyeV9zdHJpbmc7CiAJaW50CQkJcXVlcnlfbGVuOwpAQCAtNjYwLDYgKzY3MCwx MSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICpl c3RhdGUsCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBwYXJhbWxp c3RpbmZvX2xlbik7CiAJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEp OwogCisJLyogRXN0aW1hdGUgc3BhY2UgZm9yIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMu ICovCisJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzKGVz dGF0ZSk7CisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBzZXNzaW9u X3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9y LCAxKTsKKwogCS8qCiAJICogRXN0aW1hdGUgc3BhY2UgZm9yIEJ1ZmZlclVzYWdlLgogCSAqCkBA IC03NjEsNiArNzc2LDExIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVM X0tFWV9QQVJBTUxJU1RJTkZPLCBwYXJhbWxpc3RpbmZvX3NwYWNlKTsKIAlTZXJpYWxpemVQYXJh bUxpc3QoZXN0YXRlLT5lc19wYXJhbV9saXN0X2luZm8sICZwYXJhbWxpc3RpbmZvX3NwYWNlKTsK IAorCS8qIFN0b3JlIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbl92 YXJpYWJsZXNfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgc2Vzc2lvbl92YXJp YWJsZXNfbGVuKTsKKwlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9TRVNT SU9OX1ZBUklBQkxFUywgc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UpOworCVNlcmlhbGl6ZVNlc3Np b25WYXJpYWJsZXMoZXN0YXRlLCAmc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UpOworCiAJLyogQWxs b2NhdGUgc3BhY2UgZm9yIGVhY2ggd29ya2VyJ3MgQnVmZmVyVXNhZ2U7IG5vIG5lZWQgdG8gaW5p dGlhbGl6ZS4gKi8KIAlidWZ1c2FnZV9zcGFjZSA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9j LAogCQkJCQkJCQkJICBtdWxfc2l6ZShzaXplb2YoQnVmZmVyVXNhZ2UpLCBwY3h0LT5ud29ya2Vy cykpOwpAQCAtMTQxMSw2ICsxNDMxLDcgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQg KnNlZywgc2htX3RvYyAqdG9jKQogCVNoYXJlZEppdEluc3RydW1lbnRhdGlvbiAqaml0X2luc3Ry dW1lbnRhdGlvbjsKIAlpbnQJCQlpbnN0cnVtZW50X29wdGlvbnMgPSAwOwogCXZvaWQJICAgKmFy ZWFfc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbnZhcmlhYmxlX3NwYWNlOwogCWRzYV9hcmVhICAg KmFyZWE7CiAJUGFyYWxsZWxXb3JrZXJDb250ZXh0IHB3Y3h0OwogCkBAIC0xNDM2LDYgKzE0NTcs MTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQog CWFyZWFfc3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9EU0EsIGZhbHNl KTsKIAlhcmVhID0gZHNhX2F0dGFjaF9pbl9wbGFjZShhcmVhX3NwYWNlLCBzZWcpOwogCisJLyog UmVjb25zdHJ1Y3Qgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbnZhcmlhYmxlX3NwYWNl ID0gc2htX3RvY19sb29rdXAodG9jLAorCQkJCQkJCQkJCSAgIFBBUkFMTEVMX0tFWV9TRVNTSU9O X1ZBUklBQkxFUywKKwkJCQkJCQkJCQkgICBmYWxzZSk7CisJcXVlcnlEZXNjLT5zZXNzaW9uX3Zh cmlhYmxlcyA9CisJCVJlc3RvcmVTZXNzaW9uVmFyaWFibGVzKCZzZXNzaW9udmFyaWFibGVfc3Bh Y2UsCisJCQkJCQkJCSZxdWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyk7CisKIAkvKiBT dGFydCB1cCB0aGUgZXhlY3V0b3IgKi8KIAlxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5qaXRGbGFn cyA9IGZwZXMtPmppdF9mbGFnczsKIAlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgZnBlcy0+ZWZs YWdzKTsKQEAgLTE1MDMsMyArMTUzMiwxMTcgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21l bnQgKnNlZywgc2htX3RvYyAqdG9jKQogCUZyZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKIAlyZWNl aXZlci0+ckRlc3Ryb3kocmVjZWl2ZXIpOwogfQorCisvKgorICogRXN0aW1hdGUgdGhlIGFtb3Vu dCBvZiBzcGFjZSByZXF1aXJlZCB0byBzZXJpYWxpemUgYSBzZXNzaW9uIHZhcmlhYmxlLgorICov CitzdGF0aWMgU2l6ZQorRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlKQor eworCWludAkJCWk7CisJU2l6ZQkJc3ogPSBzaXplb2YoaW50KTsKKworCWlmIChlc3RhdGUtPmVz X3Nlc3Npb25fdmFyaWFibGVzID09IE5VTEwpCisJCXJldHVybiBzejsKKworCWZvciAoaSA9IDA7 IGkgPCBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsgaSsrKQorCXsKKwkJU2Vzc2lv blZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJCXR5cGVPaWQ7CisJCWludDE2CQl0eXBM ZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9u X3ZhcmlhYmxlc1tpXTsKKworCQl0eXBlT2lkID0gc3ZhcnZhbC0+dHlwaWQ7CisKKwkJc3ogPSBh ZGRfc2l6ZShzeiwgc2l6ZW9mKE9pZCkpOyAvKiBzcGFjZSBmb3IgdHlwZSBPSUQgKi8KKworCQkv KiBzcGFjZSBmb3IgZGF0dW0vaXNudWxsICovCisJCUFzc2VydChPaWRJc1ZhbGlkKHR5cGVPaWQp KTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5cGVPaWQsICZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJ c3ogPSBhZGRfc2l6ZShzeiwKKwkJCQkJICBkYXR1bUVzdGltYXRlU3BhY2Uoc3ZhcnZhbC0+dmFs dWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5cExlbikpOworCX0KKworCXJldHVybiBz ejsKK30KKworLyoKKyAqIFNlcmlhbGl6ZSBhIHNlc3Npb24gdmFyaWFibGVzIGJ1ZmZlciBpbnRv IGNhbGxlci1wcm92aWRlZCBzdG9yYWdlLgorICoKKyAqIFdlIHdyaXRlIHRoZSBudW1iZXIgb2Yg cGFyYW1ldGVycyBmaXJzdCwgYXMgYSA0LWJ5dGUgaW50ZWdlciwgYW5kIHRoZW4KKyAqIHdyaXRl IGRldGFpbHMgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHR1cm4uICBUaGUgZGV0YWlscyBmb3IgZWFj aCBwYXJhbWV0ZXIKKyAqIGNvbnNpc3Qgb2YgYSA0LWJ5dGUgdHlwZSBPSUQsIGFuZCB0aGVuIHRo ZSBkYXR1bSBhcyBzZXJpYWxpemVkIGJ5CisgKiBkYXR1bVNlcmlhbGl6ZSgpLiAgVGhlIGNhbGxl ciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhhdCB0aGVyZSBpcworICogZW5vdWdoIHN0 b3JhZ2UgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwgYmUgd3JpdHRlbjsg dXNlCisgKiBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMgdG8gZmluZCBvdXQgaG93IG1hbnkgd2ls bCBiZSBuZWVkZWQuCisgKiAqc3RhcnRfYWRkcmVzcyBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRo ZSBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aG9zZQorICogd3JpdHRlbi4KKyAqCisgKiBS ZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyBjYW4gYmUgdXNlZCB0byByZWNyZWF0ZSBhIHNlc3Npb24g dmFyaWFibGUgYnVmZmVyCisgKiBiYXNlZCBvbiB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlv bjsKKyAqLworc3RhdGljIHZvaWQKK1NlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICpl c3RhdGUsIGNoYXIgKipzdGFydF9hZGRyZXNzKQoreworCWludAkJCW5wYXJhbXM7CisJaW50CQkJ aTsKKworCS8qIFdyaXRlIG51bWJlciBvZiBwYXJhbWV0ZXJzLiAqLworCW5wYXJhbXMgPSBlc3Rh dGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwltZW1jcHkoKnN0YXJ0X2FkZHJlc3MsICZu cGFyYW1zLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKGludCk7CisK KwkvKiBXcml0ZSBlYWNoIHBhcmFtZXRlciBpbiB0dXJuLiAqLworCWZvciAoaSA9IDA7IGkgPCBu cGFyYW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lk CQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJYm9vbAkJdHlwQnlWYWw7CisKKwkJc3Zh cnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldOworCQl0eXBlT2lkID0gc3Zh cnZhbC0+dHlwaWQ7CisKKwkJLyogV3JpdGUgdHlwZSBPSUQuICovCisJCW1lbWNweSgqc3RhcnRf YWRkcmVzcywgJnR5cGVPaWQsIHNpemVvZihPaWQpKTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6 ZW9mKE9pZCk7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlwZU9pZCkpOworCQlnZXRfdHlwbGVu Ynl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsKKworCQlkYXR1bVNlcmlhbGl6ZShz dmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0eXBCeVZhbCwgdHlwTGVuLAorCQkJCQkg ICBzdGFydF9hZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRpYyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAq CitSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVzcywgaW50ICpudW1f c2Vzc2lvbl92YXJpYWJsZXMpCit7CisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnNlc3Npb25fdmFy aWFibGVzOworCWludAkJCWk7CisJaW50CQkJbnBhcmFtczsKKworCW1lbWNweSgmbnBhcmFtcywg KnN0YXJ0X2FkZHJlc3MsIHNpemVvZihpbnQpKTsKKwkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2Yo aW50KTsKKworCSpudW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBucGFyYW1zOworCXNlc3Npb25fdmFy aWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCXBhbGxvYyhucGFyYW1zICogc2l6 ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmFtczsg aSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWwgPSAmc2Vzc2lvbl92YXJp YWJsZXNbaV07CisKKwkJLyogUmVhZCB0eXBlIE9JRC4gKi8KKwkJbWVtY3B5KCZzdmFydmFsLT50 eXBpZCwgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihPaWQpKTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0g c2l6ZW9mKE9pZCk7CisKKwkJLyogUmVhZCBkYXR1bS9pc251bGwuICovCisJCXN2YXJ2YWwtPnZh bHVlID0gZGF0dW1SZXN0b3JlKHN0YXJ0X2FkZHJlc3MsICZzdmFydmFsLT5pc251bGwpOworCX0K KworCXJldHVybiBzZXNzaW9uX3ZhcmlhYmxlczsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2Ns YXVzZXMuYwppbmRleCA5OGU1ZDk3YzQxOS4uNWMzMWFlNTYzMDIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTkyMywyNSArOTIzLDE5IEBAIG1heF9wYXJhbGxlbF9oYXph cmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4 dCkKIAogCS8qCiAJICogV2UgY2FuJ3QgcGFzcyBQYXJhbXMgdG8gd29ya2VycyBhdCB0aGUgbW9t ZW50IGVpdGhlciwgc28gdGhleSBhcmUgYWxzbwotCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVu bGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4gUGFyYW1zIG9yIGFyZQotCSAqIFBBUkFNX0VYRUMg UGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5IGNvdWxkIGJlCi0J ICogZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkg dGhlIGxlYWRlciBhbmQKLQkgKiB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29y a2Vycy4KKwkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhU RVJOIG9yIFBBUkFNX1ZBUklBQkxFCisJICogUGFyYW1zIG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFt cyBsaXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5pbmcgdGhleQorCSAqIGNvdWxkIGJlIGVp dGhlciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3IgY2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQor CSAqIGxlYWRlciBhbmQgdGhlbiB0aGVpciB2YWx1ZSBjYW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMu CiAJICovCiAJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAgICpwYXJh bSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8CisJCQlwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQogCQkJcmV0dXJuIGZhbHNlOwogCi0JCS8q IHdlIGRvbid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICov Ci0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQotCQl7Ci0JCQlpZiAo bWF4X3BhcmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQp KQotCQkJCXJldHVybiB0cnVlOwotCQl9Ci0KIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFS QU1fRVhFQyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywg cGFyYW0tPnBhcmFtaWQpKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVy eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYwppbmRleCA2ZjIyNDk2MzA1YS4uNmY5YmQ3 YzhiMDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdGNvcC9wcXVlcnkuYwpAQCAtODYsNiArODYsOSBAQCBDcmVhdGVRdWVyeURlc2MoUGxh bm5lZFN0bXQgKnBsYW5uZWRzdG10LAogCXFkLT5xdWVyeUVudiA9IHF1ZXJ5RW52OwogCXFkLT5p bnN0cnVtZW50X29wdGlvbnMgPSBpbnN0cnVtZW50X29wdGlvbnM7CS8qIGluc3RydW1lbnRhdGlv biB3YW50ZWQ/ICovCiAKKwlxZC0+bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwlxZC0+c2Vz c2lvbl92YXJpYWJsZXMgPSBOVUxMOworCiAJLyogbnVsbCB0aGVzZSBmaWVsZHMgdW50aWwgc2V0 IGJ5IEV4ZWN1dG9yU3RhcnQgKi8KIAlxZC0+dHVwRGVzYyA9IE5VTEw7CiAJcWQtPmVzdGF0ZSA9 IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAppbmRleCA4NmRiM2RjOGQwZC4uNGUwZmEzZWE0 MGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKKysrIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaApAQCAtNTEsNiArNTEsMTAgQEAgdHlwZWRlZiBz dHJ1Y3QgUXVlcnlEZXNjCiAJLyogVGhpcyBmaWVsZCBpcyBzZXQgYnkgRXhlY3V0ZVBsYW4gKi8K IAlib29sCQlhbHJlYWR5X2V4ZWN1dGVkOwkvKiB0cnVlIGlmIHByZXZpb3VzbHkgZXhlY3V0ZWQg Ki8KIAorCS8qIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIgKi8KKwlpbnQJ CQludW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnNlc3Npb25f dmFyaWFibGVzOworCiAJLyogVGhpcyBpcyBhbHdheXMgc2V0IE5VTEwgYnkgdGhlIGNvcmUgc3lz dGVtLCBidXQgcGx1Z2lucyBjYW4gY2hhbmdlIGl0ICovCiAJc3RydWN0IEluc3RydW1lbnRhdGlv biAqdG90YWx0aW1lOwkvKiB0b3RhbCB0aW1lIHNwZW50IGluIEV4ZWN1dG9yUnVuICovCiB9IFF1 ZXJ5RGVzYzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggOGYzNWVhMDBmOTQuLjYwMjZlZjk5MGQzIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTI1MiwxMiArMTI1Miwx NCBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CiAK IC0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87 Ci0gICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFn Z3JlZ2F0ZQotICAgLT4gIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAotICAgICAgICAgRmlsdGVyOiAo KGEgJSAxMCkgPSB6ZXJvKQotKDMgcm93cykKKyAgIC0+ICBHYXRoZXIKKyAgICAgICAgIFdvcmtl cnMgUGxhbm5lZDogMgorICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHN2YXJfdGVz dAorICAgICAgICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDUgcm93cykKIAog TEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0KTsKIC0tIHJlc3VsdCBz aG91bGQgYmUgMTAwMAotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20250106-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg6a6 RnJvbSBjODA3Mzk4NmM1OTlhY2Y3NmI1YzE2ZDlkMjBjYTM0OGFhM2FiZWM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgMTAgLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAg ICAgICAgICAgICB8IDkzICsrKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAxMCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaCAgICAgICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQxICsrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMiArLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNl cnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKaW5kZXggNGVh MmJmZWE0ZWEuLjcwZjAzMDk5OTk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w cmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC0zMzgsMTYg KzMzOCw2IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZWRTdGF0 ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAKLQkvKgotCSAqIFRoZSBh cmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24K LQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBzZXNzaW9uIHZh cmlhYmxlcyB5ZXQuCi0JICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAkvKiBQcmVw YXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQ cmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpp bmRleCAyZmZiNTZhZTQ1MS4uYmI1MGZlMjZkMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpA QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjRXhwci5oIgogI2luY2x1ZGUg ImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCkBAIC0xMDA4LDI1ICsxMDA5LDc5IEBAIEV4ZWNJbml0 RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCQllc19udW1fc2Vz c2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFy aWFibGVzOwogCQkJCQkJCX0KIAotCQkJCQkJCUFzc2VydChlc19zZXNzaW9uX3ZhcmlhYmxlcyk7 Ci0KLQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAqLwotCQkJCQkJCWlmIChwYXJh bS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMpCi0JCQkJCQkJCWVsb2coRVJS T1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOwot Ci0JCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVzW3BhcmFtLT5wYXJhbWlkXTsKLQot CQkJCQkJCWlmICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCi0JCQkJCQkJCWVsb2co RVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBBUkFNX1ZB UklBQkxFIHR5cGUiKTsKLQotCQkJCQkJCS8qCi0JCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNz IHRoZSB2YWx1ZSBsaWtlIGEKLQkJCQkJCQkgKiBjb25zdGFudC4KLQkJCQkJCQkgKi8KLQkJCQkJ CQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFs LnZhbHVlID0gdmFyLT52YWx1ZTsKLQkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwuaXNudWxsID0g dmFyLT5pc251bGw7Ci0JCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwor CQkJCQkJCWlmIChlc19zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQl7CisJCQkJCQkJCS8qCisJ CQkJCQkJCSAqIFRoaXMgcGF0aCBpcyB1c2VkIHdoZW4gZXhwcmVzc2lvbiBpcworCQkJCQkJCQkg KiBldmFsdWF0ZWQgaW5zaWRlIHF1ZXJ5IGV2YWx1YXRpb24uIEZvcgorCQkJCQkJCQkgKiBlbnN1 cmluZyBvZiBpbW11dGFiaWxpdHkgb2Ygc2Vzc2lvbiB2YXJpYWJsZQorCQkJCQkJCQkgKiBpbnNp ZGUgcXVlcnkgd2UgdXNlIHNwZWNpYWwgYnVmZmVyIHdpdGggY29weQorCQkJCQkJCQkgKiBvZiB1 c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGlzIG1ldGhvZCBoZWxwcworCQkJCQkJCQkgKiB3aXRo IHBhcmFsbGVsIGV4ZWN1dGlvbiB0b28uCisJCQkJCQkJCSAqLworCisJCQkJCQkJCS8qIHBhcmFt ZXRlciBzYW5pdHkgY2hlY2tzICovCisJCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19u dW1fc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQ QVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCQl2YXIgPSAm ZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJCWlmICh2YXIt PnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCisJCQkJCQkJCQllbG9nKEVSUk9SLCAidHlwZSBv ZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0eXBlIik7 CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1ZSBs aWtlIGEKKwkJCQkJCQkJICogY29uc3RhbnQuCisJCQkJCQkJCSAqLworCQkJCQkJCQlzY3JhdGNo Lm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9 IHZhci0+dmFsdWU7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlz bnVsbDsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJ CX0KKwkJCQkJCQllbHNlCisJCQkJCQkJeworCQkJCQkJCQlPaWQJCQl2YXJpZCA9IHBhcmFtLT5w YXJhbXZhcmlkOworCQkJCQkJCQlPaWQJCQl2YXJ0eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKKwor CQkJCQkJCQlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisKKwkJCQkJCQkJLyoKKwkJCQkJ CQkJICogSW4gc29tZSBjYXNlcyAocGxwZ3NxbCdzIHNpbXBsZSBleHByZXNzaW9uCisJCQkJCQkJ CSAqIGV2YWx1YXRpb24gb3IgZXZhbHVhdGlvbiBvZiBDQUxMIGFyZ3VtZW50cyksCisJCQkJCQkJ CSAqIHRoZSBleHByZXNzaW9uIGV4ZWN1dG9yIGlzIGNhbGxlZCBkaXJlY3RseS4KKwkJCQkJCQkJ ICogV2UgY2FuIGFsbG93IGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbgorCQkJCQkJCQkgKiB2YXJp YWJsZXMgKGNvcHkgb25seSksIGJlY2F1c2Ugd2Uga25vdywgc28KKwkJCQkJCQkJICogb3V0c2lk ZSBpcyBub3QgYW55IHF1ZXJ5IChhbmQgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBjYW5ub3QgYmUg ZXhlY3V0ZWQgcGFyYWxsZWwpLgorCQkJCQkJCQkgKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Ug d2Ugc2hvdWxkIHRvIGRvIGFjbGNoZWNrLAorCQkJCQkJCQkgKiBiZWNhdXNlIHVzdWFsIGFjbGNo ZWNrIGZyb20KKwkJCQkJCQkJICogc3RhbmRhcmRfRXhlY3V0b3JTdGFydCBpcyBub3QgZXhlY3V0 ZWQgaW4KKwkJCQkJCQkJICogdGhpcyBjYXNlLiBGb3J0dW5hdGVseSBpdCBpcyBqdXN0IG9uY2Ug cGVyCisJCQkJCQkJCSAqIHRyYW5zYWN0aW9uLgorCQkJCQkJCQkgKgorCQkJCQkJCQkgKiBEb24n dCBkbyBwZXJtaXNzaW9uIGNoZWNrLCB3aGVuIHZhcmlhYmxlIGlzCisJCQkJCQkJCSAqIHVzZWQg bGlrZSBiYXNlIG5vZGUgZm9yIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24uCisJCQkJCQkJCSAqLwor CQkJCQkJCQlpZiAoIXBhcmFtLT5wYXJhbWJhc2Vub2RlKQorCQkJCQkJCQl7CisJCQkJCQkJCQlB Y2xSZXN1bHQJYWNscmVzdWx0OworCisJCQkJCQkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soCisJCQkJCQkJCQkJCQkJICBWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJ CQkJCSAgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCisJCQkJCQkJCQlpZiAoYWNscmVzdWx0 ICE9IEFDTENIRUNLX09LKQorCQkJCQkJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwKKwkJ CQkJCQkJCQkJCQkgICBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJCQkJCQkJICAgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCQkJCQkJCQl9CisKKwkJCQkJCQkJc2NyYXRjaC5v cGNvZGUgPSBFRU9QX1BBUkFNX1ZBUklBQkxFOworCQkJCQkJCQlzY3JhdGNoLmQudnBhcmFtLnZh cmlkID0gdmFyaWQ7CisJCQkJCQkJCXNjcmF0Y2guZC52cGFyYW0udmFydHlwZSA9IHZhcnR5cGU7 CisJCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCQl9CiAJ CQkJCQl9CiAJCQkJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMK aW5kZXggYjJjMDBhMGExYjEuLmMxMjg3ZWZiNGIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHBySW50ZXJwLmMKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaGVhcHRvYXN0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vx dWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5o IgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTUxMiw2ICs1MTMsNyBAQCBFeGVjSW50ZXJwRXhw cihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkK IAkJJiZDQVNFX0VFT1BfUEFSQU1fRVhFQywKIAkJJiZDQVNFX0VFT1BfUEFSQU1fRVhURVJOLAog CQkmJkNBU0VfRUVPUF9QQVJBTV9DQUxMQkFDSywKKwkJJiZDQVNFX0VFT1BfUEFSQU1fVkFSSUFC TEUsCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX1NFVCwKIAkJJiZDQVNFX0VFT1BfQ0FTRV9URVNUVkFM LAogCQkmJkNBU0VfRUVPUF9NQUtFX1JFQURPTkxZLApAQCAtMTE2MSw2ICsxMTYzLDIwIEBAIEV4 ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9v bCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfUEFSQU1f VkFSSUFCTEUpCisJCXsKKwkJCS8qCisJCQkgKiBEaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGUgKHdpdGhvdXQgYnVmZmVyaW5nKS4gQmVjYXVzZQorCQkJICogcmV0dXJuZWQgdmFsdWUg Y2FuIGJlIHVzZWQgKHdpdGhvdXQgYW4gYXNzaWduZW1lbnQpIGFmdGVyIHRoZQorCQkJICogcmVm ZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyB1cGRhdGVkLCB3ZSBoYXZlIHRvIHVzZSBhbiBj b3B5CisJCQkgKiBvZiBzdG9yZWQgdmFsdWUgZXZlcnkgdGltZS4KKwkJCSAqLworCQkJKm9wLT5y ZXN2YWx1ZSA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2sob3AtPmQudnBhcmFtLnZh cmlkLAorCQkJCQkJCQkJCQkJCQkJb3AtPnJlc251bGwsCisJCQkJCQkJCQkJCQkJCQlvcC0+ZC52 cGFyYW0udmFydHlwZSk7CisJCQlFRU9fTkVYVCgpOworCQl9CisKIAkJRUVPX0NBU0UoRUVPUF9Q QVJBTV9TRVQpCiAJCXsKIAkJCS8qIG91dCBvZiBsaW5lLCB1bmxpa2VseSB0byBtYXR0ZXIgcGVy Zm9ybWFuY2Utd2lzZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwppbmRleCA2YzQ5 MTVlMzczMS4uMGI3M2M1ZjM1NDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xs dm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCkBA IC0xMTM2LDYgKzExMzYsMTIgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkK IAkJCQkJYnJlYWs7CiAJCQkJfQogCisJCQljYXNlIEVFT1BfUEFSQU1fVkFSSUFCTEU6CisJCQkJ YnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsUGFyYW1WYXJpYWJsZSIsCisJCQkJCQkJ CXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKKwkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tv cG5vICsgMV0pOworCQkJCWJyZWFrOworCiAJCQljYXNlIEVFT1BfUEFSQU1fU0VUOgogCQkJCWJ1 aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFBhcmFtU2V0IiwKIAkJCQkJCQkJdl9zdGF0 ZSwgb3AsIHZfZWNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggYTAzODYwZDRiODguLmI4 ZGYxNmU0ZjA5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTM0NjksMTYgKzM0NjksNiBAQCB0cmFu c2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJ CSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRpb24pOwogCi0JLyoKLQkgKiBU aGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3Qg ZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQg eWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKLQkgKiBlbmFibGVkIGxhdGVyLgotCSAqLwot CWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygi c2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAlh c3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2Rl KEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IDgwMTllNTQ5MGU5 Li40MzE0NTdlZTdiYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIu aAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0xNTYsMTAgKzE1Niwx MSBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfQk9PTFRFU1RfSVNfRkFMU0UsCiAJ RUVPUF9CT09MVEVTVF9JU19OT1RfRkFMU0UsCiAKLQkvKiBldmFsdWF0ZSBQQVJBTV9FWEVDL0VY VEVSTiBwYXJhbWV0ZXJzICovCisJLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4vVkFSSUFC TEUgcGFyYW1ldGVycyAqLwogCUVFT1BfUEFSQU1fRVhFQywKIAlFRU9QX1BBUkFNX0VYVEVSTiwK IAlFRU9QX1BBUkFNX0NBTExCQUNLLAorCUVFT1BfUEFSQU1fVkFSSUFCTEUsCiAJLyogc2V0IFBB UkFNX0VYRUMgdmFsdWUgKi8KIAlFRU9QX1BBUkFNX1NFVCwKIApAQCAtNDEwLDYgKzQxMSwxMyBA QCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlwZTsJLyogT0lE IG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJLyogZm9yIEVF T1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZhcmlkOwkJLyog T0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkvKiBPSUQgb2Yg cGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBmb3IgRUVPUF9D QVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAgLTgzMiw2ICs4 NDAsOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtU2V0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4g dm9pZCBFeGVjRXZhbFBhcmFtRXh0ZXJuKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAq b3AsCiAJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBFeGVjRXZh bFBhcmFtVmFyaWFibGUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJCQkJ CQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxDb2VyY2VW aWFJT1NhZmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9p ZCBFeGVjRXZhbFNRTFZhbHVlRnVuY3Rpb24oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVw ICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEN1cnJlbnRPZkV4cHIoRXhwclN0YXRlICpzdGF0 ZSwgRXhwckV2YWxTdGVwICpvcCk7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9l eHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGE2NTIzZjdhZmUyLi5l Y2FjNjRmY2ZiNCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcl9y ZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3Nx bF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBS QUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMg YXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDNmOTAxY2Q4ZmNk Li5lNWIwZGEwNGUzYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5LDggKzgwOTksNyBAQCBl eGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0Q2xh dXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8fAot CQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAotCQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykK KwkJcXVlcnktPnNldE9wZXJhdGlvbnMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDQwYjE3 YjVjNmY4Li44ZjM1ZWEwMGY5NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQ1OSw4ICs0NTksNyBAQCBFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgZnVuY3Rp b24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9w Z1NRTCBleHByZXNzaW9uICIkMSArIHZhcjEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBwbHBnc3FsZngo aW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBs cGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVD VCBzcWxmeF9zZCgyMCk7CiAgc3FsZnhfc2QgCkBAIC03NTYsMjcgKzc1NSwyOCBAQCAkJDsKIE5P VElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQogRFJPUCBWQVJJQUJM RSB2YXIxOwogRFJPUCBWQVJJQUJMRSB2YXIyOwotLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1 cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0tIENBTEwgc3RhdGVtZW50IGlzIHN1cHBvcnRl ZAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAxOwogQ1JFQVRFIFBST0NFRFVSRSBw KGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdV QUdFIHBscGdzcWw7Ci0tLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5 ZXQpCistLSBzaG91bGQgdG8gd29yawogQ0FMTCBwKHYpOwotRVJST1I6ICBzZXNzaW9uIHZhcmlh YmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitOT1RJQ0U6ICAxCiBETyAkJCBCRUdJ TiBDQUxMIHAodik7IEVORCAkJDsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUg dXNlZCBhcyBhbiBhcmd1bWVudAotQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIK LVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitOT1RJ Q0U6ICAxCiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7Ci0tLSBFWEVD VVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gRVhF Q1VURSBzdGF0ZW1lbnQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIExFVCB2ID0gMjA7CiBQUkVQ QVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOwotLS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBi ZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3Qg YmUgdXNlZCBhcyBhbiBhcmd1bWVudAorID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICAgIDIw CisoMSByb3cpCisKIERFQUxMT0NBVEUgcHRlc3Q7CiBEUk9QIFZBUklBQkxFIHY7CiAtLSB0ZXN0 IHNlYXJjaCBwYXRoCkBAIC0xMDk1LDEyICsxMDk1LDEwIEBAIExFVCB2YXIxLmEgPSB2YXIxLmEg KyAxMDsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgUEwv cGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Js b2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9j b2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywg dmFyMS5hOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxLmEiCi1QTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0NPTlRFWFQ6 ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERP ICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwogRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgU1FMIHN0 YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgpAQCAtMTEzOSwxMiArMTEzNywxMCBA QCBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIERPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZh cjE7IEVORCAkJDsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEiCi1QTC9wZ1NRTCBm dW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJF R0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhw cmVzc2lvbiAidmFyMS5hIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGlu ZSAxIGF0IFJBSVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxv Y2sgbGluZSAxIGF0IFJBSVNFCiBETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7 IEVORCAkJDsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg dmFyMQogQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIK QEAgLTIwNDgsOCArMjA0NCw3IEBAICQkOwogRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJs aWMudmFyMSIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCiBERVRBSUw6ICBUaGVy ZSBpcyBhIHJpc2sgb2YgdW53YW50ZWQgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZS4KIEhJTlQ6 ICBVc2UgdmFyaWFibGUgZmVuY2UgIlZBUklBQkxFKHZhcm5hbWUpIGZvciBhY2Nlc3MgdG8gdmFy aWFibGUiLgotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEiCi1QTC9wZ1NRTCBm dW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgUkFJU0UKIC0tIHNob3Vs ZCBiZSBvawogU0VMRUNUIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKTsKICB2YXIxIHwg dmFyMSAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBi NjUzNGM5MDZlZi4uMmJiNDU1MjYyOTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKQEAgLTUyOSwxMyArNTI5LDE0IEBAICQkOwogRFJPUCBWQVJJQUJMRSB2 YXIxOwogRFJPUCBWQVJJQUJMRSB2YXIyOwogCi0tLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxl IGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVk CiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CiAKK0xFVCB2ID0gMTsKKwogQ1JFQVRFIFBST0NFRFVS RSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExB TkdVQUdFIHBscGdzcWw7CiAKLS0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9y dGVkIHlldCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7CiAKIERPICQkIEJFR0lOIENB TEwgcCh2KTsgRU5EICQkOwpAQCAtNTQzLDEzICs1NDQsMTIgQEAgRE8gJCQgQkVHSU4gQ0FMTCBw KHYpOyBFTkQgJCQ7CiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7CiAK LS0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBk aXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9y CistLSBFWEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogTEVUIHYgPSAy MDsKIFBSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CiAKLS0tIHNob3VsZCBmYWlsCist LSBzaG91bGQgYmUgb2sKIEVYRUNVVEUgcHRlc3Qodik7CiAKIERFQUxMT0NBVEUgcHRlc3Q7Ci0t IAoyLjQ3LjEKCg== --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20250106-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg6k7 RnJvbSA1YTY2NmYwNTNiZmUwZjQzZDg0YjI0NjMwNTdkMmVkOTIyYmZiZDAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysrCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLS0KIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE0NSArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMiArKysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUxOCBpbnNlcnRpb25zKCsp LCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGU4NjNjYjkxMGVmLi45YWIyNGRm NTI4MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTk4NDEsNiArOTg0MSwyNiBAQCBTQ1JBTS1TSEEtMjU2 JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBs YWNlYWJsZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFi bGUgZG9lc24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2Uu CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRydWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJp YWJsZS1pbW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisg ICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFy PC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBiZmJm ZjlhYjc0ZS4uZTcwNGUwNWE5OTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjA0NCw3ICs2MDQ0LDggQEAg JCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogICAgICBZb3UgY2FuIGNvbnNp ZGVyIHRyYW5zbGF0aW5nIGFuIE9yYWNsZSBwYWNrYWdlIGludG8gYSBzY2hlbWEgaW4KICAgICAg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPi4gIFBhY2thZ2UgZnVuY3Rpb25z IGFuZCBwcm9jZWR1cmVzCiAgICAgIHdvdWxkIHRoZW4gYmVjb21lIGZ1bmN0aW9ucyBhbmQgcHJv Y2VkdXJlcyBpbiB0aGF0IHNjaGVtYSwgYW5kIHBhY2thZ2UKLSAgICAgdmFyaWFibGVzIGNvdWxk IGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCisgICAg IHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIG9yIGlt bXV0YWJsZSBzZXNzaW9uCisgICAgIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KICAgICAgKHNl ZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgogICAgIDwvcGFyYT4K ICAgIDwvc2VjdDM+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA1NzM5 MTUyODExOS4uMWZlZDk3ZDE1YTMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bApAQCAtMjYsOCArMjYsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5v cHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFS SUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVGQVVMVCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04g Q09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCitDUkVBVEUgWyB7IFRF TVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+ IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBE Uk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxF PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IGFzc2lnbmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdl ZC4KKyAgICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVm YXVsdCB2YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNp bmcgdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwg bm8gZnVydGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAg ICAgIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRl cmFsPk9OIFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCBy ZXNldCBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQg VkFSSUFCTEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAg IG9iamVjdHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJs aXN0ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRl cm0+PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVt PgpAQCAtMTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZB UklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXZhcmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0 ZXJhbD5OT1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lv bgorICAgICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3Jl YXRlZCBhcyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVm YXVsdCB2YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2 YWx1ZSwgdGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+ REVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+ PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA4 ZmJhNGNjNDkzYi4uMGI2MDkzYTAwYmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAg LTQwLDYgKzQwLDggQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0 IGNoYXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2 YXJDb2xsYXRpb24sCiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIGJv b2wgbm90X251bGwsCisJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9k ZSAqdmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVu ZEFjdGlvbik7CiAKQEAgLTU1LDYgKzU3LDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIg KnZhck5hbWUsCiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ Ym9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCWJvb2wgbm90X251bGwsCisJCQkJYm9vbCBpc19pbW11 dGFibGUsCiAJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24g dmFyWGFjdEVuZEFjdGlvbikKIHsKQEAgLTExNyw2ICsxMjEsOCBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2Qg LSAxXSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0Fu dW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNv bGxhdGlvbik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9v bEdldERhdHVtKG5vdF9udWxsKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0 YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlzX2ltbXV0YWJsZSk7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRB Y3Rpb24pOwogCiAJaWYgKHZhckRlZmV4cHIpCkBAIC0yNTksNiArMjY1LDggQEAgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJ CQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+ aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKKwkJCQkJCQkgICBzdG10 LT5pc19pbW11dGFibGUsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3Rt dC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwppbmRleCA2ZjlkMGIzOWJiNS4uYWY3MGVkNzFkNjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkyLDYgKzkyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zhcmlh YmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9u SWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlub3RfbnVsbDsKKwlib29sCQlp c19pbW11dGFibGU7CisKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKIAkvKgpAQCAtMTEwLDYgKzEx Myw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlpc192YWxpZDsKIAog CXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAq LworCisJLyogdHJ1ZSwgd2hlbiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBzZXQsIGFuZCBjYW5ub3Qg YmUgY2hhbmdlZCBtb3JlICovCisJYm9vbAkJcHJvdGVjdF92YWx1ZTsKIH0gU1ZhcmlhYmxlRGF0 YTsKIAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CkBAIC01NzEsNiArNTc3LDIz IEBAIGV2YWxfYXNzaWduX2RlZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCiAK IAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CisJCWVsc2UKKwkJeworCQkJ LyoKKwkJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBOT1QgTlVMTCB2YXJpYWJsZSBi dXQgdGhlIHJlc3VsdCBvZgorCQkJICogREVGQVVMVCBleHByZXNzaW9uIGlzIE5VTEwuCisJCQkg Ki8KKwkJCWlmIChzdmFyLT5ub3RfbnVsbCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJCSBlcnJtc2coIm51 bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHN2YXItPnZhcmlkKSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcmVzdWx0IG9mIERFRkFV TFQgZXhwcmVzc2lvbiBpcyBOVUxMLiIpKSk7CisJCX0KKworCQlpZiAoc3Zhci0+aXNfaW1tdXRh YmxlKQorCQkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CiAKIAkJRnJlZUV4ZWN1dG9yU3Rh dGUoZXN0YXRlKTsKIAl9CkBAIC02MDEsNiArNjI0LDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJZ2V0X3R5cGxl bmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOwogCisJ c3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOworCXN2YXItPmlzX2ltbXV0YWJs ZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90 eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21h aW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0g SW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTYzMCw5ICs2NTYsMzEgQEAgc2V0dXBfc2Vz c2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQog CXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKIAkJ CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCi0JaWYgKCFpc193cml0ZSkKKwlz dmFyLT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4gdGhlIHZhcmlhYmxl IGlzIG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHByZWZlciB0byBldmFsdWF0ZQorCSAqIHBvc3Np YmxlIERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcm90 ZWN0CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0IGFueSBvdmVyd3JpdGUuCisJICovCisJaWYg KCFpc193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11dGFibGUpCisJewogCQlldmFsX2Fzc2lnbl9k ZWZleHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJICogUmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBp cyBhIE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQgZGVmYXVsdAorCQkgKiBleHByZXNzaW9uLgor CQkgKi8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJ CQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Np b24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgc2Vzc2lvbiB2YXJpYWJs ZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkpOworCX0KKwogCVJlbGVhc2VTeXNDYWNoZSh0 dXApOwogfQogCkBAIC02NTIsNiArNzAwLDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJp YWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJQXNzZXJ0KHN2YXIpOwogCUFz c2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CiAKKwlpZiAoc3Zhci0+cHJvdGVj dF92YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0VSUk9SX0lO X0FTU0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlz IGRlY2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKworCS8qIGRvbid0IGFsbG93IGFzc2lnbm1l bnQgb2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJsZSAqLworCWlmIChpc251bGwgJiYgc3Zhci0+ bm90X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZB TFVFX05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNnKCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2Vk IGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSks CisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKwogCS8q CiAJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3 aGVuIHRoZXkgYXJlCiAJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCkBAIC02OTIsNiArNzU1LDEwIEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlz dmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisKKwkvKiBkb24n dCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUg Ki8KKwlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQorCQlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1 ZTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDg0MWQ5ZjhkZmRmLi5hNTlmNjg1MGI3NSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC02NjcsNiArNjY3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ CQlqc29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5 X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51 bGwgT3B0SW1tdXRhYmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNl IGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyMzAsMjcgKzUyMzEs MzEgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFs aWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25W YXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0 YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVf Y2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlv bgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVT ZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52 YXJpYWJsZSA9ICQ0OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNl ID0gKENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+ WGFjdEVuZEFjdGlvbiA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJ bi0+aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5 cGVOYW1lID0gJDc7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsK KwkJCQkJbi0+bm90X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+ WGFjdEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJ Rl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRl X2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENS RUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlm aWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9w dFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0 ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJ CQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJ bi0+dHlwZU5hbWUgPSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICop ICQxMDsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQx MjsKKwkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9 ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJ CQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251 bGwgPSAkMTI7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24g PSAkMTQ7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICop IG47CiAJCQkJfQpAQCAtNTI3MCw2ICs1Mjc1LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBP TiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAog CitPcHROb3ROdWxsOiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBF TVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVU QUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9 IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhU RU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhNmMzM2Qy ZWRlZi4uYjRjNjFkYTE4ODUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0MCw2ICs1NDQwLDggQEAgZ2V0 VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWlu dAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJub3Ru dWxsOworCWludAkJCWlfdmFyaXNpbW11dGFibGU7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJ aV9hY2xkZWZhdWx0OwogCWludAkJCWksCkBAIC01NDYyLDYgKzU0NjQsOCBAQCBnZXRWYXJpYWJs ZXMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlv blxuIgogCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBB UyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJ CSAgIiAgICAgICB2LnZhcmlzaW1tdXRhYmxlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAi ICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVs dCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKQEAgLTU0ODIsNiArNTQ4Niw4IEBA IGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihy ZXMsICJ2YXJkZWZleHByIik7CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywg InZhcnhhY3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2 YXJjb2xsYXRpb24iKTsKKwlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVs bCIpOworCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUi KTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFj bCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKQEAgLTU1MDgsNiArNTUxNCw4IEBAIGdldFZh cmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3ZhcnhhY3RlbmRhY3Rpb24pKTsKIAogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29p ZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJu b3RudWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2 YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2lt bXV0YWJsZSkpID09ICd0JzsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVs dCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NTU0 LDcgKzU1NjIsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJ bmZvICp2YXJpbmZvKQogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFy ZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZh cmlzaW1tdXRhYmxlOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwlib29sCQl2YXJub3RudWxsOwog CiAJLyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1 bXAgfHwgIWRvcHQtPmR1bXBTY2hlbWEpCkBAIC01NTY4LDEyICs1NTc4LDE0IEBAIGR1bXBWYXJp YWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJdmFyZGVm ZXhwciA9IHZhcmluZm8tPnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8t PnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9u OworCXZhcm5vdG51bGwgPSB2YXJpbmZvLT52YXJub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0g dmFyaW5mby0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBR RXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFt ZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAl cyIsCi0JCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRh YmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xs YXRpb24pKQogCXsKQEAgLTU1ODUsNiArNTU5Nyw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpm b3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWRE dW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcm5vdG51bGwpCisJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiIE5PVCBOVUxMIik7CisKIAlpZiAodmFyZGVmZXhwcikKIAkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAlcyIsCiAJCQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKaW5kZXggMjYxMzcwMGUxOWQuLjA1NjI0OTdmMzRlIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcy NSw2ICs3MjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY2hhcgkgICAqaW5p dHJ2YXJhY2w7CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkv KiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KKwlib29sCQl2YXJub3RudWxsOwor CWJvb2wJCXZhcmlzaW1tdXRhYmxlOwogfSBWYXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCmluZGV4IGZjZjY4OTY2YjBlLi4xYmJhNjhlNmFlZSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKQEAgLTQwNDEsNiArNDA0MSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0s CiAJfSwKIAorCSdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsK KwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21t YW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJl Z2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlNSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJ CQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlv bmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1V VEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFs bF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMn LAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVU QUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVG QVVMVCAxMCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUv eG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1 bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQll eGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAg ICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNy ZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0 LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwppbmRleCAyOTBkYzYyNGZlNS4uNzRlMWJjNTU3OGUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CkBAIC01MjUwLDcgKzUyNTAsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsK IAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRy YW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRl X2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24g PCAxODAwMDApCiAJewpAQCAtNTI3MSw2ICs1MjcxLDggQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBj aGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1l IEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4i CiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYu dmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMg XCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19j YXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkg ICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVO ICdPTiBDT01NSVQgRFJPUCdcbiIKQEAgLTUyODEsNiArNTI4Myw4IEBAIGxpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgi VHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQi KSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDI0OWY2MTg3OGQxLi5kNjgzOGFlM2MxOSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwpAQCAtMTI3Myw2ICsxMjczLDggQEAgc3RhdGljIGNvbnN0IHBnc3Fs X3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJGT1JFSUdOIFRBQkxFIiwgTlVM TCwgTlVMTCwgTlVMTH0sCiAJeyJGVU5DVElPTiIsIE5VTEwsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0 X29mX2Z1bmN0aW9uc30sCiAJeyJHUk9VUCIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzfSwKKwl7 IklNTVVUQUJMRSBWQVJJQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RS T1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgSU1NVVRBQkxFCisJCQkJCQkJCQkJ CQkJCQkJCQkJCQkgKiBWQVJJQUJMRSAuLi4gKi8KIAl7IklOREVYIiwgTlVMTCwgTlVMTCwgJlF1 ZXJ5X2Zvcl9saXN0X29mX2luZGV4ZXN9LAogCXsiTEFOR1VBR0UiLCBRdWVyeV9mb3JfbGlzdF9v Zl9sYW5ndWFnZXN9LAogCXsiTEFSR0UgT0JKRUNUIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwg VEhJTkdfTk9fQ1JFQVRFIHwgVEhJTkdfTk9fRFJPUH0sCkBAIC0zNjA4LDcgKzM2MTAsOCBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENSRUFURSBUQUJMRSAtLS0g aXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJ LyogQ29tcGxldGUgIkNSRUFURSBURU1QL1RFTVBPUkFSWSIgd2l0aCB0aGUgcG9zc2libGUgdGVt cCBvYmplY3RzICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJURU1QfFRFTVBP UkFSWSIpKQotCQlDT01QTEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIs ICJWSUVXIik7CisJCUNPTVBMRVRFX1dJVEgoIklNTVVUQUJMRSBWQVJJQUJMRSIsICJTRVFVRU5D RSIsICJUQUJMRSIsICJWQVJJQUJMRSIsCisJCQkJCSAgIlZJRVciKTsKIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFVOTE9HR0VEIiB3aXRoIFRBQkxFIG9yIFNFUVVFTkNFICovCiAJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIkNSRUFURSIsICJVTkxPR0dFRCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRSIs ICJTRVFVRU5DRSIpOwpAQCAtMzk2MCw3ICszOTYzLDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRl IENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFU RSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVB VEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKLQkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1Q T1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVN UE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIklNTVVU QUJMRSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCiAJCS8qIENv bXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLwpAQCAtNDYyMCw2 ICs0NjI0LDEwIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJGUk9NIiwgIlNFUlZFUiIsIE1hdGNoQW55LCAiSU5UTyIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1BUSU9OUyAoIik7CiAKKy8qIElNTVVUQUJMRSAtLSBj YW4gYmUgZXhwZW5kIHRvIElNTVVUQUJMRSBWQVJJQUJMRSAqLworCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJDUkVBVEUiLCAiSU1NVVRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEgoIlZBUklBQkxFIik7 CisKIC8qIElOU0VSVCAtLS0gY2FuIGJlIGluc2lkZSBFWFBMQUlOLCBSVUxFLCBldGMgKi8KIAkv KiBDb21wbGV0ZSBOT1QgTUFUQ0hFRCBUSEVOIElOU0VSVCAqLwogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJOT1QiLCAiTUFUQ0hFRCIsICJUSEVOIiwgIklOU0VSVCIpKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCmluZGV4IDA5ZGQ0NGE0NGUxLi5jZjIxZTA0MjZhNyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaApAQCAtNTYsNiArNTYsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIy LFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwog CWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVM TCAqLworCWJvb2wJCXZhcm5vdG51bGwgQktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxv dyBjaGFuZ2VzICovCisJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkv KiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBC S0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGFjYzdkNzNmYjhkLi4x YTdmNDQzY2U3NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ4Nyw2ICszNDg3LDggQEAg dHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFt ZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVz ZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhp c3RzICovCisJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLworCWJvb2wJCWlz X2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCU5vZGUJICAgKmRlZmV4cHI7 CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0 cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggYmM3YjYwYTk3ZWEuLjc3YTdiZjQ1YzhhIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JFQVRF IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwog XGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAg ICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZh dWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNj cmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAg ICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51 bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBB Y2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0 ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBV QkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBc ZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAg ICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9u ICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAg ICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0 aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJp dmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBD ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAg fCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAg ICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBA QCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25h bCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIK IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBE ZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJs ZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdh aW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNh dGlvbnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRl cwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52 YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFi bGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3 aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg ODgwZGIzYTllYzguLjQwYjE3YjVjNmY4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjQyMCwzICsyNDIwLDE0OCBAQCBTRUxFQ1Qg dmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7 CistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9S OiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJs ZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGlu aXRpYWxpemVkIHlldC4KKy0tc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwg REVGQVVMVCAwOworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVD VCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFC TEVTOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2 YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgor ICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQg dG8gZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQg Zm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhl IHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVT OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAgMTAKKygxIHJvdykKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFy dGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJM RQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gZmly c3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBz aG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVi bGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBz aG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAy MDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElN TVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVG QVVMVCAxMDsKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxU IHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitE Uk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFS SUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVGQVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWls CitMRVQgdmFyMSA9IDEwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIg aXMgZGVjbGFyZWQgSU1NVVRBQkxFCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNo b3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJw dWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNGUzYmExYjUx YzguLmI2NTM0YzkwNmVmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xNjYxLDMgKzE2NjEsMTI1IEBAIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBOT1QgTlVM TAorLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEw7 CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hv dWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAw OworCistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hv dWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCist LSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZB VUxUIHZhcnRlc3RfZngoKTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOworCitE SVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VM RUNUIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwor CistLSB0ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gZmlyc3Qgd3JpdGUgc2hvdWxk IG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZB UklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBiZSBv aworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBERUZBVUxUIDEwOworCistLSBkb24ndCBhbGxvdyBjaGFuZ2Ugd2hlbiB2YXJpYWJsZSBoYXMg REVGQVVMVCB2YWx1ZQorLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NB UkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxk IGJlIG9rCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgSU5UIE5PVCBOVUxMIERF RkFVTFQgMTA7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjEg PSAyMDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIHRvIGZh aWwKK0xFVCB2YXIxID0gMzA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0gCjIuNDcuMQoK --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20250106-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg6q8 RnJvbSBjOWFiZTIzY2ZlMjdhZjBkOTY5NDc4MzIzODJmZGEzM2Y5ODJjMWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTQvMjJdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNz aW9ucwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1 bHQgZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9u dmFycwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNz ZnVsbHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFn IGZvciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dt bC9yZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNjMgKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDQ4ICsrKysrKysr KysKIDIwIGZpbGVzIGNoYW5nZWQsIDM1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDIwZmM1ZDYwY2Y1Li5lODYzY2I5MTBlZiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk4NzMsNiArOTg3MywxNCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJkZWZleHByPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdf bm9kZV90cmVlPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhl IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSBkZWZhdWx0IHZhbHVlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdy b3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGNmOTZlYzQ5OGQxLi4zNGQwNThhYjE1NSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtNTM4MCwxNCArNTM4MCwxNCBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogCiAgICA8cGFy YT4KICAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBj dXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKLSAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJu cyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRzIHZhbHVlIGhhcwotICAgIGJl ZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhl Ci0gICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIG5vdCB0cmFuc2FjdGlvbmFsOgotICAgIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVl IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0Ci0gICAgYmUgdW5k b25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVzdCBsaWtlIHZhcmlhYmxl cyBpbgotICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1z ZWx2ZXMgY2FuIGJlIHBlcnNpc3RlbnQKLSAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1 ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQotICAgIGNvbnRl bnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBvciBhIGRlZmF1bHQgdmFsdWUsCisgICAgdW5sZXNz IGl0cyB2YWx1ZSBoYXMgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50 IHNlc3Npb24KKyAgICB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAg U2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdAorICAgIHRyYW5zYWN0aW9uYWw6IGFueSBjaGFuZ2Vz IG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbgorICAgIGEgdHJhbnNh Y3Rpb24gd29uJ3QgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAo anVzdCBsaWtlCisgICAgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Np b24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJlCisgICAgcGVyc2lzdGVudCBvciB0ZW1wb3Jh cnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkCisg ICAgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCiAgICA8L3BhcmE+CiAK ICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggZDgxMzY2 OGE3NzYuLjU3MzkxNTI4MTE5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK QEAgLTI3LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lz ZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJM RSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90 eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyB7IE9OIENPTU1JVCBEUk9QIHwgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQorICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlU IERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVm c3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNDEsMTAgKzQxLDEwIEBAIENSRUFURSBbIHsg VEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwCiAKICAgPHBhcmE+CiAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCi0gICBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMg c2V0IHRvCi0gICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCi0gICBUaGUgY29udGVudCBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAg IHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICAgYSBzZXNzaW9u IHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMIG9yIGEgZGVmYXVsdCB2YWx1ZSwgdW5sZXNz IGl0cyB2YWx1ZQorICAgaXMgc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNl c3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGUgY29u dGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuICBUaGlzIGlz IHRoZQorICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdl cy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTA1LDYgKzEwNSwxNyBAQCBDUkVBVEUgWyB7 IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgorICAgIDx0ZXJt PjxsaXRlcmFsPkRFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+ PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IDxsaXRlcmFsPkRFRkFVTFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB0byBhc3NpZ24g YSBkZWZhdWx0CisgICAgICB2YWx1ZSB0byBhIHNlc3Npb24gdmFyaWFibGUuIFRoaXMgZXhwcmVz c2lvbiBpcyBldmFsdWF0ZWQgd2hlbiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgaXMgZmly c3QgYWNjZXNzZWQgZm9yIHJlYWRpbmcgYW5kIGhhZCBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2 YWx1ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9w Ij4KICAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCA2MWI5NjdmOWM5Yi4uNmIwY2I5 NTAzNGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCkBAIC03MSw3ICs3MSw4IEBAIERJU0NBUkQgeyBB TEwgfCBQTEFOUyB8IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQog ICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBSZXNldHMgdGhlIHZhbHVlIG9mIGFs bCBzZXNzaW9uIHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZQotICAgICAgaXMgbGF0ZXIgcmV1c2Vk LCBpdCBpcyByZS1pbml0aWFsaXplZCB0byA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPi4KKyAgICAg IGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gZWl0aGVyCisgICAgICA8 bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBvciBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAgPC9wYXJh PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYwppbmRleCAwMGM5MGVhNmZkOC4uOGZiYTRjYzQ5M2IgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMKQEAgLTI0LDYgKzI0LDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlu cy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMzcsNiArNDAsNyBAQCBzdGF0 aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJ CQkJCQkJCSBPaWQgdmFyT3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKIAkJCQkJ CQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJ CQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbik7CiAKIApAQCAt NTEsNiArNTUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlP aWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKIAkJCQlib29sIGlmX25vdF9leGlz dHMsCisJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFy WGFjdEVuZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CkBAIC0xMTQsNiArMTE5LDExIEBA IGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24p OwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJH ZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAorCWlmICh2YXJEZWZleHByKQorCQl2YWx1ZXNb QW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG5v ZGVUb1N0cmluZyh2YXJEZWZleHByKSk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmRlZmV4cHIgLSAxXSA9IHRydWU7CisKIAl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2Fj bChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CiAJ aWYgKHZhcmFjbCAhPSBOVUxMKQpAQCAtMTUwLDYgKzE2MCwxMSBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVz KCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CiAJZnJlZV9vYmplY3RfYWRkcmVz c2VzKGFkZHJzKTsKIAorCS8qIGRlcGVuZGVuY3kgb24gZGVmYXVsdCBleHByICovCisJaWYgKHZh ckRlZmV4cHIpCisJCXJlY29yZERlcGVuZGVuY3lPbkV4cHIoJm15c2VsZiwgKE5vZGUgKikgdmFy RGVmZXhwciwKKwkJCQkJCQkgICBOSUwsIERFUEVOREVOQ1lfTk9STUFMKTsKKwogCS8qIGRlcGVu ZGVuY3kgb24gb3duZXIgKi8KIAlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0 aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CiAKQEAgLTE4NSw2ICsyMDAsNyBAQCBDcmVhdGVWYXJp YWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCU9p ZAkJCWNvbGxhdGlvbjsKIAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRkcmVzcyB2YXJp YWJsZTsKKwlOb2RlCSAgICpjb29rZWRfZGVmYXVsdCA9IE5VTEw7CiAKIAkvKiBjaGVjayBjb25z aXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KIAlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJ QUJMRV9YQUNURU5EX0RST1AKQEAgLTIyNiw2ICsyNDIsMTYgQEAgQ3JlYXRlVmFyaWFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCWZvcm1h dF90eXBlX2JlKHR5cGlkKSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQt PmNvbGxDbGF1c2UtPmxvY2F0aW9uKSkpOwogCisJaWYgKHN0bXQtPmRlZmV4cHIpCisJeworCQlj b29rZWRfZGVmYXVsdCA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBzdG10LT5kZWZleHByLAorCQkJ CQkJCQkJICAgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQpOworCisJCWNvb2tlZF9kZWZhdWx0 ID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLAorCQkJCQkJCQkJCQkJIGNvb2tlZF9k ZWZhdWx0LCB0eXBpZCwgIkRFRkFVTFQiKTsKKwkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3Rh dGUsIGNvb2tlZF9kZWZhdWx0KTsKKwl9CisKIAl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwKIAkJCQkJCQkgICBuYW1lc3BhY2VpZCwKIAkJCQkJCQkg ICB0eXBpZCwKQEAgLTIzMyw2ICsyNTksNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHZhcm93bmVyLAog CQkJCQkJCSAgIGNvbGxhdGlvbiwKIAkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJ CQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwog CiAJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6 JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYwppbmRleCBmMTZjMzFiZjNhOS4uNmY5ZDBiMzliYjUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl ICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1n ci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNTE4LDExICs1MTksNjggQEAgQXRF T1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAogCX0KIH0KIAorLyoKKyAq IGV2YWx1YXRlIGFuIGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfYXNzaWduX2Rl ZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCit7CisJRGF0dW0JCWRlZmV4cHJf dmFsdWU7CisJYm9vbAkJaXNudWxsOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydChzdmFyLT5p c192YWxpZCk7CisJQXNzZXJ0KEhlYXBUdXBsZUlzVmFsaWQodHVwKSk7CisKKwlkZWZleHByX3Zh bHVlID0gU3lzQ2FjaGVHZXRBdHRyKFZBUklBQkxFT0lELAorCQkJCQkJCQkJdHVwLAorCQkJCQkJ CQkJQW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByLAorCQkJCQkJCQkJJmlzbnVsbCk7CisKKwlp ZiAoIWlzbnVsbCkKKwl7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpkZWZl eHByczsKKwkJRXhwcgkgICAqZGVmZXhwcjsKKwkJY2hhcgkgICAqZGVmZXhwcl9zdHI7CisJCURh dHVtCQl2YWx1ZTsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJZXN0YXRlID0gQ3JlYXRl RXhlY3V0b3JTdGF0ZSgpOworCisJCWRlZmV4cHJfc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhk ZWZleHByX3ZhbHVlKTsKKwkJZGVmZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShkZWZleHBy X3N0cik7CisKKwkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVl cnlfY3h0KTsKKworCQlkZWZleHByID0gZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIGRlZmV4 cHIpOworCQlkZWZleHBycyA9IEV4ZWNJbml0RXhwcihkZWZleHByLCBOVUxMKTsKKworCQl2YWx1 ZSA9IEV4ZWNFdmFsRXhwclN3aXRjaENvbnRleHQoZGVmZXhwcnMsCisJCQkJCQkJCQkJICBHZXRQ ZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOwor CisJCQlzdmFyLT52YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXIt PnR5cGxlbik7CisJCQlzdmFyLT5pc251bGwgPSBmYWxzZTsKKworCQkJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGN4dCk7CisJCX0KKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCX0K K30KKwogLyoKICAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8K IHN0YXRpYyB2b2lkCi1zZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQg dmFyaWQpCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQs IGJvb2wgaXNfd3JpdGUpCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3ZhcmlhYmxlIHZh cmZvcm07CkBAIC01NzIsNiArNjMwLDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFi bGUgc3ZhciwgT2lkIHZhcmlkKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZh bHVlMShWQVJJQUJMRU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwog CisJaWYgKCFpc193cml0ZSkKKwkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0dXApOworCiAJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAKQEAgLTYwMSw3ICs2NjIsNyBAQCBzZXRfc2Vzc2lv bl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCSAq LwogCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZs b2NzdmFyLCBzdmFyLT52YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIs IHN2YXItPnZhcmlkLCBmYWxzZSk7CiAJCV9zdmFyID0gJmxvY3N2YXI7CiAJfQogCWVsc2UKQEAg LTczNCw3ICs3OTUsMjUgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCSAqLwog CWlmICghc3Zhci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIs IHZhcmlkKTsKKwkJLyogaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gdXNlIGRlZmV4cCBpZiBpdCBp cyBkZWZpbmVkICovCisJCVBHX1RSWSgpOworCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBjYXNl LCB0aGUgc2V0dXAgY2FuIGV4ZWN1dGUgZGVmYXVsdCBleHByZXNzaW9uLiBXaGVuCisJCQkgKiB0 aGUgZXhlY3V0aW9uIG9mIGRlZmF1bHQgZXhwcmVzc2lvbiBmYWlscywgdGhlbiB3ZSBuZWVkIHRv CisJCQkgKiByZW1vdmUgZW50cnkgZnJvbSBzZXNzaW9uIHZhcnMuCisJCQkgKi8KKwkJCXNldHVw X3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQsIGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgp OworCQl7CisJCQkvKiB0aGlzIGVudHJ5IGNhbm5vdCBiZSB2YWxpZCwgcmVtb3ZlIGZyb20gc2Vz c2lvbnZhcnMgKi8KKwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVN T1ZFLCBOVUxMKTsKKworCQkJLyogcHJvcGFnYXRlIHRoZSBlcnJvciAqLworCQkJUEdfUkVfVEhS T1coKTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChl bWl0dGVkIGJ5IFJFQUQpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCkBAIC03OTgsNyArODc3LDcgQEAgU2V0U2Vzc2lvblZh cmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCiAJaWYgKCFmb3Vu ZCkKIAl7Ci0JCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQlzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCB0cnVlKTsKIAogCQllbG9nKERFQlVHMSwgInNl c3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBt ZW1vcnkgKGVtaXR0ZWQgYnkgV1JJVEUpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4 M2NmOTFkM2VmYi4uODQxZDlmOGRmZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjM3LDYgKzYzNyw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8cGFydGJvdW5kc3BlYz4gUGFydGl0aW9u Qm91bmRTcGVjCiAldHlwZSA8bGlzdD4JCWhhc2hfcGFydGJvdW5kCiAldHlwZSA8ZGVmZWx0PgkJ aGFzaF9wYXJ0Ym91bmRfZWxlbQorJXR5cGUgPG5vZGU+CQlPcHRTZXNzaW9uVmFyRGVmRXhwcgog CiAldHlwZSA8bm9kZT4JanNvbl9mb3JtYXRfY2xhdXNlCiAJCQkJanNvbl9mb3JtYXRfY2xhdXNl X29wdApAQCAtNTIyOSwzMCArNTIzMCwzNiBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgog ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFU RSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFC TEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRT ZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVT ZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKIAkJCQkJ JDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDQ7CiAJCQkJCW4t PnR5cGVOYW1lID0gJDY7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAk NzsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ4OworCQkJCQluLT5kZWZleHByID0gJDg7CisJ CQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkOTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNl OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIFZB UklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0 X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24K IAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vz c2lvblZhclN0bXQpOwogCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKIAkJCQkJbi0+dmFy aWFibGUgPSAkNzsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKIAkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKKwkJ CQkJbi0+ZGVmZXhwciA9ICQxMTsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJ bi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJ CTsKIAorT3B0U2Vzc2lvblZhckRlZkV4cHI6IERFRkFVTFQgYl9leHByCQkJCQl7ICQkID0gJDI7 IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAvKgogICog VGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwK ICAqIHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRl eCA0NzM3YjA0ZDE3MS4uNTRiNzY1YzhlYjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ4 OCw2ICs0ODgsNyBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5f REVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBS X0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAogCQkJaWYgKGlzQWdnKQogCQkJCWVyciA9IF8oImFn Z3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMi KTsKQEAgLTkzNyw2ICs5MzgsNyBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRl ICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5E X0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQlj YXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7 CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YwppbmRleCBiODVhOTdjYTc4ZS4uY2E5NjhiNWM2Y2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YwpAQCAtNTg4LDYgKzU4OCw3IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMo UGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoK IAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJlc3VsdCA9IGZh bHNlOwogCQkJYnJlYWs7CiAJfQpAQCAtNjczLDYgKzY3NCw3IEBAIHRyYW5zZm9ybUNvbHVtblJl ZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKIAkJY2FzZSBFWFBS X0tJTkRfTEVUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJ CS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC0yMTQ2LDYgKzIxNDgsNyBAQCB0cmFuc2Zvcm1T dWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJCWJyZWFrOwog CQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJ T05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9 IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CiAJCQlicmVh azsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKQEAgLTM0OTgsNiArMzUwMSw3 IEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4g IkNIRUNLIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9L SU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6 CiAJCQlyZXR1cm4gIkRFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9O OgogCQkJcmV0dXJuICJpbmRleCBleHByZXNzaW9uIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmlu ZGV4IGRjMjVmNmRjZDBlLi5kOWYxNWMyNjE4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBA IC0yNjIwLDYgKzI2MjAsNyBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQkJYnJlYWs7CiAJCWNhc2Ug RVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZB VUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0 LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lv bnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKaW5kZXggZjJmMzc3OWM2NzIuLmE2YzMzZDJlZGVmIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0 MzYsNiArNTQzNiw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfdmFy bmFtZXNwYWNlOwogCWludAkJCWlfdmFydHlwZTsKIAlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50 CQkJaV92YXJkZWZleHByOwogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zh cm93bmVyOwogCWludAkJCWlfdmFyY29sbGF0aW9uOwpAQCAtNTQ2MSw2ICs1NDYyLDcgQEAgZ2V0 VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJj b2xsYXRpb25cbiIKIAkJCQkJICAiICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAg ICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19n ZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAgICAg IHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVics IHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKIAkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBn X3ZhcmlhYmxlIHZcbiIKQEAgLTU0NzcsNiArNTQ3OSw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZl ICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIp OwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1l ID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3ZhcmRlZmV4cHIgPSBQUWZudW1i ZXIocmVzLCAidmFyZGVmZXhwciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihy ZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVz LCAidmFyY29sbGF0aW9uIik7CiAKQEAgLTU1MTIsNiArNTUxNSwxMSBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CiAJCXZh cmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93 bmVyKSk7CiAKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJkZWZleHByKSkKKwkJCXZh cmluZm9baV0udmFyZGVmZXhwciA9IE5VTEw7CisJCWVsc2UKKwkJCXZhcmluZm9baV0udmFyZGVm ZXhwciA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJkZWZleHByKSk7CisKIAkJ LyogZG8gbm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCiAJCWlmICghUFFn ZXRpc251bGwocmVzLCBpLCBpX3ZhcmFjbCkpCiAJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50 cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CkBAIC01NTQ0LDYgKzU1NTIsNyBAQCBkdW1wVmFyaWFi bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVm ZmVyIHF1ZXJ5OwogCWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5h bWU7CisJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0 aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIApAQCAtNTU1Niw2ICs1NTY1LDcgQEAgZHVtcFZh cmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1 YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2 YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFydHlwbmFtZTsKKwl2YXJkZWZleHByID0gdmFyaW5mby0+ dmFyZGVmZXhwcjsKIAl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVuZGFjdGlv bjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKQEAgLTU1NzUsNiAr NTU4NSwxMCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZv ICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAor CWlmICh2YXJkZWZleHByKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVz IiwKKwkJCQkJCSAgdmFyZGVmZXhwcik7CisKIAlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24s ICJyIikgPT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04g RU5EIFJFU0VUIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGE5YWM3MGQ3NjE2Li4yNjEzNzAwZTE5ZCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oCkBAIC03MTcsNiArNzE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxl SW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2YXJ0 eXBuYW1lOworCWNoYXIJICAgKnZhcmRlZmV4cHI7CiAJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlv bjsKIAljaGFyCSAgICp2YXJhY2w7CiAJY2hhcgkgICAqcnZhcmFjbDsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwKaW5kZXggN2IwY2MyYzVkOTQuLmZjZjY4OTY2YjBlIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbApAQCAtNDAwNSw2ICs0MDA1LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9 LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIERFRkFVTFQnID0+IHsKKwkJYWxs X3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycs CisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlMyBBUyBpbnRlZ2VyIERFRkFVTFQgMTA7JywKKwkJcmVnZXhw ID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50 ZWdlciBERUZBVUxUIDEwO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQkl ZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAor CQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5 X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBWQVJJQUJM RSB0ZXN0X3ZhcmlhYmxlIERFRkFVTFQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJyA9PiB7CisJ CWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFu ZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTQgQVMgaW50ZWdlciBERUZBVUxUIDEwIE9OIFRSQU5T QUNUSU9OIEVORCBSRVNFVCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJM RSBkdW1wX3Rlc3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElP TiBFTkQgUkVTRVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1w X3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVu bGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVt cF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92 aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRF IFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzZjc0MzY3NmNhNy4uMjkwZGM2 MjRmZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCkBAIC01MjUwLDcgKzUyNTAsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBH cmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRp YyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0 cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAw MDApCiAJewpAQCAtNTI3MSw2ICs1MjcxLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00g cGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJ CSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlw ZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJ CQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wi LFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBh cyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJ ICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgogCQkJCQkgICIgICAgV0hF TiAncicgVEhFTiAnT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xuIgpAQCAtNTI4MCw2ICs1Mjgx LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRp b24iKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29w KCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24iKSk7CiAKIAlpZiAodmVyYm9zZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAw MDhmMmVlN2MxNy4uMDlkZDQ0YTQ0ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAg LTY4LDYgKzY4LDkgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25J ZCkKIAkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KIAlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RF RkFVTFQoX251bGxfKTsKIAorCS8qIGxpc3Qgb2YgZXhwcmVzc2lvbiB0cmVlcyBmb3IgdmFyaWFi bGUgZGVmYXVsdCAoTlVMTCBpZiBub25lKSAqLworCXBnX25vZGVfdHJlZSB2YXJkZWZleHByIEJL SV9ERUZBVUxUKF9udWxsXyk7CisKICNlbmRpZgogfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGVjNGExNmFlYTI0Li5hY2M3ZDczZmI4ZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ4Nyw2ICszNDg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3Jl YXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9m IHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3Rf ZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJTm9kZQkgICAq ZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247 CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDhiNTVmODQwZDEwLi4zNmY5OWM4OGVlMyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgZW51bSBQ YXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJrIHZhbHVl ICovCiAJRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1lbnQgdGFy Z2V0ICovCiAJRVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCisJRVhQUl9L SU5EX1ZBUklBQkxFX0RFRkFVTFQsIC8qIGRlZmF1bHQgdmFsdWUgZm9yIHNlc3Npb24gdmFyaWFi bGUgKi8KIH0gUGFyc2VFeHByS2luZDsKIAogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApp bmRleCA2MTA3N2E1MmIxNi4uYmM3YjYwYTk3ZWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3Fs Lm91dApAQCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8 ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nl c3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHB1Ymxp YyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAg ICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJv dykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBP TiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAg ICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3Rl ciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJp YWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAg ICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlw dGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwg QyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAg ICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAt NjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAoMCByb3dzKQogCiBcZFYgIm5vLnN1 Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz Ci0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVt YSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1OTEsOSArNjU5MSw5IEBAIGltcHJvcGVyIHF1YWxpZmll ZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo Lmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1w cm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0 YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NzMwLDkgKzY3MzAs OSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENv bGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0t IGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlm aWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CmluZGV4IDM3NjY5ZTZiYTFmLi44ODBkYjNhOWVjOCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTIzNTcsMyArMjM1Nyw2 NiBAQCBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFT ICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRV Uk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CistLSB2YXJ0ZXN0X2Z4IHNob3VsZCBiZSBwcm90 ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CitF UlJPUjogIGNhbm5vdCBkcm9wIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBiZWNhdXNlIG90aGVyIG9i amVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5k cyBvbiBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB2YXIxOworTk9USUNFOiAgdmFydGVzdF9meCBleGVjdXRlZAorIHZhcjEgCistLS0tLS0KKyAg ICAwCisoMSByb3cpCisKKy0tIHRoZSBkZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBv bmNlCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitESVND QVJEIFZBUklBQkxFUzsKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBi ZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAxMDAKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlT RSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMgZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7 CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jh c2gKK1NFTEVDVCB2YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVY VDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGFn YWluCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgdmFydGVzdF9meCBpcyBleGVjdXRpbmcKK0NPTlRF WFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGluZSAzIGF0IFJBSVNFCistLSBi dXQgd2UgY2FuIHdyaXRlCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJ T04gdmFydGVzdF9meCgpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IDE2Mjc0YjU4YTBkLi40ZTNiYTFiNTFjOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTYxMywzICsxNjEzLDUxIEBAIFJPTExCQUNL OwogU0VMRUNUIHZhcjEgSVMgTlVMTDsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJ TgorICBSQUlTRSBOT1RJQ0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBE RUZBVUxUIHZhcnRlc3RfZngoKTsKKworLS0gdmFydGVzdF9meCBzaG91bGQgYmUgcHJvdGVjdGVk IGJ5IGRlcCwgc2hvdWxkIGZhaWwKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSB0aGUgZGVmZXhwciBzaG91bGQgYmUgZXZh bHVhdGVkIG9ubHkgb25jZQorU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCist LSBpbiB0aGlzIGNhc2UsIHRoZSBkZWZleHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQg dmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVH SU4KKyAgUkFJU0UgRVhDRVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7CisgIFJFVFVS TiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1 dCBub3QgdG8gY3Jhc2gKK1NFTEVDVCB2YXIxOworCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CisK Ky0tIGJ1dCB3ZSBjYW4gd3JpdGUKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwotLSAKMi40Ny4x Cgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20250106-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg6y9 RnJvbSBmOGIwY2ZhYzljNGE5NDhiNTEwNmE5Njc3Nzc0NzhhZmZhMmM1MzI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCBmNjUxYWQ5MGIxMC4uMjBmYzVkNjBjZjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05ODQ1 LDcgKzk4NDUsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPgogICAg ICAgPHBhcmE+CiAgICAgICAgQWN0aW9uIHBlcmZvcm1lZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246 Ci0gICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBubyBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xp dGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUuCisgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4g PSBubyBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUsCisg ICAgICAgPGxpdGVyYWw+cjwvbGl0ZXJhbD4gPSByZXNldCB0aGUgdmFyaWFibGUgdG8gaXRzIGRl ZmF1bHQgdmFsdWUuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDgxZmZiY2MzYzYyLi5kODEzNjY4YTc3 NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNyw3ICsyNyw3IEBA IFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4K IENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+ IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMTcsNiArMTE3LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCA1ZWEyMGZiMGNmOC4uZjE2YzMxYmYzYTkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUsIGlmIGFueS4gIFdlIG5l ZWQgdGhpcyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IKQEAgLTExOCw2 ICsxMjAsMTIgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9 IE5VTEw7CiAvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEgc2ludmFsIG1lc3NhZ2Ug Ki8KIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUs IHdoZW4gc29tZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBv ciBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNf c2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRo ZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92ZWQgaW1t ZWRpYXRlbHkuICBJZgogICogcG9zc2libGUsIHdlIGRvIHRoYXQgYXQgdGhlIGVuZCBvZiB0aGUg dHJhbnNhY3Rpb24uICBCdXQgd2UgY2Fubm90IGRvIHRoYXQKQEAgLTM5Myw2ICs0MDEsMzIgQEAg cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIAl9CiB9CiAKKy8q CisgKiByZW1vdmUgZW50cmllcyBtYXJrZWQgYXMgInJlc2V0X2F0X2VveCIKKyAqLworc3RhdGlj IHZvaWQKK3JlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQor eworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlpZiAoIXNl c3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKiBsZWF2ZSBxdWNrbHksIHdoZW4gdGhlcmUgYXJl IG5vdCB0aGF0IHZhcmlhYmxlcyAqLworCWlmICghaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhf cmVzZXRfYXRfZW94KQorCQlyZXR1cm47CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Np b252YXJzKTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0 YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoc3Zhci0+cmVzZXRfYXRfZW94KQorCQkJaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCX0K KworCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOworfQor CiAvKgogICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZh cmlhYmxlcywKICAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9y eS4KQEAgLTQwMCw2ICs0MzQsOCBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhi b29sIGF0RU9YKQogdm9pZAogQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29t bWl0KQogeworCXJlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCgpOwor CiAJaWYgKGlzQ29tbWl0KQogCXsKIAkJaWYgKHhhY3RfZHJvcF9pdGVtcykKQEAgLTUxMSw2ICs1 NDcsMjEgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk KQogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJLyoKKwkgKiBXZSBk b24ndCBuZWVkIHRvIGV4cGxpY2l0bHkgcmVzZXQgdmFyaWFibGVzIG1hcmtlZCBPTiBDT01NSVQg RFJPUC4gSXQKKwkgKiBjYW4gYmUgZG9uZSBieSBzaW52YWwgbWVzc2FnZSBwcm9jZXNzaW5nLiBC dXQgdGhpcyBwcm9jZXNzaW5nIGNhbiBiZQorCSAqIHBvc3Rwb25lZCBkdWUgYWJvcnRlZCB0cmFu c2FjdGlvbi4gT24gc2Vjb25kIGhhbmQgdGhlcmUgaXMgbm90IGEKKwkgKiByZWFzb24sIHdoeSBk b24ndCBkbyBpdCBhdCB0cmFuc2FjdGlvbiBlbmQgaW1tZWRpYXRlbHkuCisJICovCisJaWYgKHZh cmZvcm0tPnZhcnhhY3RlbmRhY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9SRVNFVCB8fAorCQl2 YXJmb3JtLT52YXJ4YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJ CXN2YXItPnJlc2V0X2F0X2VveCA9IHRydWU7CisJCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRo X3Jlc2V0X2F0X2VveCA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+cmVzZXRfYXRfZW94ID0g ZmFsc2U7CisKIAlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCXN2 YXItPmlzbnVsbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3YzA4OTU0OWI0Yi4uODNjZjkxZDNl ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI1OCw2ICs1MjU4LDcgQEAgQ3JlYXRlU2Vzc2lvblZhclN0 bXQ6CiAgKiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCiAgKi8KIFhhY3RFbmRBY3Rpb25P cHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9 CisJCQl8IE9OIFRSQU5TQUNUSU9OIEVORF9QIFJFU0VUCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RF TkRfUkVTRVQ7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVO RF9OT09QOyB9CiAJCTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggOWUzMmM0Nzg0MTIuLmYyZjM3NzljNjcy IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKQEAgLTU0MzYsNiArNTQzNiw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZl ICpmb3V0KQogCWludAkJCWlfdmFybmFtZXNwYWNlOwogCWludAkJCWlfdmFydHlwZTsKIAlpbnQJ CQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFy b3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJaW50CQkJaV92YXJhY2w7CkBAIC01NDUz LDYgKzU0NTQsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkvKiBnZXQgdGhlIHZh cmlhYmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks CiAJCQkJCSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkg ICIgICAgICAgdi52YXJ4YWN0ZW5kYWN0aW9uLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJuYW1l c3BhY2UsIHYudmFydHlwZSxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cuZm9ybWF0X3R5 cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIKIAkJCQkJICAiICAg ICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbiAiCkBAIC01NDc1 LDYgKzU0NzcsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3Zhcm5hbWVzcGFj ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKIAlpX3ZhcnR5cGUgPSBQUWZudW1i ZXIocmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0 eXBuYW1lIik7CisJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3Rl bmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRp b24iKTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKQEAgLTU0 OTgsNiArNTUwMSw5IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCiAJCXZhcmluZm9b aV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CiAJCXZh cmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0 eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyeGFjdGVuZGFjdGlvbiA9CisJCQlwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyeGFjdGVuZGFjdGlvbikpOworCiAJCXZhcmluZm9baV0u dmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikp OwogCiAJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfdmFyYWNsKSk7CkBAIC01NTM4LDYgKzU1NDQsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVmZmVyIHF1ZXJ5Owog CWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJY29uc3Qg Y2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAKIAkvKiBza2lw IGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KQEAgLTU1NDksNiArNTU1Niw3IEBAIGR1bXBWYXJpYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAKIAlxdWFsdmFy bmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CiAJdmFydHlw bmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8t PnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9u OwogCiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLApAQCAt NTU2Nyw2ICs1NTc1LDkgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlh YmxlSW5mbyAqdmFyaW5mbykKIAkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsK IAl9CiAKKwlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24sICJyIikgPT0gMCkKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIik7CisKIAlhcHBl bmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOwogCiAJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA4YTYyYjViNDEyOC4u YTlhYzcwZDc2MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzE3LDYgKzcxNyw3IEBAIHR5cGVkZWYgc3Ry dWN0IF9WYXJpYWJsZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJ Y2hhcgkgICAqdmFydHlwbmFtZTsKKwljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJ ICAgKnZhcmFjbDsKIAljaGFyCSAgICpydmFyYWNsOwogCWNoYXIJICAgKmluaXR2YXJhY2w7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDY0MjNlN2I5ZDI3Li43YjBjYzJjNWQ5NCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTM5ODcsNiArMzk4NywyNCBAQCBteSAldGVzdHMg PSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2Fs bCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJ Y3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMiBBUyBp bnRlZ2VyIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMiBBUyBpbnRlZ2VyIE9OIFRSQU5T QUNUSU9OIEVORCBSRVNFVDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJ JWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwK KwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0 ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdD UkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGQ2ZDMwZTczZWU4Li4z Zjc0MzY3NmNhNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNzMsNiArNTI3Myw3IEBAIGxpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIgIHBnX2NhdGFsb2cu cGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNF IHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09N TUlUIERST1AnXG4iCisJCQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQnXG4iCiAJCQkJCSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIlNjaGVtYSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ192YXJpYWJsZS5oCmluZGV4IDBmYzY3MmJjMmJhLi4wMDhmMmVlN2MxNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVmIGVudW0gVmFyaWFi bGVYYWN0RW5kQWN0aW9uCiB7CiAJVkFSSUFCTEVfWEFDVEVORF9OT09QID0gJ24nLAkvKiBOT09Q ICovCiAJVkFSSUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLwor CVZBUklBQkxFX1hBQ1RFTkRfUkVTRVQgPSAncicsCS8qIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNF VCAqLwogfQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUu b3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cmlu ZGV4IGE2MDk3OTdkYzVkLi5lOWEyNTRiY2QxMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODYsMTEgKzg2LDEyIEBAIG15dmFy CiAKIHN0ZXAgc3IxOiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMg bGV0MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2Mz IHN0YXRlCitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIG9fZW94 X3IgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBjbGVhbiBzdGF0 ZQogc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxl dDM6IExFVCBteXZhcjMgPSAndGVzdCc7CiBzdGVwIHMzOiBCRUdJTjsKIHN0ZXAgb19jX2Q6IENS RUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7Citz dGVwIG9fZW94X3I6IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQgT04gVFJB TlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsKIHN0ZXAgY3Jl YXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0OiBMRVQgbXl2 YXI0ID0gJ3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CkBAIC0xMDMs NiArMTA0LDcgQEAgdAogCiBzdGVwIGRpc2NhcmQ6IERJU0NBUkQgVkFSSUFCTEVTOwogc3RlcCBz YzM6IENPTU1JVDsKK3N0ZXAgY2xlYW46IERST1AgVkFSSUFCTEUgbXl2YXJfb19lb3hfcjsKIHN0 ZXAgc3RhdGU6IFNFTEVDVCB2YXJuYW1lIEZST00gcGdfdmFyaWFibGU7CiB2YXJuYW1lCiAtLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpp bmRleCA0NWU2NWQ0MDg1ZC4uNWQwODljOGE0ZWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpAQCAtMjUsMTIgKzI1LDE0IEBAIHNlc3Npb24g czMKIHN0ZXAgczMJCQl7IEJFR0lOOyB9CiBzdGVwIGxldDMJCXsgTEVUIG15dmFyMyA9ICd0ZXN0 JzsgfQogc3RlcCBvX2NfZAkJeyBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0 ZXh0IE9OIENPTU1JVCBEUk9QOyB9CitzdGVwIG9fZW94X3IJeyBDUkVBVEUgVkFSSUFCTEUgbXl2 YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsgTEVUIG15dmFyX29f ZW94X3IgPSAndGVzdCc7IH0KIHN0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQg QVMgdGV4dDsgfQogc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJv cDQJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjQ7IH0KIHN0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VO VCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsgfQogc3RlcCBkaXNjYXJkCXsgRElTQ0FS RCBWQVJJQUJMRVM7IH0KIHN0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBjbGVhbgkJeyBEUk9Q IFZBUklBQkxFIG15dmFyX29fZW94X3I7IH0KIHN0ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5hbWUg RlJPTSBwZ192YXJpYWJsZTsgfQogCiBzZXNzaW9uIHM0CkBAIC00OCw0ICs1MCw0IEBAIHBlcm11 dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKICMgY2FsbGluZyB0aGUgZGJn IHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAogcGVybXV0YXRpb24gbGV0IHZhbCBzMSBk YmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKICMgdGVzdCBmb3IgRElTQ0FSRCBBTEwgd2hlbiBh bGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCi1wZXJtdXRhdGlvbiBj cmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNj YXJkIHNjMyBzdGF0ZQorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIG9fZW94X3Ig Y3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBjbGVhbiBzdGF0ZQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCAwZDE3NWNiNzU2Yi4uMzc2NjllNmJhMWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0yMzIzLDMgKzIzMjMsMzcgQEAgU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQog CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOwor QkVHSU47CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0t CisgIDEwMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2 YXIxIElTIE5VTEw7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJ TjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIx IElTIE5VTEw7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK aW5kZXggMmM2MmVlMWY3Y2QuLjE2Mjc0YjU4YTBkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNTkzLDMgKzE1OTMsMjMgQEAgQ09NTUlUOwogU0VM RUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKIC0t IHNob3VsZCBiZSB6ZXJvCiBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworQ09NTUlU OworCistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisKK0JFR0lOOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxk IGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0g CjIuNDcuMQoK --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20250106-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg7i11 RnJvbSBiNTVhZTUzODc0ZWUzZTQyNDY0Njk0YjFmMWMyNzUzZjgzZmNmMjZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIyXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg 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 L2dyYW0ueQppbmRleCAzYmU5YTJkZDJkNS4uNmJiYWQxNTRjYmUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxNjAsNyArMTIxNjAsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggNzk2NzM2MjFjOWIuLmM2Mjc2MWU0ZWFl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGQ3 OGNlZjM2YWQ4Li5lM2M4MzA1MjdlYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDY2MCw5 ICs0NjYwLDkgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxV RVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCi0vKiBMRVQgKi8KKy8qIExFVCwgRVhQTEFJ TiBMRVQsIFBSRVBBUkUgTEVUICovCiAJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBh IGxpc3Qgb2YgdmFyaWFibGVzICovCi0JZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkxFVCIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCS8qIENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdp dGggIj0iICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxFVCIsIE1hdGNoQW55KSkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggY2U4 Zjg2NjEwNzcuLmNlNDY4NTg1NmQ3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtOTE2LDkgKzkxNiw5IEBAIERST1AgVkFSSUFCTEUg dmFyMSwgdmFyMjsKIC0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGlu IENURQogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OwogV0lUSCB4IEFTIChMRVQgdmFyMSA9 IDEwMCkgU0VMRUNUICogRlJPTSB4OwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi TEVUIgorRVJST1I6ICBMRVQgbm90IHN1cHBvcnRlZCBpbiBXSVRIIHF1ZXJ5CiBMSU5FIDE6IFdJ VEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKLSAgICAgICAgICAgICAg ICAgICBeCisgICAgICAgICAgICAgXgogLS0gc2hvdWxkIGJlIG9rCiBMRVQgdmFyMSA9IGdlbmVy YXRlX3NlcmllcygxLCAxKTsKIC0tIHNob3VsZCBmYWlsCkBAIC0yMTI0LDUgKzIxMjQsODIgQEAg U0VMRUNUIHZhcjE7CiAgICAxMAogKDEgcm93KQogCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZv cmNlX2dlbmVyaWNfcGxhbjsKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50 KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKK0xFVCB2YXIxID0gTlVMTDsKK0VYUExBSU4g KENPU1RTIE9GRikgRVhFQ1VURSBwMTsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3Rf dGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBP RkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgRVhFQ1VURSBwMTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0 IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdh dGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZh cl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisKKy0t IHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJv dykKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworREVBTExPQ0FURSBwMTsKIERS T1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2Vu ZXJpY19wbGFuOworUFJFUEFSRSBwMShudW1lcmljKSBBUyBMRVQgdmFyMSA9ICQxOworUFJFUEFS RSBwMiBBUyBTRUxFQ1QgdmFyMTsKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7CitFWEVDVVRFIHAy OworICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tCisgMTAzLjE0MTU5MjY1MzU5 CisoMSByb3cpCisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWM7CistLSBzaG91 bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQor CitERUFMTE9DQVRFIHAxOworREVBTExPQ0FURSBwMjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgbnVtZXJpY1tdOworUFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQx XSA9ICQyOworTEVUIHZhcjEgPSAne30nOjpudW1lcmljW107CitFWEVDVVRFIHAxKDEsIDEwLjIp OworRVhFQ1VURSBwMSgyLCAxMC4zKTsKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgIAorLS0t LS0tLS0tLS0tLQorIHsxMC4yLDEwLjN9CisoMSByb3cpCisKK0RFQUxMT0NBVEUgcDE7CitEUk9Q IFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggYjU1MzM2NGY1MmUuLjcyMTBjMDVkNGI3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNDY4LDUgKzE0NjgsNjIgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYp IExFVCB2YXIxID0gKFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFu X2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2 YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2 YXIxID0gTlVMTDsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91 bGQgYmUgTlVMTAorU0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9G RiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBz aG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFV TFQ7CisKK0RFQUxMT0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUg dmFyX3RhYl90ZXN0X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShu dW1lcmljKSBBUyBMRVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKwor RVhFQ1VURSBwMShwaSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4g Y2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIG51bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitE RUFMTE9DQVRFIHAxOworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgbnVtZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZh cjFbJDFdID0gJDI7CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgx LCAxMC4yKTsKK0VYRUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9D QVRFIHAxOworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20250106-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg7q12 RnJvbSA0MjY1N2MzMDhlZTg3NTViOTBiNTQ5OWRmNzUwZTYxZWNiZWQzMzk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIyXSBFWFBMQUlOIExFVCBzdXBwb3J0CgpFbmhhbmNpbmcgRXhwbGFpbk9uZVBsYW4gaXMgbmVj ZXNzYXJ5IHRvIGJlIEVYUExBSU4gQU5BTFlaRSBMRVQgZnVsbHkgd29ya2FibGUuCkluIHRoaXMg Y2FzZSB3ZSB3YW50IHRvIGJlIHJlc3VsdCBvZiBxdWVyeSBvciBleHByZXNzaW9uIHdyaXR0ZW4g dG8gdGFyZ2V0IHZhcmlhYmxlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAg ICAgICAgICAgICAgfCAzMSArKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jICAgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIxICsrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5z Z21sCmluZGV4IDYzNjFhMTRlNjVkLi40MjkyNjE1YjQ0NyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9leHBsYWluLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwK QEAgLTk4LDcgKzk4LDggQEAgRVhQTEFJTiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdIDxyZXAKICAgICA8Y29tbWFuZD5J TlNFUlQ8L2NvbW1hbmQ+LCA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+LAogICAgIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwKICAgICA8Y29tbWFu ZD5DUkVBVEUgVEFCTEUgQVM8L2NvbW1hbmQ+LAotICAgIG9yIDxjb21tYW5kPkVYRUNVVEU8L2Nv bW1hbmQ+IHN0YXRlbWVudAorICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+LAorICAgIG9y IDxjb21tYW5kPkxFVDwvY29tbWFuZD4gc3RhdGVtZW50CiAgICAgd2l0aG91dCBsZXR0aW5nIHRo ZSBjb21tYW5kIGFmZmVjdCB5b3VyIGRhdGEsIHVzZSB0aGlzIGFwcHJvYWNoOgogPHByb2dyYW1s aXN0aW5nPgogQkVHSU47CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWlu LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggYzI0ZTY2ZjgyZTEuLmE2 MDhmODFlZjRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5j bHVkZSAiY29tbWFuZHMvY3JlYXRlYXMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmb3JlaWduL2Zkd2FwaS5oIgogI2luY2x1ZGUgImpp dC9qaXQuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgpAQCAtNTE5LDggKzUyMCw5IEBA IHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25z LAogCX0KIAogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVjZSBvdXRwdXQgKi8KLQlF eHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBlcywgcXVlcnlTdHJpbmcsIHBhcmFtcywgcXVlcnlF bnYsCi0JCQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVM TCksCisJRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgcXVlcnktPnJlc3VsdFZhcmlhYmxlLCBl cywgcXVlcnlTdHJpbmcsCisJCQkJICAgcGFyYW1zLCBxdWVyeUVudiwgJnBsYW5kdXJhdGlvbiwK KwkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkgICBlcy0+bWVt b3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogfQogCkBAIC02MTgsNiArNjIwLDI1IEBAIEV4 cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBs YWluU3RhdGUgKmVzLAogCQllbHNlCiAJCQlFeHBsYWluRHVtbXlHcm91cCgiTm90aWZ5IiwgTlVM TCwgZXMpOwogCX0KKwllbHNlIGlmIChJc0EodXRpbGl0eVN0bXQsIExldFN0bXQpKQorCXsKKwkJ TGV0U3RtdCAgICAqbGV0c3RtdCA9IChMZXRTdG10ICopIHV0aWxpdHlTdG10OworCQlMaXN0CSAg ICpyZXdyaXR0ZW47CisJCVF1ZXJ5CSAgICpxdWVyeTsKKworCQlpZiAoZXMtPmZvcm1hdCA9PSBF WFBMQUlOX0ZPUk1BVF9URVhUKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAi U0VUIFNFU1NJT04gVkFSSUFCTEVcbiIpOworCQllbHNlCisJCQlFeHBsYWluRHVtbXlHcm91cCgi U2V0IFNlc3Npb24gVmFyaWFibGUiLCBOVUxMLCBlcyk7CisKKwkJcmV3cml0dGVuID0gUXVlcnlS ZXdyaXRlKGNhc3ROb2RlKFF1ZXJ5LCBjb3B5T2JqZWN0KGxldHN0bXQtPnF1ZXJ5KSkpOworCisJ CUFzc2VydChsaXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOworCQlxdWVyeSA9IGxpbml0aWFs X25vZGUoUXVlcnksIHJld3JpdHRlbik7CisJCUV4cGxhaW5PbmVRdWVyeShxdWVyeSwKKwkJCQkJ CUNVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIE5VTEwsIGVzLAorCQkJCQkJcHN0YXRlLCBwYXJhbXMp OworCX0KIAllbHNlCiAJewogCQlpZiAoZXMtPmZvcm1hdCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhU KQpAQCAtNjQxLDggKzY2Miw4IEBAIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogICogdG8gY2FsbCBpdC4KICAq Lwogdm9pZAotRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xh dXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAotCQkJICAgY29uc3QgY2hhciAqcXVlcnlTdHJp bmcsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBs YW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBPaWQgdGFyZ2V0dmFyLAorCQkJICAgRXhwbGFp blN0YXRlICplcywgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsIFBhcmFtTGlzdEluZm8gcGFyYW1z LAogCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIGNvbnN0IGluc3RyX3RpbWUgKnBs YW5kdXJhdGlvbiwKIAkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwKIAkJCSAgIGNv bnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2NvdW50ZXJzKQpAQCAtNjkxLDYgKzcxMiw4 IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAq aW50bywgRXhwbGFpblN0YXRlICplcywKIAkgKi8KIAlpZiAoaW50bykKIAkJZGVzdCA9IENyZWF0 ZUludG9SZWxEZXN0UmVjZWl2ZXIoaW50byk7CisJZWxzZSBpZiAoT2lkSXNWYWxpZCh0YXJnZXR2 YXIpKQorCQlkZXN0ID0gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIodGFyZ2V0dmFyKTsKIAll bHNlIGlmIChlcy0+c2VyaWFsaXplICE9IEVYUExBSU5fU0VSSUFMSVpFX05PTkUpCiAJCWRlc3Qg PSBDcmVhdGVFeHBsYWluU2VyaWFsaXplRGVzdFJlY2VpdmVyKGVzKTsKIAllbHNlCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKaW5kZXggOTAyYjAyMmY5YzcuLjRlYTJiZmVhNGVhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHJlcGFyZS5jCkBAIC02NjQsOCArNjY0LDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRl U3RtdCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBs YW5uZWRTdG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAo cHN0bXQtPmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0 bXQsIGludG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwK LQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwp LAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9z dHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRp b24sCisJCQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAg IGVzLT5tZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5P bmVVdGlsaXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQppbmRleCA2NzRlOGFmMjU2Yy4uM2JlOWEyZGQyZDUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpA QCAtMTIxMjksNyArMTIxMjksOCBAQCBFeHBsYWluYWJsZVN0bXQ6CiAJCQl8IENyZWF0ZUFzU3Rt dAogCQkJfCBDcmVhdGVNYXRWaWV3U3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKLQkJCXwg RXhlY3V0ZVN0bXQJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLworCQkJfCBFeGVj dXRlU3RtdAorCQkJfCBMZXRTdG10CQkJCQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICov CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9leHBsYWluLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKaW5kZXgg ZWE3NDE5OTUxZjQuLmRlMjFmZTk3ZDAxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9leHBsYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCkBAIC0xMDMs NyArMTAzLDggQEAgZXh0ZXJuIHZvaWQgRXhwbGFpbk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0 bXQsIEludG9DbGF1c2UgKmludG8sCiAJCQkJCQkJICBFeHBsYWluU3RhdGUgKmVzLCBQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcyk7CiAKLWV4dGVybiB2 b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAq aW50bywKK2V4dGVybiB2b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwKKwkJCQkJCSAgIEludG9DbGF1c2UgKmludG8sIE9pZCB0YXJnZXR2YXIsCiAJCQkJCQkgICBF eHBsYWluU3RhdGUgKmVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCSAgIFBhcmFt TGlzdEluZm8gcGFyYW1zLCBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwKIAkJCQkJCSAgIGNv bnN0IGluc3RyX3RpbWUgKnBsYW5kdXJhdGlvbiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMzA5YzNmMzY5OTguLmNlOGY4NjYxMDc3 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dApAQCAtMjA4NiwzICsyMDg2LDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2 YXIxOwogRFJPUCBUQUJMRSB2YXJ0ZXN0X3RhYjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdp bnQ7CitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRP IHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsK K1ZBQ1VVTSBBTkFMWVpFIHZhcl90YWJfdGVzdF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikg TEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJM RQorIFJlc3VsdAorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3Vs ZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQor CitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBC VUZGRVJTIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0 X3RhYmxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZB UklBQkxFCisgUmVzdWx0IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisg ICAgIC0+ICBBZ2dyZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkK Kyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJf dGFiX3Rlc3RfdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggYzQ5Y2VlZDMzZTEuLmI1NTMzNjRmNTJlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNDQ5LDMgKzE0NDksMjQgQEAgU0VUIHNlc3Np b25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIFRPIERFRkFVTFQ7CiAKIERST1Ag VkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFydGVzdF90YWIxOworCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBiaWdpbnQ7CisKK0NSRUFURSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQp OworCitJTlNFUlQgSU5UTyB2YXJfdGFiX3Rlc3RfdGFibGUgU0VMRUNUICogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMCk7CisKK1ZBQ1VVTSBBTkFMWVpFIHZhcl90YWJfdGVzdF90YWJsZTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJf dGFiX3Rlc3RfdGFibGUpOworCistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZhcjE7CisKK0VY UExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYsIEJVRkZF UlMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFi bGUpOworCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKLS0gCjIuNDcuMQoK --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20250106-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg7610 RnJvbSAxOWQxOTE4MjE1Nzg4NWM0MTEwMjdlYjNkOGZlMjA4ODMxNDk3MjMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjJdIGltcGxlbWVudGF0aW9uIG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcwoKVGhl IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgaW5zaWRlIHRlbXAgc2NoZW1hIGFuZCB0 aGV5IGFyZSBkcm9wcGVkIGJ5IGRyb3BwaW5nCnRoaXMgc2NoZW1hLiBGb3IgY29uc2lzdGVuY3kg d2l0aCB0ZW1wIHRhYmxlcywgdGhlIENSRUFURSBURU1QIFZBUklBQkxFIGNvbW1hbmQgc3VwcG9y dHMKT04gQ09NTUlUIERST1AgY2xhdXNlLiBUaGUgdGVtcG9yYXJ5IHZhcmlhYmxlcyB3aXRoIHRo aXMgY2xhdXNlIGFyZSBjb2xsZWN0ZWQgaW4geGFjdF9kcm9wX2l0ZW1zCmxpc3QuIFRoaXMgbGlz dCBzaG91bGQgYmUgY2FyZWZ1bGx5IG1haW50YWluZWQgYW5kIGNhbiBjb250YWluIG9ubHkgdmFs aWQgZW50cmllcyAobm90CnlldCBkcm9wcGVkKS4gRnJvbSB0aGlzIHJlYXNvbnMgbm93IHRoZSBz dWJjb21taXQgYW5kIHN1YmFib3J0aW5nIGhhdmUgdG8gYmUgaGFuZGxlZC4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMjcgKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTIwICsrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA2NiArKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyMyBm aWxlcyBjaGFuZ2VkLCA1NDQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2N2U2NDU5MjUwNi4uZjY1MWFkOTBiMTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 ODM5LDYgKzk4MzksMTYgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFyeGFjdGVuZGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBY3Rpb24gcGVyZm9y bWVkIGF0IGVuZCBvZiB0cmFuc2FjdGlvbjoKKyAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9 IG5vIGFjdGlvbiwgPGxpdGVyYWw+ZDwvbGl0ZXJhbD4gPSBkcm9wIHRoZSB2YXJpYWJsZS4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sCmluZGV4IDEyMjU0NTUxMWU0Li5jZjk2ZWM0OThkMSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAt NTM4NSw5ICs1Mzg1LDkgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKICAgICA8Y29tbWFuZD5M RVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0 aW9uYWw6CiAgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZh cmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKICAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5z YWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGluCi0gICAgcHJvY2Vk dXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lz dGVudCwgYnV0Ci0gICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNo YXJlZCAobGlrZSB0aGUgY29udGVudCBvZgotICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgIHBy b2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJl IHBlcnNpc3RlbnQKKyAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRo ZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQorICAgIGNvbnRlbnQgb2YgdGVtcG9y YXJ5IHRhYmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKaW5kZXggZDY4MTQwNDA1NWQuLjgxZmZiY2MzYzYyIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDcgKzI2LDggQEAgUG9zdGdyZVNRTCBk b2N1bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgVkFS SUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBU RU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBPTiBDT01N SVQgRFJPUCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpA QCAtMTA0LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQg RFJPUDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSA8bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyB0 aGUgYmVoYXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlIGF0IHRy YW5zYWN0aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNzaW9uIHZh cmlhYmxlIGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25seSBhbGxv d2VkCisgICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3Jl ZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZDMzMWFiOTBkNzguLjYx Njg0MTVmOGMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0zNiw2ICszNiw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19lbnVtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCkBAIC0y MzE2LDYgKzIzMTcsOSBAQCBDb21taXRUcmFuc2FjdGlvbih2b2lkKQogCSAqLwogCXNtZ3JEb1Bl bmRpbmdTeW5jcyh0cnVlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCisJLyogcmVtb3ZlIHZhbHVl cyBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5ICovCisJQXRQcmVFT1hh Y3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlKTsKKwogCS8qIGNsb3NlIGxhcmdlIG9iamVjdHMgYmVm b3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJnZU9iamVjdCh0cnVlKTsK IApAQCAtMjkxMiw2ICsyOTE2LDcgQEAgQWJvcnRUcmFuc2FjdGlvbih2b2lkKQogCUF0QWJvcnRf UG9ydGFscygpOwogCXNtZ3JEb1BlbmRpbmdTeW5jcyhmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2Vy KTsKIAlBdEVPWGFjdF9MYXJnZU9iamVjdChmYWxzZSk7CisJQXRQcmVFT1hhY3RfU2Vzc2lvblZh cmlhYmxlcyhmYWxzZSk7CiAJQXRBYm9ydF9Ob3RpZnkoKTsKIAlBdEVPWGFjdF9SZWxhdGlvbk1h cChmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAlBdEFib3J0X1R3b3BoYXNlKCk7CkBAIC01 MTc3LDYgKzUxODIsOCBAQCBDb21taXRTdWJUcmFuc2FjdGlvbih2b2lkKQogCUF0RU9TdWJYYWN0 X1NQSSh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9vbl9jb21taXRf YWN0aW9ucyh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkgIHMtPnBhcmVudC0+ c3ViVHJhbnNhY3Rpb25JZCk7CisJQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlLCBz LT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklk KTsKIAlBdEVPU3ViWGFjdF9OYW1lc3BhY2UodHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJ CQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9GaWxlcyh0 cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApAQCAtNTM0Miw2ICs1MzQ5LDggQEAgQWJvcnRTdWJU cmFuc2FjdGlvbih2b2lkKQogCQlBdEVPU3ViWGFjdF9TUEkoZmFsc2UsIHMtPnN1YlRyYW5zYWN0 aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9vbl9jb21taXRfYWN0aW9ucyhmYWxzZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKIAkJCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwkJ QXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwK KwkJCQkJCQkJCSBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9O YW1lc3BhY2UoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJICBzLT5wYXJlbnQt PnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9GaWxlcyhmYWxzZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBkNjcyZDJhOWNiMy4u MDBjOTBlYTZmZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTM2LDcgKzM2LDgg QEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwK IAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAotCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0 cyk7CisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIFZhcmlhYmxlWGFj dEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIAogCiAvKgpAQCAtNDksNyArNTAsOCBAQCBj cmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlpbnQzMiB2YXJUeXBtb2Qs CiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCi0JCQkJYm9vbCBpZl9u b3RfZXhpc3RzKQorCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlWYXJpYWJsZVhhY3RFbmRB Y3Rpb24gdmFyWGFjdEVuZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CiAJTmFtZURhdGEJ dmFybmFtZTsKQEAgLTExMCw2ICsxMTIsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMy R2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERh dHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2wo T0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwpAQCAt MTgzLDYgKzE4NiwxMyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRy ZXNzIHZhcmlhYmxlOwogCisJLyogY2hlY2sgY29uc2lzdGVuY3kgb2YgYXJndW1lbnRzICovCisJ aWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QCisJCSYmIHN0 bXQtPnZhcmlhYmxlLT5yZWxwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5J VElPTiksCisJCQkJIGVycm1zZygiT04gQ09NTUlUIERST1AgY2FuIG9ubHkgYmUgdXNlZCBvbiB0 ZW1wb3JhcnkgdmFyaWFibGVzIikpKTsKKwogCW5hbWVzcGFjZWlkID0KIAkJUmFuZ2VWYXJHZXRB bmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOwog CkBAIC0yMjIsMTEgKzIzMiwxNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHR5cG1vZCwKIAkJCQkJCQkg ICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJCQkJICAgc3RtdC0+aWZfbm90 X2V4aXN0cyk7CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10 LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCiAJCSBz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0SWQpOwogCisJLyogd2Ugd2Fu dCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hh bmdlcy4gKi8KKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJU2Vzc2lvblZhcmlhYmxl Q3JlYXRlUG9zdHByb2Nlc3ModmFyaWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24p OworCiAJcmV0dXJuIHZhcmlhYmxlOwogfQogCkBAIC0yMzksNiArMjU1LDcgQEAgRHJvcFZhcmlh YmxlQnlJZChPaWQgdmFyaWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJ Y2hhcgkJWGFjdEVuZEFjdGlvbjsKIAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlv bklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKIApAQCAtMjQ3LDYgKzI2NCw4IEBAIERyb3BWYXJpYWJs ZUJ5SWQoT2lkIHZhcmlkKQogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlY YWN0RW5kQWN0aW9uID0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhh Y3RlbmRhY3Rpb247CisKIAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwog CiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CkBAIC0yNTQsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAog CS8qIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAq LwotCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CisJU2Vzc2lvblZhcmlh YmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkLCBYYWN0RW5kQWN0aW9uKTsKIH0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAyZTM2ZjlkYTgwMC4uNWVhMjBmYjBjZjgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE2LDYgKzE2LDgg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFs b2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3NwaS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJl Y2VpdmVyLmgiCkBAIC0zMiw2ICszNCwxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIK ICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVY QWN0RHJvcEl0ZW0KK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlh YmxlICovCisKKwkvKgorCSAqIGNyZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRp bmcgc3VieGFjdC4gSWYgdGhlIGFjdGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRo ZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0 aGUgZGVsZXRpbmcgc3VieGFjdCwgb3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgor CSAqLworCVN1YlRyYW5zYWN0aW9uSWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25J ZCBkZWxldGluZ19zdWJpZDsKK30gU1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhl IHNlc3Npb24gdmFyaWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKICAq IHRoZSBjb250ZXh0cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVx dWlyZWQuCkBAIC0xMDQsMTMgKzExOSwyMSBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFi bGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBm YWxzZTsKIAogLyoKLSAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMg aXMgbm90IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBXZSBkbwotICogdGhhdCBpbiB0aGUgbmV4dCB0 cmFuc2FjdGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCi0gKiAi dmFsaWRhdGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2Fp ZCB2YWxpZGF0aW9uLCBzbwotICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZv cnQuCisgKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCBy ZW1vdmVkIGltbWVkaWF0ZWx5LiAgSWYKKyAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0IGF0IHRoZSBl bmQgb2YgdGhlIHRyYW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CisgKiBpZiB0aGUg dHJhbnNhY3Rpb24gYWJvcnRlZCwgYmVjYXVzZSB3ZSBsb3N0IGFjY2VzcyB0byB0aGUgc3lzdGVt IGNhdGFsb2cuCisgKiBJbiB0aGF0IGNhc2UsIHdlIGNsZWFuIHVwIGluIHRoZSBuZXh0IHRyYW5z YWN0aW9uIHRoYXQgcmVhZHMgb3Igd3JpdGVzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUuICAidmFs aWRhdGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQKKyAqIHNh aWQgdmFsaWRhdGlvbiwgc28gdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQu CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlk TG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxkcyBvZiBTVmFyaWFibGVY QWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVtcyA9IE5JTDsK Kworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZh cmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao T2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlh YmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTQ3LDE2ICsxNzAsNDUgQEAgcGdfdmFyaWFibGVf Y2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkK IAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8gc2V0dXAgbG9jYWwgbWVt b3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoKKyAqIENhbGxlciBzaG91 bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRyeSBpbiBjYXRhbG9nCisg KiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZUNyZWF0 ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKQoreworCS8qCisJICog Rm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IGVuZCBvZiB4 YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNhdGFsb2cuCisJICovCisJ aWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0 KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7 CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KK30K KwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEgRFJPUCBWQVJJ QUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9mIHJlbW92aW5n IHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAotU2Vzc2lvblZhcmlhYmxl RHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vz cyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3NlcnQoTG9jYWxUcmFuc2Fj dGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYgKFhhY3RFbmRBY3Rpb24g PT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJdW5yZWdpc3Rlcl9z ZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJaWYgKHNlc3Npb252YXJz KQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xNzgsNiArMjMwLDU3IEBAIFNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgorICogUmVnaXN0cmF0aW9u IG9mIGFjdGlvbnMgdG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJpYWJsZXMgYXQgdHJhbnNh Y3Rpb24KKyAqIGVuZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9yYXJ5IHNlc3Npb24gdmFy aWFibGVzIHdpdGggY2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAqLworCisvKgorICogUmVn aXN0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICovCitzdGF0aWMgdm9pZAor cmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKQoreworCVNWYXJp YWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCW9s ZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCisJeGFj dF9haSA9IChTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9jKHNpemVvZihTVmFyaWFi bGVYQWN0RHJvcEl0ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFyaWQ7CisKKwl4YWN0X2Fp LT5jcmVhdGluZ19zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJeGFjdF9h aS0+ZGVsZXRpbmdfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXhhY3RfZHJv cF9pdGVtcyA9IGxjb25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7CisKKwlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0ZXIgYW4gaWQgb2YgYSBn aXZlbiBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0aGlzCisgKiBtb21lbnQs IHRoZSBhY3Rpb24gaXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBzZXR0aW5nIGRlbGV0aW5n X3N1YmlkLiBUaGUKKyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xsYmFja2VkLCBpbiB3aGlj aCBjYXNlIHdlIHNob3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24uCisgKi8KK3N0YXRpYyB2 b2lkCit1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sK KwlMaXN0Q2VsbCAgICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlT VmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRl bSAqKSBsZmlyc3QobCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09IHZhcmlkKQorCQkJeGFj dF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCX0K K30KKwogLyoKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCkBAIC0y MzAsOSArMzMzLDExIEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIp CiAvKgogICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQogICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgotICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgotICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKLSAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBvciB3 aGVuIHRoZSB0cmFuc2FjdGlvbiBlbmRzLiAgQXQgdGhlIGVuZCBvZiBhCisgKiB0cmFuc2FjdGlv biAoYXRFT1ggaXMgdHJ1ZSkgd2UgY2FuIGRpc2NhcmQgYWxsIGludmFsaWQgdmFyaWFibGVzLiAg SW5zaWRlIGEKKyAqIHRyYW5zYWN0aW9uIChhdEVPWCBpcyBmYWxzZSkgd2UgcG9zdHBvbmUgZnJl ZWluZyBhIHZhcmlhYmxlJ3MgbWVtb3J5IGlmIHRoZQorICogdmFyaWFibGUgaGFzIGJlZW4gZHJv cHBlZCBieSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdCBvcGVyYXRpb24KKyAq IGNvdWxkIHN0aWxsIGJlIHJvbGxlZCBiYWNrLgogICoKICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQg d2UgcmVjZWl2ZSBhIGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCiAgKiByZW1vdmVf aW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1 YXJhbnRlZSB0aGF0CkBAIC0yNDAsNyArMzQ1LDcgQEAgaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxp ZChTVmFyaWFibGUgc3ZhcikKICAqIGRvbmUuICBIb3dldmVyLCB3ZSBjYW4gZ3VhcmFudGVlIHRo YXQgYWxsIGVudHJpZXMgZ2V0IGNoZWNrZWQgb25jZS4KICAqLwogc3RhdGljIHZvaWQKLXJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCityZW1vdmVfaW52YWxpZF9zZXNzaW9u X3ZhcmlhYmxlcyhib29sIGF0RU9YKQogewogCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CiAJU1Zh cmlhYmxlCXN2YXI7CkBAIC0yNjcsNyArMzcyLDcgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92 YXJpYWJsZXModm9pZCkKIAl7CiAJCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJCXsKLQkJCWlmIChz dmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlpZiAoIWF0RU9YICYmIHN2 YXItPmRyb3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKIAkJCXsKIAkJCQkvKiB0cnkgYWdh aW4gaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KIAkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1 ZTsKQEAgLTI4OCw2ICszOTMsOTUgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMo dm9pZCkKIAl9CiB9CiAKKy8qCisgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzLAorICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFi bGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVz KGJvb2wgaXNDb21taXQpCit7CisJaWYgKGlzQ29tbWl0KQorCXsKKwkJaWYgKHhhY3RfZHJvcF9p dGVtcykKKwkJeworCQkJTGlzdENlbGwgICAqbDsKKworCQkJZm9yZWFjaChsLCB4YWN0X2Ryb3Bf aXRlbXMpCisJCQl7CisJCQkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCQkJ KFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJCQkvKiBpdGVyYXRlIG9u bHkgb3ZlciBlbnRyaWVzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgKi8KKwkJCQlpZiAoeGFjdF9h aS0+ZGVsZXRpbmdfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJeworCQkJ CQlPYmplY3RBZGRyZXNzIG9iamVjdDsKKworCQkJCQlvYmplY3QuY2xhc3NJZCA9IFZhcmlhYmxl UmVsYXRpb25JZDsKKwkJCQkJb2JqZWN0Lm9iamVjdElkID0geGFjdF9haS0+dmFyaWQ7CisJCQkJ CW9iamVjdC5vYmplY3RTdWJJZCA9IDA7CisKKwkJCQkJLyoKKwkJCQkJICogU2luY2UgdGhpcyBp cyBhbiBhdXRvbWF0aWMgZHJvcCwgcmF0aGVyIHRoYW4gb25lCisJCQkJCSAqIGRpcmVjdGx5IGlu aXRpYXRlZCBieSB0aGUgdXNlciwgd2UgcGFzcyB0aGUKKwkJCQkJICogUEVSRk9STV9ERUxFVElP Tl9JTlRFUk5BTCBmbGFnLgorCQkJCQkgKi8KKwkJCQkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIChvaWQ6JXUpIHdpbGwgYmUgZGVsZXRlZCAoZm9yY2VkIGJ5IE9OIENPTU1JVCBEUk9Q IGNsYXVzZSkiLAorCQkJCQkJIHhhY3RfYWktPnZhcmlkKTsKKworCQkJCQlwZXJmb3JtRGVsZXRp b24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9JTlRF Uk5BTCB8CisJCQkJCQkJCQlQRVJGT1JNX0RFTEVUSU9OX1FVSUVUTFkpOworCQkJCX0KKwkJCX0K KwkJfQorCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHRydWUpOworCX0KKwor CS8qCisJICogV2UgaGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZh cmlhYmxlcyBhcmUgZHJvcHBlZAorCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFu c2FjdGlvbi4KKwkgKi8KKwlsaXN0X2ZyZWVfZGVlcCh4YWN0X2Ryb3BfaXRlbXMpOworCXhhY3Rf ZHJvcF9pdGVtcyA9IE5VTEw7Cit9CisKKy8qCisgKiBQb3N0LXN1YmNvbW1pdCBvciBwb3N0LXN1 YmFib3J0IGNsZWFudXAgb2YgeGFjdCBkcm9wIGxpc3QuCisgKgorICogRHVyaW5nIHN1YmFib3J0 LCB3ZSBjYW4gaW1tZWRpYXRlbHkgcmVtb3ZlIGVudHJpZXMgY3JlYXRlZCBkdXJpbmcgdGhpcwor ICogc3VidHJhbnNhY3Rpb24uIER1cmluZyBzdWJjb21taXQsIGp1c3QgdHJhbnNmZXIgZW50cmll cyBtYXJrZWQgZHVyaW5nCisgKiB0aGlzIHN1YnRyYW5zYWN0aW9uIGFzIGJlaW5nIHRoZSBwYXJl bnQncyByZXNwb25zaWJpbGl0eS4KKyAqLwordm9pZAorQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlh Ymxlcyhib29sIGlzQ29tbWl0LAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQsCisJ CQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpCit7CisJTGlzdENlbGwgICAqY3Vy X2l0ZW07CisKKwlmb3JlYWNoKGN1cl9pdGVtLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFy aWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAq KSBsZmlyc3QoY3VyX2l0ZW0pOworCisJCWlmICghaXNDb21taXQgJiYgeGFjdF9haS0+Y3JlYXRp bmdfc3ViaWQgPT0gbXlTdWJpZCkKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSByZW1vdmVk ICovCisJCQl4YWN0X2Ryb3BfaXRlbXMgPSBmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KHhhY3RfZHJv cF9pdGVtcywgY3VyX2l0ZW0pOworCQkJcGZyZWUoeGFjdF9haSk7CisJCX0KKwkJZWxzZQorCQl7 CisJCQkvKiBjdXJfaXRlbSBtdXN0IGJlIHByZXNlcnZlZCAqLworCQkJaWYgKHhhY3RfYWktPmNy ZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCQkJeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPSBw YXJlbnRTdWJpZDsKKwkJCWlmICh4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9PSBteVN1YmlkKQor CQkJCXhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID0gaXNDb21taXQgPyBwYXJlbnRTdWJpZCA6IElu dmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlhbGl6ZSBh dHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwpAQCAtNDQ2LDcgKzY0MCw3IEBAIGdldF9z ZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52 eGlkLmx4aWQpCiAJewogCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24g dmFyaWFibGVzICovCi0JCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisJCXJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKIAogCQkvKiBkb24ndCByZXBl YXQgdGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KIAkJdmFsaWRhdGVk X2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKQEAgLTU0Miw3ICs3MzYsNyBAQCBTZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJCXZhbGlkYXRl ZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQogCXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5IGZy b20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwotCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9u X3ZhcmlhYmxlcygpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxzZSk7 CiAKIAkJLyogZG9uJ3QgcmVwZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0 aW9uICovCiAJCXZhbGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3 LmMKaW5kZXggNmYwMzAxNTU1ZTAuLjZiZWY5YTI2MTJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCkBAIC00 ODQsNyArNDg0LDcgQEAgRGVmaW5lVmlldyhWaWV3U3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVl cnlTdHJpbmcsCiAJICovCiAJdmlldyA9IGNvcHlPYmplY3Qoc3RtdC0+dmlldyk7CS8qIGRvbid0 IGNvcnJ1cHQgb3JpZ2luYWwgY29tbWFuZCAqLwogCWlmICh2aWV3LT5yZWxwZXJzaXN0ZW5jZSA9 PSBSRUxQRVJTSVNURU5DRV9QRVJNQU5FTlQKLQkJJiYgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9u KHZpZXdQYXJzZSkpCisJCSYmIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Qodmlld1BhcnNlKSkKIAl7 CiAJCXZpZXctPnJlbHBlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfVEVNUDsKIAkJZXJlcG9y dChOT1RJQ0UsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCAzZTk4MTRhZDlmNS4uYTAzODYwZDRiODgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMzM4OSwxMCArMzM4OSwxMCBAQCB0cmFuc2Zvcm1DcmVh dGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVRhYmxlQXNTdG10ICpzdG10 KQogCQkgKiBjcmVhdGlvbiBxdWVyeS4gSXQgd291bGQgYmUgaGFyZCB0byByZWZyZXNoIGRhdGEg b3IgaW5jcmVtZW50YWxseQogCQkgKiBtYWludGFpbiBpdCBpZiBhIHNvdXJjZSBkaXNhcHBlYXJl ZC4KIAkJICovCi0JCWlmIChpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24ocXVlcnkpKQorCQlpZiAo aXNRdWVyeVVzaW5nVGVtcE9iamVjdChxdWVyeSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coIm1h dGVyaWFsaXplZCB2aWV3cyBtdXN0IG5vdCB1c2UgdGVtcG9yYXJ5IHRhYmxlcyBvciB2aWV3cyIp KSk7CisJCQkJCSBlcnJtc2coIm1hdGVyaWFsaXplZCB2aWV3cyBtdXN0IG5vdCB1c2UgdGVtcG9y YXJ5IHRhYmxlcywgdmlld3Mgb3Igc2Vzc2lvbiB2YXJpYWJsZXMiKSkpOwogCiAJCS8qCiAJCSAq IEEgbWF0ZXJpYWxpemVkIHZpZXcgd291bGQgZWl0aGVyIG5lZWQgdG8gc2F2ZSBwYXJhbWV0ZXJz IGZvciB1c2UgaW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDZiYmFkMTU0Y2JlLi43YzA4OTU0OWI0YiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC00NjUsNiArNDY1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0 eXBlIDxpdmFsPgkgT3B0VGVtcAogJXR5cGUgPGl2YWw+CSBPcHROb0xvZwogJXR5cGUgPG9uY29t bWl0PiBPbkNvbW1pdE9wdGlvbgorJXR5cGUgPGl2YWw+CSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAK ICV0eXBlIDxpdmFsPglmb3JfbG9ja2luZ19zdHJlbmd0aAogJXR5cGUgPG5vZGU+CWZvcl9sb2Nr aW5nX2l0ZW0KQEAgLTUyMjgsMjYgKzUyMjksMzkgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRl bToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlD UkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRl X2NsYXVzZQorCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2Fz IFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewog CQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJT dG10KTsKLQkJCQkJbi0+dmFyaWFibGUgPSAkMzsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKLQkJ CQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQkkNC0+cmVscGVy c2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNDsKKwkJCQkJbi0+dHlwZU5hbWUg PSAkNjsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OworCQkJCQlu LT5YYWN0RW5kQWN0aW9uID0gJDg7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9U IEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl CisJCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRp b24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRl U2Vzc2lvblZhclN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQ2OwotCQkJCQluLT50eXBlTmFt ZSA9ICQ4OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJ CSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ3OworCQkJCQlu LT50eXBlTmFtZSA9ICQ5OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDEwOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3Rz ID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCisvKgorICogVGVt cG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwKKyAq IHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KKyAqLworWGFjdEVuZEFjdGlvbk9wdGlvbjog IE9OIENPTU1JVCBEUk9QCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7IH0KKwkJCXwg LypFTVBUWSovCQkJCQkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9OT09QOyB9CisJCTsKKwor CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERB VEUgWyBUTyB2ZXJzaW9uIF0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y ZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTJh MDRlMzVkZmYuLjg2NWExMmQ4YjcxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpA QCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIGV4cGFuZFR1cGxlRGVzYyhUdXBsZURlc2Mg dHVwZGVzYywgQWxpYXMgKmVyZWYsCiBzdGF0aWMgaW50CXNwZWNpYWxBdHROdW0oY29uc3QgY2hh ciAqYXR0bmFtZSk7CiBzdGF0aWMgYm9vbCBydGVfdmlzaWJsZV9pZl9sYXRlcmFsKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsKIHN0YXRpYyBib29sIHJ0ZV92aXNpYmxl X2lmX3F1YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7Ci1z dGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZv aWQgKmNvbnRleHQpOworc3RhdGljIGJvb2wgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIo Tm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKIAogLyoKQEAgLTM4OTYsMTMgKzM4OTYsMTMg QEAgcnRlX3Zpc2libGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxF bnRyeSAqcnRlKQogICogdGhlIHF1ZXJ5IGlzIGEgdGVtcG9yYXJ5IHJlbGF0aW9uICh0YWJsZSwg dmlldywgb3IgbWF0ZXJpYWxpemVkIHZpZXcpLgogICovCiBib29sCi1pc1F1ZXJ5VXNpbmdUZW1w UmVsYXRpb24oUXVlcnkgKnF1ZXJ5KQoraXNRdWVyeVVzaW5nVGVtcE9iamVjdChRdWVyeSAqcXVl cnkpCiB7Ci0JcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoKE5vZGUgKikg cXVlcnksIE5VTEwpOworCXJldHVybiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlcigoTm9k ZSAqKSBxdWVyeSwgTlVMTCk7CiB9CiAKIHN0YXRpYyBib29sCi1pc1F1ZXJ5VXNpbmdUZW1wUmVs YXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCitpc1F1ZXJ5VXNpbmdUZW1w T2JqZWN0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogewogCWlmIChub2RlID09 IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKQEAgLTM5MjgsMTMgKzM5MjgsMjMgQEAgaXNRdWVyeVVz aW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogCQl9CiAK IAkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAotCQkJCQkJCQkgaXNRdWVyeVVzaW5n VGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fs a2VyLAogCQkJCQkJCQkgY29udGV4dCwKIAkJCQkJCQkJIFFUV19JR05PUkVfSk9JTkFMSUFTRVMp OwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAo UGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQor CQl7CisJCQlpZiAoaXNBbnlUZW1wTmFtZXNwYWNlKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVz cGFjZShwLT5wYXJhbXZhcmlkKSkpCisJCQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CiAKIAlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLAotCQkJCQkJCQkgIGlzUXVlcnlVc2luZ1Rl bXBSZWxhdGlvbl93YWxrZXIsCisJCQkJCQkJCSAgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxr ZXIsCiAJCQkJCQkJCSAgY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTU0NmJmOTFlMmUuLmQ2 ZDMwZTczZWU4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI1MCw3ICs1MjUwLDcgQEAgbGlzdFZhcmlhYmxlcyhj b25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsK IAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlz dGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFu c2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBA IC01MjcwLDEyICs1MjcwLDE2IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwg Ym9vbCB2ZXJib3NlKQogCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBl LCB2LnZhcnR5cG1vZCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFt ZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxu IgogCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2 LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wi LFxuIgotCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFz IFwiJXNcIlxuIiwKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIK KwkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgorCQkJCQkgICIg IEVORCBhcyBcIiVzXCJcbiIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAotCQkJCQkgIGdldHRleHRfbm9vcCgiT3du ZXIiKSk7CisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCiAJewpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCmluZGV4IGUzYzgzMDUyN2VhLi4yNDlmNjE4NzhkMSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwpAQCAtMzYwOCw3ICszNjA4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAvKiBDUkVBVEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENS RUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlICJDUkVBVEUg VEVNUC9URU1QT1JBUlkiIHdpdGggdGhlIHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAqLwogCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJQ09NUExFVEVf V0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVklFVyIpOworCQlDT01QTEVURV9XSVRIKCJTRVFV RU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNSRUFU RSBVTkxPR0dFRCIgd2l0aCBUQUJMRSBvciBTRVFVRU5DRSAqLwogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJDUkVBVEUiLCAiVU5MT0dHRUQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAiU0VR VUVOQ0UiKTsKQEAgLTM5NTksNyArMzk1OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCX0KIC8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUg Q1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRF IFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFU RSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRF IiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9S QVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29t cGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKaW5kZXggNWI0NWJlNWFmYWYuLjBmYzY3MmJjMmJhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01Niw2ICs1Niw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUs OTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUg Ki8KIAlpbnQzMgkJdmFydHlwbW9kIEJLSV9ERUZBVUxUKC0xKTsKIAorCS8qIGFjdGlvbiBvbiB0 cmFuc2FjdGlvbiBlbmQgKi8KKwljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4p OworCiAJLyogdmFyaWFibGUgY29sbGF0aW9uICovCiAJT2lkCQkJdmFyY29sbGF0aW9uIEJLSV9E RUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7CiAKQEAgLTY4LDYgKzcxLDEy IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAjZW5kaWYK IH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAKK3R5cGVkZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRB Y3Rpb24KK3sKKwlWQVJJQUJMRV9YQUNURU5EX05PT1AgPSAnbicsCS8qIE5PT1AgKi8KKwlWQVJJ QUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBEUk9QICovCit9CQkJVmFyaWFi bGVYYWN0RW5kQWN0aW9uOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkJRm9ybV9wZ192YXJp YWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCiAgKgkJdGhlIGZv cm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVsYXRpb24uCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKaW5kZXggMDZjZTk2NDAwODUuLjIzODQxYWIzNzNiIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yMSw3ICsyMSwxMSBAQAogI2luY2x1 ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgog Ci1leHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsK K2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwg Y2hhciBYYWN0RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0 cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBBdFBy ZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQpOworZXh0ZXJuIHZvaWQgQXRF T1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklk IG15U3ViaWQsCisJCQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBl eHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9v bCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJv b2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZjg4ZWRj MGQ0MTguLmVjNGExNmFlYTI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNDg3LDYgKzM0 ODcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCVR5cGVOYW1lICAg KnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlDb2xsYXRlQ2xhdXNlICpj b2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxy ZWFkeSBleGlzdHMgKi8KKwljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBl bmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKaW5kZXggOTQ2NmIzMTE3MTAuLjMyYjdhNDMzYTI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApA QCAtNTEsNyArNTEsOSBAQCB0eXBlZGVmIHN0cnVjdCBBbGlhcwogCUxpc3QJICAgKmNvbG5hbWVz OwkJLyogb3B0aW9uYWwgbGlzdCBvZiBjb2x1bW4gYWxpYXNlcyAqLwogfSBBbGlhczsKIAotLyog V2hhdCB0byBkbyBhdCBjb21taXQgdGltZSBmb3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyAqLworLyoK KyAqIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxhdGlvbnMgb3Ig c2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KIHR5cGVkZWYgZW51bSBPbkNvbW1pdEFjdGlvbgogewog CU9OQ09NTUlUX05PT1AsCQkJCS8qIE5vIE9OIENPTU1JVCBjbGF1c2UgKGRvIG5vdGhpbmcpICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCmluZGV4IGRmNmZkNTU1MGQ3Li5iZTBkMGFi ZmZlMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKQEAgLTEyNiw2ICsxMjYsNiBA QCBleHRlcm4gaW50CWF0dG5hbWVBdHROdW0oUmVsYXRpb24gcmQsIGNvbnN0IGNoYXIgKmF0dG5h bWUsIGJvb2wgc3lzQ29sT0spOwogZXh0ZXJuIGNvbnN0IE5hbWVEYXRhICphdHRudW1BdHROYW1l KFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJuIE9pZAlhdHRudW1UeXBlSWQoUmVsYXRp b24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0dG51bUNvbGxhdGlvbklkKFJlbGF0aW9u IHJkLCBpbnQgYXR0aWQpOwotZXh0ZXJuIGJvb2wgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uKFF1 ZXJ5ICpxdWVyeSk7CitleHRlcm4gYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1ZXJ5ICpx dWVyeSk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9SRUxBVElPTl9IICovCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggMGE1NTc5 ZGM3Y2UuLmE2MDk3OTdkYzVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC04NiwxMCArODYsMTEgQEAgbXl2YXIKIAogc3RlcCBz cjE6IFJPTExCQUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNy ZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0YXJ0aW5n IHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRy b3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQogc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFC TEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7CiBzdGVw IHMzOiBCRUdJTjsKK3N0ZXAgb19jX2Q6IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19k IEFTIHRleHQgT04gQ09NTUlUIERST1A7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBt eXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKIHN0ZXAgZHJv cDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggYzg2NGZlZTQwMDYuLjQ1ZTY1ZDQwODVkIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCisr KyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTI0 LDYgKzI0LDcgQEAgc3RlcCBjcmVhdGUJCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7 IH0KIHNlc3Npb24gczMKIHN0ZXAgczMJCQl7IEJFR0lOOyB9CiBzdGVwIGxldDMJCXsgTEVUIG15 dmFyMyA9ICd0ZXN0JzsgfQorc3RlcCBvX2NfZAkJeyBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZh cl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOyB9CiBzdGVwIGNyZWF0ZTQJeyBDUkVBVEUg VkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KIHN0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rl c3QnOyB9CiBzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUgbXl2YXI0OyB9CkBAIC00Nyw0ICs0 OCw0IEBAIHBlcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKICMgY2Fs bGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAogcGVybXV0YXRpb24g bGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKICMgdGVzdCBmb3IgRElTQ0FS RCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCi1w ZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFs MyBkaXNjYXJkIHNjMyBzdGF0ZQorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNy ZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDg4ZTIxMTk0NzExLi42MTA3N2E1MmIxNiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFURSBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxl X293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKIFxk VisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFi bGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAg ICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBw cml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNj ZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlp bmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAg ICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3Mg cHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8 IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZh cjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxk ViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0t IGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5MSw5 ICs2NTkxLDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1l cyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1h bnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2Vy IgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBh bmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBAIExp c3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xs YXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog KDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVk IHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggY2U0Njg1ODU2ZDcuLjBkMTc1Y2I3NTZiIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAt MjIwMywzICsyMjAzLDEyMyBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsKIERST1Ag VkFSSUFCTEUgdmFyMTsKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZBUklB QkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFU RSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2aWV3ICJ2YXJf dGVzdF92aWV3IiB3aWxsIGJlIGEgdGVtcG9yYXJ5IHZpZXcKK0RST1AgVkFSSUFCTEUgdmFyMSBD QVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHZhcl90ZXN0X3ZpZXcKK0JF R0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsK KyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAw CisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBD T01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7Cisg Y291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJ QUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENP TU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworUk9M TEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFi bGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJ TjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7Cisg IExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK KyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAw CisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRl eCA3MjEwYzA1ZDRiNy4uMmM2MmVlMWY3Y2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEyODcsNiArMTI4Nyw3IEBAIEJFR0lOOwogICBEUk9QIFZB UklBQkxFIHZhcjE7CiAgIFNFTEVDVCB2YXIyOwogUk9MTEJBQ0s7CisKIC0tIHNob3VsZCBiZSBv awogU0VMRUNUIHZhcjE7CiAKQEAgLTE1MjcsMyArMTUyOCw2OCBAQCBTRUxFQ1QgdmFyMTsKIAog REVBTExPQ0FURSBwMTsKIERST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVtcG9yYXJ5IHZhcmlh YmxlcworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hv dWxkIGJlIHRlbXBvcmFyeQorQ1JFQVRFIFZJRVcgdmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFy MTsKKworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CisKK0JFR0lOOworICBDUkVBVEUgVEVN UCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7 CisgIFNFTEVDVCB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor CitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERS T1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworCistLSBz aG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFy bmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUg dmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZB UklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJl IHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JF R0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsK KyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK1JPTExCQUNLOworCist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUg dmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFC TEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTQVZF UE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNF TEVDVCB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCop IEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6 ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBhMDVjZTIwOWRmZi4uNWM4NzVhZTY4NDYgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0yODA2LDYgKzI4MDYsNyBAQCBTdXBwb3J0UmVxdWVzdFdG dW5jTW9ub3RvbmljCiBTVmFyaWFibGUKIFNWYXJpYWJsZURhdGEKIFNWYXJpYWJsZVN0YXRlCitT VmFyaWFibGVYQWN0RHJvcEl0ZW0KIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0g CjIuNDcuMQoK --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Disposition: attachment; filename="v20250106-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg8013 RnJvbSBmOTkzMTNiN2QwYThlMzA4NGI2NzA5YWFmNjllNGE3ZTgwM2E4NTAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDEzIERlYyAyMDI0IDA2OjI4OjQ1ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwOS8yMl0gZHluYW1pYyBjaGVjayBvZiB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGZl bmNlcwoKVGhpcyBwYXRjaCBhbGxvd3MgdG8gc3BlY2lmeSBkeW5hbWljIGNvbnRleHQgd2hlcmUg ZmVuY2luZwpvZiBzZXNzaW9uIHZhcmlhYmxlcyBpcyByZXF1aXJlZC4gUG9zc2libGUgY29udGV4 dHMgYXJlCm5vbmUsIG5vc3BpIG9yIGFsbC4gV2l0aCB0aGlzIGNoZWNrIGlzIHBvc3NpYmxlIHRv IGZvcmNlCnZhcmlhYmxlIGZlbmNpbmcgb3V0c2lkZSBzdG9yZWQgcHJvY2VkdXJlcy4KLS0tCiBk b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCA1NiArKysrKysr KysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAz ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAzMyAr KysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAg NCArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyAgICAgICAgICAgICAgICAgICAgfCAgOCAr Kwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgMTkgKysr Kwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgMTYgKysrKwog c3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3BpLmggICAgICAgICAgICAgICAgICAgIHwgIDEgKwogLi4u L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgOTAgKysrKysrKysr KysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAg IHwgNzMgKysrKysrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMDMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBi L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCA2NWYxOTU5OGMyZi4uYjFkZDdlNTBkMGMg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv Y29uZmlnLnNnbWwKQEAgLTEwODQwLDYgKzEwODQwLDYyIEBAIERFVEFJTDogIFNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFu ZCByCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLWNvbnRleHQtZ3Vh cmQiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQi PgorICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRl eHRfZ3VhcmQ8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRl cm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNl X2NvbnRleHRfZ3VhcmQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5 PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICA8cGFyYT4KKyAgICAgICBXaGVuIG9uLCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiBhIHNl c3Npb24gdmFyaWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkg d2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiBjaG9vc2VkIGNvbnRleHQuIFRoZSBkZWZhdWx0Cisg ICAgICAgaXMgPGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4uIFRoZSBlcnJvciBpcyByYWlzZWQgb25s eSB3aGVuIHZhcmlhYmxlIGlzCisgICAgICAgdXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuIGNvbGxp c2lvbnMgd2l0aCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUgKGFuZAorICAgICAgIHdoZW4gdmFy aWFibGUgZmVuY2VzIGFyZSBwb3NzaWJsZSkuIFRoZSBhbGxvd2VkIHZhbHVlcyBvZgorICAgICAg IDx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkPC92YXJu YW1lPiBhcmUKKyAgICAgICA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiAoYWxsb3cgdXNpbmcgc2Vz c2lvbiB2YXJpYWJsZXMgd2l0aG91dAorICAgICAgIHZhcmlhYmxlJ3MgZmVuY2VzIGFsd2F5cyks IDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4gKHJlcXVpcmVzIHZhcmlhYmxlCisgICAgICAgZmVuY2lu ZyBldmVyeXdoZXJlKSwgYW5kIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPiAocmVxdWlyZXMgdmFy aWFibGUKKyAgICAgICBmZW5jaW5nIG91dHNpZGUgU1BJIGNvbnRleHRzIChvdXRzaWRlIHN0b3Jl ZCBwcm9jZWR1cmVzKS4KKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnbm9zcGknOworQ1JFQVRFIFZBUklBQkxFIGEgaW50 OworCitMRVQgYSA9IDEwOworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnYSA9ICUnLCBh OworRU5EOworJCQ7CisKK1NFTEVDVCBhOworU0VMRUNUIFZBUklBQkxFKHMpOworPC9wcm9ncmFt bGlzdGluZz4KKworPHNjcmVlbj4KK05PVElDRTogIGEgPSAxMAorCitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy5hIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RF VEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlh YmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFj Y2VzcyB0byB2YXJpYWJsZSIuCisKK1NFTEVDVCB2YXJpYWJsZShhKTsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+Cisg ICAgICAgIFdoZW4geW91IGFmcmFpZCBhYm91dCB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZh cmlhYmxlcywgc2V0CisgICAgICAgIHRoaXMgZmVhdHVyZSB0byA8bGl0ZXJhbD5hbGw8L2xpdGVy YWw+IG9yIG1pbmltYWx5IHRvCisgICAgICAgIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPi4KKyAg ICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdh cm5pbmctZ3VhcmQiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5p bmdfZ3VhcmQiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQ8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAg IDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZGRsLnNnbWwKaW5kZXggZmUzZjFjY2EwMDYuLjEyMjU0NTUxMWU0IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 NDI0LDcgKzU0MjQsOCBAQCBTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKICAgIFdo ZW4gdGhlcmUgaXMgYSByaXNrIG9mIHBvc3NpYmxlIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJpYWJs ZSBpZGVudGlmaWVycwogICAgYW5kIGNvbHVtbiBuYW1lcywgdGhlbiB1c2luZyB2YXJpYWJsZSBm ZW5jZSBzeW50YXggY2FuIGJlIHJlY29tbWVuZGVkLgogICAgVXNhZ2Ugc2Vzc2lvbiB2YXJpYWJs ZSB3aXRob3V0IHZhcmlhYmxlIGZlbmNlIGNhbiBiZSBkZXRlY3RlZCBieQotICAgd2FybmluZyA8 eHJlZiBsaW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3Vh cmQiLz4uCisgICB3YXJuaW5nIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy11 c2UtZmVuY2Utd2FybmluZy1ndWFyZCIvPgorICAgb3IgYnkgY2hlY2sgPHhyZWYgbGlua2VuZD0i Z3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS1jb250ZXh0LWd1YXJkIi8+LgogICA8L3Bh cmE+CiAgIDwvc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpp bmRleCA0ZjVmZWU0ODE0ZC4uMmUzNmY5ZGE4MDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAi ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCkBAIC0zMSw2ICszMiwxMyBAQAogI2luY2x1ZGUgInV0aWxzL3Nu YXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCisvKgorICogVGhlIHNlc3Np b24gdmFyaWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKKyAqIHRoZSBj b250ZXh0cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVxdWlyZWQu CisgKi8KK2ludAkJc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPQor CQkJCQkJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORTsKKwog LyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUg YmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250 ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KQEAgLTgxNiwzICs4 MjQsMjggQEAgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCiAJaWYgKFNWYXJpYWJsZU1lbW9y eUNvbnRleHQgIT0gTlVMTCkKIAkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1lbW9yeUNv bnRleHQpOwogfQorCisvKgorICogUmFpc2UgZXJyb3Igd2hlbiB1bmZlbmNlZCB2YXJpYWJsZSBp cyB1c2VkIGluIHdyb25nIGNvbnRleHQuCisgKiBUaGlzIGNoZWNrIGFsbG93cyB0byBmb3JjZSBz ZXNzaW9uIHZhcmlhYmxlIGZlbmNpbmcgb3V0c2lkZQorICogc3RvcmVkIHByb2NlZHVyZXMgZW52 aXJvbm1lbnQuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVj ayhPaWQgdmFyaWQsIGJvb2wgaXNfZmVuY2VkKQoreworCWlmIChpc19mZW5jZWQpCisJCXJldHVy bjsKKworCWlmICgoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkID09 CisJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfQUxMKSAmJiAhaXNf ZmVuY2VkKSB8fAorCQkoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJk ID09CisJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEkpICYm CisJCQkJIVNQSV9pbnNpZGVfc3BpX2NvbnRleHQoKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJCSBlcnJtc2co InNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZSIsCisJCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSwKKwkJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAor CQkJCSBlcnJkZXRhaWwoIlRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNz aW9uIHZhcmlhYmxlLiIpLAorCQkJCSBlcnJoaW50KCJVc2UgdmFyaWFibGUgZmVuY2UgXCJWQVJJ QUJMRSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlXCIuIikpKTsKK30KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwci5jCmluZGV4IDliNTU4NjFlYTY0Li4yZmZiNTZhZTQ1MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwci5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3Rh Y2Nlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxh bi5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk5OCw2ICs5OTksOSBAQCBFeGVjSW5pdEV4 cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQlTZXNzaW9uVmFyaWFi bGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBOVUxMOwogCQkJCQkJCVNlc3Npb25WYXJp YWJsZVZhbHVlICp2YXI7CiAKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0 Q2hlY2socGFyYW0tPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCQkJIHBhcmFtLT5wYXJhbXZh cmZlbmNlZCk7CisKIAkJCQkJCQlpZiAoc3RhdGUtPnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5z dGF0ZSkKIAkJCQkJCQl7CiAJCQkJCQkJCWVzX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBh cmVudC0+c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3BpLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwppbmRleCBlY2Iy ZTRjY2FhMS4uNGNlNmJjNWYyOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3Nw aS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC01OTAsNiArNTkwLDE0IEBA IFNQSV9pbnNpZGVfbm9uYXRvbWljX2NvbnRleHQodm9pZCkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAor LyoKKyAqIEFyZSB3ZSBleGVjdXRlZCBpbnNpZGUgYSBTUEk/CisgKi8KK2Jvb2wKK1NQSV9pbnNp ZGVfc3BpX2NvbnRleHQodm9pZCkKK3sKKwlyZXR1cm4gKF9TUElfY3VycmVudCAhPSBOVUxMKTsK K30KIAogLyogUGFyc2UsIHBsYW4sIGFuZCBleGVjdXRlIGEgcXVlcnkgc3RyaW5nICovCiBpbnQK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNGY5Njc4OGQxZGIuLjliM2Q4NDhh ZDk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtNDAsNiArNDAsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgorI2luY2x1ZGUgImNvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3VzZXIuaCIK QEAgLTQyMyw2ICs0MjQsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRy eSBkZWJ1Z19sb2dpY2FsX3JlcGxpY2F0aW9uX3N0cmVhbWluZ19vcHRpb24KIAl7TlVMTCwgMCwg ZmFsc2V9CiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IHNlc3Np b25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkX29wdGlvbnNbXSA9IHsKKwl7Im5v bmUiLCBTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORSwgZmFsc2V9 LAorCXsiYWxsIiwgU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJEX0FMTCwg ZmFsc2V9LAorCXsibm9zcGkiLCBTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VB UkRfTk9TUEksIGZhbHNlfSwKKwl7TlVMTCwgMCwgZmFsc2V9Cit9OworCiBTdGF0aWNBc3NlcnRE ZWNsKGxlbmd0aG9mKHNzbF9wcm90b2NvbF92ZXJzaW9uc19pbmZvKSA9PSAoUEdfVExTMV8zX1ZF UlNJT04gKyAyKSwKIAkJCQkgImFycmF5IGxlbmd0aCBtaXNtYXRjaCIpOwogCkBAIC01MjQ0LDYg KzUyNTIsMTcgQEAgc3RydWN0IGNvbmZpZ19lbnVtIENvbmZpZ3VyZU5hbWVzRW51bVtdID0KIAkJ TlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX2NvbnRleHRfZ3VhcmQiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAor CQkJZ2V0dGV4dF9ub29wKCJDaG9vc2VzIHRoZSBjb250ZXh0IHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIHNob3VsZCBiZSB1c2VkIGluc2lkZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkLAorCQlTRVNTSU9OVkFSSUFC TEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORSwgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX2NvbnRleHRfZ3VhcmRfb3B0aW9ucywKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwog CS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5VTEx9 LCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggNDcwNDFjYmU4MGIuLmMzMDYyYjIyOTE1 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC03MTgsNiArNzE4LDcgQEAKICNzZXNzaW9uX3JlcGxpY2F0aW9uX3JvbGUgPSAnb3JpZ2luJwog I3Nlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gb2ZmCiAjc2Vzc2lvbl92YXJp YWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBvZmYKKyNzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCA9ICdub25lJwogI3N0YXRlbWVudF90aW1lb3V0ID0gMAkJ CQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI3RyYW5zYWN0aW9uX3RpbWVvdXQg PSAwCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICNsb2NrX3RpbWVvdXQgPSAw CQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMDdkODAwYmNjMDEuLjA2Y2U5NjQwMDg1IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0zMSw1ICszMSwyMSBAQCBleHRl cm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQs IFBhcmFtTGlzdEluZm8gcGFyYQogCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYs IFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwogCiBleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJs ZXModm9pZCk7CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0Q2hl Y2soT2lkIHZhcmlkLCBib29sIGlzX2ZlbmNlZCk7CisKKy8qCisgKiBTcGVjaWZ5IHRoZSBkeW5h bWljIGNvbnRleHQgd2hlcmUgdmFyaWFibGUgZmVuY2UgaXMgcmVxdWlyZWQKKyAqLwordHlwZWRl ZiBlbnVtIFNlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRHdWFyZAoreworCS8qIERpc2Fi bGUgZmVuY2UgdXNhZ2UgY29udGV4dCBndWFyZCAqLworCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVO Q0VfQ09OVEVYVF9HVUFSRF9OT05FLAorCS8qIEVuYWJsZSBmZW5jZSB1c2FnZSBjb250ZXh0IGd1 YXJkIGV2ZXJ5d2hlcmUgKi8KKwlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VB UkRfQUxMLAorCS8qIEVuYWJsZSBmZW5jZSB1c2FnZSBjb250ZXh0IGd1YXJkIHdoZW4gU1BJIGlz IG5vdCB1c2VkICovCisJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJEX05P U1BJLAorfSBTZXNzaW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0R3VhcmQ7CisKK2V4dGVybiBQ R0RMTElNUE9SVCBpbnQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQ7 CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3BpLmggYi9zcmMv aW5jbHVkZS9leGVjdXRvci9zcGkuaAppbmRleCBkMDY0ZDFhOWI3Ni4uNDY5MGE5NWYzOWEgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3NwaS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL3NwaS5oCkBAIC0yMDMsNSArMjAzLDYgQEAgZXh0ZXJuIHZvaWQgU1BJX3JvbGxiYWNr X2FuZF9jaGFpbih2b2lkKTsKIGV4dGVybiB2b2lkIEF0RU9YYWN0X1NQSShib29sIGlzQ29tbWl0 KTsKIGV4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1NQSShib29sIGlzQ29tbWl0LCBTdWJUcmFuc2Fj dGlvbklkIG15U3ViaWQpOwogZXh0ZXJuIGJvb2wgU1BJX2luc2lkZV9ub25hdG9taWNfY29udGV4 dCh2b2lkKTsKK2V4dGVybiBib29sIFNQSV9pbnNpZGVfc3BpX2NvbnRleHQodm9pZCk7CiAKICNl bmRpZgkJCQkJCQkvKiBTUElfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCAxNzRmOTE0MGRjZi4uMzA5YzNmMzY5OTggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0x OTk2LDMgKzE5OTYsOTMgQEAgRFJPUCBTQ0hFTUEgdGVzdHZhcjsKIFNFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBERUZBVUxUOwogU0VUIHNlc3Npb25fdmFyaWFibGVz X3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CiBTRVQgc2VhcmNoX3BhdGggVE8g REVGQVVMVDsKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3Vh cmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB2YXJ0ZXN0X3Rh YjEoYSBpbnQpOworTEVUIHZhcjEgPSAyMDsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfdGFiMSBWQUxV RVMoMjApOworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIFRP ICdub25lJzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOwor IHZhcjEgfCB2YXIxIAorLS0tLS0tKy0tLS0tLQorICAgMjAgfCAgIDIwCisoMSByb3cpCisKK0RP ICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEg V0hFUkUgYSA9IHZhcjEgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEg PSB0OworICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFy MSkgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJM RSh2YXIxKSA9IHQ7CitFTkQ7CiskJDsKK05PVElDRTogIDIwIHQKK05PVElDRTogIDIwIHQKK1NF VCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnYWxsJzsKKy0t IHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CitFUlJPUjogIHNlc3Np b24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVu Y2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9u IHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkg Zm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCistLSBzaG91bGQgZmFpbAorRE8gJCQKK0RFQ0xBUkUg dCBpbnQ7CitCRUdJTgorICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFy MSBJTlRPIHQ7CitFTkQ7CiskJDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZh cjEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZQorREVUQUlMOiAgVGhlcmUgaXMg YSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUuCitISU5UOiAgVXNl IHZhcmlhYmxlIGZlbmNlICJWQVJJQUJMRSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxl Ii4KK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBX SEVSRSBhID0gdmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUg NCBhdCBTUUwgc3RhdGVtZW50CistLSBzaG91bGQgZmFpbAorRE8gJCQKK0RFQ0xBUkUgdCBpbnQg REVGQVVMVCAyMDsKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7 CitFTkQ7CiskJDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG5v dCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZQorREVUQUlMOiAgVGhlcmUgaXMgYSByaXNrIG9m IHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUuCitISU5UOiAgVXNlIHZhcmlhYmxl IGZlbmNlICJWQVJJQUJMRSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlIi4KK0NPTlRF WFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5l X2NvZGVfYmxvY2sgbGluZSA0IGF0IFJBSVNFCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJ QUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSk7CisgdmFyMSB8IHZhcjEgCistLS0tLS0rLS0tLS0t CisgICAyMCB8ICAgMjAKKygxIHJvdykKKworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgor ICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkgSU5U TyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIx KSA9IHQ7CitFTkQ7CiskJDsKK05PVElDRTogIDIwIHQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnbm9zcGknOworLS0gc2hvdWxkIGZhaWwKK1NFTEVD VCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZQorREVUQUlMOiAgVGhlcmUg aXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUuCitISU5UOiAg VXNlIHZhcmlhYmxlIGZlbmNlICJWQVJJQUJMRSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlh YmxlIi4KKy0tIHNob3VsZCBiZSBvaworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBT RUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CisgIFJBSVNF IE5PVElDRSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90 YWIxIFdIRVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAl JywgVkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworTk9USUNF OiAgMjAgdAorTk9USUNFOiAgMjAgdAorU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9j b250ZXh0X2d1YXJkIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxF IHZhcnRlc3RfdGFiMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAppbmRleCAxNzI5MThiNjAzYy4uYzQ5Y2VlZDMzZTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEzNzYsMyArMTM3Niw3NiBAQCBEUk9QIFNDSEVN QSB0ZXN0dmFyOwogU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIERF RkFVTFQ7CiBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8g REVGQVVMVDsKIFNFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOworCistLSB0ZXN0IHNlc3Npb25f dmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDUkVBVEUgVEFCTEUgdmFydGVzdF90YWIxKGEgaW50KTsKKworTEVUIHZhcjEgPSAy MDsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfdGFiMSBWQUxVRVMoMjApOworCitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ25vbmUnOworCistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKK0RPICQkCitERUNMQVJFIHQgaW50 OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5U TyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0OworICBTRUxFQ1QgYSBG Uk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkgSU5UTyB0OworICBSQUlT RSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKSA9IHQ7CitFTkQ7 CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIFRP ICdhbGwnOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOwor CistLSBzaG91bGQgZmFpbAorRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1Qg YSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CitFTkQ7CiskJDsKKwor LS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50IERFRkFVTFQgMjA7CitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0OworRU5EOworJCQ7CisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKTsKK0RPICQk CitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hF UkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCBWQVJJ QUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7CisKK1NFVCBzZXNzaW9u X3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnbm9zcGknOworCistLSBzaG91 bGQgZmFpbAorU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworCistLSBzaG91bGQgYmUgb2sK K0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3Rh YjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZh cjEgPSB0OworICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUo dmFyMSkgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJ QUJMRSh2YXIxKSA9IHQ7CitFTkQ7CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9m ZW5jZV9jb250ZXh0X2d1YXJkIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVEFCTEUgdmFydGVzdF90YWIxOwotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250106-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg8814 RnJvbSAzM2Q3YmJiYmMwYzVkYzhkNjc0NzUwNjUxNjQzY2Y0MTEzZGNmOTdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIyXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggMWE1NWZhNTk1MWQuLjY1ZjE5NTk4YzJmIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCkBAIC0xMDg0MCw2ICsxMDg0MCw3MSBAQCBERVRBSUw6ICBTZXNzaW9uIHZhcmlh YmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQg cgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJk IiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5n X2d1YXJkPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K KyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGEgc2Vz c2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyIGlzIHVzZWQKKyAgICAgICBpbnNpZGUgYSBxdWVyeSB3 aXRob3V0IHZhcmlhYmxlIGZlbmNlLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVy YWw+LgorICAgICAgIFRoZSB3YXJuaW5nIGlzIHJhaXNlZCBvbmx5IHdoZW4gdmFyaWFibGUgaXMg dXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuCisgICAgICAgY29sbGlzaW9ucyB3aXRoIGNvbHVtbiBu YW1lcyBpcyBwb3NzaWJsZS4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBmb28oYSBp bnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7CitDUkVBVEUgVkFSSUFCTEUgYiBpbnQ7 CitMRVQgYiA9IDEwMDsKK1NFTEVDVCBhLCBiIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KKyBhICB8ICBiICAKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEgcm93KQor PC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2Vf ZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBvbjsKK1NFTEVDVCBhLCBiIEZST00gZm9vOworPC9wcm9n cmFtbGlzdGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJiIiBp cyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJP TSBmb287CisgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBUaGUgY29sbGlzaW9uIG9mIHNl c3Npb24gdmFyaWFibGUnIG5hbWVzIGFuZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuCisgYSAg fCAgYiAgCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwvc2NyZWVuPgorCis8cHJv Z3JhbWxpc3Rpbmc+CitTRUxFQ1QgYSwgVkFSSUFCTEUoYikgRlJPTSBmb287Cis8L3Byb2dyYW1s aXN0aW5nPgorCis8c2NyZWVuPgorIGEgIHwgIGIgIAorLS0tLSstLS0tLQorIDEwIHwgMTAwCiso MSByb3cpCis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNlIGxvZyBzaXplLCBzbyBp dCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuIFVubGVzcyBhbm90aGVyIGNvbGxpc2lv biByZXNvbHV0aW9uIHRlY2huaXF1ZSBpcyB1c2VkCisgICAgICAgIChkZWRpY2F0ZWQgc2NoZW1h IG9yIHVzaW5nIHByZWZpeGVzIGxpa2UgPGxpdGVyYWw+XzwvbGl0ZXJhbD4pLAorICAgICAgICB0 aGUgdXNlIG9mIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCwg YW5kIHRoaXMKKyAgICAgICAgd2FybmluZyBzaG91bGQgYmUgZW5hYmxlZC4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9 InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFu ZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikK ICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0 YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCBhZDEyZTM2 NDM2My4uZmUzZjFjY2EwMDYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MTEsNiArNTQxMSwyMSBAQCBTRUxFQ1QgY3Vy cmVudF91c2VyX2lkOwogICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0 IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQogICAgIHNoYWRvd2VkIHZhcmlhYmxl cyBvciB1c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+ PGZpcnN0dGVybT5WYXJpYWJsZSBmZW5jZTwvZmlyc3R0ZXJtPiBpcyBzcGVjaWFsIHN5bnRheCBm b3Igc2Vzc2lvbgorICAgIHZhcmlhYmxlIGlkZW50aWZpZXIuIE9ubHkgbmFtZSBvciBxdWFsaWZp ZWQgbmFtZSBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlCisgICAgdmFyaWFibGUgZmVuY2UsIGFuZCB0 aGlzIG5hbWUgaXMgdXNlZCBhcyBvbmx5IHNlc3Npb24gdmFyaWFibGUgaWRlbnRpZmllci4KKzxw cm9ncmFtbGlzdGluZz4KK1NFTEVDVCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOworPC9wcm9n cmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdoZW4gdGhlcmUgaXMgYSBy aXNrIG9mIHBvc3NpYmxlIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJpYWJsZSBpZGVudGlmaWVycwor ICAgYW5kIGNvbHVtbiBuYW1lcywgdGhlbiB1c2luZyB2YXJpYWJsZSBmZW5jZSBzeW50YXggY2Fu IGJlIHJlY29tbWVuZGVkLgorICAgVXNhZ2Ugc2Vzc2lvbiB2YXJpYWJsZSB3aXRob3V0IHZhcmlh YmxlIGZlbmNlIGNhbiBiZSBkZXRlY3RlZCBieQorICAgd2FybmluZyA8eHJlZiBsaW5rZW5kPSJn dWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3VhcmQiLz4uCisgIDwvcGFy YT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCmluZGV4IDU2YThmZTVkNzRmLi4zN2I5MWU1MDc5NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK QEAgLTE2NjIsNiArMTY2Miw5IEBAIGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQlj YXNlIFRfUGFyYW1SZWY6CiAJCQlsb2MgPSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2Nh dGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29u c3QgVmFyaWFibGVGZW5jZSAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBU X0FfQ29uc3Q6CiAJCQlsb2MgPSAoKGNvbnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwog CQkJYnJlYWs7CkBAIC00NjgxLDYgKzQ2ODQsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtl cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJ CWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFp biBub3RoaW5nIGludGVyZXN0aW5nICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWco bm9kZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggN2U3MTU4YWMwOTkuLjY3NGU4YWYyNTZjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTUxNyw3ICs1MTcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUg PG5vZGU+CWRlZl9hcmcgY29sdW1uRWxlbSB3aGVyZV9jbGF1c2Ugd2hlcmVfb3JfY3VycmVudF9j bGF1c2UKIAkJCQlhX2V4cHIgYl9leHByIGNfZXhwciBBZXhwckNvbnN0IGluZGlyZWN0aW9uX2Vs IG9wdF9zbGljZV9ib3VuZAogCQkJCWNvbHVtbnJlZiBpbl9leHByIGhhdmluZ19jbGF1c2UgZnVu Y190YWJsZSB4bWx0YWJsZSBhcnJheV9leHByCi0JCQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0b3Jf ZGVmX2FyZworCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcgdmFyaWFibGVfZmVu Y2UKICV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdAogJXR5cGUgPGxpc3Q+ CXJvd3Nmcm9tX2l0ZW0gcm93c2Zyb21fbGlzdCBvcHRfY29sX2RlZl9saXN0CiAldHlwZSA8Ym9v bGVhbj4gb3B0X29yZGluYWxpdHkgb3B0X3dpdGhvdXRfb3ZlcmxhcHMKQEAgLTg3NCw3ICs4NzQs NyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogICovCiAlbm9uYXNzb2MJVU5CT1VOREVEIE5F U1RFRCAvKiBpZGVhbGx5IHdvdWxkIGhhdmUgc2FtZSBwcmVjZWRlbmNlIGFzIElERU5UICovCiAl bm9uYXNzb2MJSURFTlQgUEFSVElUSU9OIFJBTkdFIFJPV1MgR1JPVVBTIFBSRUNFRElORyBGT0xM T1dJTkcgQ1VCRSBST0xMVVAKLQkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJ VEggV0lUSE9VVCBQQVRICisJCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRI IFdJVEhPVVQgUEFUSCBWQVJJQUJMRQogJWxlZnQJCU9wIE9QRVJBVE9SCQkvKiBtdWx0aS1jaGFy YWN0ZXIgb3BzIGFuZCB1c2VyLWRlZmluZWQgb3BlcmF0b3JzICovCiAlbGVmdAkJJysnICctJwog JWxlZnQJCScqJyAnLycgJyUnCkBAIC0xNTU5Myw2ICsxNTU5MywxOSBAQCBjX2V4cHI6CQljb2x1 bW5yZWYJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCQllbHNlCiAJCQkJCQkkJCA9ICQyOwogCQkJ CX0KKwkJCXwgdmFyaWFibGVfZmVuY2Ugb3B0X2luZGlyZWN0aW9uCisJCQkJeworCQkJCQlpZiAo JDIpCisJCQkJCXsKKwkJCQkJCUFfSW5kaXJlY3Rpb24gKm4gPSBtYWtlTm9kZShBX0luZGlyZWN0 aW9uKTsKKworCQkJCQkJbi0+YXJnID0gKE5vZGUgKikgJDE7CisJCQkJCQluLT5pbmRpcmVjdGlv biA9IGNoZWNrX2luZGlyZWN0aW9uKCQyLCB5eXNjYW5uZXIpOworCQkJCQkJJCQgPSAoTm9kZSAq KSBuOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCSQkID0gJDE7CisJCQkJfQogCQkJfCBjYXNl X2V4cHIKIAkJCQl7ICQkID0gJDE7IH0KIAkJCXwgZnVuY19leHByCkBAIC0xNjk3OSw2ICsxNjk5 MiwxNyBAQCBjYXNlX2FyZzoJYV9leHByCQkJCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQl8IC8qRU1Q VFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwogCit2YXJpYWJsZV9mZW5jZToKKwkJCVZB UklBQkxFICcoJyBhbnlfbmFtZSAnKScKKwkJCQl7CisJCQkJCVZhcmlhYmxlRmVuY2UgKnZmID0g bWFrZU5vZGUoVmFyaWFibGVGZW5jZSk7CisKKwkJCQkJdmYtPnZhcm5hbWUgPSAkMzsKKwkJCQkJ dmYtPmxvY2F0aW9uID0gQDM7CisJCQkJCSQkID0gKE5vZGUgKikgdmY7CisJCQkJfQorCQk7CisK IGNvbHVtbnJlZjoJQ29sSWQKIAkJCQl7CiAJCQkJCSQkID0gbWFrZUNvbHVtblJlZigkMSwgTklM LCBAMSwgeXlzY2FubmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDRlNzg1MjljNDBk Li5iODVhOTdjYTc4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00Niw2ICs0Niw3IEBA CiAvKiBHVUMgcGFyYW1ldGVycyAqLwogYm9vbAkJVHJhbnNmb3JtX251bGxfZXF1YWxzID0gZmFs c2U7CiBib29sCQlzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IGZhbHNlOwor Ym9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBmYWxzZTsK IAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpleHByKTsKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdo b2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRp cmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMp Owogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRl LCBDb2xsYXRlQ2xhdXNlICpjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1WYXJpYWJsZUZlbmNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFyaWFibGVGZW5jZSAqdmYpOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybUpzb25PYmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CQkJCUpzb25PYmplY3RDb25zdHJ1Y3RvciAqY3Rvcik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3Jt SnNvbkFycmF5Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTEyLDcgKzExNCw3 IEBAIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKIHN0YXRp YyBOb2RlICptYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCQkJICBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAot CQkJCQkJCQkJICBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKKwkJCQkJCQkJCSAgY2hh ciAqYXR0cm5hbWUsIGJvb2wgZmVuY2VkLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC0zNzcs NiArMzc5LDEwIEBAIHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqZXhwcikKIAkJCXJlc3VsdCA9IHRyYW5zZm9ybUpzb25GdW5jRXhwcihwc3RhdGUsIChKc29u RnVuY0V4cHIgKikgZXhwcik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfVmFyaWFibGVGZW5jZToK KwkJCXJlc3VsdCA9IHRyYW5zZm9ybVZhcmlhYmxlRmVuY2UocHN0YXRlLCAoVmFyaWFibGVGZW5j ZSAqKSBleHByKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGQgbm90IHJl YWNoIGhlcmUgKi8KIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIs IChpbnQpIG5vZGVUYWcoZXhwcikpOwpAQCAtMTAyOCw3ICsxMDM0LDIwIEBAIHRyYW5zZm9ybUNv bHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAogCQkJCW5vZGUg PSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAogCQkJCQkJCQkJCQkJdmFyaWQsIHR5 cGlkLCB0eXBtb2QsIGNvbGxpZCwKLQkJCQkJCQkJCQkJCWF0dHJuYW1lLCBjcmVmLT5sb2NhdGlv bik7CisJCQkJCQkJCQkJCQlhdHRybmFtZSwgZmFsc2UsIGNyZWYtPmxvY2F0aW9uKTsKKworCQkJ CS8qCisJCQkJICogVGhlIHZhcmlhYmxlIGlzIG5vdCBpbnNpZGUgdmFyaWFibGUncyBmZW5jZSwg c28gcmFpc2Ugd2FybmluZworCQkJCSAqIHdoZW4gdmFyaWFibGUgZmVuY2UgZ3VhcmQgaXMgYWN0 aXZlIGFuZCB0aGUgcXVlcnkgaGFzIEZST00KKwkJCQkgKiBjbGF1c2UuCisJCQkJICovCisJCQkJ aWYgKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkICYmIHBzdGF0ZS0+ cF9ydGFibGUpCisJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIl c1wiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZSIsCisJCQkJCQkJCQlOYW1lTGlz dFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCSBlcnJkZXRhaWwoIlRoZSBjb2xsaXNp b24gb2Ygc2Vzc2lvbiB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJs ZS4iKSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24p KSk7CiAJCQl9CiAJCX0KIAl9CkBAIC0xMDcxLDcgKzEwOTAsNyBAQCB0cmFuc2Zvcm1Db2x1bW5S ZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiBzdGF0aWMgTm9kZSAqCiBt YWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIE9pZCB2 YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCi0JCQkJCQkgY2hhciAq YXR0cm5hbWUsIGludCBsb2NhdGlvbikKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgYm9vbCBmZW5j ZWQsIGludCBsb2NhdGlvbikKIHsKIAlQYXJhbQkgICAqcGFyYW07CiAKQEAgLTEwNzksNiArMTA5 OCw3IEBAIG1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAKIAlw YXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CiAJcGFyYW0tPnBhcmFtdmFyaWQgPSB2 YXJpZDsKKwlwYXJhbS0+cGFyYW12YXJmZW5jZWQgPSBmZW5jZWQ7CiAJcGFyYW0tPnBhcmFtdHlw ZSA9IHR5cGlkOwogCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKIAlwYXJhbS0+cGFyYW1j b2xsaWQgPSBjb2xsaWQ7CkBAIC0xMTU3LDYgKzExNzcsNTQgQEAgdHJhbnNmb3JtUGFyYW1SZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIAlyZXR1cm4gcmVzdWx0OwogfQog CitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgVmFyaWFibGVGZW5jZSAqdmYpCit7CisJTm9kZQkgICAqcmVzdWx0OworCU9pZAkJCXZhcmlk ID0gSW52YWxpZE9pZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3Vu aXF1ZTsKKworCS8qIFZhcmlhYmxlRmVuY2UgY2FuIGJlIHVzZWQgb25seSBpbiBjb250ZXh0IHdo ZW4gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAoIWV4cHJfa2luZF9hbGxvd3Nfc2Vz c2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJz ZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwkvKiB0YWtlcyBh biBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwl2YXJpZCA9IElk ZW50aWZ5VmFyaWFibGUodmYtPnZhcm5hbWUsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNl KTsKKworCWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSByZWZlcmVuY2UgXCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5n KHZmLT52YXJuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2Nh dGlvbikpKTsKKworCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwl7CisJCU9pZAkJCXR5cGlkOwor CQlpbnQzMgkJdHlwbW9kOworCQlPaWQJCQljb2xsaWQ7CisKKwkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJ CQkmY29sbGlkKTsKKworCQlyZXN1bHQgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRl LAorCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJYXR0 cm5hbWUsIHRydWUsIHZmLT5sb2NhdGlvbik7CisJfQorCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyh2Zi0+dmFybmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+ bG9jYXRpb24pKSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKiBUZXN0IHdoZXRoZXIgYW4g YV9leHByIGlzIGEgcGxhaW4gTlVMTCBjb25zdGFudCBvciBub3QgKi8KIHN0YXRpYyBib29sCiBl eHBySXNOdWxsQ29uc3RhbnQoTm9kZSAqYXJnKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmlu ZGV4IDkzOTE1MDMxYmU4Li4zMDBlYTM0ODc4OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YwpAQCAtMjAzNCw2ICsyMDM0LDEzIEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpub2Rl LCBjaGFyICoqbmFtZSkKIAkJCQkJCSAoaW50KSAoKEpzb25GdW5jRXhwciAqKSBub2RlKS0+b3Ap OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJeworCQkJCS8q IHJldHVybiBsYXN0IGZpZWxkIG5hbWUgKi8KKwkJCQkqbmFtZSA9IHN0clZhbChsbGFzdCgoKFZh cmlhYmxlRmVuY2UgKikgbm9kZSktPnZhcm5hbWUpKTsKKwkJCQlyZXR1cm4gMjsKKwkJCX0KKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCmluZGV4IDhkM2QzYzljNzU3Li5lYmI0MWUzYjVlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYwpAQCAtODYzMCw4ICs4NjMwLDE2IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0gKnBhcmFt LCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJLyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8g c2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCiAJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1f VkFSSUFCTEUpCiAJewotCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKLQkJ CQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsK KwkJaWYgKHBhcmFtLT5wYXJhbXZhcmZlbmNlZCkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mbyhj b250ZXh0LT5idWYsICJWQVJJQUJMRSglcykiLAorCQkJCQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3Zh cmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFw cGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJCSBnZW5lcmF0ZV9zZXNz aW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJfQogCQlyZXR1cm47CiAJ fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDc5NDdhODJkMWY2Li40Zjk2 Nzg4ZDFkYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MTQsNiArMTYx NCwxNSBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxz ZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX3Vz ZV9mZW5jZV93YXJuaW5nX2d1YXJkIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVO VCwKKwkJCWdldHRleHRfbm9vcCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gdmFyaWFibGUgaXMgbm90 IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQsCisJCWZhbHNlLAorCQlOVUxMLCBO VUxMLCBOVUxMCisJfSwKIAl7CiAJCXsiZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQ R0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRz IHRoZSBkZWZhdWx0IHJlYWQtb25seSBzdGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBkMThh MTc1NDRhNi4uNDcwNDFjYmU4MGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKQEAgLTcxNyw2ICs3MTcsNyBAQAogI2RlZmF1bHRfdHJhbnNhY3Rp b25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Npb25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmlnaW4n CiAjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBvZmYKKyNzZXNzaW9uX3Zh cmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCA9IG9mZgogI3N0YXRlbWVudF90aW1lb3V0 ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI3RyYW5zYWN0aW9uX3Rp bWVvdXQgPSAwCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICNsb2NrX3RpbWVv dXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKaW5kZXggOTMyNDFiZDU1YjguLmY4OGVkYzBkNDE4IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC0zMTIsNiArMzEyLDE2IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtUmVmCiAJUGFyc2VM b2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogfSBQ YXJhbVJlZjsKIAorLyoKKyAqIFZhcmlhYmxlRmVuY2UgLSBlbnN1cmUgc28gZmllbGRzIHdpbGwg YmUgaW50ZXJwcmV0dGVkIGFzIGEgdmFyaWFibGUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVmFyaWFi bGVGZW5jZQoreworCU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdmFybmFtZTsJCS8qIHZhcmlh YmxlIG5hbWUgKFN0cmluZyBub2RlcykgKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2Vu IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCit9IFZhcmlhYmxlRmVuY2U7CisKIC8qCiAg KiBBX0V4cHIgLSBpbmZpeCwgcHJlZml4LCBhbmQgcG9zdGZpeCBleHByZXNzaW9ucwogICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGMxMWQxOTVmMTg5Li45NDY2YjMxMTcxMCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKQEAgLTM5NCw2ICszOTQsOCBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCSAq IHBhcmFtIGlzIHVzZWQganVzdCBmb3IgZXhlY3V0aW9uIG9mIFVQREFURSBvcGVyYXRpb24uCiAJ ICovCiAJYm9vbAkJcGFyYW1iYXNlbm9kZTsKKwkvKiB0cnVlIHdoZW4gdmFyaWFibGUgaXMgdXNl ZCBpbnNpZGUgYW4gZmVuY2UgKi8KKwlib29sCQlwYXJhbXZhcmZlbmNlZDsKIAkvKiB0b2tlbiBs b2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBQYXJh bTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IGQyMjA5MDcwMTgxLi41YmRlNDM3NThkMSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xOCw2ICsxOCw3IEBACiAvKiBHVUMgcGFyYW1l dGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgVHJhbnNmb3JtX251bGxfZXF1YWxzOwog ZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmc7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf d2FybmluZ19ndWFyZDsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBiNTUxYmQw OGI1ZC4uMTc0ZjkxNDBkY2YgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXMub3V0CkBAIC0xOTM3LDMgKzE5MzcsNjIgQEAgU0VUIHNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERST1AgVEFCTEUgcHVibGljLnh4dGFi OwogRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g c2Vzc2lvbiB2YXJpYWJsZSB4eHRhYi5hdmFyCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3Vz ZV9mZW5jZV93YXJuaW5nX2d1YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gb247CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3Vh cmQgVE8gb247CitDUkVBVEUgU0NIRU1BIHRlc3R2YXI7CitTRVQgc2VhcmNoX3BhdGggVE8gJ3Rl c3R2YXInOworQ1JFQVRFIFZBUklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKK0NSRUFURSBU QUJMRSB0ZXN0X3RhYmxlKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZB TFVFUygyMCwgMjApOworLS0gbm8gd2FybmluZworU0VMRUNUIGE7CisgYSAgCistLS0tCisgMTAK KygxIHJvdykKKworLS0gd2FybmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAorU0VMRUNUIGEsIGIg RlJPTSB0ZXN0X3RhYmxlOworV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIHNoYWRv d2VkCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKyAgICAgICAgICAgICAg IF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5z LCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNh bWUgbmFtZS4KKyBhICB8IGIgIAorLS0tLSstLS0tCisgMjAgfCAyMAorKDEgcm93KQorCistLSBu byB3YXJuaW5nCitTRUxFQ1QgdmFyaWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworIGEgIAorLS0t LQorIDEwCisoMSByb3cpCisKK0FMVEVSIFRBQkxFIHRlc3RfdGFibGUgRFJPUCBDT0xVTU4gYTsK Ky0tIHdhcm5pbmcgLSB2YXJpYWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VMRUNUIGEsIGIgRlJP TSB0ZXN0X3RhYmxlOworV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIG5vdCB1c2Vk IGluc2lkZSB2YXJpYWJsZSBmZW5jZQorTElORSAxOiBTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFi bGU7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBUaGUgY29sbGlzaW9uIG9mIHNlc3Npb24g dmFyaWFibGUnIG5hbWVzIGFuZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuCisgYSAgfCBiICAK Ky0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworLS0gbm8gd2FybmluZworU0VMRUNUIHZh cmlhYmxlKGEpLCBiIEZST00gdGVzdF90YWJsZTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAg fCAyMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxFIHRlc3RfdGFibGU7 CitEUk9QIFNDSEVNQSB0ZXN0dmFyOworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nIFRPIERFRkFVTFQ7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5p bmdfZ3VhcmQgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDU1Y2MzY2NjYzMyLi4x NzI5MThiNjAzYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bApAQCAtMTMzNSwzICsxMzM1LDQ0IEBAIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvZmY7CiAKIERST1AgVEFCTEUgcHVibGljLnh4dGFiOwogRFJPUCBTQ0hFTUEg eHh0YWIgQ0FTQ0FERTsKKworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIG9uOwor CitDUkVBVEUgU0NIRU1BIHRlc3R2YXI7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyAndGVzdHZhcic7 CisKK0NSRUFURSBWQVJJQUJMRSBhIEFTIGludDsKK0xFVCBhID0gMTA7CisKK0NSRUFURSBUQUJM RSB0ZXN0X3RhYmxlKGEgaW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUgVkFM VUVTKDIwLCAyMCk7CisKKy0tIG5vIHdhcm5pbmcKK1NFTEVDVCBhOworCistLSB3YXJuaW5nIHZh cmlhYmxlIGlzIHNoYWRvd2VkCitTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisKKy0tIG5v IHdhcm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSBGUk9NIHRlc3RfdGFibGU7CisKK0FMVEVSIFRB QkxFIHRlc3RfdGFibGUgRFJPUCBDT0xVTU4gYTsKKworLS0gd2FybmluZyAtIHZhcmlhYmxlIGZl bmNlIGlzIG5vdCB1c2VkCitTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisKKy0tIG5vIHdh cm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSwgYiBGUk9NIHRlc3RfdGFibGU7CisKK0RST1AgVkFS SUFCTEUgYTsKK0RST1AgVEFCTEUgdGVzdF90YWJsZTsKKworRFJPUCBTQ0hFTUEgdGVzdHZhcjsK KworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIERFRkFVTFQ7CitT RVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gREVGQVVMVDsK K1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250106-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg8h15 RnJvbSBlYjI2Y2RjNmI4ZTVjZGRkY2Y1OGYzMzIyNTBiNDI0MDJkM2FmNzEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIyXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IGZiZGQ2 Y2U1NzQwLi4xYTU1ZmE1OTUxZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTA3ODAsNiArMTA3ODAsNjYgQEAg ZHluYW1pY19saWJyYXJ5X3BhdGggPSAnQzpcdG9vbHNccG9zdGdyZXNxbDtIOlxteV9wcm9qZWN0 XGxpYjskbGliZGlyJwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmlndWl0eS13 YXJuaW5nIiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAg ICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n PC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5k ZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBXaGVuIG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50aWZpZXIg aW4gYSBxdWVyeSBjb3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4gaWRlbnRp Zmllciwgcm91dGluZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFibGUgaWRl bnRpZmllci4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAgICA8 L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBz aGFkb3dlZCBieSBjb2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAgICAgIGlz IGFuIGV4cGVjdGVkIGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMgc2hvdWxk bid0IGVycm9yIG91dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJpYWJsZSwg c28gc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBpZiBhbiBp ZGVudGlmaWVyIGlzIGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJlbmNlZCB1 c2luZworICAgICAgICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkgcG9zc2li aWxpdHkgZm9yIGEgY29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBvdGhlciBk YXRhYmFzZSBvYmplY3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1lcykuCisg ICAgICAgIFRoZSB3YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8dmFybmFt ZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAgICAgICAg Y2FuIGhlbHAgZmluZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVTKDEw KTsKK0NSRUFURSBWQVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEgRlJPTSBm b287Cis8L3Byb2dyYW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAorKDEgcm93 KQorPC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9ncmFtbGlz dGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBzaGFk b3dlZAorTElORSAxOiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5l J3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4K KyBhCistLS0tCisgMTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNl IGxvZyBzaXplLCBzbyBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBGb3IgdGVz dGluZyBvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0bworICAg ICAgICBlbmFibGUgaXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9 InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFu ZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikK ICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0 YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAxMDBkNGU3 ZmNkOS4uYWQxMmUzNjQzNjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MDAsNiArNTQwMCwxNyBAQCBTRUxFQ1QgY3Vy cmVudF91c2VyX2lkOwogICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBjYW4gdXNlIHRhYmxl IGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKICAgICBibG9jayBsYWJlbHMsIGFu ZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUuCiAgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIFdoZW4gYSBxdWVyeSBjb250YWlucyBpZGVudGlmaWVycyBvciBx dWFsaWZpZWQgaWRlbnRpZmllcnMgdGhhdCBjb3VsZCBiZQorICAgIHVzZWQgYXMgYm90aCBhIHNl c3Npb24gdmFyaWFibGUgaWRlbnRpZmllcnMgYW5kIGFzIGNvbHVtbiBpZGVudGlmaWVyLAorICAg IHRoZW4gdGhlIGNvbHVtbiBpZGVudGlmaWVyIGlzIHByZWZlcnJlZCBldmVyeSB0aW1lLiAgV2Fy bmluZ3MgY2FuIGJlCisgICAgZW1pdHRlZCB3aGVuIHRoaXMgc2l0dWF0aW9uIGhhcHBlbnMgYnkg ZW5hYmxpbmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICBsaW5rZW5kPSJndWMt c2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5pbmciLz4uIFVzZXIgY2FuIGV4cGxpY2l0 bHkKKyAgICBxdWFsaWZ5IHRoZSBzb3VyY2Ugb2JqZWN0IGJ5IHN5bnRheCA8bGl0ZXJhbD50YWJs ZS5jb2x1bW48L2xpdGVyYWw+IG9yCisgICAgPGxpdGVyYWw+c2NoZW1hLnZhcmlhYmxlPC9saXRl cmFsPi4gSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gcmVuYW1lCisgICAgc2hhZG93ZWQg dmFyaWFibGVzIG9yIHVzZSBxdWFsaWZpZWQgbmFtZXMgYWx3YXlzLgorICAgPC9wYXJhPgogICA8 L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CmluZGV4IGFhMDA0MWZmOWQzLi40ZTc4NTI5YzQwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CkBAIC00NSw2ICs0NSw3IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zv cm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKK2Jvb2wJCXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nID0gZmFsc2U7CiAKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CkBAIC05NjAsMTEgKzk2MSw1MSBAQCB0 cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJ CSAqCiAJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIsIGZvby5jIEZST00gZm9vOwogCQkgKgotCQkg KiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4gIFdl IGRvbid0IHRyeSB0bwotCQkgKiBpZGVudGlmeSBhIHZhcmlhYmxlIGlmIHdlIGtub3cgdGhhdCBp dCB3b3VsZCBiZSBzaGFkb3dlZC4KLQkJICogLS0tLS0KKwkJICogSG93ZXZlciwgdGhhdCBpcyB2 ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cgaXQuCisJCSAqCisJCSAqIFdoZW4gc2Vzc2lv bl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgaXMgcmVxdWVzdGVkLCB0aGVuIHdlCisJCSAq IG5lZWQgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSBhbHRob3VnaCB3ZSBrbm93LCBzbyB0aGlzIHZh cmlhYmxlCisJCSAqIHdvdWxkIGJlIHNoYWRvd2VkLgogCQkgKi8KLQkJaWYgKCFub2RlICYmICEo cmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQlpZiAobm9kZSB8fCAocmVs bmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQl7CisJCQkvKgorCQkJICogSW4g dGhpcyBwYXRoIHdlIGp1c3QgdHJ5IChpZiBpdCBpcyB3YW50ZWQpIGRldGVjdCBpZiBzZXNzaW9u CisJCQkgKiB2YXJpYWJsZSBpcyBzaGFkb3dlZC4KKwkJCSAqLworCQkJaWYgKHNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nKQorCQkJeworCQkJCS8qCisJCQkJICogVGhlIEFjY2Vz c1NoYXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkg KiBUaGUgbG9jayB3aWxsIGJlIGtlcHQgZm9yIHRoZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkJCQkg Ki8KKwkJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUs ICZub3RfdW5pcXVlLCB0cnVlKTsKKworCQkJCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCQl7 CisJCQkJCS8qIHRoaXMgcGF0aCB3aWxsIGVuZGluZyBieSBXQVJOSU5HLiBVbmxvY2sgdmFyaWFi bGUgZmlyc3QgKi8KKwkJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklk LCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQkJCQlpZiAobm9kZSkKKwkJCQkJCWVy ZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1O KSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgaXMgc2hhZG93ZWQi LAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJCSBl cnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCBy b3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUg bmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0 aW9uKSkpOworCQkJCQllbHNlCisJCQkJCQkvKiBzZXNzaW9uIHZhcmlhYmxlIGlzIHNoYWRvd2Vk IGJ5IFJURSAqLworCQkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCQkoZXJyY29kZShFUlJD T0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxl IFwiJXMuJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJCQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlcyBvciB0YWJsZSdzIGFsaWFzZXMgd2l0 aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg Y3JlZi0+bG9jYXRpb24pKSk7CisJCQkJfQorCQkJfQorCQl9CisJCWVsc2UKIAkJewogCQkJLyog dGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCiAJCQl2 YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5p cXVlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJs ZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDIyZjE2YTNi NDYyLi43OTQ3YTgyZDFmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2 MDUsNiArMTYwNSwxNSBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10g PQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRF TUVOVCwKKwkJCWdldHRleHRfbm9vcCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gcmVmZXJlbmNlIHRv IGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbWJpZ3VvdXMuIiksCisJCQlOVUxMCisJCX0sCisJCSZz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZywKKwkJZmFsc2UsCisJCU5VTEwsIE5V TEwsIE5VTEwKKwl9LAogCXsKIAkJeyJkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSIsIFBH Q19VU0VSU0VULCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMg dGhlIGRlZmF1bHQgcmVhZC1vbmx5IHN0YXR1cyBvZiBuZXcgdHJhbnNhY3Rpb25zLiIpLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGEyYWM3 NTc1Y2E3Li5kMThhMTc1NDRhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w b3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQpAQCAtNzE2LDYgKzcxNiw3IEBACiAjZGVmYXVsdF90cmFuc2FjdGlv bl9yZWFkX29ubHkgPSBvZmYKICNkZWZhdWx0X3RyYW5zYWN0aW9uX2RlZmVycmFibGUgPSBvZmYK ICNzZXNzaW9uX3JlcGxpY2F0aW9uX3JvbGUgPSAnb3JpZ2luJworI3Nlc3Npb25fdmFyaWFibGVz X2FtYmlndWl0eV93YXJuaW5nID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMgaW4g bWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJCQkj IGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJIyBp biBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmluZGV4 IGVmYmFmZjhlNzEwLi5kMjIwOTA3MDE4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0x Nyw2ICsxNyw3IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQg Ym9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9y bUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJL aW5kKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLm91dAppbmRleCBhYjc3OTkwMDU5Ni4uYTY1MjNmN2FmZTIgMTAw NjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Np b25fdmFyaWFibGUub3V0CkBAIC0zNTQsNiArMzU0LDM5IEBAICQkOwogTk9USUNFOiAgc2Vzc2lv biB2YXJpYWJsZSBpcyAxMDAKIE5PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAogTk9U SUNFOiAgdmFyaWFibGUgaXMgMTAwMAorLS0gYWdhaW50IHdpdGggc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcob24pCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gb247CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIx IGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hvdWxk IGJlIG9rIHdpdGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAt LSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0Ug Tk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOwor CisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBS QUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92 YXIxOworCisgIC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2Fybmlu ZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdz cWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAK K05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAorV0FSTklORzogIHNlc3Npb24gdmFy aWFibGUgInBscGdzcWxfc3ZfdmFyMSIgaXMgc2hhZG93ZWQKK0xJTkUgMTogcGxwZ3NxbF9zdl92 YXIxCisgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dl ZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRz IHdpdGggdGhlIHNhbWUgbmFtZS4KK1FVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCitOT1RJQ0U6ICB2 YXJpYWJsZSBpcyAxMDAwCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb2ZmOwogRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjE7CiAtLSB0aGUgdmFsdWUgc2hv dWxkIG5vdCBiZSBjb3JydXB0ZWQKIENSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsK ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3Zhcmlh YmxlLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl LnNxbAppbmRleCBhM2NjMjY0Y2YzOC4uOWI4ZTkwZTgxZmEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9w bHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTI2MCw2ICsy NjAsMzUgQEAgQkVHSU4KIEVORDsKICQkOwogCistLSBhZ2FpbnQgd2l0aCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyhvbikKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nIFRPIG9uOworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3Nx bF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAg LS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAw MDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsK KyAgUkFJU0UgTk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9z dl92YXIxOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQg MTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxw Z3NxbF9zdl92YXIxOworCisgIC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdp dGggd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMg JScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MTsKIAogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDNjZjQyMTA2NWU3 Li5iNTUxYmQwOGI1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTE0OTIsNiArMTQ5Miw5IEBAIENSRUFURSBUQUJMRSB2YXJ0ZXN0 X2ZvbyhhIGludCwgYiBpbnQpOwogSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIw KSwgKDMwLDQwKTsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVUIHZh cjEgPSAoMTAwLDIwMCk7CistLSBubyB2YXJpYWJsZSBpcyBzaGFkb3dlZCBoZXJlCistLSBubyB3 YXJuaW5nIGV4cGVjdGVkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb247CiAtLSBzaG91bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9v OwogRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIKQEAg LTE1MTcsNiArMTUyMCw3IEBAIFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28g dmFyMTsKICAgICAgMgogKDEgcm93KQogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gb2ZmOwogU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CiBEUk9QIFNDSEVN QSB2YXJ0ZXN0IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2Jq ZWN0cwpAQCAtMTkxMSwzICsxOTE1LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9Q IFZBUklBQkxFIHZhcjEsIHZhcjI7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nCitDUkVBVEUgU0NIRU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2 YXIgaW50OworQ1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5U TyBwdWJsaWMueHh0YWIgVkFMVUVTKDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFp c2Ugd2FybmluZywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsK K1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElO RSAxOiBTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAg IF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5z LCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNh bWUgbmFtZS4KKyBhdmFyIAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0 YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbAppbmRleCAyMzM3MTEzNzgzYi4uNTVjYzNjY2NjMzIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEwNTQsNiArMTA1NCwx MCBAQCBJTlNFUlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjApLCAoMzAsNDApOwogQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF9mb287CiBMRVQgdmFyMSA9ICgxMDAsMjAwKTsK IAorLS0gbm8gdmFyaWFibGUgaXMgc2hhZG93ZWQgaGVyZQorLS0gbm8gd2FybmluZyBleHBlY3Rl ZAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworCiAtLSBz aG91bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogCkBAIC0xMDY2 LDYgKzEwNzAsOCBAQCBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOwogLS0g c2hvdWxkIGJlIG9rCiBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7 CiAKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKIFNF VCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOwogRFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURFOwog CkBAIC0xMzA5LDMgKzEzMTUsMjMgQEAgQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJB Q0s7CiBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0ZXN0 IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1BIHh4dGFi OworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NSRUFURSBUQUJMRSBwdWJs aWMueHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVTKDEp OworCitMRVQgeHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5pbmcsIHNob3cgMQor U0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFCTEUgcHVibGljLnh4dGFi OworRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDcuMQoK --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250106-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg8p16 RnJvbSBhMTFlNDUzYzkzYTA0ZThmZGZkMTNhYmU4NzQ0NWE2NTEyNGRiMzI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjJdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzZS4uYmJj YWUyN2Q0MjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKQEAgLTM1LDcgKzM1LDggQEAgUkVHUkVTU19PUFRT ID0gLS1kYm5hbWU9JChQTF9URVNUREIpCiBSRUdSRVNTID0gcGxwZ3NxbF9hcnJheSBwbHBnc3Fs X2NhY2hlIHBscGdzcWxfY2FsbCBwbHBnc3FsX2NvbnRyb2wgXAogCXBscGdzcWxfY29weSBwbHBn c3FsX2RvbWFpbiBwbHBnc3FsX21pc2MgXAogCXBscGdzcWxfcmVjb3JkIHBscGdzcWxfc2ltcGxl IHBscGdzcWxfdHJhbnNhY3Rpb24gXAotCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxw Z3NxbF92YXJwcm9wcworCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxwZ3NxbF92YXJw cm9wcyBcCisJcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlCiAKICMgd2hlcmUgdG8gZmluZCBnZW5f a2V5d29yZGxpc3QucGwgYW5kIHN1YnNpZGlhcnkgZmlsZXMKIFRPT0xTRElSID0gJCh0b3Bfc3Jj ZGlyKS9zcmMvdG9vbHMKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmFiNzc5OTAwNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwz ODIgQEAKKy0tIHRlc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhciBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKK05PVElDRTogIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgMy4xNDE1OTI2NTM1 ODk3OQorLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CitTRUxFQ1QgcGxwZ3NxbF9z dl92YXIgQVMgInBpX211bHRpcGx5XzIiOworICBwaV9tdWx0aXBseV8yICAgCistLS0tLS0tLS0t LS0tLS0tLS0KKyA2LjI4MzE4NTMwNzE3OTU5CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXI7CistLSB0ZXN0IGFjY2VzcyBmcm9tIFBML3BnU1FMCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hh cjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMgdm9p ZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxwZ3Nx bF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2 X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQgTEFO R1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBO T1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJQ0UgJ3ZhcjIg PSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBvZiB2YXIzID0g JScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK Ky0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1bmMo KTsKKyB3cml0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJl YWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0MTU5 MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCisgcmVhZGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsKKyB1 cGRhdGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAw MDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKKyByZWFk ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRU5EOworLS0gZXhlY3V0ZSBv dXRzaWRlIG9mIGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworIHdyaXRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsK K05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05P VElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0ZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1 ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSBleGVjdXRlIGluc2lkZSBhIFBML3BnU1FMIGJs b2NrCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJl YWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0g My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNF OiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3 OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxk IGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEs IHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51 bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBz aG91bGQgd29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsK KyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9U SUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0g MTAwMDIKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMu MTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3Qg cGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RF Q0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIx ID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2 OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBn c3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6 ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7 MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSwgcGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJP TEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRl cl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xF VCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cl9yZWFkX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug JyUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZ IERFRklORVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf ZXhlY19yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInBscGdzcWxfc3ZfdmFyMSIKK1BML3Bn U1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9s ZTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitOT1RJQ0U6ICAx MAorIHZhcl9yZWFkX2Z1bmMgCistLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFz aAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3Zh cjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitR VUVSWTogIHBscGdzcWxfc3ZfdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9y ZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIEZV TkNUSU9OIHZhcl9yZWFkX2Z1bmM7CitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192 YXJfZXhlY19yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9QIFJP TEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09B TEVTQ0UocGxwZ3NxbF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7Cisg aW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VM RUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9p bnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0t LS0tLS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAg ICAgIDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAg ICAxMQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIyID0g MC4wOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNf dmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9u dW0oMS4wKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX251bSAKKy0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAg ICAgICAgNworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAg ICAgIDExCisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitEUk9QIEZVTkNUSU9OIGlu Y192YXJfaW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKy0tIHBscGdzcWwgdmFyaWFi bGVzIGFyZSBwcmVmZXJyZWQgYWdhaW5zdCBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUg cGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7 CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBSQUlT RSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMg JScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0Ug Tk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBp cyAxMDAwCitOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCitEUk9QIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyMTsKKy0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAorQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc3ZfdiB0ZXh0OworTEVUIHBscGdzcWxfc3ZfdiA9ICdhYmMnOworQ1JF QVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJO IGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUg RlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQg cGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworc2VsZWN0IGZmdW5jKCk7CisgZmZ1bmMgCistLS0tLS0tCisgYWJjCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gZmZ1bmMoKTsKK0RST1AgRlVOQ1RJT04gZ2Z1bmModGV4dCk7CitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9tZXNvbi5idWlsZCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZAppbmRleCAzM2M0 OWFjMjVkOS4uMWQwMWQxYzI2MjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNv bi5idWlsZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4 LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90 cmlnZ2VyJywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Np b25fdmFyaWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmEzY2MyNjRjZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCkBAIC0wLDAgKzEs Mjg5IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKwor LS0gcGFzc2luZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsK K0VORDsKKyQkOworCistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKKworU0VMRUNU IHBscGdzcWxfc3ZfdmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjsKKworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMg dm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxw Z3NxbF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3Fs X3N2X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9m dW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9 IHBscGdzcWxfc3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxf c3ZfdmFyMiArIDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBn c3FsX3N2X3ZhcjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcq JywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJ Q0UgJ3ZhcjIgPSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBv ZiB2YXIzID0gJScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworLS0gZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3 cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5j KCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK0VORDsKKworLS0gZXhlY3V0ZSBvdXRzaWRlIG9m IGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5j KCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKKworLS0g ZXhlY3V0ZSBpbnNpZGUgYSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0g d3JpdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxh biBjYWNoZXMgc2hvdWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVB VEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMg QVMgdmFyY2hhcjsKKworLS0gc2hvdWxkIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJG T1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1 cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3Zf dmFyMzsKKworRFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVy X2Z1bmM7CitEUk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBv ZiBjb3JyZWN0IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50 W107CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZv aWQgQVMgJCQKK0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMltwbHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdz cWxfc3ZfdmFyMjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1 bmMoKTsKKworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsK KworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJfb3duZXJfcm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CitMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9y ZWFkX2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKwor LS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VM RUNUIGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5j X3Zhcl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAu MDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VM RUNUIGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNU IGluY192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04g aW5jX3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZh cmlhYmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RF Q0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEg PSAxMDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOwor ICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2 X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFi bGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAg UkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxk IG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xF VCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVS TlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitS RVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOwor ICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygp OworCitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOwor CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDcuMQoK --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250106-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg8y17 RnJvbSAzMTUxOGRmMjM1ZWZkYjY0Y2MyMWFlODlhMTJlZWJkNzQ2ZjE0ZmQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjJdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNGIuLmQ2NzJkMmE5Y2IzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMjMwLDcgKzIzMSw4IEBAIENyZWF0ZVZhcmlh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiB9CiAK IC8qCi0gKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRAorICogRHJvcCB2YXJpYWJsZSBieSBPSUQsIGFu ZCByZWdpc3RlciB0aGUgbmVlZGVkIHNlc3Npb24gdmFyaWFibGUKKyAqIGNsZWFudXAuCiAgKi8K IHZvaWQKIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQpAQCAtMjUwLDQgKzI1Miw3IEBAIERy b3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qIGRvIHRoZSBuZWNlc3Nhcnkg Y2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLworCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggZTZiMTc2ODQ2MGIuLjRmNWZlZTQ4MTRkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBA QCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4 dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8q CisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0 aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2UgbmVlZCB0aGlz IGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZhcmlhYmxlcyBk cm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRpb24gaXMgcm9s bGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9seGlkOworCiAJ LyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVk IHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8g Y2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtODMsNiArOTIsMTcgQEAgc3Rh dGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCA9IE5VTEw7CiAKKy8qIGJlY29tZXMgdHJ1ZSB3aGVuIHdlIHJlY2VpdmUgYSBzaW52YWwgbWVz c2FnZSAqLworc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOworCisvKgorICog VGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBp bW1lZGlhdGVseS4gIFdlIGRvCisgKiB0aGF0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqICJ2YWxpZGF0ZWRfbHhpZCIg c3RvcmVzIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHBlcmZvcm1lZCBzYWlkIHZhbGlkYXRpb24sIHNv CisgKiB0aGF0IHdlIGNhbiBhdm9pZCByZXBlYXRpbmcgdGhlIGVmZm9ydC4KKyAqLworc3RhdGlj IExvY2FsVHJhbnNhY3Rpb25JZCB2YWxpZGF0ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0 aW9uSWQ7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBp bnZhbGlkYXRpb24uCiAgKi8KQEAgLTExNCw2ICsxMzQsMzggQEAgcGdfdmFyaWFibGVfY2FjaGVf Y2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAkJaWYg KGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCiAJCXsKIAkJ CXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ fQorCX0KK30KKworLyoKKyAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEg RFJPUCBWQVJJQUJMRSBjb21tYW5kLgorICoKKyAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9m IHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KKyAqLwordm9pZAorU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK3sKKwlBc3NlcnQoTG9jYWxUcmFu c2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJYm9vbAkJZm91bmQ7CisJCVNWYXJpYWJsZQlzdmFyID0gKFNWYXJpYWJsZSkgaGFz aF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwg JmZvdW5kKTsKKworCQlpZiAoZm91bmQpCisJCXsKKwkJCS8qCisJCQkgKiBTYXZlIHRoZSBjdXJy ZW50IHRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCB0byBtYWtlIHN1cmUgd2UKKwkJCSAq IHdvbid0IGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBsb2NhbCB2YXJpYWJsZSBzdG9yYWdlIGlu CisJCQkgKiB2YWxpZGF0ZV9hbGxfc2Vzc2lvbl92YXJpYWJsZXMoKSB3aGVuIHRoZSBpbnZhbGlk YXRpb24gbWVzc2FnZQorCQkJICogZnJvbSBEUk9QIFZBUklBQkxFIGFycml2ZXMuICBBZnRlciBh bGwsIHRoZSB0cmFuc2FjdGlvbiBjb3VsZAorCQkJICogc3RpbGwgYmUgcm9sbGVkIGJhY2suCisJ CQkgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQlzdmFyLT5kcm9wX2x4aWQgPSBN eVByb2MtPnZ4aWQubHhpZDsKIAkJfQogCX0KIH0KQEAgLTE2Nyw2ICsyMTksNjcgQEAgaXNfc2Vz c2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKgorICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQorICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgorICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgorICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKKyAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2Vp dmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQorICogcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUg dGhhdAorICogYWxsIGVudHJpZXMgaW4gInNlc3Npb252YXJzIiB3aWxsIGJlIHNldCB0byAiaXNf dmFsaWQiIGFmdGVyIHRoZSBmdW5jdGlvbiBpcworICogZG9uZS4gIEhvd2V2ZXIsIHdlIGNhbiBn dWFyYW50ZWUgdGhhdCBhbGwgZW50cmllcyBnZXQgY2hlY2tlZCBvbmNlLgorICovCitzdGF0aWMg dm9pZAorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJLyoKKwkgKiBUaGUgdmFsaWRh dGlvbiByZXF1aXJlcyBzeXN0ZW0gY2F0YWxvZyBhY2Nlc3MsIHNvIHRoZSBzZXNzaW9uIHN0YXRl CisJICogc2hvdWxkIGJlICJpbiB0cmFuc2FjdGlvbiIuCisJICovCisJQXNzZXJ0KElzVHJhbnNh Y3Rpb25TdGF0ZSgpKTsKKworCWlmICghbmVlZHNfdmFsaWRhdGlvbiB8fCAhc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKKworCS8qCisJICogUmVzZXQgdGhlIGZsYWcgYmVmb3JlIHdlIHN0YXJ0IHRo ZSB2YWxpZGF0aW9uLiAgSXQgY2FuIGJlIHNldCBhZ2FpbgorCSAqIGJ5IGNvbmN1cnJlbnRseSBp bmNvbWluZyBzaW52YWwgbWVzc2FnZXMuCisJICovCisJbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNl OworCisJZWxvZyhERUJVRzEsICJlZmZlY3RpdmUgY2FsbCBvZiB2YWxpZGF0ZV9hbGxfc2Vzc2lv bl92YXJpYWJsZXMoKSIpOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7 CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAh PSBOVUxMKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJaWYgKHN2YXItPmRy b3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXsKKwkJCQkvKiB0cnkgYWdhaW4gaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KKwkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ CQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKCFpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2 YXIpKQorCQkJeworCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CisKKwkJCQlmcmVlX3Nl c3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCXN2YXIgPSBOVUxMOworCQkJfQorCQkJ ZWxzZQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJfQorCX0KK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMDks OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDM0LDQyIEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov CisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVw ZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRl ZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhh c2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZm b3VuZCk7CiAKIAlpZiAoZm91bmQpCiAJeworCQkvKgorCQkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJs ZSBjb3VsZCBoYXZlIGJlZW4gZHJvcHBlZCBieSBhIERST1AgVkFSSUFCTEUKKwkJICogc3RhdGVt ZW50IGluIGEgc3VidHJhbnNhY3Rpb24gdGhhdCB3YXMgbGF0ZXIgcm9sbGVkIGJhY2ssIHdoaWNo CisJCSAqIG1lYW5zIHRoYXQgd2UgbWF5IGhhdmUgdG8gd29yayB3aXRoIHRoZSBkYXRhIG9mIGEg dmFyaWFibGUgbWFya2VkCisJCSAqIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlz X3ZhbGlkKQogCQl7CiAJCQkvKgotCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBt ZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKLQkJCSAqIHZhbGlkLCBidXQgd2Ug aGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqIFdlIGhhdmUgdG8g Y2hlY2sgdGhlIHN5c3RlbSBjYXRhbG9nIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgaXMKKwkJCSAq IHN0aWxsIHZhbGlkLCBldmVuIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlIHNldCBpdCB0byBp bnZhbGlkLgorCQkJICoKKwkJCSAqIFRoZSB2YXJpYWJsZSBtdXN0IGJlIHZhbGlkYXRlZCBiZWZv cmUgaXQgaXMgYWNjZXNzZWQuICBUaGUgb2lkCisJCQkgKiBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbHJlYWR5CisJCQkgKiBsb2NrZWQs IGFuZCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdvdWxkIHJlbW92ZQorCQkJ ICogdmFyaWFibGVzIGRyb3BwZWQgYnkgb3RoZXIgdHJhbnNhY3Rpb25zLgogCQkJICovCiAJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKIAkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CiAJCQllbHNlCi0JCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLwotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZh cmlhYmxlICV1IiwgdmFyaWQpOwogCQl9CiAJfQogCWVsc2UKQEAgLTM5NSw2ICs1MzAsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIGZyZWUgdGhlIG1l bW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAg aW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4 aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDQzZmNlODgwMzE0Li4wN2Q4MDBiY2Mw MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEs OCBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZp cm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3Mo T2lkIHZhcmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFi bGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQpOwogZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29sICppc051bGwsIE9p ZCBleHBlY3RlZF90eXBpZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjBhNTU3OWRjN2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVj dGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMTEwIEBACitQYXJzZWQgdGVzdCBz cGVjIHdpdGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkcm9w IHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2 YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJ QUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitFUlJPUjogIGNvbHVtbiAibXl2 YXIiIGRvZXMgbm90IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxF Q1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgczE6IEJFR0lO Oworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNFTEVDVCBteXZh cjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK3N0ZXAgc3IxOiBST0xM QkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRi ZyB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15 dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRiZzogU0VMRUNUIHNj aGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8 bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1YmxpY3xteXZhcnxmICAgICAg CisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgY3JlYXRl OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1h LCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1l fHJlbW92ZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKyAgICAgIHwgICAgfHQgICAgICAKKygxIHJv dykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQorICAgICAKKygxIHJv dykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUg ZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJ TjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0t LQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklB QkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0Owor c3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitw dWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VMRUNUIG15dmFyOwor bXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9MTEJBQ0s7CisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRy b3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFC TEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7CitzdGVw IHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0 Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9wNDogRFJPUCBWQVJJ QUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFyMzsKK3N0ZXAgaW52 YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7Cis/Y29sdW1u PworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2FyZDogRElTQ0FSRCBW QVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VMRUNUIHZhcm5hbWUg RlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAKKygxIHJvdykKKwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggMTQzMTA5YWE0ZGEuLjc0NTM2 ODVkMDQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxl CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTExNSwzICsx MTUsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFsaXphYmxl LXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1ub3dhaXQK K3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9z cGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vz c2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVj cy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24g dmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVB VEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZB UklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJ TjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNU IG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Np b24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJ eyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMz CQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAg Y3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7 IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZh cjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWln bl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2Mz CQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zhcmlh YmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZh cjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisj IENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVy cm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4 cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor IyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQg dG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRi ZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3Vs ZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtl IHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0 aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZh bCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwg d2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNj YXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dAppbmRleCAwNTVjMzg4Y2JiZS4uM2NmNDIxMDY1ZTcgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xNjk0LDMgKzE2 OTQsMjIwIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CiAg ICAgIDAKICgxIHJvdykKIAorLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQg ZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJp YWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorTEVUIHZhcjEgPSAnQWhvaic7CitTRUxFQ1Qg bmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlwbmFtZSAgICAgIHwgY2FuX3NlbGVjdCB8IGNhbl91 cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gdGhlIGNvbnRlbnQgb2YgdGhlIHZhbHVl IHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRyb3BwZWQKKy0tIGJ5IGFu IGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitM RVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxk IGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90IGV4aXN0 CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorUk9MTEJBQ0s7CistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cp CisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBvaywg cmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykK KworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsK Ky0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSBy b3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQor CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNhbl9zZWxlY3QgfCBjYW5f dXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFy MSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCisgIERST1AgVkFSSUFCTEUg dmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisg IDEwMAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5f dXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNh bl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCisg IERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CitM RVQgdmFyMiA9IDA7CitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZh cjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJp YWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisg IFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK KyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xM QkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFy MSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAg RFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90 aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCiso MSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBE Uk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3Ro ZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAg MAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91 Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCist LS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0t IHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7 IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx LCB2YXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IGNjNThlYWQ0YzNlLi4yMzM3MTEzNzgzYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtMTE4OSwzICsxMTg5LDEyMyBAQCBESVNDQVJEIFZBUklBQkxF UzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1v dmVkIGZyb20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24g dmFyaWFibGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KKworTEVUIHZhcjEgPSAnQWhvaic7CitT RUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Np b25fdmFyaWFibGVzKCk7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSB6ZXJv CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCBy ZW1vdmVkOworCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHByZXNlcnZl ZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRlZCB0cmFuc2FjdGlv bgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2onOwor QkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFy MTsKKworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIGFu b3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0IDEw MAorU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0ICdBaG9q JworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9U IHJlbW92ZWQ7CisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExF VCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNh bl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitC RUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9IDEwMDsK KyAgU0VMRUNUIHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5f dXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50OworTEVUIHZhcjEgPSAx MDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFC TEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9u IHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5U IHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBU TyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JFR0lOOwor ICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5p bmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOwor ICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CisgIFNFTEVDVCB2YXIyOworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0t IGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBT RUxFQ1QgdmFyMjsKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRv dWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyAgUk9MTEJB Q0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lv biB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9Q IFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9M TEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOwotLSAKMi40 Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250106-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg9518 RnJvbSA4Zjk0NjA1YTY4OWEwZTQ2ZmRkNjNhYjVhYjUyZGI4NDEwMjE5MDQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIyXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n 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 aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggODEzMzlhNzVh NTIuLjU5MDRhNmM0OTE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBmMWIxMTVkNjcw Yi4uZTZiMTc2ODQ2MGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv biB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBh biBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQor CSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lv bnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3Bl Y2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjQ1LDMgKzY1MSwy MyBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFu eSBsaXN0IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNl ZCBieSB0aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAq Lwordm9pZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNo IHRhYmxlIGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252 YXJzKQorCXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBO VUxMOworCX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNv bnRleHRSZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGE0 MTUwZjg5OWI5Li43ZTcxNThhYzA5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDc2LDcgKzIwNzYsMTMg QEAgRGlzY2FyZFN0bXQ6CiAJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfU0VRVUVOQ0VTOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVNDQVJEIFZBUklBQkxFUworCQkJCXsK KwkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtlTm9kZShEaXNjYXJkU3RtdCk7CiAKKwkJCQkJbi0+ dGFyZ2V0ID0gRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDdhNTA4YTM2NDRmLi42ZTRkMjMxMGY1YyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKQEAgLTI5NjIsNiArMjk2Miw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAq cGFyc2V0cmVlKQogCQkJCWNhc2UgRElTQ0FSRF9TRVFVRU5DRVM6CiAJCQkJCXRhZyA9IENNRFRB R19ESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBESVNDQVJEX1ZBUklB QkxFUzoKKwkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTOworCQkJCQlicmVhazsK IAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwppbmRleCBhY2JmNTFlZjJlNy4uZDc4Y2VmMzZhZDggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTQxMTMsNyArNDExMyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIp KQotCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZB UklBQkxFUyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggNjlhOGU2YjA5ZmMuLjQzZmNlODgw MzE0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOCw0ICsy OCw2IEBAIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2 YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0CiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1z LAogCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAq cWMpOwogCitleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCk7CisKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGI0MTdiNTZjMmEzLi45MzI0MWJkNTViOCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk4OCw2ICszOTg4LDcgQEAgdHlwZWRlZiBlbnVtIERp c2NhcmRNb2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NFUVVFTkNFUywKIAlESVNDQVJE X1RFTVAsCisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRNb2RlOwogCiB0eXBlZGVmIHN0 cnVjdCBEaXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0 LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCAyMjA4MmMzMDAwOC4uYmVm MGFjMjUzMzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01E VEFHKENNRFRBR19ESVNDQVJEX0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJ U0NBUkQgU0VRVUVOQ0VTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf RElTQ0FSRF9URU1QLCAiRElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VT UyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdH UkVHQVRFLCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDM1MzlhM2Y3 YWMwLi4wNTVjMzg4Y2JiZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE2MzEsMyArMTYzMSw2NiBAQCBEUk9QIFZBUklBQkxFIDoi REJOQU1FIi46IkRCTkFNRSIuYjsKIERST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46 IkRCTkFNRSI7CiBEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CiBSRVNFVCBzZWFyY2hfcGF0aDsKKy0t IG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKyB2YXIxICAK Ky0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitESVNDQVJEIEFMTDsKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAKKygxIHJvdykKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgQUhPSgorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxF UzsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworLS0gaW5pdGlhbCB0ZXN0IG9mIGRlYnVnIHBnX3Nlc3Npb25fdmFyaWFibGVz IGZ1bmN0aW9uCistLSBzaG91bGQgYmUgemVybyBub3cKK0RJU0NBUkQgVkFSSUFCTEVTOworU0VM RUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOwor LS0gc2hvdWxkIGJlIHplcm8gc3RpbGwKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworTEVUIHZh cjEgPSAnQUhPSic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0 ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlwbmFtZSAgICAg IHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgdCAg ICAgICAgICB8IHQKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUg emVybyBhZ2FpbgorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMzVhYTkxNGI0MGUuLmNjNThlYWQ0YzNlIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMTUzLDMg KzExNTMsMzkgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsK IERST1AgU0NIRU1BIDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9y eSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZh cmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7 CitTRUxFQ1QgdmFyMTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElT Q0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCist LSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0t IHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHZhcmNoYXI7CisKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNU IG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdh aW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ3 LjEKCg== --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250106-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg9c19 RnJvbSA5Nzg3ZTY0OGQ3ZjVlYTQwNzRiMWI2NzdmNDYzOGRiYjFmYTZlMDc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDAw YTFmMzcxZTBmLi5mMWIxMTVkNjcwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTUzLDMgKzU1Myw5NSBAQCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQorCisvKgorICogcGdfc2Vzc2lvbl92 YXJpYWJsZXMgLSBkZXNpZ25lZCBmb3IgdGVzdGluZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlv biBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAq IGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRp c3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQs IGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVk IGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMg OAorCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZv LT5yZXN1bHRpbmZvOworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3Zh cjsKKworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAo KHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJ CXsKKwkJCURhdHVtCQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJ Ym9vbAkJbnVsbHNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxl CXRwOworCQkJYm9vbAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMs IDAsIHNpemVvZih2YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7 CisKKwkJCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFs dWVzWzNdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qCisJCQkgKiBJ dCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhl CisJCQkgKiBjYXRhbG9nLCBidXQgbm90IHlldCBwdXJnZWQgZnJvbSB0aGUgaGFzaCB0YWJsZS4K KwkJCSAqLworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJ eworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHApOworCisJCQkJLyoKKwkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgYSB2 YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGFuZAorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5l dyB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gIFVzZQorCQkJCSAqIHRoZSBjYXRh bG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJ CQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7 CisJCQkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1sy XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJ CXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlw aWQpKTsKKwkJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1 ZXNbNl0gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXRE YXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2 YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBB Q0xDSEVDS19PSyk7CisKKwkJCQkJdmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGlu ZyBjYXRhbG9nIGVudHJ5LCByZXR1cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3Zh bGlkKQorCQkJeworCQkJCW51bGxzWzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJ CQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsK KwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2 YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCA3MGY0MWYxOGUyZC4uYjNhZTRkNmFhZGYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMTI0NTIsNCArMTI0NTIsMTIgQEAKICAgcHJvYXJndHlwZXMgPT4g J2ludDInLAogICBwcm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiAKKyMgU2Vz c2lvbiB2YXJpYWJsZXMgc3VwcG9ydAoreyBvaWQgPT4gJzg0ODgnLCBkZXNjciA9PiAnbGlzdCBv ZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzJywKKyAgcHJvbmFtZSA9PiAncGdfc2Vzc2lvbl92YXJp YWJsZXMnLCBwcm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCisg IHByb2FyZ3R5cGVzID0+ICcnLCBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCx0ZXh0LHRleHQsb2lk LHRleHQsYm9vbCxib29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxv LG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3t2YXJpZCxzY2hlbWEsbmFtZSx0eXBpZCx0eXBuYW1l LHJlbW92ZWQsY2FuX3NlbGVjdCxjYW5fdXBkYXRlfScsCisgIHByb3NyYyA9PiAncGdfc2Vzc2lv bl92YXJpYWJsZXMnIH0sCiBdCi0tIAoyLjQ3LjEKCg== --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250106-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg9k20 RnJvbSBiMmMzYzE1YjU1YTFlNDVkYjVjMjQzM2E3NmMxMzM1NTQxZWRlZDU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDMgKwogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICAzICsKIGRvYy9zcmMvc2dt bC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9zZ21s L3JlZi9sZXQuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgICA5NiArKwogZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8ICAyODkgKysrKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvcHJlcGFyZS5jICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgNTU1ICsrKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzUgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NyArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMjEgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NCArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzNSArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Rj b3AvZGVzdC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKwogc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgICAxNiArCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgIDQ2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAgICB8ICAgNDEgKy0KIHNyYy9iYWNrZW5kL3V0aWxz L2ZtZ3IvZm1nci5jICAgICAgICAgICAgICAgICB8ICAgMTAgKy0KIHNyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgMTIgKy0KIHNyYy9pbmNsdWRlL2NhdGFs b2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICAgOSArCiBzcmMvaW5jbHVkZS9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDMxICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmggICAgICB8ICAgMjIgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhl Y25vZGVzLmggICAgICAgICAgICAgICAgIHwgICAxNiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDE3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhu b2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMTEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAgOSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9pbmNsdWRlL29wdGltaXplci9wbGFu bWFpbi5oICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oICAgICAgICAgICAgICAgfCAgICAzICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5o ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggICAgICAg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jICAg ICAgICAgICAgICAgICAgfCAgICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgICAgfCAxMjI0ICsrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAgODc3ICsrKysrKysrKysrKwogc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAgNSArCiA1NyBmaWxl cyBjaGFuZ2VkLCA0NDQ2IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKaW5kZXggNmJiYzZjN2UyOGUuLjY3ZTY0NTkyNTA2IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAt OTc4NCw2ICs5Nzg0LDE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRp b24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19sc248 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2YgdGhlIHRy YW5zYWN0aW9uIHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1Y3RmaWVs ZD5vaWQ8L3N0cnVjdGZpZWxkPiB0b2dldGhlciBmb3JtIHRoZSBhbGwtdGltZSB1bmlxdWUKKyAg ICAgICBpZGVudGlmaWVyICg8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gYWxvbmUgaXMg bm90IGVub3VnaCwgc2luY2UKKyAgICAgICBvYmplY3QgaWRlbnRpZmllcnMgY2FuIGdldCByZXVz ZWQpLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+bmFtZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA0Zjc5YzY3NmMzMC4uMTAwZDRlN2ZjZDkgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwK QEAgLTUzNTcsNiArNTM1Nyw0OSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1 cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICAgVGhlIHNl c3Npb24gdmFyaWFibGUgaG9sZHMgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzIHZhbHVl IGlzIHByaXZhdGUKICAgICB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhl IHNlc3Npb24gZW5kcy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHZhbHVlIG9m IGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBzZXQgd2l0aCB0aGUgU1FMIHN0YXRlbWVudAorICAgIDxj b21tYW5kPkxFVDwvY29tbWFuZD4uICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGNh biBiZSByZXRyaWV2ZWQKKyAgICB3aXRoIHRoZSBTUUwgc3RhdGVtZW50IDxjb21tYW5kPlNFTEVD VDwvY29tbWFuZD4uCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBk YXRlOworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKKzwvcHJvZ3JhbWxp c3Rpbmc+CisKKyAgICBvcgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgcHVi bGljLmN1cnJlbnRfdXNlcl9pZCBBUyBpbnRlZ2VyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF IHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgVE8gUFVCTElDOworTEVUIGN1cnJlbnRfdXNlcl9pZCA9 IChTRUxFQ1QgaWQgRlJPTSB1c2VycyBXSEVSRSB1c2VuYW1lID0gc2Vzc2lvbl91c2VyKTsKK1NF TEVDVCBjdXJyZW50X3VzZXJfaWQ7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisg ICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRv IHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUg cmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRzIHZhbHVlIGhhcwor ICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNp bmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJp YWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgorICAgIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhl IHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0CisgICAg YmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVzdCBsaWtlIHZh cmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVz IHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQsIGJ1dAorICAgIHRoZWlyIHZhbHVlcyBhcmUgbmVp dGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YKKyAgICB0ZW1w b3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgSW5zaWRlIGEgcXVl cnkgb3IgYW4gZXhwcmVzc2lvbiwgYSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZQorICAgIDxxdW90 ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IGEgY29sdW1uIHdpdGggdGhlIHNhbWUgbmFtZS4gIFNpbWls YXJseSwgdGhlCisgICAgbmFtZSBvZiBhIGZ1bmN0aW9uIG9yIHByb2NlZHVyZSBhcmd1bWVudCBv ciBhIFBML3BnU1FMIHZhcmlhYmxlIChzZWUKKyAgICA8eHJlZiBsaW5rZW5kPSJwbHBnc3FsLWRl Y2xhcmF0aW9ucyIvPikgY2FuIHNoYWRvdyBhIHNlc3Npb24gdmFyaWFibGUKKyAgICBpbiB0aGUg cm91dGluZSdzIGJvZHkuICBTdWNoIGNvbGxpc2lvbnMgb2YgaWRlbnRpZmllcnMgY2FuIGJlIHJl c29sdmVkCisgICAgYnkgdXNpbmcgcXVhbGlmaWVkIGlkZW50aWZpZXJzOiBTZXNzaW9uIHZhcmlh YmxlcyBjYW4gYmUgcXVhbGlmaWVkIHdpdGgKKyAgICB0aGUgc2NoZW1hIG5hbWUsIGNvbHVtbnMg Y2FuIHVzZSB0YWJsZSBhbGlhc2VzLCByb3V0aW5lIHZhcmlhYmxlcyBjYW4gdXNlCisgICAgYmxv Y2sgbGFiZWxzLCBhbmQgcm91dGluZSBhcmd1bWVudHMgY2FuIHVzZSB0aGUgcm91dGluZSBuYW1l LgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKaW5kZXggZDBjYjUzNzYzYWEuLjdiYzNmYzNiYjAyIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApA QCAtMTY3MCw4ICsxNjcwLDkgQEAKICAgICA8cGFyYT4KICAgICAgQSBwZXJzaXN0ZW50IGRhdGFi YXNlIG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzCiAg ICAgIHZhbHVlIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVu IHRoZSBzZXNzaW9uIGVuZHMuCi0gICAgIFJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywKLSAgICAgc2ltaWxhciB0byBv dGhlciBkYXRhYmFzZSBvYmplY3RzLgorICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSBpcyBudWxsLiAgUmVhZCBvciB3cml0ZSBhY2Nlc3MKKyAgICAgdG8gc2Vz c2lvbiB2YXJpYWJsZXMgaXMgY29udHJvbGxlZCBieSBwcml2aWxlZ2VzLCBzaW1pbGFyIHRvIG90 aGVyIGRhdGFiYXNlCisgICAgIG9iamVjdHMuCiAgICAgPC9wYXJhPgogICAgIDxwYXJhPgogICAg ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZh cmlhYmxlcyIvPi4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sIGIvZG9j L3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKaW5kZXggMWNlOWFiZjg2ZjUuLjY4M2RlZGU2YWRjIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cGFyYWxsZWwuc2dtbApAQCAtNTE1LDYgKzUxNSwxMiBAQCBFWFBMQUlOIFNFTEVDVCAqIEZST00g cGdiZW5jaF9hY2NvdW50cyBXSEVSRSBmaWxsZXIgTElLRSAnJXglJzsKICAgICAgICAgUGxhbiBu b2RlcyB0aGF0IHJlZmVyZW5jZSBhIGNvcnJlbGF0ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0ZXJh bD4uCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBQbGFuIG5vZGVzIHRoYXQgdXNlIGEgc2Vzc2lvbiB2YXJpYWJs ZS4KKyAgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlzdD4KIAog IDxzZWN0MiBpZD0icGFyYWxsZWwtbGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggNzhlNDk4MzEz OWIuLmJmYmZmOWFiNzRlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwMzQsNiArNjAzNCwyMCBAQCAkJCBM QU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiA8L3Byb2dyYW1saXN0aW5nPgogICAg IDwvcGFyYT4KICAgIDwvc2VjdDM+CisKKyAgIDxzZWN0MyBpZD0icGxwZ3NxbC1wb3J0aW5nLXBh Y2thZ2UtdmFyaWFibGVzIj4KKyAgICA8dGl0bGU+PGNvbW1hbmQ+UGFja2FnZXMgYW5kIHBhY2th Z2UgdmFyaWFibGVzPC9jb21tYW5kPjwvdGl0bGU+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIDxh cHBsaWNhdGlvbj5QTC9wZ1NRTDwvYXBwbGljYXRpb24+IGxhbmd1YWdlIGhhcyBubyBwYWNrYWdl cywgYW5kCisgICAgIHRoZXJlZm9yZSBubyBwYWNrYWdlIHZhcmlhYmxlcyBvciBwYWNrYWdlIGNv bnN0YW50cy4KKyAgICAgWW91IGNhbiBjb25zaWRlciB0cmFuc2xhdGluZyBhbiBPcmFjbGUgcGFj a2FnZSBpbnRvIGEgc2NoZW1hIGluCisgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4uICBQYWNrYWdlIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcworICAgICB3b3VsZCB0 aGVuIGJlY29tZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgaW4gdGhhdCBzY2hlbWEsIGFuZCBw YWNrYWdlCisgICAgIHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFy aWFibGVzIGluIHRoYXQgc2NoZW1hLgorICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNz aW9uLXZhcmlhYmxlcyIvPikuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KICAgPC9zZWN0Mj4K IAogICA8c2VjdDIgaWQ9InBscGdzcWwtcG9ydGluZy1hcHBlbmRpeCI+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVz LnNnbWwKaW5kZXggMmY2N2RlM2UyMWIuLmNjM2JkNWFiNTQwIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5z Z21sCkBAIC0xNTgsNiArMTU4LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3Vy Y2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBncmFudCAgICAgICAgICAgICAg U1lTVEVNICJncmFudC5zZ21sIj4KIDwhRU5USVRZIGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVN ICJpbXBvcnRfZm9yZWlnbl9zY2hlbWEuc2dtbCI+CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAg ICAgU1lTVEVNICJpbnNlcnQuc2dtbCI+Cis8IUVOVElUWSBsZXQgICAgICAgICAgICAgICAgU1lT VEVNICJsZXQuc2dtbCI+CiA8IUVOVElUWSBsaXN0ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0 ZW4uc2dtbCI+CiA8IUVOVElUWSBsb2FkICAgICAgICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwi PgogPCFFTlRJVFkgbG9jayAgICAgICAgICAgICAgIFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAppbmRleCA5NmQyNTg2NDIzZS4uMjIxYTY5OTQ2OWIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBB TFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBl PSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUi Lz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIv PjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+ CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDZlOTg4ZjJlNDcyLi5kNjgxNDA0MDU1ZCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0xMjMsNiArMTIzLDggQEAgQ1JF QVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWIKICAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFibGUg PGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsK IDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxp c3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zh cmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1 YmRiMzU2MGYwYi4uNjc5ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJv cF92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s CkBAIC0xMTEsNiArMTExLDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJs ZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVt YmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9sZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAwZjliZWE5MWZlCi0tLSAvZGV2L251bGwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2IEBACis8IS0tCitk b2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgor Cis8cmVmZW50cnkgaWQ9InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+Cisg IDxwcmltYXJ5PkxFVDwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+Cisg IDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdp bmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0 aXRsZT5MRVQ8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8 cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9y ZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJl ZnB1cnBvc2U+Y2hhbmdlIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgor IDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ ID0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNl YWJsZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5M RVQ8L2NvbW1hbmQ+IGNvbW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vz c2lvbgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4 cHJlc3Npb248L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgQW4gYXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJl IG9mIGEgZGF0YSB0eXBlIHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRo ZSBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKzxwcm9n cmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVUIG15dmFy ID0gMTA7CitMRVQgbXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGli aWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g aXMgYSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24u CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlz dD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYz OTQ2Yy4uMTNlNGFkYzVkZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAog ICAgJmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxl dDsKICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYwppbmRleCAxZGEwNzIwZjYxYi4uY2UyZTg4NjU2MzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jCkBAIC0xODY0LDYgKzE4NjQsMTEgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2Vy KE5vZGUgKm5vZGUsCiAJewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAor CQkvKiBhIHZhcmlhYmxlIHBhcmFtZXRlciBkZXBlbmRzIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxl ICovCisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJYWRkX29i amVjdF9hZGRyZXNzKFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdmFyaWQsIDAsCisJ CQkJCQkJICAgY29udGV4dC0+YWRkcnMpOworCiAJCS8qIEEgcGFyYW1ldGVyIG11c3QgZGVwZW5k IG9uIHRoZSBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLwogCQlhZGRfb2JqZWN0X2FkZHJlc3MoVHlw ZVJlbGF0aW9uSWQsIHBhcmFtLT5wYXJhbXR5cGUsIDAsCiAJCQkJCQkgICBjb250ZXh0LT5hZGRy cyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA0MzA3Y2FkMTVjNy4uYmVhZmVlMmEzNDEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtMzQ5Nyw2ICszNDk3LDI5NSBAQCBOYW1lc0Zy b21MaXN0KExpc3QgKm5hbWVzKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIC0tLS0tCisgKiBJ ZGVudGlmeVZhcmlhYmxlIC0gdHJ5IHRvIGZpbmQgYSB2YXJpYWJsZSBmcm9tIGEgbGlzdCBvZiBp ZGVudGlmaWVycworICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgdmFyaWFibGUgZm91bmQs IG9yIEludmFsaWRPaWQuCisgKgorICogIm5hbWVzIiBpcyBhIGxpc3Qgb2YgdXAgdG8gZm91ciBp ZGVudGlmaWVyczsgcG9zc2libGUgbWVhbmluZ3MgYXJlOgorICogLSB2YXJpYWJsZSAgKHNlYXJj aGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlCisgKiAtIHZhcmlh YmxlLmF0dHJpYnV0ZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1h LnZhcmlhYmxlLmF0dHJpYnV0ZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUKKyAqIC0g ZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZQorICoKKyAqIElmIHRoZXJlIGlzIG1v cmUgdGhhbiBvbmUgd2F5IHRvIGlkZW50aWZ5IGEgdmFyaWFibGUsICJub3RfdW5pcXVlIiB3aWxs IGJlCisgKiBzZXQgdG8gdHJ1ZS4KKyAqCisgKiBVbmxlc3MgIm5vZXJyb3IiIGlzIHRydWUsIGFu IGVycm9yIGlzIHJhaXNlZCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGZvdXIKKyAqICBpZGVudGlm aWVycyBpbiB0aGUgbGlzdCwgb3IgaWYgdGhlIG5hbWVkIGRhdGFiYXNlIGlzIG5vdCB0aGUgY3Vy cmVudCBvbmUuCisgKiBUaGlzIGlzIHVzZWZ1bCBpZiB3ZSB3YW50IHRvIGlkZW50aWZ5IGEgc2hh ZG93ZWQgdmFyaWFibGUuCisgKgorICogSWYgYW4gYXR0cmlidXRlIGlzIGlkZW50aWZpZWQsIGl0 IGlzIHN0b3JlZCBpbiAiYXR0cm5hbWUiLCBvdGhlcndpc2UgdGhlCisgKiBwYXJhbWV0ZXIgaXMg c2V0IHRvIE5VTEwuCisgKgorICogVGhlIGlkZW50aWZpZWQgc2Vzc2lvbiB2YXJpYWJsZSB3aWxs IGJlIGxvY2tlZCB3aXRoIGFuIEFjY2Vzc1NoYXJlTG9jay4KKyAqIC0tLS0tCisgKi8KK09pZAor SWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpub3Rf dW5pcXVlLCBib29sIG5vZXJyb3IpCit7CisJT2lkCQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCU9p ZAkJCW9sZF92YXJpZCA9IEludmFsaWRPaWQ7CisJdWludDY0CQlpbnZhbF9jb3VudDsKKwlib29s CQlyZXRyeSA9IGZhbHNlOworCisJLyoKKwkgKiBEREwgb3BlcmF0aW9ucyBjYW4gY2hhbmdlIHRo ZSByZXN1bHRzIG9mIGEgbmFtZSBsb29rdXAuICBTaW5jZSBhbGwgc3VjaAorCSAqIG9wZXJhdGlv bnMgd2lsbCBnZW5lcmF0ZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIHdlIGtlZXAgdHJhY2sgb2YK KwkgKiB3aGV0aGVyIGFueSBzdWNoIG1lc3NhZ2VzIHNob3cgdXAgd2hpbGUgd2UncmUgcGVyZm9y bWluZyB0aGUgb3BlcmF0aW9uLAorCSAqIGFuZCByZXRyeSB1bnRpbCBlaXRoZXIgKDEpIG5vIG1v cmUgaW52YWxpZGF0aW9uIG1lc3NhZ2VzIHNob3cgdXAgb3IgKDIpCisJICogdGhlIGFuc3dlciBk b2Vzbid0IGNoYW5nZS4KKwkgKi8KKwlmb3IgKDs7KQorCXsKKwkJTm9kZQkgICAqZmllbGQxID0g TlVMTDsKKwkJTm9kZQkgICAqZmllbGQyID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQzID0gTlVM TDsKKwkJTm9kZQkgICAqZmllbGQ0ID0gTlVMTDsKKwkJY2hhcgkgICAqYSA9IE5VTEw7CisJCWNo YXIJICAgKmIgPSBOVUxMOworCQljaGFyCSAgICpjID0gTlVMTDsKKwkJY2hhcgkgICAqZCA9IE5V TEw7CisJCU9pZAkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBJbnZhbGlkT2lkOworCQlPaWQJCQl2 YXJvaWRfd2l0aF9hdHRyID0gSW52YWxpZE9pZDsKKworCQkqbm90X3VuaXF1ZSA9IGZhbHNlOwor CQkqYXR0cm5hbWUgPSBOVUxMOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisKKwkJaW52YWxfY291 bnQgPSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJc3dpdGNoIChsaXN0X2xlbmd0 aChuYW1lcykpCisJCXsKKwkJCWNhc2UgMToKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7 CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisKKwkJCQl2YXJpZCA9IExvb2t1 cFZhcmlhYmxlKE5VTEwsIHN0clZhbChmaWVsZDEpLCB0cnVlKTsKKwkJCQlicmVhazsKKworCQkJ Y2FzZSAyOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQlmaWVsZDIgPSBsc2Vj b25kKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQlhID0g c3RyVmFsKGZpZWxkMSk7CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwgU3RyaW5nKSkKKwkJCQl7CisJ CQkJCS8qIHdoZW4gYm90aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0eXBlICovCisJCQkJCWIgPSBz dHJWYWwoZmllbGQyKTsKKworCQkJCQkvKgorCQkJCQkgKiBhLmIgY2FuIG1lYW4gInNjaGVtYSIu InZhcmlhYmxlIiBvcgorCQkJCQkgKiAidmFyaWFibGUiLiJhdHRyaWJ1dGUiLiAgQ2hlY2sgYm90 aCB2YXJpYW50cywgYW5kCisJCQkJCSAqIHJldHVybnMgSW52YWxpZE9pZCB3aXRoIG5vdF91bmlx dWUgZmxhZywgd2hlbiBib3RoCisJCQkJCSAqIGludGVycHJldGF0aW9ucyBhcmUgcG9zc2libGUu CisJCQkJCSAqLworCQkJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gTG9va3VwVmFyaWFibGUoYSwg YiwgdHJ1ZSk7CisJCQkJCXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBh LCB0cnVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyogdGhlIGxhc3QgZmllbGQg b2YgbGlzdCBjYW4gYmUgc3RhciB0b28gKi8KKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIEFfU3Rh cikpOworCisJCQkJCS8qCisJCQkJCSAqIFRoZSBzeW50YXggaWRlbnQuKiBpcyB1c2VkIG9ubHkg YnkgcmVsYXRpb24gYWxpYXNlcywKKwkJCQkJICogYW5kIHRoZW4gdGhpcyBpZGVudGlmaWVyIGNh bm5vdCBiZSBhIHJlZmVyZW5jZSB0bworCQkJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCQkg Ki8KKwkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJfQorCisJCQkJaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJ CQl7CisJCQkJCSpub3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91 dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0 dHIpKQorCQkJCXsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJ CQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKmF0 dHJuYW1lID0gYjsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCX0KKwkJCQli cmVhazsKKworCQkJY2FzZSAzOgorCQkJCXsKKwkJCQkJYm9vbAkJZmllbGQxX2lzX2NhdGFsb2cg PSBmYWxzZTsKKworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxkMiA9 IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCisJCQkJCUFz c2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmlu ZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0clZhbChmaWVsZDIp OworCisJCQkJCWlmIChJc0EoZmllbGQzLCBTdHJpbmcpKQorCQkJCQl7CisJCQkJCQljID0gc3Ry VmFsKGZpZWxkMyk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBhLmIuYyBjYW4gbWVhbiBjYXRhbG9n LnNjaGVtYS52YXJpYWJsZSBvcgorCQkJCQkJICogc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZS4K KwkJCQkJCSAqCisJCQkJCQkgKiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQgc2V0IG5vdF91bmlx dWUgZmxhZywgd2hlbgorCQkJCQkJICogYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxl LgorCQkJCQkJICoKKwkJCQkJCSAqIFdoZW4gdGhpcmQgbm9kZSBpcyBzdGFyLCBvbmx5IHBvc3Np YmxlCisJCQkJCQkgKiBpbnRlcnByZXRhdGlvbiBpcyBzY2hlbWEudmFyaWFibGUuKiwgYnV0IHRo aXMKKwkJCQkJCSAqIHBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBub3cuCisJCQkJCQkgKi8KKwkJ CQkJCXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKworCQkJ CQkJLyoKKwkJCQkJCSAqIGNoZWNrIHBhdHRlcm4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb25s eSB3aGVuCisJCQkJCQkgKiB0aGVyZSBpcyBwb3NzaWJpbGl0eSB0byBzdWNjZXNzLgorCQkJCQkJ ICovCisJCQkJCQlpZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkp ID09IDApCisJCQkJCQl7CisJCQkJCQkJZmllbGQxX2lzX2NhdGFsb2cgPSB0cnVlOworCQkJCQkJ CXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQkJ CX0KKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQzLCBB X1N0YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJaWYgKE9p ZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9h dHRyKSkKKwkJCQkJeworCQkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQkJdmFyaWQgPSB2 YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFy b2lkX3dpdGhvdXRfYXR0cikpCisJCQkJCXsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRf YXR0cjsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIp KQorCQkJCQl7CisJCQkJCQkqYXR0cm5hbWUgPSBjOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0 aF9hdHRyOworCQkJCQl9CisKKwkJCQkJLyoKKwkJCQkJICogV2hlbiB3ZSBkaWRuJ3QgZmluZCB2 YXJpYWJsZSwgd2UgY2FuICh3aGVuIGl0IGlzCisJCQkJCSAqIGFsbG93ZWQpIHJhaXNlIGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZSBlcnJvci4KKwkJCQkJICovCisJCQkJCWlmICghT2lkSXNWYWxp ZCh2YXJpZCkgJiYgIW5vZXJyb3IgJiYgIWZpZWxkMV9pc19jYXRhbG9nKQorCQkJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJ CQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgNDoKKwkJCQl7CisJCQkJCWZpZWxkMSA9IGxpbml0 aWFsKG5hbWVzKTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9 IGx0aGlyZChuYW1lcyk7CisJCQkJCWZpZWxkNCA9IGxmb3VydGgobmFtZXMpOworCisJCQkJCUFz c2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmlu ZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMywgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZh bChmaWVsZDEpOworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisJCQkJCWMgPSBzdHJWYWwoZmll bGQzKTsKKworCQkJCQkvKgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsICJhIiBpcyB1c2VkIGFzIGNh dGFsb2cgbmFtZSAtIGNoZWNrIGl0LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChhLCBnZXRf ZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCQl7CisJCQkJCQlpZiAoIW5v ZXJyb3IpCisJCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCQlOYW1lTGlz dFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQkJfQorCisJCQkJCWlmIChJc0EoZmllbGQ0LCBTdHJp bmcpKQorCQkJCQl7CisJCQkJCQlkID0gc3RyVmFsKGZpZWxkNCk7CisJCQkJCX0KKwkJCQkJZWxz ZQorCQkJCQl7CisJCQkJCQlBc3NlcnQoSXNBKGZpZWxkNCwgQV9TdGFyKSk7CisJCQkJCQlyZXR1 cm4gSW52YWxpZE9pZDsKKwkJCQkJfQorCisJCQkJCSphdHRybmFtZSA9IGQ7CisJCQkJCXZhcmlk ID0gTG9va3VwVmFyaWFibGUoYiwgYywgdHJ1ZSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlk ZWZhdWx0OgorCQkJCWlmICghbm9lcnJvcikKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQko ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJIGVycm1zZygiaW1wcm9wZXIg cXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICVzIiwKKwkJCQkJCQkJCU5h bWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9CisK KwkJLyoKKwkJICogSWYsIHVwb24gcmV0cnksIHdlIGdldCBiYWNrIHRoZSBzYW1lIE9JRCB3ZSBk aWQgbGFzdCB0aW1lLCB0aGVuIHRoZQorCQkgKiBpbnZhbGlkYXRpb24gbWVzc2FnZXMgd2UgcHJv Y2Vzc2VkIGRpZCBub3QgY2hhbmdlIHRoZSBmaW5hbCBhbnN3ZXIuCisJCSAqIFNvIHdlJ3JlIGRv bmUuCisJCSAqCisJCSAqIElmIHdlIGdvdCBhIGRpZmZlcmVudCBPSUQsIHdlJ3ZlIGxvY2tlZCB0 aGUgdmFyaWFibGUgdGhhdCB1c2VkIHRvCisJCSAqIGhhdmUgdGhpcyBuYW1lIHJhdGhlciB0aGFu IHRoZSBvbmUgdGhhdCBkb2VzIG5vdy4gIFNvIHJlbGVhc2UgdGhlCisJCSAqIGxvY2suCisJCSAq LworCQlpZiAocmV0cnkpCisJCXsKKwkJCWlmIChvbGRfdmFyaWQgPT0gdmFyaWQpCisJCQkJYnJl YWs7CisKKwkJCWlmIChPaWRJc1ZhbGlkKG9sZF92YXJpZCkpCisJCQkJVW5sb2NrRGF0YWJhc2VP YmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBvbGRfdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7 CisJCX0KKworCQkvKgorCQkgKiBMb2NrIHRoZSB2YXJpYWJsZS4gIFRoaXMgd2lsbCBhbHNvIGFj Y2VwdCBhbnkgcGVuZGluZyBpbnZhbGlkYXRpb24KKwkJICogbWVzc2FnZXMuICBJZiB3ZSBnb3Qg YmFjayBJbnZhbGlkT2lkLCBpbmRpY2F0aW5nIG5vdCBmb3VuZCwgdGhlbgorCQkgKiB0aGVyZSdz IG5vdGhpbmcgdG8gbG9jaywgYnV0IHdlIGFjY2VwdCBpbnZhbGlkYXRpb24gbWVzc2FnZXMKKwkJ ICogYW55d2F5LCB0byBmbHVzaCBhbnkgbmVnYXRpdmUgY2F0Y2FjaGUgZW50cmllcyB0aGF0IG1h eSBiZQorCQkgKiBsaW5nZXJpbmcuCisJCSAqLworCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQor CQkJQWNjZXB0SW52YWxpZGF0aW9uTWVzc2FnZXMoKTsKKwkJZWxzZQorCQkJTG9ja0RhdGFiYXNl T2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisK KwkJLyoKKwkJICogSWYgbm8gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2VyZSBwcm9jZXNzZWQsIHdl J3JlIGRvbmUhCisJCSAqLworCQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3Nh Z2VDb3VudGVyKQorCQkJYnJlYWs7CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRfdmFyaWQgPSB2 YXJpZDsKKwkJdmFyaWQgPSBJbnZhbGlkT2lkOworCX0KKworCXJldHVybiB2YXJpZDsKK30KKwog LyoKICAqIERlY29uc3RydWN0UXVhbGlmaWVkTmFtZQogICoJCUdpdmVuIGEgcG9zc2libHktcXVh bGlmaWVkIG5hbWUgZXhwcmVzc2VkIGFzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggMjlkOTY3YTJkNWIuLmJiNDQ1ZTk0MzRiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0 aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0 aWxzL3N5c2NhY2hlLmgiCiAKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShj b25zdCBjaGFyICp2YXJOYW1lLApAQCAtMTAxLDYgKzEwMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShj b25zdCBjaGFyICp2YXJOYW1lLAogCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFy aWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAKIAl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3ZhcmNyZWF0ZV9sc24gLSAxXSA9IExTTkdldERhdHVtKEdldFhMb2dJ bnNlcnRSZWNQdHIoKSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0g TmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1l c3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKIAl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxYy4uMWNmYWVjYTUxZWEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL01ha2VmaWxlCkBAIC01MCw2ICs1MCw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwK IAlzZWNsYWJlbC5vIFwKIAlzZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0 YXRzY21kcy5vIFwKIAlzdWJzY3JpcHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQKaW5kZXggZWYwZDQwN2EzODMuLmNlMTYxOWUzMDg5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZApAQCAtMzgsNiArMzgsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0g ZmlsZXMoCiAgICdzY2hlbWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5j JywKKyAgJ3Nlc3Npb25fdmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3Jp cHRpb25jbWRzLmMnLAogICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4 IDg5ODljMGM4ODJkLi45MDJiMDIyZjljNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzM4 LDYgKzMzOCwxNiBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVk U3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBU aGUgYXJndW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNz aW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lv biB2YXJpYWJsZXMgeWV0LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlp ZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkpOworCiAJLyog UHJlcGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBF eGVjUHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4wMGExZjM3MWUwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYwpAQCAtMCwwICsxLDU1NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogc2Vzc2lvbl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24v bWFuaXB1bGF0aW9uIGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgorI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJzdG9y YWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rj b3Bwcm90LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9k YXR1bS5oIgorI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCisKKy8qCisgKiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9y ZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2YXRlIG1lbW9yeQorICogaW4gdGhlIGRlZGljYXRlZCBt ZW1vcnkgY29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQuCisg KiBUaGV5IGFyZSBzdG9yZWQgaW4gdGhlICJzZXNzaW9udmFycyIgaGFzaCB0YWJsZSwgd2hvc2Ug a2V5IGlzIHRoZSBPSUQgb2YgdGhlCisgKiB2YXJpYWJsZS4gIEhvd2V2ZXIsIHRoZSBPSUQgaXMg bm90IGdvb2QgZW5vdWdoIHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgorICogdmFyaWFibGU6IGNvbmN1 cnJlbnQgc2Vzc2lvbnMgY291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgY3JlYXRl IGEKKyAqIG5ldyBvbmUsIHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVkIHRoZSBzYW1lIE9JRC4gIFRv IGVuc3VyZSB0aGF0IHRoZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBtZW1vcnkgYW5kIHRoZSBjYXRh bG9nIGRlZmluaXRpb24gbWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFjayBvZgorICogdGhlICJjcmVh dGVfbHNuIi4gIEJlZm9yZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSB2YWx1ZXMsIHdlIG5l ZWQgdG8KKyAqIGNoZWNrIGlmIHRoZSBMU04gc3RvcmVkIGluIG1lbW9yeSBtYXRjaGVzIHRoZSBM U04gaW4gdGhlIGNhdGFsb2cuICBJZiB0aGVyZQorICogaXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRo ZSBMU05zLCBvciBpZiB0aGUgT0lEIGlzIG5vdCBwcmVzZW50IGluIHBnX3ZhcmlhYmxlCisgKiBh dCBhbGwsIHRoZSB2YWx1ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJlbGVhc2VkLgorICovCit0eXBl ZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogcGdfdmFyaWFi bGUgT0lEIG9mIHRoZSB2YXJpYWJsZSAoaGFzaCBrZXkpICovCisJWExvZ1JlY1B0cgljcmVhdGVf bHNuOworCisJYm9vbAkJaXNudWxsOworCURhdHVtCQl2YWx1ZTsKKworCU9pZAkJCXR5cGlkOwor CWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisKKwlib29sCQlpc19kb21haW47CisK KwkvKgorCSAqIGRvbWFpbl9jaGVja19leHRyYSBob2xkcyBjYWNoZWQgZG9tYWluIG1ldGFkYXRh LiAgVGhpcyAiZXh0cmEiIGlzCisJICogdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4dC4gIFdlIGRv IG5vdCBoYXZlIGFjY2VzcyB0byB0aGF0IG1lbW9yeSBjb250ZXh0CisJICogZm9yIHNlc3Npb24g dmFyaWFibGVzLCBidXQgd2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5zdGVhZC4K KwkgKiBBIGZyZXNoIHZhbHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRldGVjdCB3ZSBhcmUgaW4gYSBk aWZmZXJlbnQgdHJhbnNhY3Rpb24KKwkgKiAodGhlIGxvY2FsIHRyYW5zYWN0aW9uIElEIGRpZmZl cnMgZnJvbSBkb21haW5fY2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAqZG9tYWlu X2NoZWNrX2V4dHJhOworCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhp ZDsKKworCS8qCisJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNhbiBiZSBv dXRkYXRlZCB3aGVuIHdlIHJlY2VpdmUgYQorCSAqIHNpbnZhbCBtZXNzYWdlLiAgV2UgdGhlbiBo YXZlIHRvIGNoZWNrIGlmIHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKKwkgKiB0cnVzdHdvcnRo eS4KKwkgKi8KKwlib29sCQlpc192YWxpZDsKKworCXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNl ZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLworfSBTVmFyaWFibGVEYXRhOworCit0eXBl ZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKKworc3RhdGljIEhUQUIgKnNlc3Npb252YXJz ID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKworc3RhdGlj IE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CisKKy8qCisgKiBD YWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRpb24uCisgKi8K K3N0YXRpYyB2b2lkCitwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBj YWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJ U1ZhcmlhYmxlCXN2YXI7CisKKwllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxi YWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKKworCUFzc2VydChzZXNzaW9udmFycyk7 CisKKwkvKgorCSAqIElmIHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNpZmllZCwgd2UgaGF2ZSB0 byByZWNoZWNrIGFsbCBjdXJyZW50bHkKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiAgU2lu Y2Ugd2UgY2FuJ3QgdGVsbCB0aGUgZXhhY3Qgc2Vzc2lvbiB2YXJpYWJsZQorCSAqIGZyb20gaXRz IGhhc2h2YWx1ZSwgd2UgaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIGluIHRoZSBoYXNo IGJ1Y2tldC4KKwkgKi8KKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKwor CXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0g TlVMTCkKKwl7CisJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFz aHZhbHVlKQorCQl7CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJfQorfQorCisv KgorICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0YXRpYyB2b2lk CitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7CisJLyogY2xl YW4gdGhlIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCWlmICgh c3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+dmFsdWUpKTsK KworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0gKERhdHVtKSAw OworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBnX3ZhcmlhYmxl IGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8K K3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQor eworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFzc2VydChPaWRJ c1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9J RCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBUdXBsZUlzVmFs aWQodHApKQorCXsKKwkJLyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5vdWdoIGFzIGFu IHVuaXF1ZSBpZGVudGlmaWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0IHJlY3ljbGVk LCBhbmQgYSBuZXcgc2Vzc2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdAorCQkgKiB0aGUgc2Ft ZSBPSUQuICBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQgTFNOIHdoZW4K KwkJICogdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2YXItPmNyZWF0 ZV9sc24gPT0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFyY3JlYXRlX2xz bikKKwkJCXJlc3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwl9CisKKwly ZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBp biAic3ZhciIKKyAqLworc3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zhcmlh YmxlIHN2YXIsIE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFi bGUgdmFyZm9ybTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0dXAgPSBTZWFy Y2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlm ICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZh aWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9y bV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9IHZhcmlkOwor CXN2YXItPmNyZWF0ZV9sc24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJc3Zhci0+dHlw aWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5cGlkLCAm c3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9tYWluID0gKGdl dF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKKwlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlk ID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9IHRydWU7CisJ c3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRydWU7CisKKwlz dmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJ CQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXAp OworfQorCisvKgorICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxl LiAgSXQgaXMgY29waWVkIHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2Fy eS4KKyAqCisgKiBJZiBhbnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZhbHVlIHdvbid0 IGJlIG1vZGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFyaWFibGUoU1Zh cmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1bQkJbmV3dmFs OworCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFzc2VydChzdmFy KTsKKwlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJLyoKKwkgKiBV c2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhl eSBhcmUKKwkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3Qg YWNjZXB0ZWQgZm9yIHRoaXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFibGUgbWlnaHQg YmUgaW52YWxpZCwgZm9yY2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3ZlcndyaXRlIHRoZSBw YXNzZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgorCSAqIHRoYXQg bm8gZXJyb3IgY2FuIGJlIHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsK KwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlfc3Zh ciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlmICghaXNudWxs KQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1Zh cmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZhbHVlLCBfc3Zh ci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhv bGRjeHQpOworCX0KKwllbHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9zZXNzaW9uX3Zh cmlhYmxlX3ZhbHVlKHN2YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwi JXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3BhY2VfbmFtZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJIGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQpOworCisJLyog bm8gbW9yZSBlcnJvciBleHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUgb2xkIHZhcmlh YmxlIG5vdyAqLworCWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2YXIsIHNp emVvZihTVmFyaWFibGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlzdmFyLT5p c251bGwgPSBpc251bGw7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0 b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lv bnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0 KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkv KiByZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFj ayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2ssCisJ CQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxvbmctbGl2ZWQg bWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlBbGxvY1Nl dENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lvbiB2YXJp YWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9CisKKwlt ZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5rZXlzaXpl ID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJpYWJsZURh dGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJc2Vzc2lv bnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNfY3RsLAor CQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9CisKKy8q CisgKiBTZWFyY2ggYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdpdmVuIGl0 cyBPSUQuICBJZiBpdAorICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQgdGhlcmUuCisg KgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVj a3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFj Y2Vzc1NoYXJlTG9jayBvbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhlIGVuZCBv ZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKwor CS8qIHByb3RlY3QgdGhlIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlM b2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hh cmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNo dGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmIChmb3VuZCkK Kwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0aGVyZSB3 YXMgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQor CQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9n LgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKKwkJCQlz dmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5v dCBiZSB2YWxpZGF0ZWQsIHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXItPmlzX3ZhbGlk ID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRpYWxpemVk IHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxpZGF0ZWQuCisJ ICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUo c3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVz XCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBSRUFE KSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJIHZh cmlkKTsKKwl9CisKKwkvKiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3RpbGwgb2YgdGhl IGNvcnJlY3QgZG9tYWluICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8qCisJCSAq IFN0b3JlICJleHRyYSIgZm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0aW9uQ29udGV4 dC4gIFdoZW4gd2UKKwkJICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21haW5fY2hlY2tf ZXh0cmEgY2FjaGUgaXMgbm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8KKwkJaWYgKHN2 YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCQkJc3Zh ci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2soc3Zhci0+dmFs dWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFyLT5kb21haW5f Y2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJldHVybiBzdmFy OworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lvbiB2YXJpYWJs ZSBpbiB0aGUgY2FjaGUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9p bmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5j dGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgorICogdmFyaWFi bGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1NldFNlc3Np b25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKK3sKKwlTVmFy aWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBzZXNzaW9uIHZh cmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0 aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFycykK KwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1ZhcmlhYmxl KSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VOVEVS LCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUo c3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVz XCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBXUklU RSkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3Bh Y2Uoc3Zhci0+dmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZh cmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQgd29uJ3QgY2hh bmdlIHRoZSBzdG9yZWQgdmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YWx1 ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzdG9y ZWQgaW4gYSB2YXJpYWJsZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9zZXNzaW9u X3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJRGF0dW0J CXZhbHVlOworCisJLyogZm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlmICghc3Zh ci0+aXNudWxsKQorCXsKKwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2YXItPnR5 cGJ5dmFsLCBzdmFyLT50eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVsc2UKKwl7 CisJCXZhbHVlID0gKERhdHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwlyZXR1cm4g dmFsdWU7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNl c3Npb24gdmFyaWFibGUgKGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4dCkuICBUaGUg Y2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0dW0K K0dldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCkK K3sKKwlTVmFyaWFibGUJc3ZhcjsKKworCXN2YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJp ZCk7CisKKwkvKgorCSAqIEFsdGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0 aGlzIHBvaW50LCBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxp ZGF0aW9uIG1lc3NhZ2Ugd3MgcHJvY2Vzc2VkIGR1cmluZyB0aGUgZG9tYWluIGNoZWNrLgorCSAq IEJ1dCB0aGUgdmFyaWFibGUgYW5kIGFsbCBpdHMgZGVwZW5kZW5jaWVzIGFyZSBsb2NrZWQgbm93 LCBzbyB3ZSBkb24ndCBuZWVkCisJICogdG8gcmVwZWF0IHRoZSB2YWxpZGF0aW9uLgorCSAqLwor CUFzc2VydChzdmFyKTsKKworCSp0eXBpZCA9IHN2YXItPnR5cGlkOworCisJcmV0dXJuIGNvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgorICogUmV0dXJu cyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFmdGVyIGNoZWNr aW5nIGlmIHRoZQorICogdHlwZSBpcyB0aGUgc2FtZSBhcyAiZXhwZWN0ZWRfdHlwaWQiLiAgVGhl IGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKKyAqIHBlcm1pc3Npb24gY2hlY2tzLgorICovCitE YXR1bQorR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlz TnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKQoreworCVNWYXJpYWJsZQlzdmFyOworCisJc3ZhciA9 IGdldF9zZXNzaW9uX3ZhcmlhYmxlKHZhcmlkKTsKKworCUFzc2VydChzdmFyICYmIHN2YXItPmlz X3ZhbGlkKTsKKworCWlmIChleHBlY3RlZF90eXBpZCAhPSBzdmFyLT50eXBpZCkKKwkJZWxvZyhF UlJPUiwgInR5cGUgb2YgdmFyaWFibGUgXCIlcy4lc1wiIGlzIGRpZmZlcmVudCB0aGFuIGV4cGVj dGVkIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJ cmV0dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisv KgorICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHRo ZSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFt cywKKwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAorCQkJICAgUXVlcnlDb21wbGV0 aW9uICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9kZShRdWVyeSwgc3RtdC0+cXVl cnkpOworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2ZXIgKmRlc3Q7CisJQWNsUmVz dWx0CWFjbHJlc3VsdDsKKwlQbGFubmVkU3RtdCAqcGxhbjsKKwlRdWVyeURlc2MgICpxdWVyeURl c2M7CisJT2lkCQkJdmFyaWQgPSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisKKwlBc3NlcnQoT2lk SXNWYWxpZCh2YXJpZCkpOworCisJLyogZG8gd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIHdyaXRlIHRv IHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhW YXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYg KGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBP QkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCS8q IGNyZWF0ZSBhIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVWYXJpYWJs ZURlc3RSZWNlaXZlcih2YXJpZCk7CisKKwkvKiBydW4gdGhlIHF1ZXJ5IHJld3JpdGVyICovCisJ cXVlcnkgPSBjb3B5T2JqZWN0KHF1ZXJ5KTsKKworCXJld3JpdHRlbiA9IFF1ZXJ5UmV3cml0ZShx dWVyeSk7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKworCXF1ZXJ5 ID0gbGluaXRpYWxfbm9kZShRdWVyeSwgcmV3cml0dGVuKTsKKwlBc3NlcnQocXVlcnktPmNvbW1h bmRUeXBlID09IENNRF9TRUxFQ1QpOworCisJLyogcGxhbiB0aGUgcXVlcnkgKi8KKwlwbGFuID0g cGdfcGxhbl9xdWVyeShxdWVyeSwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkgQ1VSU09S X09QVF9QQVJBTExFTF9PSywgcGFyYW1zKTsKKworCS8qCisJICogVXNlIGEgc25hcHNob3Qgd2l0 aCBhbiB1cGRhdGVkIGNvbW1hbmQgSUQgdG8gZW5zdXJlIHRoaXMgcXVlcnkgc2VlcyB0aGUKKwkg KiByZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBjb3Vs ZCBvbmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRseS1z dGFibGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRzLCBi dXQgbGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJICog Y29kZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNob3Qo KSk7CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIGNyZWF0ZSBhIFF1 ZXJ5RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLworCXF1 ZXJ5RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJ CQkJCQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlkZXN0 LCBwYXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBwcmVw YXJlIHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywg MCk7CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiAgVGhlIHJlc3VsdCBz aG91bGQgYmUgb25seSBvbmUgcm93LiAgVG8KKwkgKiBjaGVjayBpZiB0aGVyZSBhcmUgdG9vIG1h bnkgcmVzdWx0IHJvd3MsIHdlIHRyeSB0byBmZXRjaCB0d28uCisJICovCisJRXhlY3V0b3JSdW4o cXVlcnlEZXNjLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgMkwpOworCisJLyogc2F2ZSB0aGUgcm93 Y291bnQgaWYgd2UncmUgZ2l2ZW4gYSBRdWVyeUNvbXBsZXRpb24gdG8gZmlsbCAqLworCWlmIChx YykKKwkJU2V0UXVlcnlDb21wbGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0 ZS0+ZXNfcHJvY2Vzc2VkKTsKKworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNo KHF1ZXJ5RGVzYyk7CisJRXhlY3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2Mo cXVlcnlEZXNjKTsKKworCVBvcEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxl CmluZGV4IDExMTE4ZDBjZTAyLi43MTI0OGEzNGYyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKQEAg LTc2LDYgKzc2LDcgQEAgT0JKUyA9IFwKIAlub2RlV2luZG93QWdnLm8gXAogCW5vZGVXb3JrdGFi bGVzY2FuLm8gXAogCXNwaS5vIFwKKwlzdmFyaWFibGVSZWNlaXZlci5vIFwKIAl0cXVldWUubyBc CiAJdHN0b3JlUmVjZWl2ZXIubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCA4OTUxNGY3 YTRmMC4uOWI1NTg2MWVhNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtOTkxLDYgKzk5 MSw0MSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJ CQkJCXNjcmF0Y2guZC5wYXJhbS5wYXJhbXR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOwogCQkJCQkJ RXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwogCQkJCQkJYnJlYWs7CisKKwkJCQkJ Y2FzZSBQQVJBTV9WQVJJQUJMRToKKwkJCQkJCXsKKwkJCQkJCQlpbnQJCQllc19udW1fc2Vzc2lv bl92YXJpYWJsZXMgPSAwOworCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9u X3ZhcmlhYmxlcyA9IE5VTEw7CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnZhcjsKKwor CQkJCQkJCWlmIChzdGF0ZS0+cGFyZW50ICYmIHN0YXRlLT5wYXJlbnQtPnN0YXRlKQorCQkJCQkJ CXsKKwkJCQkJCQkJZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9 IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJ fQorCisJCQkJCQkJQXNzZXJ0KGVzX3Nlc3Npb25fdmFyaWFibGVzKTsKKworCQkJCQkJCS8qIHBh cmFtZXRlciBzYW5pdHkgY2hlY2tzICovCisJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVz X251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2Yg UEFSQU1fVkFSSUFCTEUgcGFyYW0gaXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQl2YXIgPSAm ZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJaWYgKHZhci0+ dHlwaWQgIT0gcGFyYW0tPnBhcmFtdHlwZSkKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInR5cGUgb2Yg YnVmZmVyZWQgdmFsdWUgaXMgZGlmZmVyZW50IHRoYW4gUEFSQU1fVkFSSUFCTEUgdHlwZSIpOwor CisJCQkJCQkJLyoKKwkJCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2Ug YQorCQkJCQkJCSAqIGNvbnN0YW50LgorCQkJCQkJCSAqLworCQkJCQkJCXNjcmF0Y2gub3Bjb2Rl ID0gRUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZh bHVlOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJ CQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQl9CisJCQkJCQli cmVhazsKKwogCQkJCQljYXNlIFBBUkFNX0VYVEVSTjoKIAogCQkJCQkJLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjTWFpbi5jCmluZGV4IGEwNjI5NWI2YmE3Li5hNDlmZTU2MDM2NSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjTWFpbi5jCkBAIC00Myw3ICs0Myw5IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNp bmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9u LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L21hdHZpZXcuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBsYW4uaCIKQEAgLTE5Myw2ICsxOTUsNzEgQEAg c3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykK IAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291 cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4dDsKIAorCS8qCisJICogVGhlIGV4ZWN1dG9y IGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YK KwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQg YXJyYXksIGFuZCB0aGlzIGFycmF5CisJICogaXMgcGFzc2VkIHRvIHRoZSBleGVjdXRvci4gVGhp cyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90IiBvZiB2YWx1ZXMgb2YKKwkgKiB1c2VkIHNlc3Np b24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhyZWUgYmVuZWZpdHMgb2YgdGhpcyBzdHJhdGVneToK KwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0ZXJzIGFuZCBwbHBn c3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHBhcmFs bGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFrZSBmcmVzaCBjb3B5IGZvciBh bnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlCisJICogICAgKHRoaXMgaXMgbmVjZXNzYXJ5IGJl Y2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuCisJICogICAgYmUg Y2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNl IHRvCisJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4K KwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7 CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkg KiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2Ug aGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVz ZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1Bh cmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5 RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0aGUg YXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAq LworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVl ICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxl VmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJpZCwg cXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJLyoKKwkJ CSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uIGFsbCBleHBsaWNpdGx5 IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0aGUgcXVlcnkuIEZvciBpbXBsaWNpdGx5IHVzZWQg dmFyaWFibGUKKwkJCSAqIChsaWtlIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0KSB3 ZSBjYW5ub3QgZG8gcGVybWlzc2lvbgorCQkJICogY2hlY2ssIGJlY2F1c2Ugd2UgbmVlZCByZWFk IHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhhdmUKKwkJCSAqIG9ubHkgVVBEQVRFIHZhcmlhYmxl KS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNzaW9uIGNoZWNrCisJCQkgKiBpcyBleGVjdXRlZCBp biB3cml0ZSB0aW1lLgorCQkJICovCisJCQlpZiAodmFyaWQgIT0gcXVlcnlEZXNjLT5wbGFubmVk c3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkKQorCQkJeworCQkJCUFjbFJlc3VsdAlhY2xy ZXN1bHQ7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlv bklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJCWlm IChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3Vs dCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSk7CisJCQl9CisKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFy aWQgPSB2YXJpZDsKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPSBH ZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCisJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNz aW9uX3ZhcmlhYmxlc1tpXS5pc251bGwsCisJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNz aW9uX3ZhcmlhYmxlc1tpXS50eXBpZCk7CisKKwkJCWkrKzsKKwkJfQorCisJCWVzdGF0ZS0+ZXNf bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gblNlc3Npb25WYXJpYWJsZXM7CisJfQorCiAJLyoKIAkg KiBGaWxsIGluIHRoZSBxdWVyeSBlbnZpcm9ubWVudCwgaWYgYW55LCBmcm9tIHF1ZXJ5RGVzYy4K IAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKaW5kZXggMmNlYTQxZjg3NzEuLjQ5MTA5MmZj YzRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAorKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZApAQCAtNjQsNiArNjQsNyBAQCBiYWNrZW5k X3NvdXJjZXMgKz0gZmlsZXMoCiAgICdub2RlV2luZG93QWdnLmMnLAogICAnbm9kZVdvcmt0YWJs ZXNjYW4uYycsCiAgICdzcGkuYycsCisgICdzdmFyaWFibGVSZWNlaXZlci5jJywKICAgJ3RxdWV1 ZS5jJywKICAgJ3RzdG9yZVJlY2VpdmVyLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM2 MTYzZmIzNmY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuYwpAQCAtMCwwICsxLDE3MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgor ICogc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoJICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBEZXN0UmVj ZWl2ZXIgdGhhdCBzdG9yZXMgdGhlIHJlc3VsdCB2YWx1ZSBpbgorICoJICBhIHNlc3Npb24gdmFy aWFibGUuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5U SUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMK KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKyNp bmNsdWRlICJtaXNjYWRtaW4uaCIKKworI2luY2x1ZGUgImFjY2Vzcy9kZXRvYXN0LmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2lu Y2x1ZGUgInN0b3JhZ2UvbG9jay5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKwor LyoKKyAqIFRoaXMgRGVzdFJlY2VpdmVyIGlzIHVzZWQgYnkgdGhlIExFVCBjb21tYW5kIGZvciBz dG9yaW5nIHRoZSByZXN1bHQgdG8gYQorICogc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSByZXN1bHQg aGFzIHRvIGhhdmUgb25seSBvbmUgdHVwbGUgd2l0aCBvbmx5IG9uZQorICogbm9uLWRlbGV0ZWQg YXR0cmlidXRlLiAgVGhlIHJvdyBjb3VudGVyIChmaWVsZCAicm93cyIpIGlzIGluY3JlbWVudGVk CisgKiBhZnRlciByZWNlaXZpbmcgYSByb3csIGFuZCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiB0 aGVyZSBhcmUgbm8gcm93cyBvcgorICogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQg cm93cy4gIEEgcmVjZWl2ZWQgdHVwbGUgY2Fubm90IHRvIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmli dXRlcy4gIFRoZSB2YWx1ZSBpcyBkZXRvYXN0ZWQgYmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisg KiBzZXNzaW9uIHZhcmlhYmxlLgorICovCit0eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZl ciBwdWI7CisJT2lkCQkJdmFyaWQ7CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkJLyogZG8gd2UgbmVl ZCB0byBkZXRvYXN0IHRoZSBhdHRyaWJ1dGU/ICovCisJaW50CQkJcm93czsJCQkJLyogcm93IGNv dW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8qCisgKiBQcmVwYXJlIHRvIHJlY2VpdmUg dHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVTdGFydHVw UmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlw ZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikg c2VsZjsKKwlMT0NLVEFHCQlsb2NrdGFnIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwlGb3Jt X3BnX2F0dHJpYnV0ZSBhdHRyOworCU9pZAkJCXR5cGlkIFBHX1VTRURfRk9SX0FTU0VSVFNfT05M WTsKKwlPaWQJCQljb2xsaWQgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCWludDMyCQl0eXBt b2QgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRl c3QgPT0gRGVzdFZhcmlhYmxlKTsKKwlBc3NlcnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkp OworCUFzc2VydChTZWFyY2hTeXNDYWNoZUV4aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZh cmlkKSk7CisJQXNzZXJ0KHR5cGVpbmZvLT5uYXR0cyA9PSAxKTsKKworI2lmZGVmIFVTRV9BU1NF UlRfQ0hFQ0tJTkcKKworCVNFVF9MT0NLVEFHX09CSkVDVChsb2NrdGFnLAorCQkJCQkgICBNeURh dGFiYXNlSWQsCisJCQkJCSAgIFZhcmlhYmxlUmVsYXRpb25JZCwKKwkJCQkJICAgbXlTdGF0ZS0+ dmFyaWQsCisJCQkJCSAgIDApOworCisJQXNzZXJ0KExvY2tIZWxkQnlNZSgmbG9ja3RhZywgQWNj ZXNzU2hhcmVMb2NrLCBmYWxzZSkpOworCisjZW5kaWYKKworCWF0dHIgPSBUdXBsZURlc2NBdHRy KHR5cGVpbmZvLCAwKTsKKworCUFzc2VydCghYXR0ci0+YXR0aXNkcm9wcGVkKTsKKworI2lmZGVm IFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKworCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9k X2NvbGxpZChteVN0YXRlLT52YXJpZCwKKwkJCQkJCQkJCQkJJnR5cGlkLAorCQkJCQkJCQkJCQkm dHlwbW9kLAorCQkJCQkJCQkJCQkmY29sbGlkKTsKKworCUFzc2VydChhdHRyLT5hdHR0eXBpZCA9 PSB0eXBpZCk7CisJQXNzZXJ0KGF0dHItPmF0dHR5cG1vZCA8IDAgfHwgYXR0ci0+YXR0dHlwbW9k ID09IHR5cG1vZCk7CisKKyNlbmRpZgorCisJbXlTdGF0ZS0+bmVlZF9kZXRvYXN0ID0gYXR0ci0+ YXR0bGVuID09IC0xOworCW15U3RhdGUtPnJvd3MgPSAwOworfQorCisvKgorICogUmVjZWl2ZSBh IHR1cGxlIGZyb20gdGhlIGV4ZWN1dG9yIGFuZCBzdG9yZSBpdCBpbiB0aGUgc2Vzc2lvbiB2YXJp YWJsZS4KKyAqLworc3RhdGljIGJvb2wKK3N2YXJpYWJsZVJlY2VpdmVTbG90KFR1cGxlVGFibGVT bG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3Rh dGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlEYXR1bQkJdmFsdWU7CisJYm9vbAkJaXNu dWxsOworCWJvb2wJCWZyZWV2YWwgPSBmYWxzZTsKKworCS8qIG1ha2Ugc3VyZSB0aGUgdHVwbGUg aXMgZnVsbHkgZGVjb25zdHJ1Y3RlZCAqLworCXNsb3RfZ2V0YWxsYXR0cnMoc2xvdCk7CisKKwl2 YWx1ZSA9IHNsb3QtPnR0c192YWx1ZXNbMF07CisJaXNudWxsID0gc2xvdC0+dHRzX2lzbnVsbFsw XTsKKworCWlmIChteVN0YXRlLT5uZWVkX2RldG9hc3QgJiYgIWlzbnVsbCAmJiBWQVJBVFRfSVNf RVhURVJOQUwoRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkpCisJeworCQl2YWx1ZSA9IFBvaW50ZXJH ZXREYXR1bShkZXRvYXN0X2V4dGVybmFsX2F0dHIoKHN0cnVjdCB2YXJsZW5hICopCisJCQkJCQkJ CQkJCQkJICBEYXR1bUdldFBvaW50ZXIodmFsdWUpKSk7CisJCWZyZWV2YWwgPSB0cnVlOworCX0K KworCW15U3RhdGUtPnJvd3MgKz0gMTsKKworCWlmIChteVN0YXRlLT5yb3dzID4gMSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1RPT19NQU5ZX1JPV1MpLAorCQkJCSBl cnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3ciKSkpOworCisJU2V0 U2Vzc2lvblZhcmlhYmxlKG15U3RhdGUtPnZhcmlkLCB2YWx1ZSwgaXNudWxsKTsKKworCWlmIChm cmVldmFsKQorCQlwZnJlZShEYXR1bUdldFBvaW50ZXIodmFsdWUpKTsKKworCXJldHVybiB0cnVl OworfQorCisvKgorICogQ2xlYW4gdXAgYXQgZW5kIG9mIHRoZSBleGVjdXRvciBydW4KKyAqLwor c3RhdGljIHZvaWQKK3N2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxm KQoreworCWlmICgoKFNWYXJpYWJsZVN0YXRlICopIHNlbGYpLT5yb3dzID09IDApCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OT19EQVRBX0ZPVU5EKSwKKwkJCQkgZXJy bXNnKCJleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MiKSkpOworfQorCisvKgorICogRGVzdHJv eSB0aGUgcmVjZWl2ZXIgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIGl0CisgKi8KK3N0YXRpYyB2b2lk CitzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmKQoreworCXBmcmVl KHNlbGYpOworfQorCisvKgorICogSW5pdGlhbGx5IGNyZWF0ZSBhIERlc3RSZWNlaXZlciBvYmpl Y3QuCisgKi8KK0Rlc3RSZWNlaXZlciAqCitDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQg dmFyaWQpCit7CisJU1ZhcmlhYmxlU3RhdGUgKnNlbGYgPSAoU1ZhcmlhYmxlU3RhdGUgKikgcGFs bG9jMChzaXplb2YoU1ZhcmlhYmxlU3RhdGUpKTsKKworCXNlbGYtPnB1Yi5yZWNlaXZlU2xvdCA9 IHN2YXJpYWJsZVJlY2VpdmVTbG90OworCXNlbGYtPnB1Yi5yU3RhcnR1cCA9IHN2YXJpYWJsZVN0 YXJ0dXBSZWNlaXZlcjsKKwlzZWxmLT5wdWIuclNodXRkb3duID0gc3ZhcmlhYmxlU2h1dGRvd25S ZWNlaXZlcjsKKwlzZWxmLT5wdWIuckRlc3Ryb3kgPSBzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXI7 CisJc2VsZi0+cHViLm15ZGVzdCA9IERlc3RWYXJpYWJsZTsKKworCXNlbGYtPnZhcmlkID0gdmFy aWQ7CisKKwlyZXR1cm4gKERlc3RSZWNlaXZlciAqKSBzZWxmOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YwppbmRleCBkZjc3OTEzN2M5ZC4uNTZhOGZlNWQ3NGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBA IC00MzQxLDYgKzQzNDEsMTYgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2Rl ICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfTGV0 U3RtdDoKKwkJCXsKKwkJCQlMZXRTdG10ICAgICpzdG10ID0gKExldFN0bXQgKikgbm9kZTsKKwor CQkJCWlmIChXQUxLKHN0bXQtPnRhcmdldCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChX QUxLKHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJ Y2FzZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsKIAkJCQlQTEFzc2lnblN0bXQgKnN0bXQgPSAoUExB c3NpZ25TdG10ICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXgg ZTkyZTEwOGI2YjYuLjExZjczNmI0Mzc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jCkBAIC0zMzMsNiArMzMzLDkgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNv bnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBs YW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRyYW5zaWVudFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBl bmRzT25Sb2xlID0gZmFsc2U7CisJZ2xvYi0+c2Vzc2lvblZhcmlhYmxlcyA9IE5JTDsKKwlnbG9i LT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IEludmFsaWRPaWQ7CisJZ2xvYi0+Y2hlY2tTZWxlY3RQ ZXJtVmFyaWRzID0gTlVMTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJs ZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU2Nyw2ICs1NzAs MTcgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2It PnBhcmFtRXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBidXQgd2Ug bWlnaHQgYXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBhcnNlLT51 dGlsaXR5U3RtdDsKKworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25W YXJpYWJsZXM7CisKKwkvKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgKGFuZCBvbmx5 IHVzZWQpIGxpa2UgYmFzZSBub2RlCisJICogZm9yIGFzc2lnbmVtbnQgaW5kaXJlY3Rpb24gc2hv dWxkIGJlIGV4Y2x1ZGVkIGZyb20gcGVybWlzc2lvbgorCSAqIGNoZWNrLgorCSAqLworCWlmICgh Ym1zX2lzX21lbWJlcihnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCwgZ2xvYi0+Y2hlY2tTZWxl Y3RQZXJtVmFyaWRzKSkKKwkJcmVzdWx0LT5leGNsU2VsZWN0UGVybUNoZWNrVmFyaWQgPSBnbG9i LT5iYXNlbm9kZVNlc3Npb25WYXJpZDsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNl LT5zdG10X2xvY2F0aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAK QEAgLTczNyw2ICs3NTEsMTMgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9i LCBRdWVyeSAqcGFyc2UsIFBsYW5uZXJJbmZvICpwYXJlbnRfcm9vdCwKIAkgKi8KIAlwdWxsX3Vw X3N1YnF1ZXJpZXMocm9vdCk7CiAKKwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNl cyBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMg c2hvdWxkIGJlIHRydWUgaWYgdGhlIHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICog c2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhy b290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZs YXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBp dCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCA4MTM2MzU4OTEyNS4uOTVlODUzODExNzUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAsOSBAQCBz dGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAq cm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2Vz KFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAog CQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNz aW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5m byAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBs YW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpA QCAtMTMwOSw2ICsxMzEyLDUwIEBAIHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJvb3QsIFBs YW4gKnBsYW4sIGludCBydG9mZnNldCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAqIFNlYXJj aCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWJxdWVyaWVzCisgKi8KK3ZvaWQKK3B1 bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KQoreworCVF1ZXJ5 CSAgICpxdWVyeSA9IHJvb3QtPnBhcnNlOworCisJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzKQorCXsKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UK Kwl7CisJCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwKKwkJCQkJCQkJIHB1bGxfdXBf aGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDAp OworCX0KK30KKworc3RhdGljIGJvb2wKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dh bGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlpZiAobm9kZSA9PSBOVUxM KQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlRdWVyeQkg ICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKworCQlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJp YWJsZXMpCisJCXsKKwkJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCQkJcmV0 dXJuIGZhbHNlOworCQl9CisKKwkJLyogcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8KKwkJcmV0 dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAorCQkJCQkJCQkgcHVsbF91cF9o YXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7 CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHB1bGxfdXBfaGFzX3Nl c3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICAodm9pZCAqKSByb290KTsKK30KKwog LyoKICAqIHNldF9pbmRleG9ubHlzY2FuX3JlZmVyZW5jZXMKICAqCQlEbyBzZXRfcGxhbl9yZWZl cmVuY2VzIHByb2Nlc3Npbmcgb24gYW4gSW5kZXhPbmx5U2NhbgpAQCAtMTk1Nyw4ICsyMDA0LDkg QEAgY29weVZhcihWYXIgKnZhcikKICAqIFRoaXMgaXMgY29kZSB0aGF0IGlzIGNvbW1vbiB0byBh bGwgdmFyaWFudHMgb2YgZXhwcmVzc2lvbi1maXhpbmcuCiAgKiBXZSBtdXN0IGxvb2sgdXAgb3Bl cmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKICAqIGFkZCBP SURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9p ZHMsIGFuZAotICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25z IGludG8gcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4KLSAqIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4g aW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkgZXhwcmVzc2lvbnMuCisgKiBhZGQgUGxhbkludmFs SXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGlu dG8KKyAqIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuICBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGlu ZGV4IGxpc3RzIGZvciBHUk9VUElORygpCisgKiBleHByZXNzaW9ucy4KICAqCiAgKiBXZSBhc3N1 bWUgaXQncyBva2F5IHRvIHVwZGF0ZSBvcGNvZGUgaW5mbyBpbi1wbGFjZS4gIFNvIHRoaXMgY291 bGQgcG9zc2libHkKICAqIHNjcmliYmxlIG9uIHRoZSBwbGFubmVyJ3MgaW5wdXQgZGF0YSBzdHJ1 Y3R1cmVzLCBidXQgaXQncyBPSy4KQEAgLTIwNDgsNiArMjA5NiwxMyBAQCBmaXhfZXhwcl9jb21t b24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJCQkJZy0+Y29scyA9IGNvbHM7CiAJ CX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0g KFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkK KwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3kocm9vdCwgcC0+cGFyYW12YXJpZCk7 CisJfQogfQogCiAvKgpAQCAtMjA1Nyw2ICsyMTEyLDEwIEBAIGZpeF9leHByX2NvbW1vbihQbGFu bmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKICAqIElmIGl0J3MgYSBQQVJBTV9NVUxUSUVYUFIs IHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0gZnJvbQogICogcm9vdC0+bXVs dGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBuZWVkZWQuCiAgKiBKdXN0IGZv ciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGluIGVpdGhlciBj YXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwgdGhlbiB3ZSBjb2xsZWN0IHVz ZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIHRoZSBsaXN0IHJvb3QtPmdsb2ItPnNlc3Npb25W YXJpYWJsZS4gIEFsc28sIGFzc2lnbiB0aGUgcGFyYW1ldGVyJ3MKKyAqICJwYXJhbWlkIiB0byB0 aGUgcGFyYW1ldGVyJ3MgcG9zaXRpb24gaW4gdGhhdCBsaXN0LgogICovCiBzdGF0aWMgTm9kZSAq CiBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCkBAIC0yMDc1LDYg KzIxMzQsNjAgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQog CQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUEFSQU1fTVVMVElFWFBSIElEOiAlZCIsIHAtPnBh cmFtaWQpOwogCQlyZXR1cm4gY29weU9iamVjdChsaXN0X250aChwYXJhbXMsIGNvbG5vIC0gMSkp OwogCX0KKworCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlpbnQJ CQluID0gMDsKKwkJYm9vbAkJZm91bmQgPSBmYWxzZTsKKworCQkvKiB3ZSB3aWxsIG1vZGlmeSBv YmplY3QgKi8KKwkJcCA9IChQYXJhbSAqKSBjb3B5T2JqZWN0KHApOworCisJCS8qCisJCSAqIE5v dywgd2UgY2FuIGFjdHVhbGl6ZSBsaXN0IG9mIHNlc3Npb24gdmFyaWFibGVzLCBhbmQgd2UgY2Fu CisJCSAqIGNvbXBsZXRlIHBhcmFtaWQgcGFyYW1ldGVyLgorCQkgKi8KKwkJZm9yZWFjaF9vaWQo dmFyaWQsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCWlmICh2YXJpZCA9 PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAtPnBhcmFtaWQgPSBuOworCQkJCWZvdW5kID0g dHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4gKz0gMTsKKwkJfQorCisJCWlmICghZm91bmQp CisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBsYXBwZW5kX29pZChyb290 LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJCQkJCQkJCQkJCSAgIHAtPnBhcmFtdmFyaWQp OworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKworCQkvKgorCQkgKiBGb3IgZm9sbG93aW5nIHBl cm1pc3Npb24gY2hlY2sgd2UgbmVlZCB0byBjb2xsZWN0IGluZm9ybWF0aW9uCisJCSAqIGlmIHZh cmlhYmxlIGlzIHVzZWQgKGFuZCBvbmx5IHVzZWQpIGxpa2UgYmFzZSBub2RlIG9mIGFzc2lnbm1l bnQKKwkJICogaW5kaXJlY3Rpb24uIEluIHRoaXMgY2FzZSB3ZSBtdXN0IG5vdCBkbyBTRUxFQ1Qg cGVybWlzc2lvbiBjaGVjay4KKwkJICogSW4gb3RoZXIgY2FzZXMgd2UgaGF2ZSBkbyBTRUxFQ1Qg cGVybWlzc2lvbiBjaGVjay4KKwkJICovCisJCWlmIChwLT5wYXJhbWJhc2Vub2RlKQorCQl7CisJ CQkvKiB0aGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgb25seSBvbmNlIGFzIGJhc2Ugbm9kZSAqLwor CQkJQXNzZXJ0KCEoT2lkSXNWYWxpZChyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkp KTsKKworCQkJcm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQgPSBwLT5wYXJhbXZhcmlk OworCQl9CisJCWVsc2UKKwkJeworCQkJcm9vdC0+Z2xvYi0+Y2hlY2tTZWxlY3RQZXJtVmFyaWRz ID0KKwkJCQkJCQkgIGJtc19hZGRfbWVtYmVyKHJvb3QtPmdsb2ItPmNoZWNrU2VsZWN0UGVybVZh cmlkcywKKwkJCQkJCQkJCQkJIHAtPnBhcmFtdmFyaWQpOworCQl9CisKKwkJcmV0dXJuIChOb2Rl ICopIHA7CisJfQorCiAJcmV0dXJuIChOb2RlICopIGNvcHlPYmplY3QocCk7CiB9CiAKQEAgLTIx MzYsNyArMjI0OSwxMCBAQCBmaXhfYWx0ZXJuYXRpdmVfc3VicGxhbihQbGFubmVySW5mbyAqcm9v dCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4sCiAgKiByZXBsYWNpbmcgQWdncmVmIG5vZGVz IHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGluaXRwbGFuIG91dHB1dCBQYXJhbXMsCiAgKiBj aG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlvbiBmb3IgQWx0ZXJuYXRpdmVTdWJQbGFucywK ICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRl ZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGlu dG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgorICogYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFz cyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywKKyAqIGFzc2lnbmlu ZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxFIHBhcmFtcywgYW5kIGNvbGxlY3RpbmcgdGhl CisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHRoZSByb290LT5nbG9iLT5zZXNzaW9u VmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZhcmlkIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3QpLgogICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Np b24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9mZnNldCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2 YXJub3MgYnkKQEAgLTIxNTgsNyArMjI3NCw4IEBAIGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8g KnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9mZnNldCwgZG91YmxlIG51bV9leGVjKQogCQlyb290 LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8fAogCQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAw IHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9IE5JTCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2 ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhh c1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlyZXR1cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5v ZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNTM2LDYgKzM2NTMsMjUgQEAgcmVjb3JkX3BsYW5fdHlw ZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlwaWQpCiAJfQogfQogCisvKgor ICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHZhcmlhYmxl IGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gZXhwcmVzc2lvbiBs aXN0LCBvciBhcyB0aGUgdGFyZ2V0IG9mIGEgTEVUIHN0YXRlbWVudC4KKyAqLworc3RhdGljIHZv aWQKK3JlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9p ZCB2YXJpZCkKK3sKKwlQbGFuSW52YWxJdGVtICppbnZhbF9pdGVtID0gbWFrZU5vZGUoUGxhbklu dmFsSXRlbSk7CisKKwkvKiBwYXJhbWlkIGlzIHN0aWxsIHNlc3Npb24gdmFyaWFibGUgaWQgKi8K KwlpbnZhbF9pdGVtLT5jYWNoZUlkID0gVkFSSUFCTEVPSUQ7CisJaW52YWxfaXRlbS0+aGFzaFZh bHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAorCQkJCQkJCQkJCQkJICBP YmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwkvKiBhcHBlbmQgdGhpcyB2YXJpYWJsZSB0byBn bG9iYWwsIHJlZ2lzdGVyIGRlcGVuZGVuY3kgKi8KKwlyb290LT5nbG9iLT5pbnZhbEl0ZW1zID0g bGFwcGVuZChyb290LT5nbG9iLT5pbnZhbEl0ZW1zLAorCQkJCQkJCQkJIGludmFsX2l0ZW0pOwor fQorCiAvKgogICogZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXMKICAqCQlHaXZlbiBhIHJld3Jp dHRlbiwgYnV0IG5vdCB5ZXQgcGxhbm5lZCwgcXVlcnkgb3IgcXVlcmllcwpAQCAtMzYyMSw5ICsz NzU3LDkgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBs YW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQogCiAJCQkvKgotCQkJICogSWdub3JlIG90aGVyIHV0 aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExBSU4pCi0JCQkgKiB0 aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5LiAgRm9yIHRob3NlLCB3 ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRpb24gdG8gdGhlIGNvbnRh aW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2Vw dCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJCQkgKiBvciBMRVQpIHRoYXQgY29udGFpbiBhIHBh cnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IgdGhvc2UsCisJCQkgKiB3ZSBqdXN0IG5l ZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgogCQkJ ICovCiAJCQlxdWVyeSA9IFV0aWxpdHlDb250YWluc1F1ZXJ5KHF1ZXJ5LT51dGlsaXR5U3RtdCk7 CiAJCQlpZiAocXVlcnkgPT0gTlVMTCkKQEAgLTM2NDYsNiArMzc4MiwxMCBAQCBleHRyYWN0X3F1 ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQp CiAJCQkJCWxhcHBlbmRfb2lkKGNvbnRleHQtPmdsb2ItPnJlbGF0aW9uT2lkcywgcnRlLT5yZWxp ZCk7CiAJCX0KIAorCQkvKiByZWNvcmQgZGVwZW5kZW5jeSBvbiB0aGUgdGFyZ2V0IHZhcmlhYmxl IG9mIGEgTEVUIGNvbW1hbmQgKi8KKwkJaWYgKE9pZElzVmFsaWQocXVlcnktPnJlc3VsdFZhcmlh YmxlKSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koY29udGV4dCwgcXVlcnkt PnJlc3VsdFZhcmlhYmxlKTsKKwogCQkvKiBBbmQgcmVjdXJzZSBpbnRvIHRoZSBxdWVyeSdzIHN1 YmV4cHJlc3Npb25zICovCiAJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwgZXh0cmFj dF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyLAogCQkJCQkJCQkgY29udGV4dCwgMCk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCmluZGV4IDgyNzc1YTNkZDUxLi5h NzkxNzlmYzM1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpv aW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMK QEAgLTE0MzIsNiArMTQzMiw5IEBAIHB1bGxfdXBfc2ltcGxlX3N1YnF1ZXJ5KFBsYW5uZXJJbmZv ICpyb290LCBOb2RlICpqdG5vZGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAkvKiBJZiBzdWJxdWVy eSBoYWQgYW55IFJMUyBjb25kaXRpb25zLCBub3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLwogCXBh cnNlLT5oYXNSb3dTZWN1cml0eSB8PSBzdWJxdWVyeS0+aGFzUm93U2VjdXJpdHk7CiAKKwkvKiBp ZiB0aGUgc3VicXVlcnkgaGFkIHNlc3Npb24gdmFyaWFibGVzLCB0aGUgbWFpbiBxdWVyeSBkb2Vz IHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9uVmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBzdWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYg aXQgaGFzQWdncywgaGFzV2luZG93RnVuY3MsIG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8g d29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMu YwppbmRleCBkZTFmMzQwY2JlOS4uOThlNWQ5N2M0MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJh dG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgi CiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtOTM0LDYgKzkzNSwxMyBAQCBtYXhfcGFyYWxsZWxf aGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBtYXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNv bnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVy biBmYWxzZTsKIAorCQkvKiB3ZSBkb24ndCBzdXBwb3J0IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJs ZXMgdG8gd29ya2VycyAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJM RSkKKwkJeworCQkJaWYgKG1heF9wYXJhbGxlbF9oYXphcmRfdGVzdChQUk9QQVJBTExFTF9SRVNU UklDVEVELCBjb250ZXh0KSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCiAJCWlmIChwYXJhbS0+ cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwKIAkJCSFsaXN0X21lbWJlcl9pbnQoY29udGV4dC0+ c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJhbWlkKSkKIAkJewpAQCAtMjM4OCw2ICsyMzk2LDcg QEAgY29udmVydF9zYW9wX3RvX2hhc2hlZF9zYW9wX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpj b250ZXh0KQogICoJICB2YWx1ZSBvZiB0aGUgUGFyYW0uCiAgKiAyLiBGb2xkIHN0YWJsZSwgYXMg d2VsbCBhcyBpbW11dGFibGUsIGZ1bmN0aW9ucyB0byBjb25zdGFudHMuCiAgKiAzLiBSZWR1Y2Ug UGxhY2VIb2xkZXJWYXIgbm9kZXMgdG8gdGhlaXIgY29udGFpbmVkIGV4cHJlc3Npb25zLgorICog NC4gQ3VycmVudCB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGZvciBlc3Rp bWF0aW9uIHRvby4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogTm9kZSAqCkBAIC0yNTE0 LDYgKzI1MjMsMjkgQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUs CiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9CisJCQkJZWxzZSBpZiAocGFyYW0tPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSAmJgorCQkJCQkJIGNvbnRleHQtPmVzdGltYXRlKQorCQkJCXsKKwkJ CQkJaW50MTYJCXR5cExlbjsKKwkJCQkJYm9vbAkJdHlwQnlWYWw7CisJCQkJCURhdHVtCQlwdmFs OworCQkJCQlib29sCQlpc251bGw7CisKKwkJCQkJZ2V0X3R5cGxlbmJ5dmFsKHBhcmFtLT5wYXJh bXR5cGUsCisJCQkJCQkJCQkmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJCQkJCXB2YWwgPSBHZXRT ZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKHBhcmFtLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJ CQkJCQkgICAmaXNudWxsLAorCQkJCQkJCQkJCQkJCQkgICBwYXJhbS0+cGFyYW10eXBlKTsKKwor CQkJCQlyZXR1cm4gKE5vZGUgKikgbWFrZUNvbnN0KHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJ CQkJCSAgcGFyYW0tPnBhcmFtdHlwbW9kLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbWNvbGxp ZCwKKwkJCQkJCQkJCQkJICAoaW50KSB0eXBMZW4sCisJCQkJCQkJCQkJCSAgcHZhbCwKKwkJCQkJ CQkJCQkJICBpc251bGwsCisJCQkJCQkJCQkJCSAgdHlwQnlWYWwpOworCQkJCX0KIAogCQkJCS8q CiAJCQkJICogTm90IHJlcGxhY2VhYmxlLCBzbyBqdXN0IGNvcHkgdGhlIFBhcmFtIChubyBuZWVk IHRvCkBAIC00NzE3LDcgKzQ3NDksOCBAQCBpbmxpbmVfZnVuY3Rpb24oT2lkIGZ1bmNpZCwgT2lk IHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJcXVlcnl0cmVlLT5saW1pdE9mZnNl dCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJcXVlcnl0cmVlLT5zZXRPcGVyYXRp b25zIHx8Ci0JCWxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkKKwkJKGxp c3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkgfHwKKwkJcXVlcnl0cmVlLT5o YXNTZXNzaW9uVmFyaWFibGVzKQogCQlnb3RvIGZhaWw7CiAKIAkvKiBJZiB0aGUgZnVuY3Rpb24g cmVzdWx0IGlzIGNvbXBvc2l0ZSwgcmVzb2x2ZSBpdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXgg NTYxY2Y0ZDZhNzcuLjNlOTgxNGFkOWY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv YW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTI1LDkgKzI1 LDEyIEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRy LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2lu Y2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpA QCAtNTEsNiArNTQsNyBAQAogI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKKyNpbmNsdWRl ICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgogCkBAIC04Myw2ICs4Nyw4IEBAIHN0YXRpYyBRdWVyeSAqdHJhbnNm b3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBDcmVh dGVUYWJsZUFzU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNhbGxTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJQ2FsbFN0bXQgKnN0bXQpOworc3RhdGljIFF1ZXJ5 ICp0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkgICBMZXRTdG10 ICpzdG10KTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUxvY2tpbmdDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBRdWVyeSAqcXJ5LAogCQkJCQkJCQkgICBMb2NraW5nQ2xhdXNlICpsYywgYm9vbCBw dXNoZWREb3duKTsKICNpZmRlZiBERUJVR19OT0RFX1RFU1RTX0VOQUJMRUQKQEAgLTQxNCw2ICs0 MjAsNyBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVl KQogCQkJY2FzZSBUX1VwZGF0ZVN0bXQ6CiAJCQljYXNlIFRfRGVsZXRlU3RtdDoKIAkJCWNhc2Ug VF9NZXJnZVN0bXQ6CisJCQljYXNlIFRfTGV0U3RtdDoKIAkJCQkodm9pZCkgdGVzdF9yYXdfZXhw cmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRyZWUsIE5VTEwpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVs dDoKQEAgLTQ5Myw2ICs1MDAsMTEgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IE5vZGUgKnBhcnNlVHJlZSkKIAkJCQkJCQkJCSAgIChDYWxsU3RtdCAqKSBwYXJzZVRyZWUpOwog CQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1MZXRT dG10KHBzdGF0ZSwKKwkJCQkJCQkJCSAgKExldFN0bXQgKikgcGFyc2VUcmVlKTsKKwkJCWJyZWFr OworCiAJCWRlZmF1bHQ6CiAKIAkJCS8qCkBAIC01NDUsNiArNTU3LDcgQEAgc3RtdF9yZXF1aXJl c19wYXJzZV9hbmFseXNpcyhSYXdTdG10ICpwYXJzZVRyZWUpCiAJCWNhc2UgVF9TZWxlY3RTdG10 OgogCQljYXNlIFRfUmV0dXJuU3RtdDoKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBU X0xldFN0bXQ6CiAJCQlyZXN1bHQgPSB0cnVlOwogCQkJYnJlYWs7CiAKQEAgLTY1Myw2ICs2NjYs NyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAq c3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwog CXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFz QWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBz dGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxcnkpOwogCkBAIC0xMDc5LDYgKzEwOTMsNyBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0 U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3Rh dGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5w X2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUs IHFyeSk7CiAKQEAgLTE1NDQsNiArMTU1OSw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBw c3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5w X2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAK IAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMTc3MCwxMiArMTc4Niwy NDEgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3Rt dCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlz dCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOwor CXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCiAJcmV0dXJuIHFy eTsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQorICoJICB0cmFuc2Zvcm0gYW4gTGV0 IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVlcnkJICAgKnF1ZXJ5OworCVF1ZXJ5 CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxpc3QgPSBOSUw7CisJTGlzdAkgICAqZXhwckxp c3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCUxpc3RDZWxsICAgKmluZGlyZWN0aW9u X2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxlY3RRdWVyeTsKKwlPaWQJCQl2YXJpZDsKKwlj aGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3VuaXF1ZTsKKwlib29sCQlpc19y b3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJT2lkCQkJY29sbGlkOwor CUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJCQlpbmRpcmVjdGlvbl9zdGFydDsKKwlpbnQJ CQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJlIGFueSBvdXRlciBXSVRIIHRvIHdvcnJ5IGFi b3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVuYW1lc3BhY2UgPT0gTklMKTsKKworCW5hbWVz ID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQpOworCisJLyogbG9ja3MgdGhlIHZhcmlhYmxl IHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJdmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKG5h bWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisJaWYgKG5vdF91bmlxdWUpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVS KSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wiIG9mIExFVCBjb21tYW5kIGlzIGFtYmlndW91 cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlk KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3Qi LAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCS8qCisJICogQ2FsY3VsYXRlIHN0YXJ0 IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGluZGlyZWN0aW9uIGluIGxpc3QsIGFuZAorCSAq IHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBzdG9yZSBwb2ludGVyIG9uIGZpcnN0IG5vZGUg b2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJlY3Rpb25fc3RhcnQgPSBsaXN0X2xlbmd0aChu YW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJaWYgKGxpc3RfbGVuZ3RoKHN0bXQtPnRhcmdl dCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5kaXJlY3Rpb25faGVhZCA9IGxpc3RfbnRoX2Nl bGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9zdGFydCk7CisKKwlnZXRfc2Vzc2lvbl92YXJp YWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwgJmNvbGxpZCk7 CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0eXBlKHR5cGlkKTsKKworCWlmIChhdHRybmFt ZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZpZWxk IFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBiZWNhdXNlIGl0cyB0eXBlICVz IGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0X25h bWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJ CQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQlmb3JtYXRfdHlwZV9i ZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlv bikpKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfTEVUX1RBUkdFVDsKKwor CS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lvbiBvZiAidW5rbm93biIgdG8gdGV4dCAq LworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0gZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9 IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5xdWVyeSk7CisKKwkvKiB0aGUgZ3JhbW1hciBz aG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAqLworCUFzc2VydChJc0Eoc2VsZWN0UXVlcnks IFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkv KgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Npb24gbGlzdCBmb3IgdGhlIExFVCB0aGF0IHNlbGVj dHMgYWxsIHRoZSBub24tcmVzanVuaworCSAqIGNvbHVtbnMgZnJvbSB0aGUgc3VicXVlcnkuCisJ ICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9yZWFjaF9ub2RlKFRhcmdldEVudHJ5LCB0bGUsIHNl bGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJaWYgKHRsZS0+cmVzanVuaykKKwkJCWNvbnRp bnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVuZChleHByTGlzdCwgdGxlLT5leHByKTsKKwl9CisK KwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVtbiByZXN1bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgo ZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9T WU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Npb24g cmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAiYXNzaWdubWVudCBleHByZXNzaW9uIHJl dHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJ CQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHJMaXN0KSkpKTsKKwor CWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZvcmVhY2gobGMsIGV4cHJMaXN0KQorCXsKKwkJRXhw cgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCUV4cHIJICAgKmNvZXJjZWRfZXhw cjsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8qIG5vdyB3ZSBjYW4gcmVhZCB0aGUgdHlwZSBv ZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBydHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHBy KTsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJeworCQkJYm9vbAkJdGFyZ2V0SXNBcnJh eTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisJCQlQYXJhbQkgICAqcGFyYW07CisKKwkJCXRh cmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdldElz QXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVtZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJCQlwYXJhbSA9IG1ha2VOb2RlKFBh cmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwkJCXBhcmFtLT5w YXJhbXZhcmlkID0gdmFyaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCQlwYXJh bS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisKKwkJCS8qCisJCQkgKiBUaGUgcGFyYW1ldGVyIHVz ZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhhdmUgc3BlY2lhbAorCQkJICogbWFyaywgYmVjYXVzZSBy ZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3aGVuIHdlIGRvCisJCQkgKiBTRUxFQ1QgYWNjZXNzIGNo ZWNrLgorCQkJICovCisJCQlwYXJhbS0+cGFyYW1iYXNlbm9kZSA9IHRydWU7CisKKwkJCWNvZXJj ZWRfZXhwciA9IChFeHByICopCisJCQkJdHJhbnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9uKHBz dGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgcGFyYW0sCisJCQkJCQkJCQkJCSAgIHRhcmdl dE5hbWUsCisJCQkJCQkJCQkJCSAgIHRhcmdldElzQXJyYXksCisJCQkJCQkJCQkJCSAgIHR5cGlk LAorCQkJCQkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJCQkJCSAgIEludmFsaWRPaWQsCisJCQkJ CQkJCQkJCSAgIHN0bXQtPnRhcmdldCwKKwkJCQkJCQkJCQkJICAgaW5kaXJlY3Rpb25faGVhZCwK KwkJCQkJCQkJCQkJICAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCQkJICAgQ09FUkNJT05fQVNT SUdOTUVOVCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+bG9jYXRpb24pOworCQl9CisJCWVsc2UKKwkJ CWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0 ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCSAgZXhwcnR5cGlkLAorCQkJ CQkJCQkJICB0eXBpZCwgdHlwbW9kLAorCQkJCQkJCQkJICBDT0VSQ0lPTl9BU1NJR05NRU5ULAor CQkJCQkJCQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwKKwkJCQkJCQkJCSAgc3RtdC0+bG9jYXRp b24pOworCisJCWlmIChjb2VyY2VkX2V4cHIgPT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ2 YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSAlcywgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlw ZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQp LAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShl eHBydHlwaWQpKSwKKwkJCQkJIGVycmhpbnQoIllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBj YXN0IHRoZSBleHByZXNzaW9uLiIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHIpKSkpOworCisJCWV4cHJMaXN0Q29lciA9IGxhcHBl bmQoZXhwckxpc3RDb2VyLCBjb2VyY2VkX2V4cHIpOworCX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5 J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhlIGNvbXB1dGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8K KwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlxdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VM RUNUOworCisJZm9yZWFjaChsYywgZXhwckxpc3RDb2VyKQorCXsKKwkJRXhwcgkgICAqZXhwciA9 IChFeHByICopIGxmaXJzdChsYyk7CisJCVRhcmdldEVudHJ5ICp0bGU7CisKKwkJdGxlID0gbWFr ZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJCQkJICBpICsgMSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5h bWUoKE5vZGUgKikgZXhwciksCisJCQkJCQkJICBmYWxzZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0 ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0TGlzdCwgdGxlKTsKKwl9CisKKwkvKiBkb25lIGJ1aWxk aW5nIHRoZSByYW5nZSB0YWJsZSBhbmQgam9pbnRyZWUgKi8KKwlxdWVyeS0+cnRhYmxlID0gcHN0 YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5w X2pvaW5saXN0LCBOVUxMKTsKKworCXF1ZXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hh c1RhcmdldFNSRnM7CisJcXVlcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1Ykxpbmtz OworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJp YWJsZXM7CisKKwkvKiB0aGlzIGlzIHRvcC1sZXZlbCBxdWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRU YWcgPSB0cnVlOworCisJLyoKKwkgKiBTYXZlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIElELiBJ dCBpcyB1c2VkIGxhdGVyIGZvcgorCSAqIGFjcXVpcmluZyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24g dGFyZ2V0IHZhcmlhYmxlLCBzZXR0aW5nCisJICogcGxhbiBkZXBlbmRlbmN5IGFuZCBmaW5hbGx5 IGZvciBjcmVhdGluZyBWYXJpYWJsZURlc3RSZWNlaXZlci4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0 VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVl cnkpOworCisJLyoKKwkgKiBUaGUgcXVlcnkgaXMgZXhlY3V0ZWQgYXMgdXRpbGl0eSBjb21tYW5k IGJ5IG5lc3RlZCBleGVjdXRvciBjYWxsLgorCSAqIEFzc2lnbmVkIHF1ZXJ5SWQgaXMgcmVxdWly ZWQgaW4gdGhpcyBjYXNlLgorCSAqLworCWlmIChJc1F1ZXJ5SWRFbmFibGVkKCkpCisJCUp1bWJs ZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQtPnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CisKKwkvKiBy ZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5ICovCisJcmVzdWx0ID0gbWFr ZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsKKwlyZXN1 bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikgc3RtdDsKKworCXJldHVybiByZXN1bHQ7Cit9CisK IC8qCiAgKiB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10IC0KICAqCSAgdHJhbnNmb3JtcyBhIHNl dC1vcGVyYXRpb25zIHRyZWUKQEAgLTIwMjEsNiArMjI2Niw3IEBAIHRyYW5zZm9ybVNldE9wZXJh dGlvblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRT UkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5w X2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIGxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMjQ5Niw2 ICsyNzQyLDcgQEAgdHJhbnNmb3JtUmV0dXJuU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFJldHVy blN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dG dW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlx cnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjU2Myw2ICsyODEwLDcgQEAgdHJhbnNmb3JtVXBk YXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAKIAlxcnktPmhh c1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc1N1Ykxpbmtz ID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBz dGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxcnkpOwogCkBAIC0yNzUwLDkgKzI5OTgsMTUgQEAgdHJhbnNmb3JtUExBc3NpZ25T dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCS8qCiAJICogVHJh bnNmb3JtIHRoZSB0YXJnZXQgcmVmZXJlbmNlLiAgVHlwaWNhbGx5IHdlIHdpbGwgZ2V0IGJhY2sg YSBQYXJhbQogCSAqIG5vZGUsIGJ1dCB0aGVyZSdzIG5vIHJlYXNvbiB0byBiZSB0b28gcGlja3kg YWJvdXQgaXRzIHR5cGUuCisJICoKKwkgKiBTZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgbm90IGJl IHVzZWQgYXMgdGFyZ2V0IG9mIGEgUEwvcGdTUUwgYXNzaWduCisJICogc3RhdGVtZW50LiAgU28g d2Ugc2hvdWxkIHVzZSBhIGRlZGljYXRlZCBleHByZXNzaW9uIGtpbmQgYW5kIGRpc2FsbG93CisJ ICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhlcmUuICBUaGUgZGVkaWNhdGVkIGNvbnRleHQgYWxsb3dz IHRvIGVsaW1pbmF0ZQorCSAqIHVuZGVzaXJhYmxlIHdhcm5pbmdzIGFib3V0IHRoZSBwb3NzaWJp bGl0eSBvZiBhIHRhcmdldCBQTC9wZ1NRTCB2YXJpYWJsZQorCSAqIHNoYWRvd2luZyBhIHNlc3Np b24gdmFyaWFibGUuCiAJICovCiAJdGFyZ2V0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2Rl ICopIGNyZWYsCi0JCQkJCQkgICBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVCk7CisJCQkJCQkgICBF WFBSX0tJTkRfQVNTSUdOX1RBUkdFVCk7CiAJdGFyZ2V0dHlwZSA9IGV4cHJUeXBlKHRhcmdldCk7 CiAJdGFyZ2V0dHlwbW9kID0gZXhwclR5cG1vZCh0YXJnZXQpOwogCXRhcmdldGNvbGxhdGlvbiA9 IGV4cHJDb2xsYXRpb24odGFyZ2V0KTsKQEAgLTI3OTQsNiArMzA0OCwxMCBAQCB0cmFuc2Zvcm1Q TEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJICov CiAJdHlwZV9pZCA9IGV4cHJUeXBlKChOb2RlICopIHRsZS0+ZXhwcik7CiAKKwkvKgorCSAqIEZv ciBpbmRpcmVjdGlvbiBwcm9jZXNzaW5nIGFuZCBhZGRpdGlvbmFsIGNhc3RzIHdlIGNhbiB1c2Ug ZXhwcl9raW5kCisJICogRVhQUl9LSU5EX1VQREFURV9UQVJHRVQuCisJICovCiAJcHN0YXRlLT5w X2V4cHJfa2luZCA9IEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOwogCiAJaWYgKGluZGlyZWN0aW9u KQpAQCAtMjkzNiw2ICszMTk0LDggQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCQkJCQkJCSAgIChMb2NraW5nQ2xhdXNlICop IGxmaXJzdChsKSwgZmFsc2UpOwogCX0KIAorCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBz dGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxcnkpOwogCiAJLyogdGhpcyBtdXN0IGJlIGRvbmUgYWZ0ZXIgY29sbGF0aW9ucywg Zm9yIHJlbGlhYmxlIGNvbXBhcmlzb24gb2YgZXhwcnMgKi8KQEAgLTMyMDksNiArMzQ2OSwxNiBA QCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10ICpzdG10KQog CQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRpb24pOwogCisJLyoK KwkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFsdWF0ZWQgYnkgYSBk aXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIHBhdGggaXMgdW5zdXBw b3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKKwkgKiBlbmFibGVkIGxhdGVyLgor CSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVy cm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7 CisKIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNh c3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDc5NjE0N2E1NDFhLi5hNDE1 MGY4OTliOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBs YWluU3RtdCBGZXRjaFN0bXQKIAkJR3JhbnRTdG10IEdyYW50Um9sZVN0bXQgSW1wb3J0Rm9yZWln blNjaGVtYVN0bXQgSW5kZXhTdG10IEluc2VydFN0bXQKLQkJTGlzdGVuU3RtdCBMb2FkU3RtdCBM b2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0 bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3Rp ZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAogCQlDcmVhdGVGdW5jdGlvblN0 bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVpbmRleFN0bXQgUmVtb3ZlQWdnclN0bXQKIAkJUmVtb3Zl RnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBSZXR1cm5TdG10IFJldm9rZVN0bXQg UmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVsZUFjdGlvblN0bXRPckVtcHR5IFJ1 bGVTdG10CkBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlLRUVQ IEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5HVUFHRSBMQVJHRV9QIExBU1RfUCBMQVRFUkFMX1AKLQlM RUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQg TE9DQUwKKwlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVCBMRVZFTCBMSUtFIExJTUlU IExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExP Q0tfUCBMT0NLRUQgTE9HR0VECiAKIAlNQVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVE IE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FDVElPTiBNRVRIT0QKQEAgLTEwODEsNiArMTA4MSw3IEBA IHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10CiAJCQl8IEluZGV4U3RtdAogCQkJ fCBJbnNlcnRTdG10CisJCQl8IExldFN0bXQKIAkJCXwgTGlzdGVuU3RtdAogCQkJfCBSZWZyZXNo TWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0bXQKQEAgLTEyNzcwLDYgKzEyNzcxLDM4IEBAIG9wdF9o b2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsgJCQgPSAwOyB9CiAJCQl8IFdJVEhPVVQgSE9MRAkJCQkJ eyAkJCA9IDA7IH0KIAkJOwogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlk6 CisgKgkJCQlMRVQgU1RBVEVNRU5UCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTGV0U3Rt dDoJTEVUIENvbElkIG9wdF9pbmRpcmVjdGlvbiAnPScgYV9leHByCisJCQkJeworCQkJCQlMZXRT dG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJCVNlbGVjdFN0bXQgKnNlbGVjdDsK KwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRhcmdldCA9IGxjb25zKG1ha2VTdHJp bmcoJDIpLAorCQkJCQkJCQkJICBjaGVja19pbmRpcmVjdGlvbigkMywgeXlzY2FubmVyKSk7CisK KwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0U3RtdCk7CisJCQkJCXJlcyA9IG1ha2VOb2Rl KFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3JlYXRlIHRhcmdldCBsaXN0IGZvciBpbXBsaWNpdCBx dWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBOVUxMOworCQkJCQlyZXMtPmluZGlyZWN0aW9uID0g TklMOworCQkJCQlyZXMtPnZhbCA9IChOb2RlICopICQ1OworCQkJCQlyZXMtPmxvY2F0aW9uID0g QDU7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0ID0gbGlzdF9tYWtlMShyZXMpOworCQkJCQlu LT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsKKworCQkJCQluLT5sb2NhdGlvbiA9IEAyOworCQkJ CQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog ICoKICAqCQlRVUVSWToKQEAgLTE3ODQwLDYgKzE3ODczLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3Jk OgogCQkJfCBMQVJHRV9QCiAJCQl8IExBU1RfUAogCQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJ CQl8IExFVkVMCiAJCQl8IExJU1RFTgogCQkJfCBMT0FECkBAIC0xODQ1MSw2ICsxODQ4NSw3IEBA IGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTEVBS1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExF RlQKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfYWdnLmMKaW5kZXggOWU1NjdmM2NjNDUuLjQ3MzdiMDRkMTcxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jCkBAIC01ODAsNiArNTgwLDExIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3Ry YWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJZXJya2luZCA9IHRydWU7 CiAJCQlicmVhazsKIAorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKKwogCQkJ LyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBz byB0aGF0IHRoZQogCQkJICogY29tcGlsZXIgd2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJz ZUV4cHJLaW5kIHdpdGhvdXQKQEAgLTk3MCw2ICs5NzUsMTAgQEAgdHJhbnNmb3JtV2luZG93RnVu Y0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBS X0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2Ug RVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJ CQllcnJraW5kID0gdHJ1ZTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50 ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYwppbmRleCA4NGQyMTRmNWM3NC4uYWEwMDQxZmY5ZDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dy ZWdhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpAQCAtMzMsMTEg KzM0LDEzIEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAi cGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisj aW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNp bmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCiAvKiBH VUMgcGFyYW1ldGVycyAqLwpAQCAtMTA2LDYgKzEwOSw5IEBAIHN0YXRpYyBFeHByICptYWtlX2Rp c3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3BuYW1lLAogCQkJCQkJCSAgTm9k ZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2Vf bnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFf RXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOworc3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Np b25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lk IHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkJCQkgIGNoYXIgKmF0dHJu YW1lLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC00OTksNiArNTA1LDg5IEBAIHRyYW5zZm9y bUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCXJl dHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJl c3Npb24ga2luZCBpcyB2YWxpZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMuCisgKiBTZXNzaW9uIHZh cmlhYmxlcyBjYW4gYmUgdXNlZCBldmVyeXdoZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMg Y2FuIGJlCisgKiB1c2VkLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGluIERE TCBjb21tYW5kcyBvciBpbiBjb25zdHJhaW50cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNhbiBi ZSBwYXJzZWQgYXMgYSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2luZHMK KyAqIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBhbGxvd2VkLiAgVGhpcyBpcyB0aGUgcHJp bWFyeSB1c2FnZSBvZiB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgc2Vjb25kIHVzYWdl IG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gZGVjaWRlIHdoZXRoZXIgYSAiY29sdW1uIGRvZXMgbm90 CisgKiBleGlzdCIgb3IgYSAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBlcnJv ciBtZXNzYWdlIHNob3VsZCBiZQorICogcHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJl c3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlCisgKiB1c2VkLCB3ZSByYWlz ZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgorICovCitzdGF0aWMgYm9vbAorZXhw cl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5k KQoreworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJc3dpdGNoIChwX2V4cHJfa2luZCkKKwl7 CisJCWNhc2UgRVhQUl9LSU5EX05PTkU6CisJCQlBc3NlcnQoZmFsc2UpOwkJLyogY2FuJ3QgaGFw cGVuICovCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dl ZCAqLworCQljYXNlIEVYUFJfS0lORF9PVEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoK KwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01f RlVOQ1RJT046CisJCWNhc2UgRVhQUl9LSU5EX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJ Tkc6CisJCWNhc2UgRVhQUl9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BB UlRJVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lO RF9XSU5ET1dfRlJBTUVfUkFOR0U6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dT OgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lO RF9TRUxFQ1RfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNl IEVYUFJfS0lORF9VUERBVEVfU09VUkNFOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9S RVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgorCQljYXNlIEVYUFJfS0lORF9P UkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRfRElTVElOQ1RfT046CisJCWNhc2UgRVhQUl9LSU5E X0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1JFVFVS TklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVNf U0lOR0xFOgorCQljYXNlIEVYUFJfS0lORF9BTFRFUl9DT0xfVFJBTlNGT1JNOgorCQljYXNlIEVY UFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfUE9MSUNZOgorCQlj YXNlIEVYUFJfS0lORF9DQUxMX0FSR1VNRU5UOgorCQljYXNlIEVYUFJfS0lORF9DT1BZX1dIRVJF OgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJy ZWFrOworCisJCS8qIHNlc3Npb24gdmFyaWFibGVzIG5vdCBhbGxvd2VkICovCisJCWNhc2UgRVhQ Ul9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoK KwkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNU SU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2Ug RVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKKwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVT U0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfVFJJR0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9Q QVJUSVRJT05fQk9VTkQ6CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgor CQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lO X1VTSU5HOgorCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9B U1NJR05fVEFSR0VUOgorCQkJcmVzdWx0ID0gZmFsc2U7CisJCQlicmVhazsKKwl9CisKKwlyZXR1 cm4gcmVzdWx0OworfQorCiAvKgogICogVHJhbnNmb3JtIGEgQ29sdW1uUmVmLgogICoKQEAgLTU3 NSw2ICs2NjQsOCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1 bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9L SU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNh c2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6 CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsKIApAQCAtODQ3LDggKzkzOCw2MSBAQCB0cmFuc2Zv cm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJfQogCiAJ LyoKLQkgKiBUaHJvdyBlcnJvciBpZiBubyB0cmFuc2xhdGlvbiBmb3VuZC4KKwkgKiBUaGVyZSBh cmUgY29udGV4dHMgd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkLiAgV2Ug ZG9uJ3QKKwkgKiBuZWVkIHRvIGlkZW50aWZ5IHNlc3Npb24gdmFyaWFibGVzIGluIHN1Y2ggYSBj b250ZXh0LCBidXQgaWRlbnRpZnlpbmcKKwkgKiB0aGVtIGFsbG93cyB1cyB0byByYWlzZSBtZWFu aW5nZnVsIGVycm9yIG1lc3NhZ2VzIGxpa2UgInlvdSBjYW5ub3QgdXNlCisJICogc2Vzc2lvbiB2 YXJpYWJsZXMgaGVyZSIuCiAJICovCisJaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJeworCQlPaWQJCQl2YXJpZCA9IEludmFsaWRP aWQ7CisJCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwkJYm9vbAkJbm90X3VuaXF1ZTsKKwor CQkvKiAtLS0tLQorCQkgKiBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgc2hhZG93ZWQgYnkgY29sdW1u cywgcm91dGluZSB2YXJpYWJsZXMgb3IKKwkJICogcm91dGluZSBhcmd1bWVudHMuICBXZSBjZXJ0 YWlubHkgZG9uJ3Qgd2FudCB0byB1c2UgYSBzZXNzaW9uIHZhcmlhYmxlCisJCSAqIHdoZW4gaXQg aXMgZXhhY3RseSBzaGFkb3dlZCwgYnV0IGEgUlRFIGxpa2UgdGhpcyBpcyBjb25jZWl2YWJsZToK KwkJICoKKwkJICogQ1JFQVRFIFRZUEUgdCBBUyAoYyBpbnQpOworCQkgKiBDUkVBVEUgVkFSSUFC TEUgZm9vIEFTIHQ7CisJCSAqIENSRUFURSBUQUJMRSBmb28oYSBpbnQsIGIgaW50KTsKKwkJICoK KwkJICogU0VMRUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CisJCSAqCisJCSAqIEhv d2V2ZXIsIHRoYXQgaXMgdmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9u J3QgdHJ5IHRvCisJCSAqIGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdv dWxkIGJlIHNoYWRvd2VkLgorCQkgKiAtLS0tLQorCQkgKi8KKwkJaWYgKCFub2RlICYmICEocmVs bmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQl7CisJCQkvKiB0YWtlcyBhbiBB Y2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJCXZhcmlkID0gSWRl bnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNl KTsKKworCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJeworCQkJCU9pZAkJCXR5cGlkOwor CQkJCWludDMyCQl0eXBtb2Q7CisJCQkJT2lkCQkJY29sbGlkOworCisJCQkJaWYgKG5vdF91bmlx dWUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VP VVNfUEFSQU1FVEVSKSwKKwkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5j ZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ ZmllbGRzKSksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0 aW9uKSkpOworCisJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZh cmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJCQkJCSZjb2xsaWQpOworCisJCQkJbm9k ZSA9IG1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJCQkJCQl2YXJpZCwg dHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0 aW9uKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIHRocm93IGFuIGVycm9yIGlmIG5vIHRyYW5zbGF0 aW9uIHdhcyBmb3VuZCAqLwogCWlmIChub2RlID09IE5VTEwpCiAJewogCQlzd2l0Y2ggKGNyZXJy KQpAQCAtODgwLDYgKzEwMjQsNzUgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCXJldHVybiBub2RlOwogfQogCisvKgorICogR2VuZXJh dGUgcGFyYW0gdmFyaWFibGUgZm9yIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlCisgKi8K K3N0YXRpYyBOb2RlICoKK21ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3Rh dGUsCisJCQkJCQkgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxp ZCwKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKQoreworCVBhcmFtCSAgICpw YXJhbTsKKworCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0pOworCisJcGFyYW0tPnBhcmFta2luZCA9 IFBBUkFNX1ZBUklBQkxFOworCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJcGFyYW0tPnBh cmFtdHlwZSA9IHR5cGlkOworCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKKwlwYXJhbS0+ cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisKKwlwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHRydWU7CisKKwlpZiAoYXR0cm5hbWUgIT0gTlVMTCkKKwl7CisJCVR1cGxlRGVzYwl0dXBkZXNj OworCQlpbnQJCQlpOworCisJCXR1cGRlc2MgPSBsb29rdXBfcm93dHlwZV90dXBkZXNjX25vZXJy b3IodHlwaWQsIHR5cG1vZCwgdHJ1ZSk7CisJCWlmICghdHVwZGVzYykKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJy bXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSBcIiVzXCIsIHdoaWNoIGlzIG5vdCBh IGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCisJCWZvciAoaSA9IDA7IGkgPCB0 dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBs ZURlc2NBdHRyKHR1cGRlc2MsIGkpOworCisJCQlpZiAoc3RyY21wKGF0dHJuYW1lLCBOYW1lU3Ry KGF0dC0+YXR0bmFtZSkpID09IDAgJiYKKwkJCQkhYXR0LT5hdHRpc2Ryb3BwZWQpCisJCQl7CisJ CQkJLyogc3VjY2Vzcywgc28gZ2VuZXJhdGUgYSBGaWVsZFNlbGVjdCBleHByZXNzaW9uICovCisJ CQkJRmllbGRTZWxlY3QgKmZzZWxlY3QgPSBtYWtlTm9kZShGaWVsZFNlbGVjdCk7CisKKwkJCQlm c2VsZWN0LT5hcmcgPSAoRXhwciAqKSBwYXJhbTsKKwkJCQlmc2VsZWN0LT5maWVsZG51bSA9IGkg KyAxOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cGUgPSBhdHQtPmF0dHR5cGlkOworCQkJCWZzZWxl Y3QtPnJlc3VsdHR5cG1vZCA9IGF0dC0+YXR0dHlwbW9kOworCQkJCS8qIHNhdmUgYXR0cmlidXRl J3MgY29sbGF0aW9uIGZvciBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJCQlmc2VsZWN0LT5yZXN1bHRj b2xsaWQgPSBhdHQtPmF0dGNvbGxhdGlvbjsKKworCQkJCVJlbGVhc2VUdXBsZURlc2ModHVwZGVz Yyk7CisJCQkJcmV0dXJuIChOb2RlICopIGZzZWxlY3Q7CisJCQl9CisJCX0KKworCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVy cm1zZygiY291bGQgbm90IGlkZW50aWZ5IGNvbHVtbiBcIiVzXCIgaW4gdmFyaWFibGUgXCIlcy4l c1wiIiwKKwkJCQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlv bikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcGFyYW07Cit9CisKIHN0YXRpYyBOb2RlICoK IHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiB7 CkBAIC0xODE1LDYgKzIwMjgsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgogCQljYXNlIEVY UFJfS0lORF9WQUxVRVNfU0lOR0xFOgogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQlj YXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAJCWNh c2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CkBAIC0xODU4LDYgKzIwNzIsOSBAQCB0cmFu c2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2Fz ZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3Vi cXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNh c2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1 ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24gc3RhdGVtZW50Iik7CisJCQlicmVhazsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpAQCAtMzE5Nyw2ICszNDE0LDEwIEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhw cktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkdFTkVSQVRFRCBBUyI7CiAJCWNhc2UgRVhQUl9L SU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4gIkNZQ0xFIjsKKwkJY2FzZSBFWFBSX0tJTkRfQVNT SUdOX1RBUkdFVDoKKwkJCXJldHVybiAiQVNTSUdOIjsKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RB UkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlv bmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKaW5kZXggNTgzYmJiZjIzMmYuLmRjMjVmNmRjZDBlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQllcnIgPSBf KCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVy YXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9N QVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9M RVRfVEFSR0VUOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwppbmRleCBi NDRmOTA3MjI4MC4uNDQ2YzcxOTUzYmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVz dC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j bHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHF1ZXVlLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJleGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVk ZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1LDYgKzE1Niw5IEBAIENyZWF0ZURlc3RSZWNl aXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CiAJ CQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZlcihOVUxMKTsKKworCQlj YXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihJ bnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUgKi8KQEAgLTE5MSw2 ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1ZXJ5Q29tcGxldGlvbiAqcWMsIENvbW1hbmRE ZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0ZWRfbwogCQljYXNlIERlc3RUcmFuc2llbnRS ZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6 CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpAQCAtMjM3LDYgKzI0Miw3 IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJl bDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToK KwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9CiB9CkBAIC0yODEsNiArMjg3LDcg QEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRS ZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6 CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRl eCA5OWE1MTg3N2QzNC4uN2E1MDhhMzY0NGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3Av dXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OSw2ICs0OSw3 IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTIzNSw2ICsyMzYsNyBAQCBDbGFzc2lmeVV0aWxpdHlD b21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10Ogog CQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAq IENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWln aHQKQEAgLTEwNjcsNiArMTA2OSwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVk U3RtdCAqcHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlF eGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJ CQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwg b3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQ cm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMjA2LDYg KzIyMTMsMTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJl dHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBx cnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRT dG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoK IAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0MDQsNiArMjQxNSwxMCBAQCBDcmVhdGVDb21tYW5k VGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsK IAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwog CQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAq LwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI4OSw2ICszMzA0LDcgQEAg R2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2Ug VF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7 CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDIwODliNTJkNTc1 Li44ZDNkM2M5Yzc1NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMzcsNiArMzcs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbW9uL2tleXdv cmRzLmgiCkBAIC01MjgsNiArNTI5LDcgQEAgc3RhdGljIGNoYXIgKmdlbmVyYXRlX2Z1bmN0aW9u X25hbWUoT2lkIGZ1bmNpZCwgaW50IG5hcmdzLAogc3RhdGljIGNoYXIgKmdlbmVyYXRlX29wZXJh dG9yX25hbWUoT2lkIG9wZXJpZCwgT2lkIGFyZzEsIE9pZCBhcmcyKTsKIHN0YXRpYyB2b2lkIGFk ZF9jYXN0X3RvKFN0cmluZ0luZm8gYnVmLCBPaWQgdHlwaWQpOwogc3RhdGljIGNoYXIgKmdlbmVy YXRlX3F1YWxpZmllZF90eXBlX25hbWUoT2lkIHR5cGlkKTsKK3N0YXRpYyBjaGFyICpnZW5lcmF0 ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKIHN0YXRpYyB0ZXh0ICpzdHJpbmdf dG9fdGV4dChjaGFyICpzdHIpOwogc3RhdGljIGNoYXIgKmZsYXR0ZW5fcmVsb3B0aW9ucyhPaWQg cmVsaWQpOwogc3RhdGljIHZvaWQgZ2V0X3JlbG9wdGlvbnMoU3RyaW5nSW5mbyBidWYsIERhdHVt IHJlbG9wdGlvbnMpOwpAQCAtODYyNSw2ICs4NjI3LDE0IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0g KnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJCXJldHVybjsKIAl9CiAKKwkvKiB0 cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKi8KKwlpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm8o Y29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBBbHRlcm5h dGl2ZWx5LCBtYXliZSBpdCdzIGEgc3VicGxhbiBvdXRwdXQsIHdoaWNoIHdlIHByaW50IGFzIGEK IAkgKiByZWZlcmVuY2UgdG8gdGhlIHN1YnBsYW4uICAoV2UgY291bGQgZHJpbGwgZG93biBpbnRv IHRoZSBzdWJwbGFuIGFuZApAQCAtMTM0MDcsNiArMTM0MTcsNDIgQEAgZ2VuZXJhdGVfY29sbGF0 aW9uX25hbWUoT2lkIGNvbGxpZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogZ2VuZXJh dGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJQ29tcHV0ZSB0aGUgbmFtZSB0byBkaXNwbGF5 IGZvciBhIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IE9JRAorICoKKyAqIFRoZSByZXN1 bHQgaW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBxdW90aW5nIGFuZCBzY2hlbWEtcHJlZml4aW5nLgor ICovCitzdGF0aWMgY2hhciAqCitnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZh cmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNo YXIJICAgKnZhcm5hbWU7CisJY2hhcgkgICAqbnNwbmFtZTsKKwljaGFyCSAgICpyZXN1bHQ7CisK Kwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFy aWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0g KEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IE5hbWVTdHIo dmFyZm9ybS0+dmFybmFtZSk7CisKKwlpZiAoIVZhcmlhYmxlSXNWaXNpYmxlKHZhcmlkKSkKKwkJ bnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFj ZSk7CisJZWxzZQorCQluc3BuYW1lID0gTlVMTDsKKworCXJlc3VsdCA9IHF1b3RlX3F1YWxpZmll ZF9pZGVudGlmaWVyKG5zcG5hbWUsIHZhcm5hbWUpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogR2l2ZW4gYSBDIHN0cmluZywgcHJvZHVj ZSBhIFRFWFQgZGF0dW0uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCA1 NWRiOGY1MzcwNS4uNjMyYzQzOGE3YmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5j CkBAIC01OCw2ICs1OCw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5o IgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgi CiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0xNjIsNiArMTYzLDcgQEAgSW5pdFBs YW5DYWNoZSh2b2lkKQogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFNT1BPUElELCBQ bGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhGT1JFSUdOU0VSVkVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAw KTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOREFUQVdSQVBQRVJPSUQs IFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOworCUNhY2hlUmVnaXN0ZXJTeXNjYWNo ZUNhbGxiYWNrKFZBUklBQkxFT0lELCBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjaywgKERhdHVtKSAw KTsKIH0KIAogLyoKQEAgLTE5MDMsMTcgKzE5MDUsMzIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVl cnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3Vi bGluayBzdWJxdWVyaWVzLCB0b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkg KiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBX ZSBuZWVkIHRvIGZvcmNlIGEgcmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJs ZXMgdG9vLCB0byBmaW5kIGFuZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2Vl CisJICogU2NhblF1ZXJ5V2Fsa2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5r cykKKwlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Np b25WYXJpYWJsZXMpCiAJewogCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVy eVdhbGtlciwgJmFjcXVpcmUsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJ fQorCisJLyogcHJvY2VzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBh cnNldHJlZS0+cmVzdWx0VmFyaWFibGUpKQorCXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0 YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxl LAorCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFi YXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwK KwkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJfQogfQogCiAvKgotICogV2Fsa2VyIHRv IGZpbmQgc3VibGluayBzdWJxdWVyaWVzIGZvciBTY2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2Vy IHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIG9yIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJs ZXMKKyAqIGZvciBTY2FuUXVlcnlGb3JMb2NrcwogICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5 V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCkBAIC0xOTI4LDYgKzE5NDUsMjAgQEAg U2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZv ckxvY2tzKGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyog RmFsbCB0aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhhbmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQor CWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAq KSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJ CWlmIChhY3F1aXJlKQorCQkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQs IHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNl CisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZh cmlkLAorCQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAq IERvIE5PVCByZWN1cnNlIGludG8gUXVlcnkgbm9kZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9j a3MgYWxyZWFkeQpAQCAtMjA1OCw3ICsyMDg5LDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0 dW0gYXJnLCBPaWQgcmVsaWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJ CVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lE IGNhY2hlcworICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lE LCBQUk9DT0lELCBOQU1FU1BBQ0VPSUQsCisgKgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05T RVJWRVJPSUQsIEZPUkVJR05EQVRBV1JBUFBFUk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNo ZXMuCiAgKgogICogSW52YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdp dGggdGhlIHNwZWNpZmllZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcg YW55IG1lbWJlciBvZiB0aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2Zt Z3IuYwppbmRleCBhYTg5YWU4ZmUxYS4uMjc2OTEwOTc4OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5j CkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4 cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRy dWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2lu ZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkp CisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2lu ZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJ cmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IDZlZWJmYzZhNWY5Li5hY2JmNTFlZjJlNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpA QCAtMTIxNCw4ICsxMjE0LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5k c1tdID0gewogCSJBQk9SVCIsICJBTFRFUiIsICJBTkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAi Q0hFQ0tQT0lOVCIsICJDTE9TRSIsICJDTFVTVEVSIiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAi Q09QWSIsICJDUkVBVEUiLCAiREVBTExPQ0FURSIsICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00i LCAiRElTQ0FSRCIsICJETyIsICJEUk9QIiwgIkVORCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAot CSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8i LCAiTElTVEVOIiwgIkxPQUQiLCAiTE9DSyIsCi0JIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJ RlkiLCAiUFJFUEFSRSIsCisJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVN QSIsICJJTlNFUlQgSU5UTyIsICJMRVQiLAorCSJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1F UkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJF RlJFU0ggTUFURVJJQUxJWkVEIFZJRVciLCAiUkVJTkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQi LCAiUkVWT0tFIiwgIlJPTExCQUNLIiwKIAkiU0FWRVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwg IlNFTEVDVCIsICJTRVQiLCAiU0hPVyIsICJTVEFSVCIsCkBAIC00NjYwLDYgKzQ2NjAsMTQgQEAg bWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNo ZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09N UExFVEVfV0lUSCgiKCIpOwogCisvKiBMRVQgKi8KKwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBz dWdnZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkK KwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVz KTsKKwkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyog TE9DSyAqLwogCS8qIENvbXBsZXRlIExPQ0sgW1RBQkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2Yg dGFibGVzICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiTE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKaW5kZXggYmRhYzBjMTNiZWMuLjUwNjBiOGM5NDkwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBleHRlcm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJl bnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gTGlzdCAqTmFt ZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CiBleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0 IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBl eHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KExpc3QgKm5hbWVzLCBib29sIG1p c3Npbmdfb2spOworZXh0ZXJuIE9pZAlJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFy ICoqYXR0cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcik7CiAKIGV4dGVybiBP aWQJZ2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBl eHRlcm4gT2lkCWdldF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdf b2spOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDNkM2M2ZWIyNGI1Li41YjQ1YmU1 YWZhZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtMTgsNiArMTgsNyBAQAogI2lm bmRlZiBQR19WQVJJQUJMRV9ICiAjZGVmaW5lIFBHX1ZBUklBQkxFX0gKIAorI2luY2x1ZGUgImFj Y2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9k LmgiCkBAIC0zNSw2ICszNiwxNCBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVS ZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5 cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CiAKKwkvKgorCSAqIFVz ZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAqCisJICogVGhpcyBj b2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJlIGF0IGFuIGFkZHJl c3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFueSBjb2x1bW4gb2Yg dHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9sc247CisKIAkvKiB2 YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJdmFybmFtZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li42OWE4ZTZiMDlmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaApAQCAtMCwwICsxLDMxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBzZXNzaW9udmFyaWFibGUuaAorICoJICBwcm90b3R5cGVzIGZvciBzZXNzaW9udmFyaWFi bGUuYy4KKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNy Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorICoKKyAqLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICovCisKKyNpZm5kZWYgU0VTU0lPTlZBUklBQkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZB UklBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcmFtcy5oIgorI2luY2x1ZGUgIm5vZGVzL3Bh cnNlbm9kZXMuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgorI2luY2x1ZGUgInRj b3AvY21kdGFnLmgiCisjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgorCitleHRl cm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBp c051bGwpOworZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wg KmlzTnVsbCwgT2lkICp0eXBpZCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0 aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKTsK KworZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10 ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQg KnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIGIvc3JjL2luY2x1ZGUvZXhl Y3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZGI0NGQ4Yjk0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9leGVj dXRvci9zdmFyaWFibGVSZWNlaXZlci5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc3Zh cmlhYmxlUmVjZWl2ZXIuYworICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICogc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoKKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKyNk ZWZpbmUgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKworI2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitl eHRlcm4gRGVzdFJlY2VpdmVyICpDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQp OworCisjZW5kaWYJCQkJCQkJLyogU1ZBUklBQkxFX1JFQ0VJVkVSX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKaW5kZXggMjkxMjc0MTYwNzYuLjhlNWU1ZGRhOGQ3IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aApAQCAtNjE3LDYgKzYxNywxOCBAQCB0eXBlZGVmIHN0cnVjdCBBc3luY1JlcXVlc3QKIAkJCQkJ CQkJICogdHVwbGVzKSAqLwogfSBBc3luY1JlcXVlc3Q7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0K KyAqIFNlc3Npb25WYXJpYWJsZVZhbHVlCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVk ZWYgc3RydWN0IFNlc3Npb25WYXJpYWJsZVZhbHVlCit7CisJT2lkCQkJdmFyaWQ7CisJT2lkCQkJ dHlwaWQ7CisJYm9vbAkJaXNudWxsOworCURhdHVtCQl2YWx1ZTsKK30gU2Vzc2lvblZhcmlhYmxl VmFsdWU7CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCSAgRVN0YXRlIGluZm9ybWF0aW9uCiAg KgpAQCAtNjY5LDYgKzY4MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBFU3RhdGUKIAlQYXJhbUxpc3RJ bmZvIGVzX3BhcmFtX2xpc3RfaW5mbzsJLyogdmFsdWVzIG9mIGV4dGVybmFsIHBhcmFtcyAqLwog CVBhcmFtRXhlY0RhdGEgKmVzX3BhcmFtX2V4ZWNfdmFsczsJLyogdmFsdWVzIG9mIGludGVybmFs IHBhcmFtcyAqLwogCisJLyogU2Vzc2lvbiB2YXJpYWJsZXMgaW5mbzogKi8KKwlpbnQJCQllc19u dW1fc2Vzc2lvbl92YXJpYWJsZXM7CQkvKiBudW1iZXIgb2YgdXNlZCB2YXJpYWJsZXMgKi8KKwlT ZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXM7CS8qIGFycmF5IG9mIGNv cGllcyBvZiB2YWx1ZXMgKi8KKwogCVF1ZXJ5RW52aXJvbm1lbnQgKmVzX3F1ZXJ5RW52OwkvKiBx dWVyeSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3RoZXIgd29ya2luZyBzdGF0ZTogKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAppbmRleCA2NmFlYzQ2NTQ5OC4uYjQxN2I1NmMyYTMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKQEAgLTE0Miw2ICsxNDIsOSBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCSAq LwogCWludAkJCXJlc3VsdFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKIAorCS8qIHRhcmdldCB2YXJpYWJsZSBvZiBMRVQgc3RhdGVtZW50ICovCisJT2lkCQkJcmVz dWx0VmFyaWFibGU7CisKIAkvKiBoYXMgYWdncmVnYXRlcyBpbiB0bGlzdCBvciBoYXZpbmdRdWFs ICovCiAJYm9vbAkJaGFzQWdncyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJ LyogaGFzIHdpbmRvdyBmdW5jdGlvbnMgaW4gdGxpc3QgKi8KQEAgLTE2Miw2ICsxNjUsOCBAQCB0 eXBlZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhhc1Jvd1NlY3VyaXR5IHBnX25vZGVfYXR0cihx dWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBwYXJzZXIgaGFzIGFkZGVkIGFuIFJURV9HUk9VUCBS VEUgKi8KIAlib29sCQloYXNHcm91cFJURSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9y ZSk7CisJLyogdXNlcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWJvb2wJCWhhc1Nlc3Npb25WYXJp YWJsZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGlzIGEgUkVUVVJO IHN0YXRlbWVudCAqLwogCWJvb2wJCWlzUmV0dXJuIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVf aWdub3JlKTsKIApAQCAtMjEwMCw2ICsyMTA1LDE4IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlU3Rt dAogCVBhcnNlTG9jCXN0bXRfbGVuOwkJLyogbGVuZ3RoIGluIGJ5dGVzOyAwIG1lYW5zICJyZXN0 IG9mIHN0cmluZyIgKi8KIH0gTWVyZ2VTdG10OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKgkJTGV0IFN0YXRlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBl ZGVmIHN0cnVjdCBMZXRTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICp0YXJnZXQ7 CQkJLyogdGFyZ2V0IHZhcmlhYmxlICovCisJTm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4 cHJlc3Npb24gKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gTGV0U3RtdDsKKwogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICoJCVNlbGVjdCBTdGF0ZW1lbnQKICAqCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCmluZGV4IDU0ZWUxNzY5N2U1Li5mMWE5M2Q1YjM0YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgK QEAgLTE2Myw2ICsxNjMsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJLyog cGFydGl0aW9uIGRlc2NyaXB0b3JzICovCiAJUGFydGl0aW9uRGlyZWN0b3J5IHBhcnRpdGlvbl9k aXJlY3RvcnkgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdub3JlKTsKKworCS8qIGxpc3Qgb2Yg dXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisK KwkvKiBvaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3Np Z25tZW50IGluZGlyZWN0aW9uICovCisJT2lkCQkJYmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisKKwkv KiBzZXQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgd2hlcmUgZXhlY3V0ZSBwZXJtaXNzaW9uIGNoZWNr IGlzIHJlcXVpcmVkICovCisJQml0bWFwc2V0ICpjaGVja1NlbGVjdFBlcm1WYXJpZHM7CiB9IFBs YW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVk IHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTUwOCw2ICs1MTcsOCBAQCBzdHJ1Y3QgUGxhbm5l ckluZm8KIAlib29sCQlwbGFjZWhvbGRlcnNGcm96ZW47CiAJLyogdHJ1ZSBpZiBwbGFubmluZyBh IHJlY3Vyc2l2ZSBXSVRIIGl0ZW0gKi8KIAlib29sCQloYXNSZWN1cnNpb247CisJLyogdHJ1ZSBp ZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFi bGVzOwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBS VEUsIG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bs YW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggZWY5ZWE3ZWU5 ODIuLjcwOTVkZGQ2ZjNkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtOTQsNiArOTQsMTUgQEAg dHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAogCU5vZGUJICAgKnV0aWxpdHlTdG10OwkvKiBu b24tbnVsbCBpZiB0aGlzIGlzIHV0aWxpdHkgc3RtdCAqLwogCisJTGlzdAkgICAqc2Vzc2lvblZh cmlhYmxlczsJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCisKKwkvKgorCSAq IFRoZSBvaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBleGVjbHVlZCBmcm9tIHBlcm1pc3Npb24gY2hl Y2suCisJICogSXQgY2FuIGJlIGlkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIGJhc2Ug bm9kZSBvZiBhc3NpZ25tZW50CisJICogaW5kaXJlY3Rpb24gaWYgdGhpcyB2YXJpYWJsZSBpcyB1 c2VkIG9ubHkgdGhlcmUuCisJICovCisJT2lkCQkJZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkOwor CiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBzdHJpbmcgKGNvcGllZCBmcm9tIFF1 ZXJ5KSAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAt MSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7 IDAgbWVhbnMgInJlc3Qgb2Ygc3RyaW5nIiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA5YzI5 NTdlYjU0Ni4uYzExZDE5NWYxODkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0zNjEsNiArMzYx LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBgcGFyYW1pZCcgZmllbGQg Y29udGFpbiB0aGUgU3ViTGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJCQl0aGUgbG93LW9yZGVy IDE2IGJpdHMgY29udGFpbiB0aGUgY29sdW1uIG51bWJlci4gIChUaGlzIHR5cGUKICAqCQkJCW9m IFBhcmFtIGlzIGFsc28gY29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVyaW5nIHBsYW5uaW5nLikK KyAqCisgKgkJUEFSQU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEgcmVmZXJlbmNlIHRv IGEgc2Vzc2lvbiB2YXJpYWJsZQorICoJCQkJKHBhcmFtdmFyaWQgaG9sZHMgdGhlIHZhcmlhYmxl J3MgT0lEKS4KICAqLwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzY4LDYgKzM3MSw3 IEBAIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJTkss CiAJUEFSQU1fTVVMVElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAKIHR5 cGVkZWYgc3RydWN0IFBhcmFtCkBAIC0zODAsNiArMzg0LDE2IEBAIHR5cGVkZWYgc3RydWN0IFBh cmFtCiAJaW50MzIJCXBhcmFtdHlwbW9kIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKIAkvKiBPSUQgb2YgY29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KIAlPaWQJ CQlwYXJhbWNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyogT0lE IG9mIHNlc3Npb24gdmFyaWFibGUgaWYgaXQgaXMgdXNlZCAqLworCU9pZAkJCXBhcmFtdmFyaWQg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCisJLyoKKwkgKiB0cnVlIGlmIHBh cmFtIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24KKwkgKiAo d2hlbiB0YXJnZXQgb2YgTEVUIHN0YXRlbWVudCBpcyBhbiBhcnJheSBmaWVsZCBvciBhbiByZWNv cmQgZmllbGQpLgorCSAqIEZvciB0aGlzIHBhcmFtIHdlIGRvIG5vdCBjaGVjayBTRUxFQ1QgYWNj ZXNzIHJpZ2h0LCBiZWNhdXNlIHRoaXMKKwkgKiBwYXJhbSBpcyB1c2VkIGp1c3QgZm9yIGV4ZWN1 dGlvbiBvZiBVUERBVEUgb3BlcmF0aW9uLgorCSAqLworCWJvb2wJCXBhcmFtYmFzZW5vZGU7CiAJ LyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlv bjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4u aCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCmluZGV4IGZlZTMzNzhiYmUzLi5l ODU1MTMyMGQxNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgK KysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEyNSw0ICsxMjUsNiBA QCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5uZXJJbmZv ICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5k ZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4dHJhY3Rf cXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4 dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJ bmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAppbmRleCBjMjVhZGU2OGYxOS4uNmY4NGZlZmQ1MjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTI1 Niw2ICsyNTYsNyBAQCBQR19LRVlXT1JEKCJsZWFkaW5nIiwgTEVBRElORywgUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYWtwcm9vZiIsIExFQUtQUk9PRiwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVhc3QiLCBMRUFTVCwg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlZnQiLCBMRUZULCBU WVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibGV0IiwgTEVU LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZXZlbCIsIExF VkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaWtlIiwg TElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxp bWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKaW5kZXggMGRlNDRkMTY2ZjQuLjhiNTVmODQwZDEwIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKQEAgLTgyLDYgKzgyLDggQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBS X0tJTkRfQ09QWV9XSEVSRSwJCS8qIFdIRVJFIGNvbmRpdGlvbiBpbiBDT1BZIEZST00gKi8KIAlF WFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTiwgLyogZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvciBh IGNvbHVtbiAqLwogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3ljbGUgbWFyayB2YWx1ZSAq LworCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBhc3NpZ25tZW50IHRhcmdl dCAqLworCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdldCAqLwogfSBQYXJzZUV4 cHJLaW5kOwogCiAKQEAgLTI0NCw2ICsyNDYsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQogCWJvb2wJ CXBfaGFzVGFyZ2V0U1JGczsKIAlib29sCQlwX2hhc1N1YkxpbmtzOwogCWJvb2wJCXBfaGFzTW9k aWZ5aW5nQ1RFOworCWJvb2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCU5vZGUJICAgKnBf bGFzdF9zcmY7CQkvKiBtb3N0IHJlY2VudCBzZXQtcmV0dXJuaW5nIGZ1bmMvb3AgZm91bmQgKi8K IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVk ZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBlYTg2OTU0ZGRlZC4uMjIwODJjMzAwMDggMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRBR19HUkFO VCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19HUkFOVF9S T0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFsc2UsIGZh bHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2UsIGZhbHNl LCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3JjL2luY2x1 ZGUvdGNvcC9kZXN0LmgKaW5kZXggMDBjMDkyZTNkN2MuLjZjZTNlYTBlNjE3IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaApA QCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGVudW0KIAlEZXN0VHJhbnNpZW50UmVsLAkJCS8qIHJl c3VsdHMgc2VudCB0byB0cmFuc2llbnQgcmVsYXRpb24gKi8KIAlEZXN0VHVwbGVRdWV1ZSwJCQkJ LyogcmVzdWx0cyBzZW50IHRvIHR1cGxlIHF1ZXVlICovCiAJRGVzdEV4cGxhaW5TZXJpYWxpemUs CQkvKiByZXN1bHRzIGFyZSBzZXJpYWxpemVkIGFuZCBkaXNjYXJkZWQgKi8KKwlEZXN0VmFyaWFi bGUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byBzZXNzaW9uIHZhcmlhYmxlICovCiB9IENvbW1hbmRE ZXN0OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCBlNWIwZGEw NGUzYy4uM2Y5MDFjZDhmY2QgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODA5OSw3ICs4MDk5LDgg QEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVyeS0+c29y dENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQg fHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8CisJ CXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBk M2I1Y2VlYTQzZi4uMzUzOWEzZjdhYzAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MDcsMyArNDA3LDEyMjcgQEAgRFJPUCBWQVJJ QUJMRSBwdWJsaWMudmFyMTsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOwogRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VB R0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50KQorUkVUVVJO UyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VDVVJJVFkgREVG SU5FUjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5T IGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5T IGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4 KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZnhf c2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0tLS0tLQorICAgICAgIDMwCisoMSByb3cpCisKK1NF TEVDVCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMw CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworIHBscGdzcWxmeF9zZCAKKy0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitT RVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VMRUNUIHNxbGZ4KDIwKTsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09O VEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCitTRUxFQ1QgcGxwZ3NxbGZ4 KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKK1BML3BnU1FMIGZ1 bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAg MzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAor LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVG QVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nfbm9vd25lcjsK Ky0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4KDIwKTsK KyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4KDIw KTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAzMAorKDEgcm93KQorCitTRVQg Uk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBzcWxm eChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gc3Fs Znhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCk7CitEUk9QIFJPTEUg cmVncmVzc19ub293bmVyOworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CistLSB1c2UgdmFyaWFibGVzIGluIHZpZXdzCitDUkVB VEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1 bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYpOworU0VMRUNUICogRlJPTSB0ZXN0X3Zp ZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xF VCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0t LS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dzKQorCistLSBzdGFydCBhIG5ldyBzZXNzaW9u CitcYworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAg IDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00g dGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dz KQorCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworRVJS T1I6ICBjYW5ub3QgZHJvcCBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgYmVjYXVzZSBvdGhlciBvYmpl Y3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyB0ZXN0X3ZpZXcgZGVwZW5kcyBvbiBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRo ZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUg dmFyMSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHRlc3Rfdmlldwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7Cist LSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8 ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g c3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIyIHx8ICcs ICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9 ICdzdHIyJzsKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgIHNxbGZ4MSAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzdHIxLCBzdHIyLCBIZWxsbworKDEgcm93KQor CistLSBpbmxpbmluZyBpcyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNF TEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVzdWx0CisgICBPdXRwdXQ6IHNxbGZ4MShz cWxmeDIoJ0hlbGxvJzo6Y2hhcmFjdGVyIHZhcnlpbmcpKQorKDIgcm93cykKKworRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZVTkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIGFjY2VzcyBmcm9tIGNh Y2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsK K0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2YXIx OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBs cGdzcWxmeDIobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJCBCRUdJTiBMRVQgdmFyMiA9ICQx OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2Vf Z2VuZXJpY19wbGFuOworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBs cGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAzLjE0CisoMSByb3cpCisKK0xFVCB2YXIxID0g My4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0K KyAgICAgIDYuMjgKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7CisgcGxwZ3Nx bGZ4MiAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdmFyMjsKKyB2YXIyIAor LS0tLS0tCisgMTAuMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklB QkxFIHZhcjI7CistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikgc2hvdWxkIHdvcmsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBB UyBudW1lcmljOworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBw bHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgOS40MgorKDEgcm93KQorCitMRVQgdmFyMSA9 IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0t CisgICAgIDEyLjU2CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngyKDEwLjApOworIHBscGdz cWxmeDIgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHZhcjI7CisgdmFyMiAK Ky0tLS0tLQorIDEwLjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJ QUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK0RST1AgRlVOQ1RJT04gcGxw Z3NxbGZ4MigpOworRVJST1I6ICBmdW5jdGlvbiBwbHBnc3FsZngyKCkgZG9lcyBub3QgZXhpc3QK Ky0tIGRlcGVuZGVuY3kgb24gY29sdW1uIHR5cGUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50LCBiIGludCwgYyBpbnQpOworSU5TRVJUIElO VE8gdGVzdHZhciBWQUxVRVMoMTAsMjAsMzApOworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9QIENP TFVNTiBhOworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBiOworQ1JFQVRFIEZVTkNU SU9OIHBscGdzcWxmeDMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQgdmFyMSA9 IChTRUxFQ1QgKiBGUk9NIHRlc3R2YXIpOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5E CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4 MygpOworTk9USUNFOiAgMzAKKyBwbHBnc3FsZngzIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0FMVEVSIFRBQkxFIHRlc3R2YXIgQUxURVIgQ09MVU1OIGMgVFlQRSBudW1lcmljOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOworTk9USUNFOiAgMzAKKyBwbHBnc3Fs ZngzIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4 MygpOworRFJPUCBUQUJMRSB0ZXN0dmFyOworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIHBsYW5f Y2FjaGVfbW9kZSBUTyBERUZBVUxUOworLS0gcmVwZWF0ZWQgZXhlY3V0aW9uIHNob3VsZCBub3Qg Y3Jhc2gKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEg aW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEpOworRE8gJCQKK0JFR0lOCisgIExF VCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNF TEVDVCBhIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2 YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAw OworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgKyB2 YXIxIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIx OworRU5EOworJCQ7CitOT1RJQ0U6ICAxMAorRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsK KyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVDVCBhIEZST00g dGVzdHZhcikgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsK K0VORDsKKyQkOworTk9USUNFOiAgMTAKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7Cisg IEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7CisgIEVORCBMT09QOwor ICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxMAorRE8gJCQK K0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExF VCB2YXIxID0gaSArIHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIx OworRU5EOworJCQ7CitOT1RJQ0U6ICA1NQorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSB0ZXN0dmFyOworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3Jr CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmlj W107CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4g MS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7 CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitF TkQ7CiskJDsKK05PVElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gQ0FMTCBzdGF0ZW1l bnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vz c2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2 IGludDsKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJ Q0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5vdCBjcmFz aCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworRVJST1I6ICBzZXNzaW9u IHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitETyAkJCBCRUdJTiBDQUxM IHAodik7IEVORCAkJDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBh cyBhbiBhcmd1bWVudAorQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIKK1BML3Bn U1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitEUk9QIFBST0NF RFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxFIHY7CistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBu b3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZh cmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50Owor TEVUIHYgPSAyMDsKK1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CistLSBzaG91bGQg ZmFpbAorRVhFQ1VURSBwdGVzdCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3Qg YmUgdXNlZCBhcyBhbiBhcmd1bWVudAorREVBTExPQ0FURSBwdGVzdDsKK0RST1AgVkFSSUFCTEUg djsKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVBVEUg VkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2 YXIxID0gcGkoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlz dAorTElORSAxOiBMRVQgdmFyMSA9IHBpKCk7CisgICAgICAgICAgICBeCitTRUxFQ1QgdmFyMTsK K0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgdmFy MTsKKyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEg PSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLQorIDMuMTQxNTkyNjUzNTg5NzkKKygxIHJvdykKKworU0VUIHNlYXJjaF9w YXRoIFRPIHN2YXJ0ZXN0OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAxMDsK K1NFTEVDVCB2YXIxOworICAgICAgIHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAx My4xNDE1OTI2NTM1ODk4CisoMSByb3cpCisKK1JFU0VUIHNlYXJjaF9wYXRoOworRFJPUCBTQ0hF TUEgc3ZhcnRlc3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2 YXJpYWJsZSBzdmFydGVzdC52YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworLS0g dmFyaWFibGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NF VCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitDT01NSVQ7CitT RUxFQ1QgdmFyMTsKKyB2YXIxICAKKy0tLS0tLS0KKyBoZWxsbworKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjE7CistLSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFp biBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludF9kb21haW47CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjog IGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAx MDAwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICB2 YWx1ZSBmb3IgZG9tYWluIGludF9kb21haW4gdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiaW50 X2RvbWFpbl9jaGVjayIKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CitFUlJPUjog IGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBub3RlIC0g ZG9tYWluIGRlZmF1bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFpbjsKKy0tIHRoZSBleHByZXNz aW9uIHNob3VsZCByZW1haW4gInVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0 bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFy MSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJd ID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICAgICB2 YXIxICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KKygxIHJvdykK KworLS1JdCBzaG91bGQgd29yayBpbiBwbHBnc3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2 YXIxID0gTlVMTDsKKyAgTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEy LDE0KX0ifSc7CisgIExFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNF IE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIHsie1syLDgpLFsxMSwxNCl9 Iiwie1s1LDgpLFsxMiwxMDApfSJ9CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgU0NIRU1B IHN2YXJ0ZXN0IENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEg aW50KTsKK0xFVCBzdmFydGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7Cisg dmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRoIHRvIHB1Ymxp Yywgc3ZhcnRlc3Q7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93 KQorCitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRl cyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZm9v Citkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9 IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworTEVUIHZhcjJbdmFyMV0gPSAwOworU0VMRUNU IHZhcjI7CisgICB2YXIyICAgIAorLS0tLS0tLS0tLS0KKyBbMjoyXT17MH0KKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9 ICd7fSc6OmludFtdOworU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorIHt9CisoMSByb3cp CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKy0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3Vs ZCBiZSBkaXNhbGxvd2VkIGluIENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lU SCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworRVJST1I6ICBzeW50YXgg ZXJyb3IgYXQgb3IgbmVhciAiTEVUIgorTElORSAxOiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAw KSBTRUxFQ1QgKiBGUk9NIHg7CisgICAgICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKy0tIHNob3VsZCBmYWlsCitMRVQg dmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAyKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5l ZCBtb3JlIHRoYW4gb25lIHJvdworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CitF UlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbm8gcm93cworRFJPUCBWQVJJQUJMRSB2YXIxOwor LS0gY29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBp bnQsIHogbnVtZXJpYygxMCwyKSk7CitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3ZfeHl6OworQ1JF QVRFIFZBUklBQkxFIHYyIEFTIHN2X3h5ejsKK0xFVCB2MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2 MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBhcmUg cHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKK1NFTEVDVCB2MTsKKyAgICAgdjEg ICAgIAorLS0tLS0tLS0tLS0tCisgKDEsMiwzLjAwKQorKDEgcm93KQorCitTRUxFQ1QgdjI7Cisg ICAgICB2MiAgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMCwyMCwzMS40MCkKKygxIHJvdykK KworU0VMRUNUICh2MSkuKjsKKyB4IHwgeSB8ICB6ICAgCistLS0rLS0tKy0tLS0tLQorIDEgfCAy IHwgMy4wMAorKDEgcm93KQorCitTRUxFQ1QgKHYyKS4qOworIHggIHwgeSAgfCAgIHogICAKKy0t LS0rLS0tLSstLS0tLS0tCisgMTAgfCAyMCB8IDMxLjQwCisoMSByb3cpCisKK1NFTEVDVCB2MS54 ICsgdjEuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgNC4wMAorKDEgcm93KQorCitT RUxFQ1QgdjIueCArIHYyLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgNDEuNDAKKygx IHJvdykKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9v CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHYyCitTRVQgUk9MRSBUTyBERUZB VUxUOworRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVkFSSUFCTEUgdjI7CitEUk9QIFRZUEUgc3Zf eHl6OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3VsZCBmYWlsLCB3 cm9uZyBpZGVudGlmaWVyCitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkLm5vc3ViZmll bGQgPSAxMDsKK0VSUk9SOiAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6IG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5ub3N1YmZpZWxkCitMRVQgbm9k Yi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkID0gMTA7CitFUlJPUjogIGNyb3NzLWRhdGFiYXNlIHJl ZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxk CitMRVQgbm9kYi5ub3NjaGVtYS5ub3ZhciA9IDEwOworRVJST1I6ICBjcm9zcy1kYXRhYmFzZSBy ZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vZGIubm9zY2hlbWEubm92YXIKK0NSRUFU RSBUWVBFIHQxIEFTIChhIGludCwgYiBudW1lcmljLCBjIHRleHQpOworQ1JFQVRFIFZBUklBQkxF IHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworICAg ICAgICAgICAgIHYxICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICgxLDMuMTQxNTkyNjUzNTg5NzksaGVsbG8pCisoMSByb3cpCisKK0xFVCB2MS5iID0gMTAuMjIy MjsKK1NFTEVDVCB2MTsKKyAgICAgICAgdjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0K KyAoMSwxMC4yMjIyLGhlbGxvKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRl IGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8g ZmllbGQgIngiIG9mIGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4g aW4gZGF0YSB0eXBlIHQxCitMSU5FIDE6IExFVCB2MS54ID0gMTA7CisgICAgICAgICAgICBeCist LSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAo TlVMTDo6dDEpLio7CitFUlJPUjogIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAzIGNv bHVtbnMKK0xJTkUgMTogTEVUIHYxID0gKE5VTEw6OnQxKS4qOworICAgICAgICAgICAgICAgICAg XgorLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0g c2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7 CisgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMikKKygxIHJvdykKKwor LS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxF Q1QgdjE7CisgICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyLCkKKygx IHJvdykKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisgICAgICB2MSAg ICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMTAsMTAuMywyMCkKKygxIHJvdykKKworLS0gc2hvdWxk IGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisgICB2 MSAgICAKKy0tLS0tLS0tLQorICgxMCwyMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGRp c2FsbG93IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGMg VFlQRSBpbnQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9u IHZhcmlhYmxlICJwdWJsaWMudjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZ UEUgdDE7CistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0 b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKK0xFVCB2YXIxID0gKDEwLCBwaSgpLCAn MjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICB2YXIxICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLDMuMTQxNTky NjUzNTg5NzksMDUtMjYtMjAyMykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVu ZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CitF UlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAic3Zhcl90ZXN0IiBiZWNhdXNlIHNlc3Npb24gdmFy aWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBz dmFyX3Rlc3Q7CitFUlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHN2YXJfdGVzdCBiZWNhdXNlIG90 aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEg ZGVwZW5kcyBvbiB0eXBlIHN2YXJfdGVzdAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRv IGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVEFCTEUgc3Zhcl90ZXN0OworQ1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIg aW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfdDE7CitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUgdmFyMSBUTyBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gKDEwLCAyMCk7CitMRVQgdmFyMS5hID0gMzA7 CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAoMTAwLCAxMDApOworICBMRVQgdmFyMS5hID0g MTAwMDsKK0VORDsKKyQkOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLmE7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCB2YXIx OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitM RVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBz ZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7 IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg dmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEiCitQTC9wZ1NRTCBmdW5j dGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0RPICQkIEJFR0lOIFJBSVNF IE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAi dmFyMS5hIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJB SVNFCitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDog IFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKK1BML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwgc3RhdGVtZW50CitTRVQgUk9MRSBU TyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJf dGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMS5hOworICBhICAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisK K1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgCistLS0tLS0tLS0tLS0KKyAoMTAwMCwxMDApCiso MSByb3cpCisKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0RPICQkIEJFR0lOIFJBSVNFIE5P VElDRSAnJScsIHZhcjE7IEVORCAkJDsKK05PVElDRTogICgxMDEwLDEwMCkKK0RPICQkIEJFR0lO IFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworTk9USUNFOiAgMTAxMAorRE8gJCQg QkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CitTRVQgUk9MRSBUTyBERUZB VUxUOworUkVWT0tFIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJfdGVz dF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZh aWwgYWdhaW4KK1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBz ZXNzaW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7 CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0RP ICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FM IGV4cHJlc3Npb24gInZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBs aW5lIDEgYXQgUkFJU0UKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5E ICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIx CitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMS5hIgorUEwvcGdTUUwgZnVuY3Rp b24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAkJCBCRUdJTiBMRVQgdmFy MS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIx LmEgPSB2YXIxLmEgKyAxMCIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxp bmUgMSBhdCBTUUwgc3RhdGVtZW50CitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0RST1AgVFlQRSB2YXJ0 ZXN0X3QxOworQ1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyB2YXJ0ZXN0 X3QxOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHZhcmlhYmxlICJw dWJsaWMudmFyMSIgaXMgb2YgdHlwZSAidGV4dCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0 eXBlCitMSU5FIDE6IFNFTEVDVCB2YXIxLmE7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgdmFy Mi5jOworRVJST1I6ICBjb3VsZCBub3QgaWRlbnRpZnkgY29sdW1uICJjIiBpbiB2YXJpYWJsZSAi cHVibGljLnZhcjIiCitMSU5FIDE6IFNFTEVDVCB2YXIyLmM7CisgICAgICAgICAgICAgICBeCitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIFRZUEUgdmFydGVz dF90MTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTsKK0xFVCB2 YXIxID0gJzEnOworTEVUIHZhcjEgPSAxMC4xOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0g JzEnOjpqc29uYjsKK0VSUk9SOiAgdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBvZiB0eXBlIGlu dGVnZXIsIGJ1dCBleHByZXNzaW9uIGlzIG9mIHR5cGUganNvbmIKK0xJTkUgMTogTEVUIHZhcjEg PSAnMSc6Ompzb25iOworICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBZb3Ugd2lsbCBuZWVk IHRvIHJld3JpdGUgb3IgY2FzdCB0aGUgZXhwcmVzc2lvbi4KKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAnMSc6Ompzb25iOjppbnQ7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEueCA9IDEw OworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgYmVjYXVzZSBpdHMgdHlwZSBpbnRlZ2VyIGlzIG5vdCBhIGNvbXBvc2l0 ZSB0eXBlCitMSU5FIDE6IExFVCB2YXIxLnggPSAxMDsKKyAgICAgICAgICAgIF4KK0RST1AgVkFS SUFCTEUgdmFyMTsKK0NSRUFURSBTQ0hFTUEgdmFydGVzdDsKK0NSRUFURSBUWVBFIHZhcnRlc3R0 eXBlIEFTICh2YXJ0ZXN0IGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0IEFT IHZhcnRlc3R0eXBlOworU0VUIFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7CistLSBzaG91bGQgZmFp bAorTEVUIHZhcnRlc3QudmFydGVzdCA9IDE7CitFUlJPUjogIHRhcmdldCAidmFydGVzdC52YXJ0 ZXN0IiBvZiBMRVQgY29tbWFuZCBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogTEVUIHZhcnRlc3QudmFy dGVzdCA9IDE7CisgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcnRlc3QudmFydGVzdDsK K0RST1AgVFlQRSB2YXJ0ZXN0dHlwZTsKK0VSUk9SOiAgdHlwZSAidmFydGVzdHR5cGUiIGRvZXMg bm90IGV4aXN0CitEUk9QIFNDSEVNQSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFV TFQ7CistLSBhcnJheXMgYXJlIHN1cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVt ZXJpY1tdOworTEVUIHZhcjEgPSBBUlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsK K1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgCistLS0tLS0tLS0tLS0KKyB7MTAuMSwyLjF9Ciso MSByb3cpCisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitM RVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CitFUlJPUjogIHNldC1yZXR1cm5p bmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBMRVQKK0xJTkUgMTogTEVUIHZhcjFbZ2Vu ZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworICAgICAgICAgICAgICAgICBeCitEUk9QIFZBUklB QkxFIHZhcjE7CistLSBhcnJheXMgaW5zaWRlIGNvbXBvc2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMg KGEgbnVtZXJpYywgYiBudW1lcmljW10pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CitM RVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAsIDAuMF0pOworTEVUIHZhcjEuYSA9IDEwLjI7CitT RUxFQ1QgdmFyMTsKKyAgICAgICAgdmFyMSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQor ICgxMC4yLCJ7MC4wLDAuMH0iKQorKDEgcm93KQorCitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NF TEVDVCB2YXIxOworICAgICAgICB2YXIxICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAoMTAuMiwiezEwLjMsMC4wfSIpCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVFlQRSB0MTsKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJh bGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBt aW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vy c19wZXJfZ2F0aGVyID0gMjsKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUg VEFCTEUgc3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUg VkFSSUFCTEUgemVybyBpbnQ7CitMRVQgemVybyA9IDA7CistLSByZXN1bHQgc2hvdWxkIGJlIDEw MAorU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworIGNv dW50IAorLS0tLS0tLQorICAgMTAwCisoMSByb3cpCisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBp cyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikg RlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dy ZWdhdGUKKyAgIC0+ICBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgIEZpbHRlcjogKChh ICUgMTApID0gemVybykKKygzIHJvd3MpCisKK0xFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBG Uk9NIHN2YXJfdGVzdCk7CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKK1NFTEVDVCB6ZXJvOwor IHplcm8gCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RS T1AgVEFCTEUgc3Zhcl90ZXN0OworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBh cmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOwor UkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKy0tIHRoZSByZXN1bHQgb2Yg dmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKK0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNF TEVDVCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1bHQ7CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3 OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJh bGxlbF9xdWVyeSBUTyBvbjsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAorLS0t LS0tLS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9m ZjsKK0RST1AgVklFVyB2YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJ QUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGlkIGludCwgdiBpbnQpOwor TEVUIHZhcmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7 CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8 IDEwMAorKDEgcm93KQorCitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0g dmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0K KyAgMSB8IDIwMAorKDEgcm93KQorCitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2 YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgdiAKKy0tLS0rLS0tCisoMCBy b3dzKQorCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUgdmFyaWQ7CistLSB2 aXNpYmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBw Z19jbGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7CisgcmVsbmFtZSAg CistLS0tLS0tLS0tCisgcGdfY2xhc3MKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOwor Q1JFQVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygz MzMpOworQ1JFQVRFIFRZUEUgeHh0eXBlIEFTIChhdmFyIGludCk7CitDUkVBVEUgVkFSSUFCTEUg eHh0YWIgQVMgeHh0eXBlOworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKy0tIGl0IGlz IGFtYmlndW91cywgYnV0IGNvbHVtbnMgYXJlIHByZWZlcnJlZAorU0VMRUNUIHh4dGFiLmF2YXIg RlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisg IDMzMworICAgMTAKKygyIHJvd3MpCisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBp bnQ7CistLSBzaG91bGQgYmUgb2ssIHNlZSB0aGUgdGFibGUKK1NFTEVDVCBhdmFyIEZST00geHh0 YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAg ICAgCisgICAgIAorKDIgcm93cykKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsKK1NFTEVDVCB4eHRh Yi5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dz KQorCitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFyOworRFJPUCBUWVBFIHh4dHlwZTsKK0RST1Ag VEFCTEUgeHh0YWI7CistLSBUaGUgdmFyaWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9y IGJ5IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQs IGMgaW50KTsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBl OworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyBw dWJsaWMuc3ZhciBWQUxVRVMoMTAsIDIwKTsKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwg MzAwKTsKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJs aWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCitTRUxF Q1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKwor U0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAx MCB8IDIwCisoMSByb3cpCisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsK KyAgICAgc3ZhciAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93 KQorCitTRUxFQ1QgcHVibGljLnN2YXIuYzsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQor CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0t Ky0tLS0tCisgMTAwIHwgMjAwIHwgMzAwCisoMSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBz aGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2 YXI7CitFUlJPUjogIGNvbHVtbiBzdmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNU IHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNh biBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3Zh ciB4OworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJPTSBw dWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4qIEZS T00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykK KworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAgICAg CistLS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBwdWJs aWMuc3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVibGlj LnN2YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAy MDAgfCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBl cnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29s dW1uIHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIuYyBG Uk9NIHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFs aWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAorLS0t LS0KKyAzMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVEFC TEUgcHVibGljLnN2YXI7CitEUk9QIFRZUEUgcHVibGljLnN2YXJfdHlwZTsKKy0tIFRoZSBzZXF1 ZW5jZSBpZGVudC4qIGNhbm5vdCBiZSB1c2VkIGJ5IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlh YmxlLAorLS0gYW5kIGluIHRoaXMgY2FzZSwgdGhlcmUgaXMgbm90IGNvbGxpc2lvbgorQ1JFQVRF IFNDSEVNQSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7CitDUkVBVEUgVEFC TEUgdmFydGVzdF9mb28oYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfZm9vIFZB TFVFUygxMCwyMCksICgzMCw0MCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X2Zv bzsKK0xFVCB2YXIxID0gKDEwMCwyMDApOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIx LiogRlJPTSB2YXJ0ZXN0X2ZvbzsKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBm b3IgdGFibGUgInZhcjEiCitMSU5FIDE6IFNFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsK KyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuKiBGUk9NIHZh cnRlc3RfZm9vIHZhcjE7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKyAzMCB8IDQw CisoMiByb3dzKQorCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIGNvdW50KHZhcjEuKikgRlJP TSB2YXJ0ZXN0X2ZvbzsKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFi bGUgInZhcjEiCitMSU5FIDE6IFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb287 CisgICAgICAgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBjb3VudCh2 YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMgor KDEgcm93KQorCitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKK0RST1AgU0NIRU1BIHZhcnRl c3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitE RVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHZhcnRlc3QudmFydGVzdF9mb28KK2Ryb3Ag Y2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0ZXN0LnZhcjEKK0NSRUFURSBUWVBFIGFi IEFTIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsK K0NSRUFURSBUQUJMRSB2X2FiIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitJTlNFUlQgSU5UTyB2 X2FiIFZBTFVFUygxMCwyMCk7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5h IEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIHZf YWI7CitDUkVBVEUgVkFSSUFCTEUgdl9hYi5hIEFTIGludGVnZXI7CistLSB3ZSBzaG91bGQgc2Vl IHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7 CitEUk9QIFZBUklBQkxFIHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CitDUkVBVEUgVFlQRSB0 X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworU0VUIHNlYXJjaF9w YXRoIFRPIHB1YmxpYzsKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVU IHh4eF9hbSA9IFJPVygxMCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4 X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0u YiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7CistLSBzaG91bGQgYmUgc3Rp bGwgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cp CisKKy0tIHNob3VsZCBmYWlsLCB0aGUgcmVmZXJlbmNlIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NF TEVDVCB4eHhfYW0uYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInh4eF9h bS5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUIHh4eF9hbS5iOworICAgICAgICAgICAg ICAgXgorLS0gZW5oYW5jZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMu eHh4X2FtLmI7CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIDoiREJOQU1FIi54 eHhfYW0uYjsKKyBiICAKKy0tLS0KKyAyMAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgeHh4X2Ft KGIgIGludCk7CitJTlNFUlQgSU5UTyB4eHhfYW0gVkFMVUVTKDEwKTsKKy0tIHdlIHNob3VsZCBz ZWUgdGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKKyBiICAKKy0tLS0KKyAxMAor KDEgcm93KQorCitTRUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisgYiAgCistLS0tCisgMTAKKygx IHJvdykKKworRFJPUCBUQUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07 CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworQ1JFQVRFIFND SEVNQSA6IkRCTkFNRSI7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRC TkFNRSIgQVMgdF9hbV90eXBlOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIu YiBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOworLS0gc2hvdWxkIGJlIGFt YmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJl ZmVyZW5jZSAicmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdy ZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0b28K K1NFTEVDVCA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg cmVmZXJlbmNlICJyZWdyZXNzaW9uLnJlZ3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6 IFNFTEVDVCAicmVncmVzc2lvbiIuInJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAgICAgICBeCitD UkVBVEUgVEFCTEUgOiJEQk5BTUUiKGIgaW50KTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoi REJOQU1FIi5iIEZST00gOiJEQk5BTUUiOworIGIgCistLS0KKygwIHJvd3MpCisKK0RST1AgVEFC TEUgOiJEQk5BTUUiOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9Q IFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJE Qk5BTUUiOworUkVTRVQgc2VhcmNoX3BhdGg7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKaW5kZXggZWFmZDNiYjIyNTMuLjM1YWE5MTRiNDBlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0yNzYsMyArMjc2LDg4MCBA QCBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKIERST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX3IyOwogCiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworLS0gY2hlY2sg YWNjZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19ub293bmVyOworCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBB UyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoaW50KQorUkVUVVJOUyBpbnQg QVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5TIGlu dCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbCBT RUNVUklUWSBERUZJTkVSOworCitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxF Q1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNU IHBscGdzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKworLS0gc2hvdWxkIGZh aWwKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qg c3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHNxbGZ4X3NkKDIwKTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCitTRVQgUk9MRSBU TyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293 bmVyOworCistLSBzaG91bGQgYmUgb2sKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKwor U0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisK K1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9O IHNxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElP TiBzcWxmeF9zZChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKKworRFJP UCBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKKworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW4g dmlld3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYs IDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBG Uk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3 OworCistLSBzdGFydCBhIG5ldyBzZXNzaW9uCitcYworCitTRUxFQ1QgKiBGUk9NIHRlc3Rfdmll dzsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzaG91 bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUg b2sKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0 ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgdGV4dDsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiBT UUwgZnVuY3Rpb25zCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDEodmFyY2hhcikK K1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMSB8fCAnLCAnIHx8ICQxICQkIExBTkdV QUdFIHNxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQor UkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VB R0Ugc3FsOworCitMRVQgdmFyMSA9ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOworCitTRUxF Q1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisKKy0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VY UExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykp OworCitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngy KHZhcmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCist LSBhY2Nlc3MgZnJvbSBjYWNoZWQgcGxhbnMgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworCitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQk IEJFR0lOIFJFVFVSTiB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4MihudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQk IEJFR0lOIExFVCB2YXIyID0gJDE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRVQgcGxh bl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworTEVUIHZhcjEgPSAzLjE0Owor U0VMRUNUIHBscGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3Fs ZngoKTsKKworU0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKworRFJPUCBW QVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBkZXBlbmRlbmN5IChwbGFu IGludmFsaWRhdGlvbikgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVy aWM7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMuMTQg KiAzOworU0VMRUNUIHBscGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBw bHBnc3FsZngoKTsKKworU0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBw bHBnc3FsZngoKTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4MigpOworCistLSBkZXBlbmRlbmN5 IG9uIGNvbHVtbiB0eXBlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFC TEUgdGVzdHZhcihhIGludCwgYiBpbnQsIGMgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFM VUVTKDEwLDIwLDMwKTsKKworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBhOworQUxU RVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBiOworCitDUkVBVEUgRlVOQ1RJT04gcGxwZ3Nx bGZ4MygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKFNFTEVDVCAq IEZST00gdGVzdHZhcik7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxmeDMoKTsKKwor QUxURVIgVEFCTEUgdGVzdHZhciBBTFRFUiBDT0xVTU4gYyBUWVBFIG51bWVyaWM7CisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxmeDMoKTsKKworRFJPUCBGVU5DVElPTiBwbHBnc3Fs ZngzKCk7CitEUk9QIFRBQkxFIHRlc3R2YXI7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBw bGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKworLS0gcmVwZWF0ZWQgZXhlY3V0aW9uIHNob3Vs ZCBub3QgY3Jhc2gKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0 dmFyKGEgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEpOworCitETyAkJAorQkVH SU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZh cjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElD RSAnJScsIHZhcjE7CitFTkQ7CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsK KyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVDVCBhICsgdmFy MSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsK K0VORDsKKyQkOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAx Li4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKSArIHZh cjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisK K0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AK KyAgICBMRVQgdmFyMSA9IGk7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIx OworRU5EOworJCQ7CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElO IDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGkgKyB2YXIxOworICBFTkQgTE9PUDsKKyAg UkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFRBQkxFIHRlc3R2YXI7CisKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3Nx bCBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxF IHZhcjIgbnVtZXJpY1tdOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRb XTsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQg dmFyMlt2YXIxXSA9IGk7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJh eTogJScsIHZhcjI7CitFTkQ7CiskJDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJ QUJMRSB2YXIyOworCistLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0g cmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lv biBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworCitDUkVBVEUgUFJPQ0VEVVJFIHAo YXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VB R0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQg eWV0KQorQ0FMTCBwKHYpOworCitETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKKworRFJP UCBQUk9DRURVUkUgcChpbnQpOworRFJPUCBWQVJJQUJMRSB2OworCistLSBFWEVDVVRFIHN0YXRl bWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBz ZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxF IHYgaW50OworTEVUIHYgPSAyMDsKK1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CisK Ky0tIHNob3VsZCBmYWlsCitFWEVDVVRFIHB0ZXN0KHYpOworCitERUFMTE9DQVRFIHB0ZXN0Owor RFJPUCBWQVJJQUJMRSB2OworCistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKworLS0g c2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQg YmUgb2sKK0xFVCBzdmFydGVzdC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOwor CitTRVQgc2VhcmNoX3BhdGggVE8gc3ZhcnRlc3Q7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZh cjEgPSBwaSgpICsgMTA7CitTRUxFQ1QgdmFyMTsKKworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9Q IFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0 OworCistLSB2YXJpYWJsZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JF R0lOOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NP TU1JVDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBv ZiBkb21haW5zCitDUkVBVEUgRE9NQUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNL IChWQUxVRSA+IDEwMCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworCist LSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEg PSAxMDAwOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOwor CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBOVUxMOworCistLSBub3RlIC0gZG9tYWluIGRl ZmF1bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorCitEUk9QIFZBUklB QkxFIHZhcjE7CitEUk9QIERPTUFJTiBpbnRfZG9tYWluOworCistLSB0aGUgZXhwcmVzc2lvbiBz aG91bGQgcmVtYWluICJ1bmtub3duIgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50NG11bHRp cmFuZ2VbXTsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworTEVUIHZhcjEgPSAn eyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgdmFyMVsyXSA9ICd7 WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCB2YXIxOworCistLUl0IHNob3VsZCB3b3JrIGluIHBs cGdzcWwgdG9vCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9 ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0g PSAne1s1LDgpLFsxMiwxMDApfSc7CisKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsK KyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3QgQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IENSRUFURSBUQUJMRSBmb28oYSBpbnQpOworTEVUIHN2 YXJ0ZXN0LnZhcjEgPSAxMDA7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKworU0VUIHNlYXJjaF9w YXRoIHRvIHB1YmxpYywgc3ZhcnRlc3Q7CisKK1NFTEVDVCB2YXIxOworCitEUk9QIFNDSEVNQSBz dmFydGVzdCBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUg VkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30n OjppbnRbXTsKKworTEVUIHZhcjJbdmFyMV0gPSAwOworCitTRUxFQ1QgdmFyMjsKKworRFJPUCBW QVJJQUJMRSB2YXIxLCB2YXIyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVB VEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAn e30nOjppbnRbXTsKKworU0VMRUNUIHZhcjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsK KworLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxF Q1QgKiBGUk9NIHg7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMSk7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVyYXRlX3Nlcmllcygx LCAyKTsKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDApOworCitEUk9QIFZBUklBQkxF IHZhcjE7CisKKy0tIGNvbXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBFIHN2X3h5eiBBUyAo eCBpbnQsIHkgaW50LCB6IG51bWVyaWMoMTAsMikpOworCitDUkVBVEUgVkFSSUFCTEUgdjEgQVMg c3ZfeHl6OworQ1JFQVRFIFZBUklBQkxFIHYyIEFTIHN2X3h5ejsKKworTEVUIHYxID0gKDEsIDIs IDMuMTQpOworTEVUIHYyID0gKDEwLCAyMCwgMy4xNCAqIDEwKTsKKworLS0gc2hvdWxkIHdvcmsg dG9vIC0gdGhlcmUgYXJlIHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7CisKK1NF TEVDVCB2MTsKK1NFTEVDVCB2MjsKK1NFTEVDVCAodjEpLio7CitTRUxFQ1QgKHYyKS4qOworCitT RUxFQ1QgdjEueCArIHYxLno7CitTRUxFQ1QgdjIueCArIHYyLno7CisKKy0tIGFjY2VzcyB0byBj b21wb3NpdGUgZmllbGRzIHNob3VsZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJfdGVzdF9yb2xlOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKKy0t IHNob3VsZCBmYWlsCitTRUxFQ1QgdjIueDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJP UCBWQVJJQUJMRSB2MTsKK0RST1AgVkFSSUFCTEUgdjI7CitEUk9QIFRZUEUgc3ZfeHl6OworRFJP UCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwsIHdyb25nIGlk ZW50aWZpZXIKK0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQubm9zdWJmaWVsZCA9IDEw OworTEVUIG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZCA9IDEwOworTEVUIG5vZGIubm9zY2hl bWEubm92YXIgPSAxMDsKKworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMg dGV4dCk7CisKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAn aGVsbG8nKTsKK1NFTEVDVCB2MTsKK0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKwor LS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOwor CistLSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEg PSAoTlVMTDo6dDEpLio7CisKKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21w b3NpdGUgdHlwZXMKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVU RSBjOworU0VMRUNUIHYxOworCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFU VFJJQlVURSBjIGludDsKK1NFTEVDVCB2MTsKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitT RUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVU RSBiOworU0VMRUNUIHYxOworCistLSBzaG91bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNo YW5nZQorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYyBUWVBFIGludDsKKworRFJPUCBW QVJJQUJMRSB2MTsKK0RST1AgVFlQRSB0MTsKKworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVz ZWQgYXMgY29tcG9zaXRlIHR5cGUgdG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBi IG51bWVyaWMsIGMgZGF0ZSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CisK K0xFVCB2YXIxID0gKDEwLCBwaSgpLCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisKKy0t IHNob3VsZCBmYWlsIGR1ZSBkZXBlbmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIg Q09MVU1OIGEgVFlQRSB0ZXh0OworCistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rl c3Q7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitDUkVB VEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdmFydGVzdF90MTsKKworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOwor CitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9ICgxMCwgMjApOworTEVUIHZhcjEuYSA9IDMwOworCitETyAkJAorQkVHSU4K KyAgTEVUIHZhcjEgPSAoMTAwLCAxMDApOworICBMRVQgdmFyMS5hID0gMTAwMDsKK0VORDsKKyQk OworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsKK1NFTEVDVCB2YXIxOworTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwOworCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIx OyBFTkQgJCQ7CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsK K0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworCitTRVQgUk9M RSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192 YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2 YXIxLmEgKyAxMDsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQk OworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitETyAkJCBC RUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJPTEUgVE8gREVG QVVMVDsKK1JFVk9LRSBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxk IGZhaWwgYWdhaW4KK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2 YXIxLmEgKyAxMDsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQk OworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitETyAkJCBC RUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJPTEUgVE8gREVG QVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rf cm9sZTsKK0RST1AgVFlQRSB2YXJ0ZXN0X3QxOworCitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFT IChhIGludCwgYiBpbnQpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworQ1JFQVRF IFZBUklBQkxFIHZhcjIgQVMgdmFydGVzdF90MTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2 YXIxLmE7CitTRUxFQ1QgdmFyMi5jOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklB QkxFIHZhcjI7CitEUk9QIFRZUEUgdmFydGVzdF90MTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50OworCitMRVQgdmFyMSA9IDE7CitMRVQgdmFyMSA9ICcxJzsKK0xFVCB2YXIxID0gMTAu MTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gJzEnOjpqc29uYjsKKworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9ICcxJzo6anNvbmI6OmludDsKKworLS0gc2hvdWxkIGZhaWwKK0xF VCB2YXIxLnggPSAxMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NIRU1BIHZh cnRlc3Q7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0dHlwZSBBUyAodmFydGVzdCBpbnQpOworQ1JFQVRF IFZBUklBQkxFIHZhcnRlc3QudmFydGVzdCBBUyB2YXJ0ZXN0dHlwZTsKK1NFVCBTRUFSQ0hfUEFU SCBUTyB2YXJ0ZXN0OworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcnRlc3QudmFydGVzdCA9IDE7 CisKK0RST1AgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0OworRFJPUCBUWVBFIHZhcnRlc3R0eXBl OworRFJPUCBTQ0hFTUEgdmFydGVzdDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworCist LSBhcnJheXMgYXJlIHN1cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1td OworTEVUIHZhcjEgPSBBUlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVD VCB2YXIxOworCistLSBMRVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAor TEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworCitEUk9QIFZBUklBQkxFIHZh cjE7CisKKy0tIGFycmF5cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBu dW1lcmljLCBiIG51bWVyaWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2 YXIxID0gKDEwLjEsIEFSUkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVD VCB2YXIxOworTEVUIHZhcjEuYlsxXSA9IDEwLjM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOworCistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVs IHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVf Y29zdCA9IDA7CitTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4 X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDI7CisKKy0tIHRlc3Qgb24gcXVlcnkgd2l0 aCB3b3JrZXJzCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2 YXJfdGVzdCBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQU5BTFlaRSBz dmFyX3Rlc3Q7CitDUkVBVEUgVkFSSUFCTEUgemVybyBpbnQ7CitMRVQgemVybyA9IDA7CisKKy0t IHJlc3VsdCBzaG91bGQgYmUgMTAwCitTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hF UkUgYSUxMCA9IHplcm87CisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVk IHlldAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3Qg V0hFUkUgYSUxMCA9IHplcm87CisKK0xFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2 YXJfdGVzdCk7CisKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisKK0RS T1AgVkFSSUFCTEUgemVybzsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitSRVNFVCBwYXJhbGxl bF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJh bGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0 aGVyOworCistLSB0aGUgcmVzdWx0IG9mIHZpZXcgc2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwg bW9kZSB0b28KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CisK K0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1 bHQ7CisKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVy eSBUTyBvbjsKKworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVs X3F1ZXJ5IFRPIG9mZjsKKworRFJPUCBWSUVXIHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIx OworCitDUkVBVEUgVkFSSUFCTEUgdmFyaWQgaW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChp ZCBpbnQsIHYgaW50KTsKKworTEVUIHZhcmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBW QUxVRVModmFyaWQsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKK1VQREFURSBzdmFy X3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90 ZXN0OworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBG Uk9NIHN2YXJfdGVzdDsKKworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZh cmlkOworCistLSB2aXNpYmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRv d2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJl bG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7 CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsK KworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDMzMyk7CisKK0NSRUFURSBUWVBFIHh4dHlwZSBB UyAoYXZhciBpbnQpOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0eXBlOworCitJTlNF UlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOworCistLSBpdCBpcyBhbWJpZ3VvdXMsIGJ1dCBjb2x1 bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKworQ1JFQVRFIFZBUklBQkxFIHB1 YmxpYy5hdmFyIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxF Q1QgYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMuYXZh ciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklBQkxFIHh4dGFiOworCitTRUxFQ1QgeHh0YWIuYXZh ciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFyOworCitEUk9QIFRZUEUg eHh0eXBlOworCitEUk9QIFRBQkxFIHh4dGFiOworCistLSBUaGUgdmFyaWFibGUgY2FuIGJlIHNo YWRvd2VkIGJ5IHRhYmxlIG9yIGJ5IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBl IEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBB UyBwdWJsaWMuc3Zhcl90eXBlOworCitDUkVBVEUgVEFCTEUgcHVibGljLnN2YXIoYSBpbnQsIGIg aW50KTsKKworSU5TRVJUIElOVE8gcHVibGljLnN2YXIgVkFMVUVTKDEwLCAyMCk7CisKK0xFVCBw dWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAwKTsKKworLS0gc2hvdWxkIGJlIG9rCistLSBzaG93 IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuYSBGUk9NIHB1 YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZh cmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVD VCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2Ug ZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBi ZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4 OworCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zhci4qIEZST00g cHVibGljLnN2YXI7CisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKK1NF TEVDVCBwdWJsaWMuc3Zhci5jOworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKworLS0gdGhlIHZh cmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJP TSBwdWJsaWMuc3ZhcjsKKworLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGlj LnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7 CitEUk9QIFRBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CisK Ky0tIFRoZSBzZXF1ZW5jZSBpZGVudC4qIGNhbm5vdCBiZSB1c2VkIGJ5IHJlZmVyZW5jZSB0byBz ZXNzaW9uIHZhcmlhYmxlLAorLS0gYW5kIGluIHRoaXMgY2FzZSwgdGhlcmUgaXMgbm90IGNvbGxp c2lvbgorQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7 CitDUkVBVEUgVEFCTEUgdmFydGVzdF9mb28oYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHZh cnRlc3RfZm9vIFZBTFVFUygxMCwyMCksICgzMCw0MCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcnRlc3RfZm9vOworTEVUIHZhcjEgPSAoMTAwLDIwMCk7CisKKy0tIHNob3VsZCB0byBm YWlsCitTRUxFQ1QgdmFyMS4qIEZST00gdmFydGVzdF9mb287CisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7CisKKy0tIHNob3VsZCB0byBmYWls CitTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOworCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKKworU0VUIFNF QVJDSF9QQVRIIFRPIERFRkFVTFQ7CitEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NBREU7CisKK0NS RUFURSBUWVBFIGFiIEFTIChhIGludGVnZXIsIGIgaW50ZWdlcik7CisKK0NSRUFURSBWQVJJQUJM RSB2X2FiIEFTIGFiOworCitDUkVBVEUgVEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIp OworSU5TRVJUIElOVE8gdl9hYiBWQUxVRVMoMTAsMjApOworCistLSB3ZSBzaG91bGQgc2VlIHRh YmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworQ1JFQVRFIFNDSEVNQSB2X2FiOworCitD UkVBVEUgVkFSSUFCTEUgdl9hYi5hIEFTIGludGVnZXI7CisKKy0tIHdlIHNob3VsZCBzZWUgdGFi bGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworCitEUk9QIFZBUklBQkxFIHZfYWI7CitEUk9Q IFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7CitEUk9QIFZBUklBQkxFIHZfYWIuYTsKK0RST1Ag U0NIRU1BIHZfYWI7CisKK0NSRUFURSBUWVBFIHRfYW1fdHlwZSBBUyAoYiBpbnQpOworQ1JFQVRF IFNDSEVNQSB4eHhfYW07CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CisKK0NSRUFURSBW QVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVUIHh4eF9hbSA9IFJPVygxMCk7CisKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9hbTsKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5i IEFTIGludDsKK0xFVCA6IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKworLS0gc2hvdWxkIGJlIHN0 aWxsIG9rCitTRUxFQ1QgeHh4X2FtOworCistLSBzaG91bGQgZmFpbCwgdGhlIHJlZmVyZW5jZSBz aG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2FtLmI7CisKKy0tIGVuaGFuY2VkIHJlZmVy ZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5iOworU0VMRUNUIDoiREJO QU1FIi54eHhfYW0uYjsKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOworSU5TRVJUIElO VE8geHh4X2FtIFZBTFVFUygxMCk7CisKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB4 eHhfYW0uYiBGUk9NIHh4eF9hbTsKK1NFTEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKworRFJPUCBU QUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklBQkxF IHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworCitDUkVBVEUgU0NIRU1BIDoiREJOQU1F IjsKKworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRf YW1fdHlwZTsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50Owor CitTRVQgc2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOworCistLSBzaG91bGQgYmUgYW1iaWd1b3Vz CitTRUxFQ1QgOiJEQk5BTUUiLmI7CisKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxF Q1QgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworCitDUkVBVEUgVEFCTEUgOiJEQk5BTUUiKGIgaW50 KTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6IkRCTkFNRSI7 CisKK0RST1AgVEFCTEUgOiJEQk5BTUUiOworCitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRC TkFNRSIuYjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitE Uk9QIFNDSEVNQSA6IkRCTkFNRSI7CisKK1JFU0VUIHNlYXJjaF9wYXRoOwpkaWZmIC0tZ2l0IGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdAppbmRleCBjYmU1OWZiMDcwOC4uYTA1Y2UyMDlkZmYgMTAwNjQ0Ci0tLSBhL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CkBAIC0xNTAwLDYgKzE1MDAsNyBAQCBMYXJnZU9iamVjdERlc2MKIExhdGNo CiBMYXVuY2hlckxhc3RTdGFydFRpbWVzRW50cnkKIExlcnBGdW5jCitMZXRTdG10CiBMZXhEZXNj cgogTGV4ZW1lRW50cnkKIExleGVtZUhhc2hLZXkKQEAgLTI2MDksNiArMjYxMCw3IEBAIFNlcmlh bGl6ZWRUcmFuc2FjdGlvblN0YXRlCiBTZXNzaW9uCiBTZXNzaW9uQmFja3VwU3RhdGUKIFNlc3Np b25FbmRUeXBlCitTZXNzaW9uVmFyaWFibGVWYWx1ZQogU2V0Q29uc3RyYWludFN0YXRlCiBTZXRD b25zdHJhaW50U3RhdGVEYXRhCiBTZXRDb25zdHJhaW50VHJpZ2dlckRhdGEKQEAgLTI4MDEsNiAr MjgwMyw5IEBAIFN1cHBvcnRSZXF1ZXN0Um93cwogU3VwcG9ydFJlcXVlc3RTZWxlY3Rpdml0eQog U3VwcG9ydFJlcXVlc3RTaW1wbGlmeQogU3VwcG9ydFJlcXVlc3RXRnVuY01vbm90b25pYworU1Zh cmlhYmxlCitTVmFyaWFibGVEYXRhCitTVmFyaWFibGVTdGF0ZQogU3luCiBTeW5jT3BzCiBTeW5j UmVwQ29uZmlnRGF0YQotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250106-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250106-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5l0fg9t21 RnJvbSAyMmVlNWU4NjIzMmI2ZDBiYjJjZjZlNmMxZmQzM2I1YWQ0YjFiNTJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIzICsrKysrLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDQwICstCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMzIgKysKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAgICAg ICB8ICAxNSArCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAg fCAgIDMgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sICAgIHwg IDI3ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAx NzggKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAgICAgICAgICAg ICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAgICAgICAgICAg fCAgMTIgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8 IDE0OSArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAg ICAgfCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAg ICAgICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAg ICAgIHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAg ICB8ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAg fCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3 NyArKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAg IDYgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDIyMSAr KysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyAgICAgICAgICAg fCAxMjEgKysrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMgICAgICAgICAg ICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAg IHwgMjUxICsrKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAg ICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAg ICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAg IHwgIDQxICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICAgICAg fCAgMTUgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwg MTA1ICsrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAg fCAgMTIgKwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwg IDIwICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIy MSArKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAg ICAgfCAxMTMgKysrKysKIHNyYy9iaW4vcGdfZHVtcC9jb21tb24uYyAgICAgICAgICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgICAgICAgICAgICAgICAg ICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oICAgICAgICAgICAgICAgICAg IHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8 ICAgOSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAx OTUgKysrKysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAg ICAgfCAgMTkgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAg IHwgICA2ICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8 ICA2NCArKysKIHNyYy9iaW4vcHNxbC9jb21tYW5kLmMgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMyArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAx MDAgKysrKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMyArCiBzcmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQz ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMg Ky0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDYgKwog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAgIHwgICAxICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAyMyArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgODEgKysrKwogc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5j bHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1 ZGUvdXRpbHMvYWNsLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0ICAgICAgfCAgMTcgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICA1MCArKysKIC4uLi9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDQwOSArKysrKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwgICAgICAgICAgIHwgIDE0ICsKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsICAgICAgICAgICAgICAgICB8ICAyMSArCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNzggKysrKysrKysrKysr CiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDQgKwog NjcgZmlsZXMgY2hhbmdlZCwgMzMyOCBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCiBj cmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggY2M2Y2Y5YmVmMDkuLjZiYmM2YzdlMjhlIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbApAQCAtMzY5LDYgKzM2OSwxMSBAQAogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtl bmQ9ImNhdGFsb2ctcGctdXNlci1tYXBwaW5nIj48c3RydWN0bmFtZT5wZ191c2VyX21hcHBpbmc8 L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+bWFwcGluZ3Mgb2YgdXNl cnMgdG8gZm9yZWlnbiBzZXJ2ZXJzPC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj48c3RydWN0 bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT5zZXNzaW9uIHZhcmlhYmxlczwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAg ICA8L3Rncm91cD4KICAgPC90YWJsZT4KQEAgLTMzMjgsNyArMzMzMyw4IEBAIFNDUkFNLVNIQS0y NTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJl cGxhY2VhYmxlPiZsCiAgICAgICAgPGxpdGVyYWw+UzwvbGl0ZXJhbD4gPSBzZXF1ZW5jZSwKICAg ICAgICA8bGl0ZXJhbD5mPC9saXRlcmFsPiA9IGZ1bmN0aW9uLAogICAgICAgIDxsaXRlcmFsPlQ8 L2xpdGVyYWw+ID0gdHlwZSwKLSAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYQor ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gc2NoZW1hLAorICAgICAgIDxsaXRlcmFsPlY8 L2xpdGVyYWw+ID0gc2Vzc2lvbiB2YXJpYWJsZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgogCkBAIC05NzMyLDQgKzk3MzgsMTE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2Vh YmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZs CiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJs ZSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxl PgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFy eT5wZ192YXJpYWJsZTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBU aGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGlu Zm9ybWF0aW9uIGFib3V0CisgICBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0 YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29s dW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9p ZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlm aWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy10eXBlIj48c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgVGhlIE9JRCBvZiB0aGUgdmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZh cmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0 ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3Ru YW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29u dGFpbnMgdGhpcyB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25l cjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+ dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAg ICBzdXBwbGllZCBhdCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1h eGltdW0KKyAgICAgICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAg SXQgaXMgcGFzc2VkIHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5k IGxlbmd0aCBjb2VyY2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJh bGx5IGJlIC0xIGZvciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBt b2Q8L3N0cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0 aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxs aW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRp b248L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24g b2YgdGhlIHZhcmlhYmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBv ZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52 YXJhY2w8L3N0cnVjdGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhy ZWYgbGlua2VuZD0ic3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1y ZXZva2UiLz4KKyAgICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2Vj dDE+CiA8L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggZGVhMDRkNjRkYjYuLjRmNzljNjc2YzMwIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBA IC0xOTkzLDYgKzE5OTMsNyBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwog ICAgICAgIEZvciBzZXF1ZW5jZXMsIHRoaXMgcHJpdmlsZWdlIGFsc28gYWxsb3dzIHVzZSBvZiB0 aGUKICAgICAgICA8ZnVuY3Rpb24+Y3VycnZhbDwvZnVuY3Rpb24+IGZ1bmN0aW9uLgogICAgICAg IEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBi ZSByZWFkLgorICAgICAgIEZvciBzZXNzaW9uIHZhcmlhYmxlcywgdGhpcyAgcHJpdmlsZWdlIGFs bG93cyB0aGUgb2JqZWN0IHRvIGJlIHJlYWQuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0yMDI4LDYgKzIwMjksOCBAQCBSRVZPS0UgQUxM IE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIDxmdW5jdGlvbj5zZXR2YWw8L2Z1bmN0 aW9uPiBmdW5jdGlvbnMuCiAgICAgICAgRm9yIGxhcmdlIG9iamVjdHMsIHRoaXMgcHJpdmlsZWdl IGFsbG93cyB3cml0aW5nIG9yIHRydW5jYXRpbmcgdGhlCiAgICAgICAgb2JqZWN0LgorICAgICAg IEZvciBzZXNzaW9uIHZhcmlhYmxlcywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHRvIHNldCBhIHZh bHVlIHRvIHRoZQorICAgICAgIG9iamVjdC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRl bT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIyNzEsNyArMjI3NCw4IEBAIFJFVk9LRSBBTEwg T04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgPGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9s aXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFVRU5DRTwvbGl0ZXJhbD4sCiAgICAgICAgPGxp dGVyYWw+VEFCTEU8L2xpdGVyYWw+IChhbmQgdGFibGUtbGlrZSBvYmplY3RzKSwKLSAgICAgICB0 YWJsZSBjb2x1bW4KKyAgICAgICB0YWJsZSBjb2x1bW4sCisgICAgICAgPGxpdGVyYWw+U0VTU0lP TiBWQVJJQUJMRTwvbGl0ZXJhbD4KICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8 cm93PgpAQCAtMjI4Niw3ICsyMjkwLDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBV QkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxs aXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJh bD4sCi0gICAgICAgdGFibGUgY29sdW1uCisgICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxs aXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8 L3Jvdz4KICAgICAgPHJvdz4KQEAgLTI0NzMsNiArMjQ3OCwxMiBAQCBSRVZPS0UgQUxMIE9OIGFj Y291bnRzIEZST00gUFVCTElDOwogICAgICAgPGVudHJ5PjxsaXRlcmFsPlU8L2xpdGVyYWw+PC9l bnRyeT4KICAgICAgIDxlbnRyeT48bGl0ZXJhbD5cZFQrPC9saXRlcmFsPjwvZW50cnk+CiAgICAg IDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPlNFU1NJT04gVkFSSUFC TEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5ydzwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5cZFYrPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93Pgog ICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KQEAgLTUzMjMsNiArNTMzNCwz MSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2Rh dGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorICA8 c2VjdDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICA8dGl0bGU+U2Vzc2lvbiBWYXJp YWJsZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtIHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlhYmxl cyI+CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJpYWJsZXM8L3ByaW1hcnk+CisgICA8L2luZGV4 dGVybT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9w cmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIFNlc3Npb24gdmFyaWFi bGVzIGFyZSBkYXRhYmFzZSBvYmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBTZXNz aW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQg dGhlaXIgYWNjZXNzCisgICAgaXMgY29udHJvbGxlZCB2aWEgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1h bmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+CisgICAgY29tbWFuZHMuICBBIHNlc3Np b24gdmFyaWFibGUgY2FuIGJlIGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURQorICAgIFZB UklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBU aGUgc2Vzc2lvbiB2YXJpYWJsZSBob2xkcyB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMg dmFsdWUgaXMgcHJpdmF0ZQorICAgIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hl biB0aGUgc2Vzc2lvbiBlbmRzLgorICAgPC9wYXJhPgorICA8L3NlY3QxPgorCiAgPHNlY3QxIGlk PSJkZGwtb3RoZXJzIj4KICAgPHRpdGxlPk90aGVyIERhdGFiYXNlIE9iamVjdHM8L3RpdGxlPgog CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbAppbmRleCA0NzM3MGU1ODFhZS4uZDA0MWE4NzMzNWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjUyNjksNiAr MjUyNjksMjUgQEAgU0VMRUNUIGhhc19mdW5jdGlvbl9wcml2aWxlZ2UoJ2pvZXVzZXInLCAnbXlm dW5jKGludCwgdGV4dCknLCAnZXhlY3V0ZScpOwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAg ICAgPC9yb3c+CiAKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4K KyAgICAgICAgIDxwcmltYXJ5Pmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZTwvcHJpbWFy eT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5oYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2U8L2Z1bmN0aW9uPiAoCisgICAgICAgICAgPG9wdGlvbmFsPiA8cGFy YW1ldGVyPnVzZXI8L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gb3IgPHR5cGU+b2lkPC90 eXBlPiwgPC9vcHRpb25hbD4KKyAgICAgICAgICA8cGFyYW1ldGVyPnNlc3Npb25fdmFyaWFibGU8 L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBlPiwKKyAgICAg ICAgICA8cGFyYW1ldGVyPnByaXZpbGVnZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiAp CisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3Bh cmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIERvZXMgdXNlciBoYXZlIHByaXZpbGVnZSBmb3Ig c2Vzc2lvbiB2YXJpYWJsZT8KKyAgICAgICAgQWxsb3dhYmxlIHByaXZpbGVnZSB0eXBlcyBhcmUK KyAgICAgICAgPGxpdGVyYWw+U0VMRUNUPC9saXRlcmFsPiwgYW5kCisgICAgICAgIDxsaXRlcmFs PlVQREFURTwvbGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4K KwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAgICAgICA8aW5kZXh0ZXJtPgpAQCAtMjU3OTQs NiArMjU4MTMsMTkgQEAgU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJs ZV9pc192aXNpYmxlKG9pZCk7CiAgICAgICAgIElzIHR5cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBp biBzZWFyY2ggcGF0aD8KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgorCisg ICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJp bWFyeT5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVy bT4KKyAgICAgICAgPGZ1bmN0aW9uPnBnX3ZhcmlhYmxlX2lzX3Zpc2libGU8L2Z1bmN0aW9uPiAo IDxwYXJhbWV0ZXI+dmFyaWFibGU8L3BhcmFtZXRlcj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAg ICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIElzIHNlc3Npb24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFy Y2ggcGF0aD8KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgogICAgICA8L3Ri b2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKaW5kZXggZjU0ZjI1 YzFjNmIuLmQwY2I1Mzc2M2FhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTY2NCw2ICsxNjY0LDIxIEBA CiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxl PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVu dCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAg VGhpcworICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFz ZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBz ZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWls YXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+Cisg ICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24t dmFyaWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRy eT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xv c3N0ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxs ZmlsZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3YS4uMmY2N2RlM2UyMWIgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwKQEAgLTQ3LDYgKzQ3LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBz b3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBhbHRlclR5cGUgICAgICAg ICAgU1lTVEVNICJhbHRlcl90eXBlLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2VyICAgICAgICAg IFNZU1RFTSAiYWx0ZXJfdXNlci5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlck1hcHBpbmcgICBT WVNURU0gImFsdGVyX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGFsdGVyVmFyaWFibGUg ICAgICBTWVNURU0gImFsdGVyX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJWaWV3ICAg ICAgICAgIFNZU1RFTSAiYWx0ZXJfdmlldy5zZ21sIj4KIDwhRU5USVRZIGFuYWx5emUgICAgICAg ICAgICBTWVNURU0gImFuYWx5emUuc2dtbCI+CiA8IUVOVElUWSBiZWdpbiAgICAgICAgICAgICAg U1lTVEVNICJiZWdpbi5zZ21sIj4KQEAgLTk5LDYgKzEwMCw3IEBAIENvbXBsZXRlIGxpc3Qgb2Yg dXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3Jl YXRlVHlwZSAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBjcmVh dGVVc2VyICAgICAgICAgU1lTVEVNICJjcmVhdGVfdXNlci5zZ21sIj4KIDwhRU5USVRZIGNyZWF0 ZVVzZXJNYXBwaW5nICBTWVNURU0gImNyZWF0ZV91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElU WSBjcmVhdGVWYXJpYWJsZSAgICAgU1lTVEVNICJjcmVhdGVfdmFyaWFibGUuc2dtbCI+CiA8IUVO VElUWSBjcmVhdGVWaWV3ICAgICAgICAgU1lTVEVNICJjcmVhdGVfdmlldy5zZ21sIj4KIDwhRU5U SVRZIGRlYWxsb2NhdGUgICAgICAgICBTWVNURU0gImRlYWxsb2NhdGUuc2dtbCI+CiA8IUVOVElU WSBkZWNsYXJlICAgICAgICAgICAgU1lTVEVNICJkZWNsYXJlLnNnbWwiPgpAQCAtMTQ3LDYgKzE0 OSw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMg ZGlyZWN0b3J5LgogPCFFTlRJVFkgZHJvcFR5cGUgICAgICAgICAgIFNZU1RFTSAiZHJvcF90eXBl LnNnbWwiPgogPCFFTlRJVFkgZHJvcFVzZXIgICAgICAgICAgIFNZU1RFTSAiZHJvcF91c2VyLnNn bWwiPgogPCFFTlRJVFkgZHJvcFVzZXJNYXBwaW5nICAgIFNZU1RFTSAiZHJvcF91c2VyX21hcHBp bmcuc2dtbCI+Cis8IUVOVElUWSBkcm9wVmFyaWFibGUgICAgICAgU1lTVEVNICJkcm9wX3Zhcmlh YmxlLnNnbWwiPgogPCFFTlRJVFkgZHJvcFZpZXcgICAgICAgICAgIFNZU1RFTSAiZHJvcF92aWV3 LnNnbWwiPgogPCFFTlRJVFkgZW5kICAgICAgICAgICAgICAgIFNZU1RFTSAiZW5kLnNnbWwiPgog PCFFTlRJVFkgZXhlY3V0ZSAgICAgICAgICAgIFNZU1RFTSAiZXhlY3V0ZS5zZ21sIj4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCmluZGV4IDg5YWFj ZWM0ZmFiLi5hNTg1MmQzMjU2NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9k ZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1 bHRfcHJpdmlsZWdlcy5zZ21sCkBAIC01MSw2ICs1MSwxMSBAQCBHUkFOVCB7IHsgVVNBR0UgfCBD UkVBVEUgfQogICAgIE9OIFNDSEVNQVMKICAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAu Li5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7IHsgU0VMRUNUIHwgVVBEQVRFIH0K KyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBWQVJJQUJMRVMKKyAg ICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1l PC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQor CiBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICB7IHsgU0VMRUNUIHwgSU5TRVJUIHwg VVBEQVRFIHwgREVMRVRFIHwgVFJVTkNBVEUgfCBSRUZFUkVOQ0VTIHwgVFJJR0dFUiB8IE1BSU5U QUlOIH0KICAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KQEAgLTgzLDYgKzg4LDEy IEBAIFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQogICAgIE9OIFNDSEVNQVMKICAgICBGUk9N IHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3Jl cGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0KICAgICBbIENBU0NBREUgfCBSRVNUUklDVCBd CisKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsgeyBTRUxFQ1QgfCBVUERBVEUg fSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBWQVJJQUJMRVMKKyAgICBG Uk9NIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8 L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0KKyAgICBbIENBU0NBREUgfCBSRVNUUklD VCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTExNywxNCArMTI4LDE0 IEBAIFJFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQogICA8cGFyYT4KICAgIEN1cnJlbnRseSwK ICAgIG9ubHkgdGhlIHByaXZpbGVnZXMgZm9yIHNjaGVtYXMsIHRhYmxlcyAoaW5jbHVkaW5nIHZp ZXdzIGFuZCBmb3JlaWduCi0gICB0YWJsZXMpLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywgYW5kIHR5 cGVzIChpbmNsdWRpbmcgZG9tYWlucykgY2FuIGJlCi0gICBhbHRlcmVkLiAgRm9yIHRoaXMgY29t bWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVnYXRlcyBhbmQgcHJvY2VkdXJlcy4KLSAgIFRo ZSB3b3JkcyA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5ST1VUSU5F UzwvbGl0ZXJhbD4gYXJlCi0gICBlcXVpdmFsZW50IGluIHRoaXMgY29tbWFuZC4gICg8bGl0ZXJh bD5ST1VUSU5FUzwvbGl0ZXJhbD4gaXMgcHJlZmVycmVkCi0gICBnb2luZyBmb3J3YXJkIGFzIHRo ZSBzdGFuZGFyZCB0ZXJtIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgdGFrZW4KLSAgIHRv Z2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FMIHJlbGVhc2VzLCBvbmx5IHRoZQotICAgd29y ZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90IHBv c3NpYmxlIHRvIHNldAotICAgZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5kIHBy b2NlZHVyZXMgc2VwYXJhdGVseS4pCisgICB0YWJsZXMpLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywg dHlwZXMgKGluY2x1ZGluZyBkb21haW5zKSwgYW5kIHNlc3Npb24KKyAgIHZhcmlhYmxlcyBjYW4g YmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0 ZXMKKyAgIGFuZCBwcm9jZWR1cmVzLiAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0 ZXJhbD4gYW5kCisgICA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQg aW4gdGhpcyBjb21tYW5kLgorICAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVm ZXJyZWQgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQKKyAgIHRlcm0gZm9yIGZ1bmN0aW9u cyBhbmQgcHJvY2VkdXJlcyB0YWtlbiB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTAor ICAgcmVsZWFzZXMsIG9ubHkgdGhlIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3 YXMgYWxsb3dlZC4gIEl0IGlzIG5vdAorICAgcG9zc2libGUgdG8gc2V0IGRlZmF1bHQgcHJpdmls ZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQogICA8L3BhcmE+ CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk2ZDI1ODY0MjNlCi0tLSAvZGV2L251bGwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBA Cis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgor IDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBW QVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmlt YXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3Nl Y29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5B TFRFUiBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+ CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4K KyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8 L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEg c2Vzc2lvbiB2YXJpYWJsZQorICA8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJl ZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9M RSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIg VkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBTRVQgU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9y ZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29t bWFuZD5BTFRFUiBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0 aW9uIG9mIGFuCisgICBleGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJh bCBzdWJmb3JtczoKKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48bGl0ZXJhbD5PV05FUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lv biB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xp dGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZv cm0gY2hhbmdlcyB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9u IHZhcmlhYmxlIGludG8gYW5vdGhlciBzY2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIE9ubHkgdGhlIG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQg dG8gYWx0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Np b24gdmFyaWFibGUgZnJvbSBvbmUgc2NoZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0 IGFsc28gaGF2ZSB0aGUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhl IG5ldyBzY2hlbWEgKG9yCisgICBiZSBhIHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1v dmUgdGhlIHNlc3Npb24gdmFyaWFibGUgb3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhl ciwKKyAgIHRoZSB1c2VyIG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIg b2YgdGhlIG5ldworICAgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8 bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFy aWFibGUncyBzY2hlbWEgKG9yIGJlIGEgc3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisg ICBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91 IGNvdWxkbid0IGRvIGJ5CisgICBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2 YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAg PHBhcmE+CisgICAgICAgIFRoZSBuYW1lIChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0 aGUgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAg IDxwYXJhPgorICAgICAgICBUaGUgdXNlciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNl c3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAg PC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9y IHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+ CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3 IHNjaGVtYSBmb3IgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAg PC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+Cisg ICA8L3BhcmE+CisgIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgor PHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3By b2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93 bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAg IDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJM RSBib28gT1dORVIgVE8gam9lOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgVG8gY2hhbmdlIHRoZSBzY2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxp dGVyYWw+Ym9vPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8 cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOwor PC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24g dmFyaWFibGVzIGFuZCB0aGlzIGNvbW1hbmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FM IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNx bC1hbHRlcnZhcmlhYmxlLXNlZS1hbHNvIj4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKwor ICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0i c3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMzLi4yMWNk ODA4MThmYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKQEAgLTY1LDYgKzY1LDcgQEAgQ09NTUVOVCBP TgogICBUUkFOU0ZPUk0gRk9SIDxyZXBsYWNlYWJsZT50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBM QU5HVUFHRSA8cmVwbGFjZWFibGU+bGFuZ19uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBUUklHR0VS IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxl PiBPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IHwKICAgVFlQRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8 L3JlcGxhY2VhYmxlPiB8CisgIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPgogfSBJUyB7IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5zdHJpbmdfbGl0ZXJhbDwvcmVwbGFjZWFibGU+IHwgTlVMTCB9 CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKaW5kZXggZWQ2OTI5OGNjYzYuLmQyYmIy NjUyMDliIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbApAQCAtMTAzLDkgKzEwMywx MCBAQCBDUkVBVEUgU0NIRU1BIElGIE5PVCBFWElTVFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcAogICAgICAgICBzY2hlbWEuIEN1cnJlbnRseSwg b25seSA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAgVEFCTEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5D UkVBVEUgVklFVzwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQogICAgICAgICBJTkRFWDwvY29t bWFuZD4sIDxjb21tYW5kPkNSRUFURSBTRVFVRU5DRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFU RQotICAgICAgICBUUklHR0VSPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+ IGFyZSBhY2NlcHRlZCBhcyBjbGF1c2VzCi0gICAgICAgIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUg U0NIRU1BPC9jb21tYW5kPi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkKLSAgICAgICAgYmUg Y3JlYXRlZCBpbiBzZXBhcmF0ZSBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQu CisgICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+LCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5k IDxjb21tYW5kPkNSRUFURQorICAgICAgICBWQVJJQUJMRTwvY29tbWFuZD4gYXJlIGFjY2VwdGVk IGFzIGNsYXVzZXMgd2l0aGluIDxjb21tYW5kPkNSRUFURQorICAgICAgICBTQ0hFTUE8L2NvbW1h bmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1heSBiZSBjcmVhdGVkIGluIHNlcGFyYXRlCisg ICAgICAgIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KICAgICAgICA8L3Bh cmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIxNCw2ICsy MTUsMTEgQEAgQ1JFQVRFIFZJRVcgaG9sbHl3b29kLndpbm5lcnMgQVMKICAgIFRoZSA8bGl0ZXJh bD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPiBvcHRpb24gaXMgYQogICAgPHByb2R1Y3RuYW1lPlBv c3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCiAgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQor ICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwv cGFyYT4KICA8L3JlZnNlY3QxPgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZlOTg4 ZjJlNDcyCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbApAQCAtMCwwICsxLDE0OSBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZh cmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFy eT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisg PHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRs ZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5n dWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRp dj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5k ZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBF WElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNl YWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248 L3JlcGxhY2VhYmxlPiBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNl Y3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxj b21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lv biB2YXJpYWJsZS4KKyAgIFNlc3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qg d2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nlc3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRo ZSBjb21tYW5kcyA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwv Y29tbWFuZD4uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcK KyAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2 YWx1ZSBpcyBzZXQgdG8KKyAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24g d2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9m IGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2Ft ZSBhcworICAgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkg dGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBp cyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+ CisKKyAgPG5vdGU+CisgICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1 b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkgb3RoZXIgaWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFp bHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3Bh cmE+CisgIDwvbm90ZT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAg aWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3QtZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJh bD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhp c3RzLiBBIG5vdGljZSBpcyBpc3N1ZWQgaW4KKyAgICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW5hbWUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZp ZWQsIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUtZGF0YV90eXBlIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9m IHRoZSBkYXRhIHR5cGUgb2YgdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtY29sbGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+ Q09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09M TEFURTwvbGl0ZXJhbD4gY2xhdXNlIGFzc2lnbnMgYSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlICh3aGljaCBtdXN0IGJlIG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUp LiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgIHRoZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxh dGlvbiBpcyB1c2VkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5Ob3RlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5k PkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAg dmFyaWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lv biB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwv dGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21t YW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFt ZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+Cisg IDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NWJkYjM1NjBmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFy aWFibGUuc2dtbApAQCAtMCwwICsxLDExNyBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9w X3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRy eSBpZD0ic3FsLWRyb3B2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcHZhcmlh YmxlIj4KKyAgPHByaW1hcnk+RFJPUCBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4K KworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+Cisg IDxzZWNvbmRhcnk+cmVtb3Zpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZt ZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8 bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0 YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8 cmVmbmFtZT5EUk9QIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBz ZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5v cHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0RST1AgVkFSSUFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBDQVND QURFIHwgUkVTVFJJQ1QgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNv bW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gcmVtb3ZlcyBhIHNlc3Npb24gdmFyaWFibGUu CisgICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIG9ubHkgYmUgcmVtb3ZlZCBieSBpdHMgb3duZXIg b3IgYSBzdXBlcnVzZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9y IGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0LiBBIG5vdGljZSBpcworICAg ICAgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEt cXVhbGlmaWVkLCBvZiBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9u IHRoZSBzZXNzaW9uIHZhcmlhYmxlIChzdWNoIGFzCisgICAgICB2aWV3cyksIGFuZCBpbiB0dXJu IGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgIChzZWUgPHhy ZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxp dGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpZiBhbnkgb2Jq ZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlzCisgICAgICB0aGUgZGVmYXVsdC4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxp c3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJh bD52YXIxPC9saXRlcmFsPjoKKworPHByb2dyYW1saXN0aW5nPgorRFJPUCBWQVJJQUJMRSB2YXIx OworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21t YW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1w bGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRl cnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVh dGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKwor PC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5OTlmNjU3ZDVjMC4uYzExODYwZmEyMDAg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2dyYW50LnNnbWwKQEAgLTEwMSw2ICsxMDEsMTIgQEAgR1JBTlQgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJl cGxhY2UKICAgICBbIFdJVEggeyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSB7IE9QVElPTiB8IFRS VUUgfCBGQUxTRSB9IF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KIAorR1JBTlQgeyBTRUxF Q1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUgPHJl cGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAgfCBB TEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2No ZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAgICBUTyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBb IFdJVEggR1JBTlQgT1BUSU9OIF0KKyAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KKwogPHBocmFz ZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9u PC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgogCiAgICAgWyBHUk9VUCBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPgpAQCAtMTE5LDgg KzEyNSw4IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICB0aGF0IGdyYW50cyBwcml2aWxl Z2VzIG9uIGEgZGF0YWJhc2Ugb2JqZWN0ICh0YWJsZSwgY29sdW1uLCB2aWV3LAogICAgZm9yZWln biB0YWJsZSwgc2VxdWVuY2UsIGRhdGFiYXNlLCBmb3JlaWduLWRhdGEgd3JhcHBlciwgZm9yZWln biBzZXJ2ZXIsCiAgICBmdW5jdGlvbiwgcHJvY2VkdXJlLCBwcm9jZWR1cmFsIGxhbmd1YWdlLCBs YXJnZSBvYmplY3QsIGNvbmZpZ3VyYXRpb24KLSAgIHBhcmFtZXRlciwgc2NoZW1hLCB0YWJsZXNw YWNlLCBvciB0eXBlKSwgYW5kIG9uZSB0aGF0IGdyYW50cwotICAgbWVtYmVyc2hpcCBpbiBhIHJv bGUuICBUaGVzZSB2YXJpYW50cyBhcmUgc2ltaWxhciBpbiBtYW55IHdheXMsIGJ1dAorICAgcGFy YW1ldGVyLCBzY2hlbWEsIHNlc3Npb24gdmFyaWFibGUsIHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBh bmQgb25lIHRoYXQKKyAgIGdyYW50cyBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNlIHZhcmlh bnRzIGFyZSBzaW1pbGFyIGluIG1hbnkgd2F5cywgYnV0CiAgICB0aGV5IGFyZSBkaWZmZXJlbnQg ZW5vdWdoIHRvIGJlIGRlc2NyaWJlZCBzZXBhcmF0ZWx5LgogICA8L3BhcmE+CiAKQEAgLTIzNiw5 ICsyNDIsOSBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICA8cGFyYT4KICAgIFRoZXJlIGlz IGFsc28gYW4gb3B0aW9uIHRvIGdyYW50IHByaXZpbGVnZXMgb24gYWxsIG9iamVjdHMgb2YgdGhl IHNhbWUKICAgIHR5cGUgd2l0aGluIG9uZSBvciBtb3JlIHNjaGVtYXMuICBUaGlzIGZ1bmN0aW9u YWxpdHkgaXMgY3VycmVudGx5IHN1cHBvcnRlZAotICAgb25seSBmb3IgdGFibGVzLCBzZXF1ZW5j ZXMsIGZ1bmN0aW9ucywgYW5kIHByb2NlZHVyZXMuICA8bGl0ZXJhbD5BTEwKLSAgIFRBQkxFUzwv bGl0ZXJhbD4gYWxzbyBhZmZlY3RzIHZpZXdzIGFuZCBmb3JlaWduIHRhYmxlcywganVzdCBsaWtl IHRoZQotICAgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBjb21tYW5k LiAgPGxpdGVyYWw+QUxMCisgICBvbmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rpb25z LCBwcm9jZWR1cmVzIGFuZCB2YXJpYWJsZXMuCisgICA8bGl0ZXJhbD5BTEwgVEFCTEVTPC9saXRl cmFsPiBhbHNvIGFmZmVjdHMgdmlld3MgYW5kIGZvcmVpZ24gdGFibGVzLCBqdXN0CisgICBsaWtl IHRoZSBzcGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8 bGl0ZXJhbD5BTEwKICAgIEZVTkNUSU9OUzwvbGl0ZXJhbD4gYWxzbyBhZmZlY3RzIGFnZ3JlZ2F0 ZSBhbmQgd2luZG93IGZ1bmN0aW9ucywgYnV0IG5vdAogICAgcHJvY2VkdXJlcywgYWdhaW4ganVz dCBsaWtlIHRoZSBzcGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+CiAgICBj b21tYW5kLiAgVXNlIDxsaXRlcmFsPkFMTCBST1VUSU5FUzwvbGl0ZXJhbD4gdG8gaW5jbHVkZSBw cm9jZWR1cmVzLgpAQCAtNTE4LDggKzUyNCw4IEBAIEdSQU5UIGFkbWlucyBUTyBqb2U7CiAgICA8 L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIFByaXZpbGVnZXMgb24gZGF0YWJhc2VzLCB0YWJsZXNw YWNlcywgc2NoZW1hcywgbGFuZ3VhZ2VzLCBhbmQKLSAgICBjb25maWd1cmF0aW9uIHBhcmFtZXRl cnMgYXJlCisgICAgUHJpdmlsZWdlcyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hlbWFz LCBsYW5ndWFnZXMsIHNlc3Npb24gdmFyaWFibGVzCisgICAgYW5kIGNvbmZpZ3VyYXRpb24gcGFy YW1ldGVycyBhcmUKICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4 dGVuc2lvbnMuCiAgICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbApp bmRleCA3MmYzMzQ3ZTUzZC4uYWMyNjVkYjM1ZTcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAg LTIwMzQsNiArMjAzNCwxOSBAQCBTRUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAgICAgICAgIDwvbGlz dGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRyeSBpZD0i YXBwLXBzcWwtbWV0YS1jb21tYW5kLWR2Ij4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRWWytd IFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJt PgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICBMaXN0cyBzZXNz aW9uIHZhcmlhYmxlcy4KKyAgICAgICAgSWYgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBhdHRlcm48L3JlcGxhY2VhYmxlPiBpcworICAgICAgICBzcGVjaWZpZWQsIG9ubHkgc2Vzc2lv biB2YXJpYWJsZXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlIGxpc3RlZC4KKyAg ICAgICAgSWYgdGhlIGZvcm0gPGxpdGVyYWw+XGRWKzwvbGl0ZXJhbD4gaXMgdXNlZCwgYWRkaXRp b25hbCBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCBlYWNoIHZhcmlhYmxlIGlzIHNob3duLCBs aWtlICBhY2Nlc3MgcHJpdmlsZWdlcyBhbmQgZGVzY3JpcHRpb24uCisgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICA8dmFy bGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZHUiPgogICAgICAgICA8dGVybT48 bGl0ZXJhbD5cZHVbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08 L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL3Jldm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAppbmRl eCA4ZGY0OTIyODFhMS4uNzYwZmRkYjdjMjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv cmV2b2tlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbApAQCAtMTMwLDYg KzEzMCwxNCBAQCBSRVZPS0UgWyB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IE9QVElPTiBGT1Ig XQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9z cGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0K IAorUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9 IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUgPHJlcGxh Y2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwg VkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1h X25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAgICBGUk9NIHsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IHwgUFVCTElD IH0gWywgLi4uXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FTQ0FERSB8IFJF U1RSSUNUIF0KKwogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgogCiAgICAg WyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxh Y2VhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGZmODVhY2U4M2ZjLi4yNTU3OGYzOTQ2YyAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWZlcmVuY2Uuc2dtbApAQCAtNzUsNiArNzUsNyBAQAogICAgJmFsdGVyVHlwZTsKICAgICZhbHRl clVzZXI7CiAgICAmYWx0ZXJVc2VyTWFwcGluZzsKKyAgICZhbHRlclZhcmlhYmxlOwogICAgJmFs dGVyVmlldzsKICAgICZhbmFseXplOwogICAgJmJlZ2luOwpAQCAtMTI3LDYgKzEyOCw3IEBACiAg ICAmY3JlYXRlVHlwZTsKICAgICZjcmVhdGVVc2VyOwogICAgJmNyZWF0ZVVzZXJNYXBwaW5nOwor ICAgJmNyZWF0ZVZhcmlhYmxlOwogICAgJmNyZWF0ZVZpZXc7CiAgICAmZGVhbGxvY2F0ZTsKICAg ICZkZWNsYXJlOwpAQCAtMTc1LDYgKzE3Nyw3IEBACiAgICAmZHJvcFR5cGU7CiAgICAmZHJvcFVz ZXI7CiAgICAmZHJvcFVzZXJNYXBwaW5nOworICAgJmRyb3BWYXJpYWJsZTsKICAgICZkcm9wVmll dzsKICAgICZlbmQ7CiAgICAmZXhlY3V0ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCmluZGV4IGMwOTAwOTRl ZDA4Li4yYzIwZDYwZGIxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmls ZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCkBAIC00NSw2ICs0NSw3IEBAIE9C SlMgPSBcCiAJcGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vic2NyaXB0aW9uLm8gXAogCXBnX3R5cGUu byBcCisJcGdfdmFyaWFibGUubyBcCiAJc3RvcmFnZS5vIFwKIAl0b2FzdGluZy5vCiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2FjbGNoay5jCmluZGV4IGIxOTYyOTRmYjI5Li4zM2JhMGI3ZmYyYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNo ay5jCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBl LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJj b21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC0yOTEsNiArMjkyLDkgQEAgcmVzdHJpY3RfYW5k X2NoZWNrX2dyYW50KGJvb2wgaXNfZ3JhbnQsIEFjbE1vZGUgYXZhaWxfZ29wdGlvbnMsIGJvb2wg YWxsX3ByaXZzLAogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJd2hvbGVfbWFzayA9 IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQli cmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5 cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBub3QgcmVhY2hlZCwgYnV0IGtlZXAgY29tcGlsZXIg cXVpZXQgKi8KQEAgLTUzNSw2ICs1MzksMTAgQEAgRXhlY3V0ZUdyYW50U3RtdChHcmFudFN0bXQg KnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7 CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBm b3IgcGFyYW1ldGVyIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlh bGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJZXJyb3Jtc2cgPSBn ZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFi bGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXpl ZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBzdG10LT5vYmp0eXBlKTsKQEAg LTY0MCw2ICs2NDgsOSBAQCBFeGVjR3JhbnRTdG10X29pZHMoSW50ZXJuYWxHcmFudCAqaXN0bXQp CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQlFeGVjR3JhbnRfUGFyYW1ldGVyKGlz dG10KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCUV4ZWNHcmFudF9j b21tb24oaXN0bXQsIFZhcmlhYmxlUmVsYXRpb25JZCwgQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUs IE5VTEwpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlzdG10LT5vYmp0eXBlKTsK QEAgLTc2MCw2ICs3NzEsMTggQEAgb2JqZWN0TmFtZXNUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBl LCBMaXN0ICpvYmpuYW1lcywgYm9vbCBpc19ncmFudCkKIAkJCQkJb2JqZWN0cyA9IGxhcHBlbmRf b2lkKG9iamVjdHMsIHBhcmFtZXRlcklkKTsKIAkJCX0KIAkJCWJyZWFrOworCisJCWNhc2UgT0JK RUNUX1ZBUklBQkxFOgorCQkJZm9yZWFjaF9ub2RlKFJhbmdlVmFyLCB2YXJ2YXIsIG9iam5hbWVz KQorCQkJeworCQkJCU9pZAkJCXJlbE9pZDsKKworCQkJCXJlbE9pZCA9IExvb2t1cFZhcmlhYmxl KHZhcnZhci0+c2NoZW1hbmFtZSwKKwkJCQkJCQkJCQl2YXJ2YXItPnJlbG5hbWUsCisJCQkJCQkJ CQkJZmFsc2UpOworCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCByZWxPaWQpOwor CQkJfQorCQkJYnJlYWs7CiAJfQogCiAJcmV0dXJuIG9iamVjdHM7CkBAIC04NDYsNiArODY5LDMy IEBAIG9iamVjdHNJblNjaGVtYVRvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm5zcG5h bWVzKQogCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CiAJCQkJfQogCQkJ CWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJeworCQkJCQlTY2FuS2V5RGF0 YSBrZXk7CisJCQkJCVJlbGF0aW9uCXJlbDsKKwkJCQkJVGFibGVTY2FuRGVzYyBzY2FuOworCQkJ CQlIZWFwVHVwbGUJdHVwbGU7CisKKwkJCQkJU2NhbktleUluaXQoJmtleSwKKwkJCQkJCQkJQW51 bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCQkJCQkJCUJURXF1YWxTdHJhdGVneU51bWJl ciwgRl9PSURFUSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJ CQkJCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2sp OworCQkJCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NhdGFsb2cocmVsLCAxLCAma2V5KTsKKwor CQkJCQl3aGlsZSAoKHR1cGxlID0gaGVhcF9nZXRuZXh0KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0 aW9uKSkgIT0gTlVMTCkKKwkJCQkJeworCQkJCQkJT2lkCQkJb2lkID0gKChGb3JtX3BnX3Byb2Mp IEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQ7CisKKwkJCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChv YmplY3RzLCBvaWQpOworCQkJCQl9CisKKwkJCQkJdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCQkJ dGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCX0KKwkJCQlicmVhazsKIAkJ CWRlZmF1bHQ6CiAJCQkJLyogc2hvdWxkIG5vdCBoYXBwZW4gKi8KIAkJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCkBAIC0xMDA1LDYgKzEwNTQsMTAg QEAgRXhlY0FsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfU0NIRU1BOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmls ZWdlIHR5cGUgJXMgZm9yIHNjaGVtYSIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWVy cm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXNz aW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgYWN0aW9uLT5v Ymp0eXBlKTsKQEAgLTExOTYsNiArMTI0OSwxMiBAQCBTZXREZWZhdWx0QUNMKEludGVybmFsRGVm YXVsdEFDTCAqaWFjbHMpCiAJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfU0NI RU1BOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlvYmp0eXBlID0g REVGQUNMT0JKX1ZBUklBQkxFOworCQkJaWYgKGlhY2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2 aWxlZ2VzID09IEFDTF9OT19SSUdIVFMpCisJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwg InVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBpYWNscy0+b2JqdHlw ZSk7CkBAIC0xNDM5LDYgKzE0OTgsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9s ZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNF OgogCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfU0NIRU1BOwogCQkJCWJyZWFrOworCQkJY2Fz ZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogU2hvdWxkbid0IGdldCBoZXJlICov CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgZGVmYXVsdCBBQ0wgdHlwZTogJWQiLApAQCAt MTQ5OSw2ICsxNTYxLDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwgT2lk IGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgUGFyYW1ldGVyQWNsUmVsYXRpb25JZDoKIAkJ CQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1BBUkFNRVRFUl9BQ0w7CiAJCQkJYnJlYWs7CisJCQlj YXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1ZBUklB QkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBvYmplY3QgY2xhc3MgJXUiLCBjbGFzc2lkKTsKIAkJCQlicmVhazsKQEAgLTI3MzIsNiArMjc5 Nyw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlw ZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVy bWlzc2lvbiBkZW5pZWQgZm9yIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5p ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9C SkVDVF9WSUVXOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBm b3IgdmlldyAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yODQzLDYgKzI5MTEsOSBAQCBhY2xjaGVj a19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2Ug T0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Yg dHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJ CQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHNlc3Npb24gdmFyaWFibGUg JXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9WSUVXOgogCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpA QCAtMjk5MSw2ICszMDYyLDggQEAgcGdfYWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBv YmplY3Rfb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJCXJldHVybiBBQ0xf Tk9fUklHSFRTOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuIG9iamVjdF9hY2xtYXNr KFR5cGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuIG9iamVjdF9hY2xtYXNrKFZhcmlhYmxlUmVsYXRp b25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQlkZWZhdWx0OgogCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBvYmp0 eXBlKTsKQEAgLTQyNTgsNiArNDMzMSwxMCBAQCBnZXRfdXNlcl9kZWZhdWx0X2FjbChPYmplY3RU eXBlIG9ianR5cGUsIE9pZCBvd25lcklkLCBPaWQgbnNwX29pZCkKIAkJCWRlZmFjbG9ianR5cGUg PSBERUZBQ0xPQkpfTkFNRVNQQUNFOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxFOworCQkJYnJlYWs7CisK IAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMK aW5kZXggMDk2YjY4YzdmMzkuLjFkYTA3MjBmNjFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNl cl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNs dWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0ZW5z aW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2Uu aCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYgKzE0NDYsMTAgQEAg ZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJCVJl bW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJCWNh c2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChvYmplY3QtPm9iamVj dElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29sbGF0 aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21l c29uLmJ1aWxkCmluZGV4IDE5NThlYTkyMzhhLi5lZDQ0Yzg3N2ZjYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21l c29uLmJ1aWxkCkBAIC0zMiw2ICszMiw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAg J3BnX3NoZGVwZW5kLmMnLAogICAncGdfc3Vic2NyaXB0aW9uLmMnLAogICAncGdfdHlwZS5jJywK KyAgJ3BnX3ZhcmlhYmxlLmMnLAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5nLmMnLAogKQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggZDk3ZDYzMmE3ZWYuLjQzMDdjYWQxNWM3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RzX3BhcnNlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1vbi9o YXNoZm5fdW5zdGFibGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC0yMjUsNiArMjI2LDcg QEAgc3RhdGljIGJvb2wgVFNQYXJzZXJJc1Zpc2libGVFeHQoT2lkIHByc0lkLCBib29sICppc19t aXNzaW5nKTsKIHN0YXRpYyBib29sIFRTRGljdGlvbmFyeUlzVmlzaWJsZUV4dChPaWQgZGljdElk LCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTVGVtcGxhdGVJc1Zpc2libGVFeHQo T2lkIHRtcGxJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU0NvbmZpZ0lzVmlz aWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3NpbmcpOworc3RhdGljIGJvb2wgVmFyaWFi bGVJc1Zpc2libGVFeHQoT2lkIHZhcmlkLCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyB2b2lk IHJlY29tcHV0ZU5hbWVzcGFjZVBhdGgodm9pZCk7CiBzdGF0aWMgdm9pZCBBY2Nlc3NUZW1wVGFi bGVOYW1lc3BhY2UoYm9vbCBmb3JjZSk7CiBzdGF0aWMgdm9pZCBJbml0VGVtcFRhYmxlTmFtZXNw YWNlKHZvaWQpOwpAQCAtOTg2LDYgKzk4OCw4NCBAQCBSZWxhdGlvbklzVmlzaWJsZUV4dChPaWQg cmVsaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJuIHZpc2libGU7CiB9CiAKKy8qCisgKiBW YXJpYWJsZUlzVmlzaWJsZQorICoJCURldGVybWluZSB3aGV0aGVyIGEgdmFyaWFibGUgKGlkZW50 aWZpZWQgYnkgT0lEKSBpcyB2aXNpYmxlIGluIHRoZQorICoJCWN1cnJlbnQgc2VhcmNoIHBhdGgu IFZpc2libGUgbWVhbnMgIndvdWxkIGJlIGZvdW5kIGJ5IHNlYXJjaGluZworICoJCWZvciB0aGUg dW5xdWFsaWZpZWQgdmFyaWFibGUgbmFtZSIuCisgKi8KK2Jvb2wKK1ZhcmlhYmxlSXNWaXNpYmxl KE9pZCB2YXJpZCkKK3sKKwlyZXR1cm4gVmFyaWFibGVJc1Zpc2libGVFeHQodmFyaWQsIE5VTEwp OworfQorCisvKgorICogVmFyaWFibGVJc1Zpc2libGVFeHQKKyAqCQlBcyBhYm92ZSwgYnV0IGlm IHRoZSB2YXJpYWJsZSBpc24ndCBmb3VuZCBhbmQgaXNfbWlzc2luZyBpcyBub3QgTlVMTCwKKyAq CQl0aGVuIHNldCAqaXNfbWlzc2luZyA9IHRydWUgYW5kIHJldHVybiBmYWxzZSwgaW5zdGVhZCBv ZiB0aHJvd2luZworICoJCWFuIGVycm9yLiAoQ2FsbGVyIG11c3QgaW5pdGlhbGl6ZSAqaXNfbWlz c2luZyA9IGZhbHNlLikKKyAqLworc3RhdGljIGJvb2wKK1ZhcmlhYmxlSXNWaXNpYmxlRXh0KE9p ZCB2YXJpZCwgYm9vbCAqaXNfbWlzc2luZykKK3sKKwlIZWFwVHVwbGUJdmFydHVwOworCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisJYm9vbAkJdmlzaWJs ZTsKKworCXZhcnR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXRE YXR1bSh2YXJpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh2YXJ0dXApKQorCXsKKwkJaWYg KGlzX21pc3NpbmcgIT0gTlVMTCkKKwkJeworCQkJKmlzX21pc3NpbmcgPSB0cnVlOworCQkJcmV0 dXJuIGZhbHNlOworCQl9CisKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisJfQorCXZhcmZvcm0gPSAoRm9ybV9wZ192 YXJpYWJsZSkgR0VUU1RSVUNUKHZhcnR1cCk7CisKKwlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7 CisKKwkvKgorCSAqIFF1aWNrIGNoZWNrOiBpZiBpdCBhaW4ndCBpbiB0aGUgcGF0aCBhdCBhbGws IGl0IGFpbid0IHZpc2libGUuIFdlCisJICogZG9uJ3QgZXhwZWN0IHVzYWdlIG9mIHNlc3Npb24g dmFyaWFibGVzIGluIHRoZSBzeXN0ZW0gbmFtZXNwYWNlLgorCSAqLworCXZhcm5hbWVzcGFjZSA9 IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsKKwlpZiAoIWxpc3RfbWVtYmVyX29pZChhY3RpdmVTZWFy Y2hQYXRoLCB2YXJuYW1lc3BhY2UpKQorCQl2aXNpYmxlID0gZmFsc2U7CisJZWxzZQorCXsKKwkJ LyoKKwkJICogSWYgaXQgaXMgaW4gdGhlIHBhdGgsIGl0IG1pZ2h0IHN0aWxsIG5vdCBiZSB2aXNp YmxlOyBpdCBjb3VsZCBiZQorCQkgKiBoaWRkZW4gYnkgYW5vdGhlciB2YXJpYWJsZSBvZiB0aGUg c2FtZSBuYW1lIGVhcmxpZXIgaW4gdGhlIHBhdGguIFNvCisJCSAqIHdlIG11c3QgZG8gYSBzbG93 IGNoZWNrIGZvciBjb25mbGljdGluZyByZWxhdGlvbnMuCisJCSAqLworCQljaGFyCSAgICp2YXJu YW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCQl2aXNpYmxlID0gZmFsc2U7CisJ CWZvcmVhY2hfb2lkKG5hbWVzcGFjZUlkLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQlpZiAo bmFtZXNwYWNlSWQgPT0gdmFybmFtZXNwYWNlKQorCQkJeworCQkJCS8qIGZvdW5kIGl0IGZpcnN0 IGluIHBhdGggKi8KKwkJCQl2aXNpYmxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlm IChPaWRJc1ZhbGlkKGdldF92YXJuYW1lX3ZhcmlkKHZhcm5hbWUsIG5hbWVzcGFjZUlkKSkpCisJ CQl7CisJCQkJLyogZm91bmQgc29tZXRoaW5nIGVsc2UgZmlyc3QgaW4gcGF0aCAqLworCQkJCWJy ZWFrOworCQkJfQorCQl9CisJfQorCisJUmVsZWFzZVN5c0NhY2hlKHZhcnR1cCk7CisKKwlyZXR1 cm4gdmlzaWJsZTsKK30KIAogLyoKICAqIFR5cGVuYW1lR2V0VHlwaWQKQEAgLTMyODksNiArMzM2 OSwxMzMgQEAgVFNDb25maWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5n KQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogUmV0dXJucyBvaWQgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSBzcGVjaWZpZWQgYnkgcG9zc2libHkgcXVhbGlmaWVkIGlkZW50aWZpZXIuCisgKgor ICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2luZ19vaywgZWxzZSB0 aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFt ZSwKKwkJCSAgIGNvbnN0IGNoYXIgKnZhcm5hbWUsCisJCQkgICBib29sIG1pc3Npbmdfb2spCit7 CisJT2lkCQkJdmFyb2lkID0gSW52YWxpZE9pZDsKKworCWlmIChuc3BuYW1lKQorCXsKKwkJT2lk IG5hbWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2UobnNwbmFtZSwgbWlzc2luZ19v ayk7CisKKwkJLyogaWYgbnNwbmFtZSBpcyBhIGtub3duIG5hbWVzcGFjZSwgdGhlIHZhcmlhYmxl IG11c3QgYmUgdGhlcmUgKi8KKwkJaWYgKE9pZElzVmFsaWQobmFtZXNwYWNlSWQpKQorCQl7CisJ CQl2YXJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3Zhcmlh YmxlX29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkJCQkg T2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCQl9CisJfQorCWVsc2UKKwl7CisJCS8q IGl0ZXJhdGUgb3ZlciB0aGUgc2NoZW1hcyBvbiB0aGUgc2VhcmNoX3BhdGggKi8KKwkJcmVjb21w dXRlTmFtZXNwYWNlUGF0aCgpOworCisJCWZvcmVhY2hfb2lkKG5hbWVzcGFjZUlkLCBhY3RpdmVT ZWFyY2hQYXRoKQorCQl7CisJCQl2YXJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1F TlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFy bmFtZSksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJCQlp ZiAoT2lkSXNWYWxpZCh2YXJvaWQpKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFPaWRJ c1ZhbGlkKHZhcm9pZCkgJiYgIW1pc3Npbmdfb2spCisJeworCQlpZiAobnNwbmFtZSkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJ CQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwK KwkJCQkJCQluc3BuYW1lLCB2YXJuYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJz ZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJdmFybmFtZSkp KTsKKwl9CisKKwlyZXR1cm4gdmFyb2lkOworfQorCisvKgorICogUmV0dXJucyBvaWQgb2Ygc2Vz c2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgcG9zc2libHkgcXVhbGlmaWVkIGlkZW50aWZpZXIK KyAqCisgKiBJZiBub3QgZm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBl bHNlIHRocm93cyBlcnJvci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdChM aXN0ICpuYW1lcywKKwkJCQkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwljaGFyCSAgICpjYXRu YW1lID0gTlVMTDsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2YXJuYW1l ID0gTlVMTDsKKworCXN3aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCXsKKwkJY2FzZSAxOgor CQkJdmFybmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJYnJlYWs7CisJCWNhc2Ug MjoKKwkJCW5zcG5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBz dHJWYWwobHNlY29uZChuYW1lcykpOworCQkJYnJlYWs7CisJCWNhc2UgMzoKKwkJCWNhdG5hbWUg PSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCW5zcG5hbWUgPSBzdHJWYWwobHNlY29uZChu YW1lcykpOworCQkJdmFybmFtZSA9IHN0clZhbChsdGhpcmQobmFtZXMpKTsKKworCQkJLyogY2hl Y2sgY2F0YWxvZyBuYW1lICovCisJCQlpZiAoc3RyY21wKGNhdG5hbWUsIGdldF9kYXRhYmFzZV9u YW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQlO YW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkg ZXJybXNnKCJpbXByb3BlciBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBu YW1lcyk6ICVzIiwKKwkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCWJyZWFr OworCX0KKworCXJldHVybiBMb29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5n X29rKTsKK30KKworLyoKKyAqIFRoZSBpbnB1dCBsaXN0IGNvbnRhaW5zIG5hbWVzIHdpdGggaW5k aXJlY3Rpb24gZXhwcmVzc2lvbnMgdXNlZCBhcyB0aGUgbGVmdAorICogcGFydCBvZiBMRVQgc3Rh dGVtZW50LiBUaGUgZm9sbG93aW5nIHJvdXRpbmUgcmV0dXJucyBhIG5ldyBsaXN0IHdpdGggb25s eQorICogaW5pdGlhbCBzdHJpbmdzIChuYW1lcykgLSB3aXRob3V0IGluZGlyZWN0aW9uIGV4cHJl c3Npb25zLgorICovCitMaXN0ICoKK05hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCit7CisJTGlz dENlbGwgICAqbDsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlmb3JlYWNoKGwsIG5hbWVz KQorCXsKKwkJTm9kZQkgICAqbiA9IGxmaXJzdChsKTsKKworCQlpZiAoSXNBKG4sIFN0cmluZykp CisJCXsKKwkJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwkJfQorCQllbHNlCisJCQli cmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQogCiAvKgogICogRGVjb25zdHJ1Y3RRdWFs aWZpZWROYW1lCkBAIC01MDg1LDMgKzUyOTIsMTcgQEAgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEo UEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9CT09MKGlzT3RoZXJUZW1wTmFtZXNwYWNl KG9pZCkpOwogfQorCitEYXR1bQorcGdfdmFyaWFibGVfaXNfdmlzaWJsZShQR19GVU5DVElPTl9B UkdTKQoreworCU9pZAkJCW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJYm9vbAkJcmVzdWx0Owor CWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJlc3VsdCA9IFZhcmlhYmxlSXNWaXNpYmxl RXh0KG9pZCwgJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9O VUxMKCk7CisJUEdfUkVUVVJOX0JPT0wocmVzdWx0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3Rh ZGRyZXNzLmMKaW5kZXggZDhlYjhkM2RlYWEuLjRhNDY0ZGZlYTdlIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFkZHJlc3MuYwpAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAtNjM2LDYg KzYzNywyMCBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5 W10gPQogCQlPQkpFQ1RfVVNFUl9NQVBQSU5HLAogCQlmYWxzZQogCX0sCisJeworCQkic2Vzc2lv biB2YXJpYWJsZSIsCisJCVZhcmlhYmxlUmVsYXRpb25JZCwKKwkJVmFyaWFibGVPaWRJbmRleElk LAorCQlWQVJJQUJMRU9JRCwKKwkJVkFSSUFCTEVOQU1FTlNQLAorCQlBbnVtX3BnX3ZhcmlhYmxl X29pZCwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zh cm5hbWVzcGFjZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJvd25lciwKKwkJQW51bV9wZ192YXJp YWJsZV92YXJhY2wsCisJCU9CSkVDVF9WQVJJQUJMRSwKKwkJdHJ1ZQorCX0KIH07CiAKIC8qCkBA IC04MzEsNiArODQ2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvYmplY3RfdHlwZV9tYXAKIAl9 LAogCXsKIAkJInN0YXRpc3RpY3Mgb2JqZWN0IiwgT0JKRUNUX1NUQVRJU1RJQ19FWFQKKwl9LAor CXsKKwkJInNlc3Npb24gdmFyaWFibGUiLCBPQkpFQ1RfVkFSSUFCTEUKIAl9CiB9OwogCkBAIC04 NTYsNiArODc0LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX2F0 dHJkZWYoT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkJYm9vbCBtaXNzaW5nX29rKTsK IHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc190eXBlKE9iamVjdFR5cGUg b2JqdHlwZSwKIAkJCQkJCQkJCQkJIFR5cGVOYW1lICp0eXBlbmFtZSwgYm9vbCBtaXNzaW5nX29r KTsKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0 ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2Jq ZWN0X2FkZHJlc3Nfb3BjZihPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iamVjdCwKIAkJCQkJ CQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0 X2FkZHJlc3Nfb3BmX21lbWJlcihPYmplY3RUeXBlIG9ianR5cGUsCkBAIC0xMTI3LDYgKzExNDYs OSBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3Qs CiAJCQkJCQkJCQkJCQkJCQkgbWlzc2luZ19vayk7CiAJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9 IDA7CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQlhZGRyZXNzID0g Z2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKGNhc3ROb2RlKExpc3QsIG9iamVjdCksIG1pc3Np bmdfb2spOworCQkJCWJyZWFrOwogCQkJCS8qIG5vIGRlZmF1bHQsIHRvIGxldCBjb21waWxlciB3 YXJuIGFib3V0IG1pc3NpbmcgY2FzZSAqLwogCQl9CiAKQEAgLTIwMDUsMTYgKzIwMjcsMjAgQEAg Z2V0X29iamVjdF9hZGRyZXNzX2RlZmFjbChMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykK IAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJb2JqdHlwZV9zdHIgPSAic2NoZW1hcyI7 CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQlvYmp0eXBlX3N0ciA9 ICJ2YXJpYWJsZXMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJIGVy cm1zZygidW5yZWNvZ25pemVkIGRlZmF1bHQgQUNMIG9iamVjdCB0eXBlIFwiJWNcIiIsIG9ianR5 cGUpLAotCQkJCQkgZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNc IiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAorCQkJCQkgZXJyaGludCgiVmFsaWQgb2JqZWN0 IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wi LiIsCiAJCQkJCQkJIERFRkFDTE9CSl9SRUxBVElPTiwKIAkJCQkJCQkgREVGQUNMT0JKX1NFUVVF TkNFLAogCQkJCQkJCSBERUZBQ0xPQkpfRlVOQ1RJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9UWVBF LAotCQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQQUNFKSkpOworCQkJCQkJCSBERUZBQ0xPQkpfTkFN RVNQQUNFLAorCQkJCQkJCSBERUZBQ0xPQkpfVkFSSUFCTEUpKSk7CiAJfQogCiAJLyoKQEAgLTIw OTgsNiArMjEyNCwyNCBAQCB0ZXh0YXJyYXlfdG9fc3RydmFsdWVsaXN0KEFycmF5VHlwZSAqYXJy KQogCXJldHVybiBsaXN0OwogfQogCisvKgorICogRmluZCB0aGUgT2JqZWN0QWRkcmVzcyBmb3Ig YSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitnZXRfb2JqZWN0 X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCit7CisJT2Jq ZWN0QWRkcmVzcyBhZGRyZXNzOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNoYXIJICAg KnZhcm5hbWUgPSBOVUxMOworCisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBWYXJpYWJsZVJl bGF0aW9uSWQsIEludmFsaWRPaWQpOworCisJRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lKG9iamVj dCwgJm5zcG5hbWUsICZ2YXJuYW1lKTsKKwlhZGRyZXNzLm9iamVjdElkID0gTG9va3VwVmFyaWFi bGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7CisKKwlyZXR1cm4gYWRkcmVzczsKK30K KwogLyoKICAqIFNRTC1jYWxsYWJsZSB2ZXJzaW9uIG9mIGdldF9vYmplY3RfYWRkcmVzcwogICov CkBAIC0yMjkyLDYgKzIzMzYsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05f QVJHUykKIAkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJY2FzZSBPQkpFQ1RfT1BDTEFT UzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJ b2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQUNDRVNT X01FVEhPRDoKQEAgLTI0NjMsNiArMjUwOCw3IEBAIGNoZWNrX29iamVjdF9vd25lcnNoaXAoT2lk IHJvbGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmplY3RBZGRyZXNzIGFkZHJlc3MsCiAJCWNh c2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJ Y2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJ CWlmICghb2JqZWN0X293bmVyY2hlY2soYWRkcmVzcy5jbGFzc0lkLCBhZGRyZXNzLm9iamVjdElk LCByb2xlaWQpKQogCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlw ZSwKIAkJCQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpKTsK QEAgLTM0OTIsNiArMzUzOCwzMiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJCX0KIAorCQlj YXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpuc3BuYW1lOworCQkJ CUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJCQkJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+ b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLAorCQkJ CQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxl KSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWlmIChWYXJpYWJsZUlzVmlzaWJsZShvYmplY3QtPm9i amVjdElkKSkKKwkJCQkJbnNwbmFtZSA9IE5VTEw7CisJCQkJZWxzZQorCQkJCQluc3BuYW1lID0g Z2V0X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisKKwkJCQlhcHBlbmRT dHJpbmdJbmZvKCZidWZmZXIsIF8oInNlc3Npb24gdmFyaWFibGUgJXMiKSwKKwkJCQkJCQkJIHF1 b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQlOYW1lU3Ry KHZhcmZvcm0tPnZhcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQli cmVhazsKKwkJCX0KKwogCQljYXNlIFRTUGFyc2VyUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlIZWFw VHVwbGUJdHVwOwpAQCAtMzg0NCw2ICszOTE2LDE2IEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNv bnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCQkJCQkJCSBf KCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNjaGVtYXMgYmVsb25naW5nIHRvIHJvbGUgJXMi KSwKIAkJCQkJCQkJCQkgcm9sZW5hbWUpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNM T0JKX1ZBUklBQkxFOgorCQkJCQkJaWYgKG5zcG5hbWUpCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5m bygmYnVmZmVyLAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzZXNz aW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyBpbiBzY2hlbWEgJXMiKSwKKwkJCQkJ CQkJCQkJIHJvbGVuYW1lLCBuc3BuYW1lKTsKKwkJCQkJCWVsc2UKKwkJCQkJCQlhcHBlbmRTdHJp bmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3 IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCisJCQkJCQkJCQkJCSBy b2xlbmFtZSk7CisJCQkJCQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCS8qIHNob3VsZG4n dCBnZXQgaGVyZSAqLwogCQkJCQkJaWYgKG5zcG5hbWUpCkBAIC00NjYwLDYgKzQ3NDIsMTAgQEAg Z2V0T2JqZWN0VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9v bCBtaXNzaW5nX29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAidHJhbnNm b3JtIik7CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFr OworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNz OiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpAQCAtNTc2Niw2ICs1ODUyLDEwIEBAIGdldE9i amVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAogCQkJCQkJCQkJCQkgICAiIG9uIHNjaGVtYXMi KTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCQkJICAgIiBvbiBzZXNzaW9u IHZhcmlhYmxlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJfQogCiAJCQkJaWYgKG9iam5hbWUpCkBA IC02MDA2LDYgKzYwOTYsMzMgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRp b25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJCQkJY2hhcgkgICAqdmFybmFtZTsK KwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJ CXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmpl Y3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwK KwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJp YWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNlX25hbWVf b3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJCXZhcm5hbWUgPSBOYW1lU3RyKHZh cmZvcm0tPnZhcm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXMiLAor CQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hLCB2YXJuYW1lKSk7CisK KwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVtYSwgcHN0 cmR1cCh2YXJuYW1lKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsK KwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBj bGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQu YwppbmRleCA1MzYxOTEyODRlOC4uYzZmZDFmYTA3NGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVw ZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2RpY3QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3VzZXJf bWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJj b21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTE3MTQsNiArMTcxNSw3IEBAIHNoZGVwUmVhc3Np Z25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBPaWQgbmV3cm9sZSkKIAkJ Y2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgogCQlj YXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgog CQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xhc3NpZCwKIAkJCQkJCQkJ CSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf dmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjlkOTY3 YTJkNWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKQEAgLTAsMCArMSwyNTEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Zhcmlh YmxlLmMKKyAqCQlzZXNzaW9uIHZhcmlhYmxlcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJw b3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImNhdGFs b2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVk ZSAidXRpbHMvc3lzY2FjaGUuaCIKKworc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3Zhcmlh YmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCisJCQkJCQkJCQkgT2lkIHZhck5hbWVzcGFjZSwKKwkJ CQkJCQkJCSBPaWQgdmFyVHlwZSwKKwkJCQkJCQkJCSBpbnQzMiB2YXJUeXBtb2QsCisJCQkJCQkJ CQkgT2lkIHZhck93bmVyLAorCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCisJCQkJCQkJCQkg Ym9vbCBpZl9ub3RfZXhpc3RzKTsKKworCisvKgorICogQ3JlYXRlcyBlbnRyeSBpbiBwZ192YXJp YWJsZSB0YWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCisJCQkJT2lkIHZhck5hbWVzcGFjZSwKKwkJCQlPaWQgdmFyVHlw ZSwKKwkJCQlpbnQzMiB2YXJUeXBtb2QsCisJCQkJT2lkIHZhck93bmVyLAorCQkJCU9pZCB2YXJD b2xsYXRpb24sCisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzKQoreworCUFjbAkJICAgKnZhcmFjbDsK KwlOYW1lRGF0YQl2YXJuYW1lOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlE YXR1bQkJdmFsdWVzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1 cGxlCXR1cDsKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPYmplY3RBZGRyZXNzIG15c2VsZiwKKwkJ CQlyZWZlcmVuY2VkOworCU9iamVjdEFkZHJlc3NlcyAqYWRkcnM7CisJT2lkCQkJdmFyaWQ7CisK KwlBc3NlcnQodmFyTmFtZSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyTmFtZXNwYWNlKSk7CisJ QXNzZXJ0KE9pZElzVmFsaWQodmFyVHlwZSkpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck93bmVy KSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKgorCSAqIENoZWNrIGZvciBkdXBsaWNhdGVzLiBOb3RlIHRoYXQgdGhpcyBk b2VzIG5vdCByZWFsbHkgcHJldmVudAorCSAqIGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRv IHByb3ZpZGUgbmljZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KKwkgKiBjYXNlLiBUaGUgcmVh bCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRhbG9nLgorCSAqLworCWlm IChTZWFyY2hTeXNDYWNoZUV4aXN0czIoVkFSSUFCTEVOQU1FTlNQLAorCQkJCQkJCSAgUG9pbnRl ckdldERhdHVtKHZhck5hbWUpLAorCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3Bh Y2UpKSkKKwl7CisJCWlmIChpZl9ub3RfZXhpc3RzKQorCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJdmFy TmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVz XCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJCXZhck5hbWUpKSk7CisKKwkJdGFibGVfY2xvc2Uo cmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7 CisJfQorCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxs cywgZmFsc2UsIHNpemVvZihudWxscykpOworCisJbmFtZXN0cmNweSgmdmFybmFtZSwgdmFyTmFt ZSk7CisKKwl2YXJpZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJ ZCwgQW51bV9wZ192YXJpYWJsZV9vaWQpOworCisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lk IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhcmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnZhcm5hbWUpOworCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3Bh Y2UpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0odmFyVHlwZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0g PSBJbnQzMkdldERhdHVtKHZhclR5cG1vZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy b3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOworCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRp b24pOworCisJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2woT0JKRUNUX1ZBUklBQkxFLCB2 YXJPd25lciwKKwkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOworCWlmICh2YXJhY2wgIT0gTlVMTCkK KwkJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyYWNsIC0gMV0gPSBQb2ludGVyR2V0RGF0dW0o dmFyYWNsKTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfdmFyaWFibGVfdmFyYWNsIC0gMV0gPSB0 cnVlOworCisJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKworCXR1cCA9IGhlYXBf Zm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQo cmVsLCB0dXApOworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwlhZGRycyA9IG5ld19v YmplY3RfYWRkcmVzc2VzKCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIG5hbWVzcGFjZSAqLworCU9i amVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgTmFtZXNwYWNlUmVsYXRpb25JZCwgdmFyTmFtZXNw YWNlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKwor CS8qIGRlcGVuZGVuY3kgb24gdXNlZCB0eXBlICovCisJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVu Y2VkLCBUeXBlUmVsYXRpb25JZCwgdmFyVHlwZSk7CisJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNz KCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGNvbGxhdGlvbiAqLwor CWlmIChPaWRJc1ZhbGlkKHZhckNvbGxhdGlvbikgJiYKKwkJdmFyQ29sbGF0aW9uICE9IERFRkFV TFRfQ09MTEFUSU9OX09JRCkKKwl7CisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgQ29s bGF0aW9uUmVsYXRpb25JZCwgdmFyQ29sbGF0aW9uKTsKKwkJYWRkX2V4YWN0X29iamVjdF9hZGRy ZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJfQorCisJcmVjb3JkX29iamVjdF9hZGRyZXNzX2Rl cGVuZGVuY2llcygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOworCWZyZWVfb2Jq ZWN0X2FkZHJlc3NlcyhhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIG93bmVyICovCisJcmVj b3JkRGVwZW5kZW5jeU9uT3duZXIoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgdmFyT3duZXIp OworCisJLyogZGVwZW5kZW5jaWVzIG9uIHJvbGVzIG1lbnRpb25lZCBpbiBkZWZhdWx0IEFDTCAq LworCXJlY29yZERlcGVuZGVuY3lPbk5ld0FjbChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAw LCB2YXJPd25lciwgdmFyYWNsKTsKKworCS8qIGRlcGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCisJ cmVjb3JkRGVwZW5kZW5jeU9uQ3VycmVudEV4dGVuc2lvbigmbXlzZWxmLCBmYWxzZSk7CisKKwlo ZWFwX2ZyZWV0dXBsZSh0dXApOworCisJLyogcG9zdCBjcmVhdGlvbiBob29rIGZvciBuZXcgZnVu Y3Rpb24gKi8KKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhWYXJpYWJsZVJlbGF0aW9uSWQs IHZhcmlkLCAwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwly ZXR1cm4gbXlzZWxmOworfQorCisvKgorICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZQorICoKKyAq IFVzZWQgYnkgQ1JFQVRFIFZBUklBQkxFIGNvbW1hbmQKKyAqLworT2JqZWN0QWRkcmVzcworQ3Jl YXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3Rt dCkKK3sKKwlPaWQJCQluYW1lc3BhY2VpZDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJ CXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJT2lkCQkJdmFyb3duZXIgPSBHZXRVc2VySWQoKTsK KwlPaWQJCQljb2xsYXRpb247CisJT2lkCQkJdHlwY29sbGF0aW9uOworCU9iamVjdEFkZHJlc3Mg dmFyaWFibGU7CisKKwluYW1lc3BhY2VpZCA9CisJCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlv bk5hbWVzcGFjZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBOVUxMKTsKKworCXR5cGVuYW1lVHlw ZUlkQW5kTW9kKHBzdGF0ZSwgc3RtdC0+dHlwZU5hbWUsICZ0eXBpZCwgJnR5cG1vZCk7CisKKwkv KiBkaXNhbGxvdyBwc2V1ZG90eXBlcyAqLworCWlmIChnZXRfdHlwdHlwZSh0eXBpZCkgPT0gVFlQ VFlQRV9QU0VVRE8pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUg cHNldWRvLXR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSkpOworCisJYWNs cmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFR5cGVSZWxhdGlvbklkLCB0eXBpZCwgR2V0VXNlcklk KCksIEFDTF9VU0FHRSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hl Y2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIHR5cGlkKTsKKworCXR5cGNvbGxhdGlvbiA9IGdldF90 eXBjb2xsYXRpb24odHlwaWQpOworCisJaWYgKHN0bXQtPmNvbGxDbGF1c2UpCisJCWNvbGxhdGlv biA9IExvb2t1cENvbGxhdGlvbihwc3RhdGUsCisJCQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5j b2xsbmFtZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmxvY2F0aW9uKTsKKwllbHNlCisJ CWNvbGxhdGlvbiA9IHR5cGNvbGxhdGlvbjsKKworCS8qIGNvbXBsYWluIGlmIENPTExBVEUgaXMg YXBwbGllZCB0byBhbiB1bmNvbGxhdGFibGUgdHlwZSAqLworCWlmIChPaWRJc1ZhbGlkKGNvbGxh dGlvbikgJiYgIU9pZElzVmFsaWQodHlwY29sbGF0aW9uKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJjb2xs YXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVf YmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENs YXVzZS0+bG9jYXRpb24pKSk7CisKKwl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShzdG10LT52 YXJpYWJsZS0+cmVsbmFtZSwKKwkJCQkJCQkgICBuYW1lc3BhY2VpZCwKKwkJCQkJCQkgICB0eXBp ZCwKKwkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJICAgdmFyb3duZXIsCisJCQkJCQkJICAgY29s bGF0aW9uLAorCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMpOworCisJZWxvZyhERUJVRzEs ICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdhcyBjcmVhdGVk IGluIHBnX3ZhcmlhYmxlIiwKKwkJIHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLCB2YXJpYWJsZS5v YmplY3RJZCk7CisKKwlyZXR1cm4gdmFyaWFibGU7Cit9CisKKy8qCisgKiBEcm9wIHZhcmlhYmxl IGJ5IE9JRAorICovCit2b2lkCitEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKK3sKKwlSZWxh dGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVS ZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJ c1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJp YWJsZSAldSIsIHZhcmlkKTsKKworCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2Vs Zik7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhj bHVzaXZlTG9jayk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCA3OGMxZDRlMWI4NC4uNjcxNTNj ZDhiOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2NvbGxhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBA IC0xNDAsNiArMTQxLDEwIEBAIHJlcG9ydF9uYW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQs IGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BP aWQpKTsKIAkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlv biBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7 CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVh ZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJ CWJyZWFrOwpAQCAtNDE5LDYgKzQyNCw3IEBAIEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0 bXQpCiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9O OgogCQljYXNlIE9CSkVDVF9TVUJTQ1JJUFRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgog CQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpA QCAtNTU5LDYgKzU2NSw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RT Y2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JK RUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCQkJCU9pZAkJCWNsYXNzSWQ7 CkBAIC02NDEsNiArNjQ4LDcgQEAgQWx0ZXJPYmplY3ROYW1lc3BhY2Vfb2lkKE9pZCBjbGFzc0lk LCBPaWQgb2JqaWQsIE9pZCBuc3BPaWQsCiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoK IAkJY2FzZSBUU1RlbXBsYXRlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6 CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7 CiAKQEAgLTg3MSw2ICs4NzksNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQg KnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RBQkxFU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElP TkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKIAkJCXsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9w Y21kcy5jCmluZGV4IGNlYjlhMjI5YjYzLi5lYmI1ODVkYzRhMSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9w Y21kcy5jCkBAIC00NzYsNiArNDc2LDEwIEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVj dFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJs aWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3Ry VmFsKG9iamVjdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cg PSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBz a2lwcGluZyIpOworCQkJbmFtZSA9IE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2Jq ZWN0KSk7CisJCQlicmVhazsKIAogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNU X0RBVEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IGVkYzJjOTg4 ZTI5Li4xODM5YzFmODJjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRf dHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAt MjE0OSw2ICsyMTQ5LDggQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0 eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJl dHVybiAiVFlQRSI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJM RSI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1Rf QUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpAQCAtMjIzMiw2ICsyMjM0 LDggQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJ CXJldHVybiAiVEFCTEVTUEFDRVMiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJU WVBFUyI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRVMiOwog CQkJLyogdGhlc2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VT U19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j CmluZGV4IGNlZTVkN2JiYjljLi41N2I0ZTY3MTljMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j CkBAIC05Miw2ICs5Miw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9iamVjdFR5cGUg b2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExB VEU6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4 IDMzZWE2MTkyMjRiLi44M2QwNTFkM2FhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAg LTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9y YWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlX3hsb2cuaCIKICNpbmNsdWRlICJjYXRh bG9nL3RvYXN0aW5nLmgiCkBAIC02NzcyLDYgKzY3NzMsNyBAQCBBVFR5cGVkVGFibGVSZWN1cnNp b24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAgKiAo cG9zc2libHkgbmVzdGVkIHNldmVyYWwgbGV2ZWxzIGRlZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBh cnJheXMsIGV0YyEpLgogICogRXZlbnR1YWxseSwgd2UnZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUg Y2hlY2sgb3IgcmV3cml0ZSBvcGVyYXRpb24KICAqIGludG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Ig bm93LCBqdXN0IGVycm9yIG91dCBpZiB3ZSBmaW5kIGFueS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0 eXBlT2lkIiBpcyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAq IENhbGxlciBzaG91bGQgcHJvdmlkZSBlaXRoZXIgdGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2Yg YSByb3d0eXBlLAogICogb3IgYSB0eXBlIG5hbWUgKG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBl cnJvciBtZXNzYWdlLCBpZiBhbnkuCkBAIC02ODM1LDYgKzY4MzcsNDUgQEAgZmluZF9jb21wb3Np dGVfdHlwZV9kZXBlbmRlbmNpZXMoT2lkIHR5cGVPaWQsIFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwK IAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogY2hlY2sgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0 eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lk ID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJeworCQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQt Pm9iamlkOworCisJCQlpZiAob3JpZ1R5cGVOYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJb3JpZ1R5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNw YWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJ CWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1Jl bGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vz c2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBl cnJtc2coImNhbm5vdCBhbHRlciBmb3JlaWduIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24g dmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJl bGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwt PnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ CQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpKSk7CisKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJLyogRWxzZSwgaWdub3Jl IGRlcGVuZGVlcyB0aGF0IGFyZW4ndCByZWxhdGlvbnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xh c3NpZCAhPSBSZWxhdGlvblJlbGF0aW9uSWQpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBl Y21kcy5jCmluZGV4IDZiMWQyMzgzNTE0Li4zZTFmZGU0Y2RkNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBl Y21kcy5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19yYW5nZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9k ZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21t YW5kcy90eXBlY21kcy5oIgpAQCAtMzQwNCw2ICszNDA1LDIwIEBAIGdldF9yZWxzX3dpdGhfZG9t YWluKE9pZCBkb21haW5PaWQsIExPQ0tNT0RFIGxvY2ttb2RlKQogCQkJfQogCQkJY29udGludWU7 CiAJCX0KKwkJZWxzZSBpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25J ZCkKKwkJeworCQkJLyoKKwkJCSAqIFdlIGNhbm5vdCB0byB2YWxpZGF0ZSBjb25zdHJhaW50IGlu c2lkZSBzZXNzaW9uIHZhcmlhYmxlcworCQkJICogZnJvbSBvdGhlciBzZXNzaW9ucywgc28gYmV0 dGVyIHRvIGZhaWwgaWYgdGhlcmUgYXJlIGFueQorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSwgdGhh dCB1c2UgdGhpcyBkb21haW4uCisJCQkgKi8KKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiY2Fubm90 IGFsdGVyIGRvbWFpbiBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1 c2VzIGl0IiwKKwkJCQkJCQkJZG9tYWluVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2Vf bmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UocGdfZGVwZW5kLT5vYmppZCkpLAor CQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBnX2RlcGVuZC0+b2JqaWQpKSkpOwor CQl9CiAKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCB1c2VyIGNvbHVt bnMgb2YgcmVsYXRpb25zICovCiAJCS8qICh3ZSBhc3N1bWUgc3lzdGVtIGNvbHVtbnMgYXJlIG5l dmVyIG9mIGRvbWFpbiB0eXBlcykgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGI0YzFlMmM2OWRkLi43OTYx NDdhNTQxYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIK ICNpbmNsdWRlICJncmFtcGFyc2UuaCIKQEAgLTI4MSw4ICsyODIsOCBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogCQlDb25zdHJhaW50c1NldFN0bXQgQ29weVN0bXQgQ3JlYXRlQXNTdG10IENy ZWF0ZUNhc3RTdG10CiAJCUNyZWF0ZURvbWFpblN0bXQgQ3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVh dGVHcm91cFN0bXQgQ3JlYXRlT3BDbGFzc1N0bXQKIAkJQ3JlYXRlT3BGYW1pbHlTdG10IEFsdGVy T3BGYW1pbHlTdG10IENyZWF0ZVBMYW5nU3RtdAotCQlDcmVhdGVTY2hlbWFTdG10IENyZWF0ZVNl cVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJ Q3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVT dG10CisJCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTZXNzaW9uVmFyU3Rt dCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3RtdAorCQlDcmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVh dGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQK IAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVhdGVUcmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10 IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJQ3JlYXRlVXNlclN0bXQgQ3JlYXRlVXNlck1hcHBpbmdT dG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBvbGljeVN0bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xh cmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVsZXRlU3RtdCBEaXNjYXJkU3RtdCBEb1N0bXQKQEAg LTc3NSw4ICs3NzYsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVFU0NBUEUgVU5CT1VO REVEIFVOQ09ORElUSU9OQUwgVU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVO S05PV04KIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBVU0lORwogCi0JVkFD VVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklB RElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxFCisJVkFD VVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklB QkxFIFZBUklBQkxFUworCVZBUklBRElDIFZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBW SUVXUyBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lU SElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTEwNDIsNiArMTA0Myw3IEBAIHN0 bXQ6CiAJCQl8IENyZWF0ZVBvbGljeVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8IENy ZWF0ZVNjaGVtYVN0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRlU2Vx U3RtdAogCQkJfCBDcmVhdGVTdG10CiAJCQl8IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAgLTE1 ODQsNiArMTU4Niw3IEBAIHNjaGVtYV9zdG10OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJfCBH cmFudFN0bXQKIAkJCXwgVmlld1N0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJOwog CiAKQEAgLTUyMTAsNiArNTIxMywzNCBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJ CX0KIAkJOwogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJ Q1JFQVRFIFZBUklBQkxFIHZhcm5hbWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworCitDcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZp ZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK KwkJCQkJbi0+dmFyaWFibGUgPSAkMzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJbi0+ Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhpc3Rz ID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtl Tm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJ CW4tPnR5cGVOYW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAq KSAkOTsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikg bjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhU RU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC02OTk4LDYgKzcwMjksNyBAQCBv YmplY3RfdHlwZV9hbnlfbmFtZToKIAkJCXwgVEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJCXsg JCQgPSBPQkpFQ1RfVFNESUNUSU9OQVJZOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExBVEUJ CQkJeyAkJCA9IE9CSkVDVF9UU1RFTVBMQVRFOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09ORklH VVJBVElPTgkJCXsgJCQgPSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklBQkxF CQkJCQkJCQl7ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogLyoKQEAgLTc4NzQsNiAr NzkwNiwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7CiAJCQkJCSQk ID0gbjsKIAkJCQl9CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lX2xpc3QKKwkJCQl7CisJ CQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJn ZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2Jq dHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQyOworCQkJCQkkJCA9IG47 CisJCQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJ CQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdl dCkpOwpAQCAtNzkxOSw2ICs3OTU5LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9i anMgPSAkNTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZBUklBQkxFUyBJTl9QIFND SEVNQSBuYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAq KSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFS R0VUX0FMTF9JTl9TQ0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJ CQkJCW4tPm9ianMgPSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJOwogCiAKQEAgLTgxMTYs NiArODE2NCw3IEBAIGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJfCBTRVFVRU5DRVMJCXsg JCQgPSBPQkpFQ1RfU0VRVUVOQ0U7IH0KIAkJCXwgVFlQRVNfUAkJeyAkJCA9IE9CSkVDVF9UWVBF OyB9CiAJCQl8IFNDSEVNQVMJCXsgJCQgPSBPQkpFQ1RfU0NIRU1BOyB9CisJCQl8IFZBUklBQkxF UwkJeyAkJCA9IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIApAQCAtOTkwNCw2ICs5OTUzLDI0 IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBS RU5BTUUgVE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFJFTkFNRSBUTyBu YW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJ CQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChO b2RlICopICQzOworCQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBm YWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJ Rl9QIEVYSVNUUyBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3Rt dCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNU X1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFt ZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQogCQk7CiAKIG9wdF9jb2x1bW46IENPTFVNTgpAQCAtMTAyNjUsNiArMTAzMzIsMjQg QEAgQWx0ZXJPYmplY3RTY2hlbWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1l IFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0g bWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5l d3NjaGVtYSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25hbWUg U0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBt YWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JK RUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3 c2NoZW1hID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2Rl ICopbjsKKwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDU0Niw2ICsx MDYzMSwxNCBAQCBBbHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRo X2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJ CSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIE9X TkVSIFRPIFJvbGVTcGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyT3duZXJTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsK KwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld293bmVyID0gJDY7CisJ CQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAKQEAgLTE3OTE3LDYgKzE4MDEwLDgg QEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJREFUT1IKIAkJ CXwgVkFMVUVfUAorCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSWUlORwog CQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwpAQCAtMTg1NzAsNiArMTg2NjUsOCBAQCBiYXJlX2xh YmVsX2tleXdvcmQ6CiAJCQl8IFZBTFVFX1AKIAkJCXwgVkFMVUVTCiAJCQl8IFZBUkNIQVIKKwkJ CXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUklBRElDCiAJCQl8IFZFUkJPU0UK IAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBkMmQ4MmM5 YzU5Ni4uOTgxMDI2ZGQ4YzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91 dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMTA1 LDYgKzEwNSw3IEBAIHR5cGVkZWYgc3RydWN0CiAJTGlzdAkgICAqaW5kZXhlczsJCS8qIENSRUFU RSBJTkRFWCBpdGVtcyAqLwogCUxpc3QJICAgKnRyaWdnZXJzOwkJLyogQ1JFQVRFIFRSSUdHRVIg aXRlbXMgKi8KIAlMaXN0CSAgICpncmFudHM7CQkJLyogR1JBTlQgaXRlbXMgKi8KKwlMaXN0CSAg ICp2YXJpYWJsZXM7CQkvKiBDUkVBVEUgVkFSSUFCTEUgaXRlbXMgKi8KIH0gQ3JlYXRlU2NoZW1h U3RtdENvbnRleHQ7CiAKIApAQCAtNDAzOSw2ICs0MDQwLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2No ZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUp CiAJY3h0LmluZGV4ZXMgPSBOSUw7CiAJY3h0LnRyaWdnZXJzID0gTklMOwogCWN4dC5ncmFudHMg PSBOSUw7CisJY3h0LnZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogUnVuIHRocm91Z2ggZWFj aCBzY2hlbWEgZWxlbWVudCBpbiB0aGUgc2NoZW1hIGVsZW1lbnQgbGlzdC4gU2VwYXJhdGUKQEAg LTQxMDcsNiArNDEwOSwxNSBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlz dCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAkJCQljeHQuZ3JhbnRzID0g bGFwcGVuZChjeHQuZ3JhbnRzLCBlbGVtZW50KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKmVs cCA9IChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBlbGVtZW50OworCisJCQkJCXNldFNjaGVtYU5h bWUoY3h0LnNjaGVtYW5hbWUsICZlbHAtPnZhcmlhYmxlLT5zY2hlbWFuYW1lKTsKKwkJCQkJY3h0 LnZhcmlhYmxlcyA9IGxhcHBlbmQoY3h0LnZhcmlhYmxlcywgZWxlbWVudCk7CisJCQkJfQorCQkJ CWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9k ZSB0eXBlOiAlZCIsCiAJCQkJCSAoaW50KSBub2RlVGFnKGVsZW1lbnQpKTsKQEAgLTQxMjAsNiAr NDEzMSw3IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFF bHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3Vs dCwgY3h0LmluZGV4ZXMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnRyaWdn ZXJzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5ncmFudHMpOworCXJlc3Vs dCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnZhcmlhYmxlcyk7CiAKIAlyZXR1cm4gcmVzdWx0 OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2Vu ZC90Y29wL3V0aWxpdHkuYwppbmRleCAyNWZlM2Q1ODAxNi4uOTlhNTE4NzdkMzQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfaW5o ZXJpdHMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy90b2FzdGluZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvYXN5bmMuaCIKQEAgLTE4Miw2ICsxODMsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21t YW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVSYW5nZVN0bXQ6 CiAJCWNhc2UgVF9DcmVhdGVSb2xlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNjaGVtYVN0bXQ6CisJ CWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNlcVN0bXQ6CiAJ CWNhc2UgVF9DcmVhdGVTdGF0c1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdG10OgpAQCAtMTM4OSw2 ICsxMzkxLDEwIEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ fQogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJYWRk cmVzcyA9IENyZWF0ZVZhcmlhYmxlKHBzdGF0ZSwgKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIHBh cnNldHJlZSk7CisJCQkJYnJlYWs7CisKIAkJCQkvKgogCQkJCSAqICoqKioqKioqKioqKiogb2Jq ZWN0IGNyZWF0aW9uIC8gZGVzdHJ1Y3Rpb24gKioqKioqKioqKioqKioKIAkJCQkgKi8KQEAgLTIz NDEsNiArMjM0Nyw5IEBAIEFsdGVyT2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0 eXBlKQogCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJdGFnID0gQ01EVEFHX0FMVEVS X1NUQVRJU1RJQ1M7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl0YWcg PSBDTURUQUdfQUxURVJfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXRhZyA9 IENNRFRBR19VTktOT1dOOwogCQkJYnJlYWs7CkBAIC0yNjQ5LDYgKzI2NTgsOSBAQCBDcmVhdGVD b21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhU OgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQlj YXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfVkFSSUFCTEU7CisJ CQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJ fQpAQCAtMzIyNSw2ICszMjM3LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVl KQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJ dGFnID0gQ01EVEFHX0NSRUFURV9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJ CQllbG9nKFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQp IG5vZGVUYWcocGFyc2V0cmVlKSk7CkBAIC0zNzU5LDYgKzM3NzUsMTAgQEAgR2V0Q29tbWFuZExv Z0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVh dGVTZXNzaW9uVmFyU3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwK IAkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9hY2wuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwppbmRleCA2YTc2 NTUwYTVlMi4uMzc3ZGUwYjdjNmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9h Y2wuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKQEAgLTMxLDYgKzMxLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxl c3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3Byb2NsYW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5o IgpAQCAtMTI5LDYgKzEzMCw4IEBAIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfdHlwZV9wcml2X3N0 cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3BhcmFt ZXRlcl9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVy dF9sYXJnZW9iamVjdF9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3RleHQpOwogc3RhdGljIEFjbE1v ZGUgY29udmVydF9yb2xlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRp YyBPaWQJY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSk7CitzdGF0 aWMgQWNsTW9kZSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJp dl90eXBlX3RleHQpOwogc3RhdGljIEFjbFJlc3VsdCBwZ19yb2xlX2FjbGNoZWNrKE9pZCByb2xl X29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKTsKIAogc3RhdGljIHZvaWQgUm9sZU1lbWJl cnNoaXBDYWNoZUNhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFs dWUpOwpAQCAtODUxLDYgKzg1NCwxMCBAQCBhY2xkZWZhdWx0KE9iamVjdFR5cGUgb2JqdHlwZSwg T2lkIG93bmVySWQpCiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKIAkJCW93bmVy X2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNh c2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJ CQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwg KGludCkgb2JqdHlwZSk7CiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsJLyoga2Vl cCBjb21waWxlciBxdWlldCAqLwpAQCAtOTQ4LDYgKzk1NSw5IEBAIGFjbGRlZmF1bHRfc3FsKFBH X0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgJ1QnOgogCQkJb2JqdHlwZSA9IE9CSkVDVF9UWVBFOwog CQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJb2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3Qg dHlwZSBhYmJyZXZpYXRpb246ICVjIiwgb2JqdHlwZWMpOwogCX0KQEAgLTUwMTYsNiArNTAyNiwy MTcgQEAgcGdfcm9sZV9hY2xjaGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUg bW9kZSkKIAlyZXR1cm4gQUNMQ0hFQ0tfTk9fUFJJVjsKIH0KIAorLyoKKyAqIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSB2YXJpYW50cworICoJCVRoZXNlIGFyZSBhbGwgbmFtZWQgImhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KKyAqCQlUaGV5 IHRha2UgdmFyaW91cyBjb21iaW5hdGlvbnMgb2YgdmFyaWFibGUgbmFtZSwgdmFyaWFibGUgT0lE LAorICoJCXVzZXIgbmFtZSwgdXNlciBPSUQsIG9yIGltcGxpY2l0IHVzZXIgPSBjdXJyZW50X3Vz ZXIuCisgKgorICoJCVRoZSByZXN1bHQgaXMgYSBib29sZWFuIHZhbHVlOiB0cnVlIGlmIHVzZXIg aGFzIHRoZSBpbmRpY2F0ZWQKKyAqCQlwcml2aWxlZ2UsIGZhbHNlIGlmIG5vdCwgb3IgTlVMTCBp ZiBzZXNzaW9uIHZhcmlhYmxlIGRvZXNuJ3QKKyAqCQlleGlzdHMuCisgKi8KKworLyoKKyAqIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUKKyAqCQlDaGVjayB1c2VyIHBy aXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJbmFtZSB1c2VybmFtZSwg dGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0 dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlOYW1lCQlyb2xlbmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCXRleHQJICAg KnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4 dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlPaWQJCQl2YXJpZDsK KwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2lu ZyA9IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCpy b2xlbmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmco cHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVs YXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlz c2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JF VFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQl0ZXh0IHNlc3Npb24gdmFyaWFibGUgYW5k IHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVt CitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZShQR19GVU5DVElPTl9BUkdTKQor eworCXRleHQJICAgKnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKKwl0ZXh0CSAgICpw cml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlP aWQJCQl2YXJpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9v bAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9 IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJ dmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCVBHX1JFVFVS Tl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZW5hbWUsIHNlc3Npb24gdmFy aWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXVz ZXJuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lE KDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJ T2lkCQkJcm9sZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwli b29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVi bGljKE5hbWVTdHIoKnVzZXJuYW1lKSk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1v ZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7 Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQKKyAqCQlDaGVj ayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJc2Vzc2lv biB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMg YXNzdW1lZAorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkKFBH X0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRl eHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9s ZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19t aXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVy dF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19t aXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0 ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZV9pZF9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJp YWJsZSBnaXZlbgorICoJCXJvbGVpZCwgdGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0 ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9pZF9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJH X09JRCgwKTsKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4 dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQl2YXJp ZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlz c2luZyA9IGZhbHNlOworCisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0 cmluZyhwcml2X3R5cGVfdGV4dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJuYW1lKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZp c19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJ UEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmls ZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xlaWQsIHNlc3Npb24gdmFy aWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xl aWQgPSBQR19HRVRBUkdfT0lEKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsK Kwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCUFjbE1v ZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFs c2U7CisKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZf dHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19t aXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIEdpdmVu IGEgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lIGV4cHJlc3NlZCBhcyBhIHN0cmluZywgbG9vayBpdCB1 cCBhbmQgcmV0dXJuCisgKiBPaWQKKyAqLworc3RhdGljIE9pZAorY29udmVydF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSkKK3sKKwlyZXR1cm4gTG9va3VwVmFyaWFibGVGcm9t TmFtZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodmFybmFtZSksIHRydWUpOworfQorCisv KgorICogY29udmVydF92YXJpYWJsZV9wcml2X3N0cmluZworICoJCUNvbnZlcnQgdGV4dCBzdHJp bmcgdG8gQWNsTW9kZSB2YWx1ZS4KKyAqLworc3RhdGljIEFjbE1vZGUKK2NvbnZlcnRfc2Vzc2lv bl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCkKK3sKKwlzdGF0aWMg Y29uc3QgcHJpdl9tYXAgc2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcFtdID0geworCQl7IlNFTEVD VCIsIEFDTF9TRUxFQ1R9LAorCQl7IlNFTEVDVCBXSVRIIEdSQU5UIE9QVElPTiIsIEFDTF9HUkFO VF9PUFRJT05fRk9SKEFDTF9TRUxFQ1QpfSwKKwkJeyJVUERBVEUiLCBBQ0xfVVBEQVRFfSwKKwkJ eyJVUERBVEUgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfVVBE QVRFKX0sCisJCXtOVUxMLCAwfQorCX07CisKKwlyZXR1cm4gY29udmVydF9hbnlfcHJpdl9zdHJp bmcocHJpdl90eXBlX3RleHQsIHNlc3Npb25fdmFyaWFibGVfcHJpdl9tYXApOworfQogCiAvKgog ICogaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gKGNhbGxlZCBieSBJbml0UG9zdGdyZXMpCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IDhjZGI1NTgyNTM2Li40ZjVjNDcyZTFhNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJh bnNmb3JtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVz L21ha2VmdW5jcy5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCkBAIC0zNzE0LDMgKzM3MTUs MTE1IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykK IAogCXJldHVybiBzdWJuYW1lOwogfQorCisvKgkJCQktLS0tLS0tLS0tIFBHX1ZBUklBQkxFIENB Q0hFIC0tLS0tLS0tLS0JCQkJICovCisKKy8qCisgKiBnZXRfdmFybmFtZV92YXJpZAorICoJCUdp dmVuIG5hbWUgYW5kIG5hbWVzcGFjZSBvZiB2YXJpYWJsZSwgbG9vayB1cCB0aGUgT0lELgorICov CitPaWQKK2dldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1l c3BhY2UpCit7CisJcmV0dXJuIEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1f cGdfdmFyaWFibGVfb2lkLAorCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJ CQkJICAgT2JqZWN0SWRHZXREYXR1bSh2YXJuYW1lc3BhY2UpKTsKK30KKworLyoKKyAqIGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlSZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUg bmFtZSBvZiBhIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK2NoYXIgKgorZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3Bn X3ZhcmlhYmxlIHZhcmZvcm07CisJY2hhcgkgICAqdmFybmFtZTsKKworCXR1cCA9IFNlYXJjaFN5 c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3Bn X3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIo dmFyZm9ybS0+dmFybmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4g dmFybmFtZTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZQorICoJ CVJldHVybnMgdGhlIHBnX25hbWVzcGFjZSBPSUQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gc2Vz c2lvbiB2YXJpYWJsZS4KKyAqLworT2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uo T2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3Jt OworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJM RU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAl dSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1 cCk7CisKKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisKKwlSZWxlYXNl U3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJuYW1lc3BhY2U7Cit9CisKKy8qCisgKiBSZXR1 cm5zIHRoZSB0eXBlIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dl dF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJ Rm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcnR5cGU7CisKKwl0dXAgPSBTZWFy Y2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlm ICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZh aWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9y bV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJ0eXBlID0gdmFyZm9ybS0+dmFy dHlwZTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcnR5cGU7Cit9CisK Ky8qCisgKiBSZXR1cm5zIHRoZSB0eXBlLCB0eXBtb2QgYW5kIGNvbGxpZCBvZiB0aGUgZ2l2ZW4g c2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwordm9pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90 eXBtb2RfY29sbGlkKE9pZCB2YXJpZCwgT2lkICp0eXBpZCwgaW50MzIgKnR5cG1vZCwKKwkJCQkJ CQkJCQlPaWQgKmNvbGxpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUg dmFyZm9ybTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRH ZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFy aWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKwor CSp0eXBpZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisJKnR5cG1vZCA9IHZhcmZvcm0tPnZhcnR5cG1v ZDsKKwkqY29sbGlkID0gdmFyZm9ybS0+dmFyY29sbGF0aW9uOworCisJUmVsZWFzZVN5c0NhY2hl KHR1cCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmlu L3BnX2R1bXAvY29tbW9uLmMKaW5kZXggNTZiNmMzNjhhY2YuLmJhNmIxOWRjOWFmIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1v bi5jCkBAIC0yNDYsNiArMjQ2LDkgQEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQg Km51bVRhYmxlc1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyBzdWJzY3JpcHRpb24gbWVtYmVy c2hpcCBvZiB0YWJsZXMiKTsKIAlnZXRTdWJzY3JpcHRpb25UYWJsZXMoZm91dCk7CiAKKwlwZ19s b2dfaW5mbygicmVhZGluZyB2YXJpYWJsZXMiKTsKKwlnZXRWYXJpYWJsZXMoZm91dCk7CisKIAlm cmVlKGluaGluZm8pOwkJCQkvKiBub3QgbmVlZGVkIGFueSBsb25nZXIgKi8KIAogCSpudW1UYWJs ZXNQdHIgPSBudW1UYWJsZXM7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxz LmMgYi9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKaW5kZXggNWFlNzdmNzYzNjcuLjUxNjFl ZTc4MGVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCkBAIC01MTEsNiArNTExLDEyIEBAIGRvIHsgXAogCQlD T05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CiAJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUi KTsKIAl9CisJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKKwkJCSBz dHJjbXAodHlwZSwgIlZBUklBQkxFUyIpID09IDApCisJeworCQlDT05WRVJUX1BSSVYoJ3InLCAi U0VMRUNUIik7CisJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKKwl9CiAJZWxzZQogCQlh Ym9ydCgpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggZjBmMTliYjBiMjkuLjQ0ZWVkMDNhMmZmIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cC5oCkBAIC0xMzIsMTIgKzEzMiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVz dG9yZU9wdGlvbnMKIAlpbnQJCQlzZWxGdW5jdGlvbjsKIAlpbnQJCQlzZWxUcmlnZ2VyOwogCWlu dAkJCXNlbFRhYmxlOworCWludAkJCXNlbFZhcmlhYmxlOwogCVNpbXBsZVN0cmluZ0xpc3QgaW5k ZXhOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IGZ1bmN0aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5n TGlzdCBzY2hlbWFOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsK IAlTaW1wbGVTdHJpbmdMaXN0IHRyaWdnZXJOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxl TmFtZXM7CisJU2ltcGxlU3RyaW5nTGlzdCB2YXJpYWJsZU5hbWVzOwogCiAJaW50CQkJdXNlREI7 CiAJQ29ublBhcmFtcwljcGFyYW1zOwkJLyogcGFyYW1ldGVycyB0byB1c2UgaWYgdXNlREIgKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCA3MDdhM2ZjODQ0Yy4uYWZhYmU1 ZmU0OWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTMxMDIsNiArMzEw MiwxNCBAQCBfdG9jRW50cnlSZXF1aXJlZChUb2NFbnRyeSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0 aW9uLCBBcmNoaXZlSGFuZGxlICpBSCkKIAkJCQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIo JnJvcHQtPnRyaWdnZXJOYW1lcywgdGUtPnRhZykpCiAJCQkJCXJldHVybiAwOwogCQkJfQorCQkJ ZWxzZSBpZiAoc3RyY21wKHRlLT5kZXNjLCAiVkFSSUFCTEUiKSA9PSAwKQorCQkJeworCQkJCWlm ICghcm9wdC0+c2VsVmFyaWFibGUpCisJCQkJCXJldHVybiAwOworCQkJCWlmIChyb3B0LT52YXJp YWJsZU5hbWVzLmhlYWQgIT0gTlVMTCAmJgorCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJl cigmcm9wdC0+dmFyaWFibGVOYW1lcywgdGUtPnRhZykpCisJCQkJCXJldHVybiAwOworCQkJfQog CQkJZWxzZQogCQkJCXJldHVybiAwOwogCQl9CkBAIC0zNjUxLDYgKzM2NTksNyBAQCBfZ2V0T2Jq ZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0 cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggRElDVElPTkFSWSIpID09IDAgfHwKIAkJc3RyY21wKHR5 cGUsICJURVhUIFNFQVJDSCBDT05GSUdVUkFUSU9OIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwg IlRZUEUiKSA9PSAwIHx8CisJCXN0cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0 cmNtcCh0eXBlLCAiVklFVyIpID09IDAgfHwKIAkvKiBub24tc2NoZW1hLXNwZWNpZmllZCBvYmpl Y3RzICovCiAJCXN0cmNtcCh0eXBlLCAiREFUQUJBU0UiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRl eCA4ZjczYTVkZjk1Ni4uOWUzMmM0Nzg0MTIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMzYzLDYgKzM2Myw3 IEBAIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJs aWNhdGlvbkluZm8gKnB1YmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uVGFibGUo QXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0 aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlv bkluZm8gKnN1YmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvblRhYmxlKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFN1YlJlbEluZm8gKnN1YnJpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBW YXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pOwogc3Rh dGljIHZvaWQgZHVtcERhdGFiYXNlKEFyY2hpdmUgKmZvdXQpOwogc3RhdGljIHZvaWQgZHVtcERh dGFiYXNlQ29uZmlnKEFyY2hpdmUgKkFILCBQUUV4cEJ1ZmZlciBvdXRidWYsCiAJCQkJCQkJICAg Y29uc3QgY2hhciAqZGJuYW1lLCBPaWQgZGJvaWQpOwpAQCAtNTQxOSw2ICs1NDIwLDE5MCBAQCBn ZXRfbmV4dF9wb3NzaWJsZV9mcmVlX3BnX3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVm ZmVyIHVwZ3JhZGVfcXVlcnkpCiAJcmV0dXJuIG5leHRfcG9zc2libGVfZnJlZV9vaWQ7CiB9CiAK Ky8qCisgKiBnZXRWYXJpYWJsZXMKKyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IHZhcmlhYmxl cworICovCit2b2lkCitnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZl ciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJVmFyaWFibGVJbmZvICp2YXJpbmZvOworCWlu dAkJCWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV92YXJuYW1lOworCWludAkJ CWlfdmFybmFtZXNwYWNlOworCWludAkJCWlfdmFydHlwZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7 CisJaW50CQkJaV92YXJvd25lcjsKKwlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKKwlpbnQJCQlpX3Zh cmFjbDsKKwlpbnQJCQlpX2FjbGRlZmF1bHQ7CisJaW50CQkJaSwKKwkJCQludHVwczsKKworCWlm IChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTgwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNy ZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCS8qIGdl dCB0aGUgdmFyaWFibGVzIGluIGN1cnJlbnQgZGF0YWJhc2UgKi8KKwlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwKKwkJCQkJICAiU0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4i CisJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVzcGFjZSwgdi52YXJ0eXBlLFxuIgorCQkJCQkgICIg ICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyB2 YXJ0eXBuYW1lLFxuIgorCQkJCQkgICIgICAgICAgQ0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+ IHQudHlwY29sbGF0aW9uICIKKwkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlv blxuIgorCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIKKwkJCQkJICAiICAgICAgIEVORCBB UyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxc biIKKwkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZh dWx0XG4iCisJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2XG4iCisJCQkJCSAg IkpPSU4gcGdfY2F0YWxvZy5wZ190eXBlIHQgIgorCQkJCQkgICJPTiAodi52YXJ0eXBlID0gdC5v aWQpIik7CisKKwlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVT X1RVUExFU19PSyk7CisKKwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9 IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIpOworCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9p ZCIpOworCWlfdmFybmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lIik7CisJaV92YXJuYW1l c3BhY2UgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZXNwYWNlIik7CisJaV92YXJ0eXBlID0gUFFm bnVtYmVyKHJlcywgInZhcnR5cGUiKTsKKwlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAi dmFydHlwbmFtZSIpOworCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxh dGlvbiIpOworCisJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOworCWlf dmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51 bWJlcihyZXMsICJhY2xkZWZhdWx0Iik7CisKKwl2YXJpbmZvID0gcGdfbWFsbG9jKG50dXBzICog c2l6ZW9mKFZhcmlhYmxlSW5mbykpOworCisJZm9yIChpID0gMDsgaSA8IG50dXBzOyBpKyspCisJ eworCQlUeXBlSW5mbyAgICp2dHlwZTsKKworCQl2YXJpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERP X1ZBUklBQkxFOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lk KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CisJCXZhcmluZm9baV0uZG9iai5jYXRJ ZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJ ZCgmdmFyaW5mb1tpXS5kb2JqKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZSkpOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZXNw YWNlID0KKwkJCWZpbmROYW1lc3BhY2UoYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5h bWVzcGFjZSkpKTsKKworCQl2YXJpbmZvW2ldLnZhcnR5cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFydHlwZSkpOworCQl2YXJpbmZvW2ldLnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwbmFtZSkpOworCQl2YXJpbmZvW2ldLnZhcmNvbGxh dGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKworCQl2 YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFj bCkpOworCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CisJCXZhcmluZm9baV0uZGFjbC5wcml2dHlwZSA9IDA7 CisJCXZhcmluZm9baV0uZGFjbC5pbml0cHJpdnMgPSBOVUxMOworCQl2YXJpbmZvW2ldLnJvbG5h bWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV92YXJvd25lcikpOworCisJCS8q IGRvIG5vdCB0cnkgdG8gZHVtcCBBQ0wgaWYgbm8gQUNMIGV4aXN0cyAqLworCQlpZiAoIVBRZ2V0 aXNudWxsKHJlcywgaSwgaV92YXJhY2wpKQorCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMg fD0gRFVNUF9DT01QT05FTlRfQUNMOworCisJCWlmIChzdHJsZW4odmFyaW5mb1tpXS5yb2xuYW1l KSA9PSAwKQorCQkJcGdfbG9nX3dhcm5pbmcoIm93bmVyIG9mIHZhcmlhYmxlIFwiJXNcIiBhcHBl YXJzIHRvIGJlIGludmFsaWQiLAorCQkJCQkJICAgdmFyaW5mb1tpXS5kb2JqLm5hbWUpOworCisJ CS8qIGRlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLworCQlzZWxlY3REdW1wYWJs ZU9iamVjdCgmKHZhcmluZm9baV0uZG9iaiksIGZvdXQpOworCisJCXZ0eXBlID0gZmluZFR5cGVC eU9pZCh2YXJpbmZvW2ldLnZhcnR5cGUpOworCQlhZGRPYmplY3REZXBlbmRlbmN5KCZ2YXJpbmZv W2ldLmRvYmosIHZ0eXBlLT5kb2JqLmR1bXBJZCk7CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRl c3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9CisKKy8qCisgKiBkdW1wVmFyaWFibGUKKyAqCSAg ZHVtcCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZQorICovCitz dGF0aWMgdm9pZAorZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5m byAqdmFyaW5mbykKK3sKKwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKKwlQUUV4 cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnF1YWx2YXJuYW1l OworCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCisJLyog c2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCisJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwg IWRvcHQtPmR1bXBTY2hlbWEpCisJCXJldHVybjsKKworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZl cigpOworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXF1YWx2YXJuYW1lID0gcGdf c3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKKwl2YXJ0eXBuYW1lID0gdmFy aW5mby0+dmFydHlwbmFtZTsKKwl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCisJCQkJ CSAgcXVhbHZhcm5hbWUpOworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFS SUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKworCWlm IChPaWRJc1ZhbGlkKHZhcmNvbGxhdGlvbikpCisJeworCQlDb2xsSW5mbyAgICpjb2xsOworCisJ CWNvbGwgPSBmaW5kQ29sbGF0aW9uQnlPaWQodmFyY29sbGF0aW9uKTsKKwkJaWYgKGNvbGwpCisJ CQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBDT0xMQVRFICVzIiwKKwkJCQkJCQkgIGZtdFF1 YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwg IjtcbiIpOworCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklO SVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCB2YXJpbmZvLT5kb2JqLmNhdElkLCB2YXJpbmZv LT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gdmFyaW5mby0+ZG9iai5u YW1lLAorCQkJCQkJCQkgIC5uYW1lc3BhY2UgPSB2YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9i ai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAg LmRlc2NyaXB0aW9uID0gIlZBUklBQkxFIiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05f UFJFX0RBVEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJ ICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7CisKKwkvKiBkdW1wIGNvbW1lbnQgaWYgYW55ICov CisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1 bXBDb21tZW50KGZvdXQsICJWQVJJQUJMRSIsIHF1YWx2YXJuYW1lLAorCQkJCQlOVUxMLCB2YXJp bmZvLT5yb2xuYW1lLAorCQkJCQl2YXJpbmZvLT5kb2JqLmNhdElkLCAwLCB2YXJpbmZvLT5kb2Jq LmR1bXBJZCk7CisKKwkvKiBkdW1wIEFDTCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfQUNMKQorCXsKKwkJY2hhcgkgICAqcXZhcm5hbWUgPSBwZ19z dHJkdXAoZm10SWQodmFyaW5mby0+ZG9iai5uYW1lKSk7CisKKwkJZHVtcEFDTChmb3V0LCB2YXJp bmZvLT5kb2JqLmR1bXBJZCwgSW52YWxpZER1bXBJZCwgIlZBUklBQkxFIiwKKwkJCQlxdmFybmFt ZSwgTlVMTCwKKwkJCQl2YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBOVUxMLCB2 YXJpbmZvLT5yb2xuYW1lLAorCQkJCSZ2YXJpbmZvLT5kYWNsKTsKKworCQlmcmVlKHF2YXJuYW1l KTsKKwl9CisKKwlkZXN0cm95UFFFeHBCdWZmZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVy KHF1ZXJ5KTsKKworCWZyZWUocXVhbHZhcm5hbWUpOworfQorCiBzdGF0aWMgdm9pZAogYmluYXJ5 X3VwZ3JhZGVfc2V0X3R5cGVfb2lkc19ieV90eXBlX29pZChBcmNoaXZlICpmb3V0LAogCQkJCQkJ CQkJCSBQUUV4cEJ1ZmZlciB1cGdyYWRlX2J1ZmZlciwKQEAgLTEwMTQ1LDcgKzEwMzMwLDggQEAg Z2V0QWRkaXRpb25hbEFDTHMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJZG9iai0+b2JqVHlwZSA9PSBE T19UQUJMRSB8fAogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1BST0NMQU5HIHx8CiAJCQkJCWRv YmotPm9ialR5cGUgPT0gRE9fRkRXIHx8Ci0JCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlH Tl9TRVJWRVIpCisJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlHTl9TRVJWRVIgfHwKKwkJ CQkJZG9iai0+b2JqVHlwZSA9PSBET19WQVJJQUJMRSkKIAkJCQl7CiAJCQkJCUR1bXBhYmxlT2Jq ZWN0V2l0aEFjbCAqZGFvYmogPSAoRHVtcGFibGVPYmplY3RXaXRoQWNsICopIGRvYmo7CiAKQEAg LTEwNzQ0LDYgKzEwOTMwLDkgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1 bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNlIERPX1NVQlNDUklQVElPTl9SRUw6CiAJCQlkdW1w U3Vic2NyaXB0aW9uVGFibGUoZm91dCwgKGNvbnN0IFN1YlJlbEluZm8gKikgZG9iaik7CiAJCQli cmVhazsKKwkJY2FzZSBET19WQVJJQUJMRToKKwkJCWR1bXBWYXJpYWJsZShmb3V0LCAoVmFyaWFi bGVJbmZvICopIGRvYmopOworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFJFX0RBVEFfQk9VTkRBUlk6 CiAJCWNhc2UgRE9fUE9TVF9EQVRBX0JPVU5EQVJZOgogCQkJLyogbmV2ZXIgZHVtcGVkLCBub3Ro aW5nIHRvIGRvICovCkBAIC0xNTE5NSw2ICsxNTM4NCw5IEBAIGR1bXBEZWZhdWx0QUNMKEFyY2hp dmUgKmZvdXQsIGNvbnN0IERlZmF1bHRBQ0xJbmZvICpkYWNsaW5mbykKIAkJY2FzZSBERUZBQ0xP QkpfTkFNRVNQQUNFOgogCQkJdHlwZSA9ICJTQ0hFTUFTIjsKIAkJCWJyZWFrOworCQljYXNlIERF RkFDTE9CSl9WQVJJQUJMRToKKwkJCXR5cGUgPSAiVkFSSUFCTEVTIjsKKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQlwZ19mYXRhbCgidW5yZWNv Z25pemVkIG9iamVjdCB0eXBlIGluIGRlZmF1bHQgcHJpdmlsZWdlczogJWQiLApAQCAtMTg5MTQs NiArMTkxMDYsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRv YmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fQ09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFC TEU6CiAJCQljYXNlIERPX1RBQkxFX0FUVEFDSDoKKwkJCWNhc2UgRE9fVkFSSUFCTEU6CiAJCQlj YXNlIERPX0FUVFJERUY6CiAJCQljYXNlIERPX1BST0NMQU5HOgogCQkJY2FzZSBET19DQVNUOgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKaW5kZXggZjYyYjU2NGVkMWIuLjhhNjJiNWI0MTI4IDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAg LTUyLDYgKzUyLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fVEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNI LAogCURPX0FUVFJERUYsCisJRE9fVkFSSUFCTEUsCiAJRE9fSU5ERVgsCiAJRE9fSU5ERVhfQVRU QUNILAogCURPX1NUQVRTRVhULApAQCAtNzA3LDYgKzcwOCwyMyBAQCB0eXBlZGVmIHN0cnVjdCBf U3ViUmVsSW5mbwogCWNoYXIJICAgKnNyc3VibHNuOwogfSBTdWJSZWxJbmZvOwogCisvKgorICog VGhlIFZhcmlhYmxlSW5mbyBzdHJ1Y3QgaXMgdXNlZCB0byByZXByZXNlbnQgc2Vzc2lvbiB2YXJp YWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbworeworCUR1bXBhYmxlT2Jq ZWN0IGRvYmo7CisJRHVtcGFibGVBY2wgZGFjbDsKKwlPaWQJCQl2YXJ0eXBlOworCWNoYXIJICAg KnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFyYWNsOworCWNoYXIJICAgKnJ2YXJhY2w7CisJY2hh cgkgICAqaW5pdHZhcmFjbDsKKwljaGFyCSAgICppbml0cnZhcmFjbDsKKwlPaWQJCQl2YXJjb2xs YXRpb247CisJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5 IHN0cmluZyAqLworfSBWYXJpYWJsZUluZm87CisKIC8qCiAgKgljb21tb24gdXRpbGl0eSBmdW5j dGlvbnMKICAqLwpAQCAtNzkwLDUgKzgwOCw2IEBAIGV4dGVybiB2b2lkIGdldFB1YmxpY2F0aW9u VGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sCiAJCQkJCQkJCSBpbnQg bnVtVGFibGVzKTsKIGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCk7 CiBleHRlcm4gdm9pZCBnZXRTdWJzY3JpcHRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCk7CitleHRl cm4gdm9pZCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQ R19EVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCBkYzlhMjg5MjRiZC4uODQyOTcz ZjExMjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTc3LDYgKzc3LDcgQEAgZW51bSBkYk9i amVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19EVU1NWV9UWVBFLAogCVBSSU9fQVRUUkRFRiwKIAlQ UklPX0xBUkdFX09CSkVDVCwKKwlQUklPX1ZBUklBQkxFLAogCVBSSU9fUFJFX0RBVEFfQk9VTkRB UlksCQkvKiBib3VuZGFyeSEgKi8KIAlQUklPX1RBQkxFX0RBVEEsCiAJUFJJT19TRVFVRU5DRV9T RVQsCkBAIC0xMTgsNiArMTE5LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlv cml0eVtdID0KIAlbRE9fVEFCTEVdID0gUFJJT19UQUJMRSwKIAlbRE9fVEFCTEVfQVRUQUNIXSA9 IFBSSU9fVEFCTEVfQVRUQUNILAogCVtET19BVFRSREVGXSA9IFBSSU9fQVRUUkRFRiwKKwlbRE9f VkFSSUFCTEVdID0gUFJJT19WQVJJQUJMRSwKIAlbRE9fSU5ERVhdID0gUFJJT19JTkRFWCwKIAlb RE9fSU5ERVhfQVRUQUNIXSA9IFBSSU9fSU5ERVhfQVRUQUNILAogCVtET19TVEFUU0VYVF0gPSBQ UklPX1NUQVRTRVhULApAQCAtMTUwMCw2ICsxNTAyLDEwIEBAIGRlc2NyaWJlRHVtcGFibGVPYmpl Y3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQ T1NULURBVEEgQk9VTkRBUlkgIChJRCAlZCkiLAogCQkJCQkgb2JqLT5kdW1wSWQpOwogCQkJcmV0 dXJuOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJ CQkgIlZBUklBQkxFICVzICAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPm5hbWUsIG9iai0+ ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJfQogCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwog CXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggYmY2 NWQ0NGI5NDIuLjY0MjNlN2I5ZDI3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNzg5 LDYgKzc4OSwxNiBAQCBteSAldGVzdHMgPSAoCiAJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEs IH0sCiAJICB9LAogCisJJ0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNz X2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDJworCSAg PT4geworCQljcmVhdGVfb3JkZXIgPT4gNTYsCisJCWNyZWF0ZV9zcWwgICA9PiAnQUxURVIgREVG QVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUM7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxU RVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUM7XEUveG0sCisJCWxpa2UgPT4geyAlZnVs bF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBub19wcml2 cyA9PiAxLCB9LAorCSAgfSwKKwogCSdBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUn ID0+IHsKIAkJcmVnZXhwID0+IHFyL14KIAkJCVxRQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVz dF9yb2xlIFdJVEggXEUKQEAgLTE2NzQsNiArMTY4NCwyMyBAQCBteSAldGVzdHMgPSAoCiAJCX0s CiAJfSwKIAorCSdDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsK KwkJY3JlYXRlX29yZGVyID0+IDcxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gVkFS SUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gdmFyaWFi bGVcJzsnLAorCQlyZWdleHAgPT4KKwkJICBxci9eXFFDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBf dGVzdC52YXJpYWJsZTEgSVMgJ2NvbW1lbnQgb24gdmFyaWFibGUnO1xFL20sCisJCWxpa2UgPT4g eworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9u X3ByZV9kYXRhICAgICA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1w X3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJ fSwKKwl9LAorCiAJJ0NPUFkgdGVzdF90YWJsZScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNCwK IAkJY3JlYXRlX3NxbCA9PiAnSU5TRVJUIElOVE8gZHVtcF90ZXN0LnRlc3RfdGFibGUgKGNvbDEp ICcKQEAgLTM5NDIsNiArMzk2OSwyNCBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdD UkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwK KwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVy ID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFy aWFibGUxIEFTIGludGVnZXI7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJ CQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJl X2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3Nj aGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwK KwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAog CQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00NDA0 LDYgKzQ0NDksMjUgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRl X29yZGVyID0+IDczLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJ cmVnZXhwID0+IHFyL14KKwkJCVxRR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+ IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlv bl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rl c3Rfc2NoZW1hID0+IDEsCisJCQlub19wcml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9u bHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRF UklBTElaRUQgVklFVyBtYXR2aWV3JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1B VEVSSUFMSVpFRCBWSUVXIGR1bXBfdGVzdC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmlu ZGV4IDVkZDRjMmQyNjg3Li4zZWUxOTA4OTU5NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC0xMDc3LDYgKzEwNzcsOSBA QCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2Jy YW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOwor CQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJs ZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8q IEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlz dEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBkNTU0M2ZkNjJiMC4uNTU0 NmJmOTFlMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBsaXN0RGVmYXVsdEFDTHMo Y29uc3QgY2hhciAqcGF0dGVybikKIAlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkgICJT RUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoZC5kZWZhY2xyb2xlKSBBUyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgbi5uc3BuYW1lIEFTIFwiJXNcIixcbiIKLQkJCQkJICAiICBDQVNFIGQu ZGVmYWNsb2JqdHlwZSBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hF TiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycg RU5EIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIGQuZGVmYWNsb2JqdHlwZSBXSEVOICcl YycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVO ICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBF TkQgQVMgXCIlc1wiLFxuIgogCQkJCQkgICIgICIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25l ciIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCkBAIC0xMjIwLDYgKzEyMjAsOCBA QCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICBnZXR0ZXh0X25v b3AoInR5cGUiKSwKIAkJCQkJICBERUZBQ0xPQkpfTkFNRVNQQUNFLAogCQkJCQkgIGdldHRleHRf bm9vcCgic2NoZW1hIiksCisJCQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkgIGdldHRl eHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIp KTsKIAogCXByaW50QUNMQ29sdW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTIzNyw2ICs1 MjM5LDEwMiBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogXGRW CisgKgorICogbGlzdFZhcmlhYmxlcygpCisgKi8KK2Jvb2wKK2xpc3RWYXJpYWJsZXMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJ UEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJc3Rh dGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE4 MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhlIHNl cnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcy4iLAor CQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJ CQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisK Kwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJ CQkgICJTRUxFQ1Qgbi5uc3BuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcm5hbWUg YXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBl LCB2LnZhcnR5cG1vZCkgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFt ZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxu IgorCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2 LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wi LFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFz IFwiJXNcIlxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAorCQkJCQkgIGdldHRl eHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAorCQkJCQkgIGdl dHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsK KworCWlmICh2ZXJib3NlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAg Iik7CisJCXByaW50QUNMQ29sdW1uKCZidWYsICJ2LnZhcmFjbCIpOworCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbih2Lm9p ZCwgJ3BnX3ZhcmlhYmxlJykgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNj cmlwdGlvbiIpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJc bkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IgorCQkJCQkJICJcbiAgICAgTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZhcm5hbWVzcGFjZSIpOwor CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1ZVxuIik7CisJaWYgKCFw YXR0ZXJuKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiICAgICAgQU5EIG4ubnNwbmFt ZSA8PiAncGdfY2F0YWxvZydcbiIKKwkJCQkJCQkgIiAgICAgIEFORCBuLm5zcG5hbWUgPD4gJ2lu Zm9ybWF0aW9uX3NjaGVtYSdcbiIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZi dWYsIHBhdHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgInYudmFybmFt ZSIsIE5VTEwsCisJCQkJCQkJCSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5v aWQpIiwKKwkJCQkJCQkJTlVMTCwgMykpCisJCXJldHVybiBmYWxzZTsKKworCWFwcGVuZFBRRXhw QnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLDI7Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYu ZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFs c2U7CisKKwkvKgorCSAqIE1vc3QgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgY29udGVudCB0 byBwcmludCBhbiBlbXB0eSB0YWJsZSB3aGVuCisJICogdGhlcmUgYXJlIG5vIG1hdGNoaW5nIG9i amVjdHMuICBXZSBpbnRlbnRpb25hbGx5IGRldmlhdGUgZnJvbSB0aGF0CisJICogaGVyZSwgYnV0 IG9ubHkgaW4gIXF1aWV0IG1vZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCisJICovCisJaWYg KFBRbnR1cGxlcyhyZXMpID09IDAgJiYgIXBzZXQucXVpZXQpCisJeworCQlpZiAocGF0dGVybikK KwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlIG5hbWVk IFwiJXNcIi4iLAorCQkJCQkJIHBhdHRlcm4pOworCQllbHNlCisJCQlwZ19sb2dfZXJyb3IoIkRp ZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJsZXMuIik7CisJfQorCWVsc2UKKwl7CisJCW15 b3B0Lm51bGxQcmludCA9IE5VTEw7CisJCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB2YXJpYWJs ZXMiKTsKKwkJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJCW15b3B0LnRyYW5zbGF0 ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJCW15b3B0Lm5fdHJhbnNsYXRlX2NvbHVt bnMgPSBsZW5ndGhvZih0cmFuc2xhdGVfY29sdW1ucyk7CisKKwkJcHJpbnRRdWVyeShyZXMsICZt eW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCX0KKworCVBRY2xl YXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KIAogLyoKICAqIFxkRnAKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggMThl Y2FhNjA5NDkuLjU1Y2VkNGFhYjdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu aAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBAIGV4dGVy biBib29sIGxpc3RPcEZhbWlseUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0aG9kX3Bh dHRlcm4sCiAvKiBcZGwgb3IgXGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJnZU9iamVj dHMoYm9vbCB2ZXJib3NlKTsKIAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJCQkvKiBE RVNDUklCRV9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9w c3FsL2hlbHAuYwppbmRleCBmZGE4MzQ2NWVmYS4uMmFkYmU3ZWRlZGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjY2LDYgKzI2 Niw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxc ZFRbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAoIiAgXFxk dVtTK10gW1BBVFRFUk5dICAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxkdltTK10g W1BBVFRFUk5dICAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkViAgICAgW1BBVFRF Uk5dICAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxkeFsrXSAg W1BBVFRFUk5dICAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRYICAgICBb UEFUVEVSTl0gICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAwKCIgIFxc ZHlbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCmluZGV4IDgxY2JmMTBhYTI4Li42ZWViZmM2YTVmOSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYwpAQCAtOTcwLDYgKzk3MCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVl cnlfZm9yX3RyaWdnZXJfb2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5yZWxuYW1l c3BhY2UiLAogfTsKIAorc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29m X3ZhcmlhYmxlcyA9IHsKKwkubWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5jYXRuYW1l ID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJwZ19jYXRh bG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0gInYudmFy bmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICogUXVlcmll cyB0byBnZXQgbGlzdHMgb2YgbmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3MsIHBvc3Np Ymx5CkBAIC0xMzA0LDYgKzEzMTEsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jk c19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8K IAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5d29yZHNf Zm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEwsIE5VTEx9 LAorCXsiVkFSSUFCTEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVz fSwKIAl7IlZJRVciLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9LAogCXtO VUxMfQkJCQkJCS8qIGVuZCBvZiBsaXN0ICovCiB9OwpAQCAtMTg2NSw3ICsxODczLDcgQEAgcHNx bF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxc ZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAi XFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIs ICJcXGRQaSIsICJcXGRQdCIsCiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAiXFxkUnAi LCAiXFxkcyIsCi0JCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxk WCIsICJcXGR5IiwKKwkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxkeCIsICJc XGRYIiwgIlxcZHkiLCAiXFxkViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYiLCAiXFxl bGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlcnJ2ZXJib3Nl IiwgIlxcZXYiLAogCQkiXFxmIiwKQEAgLTI1NTYsNiArMjU2NCw5IEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCSAgIkFMTCIpOwogCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIlNZU1RFTSIsICJTRVQiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJ VEgoIlRPIik7CisJLyogQUxURVIgVkFSSUFCTEUgPG5hbWU+ICovCisJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIk9XTkVS IFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CiAJLyogQUxURVIgVklFVyA8bmFtZT4g Ki8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWSUVXIiwgTWF0Y2hBbnkpKQogCQlDT01Q TEVURV9XSVRIKCJBTFRFUiBDT0xVTU4iLCAiT1dORVIgVE8iLCAiUkVOQU1FIiwgIlJFU0VUIiwg IlNFVCIpOwpAQCAtMzEzNiw3ICszMTQ3LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAJCQkJCSAgIlJPVVRJTkUiLCAiUlVMRSIsICJTQ0hFTUEiLCAiU0VRVUVOQ0Ui LCAiU0VSVkVSIiwKIAkJCQkJICAiU1RBVElTVElDUyIsICJTVUJTQ1JJUFRJT04iLCAiVEFCTEUi LAogCQkJCQkgICJUQUJMRVNQQUNFIiwgIlRFWFQgU0VBUkNIIiwgIlRSQU5TRk9STSBGT1IiLAot CQkJCQkgICJUUklHR0VSIiwgIlRZUEUiLCAiVklFVyIpOworCQkJCQkgICJUUklHR0VSIiwgIlRZ UEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAi T04iLCAiQUNDRVNTIiwgIk1FVEhPRCIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX2FjY2Vzc19tZXRob2RzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwg Ik9OIiwgIkNPTlNUUkFJTlQiKSkKQEAgLTM5NDYsNiArMzk1NywxMyBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIj0iLCBNYXRj aEFueUV4Y2VwdCgiKikiKSkpCiAJCQlDT01QTEVURV9XSVRIKCIsIiwgIikiKTsKIAl9CisvKiBD UkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVz ZSBUYWlsTWF0Y2hlcyAqLworCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0 aCBBUyAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRj aEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFTIik7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZB UklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQorCQkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUg PG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVl cnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKIAogLyogQ1JFQVRFIFZJRVcgLS0tIGlzIGFsbG93 ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBs ZXRlIENSRUFURSBbIE9SIFJFUExBQ0UgXSBWSUVXIDxuYW1lPiB3aXRoIEFTIG9yIFdJVEggKi8K QEAgLTQyMjMsNiArNDI0MSwxMiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIsICJGT1IiLCBNYXRjaEFu eSwgIkxBTkdVQUdFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJF U1RSSUNUIik7CiAKKwkvKiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hlcygiRFJP UCIsICJWQVJJQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl92YXJpYWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFSSUFCTEUi LCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJQ1QiKTsKKwog LyogRVhFQ1VURSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUiKSkKIAkJQ09NUExFVEVf V0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0ZW1lbnRzKTsKQEAgLTQ0 MjQsNyArNDQ0OCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkg KiBvYmplY3RzIHN1cHBvcnRlZC4KIAkJICovCiAJCWlmIChIZWFkTWF0Y2hlcygiQUxURVIiLCAi REVGQVVMVCIsICJQUklWSUxFR0VTIikpCi0JCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiLCAiU0VR VUVOQ0VTIiwgIkZVTkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVTIiwgIlRZUEVTIiwg IlNDSEVNQVMiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVO Q1RJT05TIiwgIlBST0NFRFVSRVMiLCAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIsICJW QVJJQUJMRVMiKTsKIAkJZWxzZQogCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUllfUExVUyhR dWVyeV9mb3JfbGlzdF9vZl9ncmFudGFibGVzLAogCQkJCQkJCQkJCQkiQUxMIEZVTkNUSU9OUyBJ TiBTQ0hFTUEiLApAQCAtNDQzMiw2ICs0NDU2LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJCSJBTEwgUk9VVElORVMgSU4gU0NIRU1BIiwKIAkJCQkJ CQkJCQkJIkFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIiwKIAkJCQkJCQkJCQkJIkFMTCBUQUJMRVMg SU4gU0NIRU1BIiwKKwkJCQkJCQkJCQkJIkFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIiwKIAkJCQkJ CQkJCQkJIkRBVEFCQVNFIiwKIAkJCQkJCQkJCQkJIkRPTUFJTiIsCiAJCQkJCQkJCQkJCSJGT1JF SUdOIERBVEEgV1JBUFBFUiIsCkBAIC00NDQ2LDcgKzQ0NzEsOCBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIlNFUVVFTkNFIiwKIAkJCQkJCQkJCQkJ IlRBQkxFIiwKIAkJCQkJCQkJCQkJIlRBQkxFU1BBQ0UiLAotCQkJCQkJCQkJCQkiVFlQRSIpOwor CQkJCQkJCQkJCQkiVFlQRSIsCisJCQkJCQkJCQkJCSJWQVJJQUJMRSIpOwogCX0KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiR1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSB8fAog CQkJIFRhaWxNYXRjaGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNo QW55LCAiT04iLCAiQUxMIikpCkBAIC00NDU0LDcgKzQ0ODAsOCBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJICAiUFJPQ0VEVVJFUyBJTiBTQ0hFTUEiLAogCQkJ CQkgICJST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRVMgSU4gU0NIRU1BIiwK LQkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIpOworCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIiwK KwkJCQkJICAiVkFSSUFCTEVTIElOIFNDSEVNQSIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJH UkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04iKSB8fAogCQkJIFRhaWxNYXRj aGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNoQW55LCAiT04iLCAi Rk9SRUlHTiIpKQogCQlDT01QTEVURV9XSVRIKCJEQVRBIFdSQVBQRVIiLCAiU0VSVkVSIik7CkBA IC00NDkwLDYgKzQ1MTcsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwK IAkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzcGFjZXMpOwog CQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNo ZXMoIlZBUklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlQiLCBNYXRj aEFueSwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgoIlRPIik7CiAJCWVs c2UKQEAgLTQ3OTIsNyArNDgyMSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJu X2lkLAogCiAvKiBQUkVQQVJFIHh4IEFTICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiUFJFUEFSRSIs IE1hdGNoQW55LCAiQVMiKSkKLQkJQ09NUExFVEVfV0lUSCgiU0VMRUNUIiwgIlVQREFURSIsICJJ TlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIpOworCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAi VVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIiwgIkxFVCIpOwogCiAvKgogICog UFJFUEFSRSBUUkFOU0FDVElPTiBpcyBtaXNzaW5nIG9uIHB1cnBvc2UuIEl0J3MgaW50ZW5kZWQg Zm9yIHRyYW5zYWN0aW9uCkBAIC01Mjc0LDYgKzUzMDMsOCBAQCBtYXRjaF9wcmV2aW91c193b3Jk cyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl9yb2xlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkdioiKSkKIAkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3MpOworCWVsc2UgaWYgKFRh aWxNYXRjaGVzQ1MoIlxcZFYqIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkeCoi KSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9leHRlbnNpb25zKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRYKiIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXgg MmJiYzc4MDVmZTMuLmY5ODc2MGRlNjM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L01ha2VmaWxlCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTgxLDcgKzgx LDggQEAgQ0FUQUxPR19IRUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBc CiAJcGdfcHVibGljYXRpb25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5oIFwKLQlwZ19zdWJz Y3JpcHRpb25fcmVsLmgKKwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX3ZhcmlhYmxlLmgK IAogR0VORVJBVEVEX0hFQURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5oPSVfZC5oKQogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCBlYzFjZjQ2N2Y2Zi4uODEzOThlZmE3YzkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBb CiAgICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdw Z19zdWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMgVGhlIC5k YXQgZmlsZXMgd2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHkuCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9uYW1lc3BhY2UuaAppbmRleCA4YzdjY2M2OWEzYy4uYmRhYzBjMTNiZWMgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9uYW1lc3BhY2UuaApAQCAtOTcsNiArOTcsOCBAQCBleHRlcm4gT2lkCVR5cGVuYW1lR2V0 VHlwaWQoY29uc3QgY2hhciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWRF eHRlbmRlZChjb25zdCBjaGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwogZXh0ZXJuIGJvb2wg VHlwZUlzVmlzaWJsZShPaWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBWYXJpYWJsZUlzVmlzaWJs ZShPaWQgdmFyaWQpOworCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVuY25hbWVHZXRDYW5k aWRhdGVzKExpc3QgKm5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3MsIExpc3QgKmFyZ25h bWVzLAogCQkJCQkJCQkJCQkgICBib29sIGV4cGFuZF92YXJpYWRpYywKQEAgLTE2OSw2ICsxNzEs MTAgQEAgZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1v cnlDb250ZXh0IGNvbnRleHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNo UGF0aE1hdGNoZXIoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNo UGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwog CitleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CitleHRlcm4gT2lkCUxv b2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJv b2wgbWlzc2luZ19vayk7CitleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KExp c3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOworCiBleHRlcm4gT2lkCWdldF9jb2xsYXRpb25f b2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfY29u dmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJ RmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyhpbnQzMiBmb3JfZW5jb2RpbmcsIGludDMyIHRvX2Vu Y29kaW5nKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wu aCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaAppbmRleCA2ZWRmMzM3MjUz Zi4uZmYyODkxYzA5ODEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVs dF9hY2wuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKQEAgLTY4 LDYgKzY4LDcgQEAgTUFLRV9TWVNDQUNIRShERUZBQ0xST0xFTlNQT0JKLCBwZ19kZWZhdWx0X2Fj bF9yb2xlX25zcF9vYmpfaW5kZXgsIDgpOwogI2RlZmluZSBERUZBQ0xPQkpfRlVOQ1RJT04JCSdm JyAvKiBmdW5jdGlvbiAqLwogI2RlZmluZSBERUZBQ0xPQkpfVFlQRQkJCSdUJyAvKiB0eXBlICov CiAjZGVmaW5lIERFRkFDTE9CSl9OQU1FU1BBQ0UJCSduJyAvKiBuYW1lc3BhY2UgKi8KKyNkZWZp bmUgREVGQUNMT0JKX1ZBUklBQkxFCQknVicgLyogdmFyaWFibGUgKi8KIAogI2VuZGlmCQkJCQkJ CS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRl eCBiMzdlOGE2Zjg4Mi4uNzBmNDFmMThlMmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt NTM5NSw2ICs1Mzk1LDI2IEBACiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9 PiAnb2lkIG9pZCB0ZXh0JywKICAgcHJvc3JjID0+ICdoYXNfbGFyZ2VvYmplY3RfcHJpdmlsZWdl X2lkX2lkJyB9LAogCit7IG9pZCA9PiAnOTYxMycsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBv biBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXJuYW1lLCBzZXEgbmFtZScsCisgIHByb25hbWUgPT4g J2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJv cmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIHRleHQgdGV4dCcsCisg IHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZScgfSwK K3sgb2lkID0+ICc5NjE0JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFy aWFibGUgYnkgdXNlcm5hbWUsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jv b2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSBvaWQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQnIH0sCit7IG9pZCA9PiAnOTYxNScsIGRl c2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBz ZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScs IHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVz ID0+ICdvaWQgdGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2VfaWRfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE2JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmls ZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBvaWQnLAorICBwcm9uYW1l ID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycs IHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0Jywg cHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQnIH0sCit7IG9p ZCA9PiAnOTYxNycsIGRlc2NyID0+ICdjdXJyZW50IHVzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24g dmFyaWFibGUgYnkgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAor ICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE4JywgZGVzY3IgPT4gJ2N1cnJl bnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSBzZXEgb2lkJywKKyAgcHJv bmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4g J3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0Jywg cHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQnIH0sCisKIHsgb2lk ID0+ICczMzU1JywgZGVzY3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4gJ3BnX25kaXN0aW5jdF9p bicsIHByb3JldHR5cGUgPT4gJ3BnX25kaXN0aW5jdCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3Ry aW5nJywgcHJvc3JjID0+ICdwZ19uZGlzdGluY3RfaW4nIH0sCkBAIC02NTc5LDYgKzY1OTksOSBA QAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEw JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlw ZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7 IG9pZCA9PiAnOTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4g c2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHBy b2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29s JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJs ZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNl c3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBf c2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjNkM2M2ZWIyNGI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBn X3ZhcmlhYmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0ZW0g Y2F0YWxvZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgorICog Tk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVy aXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNpbmNs dWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgorI2luY2x1ZGUgInV0aWxzL2Fj bC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlvbi4g IGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192YXJp YWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIs VmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KKworCS8qIE9J RCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlPaWQJCQl2YXJ0 eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFtZURh dGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJsZSBj bGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFjZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisK KwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9pZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdfYXV0 aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCisJaW50MzIJCXZhcnR5 cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlPaWQJ CQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9u KTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRz IHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0JCXZh cmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOworCisjZW5kaWYKK30gRm9ybURhdGFfcGdfdmFy aWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJl c3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHRo ZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRl ZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9ybV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9UT0FT VChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVko cGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3Zhcmlh YmxlLCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFyaWFi bGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYsIFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBnX3Zh cmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVfb3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykpOwor CitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs CisJCQkJCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CitleHRlcm4gdm9pZCBEcm9w VmFyaWFibGVCeUlkKE9pZCB2YXJpZCk7CisKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVOQU1FTlNQ LCBwZ192YXJpYWJsZV92YXJuYW1lX25zcF9pbmRleCwgOCk7CitNQUtFX1NZU0NBQ0hFKFZBUklB QkxFT0lELCBwZ192YXJpYWJsZV9vaWRfaW5kZXgsIDgpOworCisjZW5kaWYJCQkJCQkJLyogUEdf VkFSSUFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDM4ZDZhZDdkY2JkLi42NmFl YzQ2NTQ5OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjMxNiw2ICsyMzE2LDcgQEAgdHlw ZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQRSwK IAlPQkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklFVywK IH0gT2JqZWN0VHlwZTsKIApAQCAtMzQ0Nyw2ICszNDQ4LDIxIEBAIHR5cGVkZWYgc3RydWN0IEFs dGVyU3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3RhdGlz dGljcyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVtZW50 CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZVNl c3Npb25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJsZTsJ CS8qIHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8q IHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKKwli b29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICov Cit9IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAqCQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKaW5kZXggMjRjMjJhODY5NGIuLmMyNWFkZTY4ZjE5IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCkBAIC00ODQsNiArNDg0LDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFMSURB VE9SLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZSIs IFZBTFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZh bHVlcyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhcmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZ V09SRCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQorUEdfS0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVT RVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwg VFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5k ZXggZDI1MGE3MTRkNTkuLmVhODY5NTRkZGVkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtNjgs NiArNjgsNyBAQCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRSQU5T Rk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJR0dF UiwgIkFMVEVSIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0FMVEVSX1RZUEUsICJBTFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0FMVEVSX1VTRVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUsIGZh bHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBWQVJJ QUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklFVywg IkFMVEVSIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FOQUxZ WkUsICJBTkFMWVpFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQkVH SU4sICJCRUdJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAgUEdf Q01EVEFHKENNRFRBR19DUkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVBVEUg VFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RZ UEUsICJDUkVBVEUgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf Q1JFQVRFX1VTRVJfTUFQUElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJQUJM RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcsICJD UkVBVEUgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExP Q0FURSwgIkRFQUxMT0NBVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19ERUFMTE9DQVRFX0FMTCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkK QEAgLTE3NSw2ICsxNzcsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAiRFJP UCBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1Bf VFJJR0dFUiwgIkRST1AgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfRFJPUF9UWVBFLCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19EUk9QX1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBWQVJJ QUJMRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVXLCAi RFJPUCBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVDVVRF LCAiRVhFQ1VURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYUExB SU4sICJFWFBMQUlOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggMDFhZTViNzE5 ZmQuLjVlMWE4YTgyZTkwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFDTF9V U0FHRXxBQ0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShBQ0xf Q1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNkZWZp bmUgQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAKIC8q IG9wZXJhdGlvbiBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMv bHN5c2NhY2hlLmgKaW5kZXggYjIzZGViOTY2MmYuLjUzYzRkNTg4NmU0IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lz Y2FjaGUuaApAQCAtMTM0LDYgKzEzNCw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tpbmQo T2lkIGZ1bmNpZCk7CiBleHRlcm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNpZCk7 CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBleHRl cm4gT2lkCWdldF9yZWxuYW1lX3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxuYW1l c3BhY2UpOworZXh0ZXJuIE9pZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1l LCBPaWQgdmFybmFtZXNwYWNlKTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJlbGlk KTsKIGV4dGVybiBPaWQJZ2V0X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJ Z2V0X3JlbF90eXBlX2lkKE9pZCByZWxpZCk7CkBAIC0yMDYsNiArMjA3LDE0IEBAIGV4dGVybiBj aGFyICpnZXRfcHVibGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBl eHRlcm4gT2lkCWdldF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wg bWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJp ZCwgYm9vbCBtaXNzaW5nX29rKTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWUoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKE9pZCB2YXJpZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUoT2lk IHZhcmlkKTsKK2V4dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2Nv bGxpZChPaWQgdmFyaWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlp bnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0eXBl X2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQp CiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBk b21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5cGlk KSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc0ZDlmZjI5OThkLi5jMzM2ZjY3 YTU5NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CkBAIC0xNTEs MyArMTUxLDIwIEBAIG93bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9XTkVEIEJZIHJlZ3Jl c3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91 c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVuZGVuY3kgb24gdHlw ZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlwZSBB UyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2 YXJ0eXBlOworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0VSUk9SOiAg Y2Fubm90IGRyb3AgdHlwZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBv biBpdAorREVUQUlMOiAgY29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFydHlwZSBkZXBlbmRz IG9uIHR5cGUgdmFyZG9tYWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0 aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7CitFUlJPUjogIGNh bm5vdCBkcm9wIHR5cGUgdmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHZhcnR5cGUK K0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5 cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0CmluZGV4IDIxNWViODk5YmUzLi5kOTk1MzMyMTQwMiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVja2lu ZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJQ0U6 ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0K IE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBnX3N1 YnNjcmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7 c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxl IHt2YXJ0eXBlfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJs ZSB7dmFybmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNraW5n IHBnX3ZhcmlhYmxlIHt2YXJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVj a2luZyBwZ192YXJpYWJsZSB7dmFyY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDM2ZGMzMWMxNmM0Li44OGUyMTE5NDcxMSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTMwLDYgKzU5MzAsMzAgQEAgQ09N TUlUOwogIyBmaW5hbCBPTl9FUlJPUl9ST0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsKIERS T1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRF IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwor XGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29s bGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVz Y3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVn cmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0dS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFSSUFC TEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVn ZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9y ZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAg fCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1Ag Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlk IG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlmaWVk IG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjE1MSw2 ICs2MTc1LDEyIEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFt ZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNo Lm15ZXZ0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog bm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9wZXIg cXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lvbi5w dWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1YmxpYy52 YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFy ZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQgZG90 cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1 Y2guYWNjZXNzLm1ldGhvZCIKIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKQEAgLTYzODUsNiArNjQx NSwxMiBAQCBMaXN0IG9mIHNjaGVtYXMKIC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tCiAoMCByb3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29s bGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmlj YXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIGlt cHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC02NTU0LDYgKzY1OTAsMTIgQEAgaW1w cm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guaW5zdGEKIAogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZl bnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFt ZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFi bGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0t Ky0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4s IGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlv bnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0 aW9uIgogICAgICAgTGlzdCBvZiByZWxhdGlvbnMKQEAgLTY2ODcsNiArNjcyOSwxMiBAQCBMaXN0 IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jlc3Np b24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwog LS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC50YWJsZS5yZWxhdGlvbiIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu dGFibGUucmVsYXRpb24iCkBAIC02NzM0LDYgKzY3ODIsOCBAQCBjcm9zcy1kYXRhYmFzZSByZWZl cmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5z Y2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFgg Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3Rh dGlzdGljcyIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDog Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3Rh dGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUi CiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CiBD UkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZDNiNWNlZWE0M2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMCwwICsxLDQwOSBAQAorQ1JFQVRF IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsK Ky0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gc2hvdWxk IGZhaWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjIg QVMgYW55ZWxlbWVudDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgcHNldWRv LXR5cGUgYW55ZWxlbWVudAorLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9QIFZBUklB QkxFIElGIEVYSVNUUyB2YXIyOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMiIgZG9l cyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFCTEUgSUYg Tk9UIEVYSVNUUyB2YXIxIEFTIGludDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgInZhcjEi IGFscmVhZHkgZXhpc3RzLCBza2lwcGluZworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBl eGlzdHMKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMTsKKy0t IHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBvc2l0ZSB0eXBlcworQ1JFQVRFIFRBQkxFIHQxIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CistLSBzaG91bGQgZmFp bAorRFJPUCBUQUJMRSB0MTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdGFibGUgdDEgYmVjYXVzZSBv dGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIx IGRlcGVuZHMgb24gdHlwZSB0MQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3Ag dGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworQUxURVIgVEFCTEUg dDEgQUREIENPTFVNTiBjIGludDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUQUJMRSB0MSBBTFRF UiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAidDEi IGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdDE7CitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIg aW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworLS0gc2hvdWxkIGZhaWwKK0RST1Ag VFlQRSB0MTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSB0MSBiZWNhdXNlIG90aGVyIG9iamVj dHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBv biB0eXBlIHQxCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRS SUJVVEUgYyBpbnQ7CistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJV VEUgYiAgVFlQRSBudW1lcmljOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidDEiIGJlY2F1 c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgVFlQRSB0MTsKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRlZmF1bHQ7CitDUkVB VEUgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHRlc3R2YXJfdHlw ZSBBUyAoYSB0ZXN0dmFyX2RvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXN0dmFy X2RvbWFpbjsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQURE IENIRUNLKHZhbHVlIDw+IDEwMCk7CitFUlJPUjogIGNhbm5vdCBhbHRlciBkb21haW4gInRlc3R2 YXJfZG9tYWluIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0 CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXN0dmFyX3R5 cGU7CistLSBzaG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVD Syh2YWx1ZSA8PiAxMDApOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidGVzdHZhcl9kb21h aW4iIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9t YWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworRFJPUCBUWVBFIHRlc3R2YXJfdHlwZTsKK0RS T1AgVFlQRSB0ZXN0dmFyX2RvbWFpbjsKKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIgc3VwcG9ydAor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9w cGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciByZWNvcmQ7CitC RUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJfZHJvcHBlZF9v YmplY3RzKCkKKyAgTE9PUAorICAgIENPTlRJTlVFIFdIRU4gTk9UIHIubm9ybWFsIEFORCBOT1Qg ci5vcmlnaW5hbDsKKworICAgIFJBSVNFIE5PVElDRQorICAgICAgICdOT1JNQUw6IG9yaWc9JSBu b3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUgYXJncz0lJywKKyAgICAg ICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIub2JqZWN0X3R5cGUsCisg ICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRyZXNzX2FyZ3M7 CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBFVkVOVCBU UklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9k cm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJMRScpCisgIEVYRUNVVEUgUFJPQ0VEVVJF IHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworRFJPUCBWQVJJQUJMRSB2YXIxOworTk9USUNFOiAgTk9STUFMOiBvcmlnPXQg bm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZhcmlhYmxlIGlkZW50aXR5PXB1YmxpYy52 YXIxIG5hbWU9e3B1YmxpYyx2YXIxfSBhcmdzPXt9CitEUk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9y ZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQ7CistLSBjaGVjayBjb21tZW50IG9u IHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklB QkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5v YmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJF IHZhcm5hbWUgPSAndmFyMSc7CisgICAgb2JqX2Rlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBzb21lIHZhcmlhYmxlIGNvbW1lbnQKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitD UkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMg aW50OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JF Vk9LRSBBTEwgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3Zh cmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFy eHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKK0RS T1AgVkFSSUFCTEUgcHVibGljLnZhcnh4OworQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBG T1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAg IEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7Cist LSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8g cmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFT IGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CistLSBzaG91bGQgYmUgb2suIHNpbmNlIEFMVEVS IERFRkFVTFQgUFJJVklMRUdFUworLS0gYWxsb3cgcmVncmVzc192YXJpYWJsZV9yZWFkZXIgdG8g aGF2ZSBTRUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yZWFkZXInLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1Qn KTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcjsKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBh bmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3Ix OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7ICAgICAgLS12YXIx IHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJpYWJsZV9vd25lcgorR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMSBXSVRIIEdSQU5UIE9QVElPTjsKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg dmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUg VE8gREVGQVVMVDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitSRVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUg dmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjEgQ0FTQ0FERTsKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEn LCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMu dmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRVQgUk9M RSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZh cjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7 IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxF Q1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitSRVZPS0UgQUxMIE9OIFZBUklB QkxFIHZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IyIEdSQU5URUQgQlkgcmVncmVzc192YXJp YWJsZV9vd25lcjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX293bmVyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9Q IFZBUklBQkxFIHZhcjE7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BU SU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKy0tCistLSBiZWdpbiBvZiB0ZXN0OiBHUkFO VHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQQorLS0KK0NS RUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVy OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxF IHN2YXJ0ZXN0LnZhcjIgQVMgaW50OworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4g U0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZh cjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFy dGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1JF Vk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3QgRlJPTSByZWdy ZXNzX3ZhcmlhYmxlX3IxOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxFQ1QnKTsg LS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJP UCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIyOwor RFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBT RUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorLS0KKy0tIGZ1bmN0 aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSBoYXZlIHZhcmlvdXMga2luZCBvZiBz aWduYXR1cmUuCistLSB0aGUgZm9sbG93aW5nIGFyZSBleHRlbnNpdmUgdGVzdCBmb3IgaXQuCist LQorU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBw dWJsaWMudmFyMSBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFO VCBTRUxFQ1QsIFVQREFURSBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBUTyByZWdyZXNzX3Zhcmlh YmxlX3IyOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsKKyBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygx IHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMScsICdwdWJsaWMubm90ZXhpc3RzJywgJ1NFTEVDVCcpIElTIE5VTEw7CisgP2Nv bHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zh cmlhYmxlX3IxOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjEnLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEg cm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyJywgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMicsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNU Jyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgor KDEgcm93KQorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFyaWFibGUKKyAgV0hF UkUgdmFybmFtZSA9ICd2YXIxJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVz cGFjZSBcZ3NldAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScs ICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAor KDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwg J1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsg LS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnU0VM RUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIx JywgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xl LCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6 cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykK KworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJs ZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgdAorKDEgcm93KQorCistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIHNlYXJj aF9wYXRoIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXIxOworRFJPUCBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKK0RS T1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKaW5kZXggMWVkZDllNDVlYmIuLjdmNGY3NGVlZWFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKQEAgLTExMSw3ICsxMTEsNyBAQCB0ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2Rp bmcganNvbnBhdGgganNvbnBhdGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGggc3FsanNvbgogIyBO QjogdGVtcC5zcWwgZG9lcyBhIHJlY29ubmVjdCB3aGljaCB0cmFuc2llbnRseSB1c2VzIDIgY29u bmVjdGlvbnMsCiAjIHNvIGtlZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRl c3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRl bXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3Rh YmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qg d2l0aCB4bWwKK3Rlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWlu IHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVl bmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwg c2Vzc2lvbl92YXJpYWJsZXMKIAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFy YWxsZWwgdGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKaW5kZXggOGQ3NGVkNzEy MmMuLjZjMThiN2Y4NDBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRl bmN5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbApAQCAtMTE0 LDMgKzExNCwxNyBAQCBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIE9XTkVEIEJZ IHJlZ3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNz X2RlcF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKworLS0gZGVwZW5kZW5j eSBvbiB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2 YXJ0eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcnR5cGU7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47 CitEUk9QIFRZUEUgdmFydHlwZTsKKworLS0gY2xlYW4gdXAKK0RST1AgVkFSSUFCTEUgdmFyMTsK K0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3Fs LnNxbAppbmRleCBjNTAyMWZjMGIxMy4uNjY2ZWRkYjYzMmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3Fs CkBAIC0xNjMxLDYgKzE2MzEsMTkgQEAgQ09NTUlUOwogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZV TkNUSU9OIHBzcWxfZXJyb3I7CiAKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJP TEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRW KyB2YXIxCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5U IE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcjsKKwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFy dCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogXGRBIG5vbmVzdWNoLmhlYXAKQEAgLTE3NDIs NiArMTc1NSw5IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkWCBub25lc3VjaC5wdWJs aWMuZnVuY19kZXBzX3N0YXQKIFxkeSByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9uZXN1Y2gubXll dnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Npb258bXlkYi5w dWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGljLnZhcgogCiAtLSBjaGVjayB0aGF0IGRvdHMg d2l0aGluIHF1b3RlZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNo LmFjY2Vzcy5tZXRob2QiCkBAIC0xNzgzLDYgKzE3OTksOCBAQCBEUk9QIEZVTkNUSU9OIHBzcWxf ZXJyb3I7CiBcZHggIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAibm8uc3VjaC5l eHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5v LnN1Y2gudmFyaWFibGUiCisKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVh bGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9k IgpAQCAtMTgyMyw2ICsxODQxLDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBk b3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4NDcsNiArMTg2Niw3IEBAIERST1Ag RlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0 YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5vLnN1Y2guZGF0 YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODcy LDYgKzE4OTIsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgIm5vLnN1Y2guZGF0 YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBc ZFQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBl IgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVu ZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGNoZWNrIFxkcmcgYW5kIFxkdQogQ1JFQVRFIFJPTEUg cmVncmVzc19kdV9yb2xlMDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWFmZDNiYjIyNTMK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl cy5zcWwKQEAgLTAsMCArMSwyNzggQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsLCBwc2V1ZG90eXBlcyBh cmUgbm90IGFsbG93ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGFueWVsZW1lbnQ7CisKKy0t IHNob3VsZCBiZSBvaywgZG8gbm90aGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMjsK KworLS0gZG8gbm90aGluZworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgdmFyMSBBUyBp bnQ7CisKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKKy0t IHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMTsKKworLS0gdGhlIHZh cmlhYmxlIGNhbiB1c2UgY29tcG9zaXRlIHR5cGVzCitDUkVBVEUgVEFCTEUgdDEgKGEgaW50LCBi IGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKworLS0gc2hvdWxkIGZhaWwKK0RS T1AgVEFCTEUgdDE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVEFCTEUgdDEgQUREIENPTFVN TiBjIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRBQkxFIHQxIEFMVEVSIENPTFVNTiBi IFRZUEUgbnVtZXJpYzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB0MTsKKwor Q1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB0MTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgVFlQRSB0MTsKKworLS0gc2hvdWxkIGJlIG9r CitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitB TFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBiICBUWVBFIG51bWVyaWM7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGVmYXVs dDsKKworQ1JFQVRFIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB0 ZXN0dmFyX3R5cGUgQVMgKGEgdGVzdHZhcl9kb21haW4pOworCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyB0ZXN0dmFyX2RvbWFpbjsKKworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0 dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKKworRFJPUCBWQVJJQUJMRSB2YXIx OworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXN0dmFyX3R5cGU7CisKKy0tIHNob3VsZCBm YWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7 CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBET01BSU4g dGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CisKK0RST1AgVFlQRSB0ZXN0 dmFyX3R5cGU7CitEUk9QIFRZUEUgdGVzdHZhcl9kb21haW47CisKKy0tIGNoZWNrIGV2ZW50IHRy aWdnZXIgc3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xB UkUgciByZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3Ry aWdnZXJfZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIENPTlRJTlVFIFdIRU4gTk9UIHIu bm9ybWFsIEFORCBOT1Qgci5vcmlnaW5hbDsKKworICAgIFJBSVNFIE5PVElDRQorICAgICAgICdO T1JNQUw6IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUg YXJncz0lJywKKyAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIu b2JqZWN0X3R5cGUsCisgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywg ci5hZGRyZXNzX2FyZ3M7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK KworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0 X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9QIFZBUklBQkxFJykKKyAg RVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCk7CisK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworRFJP UCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVk OworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29tbWVu dCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUn KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitD UkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBB UyBpbnQ7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCitHUkFOVCBT RUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRl cjsKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBGUk9NIHJlZ3Jlc3NfdmFy aWFibGVfcmVhZGVyOworCitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIE9XTkVSIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFJFTkFN RSBUTyB2YXJ4eDsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcnh4IFNFVCBTQ0hFTUEgcHVi bGljOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKKworQUxURVIgREVGQVVMVCBQUklW SUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyCisgICBJTiBTQ0hFTUEg c3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJs ZV9yZWFkZXI7CisKKy0tIGNyZWF0aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2Vz CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgQVMgaW50OworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworLS0gc2hvdWxkIGJl IG9rLiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKy0tIGFsbG93IHJlZ3Jlc3NfdmFy aWFibGVfcmVhZGVyIHRvIGhhdmUgU0VMRUNUIHByaXZpbGVkZ2UKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyJywgJ3N2YXJ0ZXN0 LnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwor RFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7 CisKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVW T0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJp YWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsgICAgICAtLXZhcjEgd2ls bCBvd25lZCBieSByZWdyZXNzX3ZhcmlhYmxlX293bmVyCisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjEgV0lUSCBHUkFOVCBPUFRJT047CitTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZh cjEgVE8gcmVncmVzc192YXJpYWJsZV9yMiBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRP IERFRkFVTFQ7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVi bGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKworUkVWT0tFIEFMTCBQUklWSUxFR0VTIE9OIFZB UklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxIENBU0NBREU7CisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVi bGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7 IC0tIGYKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0dSQU5UIFNFTEVD VCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGlj LnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0t IHQKKworUkVWT0tFIEFMTCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9y MiBHUkFOVEVEIEJZIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEn LCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFVCBST0xFIFRPIERFRkFVTFQ7 CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tCistLSBlbmQgb2YgY2hlY2sgR1JBTlQgV0lUSCBH UkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorCistLQorLS0gYmVnaW4gb2Yg dGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hF TUEKKy0tCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFy dGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJp YWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjIgQVMgaW50OworCitHUkFOVCBTRUxFQ1QgT04gQUxM IFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjIn LCAnU0VMRUNUJyk7IC0tIHQKKworUkVWT0tFIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFND SEVNQSBzdmFydGVzdCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3Qu dmFyMScsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAt LSBmCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7 CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjI7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKKy0t CistLSBlbmQgb2YgdGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklB QkxFUyBJTiBTQ0hFTUEKKy0tCisKKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgaGF2ZSB2YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxv d2luZyBhcmUgZXh0ZW5zaXZlIHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMudmFyMSBBUyBpbnQ7CisK K1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBw dWJsaWMudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNULCBVUERBVEUg T04gVkFSSUFCTEUgcHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdw dWJsaWMudmFyMScsICdTRUxFQ1QnKTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLm5vdGV4aXN0cycsICdTRUxFQ1Qn KSBJUyBOVUxMOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3Zh cjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2 YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0g dAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUn KTsgLS0gZgorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFyaWFibGUKKyAgV0hF UkUgdmFybmFtZSA9ICd2YXIxJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVz cGFjZSBcZ3NldAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIx JywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCd2YXIxJywgJ1VQREFURScpOyAtLSBmCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjInLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xl LCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsICd2YXIxJywgJ1VQREFURScp OyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xl LCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNU Jyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjEnOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3Jv bGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRF Jyk7IC0tIHQKKy0tCistLSBlbmQgb2YgZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIHRlc3RzLgorLS0KKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0 aCBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXIxOworCitEUk9QIFJPTEUg cmVncmVzc192YXJpYWJsZV9yMTsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOworCitE Uk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK aW5kZXggZTFjNGY5MTNmODQuLmNiZTU5ZmIwNzA4IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dApAQCAtNTM2LDYgKzUzNiw3IEBAIENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFTdG10CiBD cmVhdGVTY2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0 bXQKIENyZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQKQEAgLTg3 Niw2ICs4NzcsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3RzX3RlbXBs YXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zvcm1EYXRh X3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19hZ2dyZWdh dGUKIEZvcm1fcGdfYW0KQEAgLTkzNSw2ICs5MzcsNyBAQCBGb3JtX3BnX3RzX3BhcnNlcgogRm9y bV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGluZworRm9y bV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZyZWVMaXN0 RGF0YQpAQCAtMzA4OCw2ICszMDkxLDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9y dAogVmFyaWFibGUKIFZhcmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJpYWJsZVNl dEtpbmQKIFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi40Ny4xCgo= --000000000000133ffb062b08ace5--