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 1utd3q-00BSAi-JD for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Sep 2025 02:17:24 +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 1utd3p-006VfF-Pu for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Sep 2025 02:17:22 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1utd3o-006Vf7-Qi for pgsql-hackers@lists.postgresql.org; Wed, 03 Sep 2025 02:17:21 +0000 Received: from mail-pj1-x1042.google.com ([2607:f8b0:4864:20::1042]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1utd3k-000Foq-0T for pgsql-hackers@postgresql.org; Wed, 03 Sep 2025 02:17:20 +0000 Received: by mail-pj1-x1042.google.com with SMTP id 98e67ed59e1d1-32b5d8bea85so325529a91.1 for ; Tue, 02 Sep 2025 19:17:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756865835; x=1757470635; darn=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=/n5U7MlxYvRq6RDYQvVkXG7zrMC1ebC5DhkJBXDNQxI=; b=ix9rA37klvwE6pnDEW++SX07WvAgR/FjHTIxnOlndghXxU6icmaTCIpKBj1xi9321L uwz6MqIczBSzZoDW+gotdMK/1dftOp8z7v6CIPWddUg9vVg7OdKloDQF94K+Zzpn20xb EBwfy8bkALGQso+xaVThIkbdjQBANuhA5xbmisYhqeQu/u7bzPOCZXuUYBjeLULz4Kpr KoneQAJ07JPSPUtRVwrHaB8TLdcaQtgd8tU8CowHM+5+AevvUQOYImH0BsjAcfZPcBMA YPUlW0se60v16vs+wX0BpDpbRDPw83Ik/rnZgCV+fhoJYz2qzPiOemTjhtxE3q9uitTB qKxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756865835; x=1757470635; 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=/n5U7MlxYvRq6RDYQvVkXG7zrMC1ebC5DhkJBXDNQxI=; b=w7KzNxgtJOpVtowLL6e/NwxU9uuUPMVkP3zhKaMy94en7KIFdIBguRE9QxvzUpxtiS EWxj6cHfMJ+YY/ouv9gIlOZGl2w9Xf7NSJGhzDMEnQWficUmzbUn0jLXMvJhu2j8HK4p Oq9XvIMVIU/uQdQay22n3hh3ux9yH6hYA69SYgv7ThkUQZdsDMiUodH0WnCDiLbgdzEs O+atmtTJyDu8qfQyT6mguW1AMkWLBdnA0cJcW2j7nJeZgcJO6ZA7L0p9md2QmzdF9/cP mtL+f1ARPutMv+PRoJC9cXaB4W46zgLTLqL/yHmDEQeJiJbJbSGAFfHHd0yw9u3DrsUN YgzQ== X-Forwarded-Encrypted: i=1; AJvYcCXtuGEYHEWELZKrczINkHTvkj5dwdW4PbjwP9ttIn87H+6zJ1yQcZ10syGXXP6W5/JtaIWiQk3G+FlVVc2E@postgresql.org X-Gm-Message-State: AOJu0Yyb+4KMwaMBTzPgmiaGRM/6fUtAyd9WZd+0avCTwwl2J9cnbjxl u9tHP3FR5/dJ0Kd9DySpZ3hoH9Hvit5Lnoi2QY99lqmp2O5MbljMjIPARXxBhge7VSCYXRo5K7F 2LjvA15P2lbNbwOFQeKYPZ7sMLWytZ+A= X-Gm-Gg: ASbGncvvqUCfwvGc4SuNNngd92vlTeP26FlA8UyqQYL8cjGx8JQPJqlw0smqXZSUASu fXdn60J0aHDLUUBuCwnQ5coBiuJUYahWxHTCmdKHHCXZ6vy7U2VUwIALhYHYDQLEbQI1gjESKNG nY1zNXD3ocqdeTfMNs97a6O3uHJ6zYF4YrCepQmjLzgh+SBNqlSQV2YowGYl1ty+Nf0tUYTe1sk R2OHxcu X-Google-Smtp-Source: AGHT+IETW/tih3Wlg/kUkPkMBBh4fBC18Vvr1qD9S0Eos67E4cI+Z1htff8HmQCye7DhnAmgoctRdEIbNm1OZehCOX0= X-Received: by 2002:a17:90b:3f10:b0:325:8fba:708d with SMTP id 98e67ed59e1d1-328156e55bfmr16440002a91.18.1756865834906; Tue, 02 Sep 2025 19:17:14 -0700 (PDT) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> <290418A2-3A9B-4304-AAAD-4A40CFF1CB93@gmail.com> <98C6F445-773B-4C82-8198-7F5CD56D5252@gmail.com> In-Reply-To: <98C6F445-773B-4C82-8198-7F5CD56D5252@gmail.com> From: Alexandra Wang Date: Tue, 2 Sep 2025 19:16:37 -0700 X-Gm-Features: Ac12FXxp629cBpEPTD4E9FUor3n9bU6cpv4kVbCVPNn-ZNh6aRkkqg71f0076d4 Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Chao Li Cc: jian he , Nikita Malakhov , Vik Fearing , Mark Dilger , Matheus Alcantara , Peter Eisentraut , Andrew Dunstan , Nikita Glukhov , PostgreSQL Hackers , "David E. Wheeler" Content-Type: multipart/mixed; boundary="0000000000000237be063ddc34cd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000237be063ddc34cd Content-Type: multipart/alternative; boundary="0000000000000237bd063ddc34cb" --0000000000000237bd063ddc34cb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Chao, Thanks for reviewing! I've attached v15, which addresses your feedback. I didn't make all the changes you suggested, please see my individual comments below and in the next email. On Mon, Sep 1, 2025 at 7:59=E2=80=AFPM Chao Li wro= te: > --- a/src/backend/parser/parse_node.c > +++ b/src/backend/parser/parse_node.c > @@ -244,7 +244,7 @@ transformContainerSubscripts(ParseState *pstate, > Node > *containerBase, > Oid containerTyp= e, > int32 > containerTypMod, > - List *indirectio= n, > + List > **indirection, > bool isAssignmen= t) > { > SubscriptingRef *sbsref; > @@ -280,7 +280,7 @@ transformContainerSubscripts(ParseState *pstate, > * element. If any of the items are slice specifiers > (lower:upper), then > * the subscript expression means a container slice operation. > */ > - foreach(idx, indirection) > + foreach(idx, *indirection) > { > A_Indices *ai =3D lfirst_node(A_Indices, idx); > > Should this foreach be pull up to out of transformContainerSubscripts()? > Originally transformContainerSubscripts() runs only once, but now it=E2= =80=99s > placed in a while loop, and every time this foreach needs to go through t= he > entire indirection list, which are duplicated computation. > > > After revisiting the code, I think this loop of checking is_slice should > be removed here. > > It seems only arrsubs cares about this is_slice flag. > > hstore_subs can only take a single indirection, so it can do a simple > check like: > > ``` > ai =3D initial_node(A_Indices, *indirection); > If (list_length(*indirection) !=3D 1 || ai->is_slice) > { > ereport(=E2=80=A6) > } > ``` > > jsonbsubs doesn=E2=80=99t need to check is_slice flag as well, I will exp= lain that > in my next email tougher with my new comments. > > So that, =E2=80=9Cbool isSlace=E2=80=9D can be removed from SubscriptTran= sform, and let > every individual subs check is_slice. > I don't like the idea of removing the "bool isSlice" argument from the *SubscriptTransform() function pointer. This patch series should make only minimal changes to the subscripting API. While it's true that each implementation can easily determine the boolean value of isSlice itself, I don't see a clear benefit to changing the interface. As you noted, arrsubs cares about isSlice; and users can also define custom data types that support subscripting, so the interface is not limited to built-in types. As the comment for *SubscriptTransform() explains: > (Of course, if the transform method > * does not care to support slicing, it can just throw an error if isSlice= .) It's possible that in the end the "isSlice" argument isn't needed at all, but I don=E2=80=99t think this patch set is the right place for that refactor. Best, Alex --0000000000000237bd063ddc34cb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Chao,

Thanks for reviewin= g! I've attached v15, which addresses your
feedback.
<= br>
I didn't make all the changes you suggested, please see m= y individual
comments below and in the next email.

On Mon, Sep 1, 2025 at 7:59=E2=80=AFPM Chao Li <li.evan.chao@gmail.com> wrote:
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -244,7 +244,7 @@ t= ransformContainerSubscripts(ParseState *pstate,
=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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Node *containerBase,
=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 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Oid containerType,
=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 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0int32 containerTypMo= d,
- =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 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0List *indirec= tion,
+ =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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0List **in= direction,
=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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0bool isAssignment)
=C2=A0{
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 SubscriptingRef *sbsref;
@@ -280,7 +280,7 @@ transformContain= erSubscripts(ParseState *pstate,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0* element.=C2=A0 If any of the items are slice specifiers (lower:upper),= then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* the subscript expressio= n means a container slice operation.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0*/
- =C2=A0 =C2=A0 =C2=A0 foreach(idx, indirection)
+ =C2=A0 =C2=A0 =C2=A0 foreach(idx, *indirection)
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 A_Indices =C2=A0*ai =3D lfirst_node(A_Indices, idx);
=

Should this foreach be pull u= p to out of transformContainerSubscripts()? Originally transformContainerSu= bscripts() runs only once, but now it=E2=80=99s placed in a while loop, and= every time this foreach needs to go through the entire indirection list, w= hich are duplicated computation.

After revisiting the code, I think this loop of checking is_slice s= hould be removed here.

It seems only arrsubs cares= about this is_slice flag.

hstore_subs can only ta= ke a single indirection, so it can do a simple check like:

```
ai =3D initial_node(A_Indices, *indirection);
<= div>If (list_length(*indirection) !=3D 1 || ai->is_slice)
{
=C2=A0 =C2=A0 ereport(=E2=80=A6)
}
```

jsonbsubs doesn=E2=80=99t need to check is_slice flag as well, I will= explain that in my next email tougher with my new comments.

=
So that, =E2=80=9Cbool isSlace=E2=80=9D can be removed from=C2= =A0SubscriptTransform, and let every individual subs c= heck is_slice.

I don't like= the idea of removing the "bool isSlice" argument from the
*Su= bscriptTransform() function pointer. This patch series should make
only = minimal changes to the subscripting API. While it's true that
each i= mplementation can easily determine the boolean value of isSlice
itself, = I don't see a clear benefit to changing the interface. As you
noted,= arrsubs cares about isSlice; and users can also define custom
data type= s that support subscripting, so the interface is not limited
to built-in= types.

As the comment for *SubscriptTransform= () explains:
(Of cou= rse, if the transform method
* does not care to support slicing, it can = just throw an error if isSlice.)

It's p= ossible that in the end the "isSlice" argument isn't needed a= t
all, but I don=E2=80=99t think this patch set is the right place for t= hat
refactor.

Best,
Alex

--0000000000000237bd063ddc34cb-- --0000000000000237be063ddc34cd Content-Type: application/octet-stream; name="v15-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Disposition: attachment; filename="v15-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf3bvwr11 RnJvbSBiNGYzNzA0YTMwYTBjNDE5MTU3NTBjMWNlY2YyYmE1NjQwZjAwYmY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE1IDcvN10gSW1wbGVtZW50IGpzb25iIHdpbGRjYXJkIG1lbWJlciBhY2Nlc3NvcgoKVGhpcyBj b21taXQgYWRkcyBzdXBwb3J0IGZvciB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzIGluIGpzb25iLCBh cwpzcGVjaWZpZWQgYnkgdGhlIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggaW4gU1FM OjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdtYWls LmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5vc3NA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFuZS5u ZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2VkYi5j b20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmlld2Vk LWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogUGV0 ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBKZWx0ZSBG ZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgpUZXN0ZWQtYnk6IEplbHRlIEZlbm5lbWEt TmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+Ci0tLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMgICAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCAgMzQgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0 LmMgICAgICAgICAgICAgfCAgNjcgKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJz dWJzLmMgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYyAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgg ICAgICAgICAgICAgICAgIHwgIDEyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgg ICAgICAgICAgICAgICB8ICAgMyArCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LmMgICAgICAgICAgfCAgMTggKy0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyICAgICB8ICAyMyArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQgICAgIHwgICAyICsKIHNyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5w Z2MgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgICAg ICAgICAgIHwgMjIyICsrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNv bmIuc3FsICAgICAgICAgICAgICAgIHwgIDQyICsrKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDQwNSBp bnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGQx YmQ1NzVkOWJkLi41ZjMwMzhhMWMyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTI5MSw2ICsy OTEsOSBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQkJICovCiAJCQl0eXBlID0gVEVY VE9JRDsKIAkJCWJyZWFrOworCQljYXNlIFRfU3RhcjoKKwkJCXR5cGUgPSBVTktOT1dOT0lEOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUg dHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKIAkJCXR5cGUgPSBJbnZhbGlkT2lkOwkv KiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC0xMTU2LDYgKzExNTksOSBAQCBleHByU2V0Q29s bGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCWNhc2UgVF9GaWVsZEFjY2Vzc29y RXhwcjoKIAkJCSgoRmllbGRBY2Nlc3NvckV4cHIgKikgZXhwciktPmZhZWNvbGxpZCA9IGNvbGxh dGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfU3RhcjoKKwkJCUFzc2VydCghT2lkSXNWYWxpZChj b2xsYXRpb24pKTsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJKChT dWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFr OwpAQCAtMjE0MCw2ICsyMTQ2LDcgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUg Km5vZGUsCiAJCWNhc2UgVF9DVEVTZWFyY2hDbGF1c2U6CiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRG dW5jOgogCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CisJCWNhc2UgVF9TdGFyOgogCQkJLyog cHJpbWl0aXZlIG5vZGUgdHlwZXMgd2l0aCBubyBleHByZXNzaW9uIHN1Ym5vZGVzICovCiAJCQli cmVhazsKIAkJY2FzZSBUX1dpdGhDaGVja09wdGlvbjoKQEAgLTMwMjAsNiArMzAyNyw3IEBAIGV4 cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2FzZSBUX0NURVNlYXJj aENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCWNhc2UgVF9GaWVsZEFjY2Vz c29yRXhwcjoKKwkJY2FzZSBUX1N0YXI6CiAJCQlyZXR1cm4gY29weU9iamVjdChub2RlKTsKIAkJ Y2FzZSBUX1dpdGhDaGVja09wdGlvbjoKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGRiNDMwMzRiOWRi Li43MDNjNzQxNmIwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xODk3OSw2ICsxODk3OSw3IEBAIGNoZWNr X2Z1bmNfbmFtZShMaXN0ICpuYW1lcywgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiBzdGF0aWMg TGlzdCAqCiBjaGVja19pbmRpcmVjdGlvbihMaXN0ICppbmRpcmVjdGlvbiwgY29yZV95eXNjYW5f dCB5eXNjYW5uZXIpCiB7CisjaWYgMAogCUxpc3RDZWxsICAgKmw7CiAKIAlmb3JlYWNoKGwsIGlu ZGlyZWN0aW9uKQpAQCAtMTg5ODksNiArMTg5OTAsNyBAQCBjaGVja19pbmRpcmVjdGlvbihMaXN0 ICppbmRpcmVjdGlvbiwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQkJcGFyc2VyX3l5ZXJy b3IoImltcHJvcGVyIHVzZSBvZiBcIipcIiIpOwogCQl9CiAJfQorI2VuZGlmCiAJcmV0dXJuIGlu ZGlyZWN0aW9uOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBmZjEwNGM5NTMxMS4u YWQ3MjFjMGVjOWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNzMsNyArNzMsNiBAQCBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1u UmVmICpjcmVmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJCQkJCSAgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQkJ CSAgaW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKLXN0YXRpYyBOb2RlICp0cmFuc2Zv cm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2Fz dCAqdGMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2Jq ZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTU3LDcgKzE1Niw3IEBAIHRy YW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJy ZWFrOwogCiAJCWNhc2UgVF9BX0luZGlyZWN0aW9uOgotCQkJcmVzdWx0ID0gdHJhbnNmb3JtSW5k aXJlY3Rpb24ocHN0YXRlLCAoQV9JbmRpcmVjdGlvbiAqKSBleHByKTsKKwkJCXJlc3VsdCA9IHRy YW5zZm9ybUluZGlyZWN0aW9uKHBzdGF0ZSwgKEFfSW5kaXJlY3Rpb24gKikgZXhwciwgTlVMTCk7 CiAJCQlicmVhazsKIAogCQljYXNlIFRfQV9BcnJheUV4cHI6CkBAIC00MzEsOCArNDMwLDkgQEAg dW5rbm93bl9hdHRyaWJ1dGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpyZWxyZWYsIGNvbnN0 IGNoYXIgKmF0dG5hbWUsCiAJfQogfQogCi1zdGF0aWMgTm9kZSAqCi10cmFuc2Zvcm1JbmRpcmVj dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKK05vZGUgKgordHJh bnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQs CisJCQkJCSBib29sICp0cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKIHsKIAlOb2RlCSAgICpsYXN0 X3NyZiA9IHBzdGF0ZS0+cF9sYXN0X3NyZjsKIAlOb2RlCSAgICpyZXN1bHQgPSB0cmFuc2Zvcm1F eHByUmVjdXJzZShwc3RhdGUsIGluZC0+YXJnKTsKQEAgLTQ1MywxMiArNDUzLDcgQEAgdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJ CWlmIChJc0EobiwgQV9JbmRpY2VzKSkKIAkJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlw dHMsIG4pOwogCQllbHNlIGlmIChJc0EobiwgQV9TdGFyKSkKLQkJewotCQkJZXJlcG9ydChFUlJP UiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCQkg ZXJybXNnKCJyb3cgZXhwYW5zaW9uIHZpYSBcIipcIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwK LQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwotCQl9CisJCQlz dWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKIAkJZWxzZQogCQl7CiAJCQlBc3Nl cnQoSXNBKG4sIFN0cmluZykpOwpAQCAtNDkwLDcgKzQ4NSwyMSBAQCB0cmFuc2Zvcm1JbmRpcmVj dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAogCQkJbiA9IGxp bml0aWFsKHN1YnNjcmlwdHMpOwogCi0JCQlpZiAoIUlzQShuLCBTdHJpbmcpKQorCQkJaWYgKElz QShuLCBBX1N0YXIpKQorCQkJeworCQkJCS8qIFN1Y2Nlc3MsIGlmIHRyYWlsaW5nIHN0YXIgZXhw YW5zaW9uIGlzIGFsbG93ZWQgKi8KKwkJCQlpZiAodHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gJiYg bGlzdF9sZW5ndGgoc3Vic2NyaXB0cykgPT0gMSkKKwkJCQl7CisJCQkJCSp0cmFpbGluZ19zdGFy X2V4cGFuc2lvbiA9IHRydWU7CisJCQkJCXJldHVybiByZXN1bHQ7CisJCQkJfQorCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkJCSBlcnJtc2coInJvdyBleHBhbnNpb24gdmlhIFwiKlwiIGlzIG5vdCBzdXBwb3J0 ZWQgaGVyZSIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkp OworCQkJfQorCQkJZWxzZSBpZiAoIUlzQShuLCBTdHJpbmcpKQogCQkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKIAkJCQkJCSBlcnJt c2coImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBvcnQg c3Vic2NyaXB0aW5nIiwKQEAgLTUxNiw2ICs1MjUsOSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJcmVzdWx0ID0gbmV3cmVz dWx0OwogCX0KIAorCWlmICh0cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKKwkJKnRyYWlsaW5nX3N0 YXJfZXhwYW5zaW9uID0gZmFsc2U7CisKIAlyZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMKaW5kZXggYjg5NzM2ZmYxZWEuLjg1YzA1Yzc0MzRjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3RhcmdldC5jCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zv cm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTGlzdCAq RXhwYW5kQ29sdW1uUmVmU3RhcihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZiwK IAkJCQkJCQkJIGJvb2wgbWFrZV90YXJnZXRfZW50cnkpOwogc3RhdGljIExpc3QgKkV4cGFuZEFs bFRhYmxlcyhQYXJzZVN0YXRlICpwc3RhdGUsIGludCBsb2NhdGlvbik7Ci1zdGF0aWMgTGlzdCAq RXhwYW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAq aW5kLAorc3RhdGljIE5vZGUgKkV4cGFuZEluZGlyZWN0aW9uU3RhcihQYXJzZVN0YXRlICpwc3Rh dGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKIAkJCQkJCQkJICAgYm9vbCBtYWtlX3RhcmdldF9lbnRy eSwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiBzdGF0aWMgTGlzdCAqRXhwYW5kU2luZ2xlVGFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJCQkJ CQkgICBpbnQgc3VibGV2ZWxzX3VwLCBpbnQgbG9jYXRpb24sCkBAIC0xMzMsNiArMTMzLDcgQEAg dHJhbnNmb3JtVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3Qs CiAJZm9yZWFjaChvX3RhcmdldCwgdGFyZ2V0bGlzdCkKIAl7CiAJCVJlc1RhcmdldCAgKnJlcyA9 IChSZXNUYXJnZXQgKikgbGZpcnN0KG9fdGFyZ2V0KTsKKwkJTm9kZQkgICAqdHJhbnNmb3JtZWQg PSBOVUxMOwogCiAJCS8qCiAJCSAqIENoZWNrIGZvciAic29tZXRoaW5nLioiLiAgRGVwZW5kaW5n IG9uIHRoZSBjb21wbGV4aXR5IG9mIHRoZQpAQCAtMTYxLDEzICsxNjIsMTkgQEAgdHJhbnNmb3Jt VGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAKIAkJCQlp ZiAoSXNBKGxsYXN0KGluZC0+aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJCXsKLQkJCQkJLyog SXQgaXMgc29tZXRoaW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCi0JCQkJCXBf dGFyZ2V0ID0gbGlzdF9jb25jYXQocF90YXJnZXQsCi0JCQkJCQkJCQkJICAgRXhwYW5kSW5kaXJl Y3Rpb25TdGFyKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkJCQkgaW5kLAotCQkJCQkJCQkJCQkJCQkJ CSB0cnVlLAotCQkJCQkJCQkJCQkJCQkJCSBleHByS2luZCkpOwotCQkJCQljb250aW51ZTsKKwkJ CQkJTm9kZQkgICAqY29sdW1ucyA9IEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsCisJCQkJ CQkJCQkJCQkJCQkJaW5kLAorCQkJCQkJCQkJCQkJCQkJCXRydWUsCisJCQkJCQkJCQkJCQkJCQkJ ZXhwcktpbmQpOworCisJCQkJCWlmIChJc0EoY29sdW1ucywgTGlzdCkpCisJCQkJCXsKKwkJCQkJ CS8qIEl0IGlzIHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLworCQkJ CQkJcF90YXJnZXQgPSBsaXN0X2NvbmNhdChwX3RhcmdldCwgKExpc3QgKikgY29sdW1ucyk7CisJ CQkJCQljb250aW51ZTsKKwkJCQkJfQorCisJCQkJCXRyYW5zZm9ybWVkID0gKE5vZGUgKikgY29s dW1uczsKIAkJCQl9CiAJCQl9CiAJCX0KQEAgLTE3OSw3ICsxODYsNyBAQCB0cmFuc2Zvcm1UYXJn ZXRMaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAkJcF90YXJnZXQg PSBsYXBwZW5kKHBfdGFyZ2V0LAogCQkJCQkJICAgdHJhbnNmb3JtVGFyZ2V0RW50cnkocHN0YXRl LAogCQkJCQkJCQkJCQkJcmVzLT52YWwsCi0JCQkJCQkJCQkJCQlOVUxMLAorCQkJCQkJCQkJCQkJ dHJhbnNmb3JtZWQsCiAJCQkJCQkJCQkJCQlleHByS2luZCwKIAkJCQkJCQkJCQkJCXJlcy0+bmFt ZSwKIAkJCQkJCQkJCQkJCWZhbHNlKSk7CkBAIC0yNTAsMTAgKzI1NywxNSBAQCB0cmFuc2Zvcm1F eHByZXNzaW9uTGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmV4cHJsaXN0LAogCiAJCQlp ZiAoSXNBKGxsYXN0KGluZC0+aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJewotCQkJCS8qIEl0 IGlzIHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLwotCQkJCXJlc3Vs dCA9IGxpc3RfY29uY2F0KHJlc3VsdCwKLQkJCQkJCQkJCSBFeHBhbmRJbmRpcmVjdGlvblN0YXIo cHN0YXRlLCBpbmQsCi0JCQkJCQkJCQkJCQkJCSAgIGZhbHNlLCBleHByS2luZCkpOworCQkJCU5v ZGUJICAgKmNvbHMgPSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLCBpbmQsCisJCQkJCQkJ CQkJCQkJCSBmYWxzZSwgZXhwcktpbmQpOworCisJCQkJaWYgKCFjb2xzIHx8IElzQShjb2xzLCBM aXN0KSkKKwkJCQkJLyogSXQgaXMgc29tZXRoaW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0 ZW1zICovCisJCQkJCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgKExpc3QgKikgY29scyk7 CisJCQkJZWxzZQorCQkJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgY29scyk7CisKIAkJCQlj b250aW51ZTsKIAkJCX0KIAkJfQpAQCAtMTM0NCwyMiArMTM1NiwzMCBAQCBFeHBhbmRBbGxUYWJs ZXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBpbnQgbG9jYXRpb24pCiAgKiBGb3Igcm9idXN0bmVzcywg d2UgdXNlIGEgc2VwYXJhdGUgIm1ha2VfdGFyZ2V0X2VudHJ5IiBmbGFnIHRvIGNvbnRyb2wKICAq IHRoaXMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBleHByS2luZC4KICAqLwotc3RhdGljIExpc3Qg Kgorc3RhdGljIE5vZGUgKgogRXhwYW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAogCQkJCQkgIGJvb2wgbWFrZV90YXJnZXRfZW50cnksIFBh cnNlRXhwcktpbmQgZXhwcktpbmQpCiB7CiAJTm9kZQkgICAqZXhwcjsKKwlQYXJzZUV4cHJLaW5k IHN2X2V4cHJfa2luZDsKKwlib29sCQl0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiA9IGZhbHNlOwor CisJLyogU2F2ZSBhbmQgcmVzdG9yZSBpZGVudGl0eSBvZiBleHByZXNzaW9uIHR5cGUgd2UncmUg cGFyc2luZyAqLworCUFzc2VydChleHByS2luZCAhPSBFWFBSX0tJTkRfTk9ORSk7CisJc3ZfZXhw cl9raW5kID0gcHN0YXRlLT5wX2V4cHJfa2luZDsKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gZXhw cktpbmQ7CiAKIAkvKiBTdHJpcCBvZmYgdGhlICcqJyB0byBjcmVhdGUgYSByZWZlcmVuY2UgdG8g dGhlIHJvd3R5cGUgb2JqZWN0ICovCi0JaW5kID0gY29weU9iamVjdChpbmQpOwotCWluZC0+aW5k aXJlY3Rpb24gPSBsaXN0X3RydW5jYXRlKGluZC0+aW5kaXJlY3Rpb24sCi0JCQkJCQkJCQkgbGlz dF9sZW5ndGgoaW5kLT5pbmRpcmVjdGlvbikgLSAxKTsKKwlleHByID0gdHJhbnNmb3JtSW5kaXJl Y3Rpb24ocHN0YXRlLCBpbmQsICZ0cmFpbGluZ19zdGFyX2V4cGFuc2lvbik7CisKKwlwc3RhdGUt PnBfZXhwcl9raW5kID0gc3ZfZXhwcl9raW5kOwogCi0JLyogQW5kIHRyYW5zZm9ybSB0aGF0ICov Ci0JZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBpbmQsIGV4cHJLaW5kKTsK KwkvKiAnKicgd2FzIGNvbnN1bWVkIGJ5IGdlbmVyaWMgdHlwZSBzdWJzY3JpcHRpbmcgKi8KKwlp ZiAoIXRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKQorCQlyZXR1cm4gZXhwcjsKIAogCS8qIEV4cGFu ZCB0aGUgcm93dHlwZSBleHByZXNzaW9uIGludG8gaW5kaXZpZHVhbCBmaWVsZHMgKi8KLQlyZXR1 cm4gRXhwYW5kUm93UmVmZXJlbmNlKHBzdGF0ZSwgZXhwciwgbWFrZV90YXJnZXRfZW50cnkpOwor CXJldHVybiAoTm9kZSAqKSBFeHBhbmRSb3dSZWZlcmVuY2UocHN0YXRlLCBleHByLCBtYWtlX3Rh cmdldF9lbnRyeSk7CiB9CiAKIC8qCkBAIC0xNzg0LDEzICsxODA0LDE4IEBAIEZpZ3VyZUNvbG5h bWVJbnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJCQljaGFyCSAgICpmbmFtZSA9 IE5VTEw7CiAJCQkJTGlzdENlbGwgICAqbDsKIAotCQkJCS8qIGZpbmQgbGFzdCBmaWVsZCBuYW1l LCBpZiBhbnksIGlnbm9yaW5nICIqIiBhbmQgc3Vic2NyaXB0cyAqLworCQkJCS8qCisJCQkJICog ZmluZCBsYXN0IGZpZWxkIG5hbWUsIGlmIGFueSwgaWdub3Jpbmcgc3Vic2NyaXB0cywgYW5kIHVz ZQorCQkJCSAqICc/Y29sdW1uPycgd2hlbiB0aGVyZSdzIGEgdHJhaWxpbmcgJyonLgorCQkJCSAq LwogCQkJCWZvcmVhY2gobCwgaW5kLT5pbmRpcmVjdGlvbikKIAkJCQl7CiAJCQkJCU5vZGUJICAg KmkgPSBsZmlyc3QobCk7CiAKIAkJCQkJaWYgKElzQShpLCBTdHJpbmcpKQogCQkJCQkJZm5hbWUg PSBzdHJWYWwoaSk7CisJCQkJCWVsc2UgaWYgKElzQShpLCBBX1N0YXIpKQorCQkJCQkJZm5hbWUg PSAiP2NvbHVtbj8iOwogCQkJCX0KIAkJCQlpZiAoZm5hbWUpCiAJCQkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25ic3Vicy5jCmluZGV4IDM2OWY0MGVjMDQ0Li4zNzQwNDBiM2I0ZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9qc29uYnN1YnMuYwpAQCAtMTQ0LDcgKzE0NCw3IEBAIGpzb25iX2NoZWNrX2pzb25wYXRo X25lZWRlZChMaXN0ICppbmRpcmVjdGlvbiwgYm9vbCBpc1NsaWNlKQogCXsKIAkJTm9kZQkgICAq YWNjZXNzb3IgPSBsZmlyc3QobGMpOwogCi0JCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJ CWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykgfHwgSXNBKGFjY2Vzc29yLCBBX1N0YXIpKQogCQkJ cmV0dXJuIHRydWU7CiAJCWVsc2UKIAkJCUFzc2VydChJc0EoYWNjZXNzb3IsIEFfSW5kaWNlcykp OwpAQCAtMzU1LDYgKzM1NSwxNiBAQCBqc29uYl9zdWJzY3JpcHRfbWFrZV9qc29ucGF0aChQYXJz ZVN0YXRlICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwgU3Vic2NyaXB0aQogCQkJCX0KIAkJ CX0KIAkJfQorCQllbHNlIGlmIChJc0EoYWNjZXNzb3IsIEFfU3RhcikpCisJCXsKKwkJCVN0YXIg KnN0YXJfbm9kZTsKKwkJCWpwaSA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlBbnlLZXkpOworCisJ CQlzdGFyX25vZGUgPSBtYWtlTm9kZShTdGFyKTsKKwkJCXN0YXJfbm9kZS0+dHlwZSA9IFRfU3Rh cjsKKworCQkJc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIgPSBsYXBwZW5kKHNic3JlZi0+cmVmdXBw ZXJpbmRleHByLCBzdGFyX25vZGUpOworCQl9CiAJCWVsc2UKIAkJewogCQkJLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYwppbmRleCBiYWEzYWU5N2Q1Ny4uYWNlMGVmZjUyZTIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTEzMDEwLDcgKzEzMDEwLDExIEBAIHByaW50U3Vic2Ny aXB0cyhTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQog CXsKIAkJTm9kZSAqdXBwZXIgPSAoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pOwogCi0JCWlm ICh1cHBlciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JFeHByKSkKKwkJaWYgKHVwcGVyICYm IElzQSh1cHBlciwgU3RhcikpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAi LioiKTsKKwkJfQorCQllbHNlIGlmICh1cHBlciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JF eHByKSkKIAkJewogCQkJRmllbGRBY2Nlc3NvckV4cHIgKmZhZSA9IChGaWVsZEFjY2Vzc29yRXhw ciAqKSB1cHBlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA3ZTg5NjIxYmQ2NS4uN2U0MTg4 MzBmMjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0yNDE5LDQgKzI0MTksMTYgQEAgdHlwZWRl ZiBzdHJ1Y3QgRmllbGRBY2Nlc3NvckV4cHIKIAlPaWQJCQlmYWVjb2xsaWQgcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogfQkJCUZpZWxkQWNjZXNzb3JFeHByOwogCisvKgorICog U3RhciAtIHJlcHJlc2VudHMgYSB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzb3IgKGUuZy4sICIuKiIp IHVzZWQgaW4gSlNPTkIgc2ltcGxpZmllZCBhY2Nlc3Nvci4KKyAqCisgKiBUaGlzIG5vZGUgc2Vy dmVzIGFzIGEgc3ludGFjdGljIHBsYWNlaG9sZGVyIGluIHRoZSBleHByZXNzaW9uIHRyZWUgYW5k IGRvZXMgbm90IGdldCBldmFsdWF0ZWQsIGhlbmNlIGl0CisgKiBoYXMgbm8gYXNzb2NpYXRlZCB0 eXBlIG9yIGNvbGxhdGlvbi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU3RhcgoreworCU5vZGVUYWcJ CXR5cGU7Cit9CQkJU3RhcjsKKworCiAjZW5kaWYJCQkJCQkJLyogUFJJTU5PREVTX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IGVmYmFmZjhlNzEwLi5jOWY2YTc3MjRjMCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfZXhwci5oCkBAIC0yMiw0ICsyMiw3IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zv cm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHBy S2luCiAKIGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5k IGV4cHJLaW5kKTsKIAorZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAorCQkJCQkJCQkgIGJvb2wgKnRyYWlsaW5n X3N0YXJfZXhwYW5zaW9uKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0VYUFJfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwppbmRleCA5 MzViNDdhM2I5YS4uNTg1ZDliMTQ0NDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCkBAIC01MTUsOSArNTE1LDkgQEAgaWYgKHNxbGNhLnNx bGNvZGUgPCAwKSBzcWxwcmludCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQo KTt9CiAjbGluZSAxNDUgInNxbGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5k IGpzb249JXNcbiIsIGpzb24pOwogCi0JeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAs IEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNc IjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6 IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKKwl7IEVDUEdkbyhfX0xJ TkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wi YVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsx Miwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSAuICogLiB4ICkiLCBFQ1BHdF9FT0lULCAKIAlF Q1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwg CiAJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAj bGluZSAxNDggInNxbGpzb24ucGdjIgpAQCAtNTI3LDcgKzUyNyw3IEBAIGlmIChzcWxjYS5zcWxj b2RlIDwgMCkgc3FscHJpbnQoKTt9CiAKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OwogCi0JeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJz ZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wi eFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBd ICkiLCBFQ1BHdF9FT0lULCAKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQ R3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAy fSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNv bmIgKSBbICdiJyBdIFsgMCA6IF0gKSIsIEVDUEd0X0VPSVQsIAogCUVDUEd0X2NoYXIsKGpzb24p LChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKIAlFQ1BHdF9OT19JTkRJ Q0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKICNsaW5lIDE1MSAic3FsanNv bi5wZ2MiCkBAIC01MzcsMTIgKzUzNywyMiBAQCBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHBy aW50KCk7fQogCiAJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAotICB7IEVDUEdk aXNjb25uZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAx LCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJc IjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6 MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDogXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hh ciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0 X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOwogI2xpbmUgMTU0 ICJzcWxqc29uLnBnYyIKIAogaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KICNs aW5lIDE1NCAic3FsanNvbi5wZ2MiCiAKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OworCisgIHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisjbGluZSAxNTcg InNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xp bmUgMTU3ICJzcWxqc29uLnBnYyIKKwogCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciBiL3NyYy9p bnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKaW5kZXggZjNm ODk5YzZkODcuLjRiOTA4ODU0NWQ2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rl c3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKQEAgLTM0NywyMiArMzQ3LDE5IEBAIFNR TCBlcnJvcjogc2NoZW1hICJqc29uYiIgZG9lcyBub3QgZXhpc3Qgb24gbGluZSAxMjEKIFtOT19Q SURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRl IG9uIGxpbmUgMTQ1OiB1c2luZyBQUWV4ZWMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCi1bTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5lIDE0NTogYmFk IHJlc3BvbnNlIC0gRVJST1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRl ZCBoZXJlCi1MSU5FIDE6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwg ImIiOiBbeyJ4IjogMX0sIHsieC4uLgotICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJ RF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxNDU6IGNvcnJlY3RseSBnb3QgMSB0dXBs ZXMgd2l0aCAxIGZpZWxkcwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAK LVtOT19QSURdOiByYWlzaW5nIHNxbHN0YXRlIDBBMDAwIChzcWxjb2RlIC00MDApOiByb3cgZXhw YW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1Ci1bTk9fUElE XTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiAwQTAwMAotU1FMIGVycm9yOiByb3cgZXhwYW5z aW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1Ci1bTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7 ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScg OjoganNvbmIgKSBbICdiJyBdIFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25u ZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUg MTQ1OiBSRVNVTFQ6IFt7ImIiOiAxLCAiYyI6IDJ9LCBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjogMX1dfV1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHF1ZXJ5 OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9 LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gKiAuIHggKTsgd2l0aCAwIHBh cmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KIFtOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUg MTQ4OiB1c2luZyBQUWV4ZWMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAw CiBbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0ODogY29ycmVjdGx5IGdv dCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAotW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogW3si eCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05P X1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogWzEsIFsxMiwgeyJ5Ijog MX1dXSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCi1bTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUxOiBxdWVyeTogc2Vs ZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4 IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0gKTsgd2l0aCAwIHBhcmFt ZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBlY3BnX2V4 ZWN1dGUgb24gbGluZSAxNTE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEs ICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29u YiApIFsgJ2InIF0gWyAwIDogXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24g ZWNwZzFfcmVncmVzc2lvbgogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAK IFtOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYwogW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKQEAgLTM3MCw1ICszNjcsMTMgQEAgU1FM IGVycm9yOiByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxp bmUgMTQ1CiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06 IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNTE6IFJFU1VMVDogW3sieCI6IDF9LCB7IngiOiBbMTIs IHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubwogW05PX1BJRF06IHNxbGNhOiBjb2Rl OiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNTQ6IHF1 ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6 IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDogXSApOyB3aXRo IDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24g bGluZSAxNTQ6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTog MDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTU0OiBjb3JyZWN0 bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwg c3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE1NDogUkVTVUxU OiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5v CitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdf ZmluaXNoOiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24gY2xvc2VkCiBbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNw Zy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKaW5kZXggZDAxYTg0NTdmMDEuLjE0NWRj OTVkNDMwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3Fs LXNxbGpzb24uc3Rkb3V0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5zdGRvdXQKQEAgLTM2LDUgKzM2LDcgQEAgRm91bmQganNvbj17IngiOiAxfQog Rm91bmQganNvbj1bMSwgWzEyLCB7InkiOiAxfV1dCiBGb3VuZCBqc29uPXsieCI6IDF9CiBGb3Vu ZCBqc29uPVsxMiwgeyJ5IjogMX1dCitGb3VuZCBqc29uPVt7ImIiOiAxLCAiYyI6IDJ9LCBbeyJ4 IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV1dCitGb3VuZCBqc29uPVsxLCBbMTIsIHsieSI6 IDF9XV0KIEZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dCiBGb3Vu ZCBqc29uPVt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19XQpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKaW5kZXggOTQyM2QyNWZkMGIuLjJhZjUwYjVkYTRiIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCisrKyBi L3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKQEAgLTE0Myw3ICsxNDMs MTAgQEAgRVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElPTjsKIAlwcmludGYoIkZvdW5kIGpzb249 JXNcbiIsIGpzb24pOwogCiAJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAi YyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS4q KSBJTlRPIDpqc29uOwotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29u KTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIi OiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYikuKi54KSBJTlRPIDpq c29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CiAKIAlFWEVDIFNRTCBTRUxF Q1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6MX1dfV19Jzo6anNvbmIpWydiJ11bMDpdKSBJTlRPIDpqc29uOwogCXByaW50Zigi Rm91bmQganNvbj0lc1xuIiwganNvbik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0Cmlu ZGV4IDQ1ZjRhZTdiMTVkLi5kODgzZjBlZGM2YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29u Yi5vdXQKQEAgLTYwNjQsOCArNjA2NCwxNzUgQEAgU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogIHsieSI6ICJZWVkiLCAieiI6ICJaWloifQogKDEg cm93KQogCi1TRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0g ZmFpbHMKLUVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCisvKiB3aWxkIGNhcmQg bWVtYmVyIGFjY2VzcyAqLworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiLCAiZiIs IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb WzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIs ICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6Ijog IlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJj In0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0s IFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSBy b3cpCisKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID9jb2x1bW4/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQi LCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6 ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJvdykKKworU0VMRUNU IChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4Ijog eyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5Ijog IllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5 IGZvciB0YWJsZSAidCIKK0xJTkUgMTogU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgXgorU0VMRUNUICh0LmpiKS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sx LCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAi eiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJa WloifX1dXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImMiLCAiZCIsICJm IiwgeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiou YiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGIgCistLS0KKyAKKygxIHJvdykKKwor U0VMRUNUIChqYikuYS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyB4IAorLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKi55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICB5ICAgCistLS0tLS0tCisgInl5eSIKKygxIHJvdykKKworU0VMRUNUIChqYiku YS4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICA/Y29sdW1uPyAgICAKKy0t LS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4q LnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoi fSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLngg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAg ICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9 LCB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn1dCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKS54 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAorLS0tCisgCisoMSByb3cpCisK K1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAor LS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6 IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6Ijog IlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnguKiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cp CisKK1NFTEVDVCAoamIpLioueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgeSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAiWVlZIl0KKygxIHJvdykK KworU0VMRUNUIChqYikuKi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAg ICB6ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInp6eiIsICJaWloiXQorKDEgcm93KQor CitTRUxFQ1QgKGpiKS4qLioueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAg IHkgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgIllZWSJdCisoMSByb3cpCisK K1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAg ICAgID9jb2x1bW4/ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsieXl5IiwgInp6eiIsICJZWVkiLCAiWlpaIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi4q LiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworID9jb2x1bW4/IAorLS0tLS0tLS0t LQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAo amIpLmEuKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgP2NvbHVtbj8gICAg CistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6Il0KKygxIHJvdykKKworU0VMRUNUIChq YikuYS4qWzpdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICA/Y29sdW1uPyAg ICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCitTRUxFQ1Qg KGpiKS5hLipbKl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9y dGVkCitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIqIgorTElORSAxOiBTRUxFQ1Qg KGpiKS5hLipbKl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAg ICAgICAgICAgICAgXgorU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247IC0tIG5vdCBzdXBwb3J0ZWQKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIg IioqIgorTElORSAxOiBTRUxFQ1QgKGpiKS5hLioqLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBleHBsYWlucyBzaG91bGQgd29yawog RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiB0OwogICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgIApAQCAtNjA5Myw2ICs2MjYwLDQ1IEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKICAyCiAoMSByb3cpCiAKK0VYUExBSU4gKFZFUkJPU0Us IENPU1RTIE9GRikgU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLioKKygyIHJvd3MpCisK K1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAg ICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYyIsICJkIiwgImYiLCB7InkiOiAieXl5IiwgInoi OiAienp6In1dCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNU IChqYikuYS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9k b3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLipbOl0uKgorKDIgcm93cykKKworU0VMRUNU IChqYikuYS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikg U0VMRUNUIChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Cisg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVz dF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLipbOjJdLiouYgorKDIgcm93 cykKKworU0VMRUNUIChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CisgYiAKKy0tLQorIAorKDEgcm93KQorCiAtLSB2aWV3cyBzaG91bGQgd29yawogQ1JFQVRF IFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMgU0VMRUNUIChqYikuYVszXS54Lnkg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFxzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MQpAQCAtNjEyMSw2ICs2MzI3LDE3IEBAIFNFTEVDVCAqIGZyb20gdjM7CiAgInl5eSIKICgx IHJvdykKIAorQ1JFQVRFIFZJRVcgdjQgQVMgU0VMRUNUIChqYikuYS4qWzpdLiogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2NAorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJs aWMudjQgQVMKKyBTRUxFQ1QgKGpiKS5hLipbOl0uKiBBUyAiP2NvbHVtbj8iCisgICBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHY0OworICAgID9jb2x1bW4/ICAg IAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiJdCisoMSByb3cpCisKIC0tIG1peGVk IHN5bnRheAogRFJPUCBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOwogRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKQEAgLTYzNTYsNCArNjU3Myw1IEBAIE5PVElDRTogIFsyXQogLS0gY2xlYW4g dXAKIERST1AgVklFVyB2MjsKIERST1AgVklFVyB2MzsKK0RST1AgVklFVyB2NDsKIERST1AgVEFC TEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKaW5kZXggZDNl OTFlMmVkNDUuLjQ1NzY5Yzg2MzRiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9q c29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCkBAIC0xNjMxLDEz ICsxNjMxLDQ5IEBAIFNFTEVDVCAoamIpLmFbMjpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKIFNFTEVDVCAoamIpLmFbOjJdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK IFNFTEVDVCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogU0VMRUNU ICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwotU0VMRUNUIChq YikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGZhaWxzCisKKy8qIHdpbGQg Y2FyZCBtZW1iZXIgYWNjZXNzICovCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK K1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworU0VMRUNUICh0 LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoamIpLiogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb24gdDsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAo amIpLmEuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLiou eSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b24gdDsKK1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsK K1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoKGpiKS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAo amIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54Liog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueC55IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLngueiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitT RUxFQ1QgKGpiKS4qLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1Qg KGpiKS5hLmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5h LiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qWzpdLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKlsqXS4qIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIG5vdCBzdXBwb3J0ZWQKK1NFTEVDVCAoamIpLmEu KioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCiAKIC0t IGV4cGxhaW5zIHNob3VsZCB3b3JrCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVD VCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CiBTRUxFQ1QgKHQuamIp LmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogRVhQTEFJTiAoVkVSQk9TRSwgQ09T VFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBT RUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlOIChW RVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitF WFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qWzE6XS4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAo amIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChq YikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAKIC0tIHZpZXdz IHNob3VsZCB3b3JrCiBDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUyBT RUxFQ1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwpAQCAtMTY0 OCw2ICsxNjg0LDkgQEAgU0VMRUNUICogZnJvbSB2MjsKIENSRUFURSBWSUVXIHYzIEFTIFNFTEVD VCAoamIpLmFbOjNdLngueVstMTpdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBcc3Yg djMKIFNFTEVDVCAqIGZyb20gdjM7CitDUkVBVEUgVklFVyB2NCBBUyBTRUxFQ1QgKGpiKS5hLipb Ol0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHY0CitTRUxFQ1QgKiBmcm9t IHY0OwogCiAtLSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MTsKQEAgLTE3NDksNCArMTc4OCw1IEBAICQkIExBTkdVQUdFIHBscGdzcWw7CiAtLSBjbGVh biB1cAogRFJPUCBWSUVXIHYyOwogRFJPUCBWSUVXIHYzOworRFJPUCBWSUVXIHY0OwogRFJPUCBU QUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkK Cg== --0000000000000237be063ddc34cd Content-Type: application/octet-stream; name="v15-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Disposition: attachment; filename="v15-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf3bvwqw0 RnJvbSBlYTU0YmJiZjFmNzFhY2RhNjhlMTczZTI1MjQ0ZTQ2MmIwMWYzMmMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE1IDEvN10gQWxsb3cgdHJhbnNmb3JtYXRpb24gb2Ygb25seSBhIHN1Ymxpc3Qgb2Ygc3Vic2Ny aXB0cwoKVGhpcyBpcyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGFsbG93aW5nIHN1YnNjcmlwdGlu ZyBjb250YWluZXJzIHRvCnRyYW5zZm9ybSBvbmx5IGEgcHJlZml4IG9mIGFuIGluZGlyZWN0aW9u IGxpc3QgYW5kIG1vZGlmeSB0aGUgbGlzdAppbi1wbGFjZSBieSByZW1vdmluZyB0aGUgcHJvY2Vz c2VkIGVsZW1lbnRzLiBDdXJyZW50bHksIGFsbCBlbGVtZW50cwphcmUgY29uc3VtZWQsIGFuZCB0 aGUgbGlzdCBpcyBzZXQgdG8gTklMIGFmdGVyIHRyYW5zZm9ybWF0aW9uLgoKSW4gdGhlIGZvbGxv d2luZyBjb21taXQsIHN1YnNjcmlwdGluZyBjb250YWluZXJzIHdpbGwgZ2FpbiB0aGUKZmxleGli aWxpdHkgdG8gc3RvcCB0cmFuc2Zvcm1hdGlvbiB3aGVuIGVuY291bnRlcmluZyBhbiB1bnN1cHBv cnRlZAppbmRpcmVjdGlvbiBhbmQgcmV0dXJuIHRoZSByZW1haW5pbmcgaW5kaXJlY3Rpb25zIHRv IHRoZSBjYWxsZXIuCgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53YW5n Lm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNs YW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5N0Bn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5j b20+Ci0tLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyAgICAgIHwgMTAgKysrKysrLS0t LQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgIHwgIDkgKysrKy0tLS0tCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vi cy5jIHwgIDYgKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgfCAgNiAr KysrLS0KIHNyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oICB8ICA3ICsrKysrKy0KIHNy Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICB8ICAyICstCiA4IGZpbGVzIGNoYW5nZWQs IDI4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv aHN0b3JlL2hzdG9yZV9zdWJzLmMgYi9jb250cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jCmluZGV4 IDNkMDNmNjZmYTBkLi4xYjI5NTQzYWI2NyAxMDA2NDQKLS0tIGEvY29udHJpYi9oc3RvcmUvaHN0 b3JlX3N1YnMuYworKysgYi9jb250cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jCkBAIC00MCw3ICs0 MCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkCiBoc3RvcmVfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJz Y3JpcHRpbmdSZWYgKnNic3JlZiwKLQkJCQkJCSAgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJ ICAgTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJICAgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJICAgYm9vbCBpc1NsaWNlLAogCQkJCQkJICAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC00OSwx NSArNDksMTUgQEAgaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpz YnNyZWYsCiAJTm9kZQkgICAqc3ViZXhwcjsKIAogCS8qIFdlIHN1cHBvcnQgb25seSBzaW5nbGUt c3Vic2NyaXB0LCBub24tc2xpY2UgY2FzZXMgKi8KLQlpZiAoaXNTbGljZSB8fCBsaXN0X2xlbmd0 aChpbmRpcmVjdGlvbikgIT0gMSkKKwlpZiAoaXNTbGljZSB8fCBsaXN0X2xlbmd0aCgqaW5kaXJl Y3Rpb24pICE9IDEpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImhzdG9yZSBhbGxvd3Mgb25seSBvbmUg c3Vic2NyaXB0IiksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCi0JCQkJCQkJCQll eHByTG9jYXRpb24oKE5vZGUgKikgaW5kaXJlY3Rpb24pKSkpOworCQkJCQkJCQkJZXhwckxvY2F0 aW9uKChOb2RlICopICppbmRpcmVjdGlvbikpKSk7CiAKIAkvKiBUcmFuc2Zvcm0gdGhlIHN1YnNj cmlwdCBleHByZXNzaW9uIHRvIHR5cGUgdGV4dCAqLwotCWFpID0gbGluaXRpYWxfbm9kZShBX0lu ZGljZXMsIGluZGlyZWN0aW9uKTsKKwlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRpY2VzLCAqaW5k aXJlY3Rpb24pOwogCUFzc2VydChhaS0+dWlkeCAhPSBOVUxMICYmIGFpLT5saWR4ID09IE5VTEwg JiYgIWFpLT5pc19zbGljZSk7CiAKIAlzdWJleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFp LT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKQEAgLTgxLDYgKzgxLDggQEAgaHN0b3JlX3N1 YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJLyogRGV0ZXJtaW5l IHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3YXlzIHRl eHQgKi8KIAlzYnNyZWYtPnJlZnJlc3R5cGUgPSBURVhUT0lEOwogCXNic3JlZi0+cmVmdHlwbW9k ID0gLTE7CisKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYwppbmRleCBlMTk3OWE4MGMxOS4uNmU4ZmQ0MmM2MTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYwpAQCAtNDY1LDE0ICs0NjUsMTMgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCQlBc3NlcnQoSXNBKG4sIFN0cmluZykp OwogCiAJCQkvKiBwcm9jZXNzIHN1YnNjcmlwdHMgYmVmb3JlIHRoaXMgZmllbGQgc2VsZWN0aW9u ICovCi0JCQlpZiAoc3Vic2NyaXB0cykKKwkJCXdoaWxlIChzdWJzY3JpcHRzKQogCQkJCXJlc3Vs dCA9IChOb2RlICopIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMocHN0YXRlLAogCQkJCQkJ CQkJCQkJCQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCQkJICAgZXhwclR5cGUocmVzdWx0KSwK IAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2QocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkJCSAg IHN1YnNjcmlwdHMsCisJCQkJCQkJCQkJCQkJCQkgICAmc3Vic2NyaXB0cywKIAkJCQkJCQkJCQkJ CQkJCSAgIGZhbHNlKTsKLQkJCXN1YnNjcmlwdHMgPSBOSUw7CiAKIAkJCW5ld3Jlc3VsdCA9IFBh cnNlRnVuY09yQ29sdW1uKHBzdGF0ZSwKIAkJCQkJCQkJCQkgIGxpc3RfbWFrZTEobiksCkBAIC00 ODcsMTIgKzQ4NiwxMiBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJfQogCX0KIAkvKiBwcm9jZXNzIHRyYWlsaW5nIHN1YnNj cmlwdHMsIGlmIGFueSAqLwotCWlmIChzdWJzY3JpcHRzKQorCXdoaWxlIChzdWJzY3JpcHRzKQog CQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwK IAkJCQkJCQkJCQkJCQkgICByZXN1bHQsCiAJCQkJCQkJCQkJCQkJICAgZXhwclR5cGUocmVzdWx0 KSwKIAkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJICAg c3Vic2NyaXB0cywKKwkJCQkJCQkJCQkJCQkgICAmc3Vic2NyaXB0cywKIAkJCQkJCQkJCQkJCQkg ICBmYWxzZSk7CiAKIAlyZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX25vZGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKaW5kZXgg MjAzYjdhMzIxNzguLmYwNWJhYTUwYTE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2Vfbm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKQEAgLTI0 NCw3ICsyNDQsNyBAQCB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkJCQkgTm9kZSAqY29udGFpbmVyQmFzZSwKIAkJCQkJCQkgT2lkIGNvbnRhaW5l clR5cGUsCiAJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKLQkJCQkJCQkgTGlzdCAqaW5k aXJlY3Rpb24sCisJCQkJCQkJIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCQkgYm9vbCBpc0Fz c2lnbm1lbnQpCiB7CiAJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWY7CkBAIC0yODAsNyArMjgwLDcg QEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJICog ZWxlbWVudC4gIElmIGFueSBvZiB0aGUgaXRlbXMgYXJlIHNsaWNlIHNwZWNpZmllcnMgKGxvd2Vy OnVwcGVyKSwgdGhlbgogCSAqIHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbiBtZWFucyBhIGNvbnRh aW5lciBzbGljZSBvcGVyYXRpb24uCiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQor CWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJz dF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4 IDkwNWM5NzVkODNiLi5hMDk3NzM2MjI5YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpA QCAtOTM1LDcgKzkzNSw3IEBAIHRyYW5zZm9ybUFzc2lnbm1lbnRTdWJzY3JpcHRzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgIGJhc2Vub2RlLAogCQkJCQkJCQkJCSAgY29udGFpbmVy VHlwZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cE1vZCwKLQkJCQkJCQkJCQkgIHN1YnNjcmlw dHMsCisJCQkJCQkJCQkJICAmc3Vic2NyaXB0cywKIAkJCQkJCQkJCQkgIHRydWUpOwogCiAJdHlw ZU5lZWRlZCA9IHNic3JlZi0+cmVmcmVzdHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheXN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYwpp bmRleCAyOTQwZmI4ZThkNy4uMjM0YzJjMjc4YzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheXN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJz LmMKQEAgLTU0LDcgKzU0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlTdWJXb3Jrc3BhY2UKICAq Lwogc3RhdGljIHZvaWQKIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVm ICpzYnNyZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJICBMaXN0ICoqaW5k aXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgYm9vbCBpc1Ns aWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTcxLDcgKzcxLDcgQEAgYXJyYXlf c3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKiBpbmRpcmVj dGlvbiBpdGVtcyB0byBzbGljZXMgYnkgdHJlYXRpbmcgdGhlIHNpbmdsZSBzdWJzY3JpcHQgYXMg dGhlCiAJICogdXBwZXIgYm91bmQgYW5kIHN1cHBseWluZyBhbiBhc3N1bWVkIGxvd2VyIGJvdW5k IG9mIDEuCiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQorCWZvcmVhY2goaWR4LCAq aW5kaXJlY3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNl cywgaWR4KTsKIAkJTm9kZQkgICAqc3ViZXhwcjsKQEAgLTE1Miw2ICsxNTIsOCBAQCBhcnJheV9z dWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJbGlzdF9s ZW5ndGgodXBwZXJJbmRleHByKSwgTUFYRElNKSkpOwogCS8qIFdlIG5lZWQgbm90IGNoZWNrIGxv d2VySW5kZXhwciBzZXBhcmF0ZWx5ICovCiAKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CisKIAkvKgog CSAqIERldGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRp b24uICBJdCdzIHRoZSBzYW1lCiAJICogYXMgdGhlIGFycmF5IHR5cGUgaWYgd2UncmUgc2xpY2lu ZywgZWxzZSBpdCdzIHRoZSBlbGVtZW50IHR5cGUuICBJbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jCmluZGV4IGRlNjRkNDk4NTEyLi44YWQ2YWExYWQ0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29u YnN1YnMuYwpAQCAtNDEsNyArNDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBKc29uYlN1YldvcmtzcGFj ZQogICovCiBzdGF0aWMgdm9pZAoganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRp bmdSZWYgKnNic3JlZiwKLQkJCQkJCSAgTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJCQkgIExpc3Qg KippbmRpcmVjdGlvbiwKIAkJCQkJCSAgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJICBib29s IGlzU2xpY2UsCiAJCQkJCQkgIGJvb2wgaXNBc3NpZ25tZW50KQpAQCAtNTMsNyArNTMsNyBAQCBq c29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqIFRy YW5zZm9ybSBhbmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb25zLiBKc29uYiBzdWJz Y3JpcHRpbmcKIAkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcywgbG9vayBvbmx5IGFuZCB0aGUg dXBwZXIgaW5kZXguCiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQorCWZvcmVhY2go aWR4LCAqaW5kaXJlY3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFf SW5kaWNlcywgaWR4KTsKIAkJTm9kZQkgICAqc3ViRXhwcjsKQEAgLTE1OSw2ICsxNTksOCBAQCBq c29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERl dGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFs d2F5cyBqc29uYiAqLwogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05CT0lEOwogCXNic3JlZi0+ cmVmdHlwbW9kID0gLTE7CisKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CiB9CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCBiL3NyYy9pbmNsdWRlL25vZGVz L3N1YnNjcmlwdGluZy5oCmluZGV4IDIzNGU4YWQ4MDEyLi41ZDU3NmFmMzQ2ZiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvc3Vic2NyaXB0aW5nLmgKQEAgLTcxLDYgKzcxLDExIEBAIHN0cnVjdCBTdWJzY3JpcHRFeGVj U3RlcHM7CiAgKiBkb2VzIG5vdCBjYXJlIHRvIHN1cHBvcnQgc2xpY2luZywgaXQgY2FuIGp1c3Qg dGhyb3cgYW4gZXJyb3IgaWYgaXNTbGljZS4pCiAgKiBTZWUgYXJyYXlfc3Vic2NyaXB0X3RyYW5z Zm9ybSgpIGZvciBzYW1wbGUgY29kZS4KICAqCisgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCByZWNl aXZlcyBhIHBvaW50ZXIgdG8gYSBsaXN0IG9mIHJhdyBpbmRpcmVjdGlvbnMuCisgKiBUaGlzIGFs bG93cyB0aGUgbWV0aG9kIHRvIHBhcnNlIGEgc3VibGlzdCBvZiB0aGUgaW5kaXJlY3Rpb25zICh0 eXBpY2FsbHkKKyAqIHRoZSBwcmVmaXgpIGFuZCBtb2RpZnkgdGhlIG9yaWdpbmFsIGxpc3QgaW4g cGxhY2UsIGVuYWJsaW5nIHRoZSBjYWxsZXIgdG8KKyAqIGVpdGhlciBwcm9jZXNzIHRoZSByZW1h aW5pbmcgaW5kaXJlY3Rpb25zIGRpZmZlcmVudGx5IG9yIHJhaXNlIGFuIGVycm9yLgorICoKICAq IFRoZSB0cmFuc2Zvcm0gbWV0aG9kIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGlkZW50aWZ5aW5n IHRoZSByZXN1bHQgdHlwZQogICogb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb24uICBBdCBj YWxsLCByZWZjb250YWluZXJ0eXBlIGFuZCByZWZ0eXBtb2QKICAqIGRlc2NyaWJlIHRoZSBjb250 YWluZXIgdHlwZSAodGhpcyB3aWxsIGJlIGEgYmFzZSB0eXBlIG5vdCBhIGRvbWFpbiksIGFuZApA QCAtOTMsNyArOTgsNyBAQCBzdHJ1Y3QgU3Vic2NyaXB0RXhlY1N0ZXBzOwogICogYXNzaWdubWVu dCBtdXN0IHJldHVybi4KICAqLwogdHlwZWRlZiB2b2lkICgqU3Vic2NyaXB0VHJhbnNmb3JtKSAo U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCi0JCQkJCQkJCQlMaXN0ICppbmRpcmVjdGlvbiwKKwkJ CQkJCQkJCUxpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCQkJCXN0cnVjdCBQYXJzZVN0YXRlICpw c3RhdGUsCiAJCQkJCQkJCQlib29sIGlzU2xpY2UsCiAJCQkJCQkJCQlib29sIGlzQXNzaWdubWVu dCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCBmN2QwN2M4NDU0Mi4uNThhNGI5ZGYxNTcg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtMzYxLDcgKzM2MSw3IEBAIGV4dGVybiBTdWJz Y3JpcHRpbmdSZWYgKnRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCQkJCQkJCQkJCSBOb2RlICpjb250YWluZXJCYXNlLAogCQkJCQkJCQkJCQkJCSBP aWQgY29udGFpbmVyVHlwZSwKIAkJCQkJCQkJCQkJCQkgaW50MzIgY29udGFpbmVyVHlwTW9kLAot CQkJCQkJCQkJCQkJCSBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCQkJCQkJCQkgTGlzdCAqKmlu ZGlyZWN0aW9uLAogCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCk7CiBleHRlcm4gQ29u c3QgKm1ha2VfY29uc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0NvbnN0ICphY29uc3QpOwogCi0t IAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000000237be063ddc34cd Content-Type: application/octet-stream; name="v15-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v15-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf3bvwr64 RnJvbSA0OTM1ZjBlYTY2OWM1NDQ5NDFhZDVmOGUzNTM1NDlhYTQ5MjNmZDk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgNC83XSBFeHRyYWN0IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQoKQoKVGhpcyBp cyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGEgZnV0dXJlIGNvbW1pdCB0aGF0IHdpbGwgcmV1c2Ug dGhlCmFmb3JlbWVudGlvbmVkIGZ1bmN0aW9uLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBHbHVr aG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEgV2Fu ZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5z dGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRhcmEg PG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGppYW4udW5p dmVyc2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJz LmMgfCAxMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NjUgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jCmluZGV4IGEwZDM4YTBmZDgwLi5mOTQ0ZDE1NDRjYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29u YnN1YnMuYwpAQCAtMzIsNiArMzIsNjkgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3Bh Y2UKIAlEYXR1bQkgICAqaW5kZXg7CQkJLyogU3Vic2NyaXB0IHZhbHVlcyBpbiBEYXR1bSBmb3Jt YXQgKi8KIH0gSnNvbmJTdWJXb3Jrc3BhY2U7CiAKK3N0YXRpYyBOb2RlICoKK2NvZXJjZV9qc29u cGF0aF9zdWJzY3JpcHRfdG9faW50NF9vcl90ZXh0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq c3ViRXhwcikKK3sKKwlPaWQJCQlzdWJFeHByVHlwZSA9IGV4cHJUeXBlKHN1YkV4cHIpOworCU9p ZAkJCXRhcmdldFR5cGUgPSBJbnZhbGlkT2lkOworCisJaWYgKHN1YkV4cHJUeXBlICE9IFVOS05P V05PSUQpCisJeworCQlPaWQJCQl0YXJnZXRzWzJdID0ge0lOVDRPSUQsIFRFWFRPSUR9OworCisJ CS8qCisJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3Vic2NyaXB0IHR5cGVzLCBidXQg Y2FzZXMgd2hlbiBhCisJCSAqIHN1YnNjcmlwdCBjb3VsZCBiZSBjb2VyY2VkIHRvIG11bHRpcGxl IHRhcmdldCB0eXBlcyBtdXN0IGJlCisJCSAqIGF2b2lkZWQsIHNpbWlsYXIgdG8gb3ZlcmxvYWRl ZCBmdW5jdGlvbnMuIEl0IGNvdWxkIGJlIHBvc3NpYmx5CisJCSAqIGV4dGVuZCB3aXRoIGpzb25w YXRoIGluIHRoZSBmdXR1cmUuCisJCSAqLworCQlmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykK KwkJeworCQkJaWYgKGNhbl9jb2VyY2VfdHlwZSgxLCAmc3ViRXhwclR5cGUsICZ0YXJnZXRzW2ld LCBDT0VSQ0lPTl9JTVBMSUNJVCkpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBPbmUgdHlwZSBoYXMg YWxyZWFkeSBzdWNjZWVkZWQsIGl0IG1lYW5zIHRoZXJlIGFyZSB0d28KKwkJCQkgKiBjb2VyY2lv biB0YXJnZXRzIHBvc3NpYmxlLCBmYWlsdXJlLgorCQkJCSAqLworCQkJCWlmIChPaWRJc1ZhbGlk KHRhcmdldFR5cGUpKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNP REVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkJCSBlcnJtc2coInN1YnNjcmlwdCB0eXBlICVz IGlzIG5vdCBzdXBwb3J0ZWQiLCBmb3JtYXRfdHlwZV9iZShzdWJFeHByVHlwZSkpLAorCQkJCQkJ CSBlcnJoaW50KCJqc29uYiBzdWJzY3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUg dHlwZSwgaW50ZWdlciBvciB0ZXh0LiIpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisKKwkJCQl0YXJnZXRUeXBlID0gdGFyZ2V0 c1tpXTsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUgZm91 bmQsIGZhaWx1cmUuCisJCSAqLworCQlpZiAoIU9pZElzVmFsaWQodGFyZ2V0VHlwZSkpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwK KwkJCQkJIGVycm1zZygic3Vic2NyaXB0IHR5cGUgJXMgaXMgbm90IHN1cHBvcnRlZCIsIGZvcm1h dF90eXBlX2JlKHN1YkV4cHJUeXBlKSksCisJCQkJCSBlcnJoaW50KCJqc29uYiBzdWJzY3JpcHQg bXVzdCBiZSBjb2VyY2libGUgdG8gZWl0aGVyIGludGVnZXIgb3IgdGV4dC4iKSwKKwkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKwl9CisJ ZWxzZQorCQl0YXJnZXRUeXBlID0gVEVYVE9JRDsKKworCS8qCisJICogV2Uga25vd24gZnJvbSBj YW5fY29lcmNlX3R5cGUgdGhhdCBjb2VyY2lvbiB3aWxsIHN1Y2NlZWQsIHNvCisJICogY29lcmNl X3R5cGUgY291bGQgYmUgdXNlZC4gTm90ZSB0aGUgaW1wbGljaXQgY29lcmNpb24gY29udGV4dCwg d2hpY2ggaXMKKwkgKiByZXF1aXJlZCB0byBoYW5kbGUgc3Vic2NyaXB0cyBvZiBkaWZmZXJlbnQg dHlwZXMsIHNpbWlsYXIgdG8gb3ZlcmxvYWRlZAorCSAqIGZ1bmN0aW9ucy4KKwkgKi8KKwlzdWJF eHByID0gY29lcmNlX3R5cGUocHN0YXRlLAorCQkJCQkJICBzdWJFeHByLCBzdWJFeHByVHlwZSwK KwkJCQkJCSAgdGFyZ2V0VHlwZSwgLTEsCisJCQkJCQkgIENPRVJDSU9OX0lNUExJQ0lULAorCQkJ CQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwKKwkJCQkJCSAgLTEpOworCisJcmV0dXJuIHN1YkV4 cHI7Cit9CiAKIC8qCiAgKiBGaW5pc2ggcGFyc2UgYW5hbHlzaXMgb2YgYSBTdWJzY3JpcHRpbmdS ZWYgZXhwcmVzc2lvbiBmb3IgYSBqc29uYi4KQEAgLTUxLDcgKzExNCw3IEBAIGpzb25iX3N1YnNj cmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAKIAkvKgogCSAqIFRyYW5z Zm9ybSBhbmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb25zLiBKc29uYiBzdWJzY3Jp cHRpbmcKLQkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcywgbG9vayBvbmx5IGFuZCB0aGUgdXBw ZXIgaW5kZXguCisJICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhdCB0aGUg dXBwZXIgaW5kZXguCiAJICovCiAJZm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7CkBAIC03 NSw3MSArMTM4LDggQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYg KnNic3JlZiwKIAogCQlpZiAoYWktPnVpZHgpCiAJCXsKLQkJCU9pZAkJCXN1YkV4cHJUeXBlID0g SW52YWxpZE9pZCwKLQkJCQkJCXRhcmdldFR5cGUgPSBVTktOT1dOT0lEOwotCiAJCQlzdWJFeHBy ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsK LQkJCXN1YkV4cHJUeXBlID0gZXhwclR5cGUoc3ViRXhwcik7Ci0KLQkJCWlmIChzdWJFeHByVHlw ZSAhPSBVTktOT1dOT0lEKQotCQkJewotCQkJCU9pZAkJCXRhcmdldHNbMl0gPSB7SU5UNE9JRCwg VEVYVE9JRH07Ci0KLQkJCQkvKgotCQkJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3Vi c2NyaXB0IHR5cGVzLCBidXQgY2FzZXMgd2hlbiBhCi0JCQkJICogc3Vic2NyaXB0IGNvdWxkIGJl IGNvZXJjZWQgdG8gbXVsdGlwbGUgdGFyZ2V0IHR5cGVzIG11c3QgYmUKLQkJCQkgKiBhdm9pZGVk LCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBiZQotCQkJCSAqIHBv c3NpYmx5IGV4dGVuZCB3aXRoIGpzb25wYXRoIGluIHRoZSBmdXR1cmUuCi0JCQkJICovCi0JCQkJ Zm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspCi0JCQkJewotCQkJCQlpZiAoY2FuX2NvZXJjZV90 eXBlKDEsICZzdWJFeHByVHlwZSwgJnRhcmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkKLQkJ CQkJewotCQkJCQkJLyoKLQkJCQkJCSAqIE9uZSB0eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRlZCwg aXQgbWVhbnMgdGhlcmUgYXJlCi0JCQkJCQkgKiB0d28gY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJs ZSwgZmFpbHVyZS4KLQkJCQkJCSAqLwotCQkJCQkJaWYgKHRhcmdldFR5cGUgIT0gVU5LTk9XTk9J RCkKLQkJCQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRB VFlQRV9NSVNNQVRDSCksCi0JCQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBu b3Qgc3VwcG9ydGVkIiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkJCSBl cnJoaW50KCJqc29uYiBzdWJzY3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlw ZSwgaW50ZWdlciBvciB0ZXh0LiIpLAotCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKLQotCQkJCQkJdGFyZ2V0VHlwZSA9IHRhcmdl dHNbaV07Ci0JCQkJCX0KLQkJCQl9Ci0KLQkJCQkvKgotCQkJCSAqIE5vIHN1aXRhYmxlIHR5cGVz IHdlcmUgZm91bmQsIGZhaWx1cmUuCi0JCQkJICovCi0JCQkJaWYgKHRhcmdldFR5cGUgPT0gVU5L Tk9XTk9JRCkKLQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFUWVBFX01JU01BVENIKSwKLQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBu b3Qgc3VwcG9ydGVkIiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkgZXJy aGludCgianNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRlZ2Vy IG9yIHRleHQuIiksCi0JCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2Nh dGlvbihzdWJFeHByKSkpKTsKLQkJCX0KLQkJCWVsc2UKLQkJCQl0YXJnZXRUeXBlID0gVEVYVE9J RDsKLQotCQkJLyoKLQkJCSAqIFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQgY29l cmNpb24gd2lsbCBzdWNjZWVkLCBzbwotCQkJICogY29lcmNlX3R5cGUgY291bGQgYmUgdXNlZC4g Tm90ZSB0aGUgaW1wbGljaXQgY29lcmNpb24gY29udGV4dCwKLQkJCSAqIHdoaWNoIGlzIHJlcXVp cmVkIHRvIGhhbmRsZSBzdWJzY3JpcHRzIG9mIGRpZmZlcmVudCB0eXBlcywKLQkJCSAqIHNpbWls YXIgdG8gb3ZlcmxvYWRlZCBmdW5jdGlvbnMuCi0JCQkgKi8KLQkJCXN1YkV4cHIgPSBjb2VyY2Vf dHlwZShwc3RhdGUsCi0JCQkJCQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCi0JCQkJCQkJCSAg dGFyZ2V0VHlwZSwgLTEsCi0JCQkJCQkJCSAgQ09FUkNJT05fSU1QTElDSVQsCi0JCQkJCQkJCSAg Q09FUkNFX0lNUExJQ0lUX0NBU1QsCi0JCQkJCQkJCSAgLTEpOwotCQkJaWYgKHN1YkV4cHIgPT0g TlVMTCkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCi0JCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgbXVzdCBoYXZlIHRl eHQgdHlwZSIpLAotCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlv bihzdWJFeHByKSkpKTsKKwkJCXN1YkV4cHIgPSBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0X3Rv X2ludDRfb3JfdGV4dChwc3RhdGUsIHN1YkV4cHIpOwogCQl9CiAJCWVsc2UKIAkJewotLSAKMi4z OS41IChBcHBsZSBHaXQtMTU0KQoK --0000000000000237be063ddc34cd Content-Type: application/octet-stream; name="v15-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Disposition: attachment; filename="v15-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf3bvwr32 RnJvbSA4MTFjMjg4MzkyZjExOTNkOGZmMzgzMTU4NzlhNTkwOTBjNGU0ZGE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgNi83XSBJbXBsZW1lbnQgSnNvbmIgc3Vic2NyaXB0aW5nIHdpdGggc2xpY2luZwoK UHJldmlvdXNseSwgc2xpY2luZyB3YXMgbm90IHN1cHBvcnRlZCBmb3IganNvbmIgc3Vic2NyaXB0 aW5nLiBUaGlzIGNvbW1pdAppbXBsZW1lbnRzIHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcgYXMg cGFydCBvZiB0aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yCnN5bnRheCBzcGVjaWZpZWQgaW4g U1FMOjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdt YWlsLmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5v c3NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFu ZS5uZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2Vk Yi5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmll d2VkLWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog UGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBDaGFv IExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpUZXN0ZWQtYnk6IE1hcmsgRGlsZ2VyIDxtYXJr LmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpUZXN0ZWQtYnk6IEppYW4gSGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMg ICAgICAgICAgICAgfCAgNDUgKysrKy0tCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxq c29uLmMgICAgICAgICAgfCAgMTYgKy0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpz b24uc3RkZXJyICAgICB8ICAyNiArKy0tCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxq c29uLnN0ZG91dCAgICAgfCAgIDMgKwogc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxq c29uLnBnYyAgICAgIHwgICA3ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91 dCAgICAgICAgICAgfCAxNDUgKysrKysrKysrKysrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9qc29uYi5zcWwgICAgICAgICAgICAgICAgfCAgNTMgKysrKysrLQogNyBmaWxlcyBjaGFuZ2Vk LCAyNTAgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25i c3Vicy5jCmluZGV4IDQ4NWFkOTY3YWJhLi4zNjlmNDBlYzA0NCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9q c29uYnN1YnMuYwpAQCAtMjA3LDkgKzIwNywxMCBAQCBtYWtlX2pzb25wYXRoX2l0ZW1faW50KGlu dDMyIHZhbCwgTGlzdCAqKmV4cHJzKQogICogLSBwc3RhdGU6IHBhcnNlIHN0YXRlIGNvbnRleHQK ICAqIC0gZXhwcjogaW5wdXQgZXhwcmVzc2lvbiBub2RlCiAgKiAtIGV4cHJzOiBsaXN0IG9mIGV4 cHJlc3Npb24gbm9kZXMgKHVwZGF0ZWQgaW4gcGxhY2UpCisgKiAtIG5vX2Vycm9yOiByZXR1cm5z IE5VTEwgd2hlbiB0aGUgZGF0YSB0eXBlIGRvZXNuJ3QgbWF0Y2guIE90aGVyd2lzZSwgZW1pdHMg YW4gRVJST1IuCiAgKi8KIHN0YXRpYyBKc29uUGF0aFBhcnNlSXRlbSAqCi1tYWtlX2pzb25wYXRo X2l0ZW1fZXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIExpc3QgKipleHBycykK K21ha2VfanNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwg TGlzdCAqKmV4cHJzLCBib29sIG5vX2Vycm9yKQogewogCUNvbnN0CSAgICpjbnN0OwogCkBAIC0y MjIsNyArMjIzLDE0IEBAIG1ha2VfanNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqZXhwciwgTGlzdCAqKmV4cHJzKQogCQkJcmV0dXJuIG1ha2VfanNvbnBhdGhfaXRl bV9pbnQoRGF0dW1HZXRJbnQzMihjbnN0LT5jb25zdHZhbHVlKSwgZXhwcnMpOwogCX0KIAotCXJl dHVybiBOVUxMOworCWlmIChub19lcnJvcikKKwkJcmV0dXJuIE5VTEw7CisJZWxzZQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJ ZXJybXNnKCJvbmx5IG5vbi1udWxsIGludGVnZXIgY29uc3RhbnRzIGFyZSBzdXBwb3J0ZWQgZm9y IGpzb25iIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3Vic2NyaXB0aW5nIiksCisJCQkJZXJyaGludCgi dXNlIGludCBkYXRhIHR5cGUgZm9yIHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcuIiksCisJCQkJ cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSk7CiB9CiAKIC8q CkBAIC0yODUsMTMgKzI5MywxMiBAQCBqc29uYl9zdWJzY3JpcHRfbWFrZV9qc29ucGF0aChQYXJz ZVN0YXRlICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwgU3Vic2NyaXB0aQogCQllbHNlIGlm IChJc0EoYWNjZXNzb3IsIEFfSW5kaWNlcykpCiAJCXsKIAkJCUFfSW5kaWNlcyAgKmFpID0gY2Fz dE5vZGUoQV9JbmRpY2VzLCBhY2Nlc3Nvcik7CisJCQlKc29uUGF0aFBhcnNlSXRlbSAqanBpX2Zy b20gPSBOVUxMOwogCiAJCQlpZiAoIWFpLT5pc19zbGljZSkKIAkJCXsKLQkJCQlKc29uUGF0aFBh cnNlSXRlbSAqanBpX2Zyb20gPSBOVUxMOwotCiAJCQkJQXNzZXJ0KGFpLT51aWR4ICYmICFhaS0+ bGlkeCk7Ci0JCQkJanBpX2Zyb20gPSBtYWtlX2pzb25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFp LT51aWR4LCAmc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpOworCQkJCWpwaV9mcm9tID0gbWFrZV9q c29ucGF0aF9pdGVtX2V4cHIocHN0YXRlLCBhaS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRl eHByLCB0cnVlKTsKIAkJCQlpZiAoanBpX2Zyb20gPT0gTlVMTCkKIAkJCQl7CiAJCQkJCS8qCkBA IC0zMTgsMjIgKzMyNSwzNCBAQCBqc29uYl9zdWJzY3JpcHRfbWFrZV9qc29ucGF0aChQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwgU3Vic2NyaXB0aQogCQkJCQkgKi8KIAkJ CQkJYnJlYWs7CiAJCQkJfQorCQkJfQogCi0JCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpw aUluZGV4QXJyYXkpOwotCQkJCWpwaS0+dmFsdWUuYXJyYXkubmVsZW1zID0gMTsKLQkJCQlqcGkt PnZhbHVlLmFycmF5LmVsZW1zID0gcGFsbG9jKHNpemVvZihqcGktPnZhbHVlLmFycmF5LmVsZW1z WzBdKSk7CisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpSW5kZXhBcnJheSk7CisJCQlq cGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7CisJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zID0g cGFsbG9jKHNpemVvZihqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdKSk7CiAKKwkJCWlmICghYWkt PmlzX3NsaWNlKQorCQkJewogCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0uZnJvbSA9IGpw aV9mcm9tOwogCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8gPSBOVUxMOwogCQkJfQog CQkJZWxzZQogCQkJewotCQkJCU5vZGUJICAgKmV4cHIgPSBhaS0+dWlkeCA/IGFpLT51aWR4IDog YWktPmxpZHg7CisJCQkJd2hpbGUgKGxpc3RfbGVuZ3RoKHNic3JlZi0+cmVmbG93ZXJpbmRleHBy KSA8IGxpc3RfbGVuZ3RoKHNic3JlZi0+cmVmdXBwZXJpbmRleHByKSkKKwkJCQkJc2JzcmVmLT5y ZWZsb3dlcmluZGV4cHIgPSBsYXBwZW5kKHNic3JlZi0+cmVmbG93ZXJpbmRleHByLCBOVUxMKTsK KworCQkJCWlmIChhaS0+bGlkeCkKKwkJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXS5mcm9t ID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0YXRlLCBhaS0+bGlkeCwgJnNic3JlZi0+cmVm bG93ZXJpbmRleHByLCBmYWxzZSk7CisJCQkJZWxzZQorCQkJCQlqcGktPnZhbHVlLmFycmF5LmVs ZW1zWzBdLmZyb20gPSBtYWtlX2pzb25wYXRoX2l0ZW1faW50KDAsICZzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwcik7CiAKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMiKSwKLQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBl eHByTG9jYXRpb24oZXhwcikpKSk7CisJCQkJaWYgKGFpLT51aWR4KQorCQkJCQlqcGktPnZhbHVl LmFycmF5LmVsZW1zWzBdLnRvID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0YXRlLCBhaS0+ dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByLCBmYWxzZSk7CisJCQkJZWxzZQorCQkJCXsK KwkJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IG1ha2VfanNvbnBhdGhfaXRlbShq cGlMYXN0KTsKKwkJCQkJc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIgPSBsYXBwZW5kKHNic3JlZi0+ cmVmdXBwZXJpbmRleHByLCBOVUxMKTsKKwkJCQl9CiAJCQl9CiAJCX0KIAkJZWxzZQpkaWZmIC0t Z2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgYi9z cmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwppbmRleCBlNmE3 ZWNlNmRhYi4uOTM1YjQ3YTNiOWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5jCkBAIC01MDUsNyArNTA1LDcgQEAgaWYgKHNxbGNhLnNxbGNv ZGUgPCAwKSBzcWxwcmludCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9 CiAjbGluZSAxNDIgInNxbGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpz b249JXNcbiIsIGpzb24pOwogCiAJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVD UEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjog Mn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpz b25iICkgLiAqICkiLCBFQ1BHdF9FT0lULCAKIAlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0 LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCkBAIC01MjUsMTQgKzUyNSwyNCBAQCBpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBz cWxwcmludCgpO30KICNsaW5lIDE0OCAic3FsanNvbi5wZ2MiCiAKLQkvLyBlcnJvcgorCXByaW50 ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CiAKLSAgeyBFQ1BHZGlzY29ubmVjdChfX0xJTkVf XywgIkNVUlJFTlQiKTsKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0 X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwg XCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIg KSAuIGIgWyA6IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEw MjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5V TEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKICNsaW5lIDE1MSAic3FsanNvbi5wZ2MiCiAK IGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAjbGluZSAxNTEgInNxbGpzb24u cGdjIgogCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworICB7IEVDUEdkaXNj b25uZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworI2xpbmUgMTU0ICJzcWxqc29uLnBnYyIKKwor aWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDE1NCAic3FsanNvbi5w Z2MiCisKIAogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rl c3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCmluZGV4IDE5ZjhjNThhZjA2Li5mM2Y4OTlj NmQ4NyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1z cWxqc29uLnN0ZGVycgorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3Fs LXNxbGpzb24uc3RkZXJyCkBAIC0zMzksMTMgKzMzOSwxMCBAQCBTUUwgZXJyb3I6IHNjaGVtYSAi anNvbmIiIGRvZXMgbm90IGV4aXN0IG9uIGxpbmUgMTIxCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0MjogdXNp bmcgUFFleGVjCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJ RF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAxNDI6IGJhZCByZXNwb25zZSAtIEVSUk9S OiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCi1MSU5FIDE6IC4uLiwg eyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyAxIF0gLiB4IFsgMCA6IF0g KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTQyOiBj b3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE0Mjog UkVTVUxUOiBbMTIsIHsieSI6IDF9XSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCi1bTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSA0 MjgwNCAoc3FsY29kZSAtNDAwKToganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xp Y2VzIG9uIGxpbmUgMTQyCi1bTk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiA0Mjgw NAotU1FMIGVycm9yOiBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMgb24g bGluZSAxNDIKIFtOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDU6IHF1ZXJ5OiBzZWxl Y3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApOyB3aXRoIDAgcGFyYW1ldGVyKHMp IG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKIFtOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDU6IHVzaW5n IFBRZXhlYwpAQCAtMzYxLDEyICszNTgsMTcgQEAgU1FMIGVycm9yOiByb3cgZXhwYW5zaW9uIHZp YSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1CiBbTk9fUElEXTogc3FsY2E6 IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0 ODogdXNpbmcgUFFleGVjCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAot W05PX1BJRF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAxNDg6IGJhZCByZXNwb25zZSAt IEVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCi1MSU5FIDE6 IC4uLngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSBbICdiJyBdIFsg MCA6IF0gKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUg MTQ4OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5l IDE0ODogUkVTVUxUOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAt MTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE1MTogcXVlcnk6IHNlbGVjdCBqc29uICggKCAn eyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5Ijox fV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29u bmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE1MTogdXNpbmcgUFFleGVj CitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdf cHJvY2Vzc19vdXRwdXQgb24gbGluZSAxNTE6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAx IGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURd OiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTUxOiBSRVNVTFQ6IFt7IngiOiAxfSwgeyJ4IjogWzEy LCB7InkiOiAxfV19XSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCi1bTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSA0MjgwNCAoc3Fs Y29kZSAtNDAwKToganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxp bmUgMTQ4Ci1bTk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiA0MjgwNAotU1FMIGVy cm9yOiBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMgb24gbGluZSAxNDgK IFtOT19QSURdOiBlY3BnX2ZpbmlzaDogY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uIGNsb3Nl ZAogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CmluZGV4IDQ0 MmQzNjkzMWYxLi5kMDFhODQ1N2YwMSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90 ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3Bn L3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CkBAIC0zNSwzICszNSw2IEBAIEZvdW5k IGpzb249bnVsbAogRm91bmQganNvbj17IngiOiAxfQogRm91bmQganNvbj1bMSwgWzEyLCB7Inki OiAxfV1dCiBGb3VuZCBqc29uPXsieCI6IDF9CitGb3VuZCBqc29uPVsxMiwgeyJ5IjogMX1dCitG b3VuZCBqc29uPVt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19XQorRm91bmQganNvbj1b eyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qv c3FsL3NxbGpzb24ucGdjCmluZGV4IDU3YTliZmY0MjRkLi45NDIzZDI1ZmQwYiAxMDA2NDQKLS0t IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYworKysgYi9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xNDAsMTMgKzE0MCwxNiBAQCBF WEVDIFNRTCBFTkQgREVDTEFSRSBTRUNUSU9OOwogCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwg anNvbik7CiAKIAlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0s ICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmJbMV0ueFsw Ol0pIElOVE8gOmpzb247Ci0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpz b24pOwogCiAJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAi YiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS4qKSBJTlRPIDpq c29uOwogCS8vIGVycm9yCiAKIAlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEs ICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIp WydiJ11bMDpdKSBJTlRPIDpqc29uOwotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVz XG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMi OiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYikuYls6 XSkgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCiAgIEVY RUMgU1FMIERJU0NPTk5FQ1Q7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvanNvbmIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKaW5kZXgg ZDU5NmU3MTIzNzIuLjQ1ZjRhZTdiMTVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2pzb25iLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91 dApAQCAtNTI0NywyMyArNTI0NywzNCBAQCBzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsi YWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYgogKDEgcm93 KQogCiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsgLS0gZmFpbHMKLUVSUk9S OiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCitFUlJPUjogIG9ubHkg bm9uLW51bGwgaW50ZWdlciBjb25zdGFudHMgYXJlIHN1cHBvcnRlZCBmb3IganNvbmIgc2ltcGxp ZmllZCBhY2Nlc3NvciBzdWJzY3JpcHRpbmcKIExJTkUgMTogc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYilbJ2EnOidiJ107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICB1c2UgaW50IGRh dGEgdHlwZSBmb3Igc3Vic2NyaXB0aW5nIHdpdGggc2xpY2luZy4KIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzE6Ml07Ci1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBz dXBwb3J0IHNsaWNlcwotTElORSAxOiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsx OjJdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICBq c29uYiAgICAKKy0tLS0tLS0tLS0tLS0KKyBbIjIiLCBudWxsXQorKDEgcm93KQorCiBzZWxlY3Qg KCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVs6Ml07Ci1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBk b2VzIG5vdCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6 Ompzb25iKVs6Ml07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CisgICAgIGpzb25iICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWzEsICIyIiwgbnVsbF0KKygx IHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMTpdOwotRVJST1I6ICBq c29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbMTpdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisgWyIyIiwgbnVs bF0KKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOl07Ci1FUlJP UjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworICAgICBqc29uYiAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAiMiIsIG51bGxdCisoMSByb3cpCisKIGNyZWF0 ZSBURU1QIFRBQkxFIHRlc3RfanNvbmJfc3Vic2NyaXB0ICgKICAgICAgICBpZCBpbnQsCiAgICAg ICAgdGVzdF9qc29uIGpzb25iCkBAIC02MDE3LDggKzYwMjgsNDIgQEAgU0VMRUNUIChqYikuYS5i LmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKICAKICgxIHJvdykKIAotU0VMRUNUICgo amIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OyAtLSBmYWlscwotRVJS T1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgIHgg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsieSI6ICJZWVkiLCAi eiI6ICJaWloifQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hWzI6M10uYiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJd CisoMSByb3cpCisKK1NFTEVDVCAoamIpLmFbMjpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQor CitTRUxFQ1QgKGpiKS5hWzoyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgIGIg IAorLS0tLS0KKyAiYyIKKygxIHJvdykKKworU0VMRUNUIChqYikuYVs6XS5iIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0tLS0tLQorIFsiYyIsICJk Il0KKygxIHJvdykKKworU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiB0OworICAgICAgICAgICAgeCAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9CisoMSByb3cpCisKIFNFTEVDVCAo amIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWlscwogRVJST1I6ICB0 eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKIC0tIGV4cGxhaW5zIHNob3VsZCB3b3JrCkBAIC02 MDU0LDYgKzYwOTksMjggQEAgQ1JFQVRFIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEg QVMgU0VMRUNUIChqYikuYVszXS54LnkgRlJPTSB0ZXN0X2pzb25iX2QKIENSRUFURSBPUiBSRVBM QUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCiAgU0VMRUNUIChq YikuYVszXS54LnkgQVMgeQogICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorQ1JFQVRF IFZJRVcgdjIgQVMgU0VMRUNUIChqYikuYVszOl0ueC55WzotMV0gRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1xzdiB2MgorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudjIgQVMK KyBTRUxFQ1QgKGpiKS5hWzM6XS54LnlbMDonLTEnOjppbnRlZ2VyXSBBUyB5CisgICBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHYyOworIHkgCistLS0KKyAKKygx IHJvdykKKworQ1JFQVRFIFZJRVcgdjMgQVMgU0VMRUNUIChqYikuYVs6M10ueC55Wy0xOl0gRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2MworQ1JFQVRFIE9SIFJFUExBQ0UgVklF VyBwdWJsaWMudjMgQVMKKyBTRUxFQ1QgKGpiKS5hWzA6M10ueC55WyctMSc6OmludGVnZXI6XSBB UyB5CisgICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHYzOwor ICAgeSAgIAorLS0tLS0tLQorICJ5eXkiCisoMSByb3cpCisKIC0tIG1peGVkIHN5bnRheAogRFJP UCBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOwogRVhQTEFJTiAoVkVSQk9TRSwgQ09T VFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK QEAgLTYyMzgsNSArNjMwNSw1NSBAQCBTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uX3YxOwogKDEgcm93KQogCiBEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0 aW9uX3YxOworLS0ganNvbmIgYXJyYXkgYWNjZXNzIGluIHBscGdzcWwKK0RPICQkCisgICAgREVD TEFSRQorICAgICAgICBhIGpzb25iIDo9ICdbMSwyLDMsNCw1LDYsN10nOjpqc29uYjsKKyAgICBC RUdJTgorICAgICAgICBXSElMRSBhIElTIE5PVCBOVUxMCisgICAgICAgICAgICBMT09QCisgICAg ICAgICAgICAgICAgUkFJU0UgTk9USUNFICclJywgYTsKKyAgICAgICAgICAgICAgICBhIDo9IGFb MjpdOworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBMQU5HVUFHRSBwbHBnc3Fs OworTk9USUNFOiAgWzEsIDIsIDMsIDQsIDUsIDYsIDddCitOT1RJQ0U6ICBbMywgNCwgNSwgNiwg N10KK05PVElDRTogIFs1LCA2LCA3XQorTk9USUNFOiAgNworLS0ganNvbmIgZG90IGFjY2VzcyBp biBwbHBnc3FsCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6PSAneyIiOiA2 LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04XX0n Ojpqc29uYjsKKyAgICBCRUdJTgorICAgICAgICBXSElMRSBhIElTIE5PVCBOVUxMCisgICAgICAg ICAgICBMT09QCisgICAgICAgICAgICAgICAgUkFJU0UgTk9USUNFICclJywgYTsKKyAgICAgICAg ICAgICAgICBhIDo9IENPQUxFU0NFKGEuIk5VIiwgYVsyXSk7IC0tIGZhaWxzCisgICAgICAgICAg ICBFTkQgTE9PUDsKKyAgICBFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CitOT1RJQ0U6ICB7IiI6 IDYsICJOVSI6IFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2kiXSwgImFhZiI6IFstNiwgLThd fQorRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAiYSIKK0xJTkUg MTogYSA6PSBDT0FMRVNDRShhLiJOVSIsIGFbMl0pCisgICAgICAgICAgICAgICAgICAgICAgXgor UVVFUlk6ICBhIDo9IENPQUxFU0NFKGEuIk5VIiwgYVsyXSkKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBm dW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDggYXQgYXNzaWdubWVudAorRE8gJCQKKyAg ICBERUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19 LCBbNl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4K KyAgICAgICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAg ICAgICAgIFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVND RSgoYSkuIk5VIiwgYVsyXSk7IC0tIHN1Y2NlZWRzCisgICAgICAgICAgICBFTkQgTE9PUDsKKyAg ICBFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CitOT1RJQ0U6ICB7IiI6IDYsICJOVSI6IFt7IiI6 IFtbM11dfSwgWzZdLCBbMl0sICJiQ2kiXSwgImFhZiI6IFstNiwgLThdfQorTk9USUNFOiAgW3si IjogW1szXV19LCBbNl0sIFsyXSwgImJDaSJdCitOT1RJQ0U6ICBbMl0KIC0tIGNsZWFuIHVwCitE Uk9QIFZJRVcgdjI7CitEUk9QIFZJRVcgdjM7CiBEUk9QIFRBQkxFIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCmluZGV4IDU5MDdjYWQ2OWZkLi5kM2U5MWUyZWQ0 NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbApAQCAtMTYyNSw3ICsxNjI1LDEyIEBAIFNFTEVDVCAo amIpLmFbMl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogU0VMRUNUIChqYikuYS54 LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAoamIpLmIueC56IEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBTRUxFQ1QgKGpiKS5hLmIuYyBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOwotU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbiB0OyAtLSBmYWlscworU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiB0OworU0VMRUNUIChqYikuYVsyOjNdLmIgRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmFbMjpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKK1NFTEVDVCAoamIpLmFbOjJdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK1NFTEVDVCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VM RUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogU0VMRUNU IChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGZhaWxzCiAKIC0tIGV4 cGxhaW5zIHNob3VsZCB3b3JrCkBAIC0xNjM3LDYgKzE2NDIsMTIgQEAgU0VMRUNUIChqYikuYVsx XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogLS0gdmlld3Mgc2hvdWxkIHdvcmsKIENS RUFURSBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10u eC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK0NSRUFURSBWSUVXIHYyIEFTIFNFTEVDVCAoamIpLmFbMzpdLngueVs6LTFdIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdjIKK1NFTEVDVCAqIGZyb20gdjI7CitD UkVBVEUgVklFVyB2MyBBUyBTRUxFQ1QgKGpiKS5hWzozXS54LnlbLTE6XSBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworXHN2IHYzCitTRUxFQ1QgKiBmcm9tIHYzOwogCiAtLSBtaXhlZCBz eW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKQEAgLTE2OTcsNSAr MTcwOCw0NSBAQCBTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOwogU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKIERST1Ag VklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CiAKKy0tIGpzb25iIGFycmF5 IGFjY2VzcyBpbiBwbHBnc3FsCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6 PSAnWzEsMiwzLDQsNSw2LDddJzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAgICAgV0hJTEUgYSBJ UyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAgIFJBSVNFIE5PVElD RSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBhWzI6XTsKKyAgICAgICAgICAgIEVORCBM T09QOworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0ganNvbmIgZG90IGFjY2Vz cyBpbiBwbHBnc3FsCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6PSAneyIi OiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04 XX0nOjpqc29uYjsKKyAgICBCRUdJTgorICAgICAgICBXSElMRSBhIElTIE5PVCBOVUxMCisgICAg ICAgICAgICBMT09QCisgICAgICAgICAgICAgICAgUkFJU0UgTk9USUNFICclJywgYTsKKyAgICAg ICAgICAgICAgICBhIDo9IENPQUxFU0NFKGEuIk5VIiwgYVsyXSk7IC0tIGZhaWxzCisgICAgICAg ICAgICBFTkQgTE9PUDsKKyAgICBFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0RPICQkCisg ICAgREVDTEFSRQorICAgICAgICBhIGpzb25iIDo9ICd7IiI6IDYsICJOVSI6IFt7IiI6IFtbM11d fSwgWzZdLCBbMl0sICJiQ2kiXSwgImFhZiI6IFstNiwgLThdfSc6Ompzb25iOworICAgIEJFR0lO CisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5VTEwKKyAgICAgICAgICAgIExPT1AKKyAgICAgICAg ICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBhOworICAgICAgICAgICAgICAgIGEgOj0gQ09BTEVT Q0UoKGEpLiJOVSIsIGFbMl0pOyAtLSBzdWNjZWVkcworICAgICAgICAgICAgRU5EIExPT1A7Cisg ICAgRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworCiAtLSBjbGVhbiB1cAorRFJPUCBWSUVXIHYy OworRFJPUCBWSUVXIHYzOwogRFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLS0g CjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000000237be063ddc34cd Content-Type: application/octet-stream; name="v15-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v15-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf3bvwr53 RnJvbSAwZDJkZGM0OTJjZDk2OThjZTNhMTRhNGZlNjFkNDc5NjBhYmVhYzIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTUgNS83XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBKU09OQiBtZW1iZXIgYWNjZXNzIHVzaW5nIGRvdCBub3Rh dGlvbiB0aGF0CmFsaWducyB3aXRoIHRoZSBKU09OIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3BlY2lm aWVkIGluIFNRTDoyMDIzLgoKRXhhbXBsZXM6CgotLSBTZXR1cApjcmVhdGUgdGFibGUgdCh4IGlu dCwgeSBqc29uYik7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAxLCAiYiI6IDQyfSc6 Ompzb25iOwppbnNlcnQgaW50byB0IHNlbGVjdCAxLCAneyJhIjogMiwgImIiOiB7ImMiOiA0Mn19 Jzo6anNvbmI7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAzLCAiYiI6IHsiYyI6ICI0 MiJ9LCAiZCI6WzExLCAxMl19Jzo6anNvbmI7CgotLSBFeGlzdGluZyBzeW50YXggaW4gUG9zdGdy ZVNRTCB0aGF0IHByZWRhdGVzIHRoZSBTUUwgc3RhbmRhcmQ6CnNlbGVjdCAodC55KS0+J2InIGZy b20gdDsKc2VsZWN0ICh0LnkpLT4nYictPidjJyBmcm9tIHQ7CnNlbGVjdCAodC55KS0+J2QnLT4w IGZyb20gdDsKCi0tIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpZWQgYnkgdGhlIFNR TCBzdGFuZGFyZDoKc2VsZWN0ICh0LnkpLmIgZnJvbSB0OwpzZWxlY3QgKHQueSkuYi5jIGZyb20g dDsKc2VsZWN0ICh0LnkpLmRbMF0gZnJvbSB0OwoKVGhlIFNRTCBzdGFuZGFyZCBzdGF0ZXMgdGhh dCBzaW1wbGlmaWVkIGFjY2VzcyBpcyBlcXVpdmFsZW50IHRvOgpKU09OX1FVRVJZIChWRVAsICds YXggJC5KQycgV0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5VTEwgT04gRU1QVFkgTlVM TCBPTiBFUlJPUikKCndoZXJlOgogIFZFUCA9IDx2YWx1ZSBleHByZXNzaW9uIHByaW1hcnk+CiAg SkMgPSA8SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIG9wIGNoYWluPgoKRm9yIGV4YW1wbGUsIHRo ZSBKU09OX1FVRVJZIGVxdWl2YWxlbnRzIG9mIHRoZSBhYm92ZSBxdWVyaWVzIGFyZToKCnNlbGVj dCBqc29uX3F1ZXJ5KHksICdsYXggJC5iJyBXSVRIIENPTkRJVElPTkFMIEFSUkFZIFdSQVBQRVIg TlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CnNlbGVjdCBqc29uX3F1ZXJ5KHks ICdsYXggJC5iLmMnIFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZ IE5VTEwgT04gRVJST1IpIGZyb20gdDsKc2VsZWN0IGpzb25fcXVlcnkoeSwgJ2xheCAkLmRbMF0n IFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJS T1IpIGZyb20gdDsKCkltcGxlbWVudGF0aW9uIGRldGFpbHM6CgpFeHRlbmRzIHRoZSBleGlzdGlu ZyBjb250YWluZXIgc3Vic2NyaXB0aW5nIGludGVyZmFjZSB0byBzdXBwb3J0CmNvbnRhaW5lci1z cGVjaWZpYyBpbmZvcm1hdGlvbiwgc3BlY2lmaWNhbGx5IGEgSlNPTlBhdGggZXhwcmVzc2lvbiBm b3IKanNvbmIuCgpEdXJpbmcgcXVlcnkgdHJhbnNmb3JtYXRpb24sIGlmIGRvdC1ub3RhdGlvbiBp cyBwcmVzZW50LCBjb25zdHJ1Y3RzIGEKSlNPTlBhdGggZXhwcmVzc2lvbiByZXByZXNlbnRpbmcg dGhlIGFjY2VzcyBjaGFpbi4KCkR1cmluZyBleGVjdXRpb24sIGlmIGEgSlNPTlBhdGggZXhwcmVz c2lvbiBpcyBwcmVzZW50IGluCkpzb25iU3ViV29ya3NwYWNlLCBleGVjdXRlcyBpdCB2aWEgSnNv blBhdGhRdWVyeSgpLgoKRG9lcyBub3QgdHJhbnNmb3JtIGFjY2Vzc29ycyBkaXJlY3RseSBpbnRv IEpTT05fUVVFUlkgZHVyaW5nCnRyYW5zZm9ybWF0aW9uIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5h bCBxdWVyeSBzdHJ1Y3R1cmUgZm9yIEVYUExBSU4KYW5kIENSRUFURSBWSUVXLgoKQ28tYXV0aG9y ZWQtYnk6IE5pa2l0YSBHbHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVk LWJ5OiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTog TWF0aGV1cyBBbGNhbnRhcmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IE1hcmsgRGlsZ2VyIDxtYXJrLmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpSZXZpZXdlZC1ieTog SmlhbiBIZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVmlrIEZl YXJpbmcgPHZpa0Bwb3N0Z3Jlc2ZyaWVuZHMub3JnPgpSZXZpZXdlZC1ieTogTmlraXRhIE1hbGFr aG92IDxodWt1dG9jQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFBldGVyIEVpc2VudHJhdXQgPHBl dGVyQGVpc2VudHJhdXQub3JnPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdt YWlsLmNvbT4KVGVzdGVkLWJ5OiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAg NCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDc2 ICsrLS0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAx MiArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgICAgICAgICAgICAgfCAzNjgg KysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAg ICAgICAgIHwgIDQzICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAg ICAgICAgfCAgNTQgKystCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgICAg ICAgICAgfCAxMTIgKysrKy0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rk ZXJyICAgICB8IDEwMCArKysrKwogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQgICAgIHwgICA3ICsKIHNyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5w Z2MgICAgICB8ICAzMyArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgICAg ICAgICAgIHwgNDEzICsrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNv bmIuc3FsICAgICAgICAgICAgICAgIHwgMTEzICsrKystCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogMTMgZmlsZXMgY2hhbmdlZCwgMTIzNyBp bnNlcnRpb25zKCspLCA5OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3NxbF9mZWF0dXJlcy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJl cy50eHQKaW5kZXggZWJlODUzMzdjMjguLjQ1N2U5OTMzMDVlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z cWxfZmVhdHVyZXMudHh0CkBAIC01NjgsOCArNTY4LDggQEAgVDgzOAlKU09OX1RBQkxFOiBQTEFO IERFRkFVTFQgY2xhdXNlCQkJTk8KIFQ4MzkJRm9ybWF0dGVkIGNhc3Qgb2YgZGF0ZXRpbWVzIHRv L2Zyb20gY2hhcmFjdGVyIHN0cmluZ3MJCQlOTwkKIFQ4NDAJSGV4IGludGVnZXIgbGl0ZXJhbHMg aW4gU1FML0pTT04gcGF0aCBsYW5ndWFnZQkJCVlFUwkKIFQ4NTEJU1FML0pTT046IG9wdGlvbmFs IGtleXdvcmRzIGZvciBkZWZhdWx0IHN5bnRheAkJCVlFUwkKLVQ4NjAJU1FML0pTT04gc2ltcGxp ZmllZCBhY2Nlc3NvcjogY29sdW1uIHJlZmVyZW5jZSBvbmx5CQkJTk8JCi1UODYxCVNRTC9KU09O IHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNhc2Utc2Vuc2l0aXZlIEpTT04gbWVtYmVyIGFjY2Vzc29y CQkJTk8JCitUODYwCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNvbHVtbiByZWZlcmVu Y2Ugb25seQkJCVlFUwkKK1Q4NjEJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3NvcjogY2FzZS1z ZW5zaXRpdmUgSlNPTiBtZW1iZXIgYWNjZXNzb3IJCQlZRVMJCiBUODYyCVNRTC9KU09OIHNpbXBs aWZpZWQgYWNjZXNzb3I6IHdpbGRjYXJkIG1lbWJlciBhY2Nlc3NvcgkJCU5PCQogVDg2MwlTUUwv SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiBzaW5nbGUtcXVvdGVkIHN0cmluZyBsaXRlcmFsIGFz IG1lbWJlciBhY2Nlc3NvcgkJCU5PCQogVDg2NAlTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29y CQkJTk8JCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCBmMTU2OTg3OWI1Mi4uZWFjMzFiMDk3 ZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMzMyMCw1MCArMzMyMCw1NCBAQCBFeGVj SW5pdFN1YnNjcmlwdGluZ1JlZihFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIFN1YnNjcmlwdGluZ1Jl ZiAqc2JzcmVmLAogCQkJCQkJCQkgICBzdGF0ZS0+c3RlcHNfbGVuIC0gMSk7CiAJfQogCi0JLyog RXZhbHVhdGUgdXBwZXIgc3Vic2NyaXB0cyAqLwotCWkgPSAwOwotCWZvcmVhY2gobGMsIHNic3Jl Zi0+cmVmdXBwZXJpbmRleHByKQorCS8qIEV2YWx1YXRlIHVwcGVyIHN1YnNjcmlwdHMsIHVubGVz cyByZWZqc29uYnBhdGggaXMgdXNlZCBmb3IgZXhlY3V0aW9uICovCisJaWYgKCFzYnNyZWYtPnJl Zmpzb25icGF0aCkKIAl7Ci0JCUV4cHIJICAgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlp ID0gMDsKKwkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpIHsKKwkJCUV4cHIg KmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOwogCi0JCS8qIFdoZW4gc2xpY2luZywgaW5kaXZpZHVh bCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCi0JCWlmICghZSkKLQkJewotCQkJ c2JzcmVmc3RhdGUtPnVwcGVycHJvdmlkZWRbaV0gPSBmYWxzZTsKLQkJCXNic3JlZnN0YXRlLT51 cHBlcmluZGV4bnVsbFtpXSA9IHRydWU7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQlzYnNyZWZzdGF0 ZS0+dXBwZXJwcm92aWRlZFtpXSA9IHRydWU7Ci0JCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFs dWF0ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLwotCQkJRXhlY0luaXRFeHByUmVj KGUsIHN0YXRlLAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleFtpXSwKLQkJCQkJCQkm c2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ldKTsKKwkJCS8qIFdoZW4gc2xpY2luZywgaW5k aXZpZHVhbCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCisJCQlpZiAoIWUpCisJ CQl7CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVycHJvdmlkZWRbaV0gPSBmYWxzZTsKKwkJCQlzYnNy ZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0gPSB0cnVlOworCQkJfQorCQkJZWxzZSB7CisJCQkJ c2JzcmVmc3RhdGUtPnVwcGVycHJvdmlkZWRbaV0gPSB0cnVlOworCQkJCS8qIEVhY2ggc3Vic2Ny aXB0IGlzIGV2YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCisJCQkJRXhl Y0luaXRFeHByUmVjKGUsIHN0YXRlLAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhb aV0sCisJCQkJCQkJCSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0pOworCQkJfQorCQkJ aSsrOwogCQl9Ci0JCWkrKzsKIAl9CiAKLQkvKiBFdmFsdWF0ZSBsb3dlciBzdWJzY3JpcHRzIHNp bWlsYXJseSAqLwotCWkgPSAwOwotCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmbG93ZXJpbmRleHBy KQorCS8qIEV2YWx1YXRlIGxvd2VyIHN1YnNjcmlwdHMgc2ltaWxhcmx5LCB1bmxlc3MgcmVmanNv bmJwYXRoIGlzIHVzZWQgZm9yIGV4ZWN1dGlvbiAgKi8KKwlpZiAoIXNic3JlZi0+cmVmanNvbmJw YXRoKQogCXsKLQkJRXhwcgkgICAqZSA9IChFeHByICopIGxmaXJzdChsYyk7Ci0KLQkJLyogV2hl biBzbGljaW5nLCBpbmRpdmlkdWFsIHN1YnNjcmlwdCBib3VuZHMgY2FuIGJlIG9taXR0ZWQgKi8K LQkJaWYgKCFlKQorCQlpID0gMDsKKwkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZsb3dlcmluZGV4 cHIpCiAJCXsKLQkJCXNic3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gZmFsc2U7Ci0JCQlz YnNyZWZzdGF0ZS0+bG93ZXJpbmRleG51bGxbaV0gPSB0cnVlOwotCQl9Ci0JCWVsc2UKLQkJewot CQkJc2JzcmVmc3RhdGUtPmxvd2VycHJvdmlkZWRbaV0gPSB0cnVlOwotCQkJLyogRWFjaCBzdWJz Y3JpcHQgaXMgZXZhbHVhdGVkIGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50cnkgKi8KLQkJCUV4 ZWNJbml0RXhwclJlYyhlLCBzdGF0ZSwKLQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhb aV0sCi0JCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSk7CisJCQlFeHByCSAg ICplID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKworCQkJLyogV2hlbiBzbGljaW5nLCBpbmRpdmlk dWFsIHN1YnNjcmlwdCBib3VuZHMgY2FuIGJlIG9taXR0ZWQgKi8KKwkJCWlmICghZSkKKwkJCXsK KwkJCQlzYnNyZWZzdGF0ZS0+bG93ZXJwcm92aWRlZFtpXSA9IGZhbHNlOworCQkJCXNic3JlZnN0 YXRlLT5sb3dlcmluZGV4bnVsbFtpXSA9IHRydWU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJ c2JzcmVmc3RhdGUtPmxvd2VycHJvdmlkZWRbaV0gPSB0cnVlOworCQkJCS8qIEVhY2ggc3Vic2Ny aXB0IGlzIGV2YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCisJCQkJRXhl Y0luaXRFeHByUmVjKGUsIHN0YXRlLAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhb aV0sCisJCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleG51bGxbaV0pOworCQkJfQorCQkJ aSsrOwogCQl9Ci0JCWkrKzsKIAl9CiAKIAkvKiBTQlNSRUZfU1VCU0NSSVBUUyBjaGVja3MgYW5k IGNvbnZlcnRzIGFsbCB0aGUgc3Vic2NyaXB0cyBhdCBvbmNlICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j CmluZGV4IDdiYzgyMzUwN2YxLi5kMWJkNTc1ZDliZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv bm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAg LTI4NCw2ICsyODQsMTMgQEAgZXhwclR5cGUoY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Bs YWNlSG9sZGVyVmFyOgogCQkJdHlwZSA9IGV4cHJUeXBlKChOb2RlICopICgoY29uc3QgUGxhY2VI b2xkZXJWYXIgKikgZXhwciktPnBoZXhwcik7CiAJCQlicmVhazsKKwkJY2FzZSBUX0ZpZWxkQWNj ZXNzb3JFeHByOgorCQkJLyoKKwkJCSAqIEZpZWxkQWNjZXNzb3JFeHByIGlzIG5vdCBldmFsdWFi bGUuIFRyZWF0IGl0IGFzIFRFWFQgZm9yIGNvbGxhdGlvbiwKKwkJCSAqIGRlcGFyc2luZywgYW5k IHNpbWlsYXIgcHVycG9zZXMsIHNpbmNlIGl0IHJlcHJlc2VudHMgYSBKU09OIGZpZWxkIG5hbWUu CisJCQkgKi8KKwkJCXR5cGUgPSBURVhUT0lEOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4 cHIpKTsKIAkJCXR5cGUgPSBJbnZhbGlkT2lkOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBA IC0xMTQ2LDYgKzExNTMsOSBAQCBleHByU2V0Q29sbGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xs YXRpb24pCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgogCQkJKChNZXJnZVN1cHBvcnRGdW5j ICopIGV4cHIpLT5tc2Zjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKKwkJY2FzZSBUX0Zp ZWxkQWNjZXNzb3JFeHByOgorCQkJKChGaWVsZEFjY2Vzc29yRXhwciAqKSBleHByKS0+ZmFlY29s bGlkID0gY29sbGF0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJ CQkoKFN1YnNjcmlwdGluZ1JlZiAqKSBleHByKS0+cmVmY29sbGlkID0gY29sbGF0aW9uOwogCQkJ YnJlYWs7CkBAIC0yMTI5LDYgKzIxMzksNyBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwo Tm9kZSAqbm9kZSwKIAkJY2FzZSBUX1NvcnRHcm91cENsYXVzZToKIAkJY2FzZSBUX0NURVNlYXJj aENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CisJCWNhc2UgVF9GaWVsZEFjY2Vz c29yRXhwcjoKIAkJCS8qIHByaW1pdGl2ZSBub2RlIHR5cGVzIHdpdGggbm8gZXhwcmVzc2lvbiBz dWJub2RlcyAqLwogCQkJYnJlYWs7CiAJCWNhc2UgVF9XaXRoQ2hlY2tPcHRpb246CkBAIC0zMDA4 LDYgKzMwMTksNyBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRvcl9pbXBsKE5vZGUgKm5vZGUsCiAJ CWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2UgVF9DVEVTZWFyY2hDbGF1c2U6CiAJCWNh c2UgVF9NZXJnZVN1cHBvcnRGdW5jOgorCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CiAJCQly ZXR1cm4gY29weU9iamVjdChub2RlKTsKIAkJY2FzZSBUX1dpdGhDaGVja09wdGlvbjoKIAkJCXsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCBmOTQ0ZDE1NDRjYS4uNDg1YWQ5NjdhYmEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAgLTE1LDIxICsxNSwzMCBAQAogI2luY2x1 ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJleGVjdXRvci9leGVjRXhwci5oIgorI2luY2x1 ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2lu Y2x1ZGUgIm5vZGVzL3N1YnNjcmlwdGluZy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2Vy Y2UuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvanNvbmIuaCIKKyNpbmNsdWRlICJ1dGlscy9qc29u cGF0aC5oIgogCiAKLS8qIFN1YnNjcmlwdGluZ1JlZlN0YXRlLndvcmtzcGFjZSBmb3IganNvbmIg c3Vic2NyaXB0aW5nIGV4ZWN1dGlvbiAqLworLyoKKyAqIFN1YnNjcmlwdGluZ1JlZlN0YXRlLndv cmtzcGFjZSBmb3IgZ2VuZXJpYyBqc29uYiBzdWJzY3JpcHRpbmcgZXhlY3V0aW9uLgorICoKKyAq IFN0b3JlcyBzdGF0ZSBmb3IgYm90aCBqc29uYiBzaW1wbGUgc3Vic2NyaXB0aW5nIGFuZCBkb3Qg bm90YXRpb24gYWNjZXNzLgorICogRG90IG5vdGF0aW9uIGFkZGl0aW9uYWxseSB1c2VzIGBqc29u cGF0aGAgZm9yIEpzb25QYXRoIGV2YWx1YXRpb24uCisgKi8KIHR5cGVkZWYgc3RydWN0IEpzb25i U3ViV29ya3NwYWNlCiB7CiAJYm9vbAkJZXhwZWN0QXJyYXk7CS8qIGpzb25iIHJvb3QgaXMgZXhw ZWN0ZWQgdG8gYmUgYW4gYXJyYXkgKi8KIAlPaWQJCSAgICppbmRleE9pZDsJCS8qIE9JRCBvZiBj b2VyY2VkIHN1YnNjcmlwdCBleHByZXNzaW9uLCBjb3VsZAogCQkJCQkJCQkgKiBiZSBvbmx5IGlu dGVnZXIgb3IgdGV4dCAqLwogCURhdHVtCSAgICppbmRleDsJCQkvKiBTdWJzY3JpcHQgdmFsdWVz IGluIERhdHVtIGZvcm1hdCAqLworCUpzb25QYXRoICAgKmpzb25wYXRoOwkJLyogSnNvblBhdGgg Zm9yIGRvdCBub3RhdGlvbiBleGVjdXRpb24gdmlhCisJCQkJCQkJCSAqIEpzb25QYXRoUXVlcnko KSAqLwogfSBKc29uYlN1YldvcmtzcGFjZTsKIAogc3RhdGljIE5vZGUgKgpAQCAtOTYsNiArMTA1 LDI2OCBAQCBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0X3RvX2ludDRfb3JfdGV4dChQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKnN1YkV4cHIpCiAJcmV0dXJuIHN1YkV4cHI7CiB9CiAKKy8qCisg KiBEdXJpbmcgdHJhbnNmb3JtYXRpb24sIGRldGVybWluZSB3aGV0aGVyIHRvIGJ1aWxkIGEgSnNv blBhdGgKKyAqIGZvciBKc29uUGF0aFF1ZXJ5KCkgZXhlY3V0aW9uLgorICoKKyAqIEpzb25QYXRo IGlzIG5lZWRlZCBpZiB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbmNsdWRlczoKKyAqIC0gU3RyaW5n LWJhc2VkIGFjY2VzcyAoZG90IG5vdGF0aW9uKQorICogLSBTbGljZS1iYXNlZCBzdWJzY3JpcHRp bmcgKHdoZW4gaXNTbGljZSBpcyB0cnVlKQorICoKKyAqIE90aGVyd2lzZSwgc2ltcGxlIGpzb25i IHN1YnNjcmlwdGluZyBpcyBlbm91Z2guCisgKi8KK3N0YXRpYyBib29sCitqc29uYl9jaGVja19q c29ucGF0aF9uZWVkZWQoTGlzdCAqaW5kaXJlY3Rpb24sIGJvb2wgaXNTbGljZSkKK3sKKwlMaXN0 Q2VsbCAgICpsYzsKKworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwkvKiBWZXJpZnkgY29u c2lzdGVuY3kgYmV0d2VlbiBpc1NsaWNlIHBhcmFtZXRlciBhbmQgaXNfc2xpY2UgZmllbGQgKi8K Kwlib29sCQlmb3VuZFNsaWNlID0gZmFsc2U7CisKKwlmb3JlYWNoKGxjLCBpbmRpcmVjdGlvbikK Kwl7CisJCU5vZGUJICAgKmFjY2Vzc29yID0gbGZpcnN0KGxjKTsKKworCQlpZiAoSXNBKGFjY2Vz c29yLCBBX0luZGljZXMpICYmIGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpLT5pc19zbGlj ZSkKKwkJeworCQkJZm91bmRTbGljZSA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKwlBc3Nl cnQoZm91bmRTbGljZSA9PSBpc1NsaWNlKTsKKyNlbmRpZgorCisJaWYgKGlzU2xpY2UpCisJCXJl dHVybiB0cnVlOworCisJZm9yZWFjaChsYywgaW5kaXJlY3Rpb24pCisJeworCQlOb2RlCSAgICph Y2Nlc3NvciA9IGxmaXJzdChsYyk7CisKKwkJaWYgKElzQShhY2Nlc3NvciwgU3RyaW5nKSkKKwkJ CXJldHVybiB0cnVlOworCQllbHNlCisJCQlBc3NlcnQoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMp KTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb25zIGZv ciBjb25zdHJ1Y3RpbmcgSnNvblBhdGggZXhwcmVzc2lvbnMuCisgKgorICogVGhlIG1ha2VfanNv bnBhdGhfaXRlbV8qIGZ1bmN0aW9ucyBjcmVhdGUgdmFyaW91cyB0eXBlcyBvZiBKc29uUGF0aFBh cnNlSXRlbQorICogbm9kZXMsIHdoaWNoIGFyZSB1c2VkIHRvIGJ1aWxkIEpzb25QYXRoIGV4cHJl c3Npb25zIGZvciBqc29uYiBzaW1wbGlmaWVkCisgKiBhY2Nlc3Nvci4KKyAqLworCitzdGF0aWMg SnNvblBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtKEpzb25QYXRoSXRlbVR5cGUg dHlwZSkKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqdiA9IHBhbGxvYyhzaXplb2YoKnYpKTsKKwor CXYtPnR5cGUgPSB0eXBlOworCXYtPm5leHQgPSBOVUxMOworCisJcmV0dXJuIHY7Cit9CisKKy8q CisgKiBCdWlsZCBhIEpzb25QYXRoUGFyc2VJdGVtIGZvciBhIGNvbnN0YW50IGludGVnZXIgdmFs dWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1Y3RzIGEganBpTnVtZXJpYyBpdGVtIGZv ciB1c2UgaW4gSnNvblBhdGgsCisgKiBhbmQgYXBwZW5kcyBhIG1hdGNoaW5nIENvbnN0KElOVDQp IG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdAorICogZm9yIHVzZSBpbiBFWFBMQUlO LCB2aWV3cywgZXRjLgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiAtIHZhbDogaW50ZWdlciBjb25z dGFudCB2YWx1ZQorICogLSBleHByczogbGlzdCBvZiBleHByZXNzaW9uIG5vZGVzICh1cGRhdGVk IGluIHBsYWNlKQorICovCitzdGF0aWMgSnNvblBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0 aF9pdGVtX2ludChpbnQzMiB2YWwsIExpc3QgKipleHBycykKK3sKKwlKc29uUGF0aFBhcnNlSXRl bSAqanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaU51bWVyaWMpOworCisJanBpLT52YWx1ZS5u dW1lcmljID0KKwkJRGF0dW1HZXROdW1lcmljKERpcmVjdEZ1bmN0aW9uQ2FsbDEoaW50NF9udW1l cmljLCBJbnQzMkdldERhdHVtKHZhbCkpKTsKKworCSpleHBycyA9IGxhcHBlbmQoKmV4cHJzLCBt YWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRPaWQsIDQsCisJCQkJCQkJCQkgICBJbnQzMkdl dERhdHVtKHZhbCksIGZhbHNlLCB0cnVlKSk7CisKKwlyZXR1cm4ganBpOworfQorCisvKgorICog Q29udmVydCBhIGNvbnN0YW50IGludGVnZXIgZXhwcmVzc2lvbiBpbnRvIGEgSnNvblBhdGhQYXJz ZUl0ZW0uCisgKgorICogVGhlIGlucHV0IGV4cHJlc3Npb24gbXVzdCBiZSBhIG5vbi1udWxsIGNv bnN0YW50IG9mIHR5cGUgSU5UNC4gUmV0dXJucyBOVUxMIG90aGVyd2lzZS4KKyAqIFRoZSBmdW5j dGlvbiBleHRyYWN0cyB0aGUgdmFsdWUgYW5kIGRlbGVnYXRlcyBpdCB0byBtYWtlX2pzb25wYXRo X2l0ZW1faW50KCkuCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gcHN0YXRlOiBwYXJzZSBzdGF0 ZSBjb250ZXh0CisgKiAtIGV4cHI6IGlucHV0IGV4cHJlc3Npb24gbm9kZQorICogLSBleHByczog bGlzdCBvZiBleHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQorICovCitzdGF0aWMg SnNvblBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMpCit7CisJQ29uc3QJICAgKmNuc3Q7CisK KwlleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGV4cHIsIHBzdGF0ZS0+cF9leHByX2tpbmQp OworCisJaWYgKElzQShleHByLCBDb25zdCkpCisJeworCQljbnN0ID0gKENvbnN0ICopIGV4cHI7 CisJCWlmIChjbnN0LT5jb25zdHR5cGUgPT0gSU5UNE9JRCAmJiAhKGNuc3QtPmNvbnN0aXNudWxs KSkKKwkJCXJldHVybiBtYWtlX2pzb25wYXRoX2l0ZW1faW50KERhdHVtR2V0SW50MzIoY25zdC0+ Y29uc3R2YWx1ZSksIGV4cHJzKTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIENv bnN0cnVjdHMgYSBKc29uUGF0aCBleHByZXNzaW9uIGZyb20gYSBsaXN0IG9mIGluZGlyZWN0aW9u cy4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIGpzb25iIHN1YnNjcmlwdGluZyBpbnZv bHZlcyBkb3Qgbm90YXRpb24sCisgKiByZXF1aXJpbmcgSnNvblBhdGgtYmFzZWQgZXZhbHVhdGlv bi4KKyAqCisgKiBUaGUgZnVuY3Rpb24gbW9kaWZpZXMgdGhlIGluZGlyZWN0aW9uIGxpc3QgaW4g cGxhY2UsIHJlbW92aW5nIHByb2Nlc3NlZAorICogZWxlbWVudHMgYXMgaXQgY29udmVydHMgdGhl bSBpbnRvIEpzb25QYXRoIGNvbXBvbmVudHMsIGFzIGZvbGxvd3M6CisgKiAtIFN0cmluZyBrZXlz IChkb3Qgbm90YXRpb24pIC0+IGpwaUtleSBpdGVtcy4KKyAqIC0gQXJyYXkgaW5kaWNlcyAtPiBq cGlJbmRleEFycmF5IGl0ZW1zLgorICoKKyAqIEluIGFkZGl0aW9uIHRvIGJ1aWxkaW5nIHRoZSBK c29uUGF0aCBleHByZXNzaW9uLCB0aGlzIGZ1bmN0aW9uIHBvcHVsYXRlcworICogdGhlIGZvbGxv d2luZyBmaWVsZHMgb2YgdGhlIGdpdmVuIFN1YnNjcmlwdGluZ1JlZjoKKyAqIC0gcmVmanNvbmJw YXRoOiB0aGUgZ2VuZXJhdGVkIEpzb25QYXRoCisgKiAtIHJlZnVwcGVyaW5kZXhwcjogdXBwZXIg aW5kZXggZXhwcmVzc2lvbnMgKG9iamVjdCBrZXlzIG9yIGFycmF5IGluZGV4ZXMpCisgKiAtIHJl Zmxvd2VyaW5kZXhwcjogbG93ZXIgaW5kZXggZXhwcmVzc2lvbnMsIHJlbWFpbnMgTklMIGFzIHNs aWNlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQuCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gcHN0 YXRlOiBQYXJzZSBzdGF0ZSBjb250ZXh0LgorICogLSBpbmRpcmVjdGlvbjogTGlzdCBvZiBzdWJz Y3JpcHRpbmcgZXhwcmVzc2lvbnMgKG1vZGlmaWVkIGluLXBsYWNlKS4KKyAqIC0gc2JzcmVmOiBT dWJzY3JpcHRpbmdSZWYgbm9kZSB0byB1cGRhdGUKKyAqLworc3RhdGljIHZvaWQKK2pzb25iX3N1 YnNjcmlwdF9tYWtlX2pzb25wYXRoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqKmluZGlyZWN0 aW9uLCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZikKK3sKKwlKc29uUGF0aFBhcnNlUmVzdWx0IGpw cmVzOworCUpzb25QYXRoUGFyc2VJdGVtICpwYXRoID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaVJv b3QpOworCUxpc3RDZWxsICAgKmxjOworCURhdHVtCQlqc3A7CisJaW50CQkJcGF0aGxlbiA9IDA7 CisKKwlzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciA9IE5JTDsKKwlzYnNyZWYtPnJlZmxvd2VyaW5k ZXhwciA9IE5JTDsKKwlzYnNyZWYtPnJlZmpzb25icGF0aCA9IE5VTEw7CisKKwlqcHJlcy5leHBy ID0gcGF0aDsKKwlqcHJlcy5sYXggPSB0cnVlOworCisJZm9yZWFjaChsYywgKmluZGlyZWN0aW9u KQorCXsKKwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOworCQlKc29uUGF0aFBhcnNl SXRlbSAqanBpOworCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJCXsKKwkJCWNoYXIJ ICAgKmZpZWxkID0gc3RyVmFsKGFjY2Vzc29yKTsKKwkJCUZpZWxkQWNjZXNzb3JFeHByICphY2Nl c3Nvcl9leHByOworCisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpS2V5KTsKKwkJCWpw aS0+dmFsdWUuc3RyaW5nLnZhbCA9IGZpZWxkOworCQkJanBpLT52YWx1ZS5zdHJpbmcubGVuID0g c3RybGVuKGZpZWxkKTsKKworCQkJYWNjZXNzb3JfZXhwciA9IG1ha2VOb2RlKEZpZWxkQWNjZXNz b3JFeHByKTsKKwkJCWFjY2Vzc29yX2V4cHItPnR5cGUgPSBUX0ZpZWxkQWNjZXNzb3JFeHByOwor CQkJYWNjZXNzb3JfZXhwci0+ZmllbGRuYW1lID0gZmllbGQ7CisKKwkJCXNic3JlZi0+cmVmdXBw ZXJpbmRleHByID0gbGFwcGVuZChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgYWNjZXNzb3JfZXhw cik7CisJCX0KKwkJZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKQorCQl7CisJCQlB X0luZGljZXMgICphaSA9IGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpOworCisJCQlpZiAo IWFpLT5pc19zbGljZSkKKwkJCXsKKwkJCQlKc29uUGF0aFBhcnNlSXRlbSAqanBpX2Zyb20gPSBO VUxMOworCisJCQkJQXNzZXJ0KGFpLT51aWR4ICYmICFhaS0+bGlkeCk7CisJCQkJanBpX2Zyb20g PSBtYWtlX2pzb25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT51aWR4LCAmc2JzcmVmLT5yZWZ1 cHBlcmluZGV4cHIpOworCQkJCWlmIChqcGlfZnJvbSA9PSBOVUxMKQorCQkJCXsKKwkJCQkJLyoK KwkJCQkJICogQnJlYWsgb3V0IG9mIHRoZSBsb29wIGlmIHRoZSBzdWJzY3JpcHQgaXMgbm90IGEK KwkJCQkJICogbm9uLW51bGwgaW50ZWdlciBjb25zdGFudCwgc28gdGhhdCB3ZSBjYW4gZmFsbCBi YWNrIHRvCisJCQkJCSAqIGpzb25iIHN1YnNjcmlwdGluZyBsb2dpYy4KKwkJCQkJICoKKwkJCQkJ ICogVGhpcyBpcyBuZWVkZWQgdG8gaGFuZGxlIGNhc2VzIHdpdGggbWl4ZWQgdXNhZ2Ugb2YgU1FM CisJCQkJCSAqIHN0YW5kYXJkIGpzb24gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggYW5kIFBv c3RncmVTUUwKKwkJCQkJICoganNvbmIgc3Vic2NyaXB0aW5nIHN5bnRheCwgZS5nOgorCQkJCQkg KgorCQkJCQkgKiBzZWxlY3QgKGpiKS5hWydiJ10uYyBmcm9tIGpzb25iX3RhYmxlOworCQkJCQkg KgorCQkJCQkgKiB3aGVyZSBkb3Qtbm90YXRpb24gKC5hIGFuZCAuYykgaXMgdGhlIFNRTCBzdGFu ZGFyZCBqc29uCisJCQkJCSAqIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3ludGF4LCBhbmQgdGhlIFsn YiddIHN1YnNjcmlwdCBpcworCQkJCQkgKiB0aGUgUG9zdGdyZVNRTCBqc29uYiBzdWJzY3JpcHRp bmcgc3ludGF4LCBiZWNhdXNlICdiJworCQkJCQkgKiBpcyBub3QgYSBub24tbnVsbCBjb25zdGFu dCBpbnRlZ2VyIGFuZCBjYW5ub3QgYmUgdXNlZAorCQkJCQkgKiBmb3IganNvbiBhcnJheSBhY2Nl c3MuCisJCQkJCSAqCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgd2UgY2Fubm90IGNyZWF0ZSBhIEpz b25QYXRoIGl0ZW0sIHNvIHdlCisJCQkJCSAqIGJyZWFrIG91dCBvZiB0aGUgbG9vcCBhbmQgbGV0 CisJCQkJCSAqIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oKSBoYW5kbGUgdGhpcyBpbmRpcmVj dGlvbiBhcworCQkJCQkgKiBhIFBvc3RncmVTUUwganNvbmIgc3Vic2NyaXB0LgorCQkJCQkgKi8K KwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUlu ZGV4QXJyYXkpOworCQkJCWpwaS0+dmFsdWUuYXJyYXkubmVsZW1zID0gMTsKKwkJCQlqcGktPnZh bHVlLmFycmF5LmVsZW1zID0gcGFsbG9jKHNpemVvZihqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBd KSk7CisKKwkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZyb20gPSBqcGlfZnJvbTsKKwkJ CQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gTlVMTDsKKwkJCX0KKwkJCWVsc2UKKwkJ CXsKKwkJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+dWlkeCA6IGFpLT5saWR4Owor CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQg c2xpY2VzIiksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9u KGV4cHIpKSkpOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFVuZXhwZWN0 ZWQgbm9kZSB0eXBlIGluIGluZGlyZWN0aW9uIGxpc3QuIFRoaXMgc2hvdWxkIG5vdAorCQkJICog aGFwcGVuIHdpdGggY3VycmVudCBncmFtbWFyLCBidXQgd2UgaGFuZGxlIGl0IGRlZmVuc2l2ZWx5 IGJ5CisJCQkgKiBicmVha2luZyBvdXQgb2YgdGhlIGxvb3AgcmF0aGVyIHRoYW4gY3Jhc2hpbmcu IEluIGNhc2Ugb2YKKwkJCSAqIGZ1dHVyZSBncmFtbWFyIGNoYW5nZXMgdGhhdCBtaWdodCBpbnRy b2R1Y2UgbmV3IG5vZGUgdHlwZXMsCisJCQkgKiB0aGlzIGFsbG93cyB1cyB0byBjcmVhdGUgYSBq c29ucGF0aCBmcm9tIGFzIG1hbnkgaW5kaXJlY3Rpb24KKwkJCSAqIGVsZW1lbnRzIGFzIHdlIGNh biBhbmQgbGV0IHRyYW5zZm9ybUluZGlyZWN0aW9uKCkgZmFsbGJhY2sgdG8KKwkJCSAqIGFsdGVy bmF0aXZlIGxvZ2ljIHRvIGhhbmRsZSB0aGUgcmVtYWluaW5nIGluZGlyZWN0aW9uIGVsZW1lbnRz LgorCQkJICovCisJCQlBc3NlcnQoZmFsc2UpOwkJLyogbm90IHJlYWNoYWJsZSAqLworCQkJYnJl YWs7CisJCX0KKworCQkvKiBhcHBlbmQgcGF0aCBpdGVtICovCisJCXBhdGgtPm5leHQgPSBqcGk7 CisJCXBhdGggPSBqcGk7CisJCXBhdGhsZW4rKzsKKwl9CisKKwlpZiAocGF0aGxlbiA9PSAwKQor CQlyZXR1cm47CisKKwkqaW5kaXJlY3Rpb24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRpcmVj dGlvbiwgcGF0aGxlbik7CisKKwlqc3AgPSBqc29uUGF0aEZyb21QYXJzZVJlc3VsdCgmanByZXMs IDAsIE5VTEwpOworCisJc2JzcmVmLT5yZWZqc29uYnBhdGggPSAoTm9kZSAqKSBtYWtlQ29uc3Qo SlNPTlBBVEhPSUQsIC0xLCBJbnZhbGlkT2lkLCAtMSwganNwLCBmYWxzZSwgZmFsc2UpOworfQor CiAvKgogICogRmluaXNoIHBhcnNlIGFuYWx5c2lzIG9mIGEgU3Vic2NyaXB0aW5nUmVmIGV4cHJl c3Npb24gZm9yIGEganNvbmIuCiAgKgpAQCAtMTEyLDQ3ICszODMsNDYgQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlMaXN0CSAgICp1cHBlcklu ZGV4cHIgPSBOSUw7CiAJTGlzdENlbGwgICAqaWR4OwogCisJLyogRGV0ZXJtaW5lIHRoZSByZXN1 bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3YXlzIGpzb25iICovCisJ c2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7CisJc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsK KworCWlmIChqc29uYl9jaGVja19qc29ucGF0aF9uZWVkZWQoKmluZGlyZWN0aW9uLCBpc1NsaWNl KSkKKwl7CisJCWpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKHBzdGF0ZSwgaW5kaXJlY3Rp b24sIHNic3JlZik7CisJCWlmIChzYnNyZWYtPnJlZmpzb25icGF0aCkKKwkJCXJldHVybjsKKwl9 CisKIAkvKgotCSAqIFRyYW5zZm9ybSBhbmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4cHJlc3Np b25zLiBKc29uYiBzdWJzY3JpcHRpbmcKLQkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcywgbG9v ayBvbmx5IGF0IHRoZSB1cHBlciBpbmRleC4KKwkgKiBXZSByZWFjaCBoZXJlIG9ubHkgaW4gdHdv IGNhc2VzOiAoYSkgdGhlIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBpcworCSAqIG5vdCBuZWVk ZWQgYXQgYWxsIChmb3IgZXhhbXBsZSwgYSBwbGFpbiBhcnJheSBzdWJzY3JpcHQgbGlrZSBbMV0g b3IKKwkgKiBvYmplY3Qga2V5IGFjY2VzcyBsaWtlIFsnYSddKSwgb3IgKGIpIGpzb25iX3N1YnNj cmlwdF9tYWtlX2pzb25wYXRoKCkKKwkgKiB3YXMgY2FsbGVkIGJ1dCBjb3VsZCBub3QgY29tcGxl dGUgdGhlIEpzb25QYXRoIGNvbnN0cnVjdGlvbiAoZm9yCisJICogZXhhbXBsZSwgd2hlbiBtaXhp bmcgZG90IG5vdGF0aW9uIHdpdGggbm9uLWludGVnZXIgc3Vic2NyaXB0cyBsaWtlCisJICogKGpi KVsnYSddLmIgd2hlcmUgJ2EnIGlzIG5vdCBhIGNvbnN0YW50IGludGVnZXIpLgorCSAqCisJICog SW4gYm90aCBjYXNlcyB3ZSBmYWxsIGJhY2sgdG8gcHJlLXN0YW5kYXJkIGpzb25iIHN1YnNjcmlw dGluZywgY29lcmNpbmcKKwkgKiBlYWNoIHN1YnNjcmlwdCB0byBhcnJheSBpbmRleCBvciBvYmpl Y3Qga2V5IGFzIG5lZWRlZC4KIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsK KwkJTm9kZQkgICAqaSA9IGxmaXJzdChpZHgpOwogCQlBX0luZGljZXMgICphaTsKIAkJTm9kZQkg ICAqc3ViRXhwcjsKIAogCQlpZiAoIUlzQShsZmlyc3QoaWR4KSwgQV9JbmRpY2VzKSkKIAkJCWJy ZWFrOwogCi0JCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCQlhaSA9IGNhc3RO b2RlKEFfSW5kaWNlcywgaSk7CiAKLQkJaWYgKGlzU2xpY2UpCi0JCXsKLQkJCU5vZGUJICAgKmV4 cHIgPSBhaS0+dWlkeCA/IGFpLT51aWR4IDogYWktPmxpZHg7CisJCWlmIChhaS0+aXNfc2xpY2Up CisJCQlicmVhazsKIAotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJtc2coImpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhw ckxvY2F0aW9uKGV4cHIpKSkpOwotCQl9CisJCUFzc2VydCghYWktPmxpZHggJiYgYWktPnVpZHgp OwogCi0JCWlmIChhaS0+dWlkeCkKLQkJewotCQkJc3ViRXhwciA9IHRyYW5zZm9ybUV4cHIocHN0 YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7Ci0JCQlzdWJFeHByID0gY29lcmNl X2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQocHN0YXRlLCBzdWJFeHByKTsKLQkJ fQotCQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBTbGljZSB3aXRoIG9taXR0ZWQgdXBwZXIgYm91 bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKLQkJCSAqIGVycm9yZWQgb3V0IG9u IHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGluIGNhc2UuCi0JCQkgKi8KLQkJ CUFzc2VydChpc1NsaWNlICYmIGFpLT5pc19zbGljZSk7Ci0JCQllcmVwb3J0KEVSUk9SLAotCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKLQkJCQkJIGVycm1zZygianNv bmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIiksCi0JCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oYWktPnVpZHgpKSkpOwotCQl9CisJCXN1YkV4 cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgYWktPnVpZHgsIHBzdGF0ZS0+cF9leHByX2tpbmQp OworCQlzdWJFeHByID0gY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQo cHN0YXRlLCBzdWJFeHByKTsKIAogCQl1cHBlckluZGV4cHIgPSBsYXBwZW5kKHVwcGVySW5kZXhw ciwgc3ViRXhwcik7CiAJfQpAQCAtMTYxLDEwICs0MzEsNiBAQCBqc29uYl9zdWJzY3JpcHRfdHJh bnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXNic3JlZi0+cmVmdXBwZXJpbmRleHBy ID0gdXBwZXJJbmRleHByOwogCXNic3JlZi0+cmVmbG93ZXJpbmRleHByID0gTklMOwogCi0JLyog RGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsg YWx3YXlzIGpzb25iICovCi0Jc2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7Ci0Jc2JzcmVm LT5yZWZ0eXBtb2QgPSAtMTsKLQogCS8qIFJlbW92ZSBwcm9jZXNzZWQgZWxlbWVudHMgKi8KIAlp ZiAodXBwZXJJbmRleHByKQogCQkqaW5kaXJlY3Rpb24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCpp bmRpcmVjdGlvbiwgbGlzdF9sZW5ndGgodXBwZXJJbmRleHByKSk7CkBAIC0yMTksNyArNDg1LDcg QEAganNvbmJfc3Vic2NyaXB0X2NoZWNrX3N1YnNjcmlwdHMoRXhwclN0YXRlICpzdGF0ZSwKIAkJ CSAqIEZvciBqc29uYiBmZXRjaCBhbmQgYXNzaWduIGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIHByb3Zp ZGUgcGF0aCBpbgogCQkJICogdGV4dCBmb3JtYXQuIENvbnZlcnQgaWYgaXQncyBub3QgYWxyZWFk eSB0ZXh0LgogCQkJICovCi0JCQlpZiAod29ya3NwYWNlLT5pbmRleE9pZFtpXSA9PSBJTlQ0T0lE KQorCQkJaWYgKCF3b3Jrc3BhY2UtPmpzb25wYXRoICYmIHdvcmtzcGFjZS0+aW5kZXhPaWRbaV0g PT0gSU5UNE9JRCkKIAkJCXsKIAkJCQlEYXR1bQkJZGF0dW0gPSBzYnNyZWZzdGF0ZS0+dXBwZXJp bmRleFtpXTsKIAkJCQljaGFyCSAgICpjcyA9IERhdHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5jdGlv bkNhbGwxKGludDRvdXQsIGRhdHVtKSk7CkBAIC0yNDcsMTcgKzUxMywzMiBAQCBqc29uYl9zdWJz Y3JpcHRfZmV0Y2goRXhwclN0YXRlICpzdGF0ZSwKIHsKIAlTdWJzY3JpcHRpbmdSZWZTdGF0ZSAq c2JzcmVmc3RhdGUgPSBvcC0+ZC5zYnNyZWYuc3RhdGU7CiAJSnNvbmJTdWJXb3Jrc3BhY2UgKndv cmtzcGFjZSA9IChKc29uYlN1YldvcmtzcGFjZSAqKSBzYnNyZWZzdGF0ZS0+d29ya3NwYWNlOwot CUpzb25iCSAgICpqc29uYlNvdXJjZTsKIAogCS8qIFNob3VsZCBub3QgZ2V0IGhlcmUgaWYgc291 cmNlIGpzb25iIChvciBhbnkgc3Vic2NyaXB0KSBpcyBudWxsICovCiAJQXNzZXJ0KCEoKm9wLT5y ZXNudWxsKSk7CiAKLQlqc29uYlNvdXJjZSA9IERhdHVtR2V0SnNvbmJQKCpvcC0+cmVzdmFsdWUp OwotCSpvcC0+cmVzdmFsdWUgPSBqc29uYl9nZXRfZWxlbWVudChqc29uYlNvdXJjZSwKLQkJCQkJ CQkJCSAgd29ya3NwYWNlLT5pbmRleCwKLQkJCQkJCQkJCSAgc2JzcmVmc3RhdGUtPm51bXVwcGVy LAotCQkJCQkJCQkJICBvcC0+cmVzbnVsbCwKLQkJCQkJCQkJCSAgZmFsc2UpOworCWlmICh3b3Jr c3BhY2UtPmpzb25wYXRoKQorCXsKKwkJYm9vbAkJZW1wdHkgPSBmYWxzZTsKKwkJYm9vbAkJZXJy b3IgPSBmYWxzZTsKKworCQkqb3AtPnJlc3ZhbHVlID0gSnNvblBhdGhRdWVyeSgqb3AtPnJlc3Zh bHVlLCB3b3Jrc3BhY2UtPmpzb25wYXRoLAorCQkJCQkJCQkJICBKU1dfQ09ORElUSU9OQUwsCisJ CQkJCQkJCQkgICZlbXB0eSwgJmVycm9yLCBOVUxMLAorCQkJCQkJCQkJICBOVUxMKTsKKworCQkq b3AtPnJlc251bGwgPSBlbXB0eSB8fCBlcnJvcjsKKwl9CisJZWxzZQorCXsKKwkJSnNvbmIJICAg Kmpzb25iU291cmNlID0gRGF0dW1HZXRKc29uYlAoKm9wLT5yZXN2YWx1ZSk7CisKKwkJKm9wLT5y ZXN2YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpzb25iU291cmNlLAorCQkJCQkJCQkJCSAgd29y a3NwYWNlLT5pbmRleCwKKwkJCQkJCQkJCQkgIHNic3JlZnN0YXRlLT5udW11cHBlciwKKwkJCQkJ CQkJCQkgIG9wLT5yZXNudWxsLAorCQkJCQkJCQkJCSAgZmFsc2UpOworCX0KIH0KIAogLyoKQEAg LTM2NSw3ICs2NDYsNyBAQCBqc29uYl9leGVjX3NldHVwKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAq c2JzcmVmLAogewogCUpzb25iU3ViV29ya3NwYWNlICp3b3Jrc3BhY2U7CiAJTGlzdENlbGwgICAq bGM7Ci0JaW50CQkJbnVwcGVyID0gc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHItPmxlbmd0aDsKKwlp bnQJCQludXBwZXIgPSBsaXN0X2xlbmd0aChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcik7CiAJY2hh cgkgICAqcHRyOwogCiAJLyogQWxsb2NhdGUgdHlwZS1zcGVjaWZpYyB3b3Jrc3BhY2Ugd2l0aCBz cGFjZSBmb3IgcGVyLXN1YnNjcmlwdCBkYXRhICovCkBAIC0zNzQsNiArNjU1LDkgQEAganNvbmJf ZXhlY19zZXR1cChjb25zdCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAl3b3Jrc3BhY2UtPmV4 cGVjdEFycmF5ID0gZmFsc2U7CiAJcHRyID0gKChjaGFyICopIHdvcmtzcGFjZSkgKyBNQVhBTElH TihzaXplb2YoSnNvbmJTdWJXb3Jrc3BhY2UpKTsKIAorCWlmIChzYnNyZWYtPnJlZmpzb25icGF0 aCkKKwkJd29ya3NwYWNlLT5qc29ucGF0aCA9IERhdHVtR2V0SnNvblBhdGhQKGNhc3ROb2RlKENv bnN0LCBzYnNyZWYtPnJlZmpzb25icGF0aCktPmNvbnN0dmFsdWUpOworCiAJLyoKIAkgKiBUaGlz IGNvZGluZyBhc3N1bWVzIHNpemVvZihEYXR1bSkgPj0gc2l6ZW9mKE9pZCksIGVsc2Ugd2UgbWln aHQKIAkgKiBtaXNhbGlnbiB0aGUgaW5kZXhPaWQgcG9pbnRlcgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jCmluZGV4IDNkNmU2YmRiZmQyLi5iYWEzYWU5N2Q1NyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYwpAQCAtOTMyOSwxMCArOTMyOSwxMyBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5v ZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCQkgKiBQYXJlbnRoZXNpemUgdGhlIGFy Z3VtZW50IHVubGVzcyBpdCdzIGEgc2ltcGxlIFZhciBvciBhCiAJCQkJICogRmllbGRTZWxlY3Qu ICAoSW4gcGFydGljdWxhciwgaWYgaXQncyBhbm90aGVyCiAJCQkJICogU3Vic2NyaXB0aW5nUmVm LCB3ZSAqbXVzdCogcGFyZW50aGVzaXplIHRvIGF2b2lkCi0JCQkJICogY29uZnVzaW9uLikKKwkJ CQkgKiBjb25mdXNpb24uKSBBbHdheXMgYWRkIHBhcmVudGhlc2lzIGlmIEpTT04gc2ltcGxpZmll ZAorCQkJCSAqIGFjY2Vzc29yIGlzIHVzZWQsIGZvciBub3cuCiAJCQkJICovCi0JCQkJbmVlZF9w YXJlbnMgPSAhSXNBKHNic3JlZi0+cmVmZXhwciwgVmFyKSAmJgotCQkJCQkhSXNBKHNic3JlZi0+ cmVmZXhwciwgRmllbGRTZWxlY3QpOworCQkJCW5lZWRfcGFyZW5zID0gKCFJc0Eoc2JzcmVmLT5y ZWZleHByLCBWYXIpICYmCisJCQkJCSFJc0Eoc2JzcmVmLT5yZWZleHByLCBGaWVsZFNlbGVjdCkp IHx8CisJCQkJCQlzYnNyZWYtPnJlZmpzb25icGF0aDsKKwogCQkJCWlmIChuZWVkX3BhcmVucykK IAkJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKCcpOwogCQkJCWdldF9ydWxlX2V4cHIo KE5vZGUgKikgc2JzcmVmLT5yZWZleHByLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOwpAQCAtMTMw MDUsMTcgKzEzMDA4LDM1IEBAIHByaW50U3Vic2NyaXB0cyhTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCWxvd2xpc3RfaXRlbSA9IGxpc3RfaGVhZChz YnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CS8qIGNvdWxkIGJlIE5VTEwgKi8KIAlmb3JlYWNoKHVw bGlzdF9pdGVtLCBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikKIAl7Ci0JCWFwcGVuZFN0cmluZ0lu Zm9DaGFyKGJ1ZiwgJ1snKTsKLQkJaWYgKGxvd2xpc3RfaXRlbSkKKwkJTm9kZSAqdXBwZXIgPSAo Tm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pOworCisJCWlmICh1cHBlciAmJiBJc0EodXBwZXIs IEZpZWxkQWNjZXNzb3JFeHByKSkKIAkJeworCQkJRmllbGRBY2Nlc3NvckV4cHIgKmZhZSA9IChG aWVsZEFjY2Vzc29yRXhwciAqKSB1cHBlcjsKKworCQkJLyogVXNlIGRvdC1ub3RhdGlvbiBmb3Ig ZmllbGQgYWNjZXNzICovCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcuJyk7CisJCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihmYWUtPmZpZWxkbmFt ZSkpOworCisJCQkvKiBTa2lwIG1hdGNoaW5nIGxvdyBpbmRleCDigJQgZmllbGQgYWNjZXNzIGRv ZXNuJ3QgdXNlIHNsaWNlcyAqLworCQkJaWYgKGxvd2xpc3RfaXRlbSkKKwkJCQlsb3dsaXN0X2l0 ZW0gPSBsbmV4dChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCS8qIFVzZSBKU09OQiBhcnJheSBzdWJzY3JpcHRpbmcgKi8KKwkJCWFw cGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ1snKTsKKwkJCWlmIChsb3dsaXN0X2l0ZW0pCisJCQl7 CisJCQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBOVUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBu b3RoaW5nICovCisJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBsZmlyc3QobG93bGlzdF9pdGVt KSwgY29udGV4dCwgZmFsc2UpOworCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJzonKTsK KwkJCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwgbG93bGlz dF9pdGVtKTsKKwkJCX0KIAkJCS8qIElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1bGVf ZXhwciBwcmludHMgbm90aGluZyAqLwotCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBsZmlyc3Qo bG93bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOwotCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnOicpOwotCQkJbG93bGlzdF9pdGVtID0gbG5leHQoc2JzcmVmLT5yZWZsb3dlcmluZGV4 cHIsIGxvd2xpc3RfaXRlbSk7CisJCQlnZXRfcnVsZV9leHByKHVwcGVyLCBjb250ZXh0LCBmYWxz ZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICddJyk7CiAJCX0KLQkJLyogSWYgc3Vi ZXhwcmVzc2lvbiBpcyBOVUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBub3RoaW5nICovCi0JCWdl dF9ydWxlX2V4cHIoKE5vZGUgKikgbGZpcnN0KHVwbGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2Up OwotCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICddJyk7CiAJfQogfQogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oCmluZGV4IDZkZmNhM2NiMzViLi43ZTg5NjIxYmQ2NSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKQEAgLTcwOCwxOCArNzA4LDMwIEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGluZ1JlZgog CWludDMyCQlyZWZ0eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8q IGNvbGxhdGlvbiBvZiByZXN1bHQsIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXJl ZmNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7Ci0JLyogZXhwcmVzc2lv bnMgdGhhdCBldmFsdWF0ZSB0byB1cHBlciBjb250YWluZXIgaW5kZXhlcyAqLworCisJLyoKKwkg KiBleHByZXNzaW9ucyB0aGF0IGV2YWx1YXRlIHRvIHVwcGVyIGNvbnRhaW5lciBpbmRleGVzIG9y IGV4cHJlc3Npb25zCisJICogdGhhdCBhcmUgY29sbGVjdGVkIGJ1dCBub3QgZXZhbHVhdGVkIHdo ZW4gcmVmanNvbmJwYXRoIGlzIHNldC4KKwkgKi8KIAlMaXN0CSAgICpyZWZ1cHBlcmluZGV4cHI7 CiAKIAkvKgotCSAqIGV4cHJlc3Npb25zIHRoYXQgZXZhbHVhdGUgdG8gbG93ZXIgY29udGFpbmVy IGluZGV4ZXMsIG9yIE5JTCBmb3Igc2luZ2xlCi0JICogY29udGFpbmVyIGVsZW1lbnQuCisJICog ZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byBsb3dlciBjb250YWluZXIgaW5kZXhlcywgb3Ig TklMIGZvciBhCisJICogc2luZ2xlIGNvbnRhaW5lciBlbGVtZW50LCBvciBleHByZXNzaW9ucyB0 aGF0IGFyZSBjb2xsZWN0ZWQgYnV0IG5vdAorCSAqIGV2YWx1YXRlZCB3aGVuIHJlZmpzb25icGF0 aCBpcyBzZXQuCiAJICovCiAJTGlzdAkgICAqcmVmbG93ZXJpbmRleHByOwogCS8qIHRoZSBleHBy ZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGEgY29udGFpbmVyIHZhbHVlICovCiAJRXhwcgkgICAq cmVmZXhwcjsKIAkvKiBleHByZXNzaW9uIGZvciB0aGUgc291cmNlIHZhbHVlLCBvciBOVUxMIGlm IGZldGNoICovCiAJRXhwcgkgICAqcmVmYXNzZ25leHByOworCisJLyoKKwkgKiBjb250YWluZXIt c3BlY2lmaWMgZXh0cmEgaW5mb3JtYXRpb24sIGN1cnJlbnRseSB1c2VkIG9ubHkgYnkganNvbmIu CisJICogc3RvcmVzIGEgSnNvblBhdGggZXhwcmVzc2lvbiB3aGVuIGpzb25iIGRvdCBub3RhdGlv biBpcyB1c2VkLiBOVUxMIGZvcgorCSAqIHNpbXBsZSBzdWJzY3JpcHRpbmcuCisJICovCisJTm9k ZQkgICAqcmVmanNvbmJwYXRoOwogfSBTdWJzY3JpcHRpbmdSZWY7CiAKIC8qCkBAIC0yMzcxLDQg KzIzODMsNDAgQEAgdHlwZWRlZiBzdHJ1Y3QgT25Db25mbGljdEV4cHIKIAlMaXN0CSAgICpleGNs UmVsVGxpc3Q7CS8qIHRsaXN0IG9mIHRoZSBFWENMVURFRCBwc2V1ZG8gcmVsYXRpb24gKi8KIH0g T25Db25mbGljdEV4cHI7CiAKKy8qCisgKiBGaWVsZEFjY2Vzc29yRXhwciAtIHJlcHJlc2VudHMg YSBzaW5nbGUgb2JqZWN0IG1lbWJlciBhY2Nlc3MgdXNpbmcgZG90LW5vdGF0aW9uCisgKgkJaW4g SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCAoZS5nLiwganNvbmJfY29sLmEpLgorICoK KyAqIFRoZXNlIG5vZGVzIGFwcGVhciBhcyBsaXN0IGVsZW1lbnRzIGluIFN1YnNjcmlwdGluZ1Jl Zi5yZWZ1cHBlcmluZGV4cHIgdG8KKyAqIGluZGljYXRlIEpTT04gb2JqZWN0IGtleSBhY2Nlc3Mu IFRoZXkgYXJlIG5vdCBldmFsdWFibGUgZXhwcmVzc2lvbnMgYnkKKyAqIHRoZW1zZWx2ZXMgYnV0 IHNlcnZlIGFzIHBsYWNlaG9sZGVycyB0byBwcmVzZXJ2ZSBzb3VyY2UtbGV2ZWwgc3ludGF4IGZv cgorICogcnVsZSByZXdyaXRpbmcgYW5kIGRlcGFyc2luZyAoZS5nLiwgaW4gRVhQTEFJTiBhbmQg dmlldyBkZWZpbml0aW9ucykuCisgKiBFeGVjdXRpb24gaXMgaGFuZGxlZCBieSB0aGUgZW5jbG9z aW5nIFN1YnNjcmlwdGluZ1JlZi4KKyAqCisgKiBJZiBkb3Qtbm90YXRpb24gaXMgdXNlZCBpbiBh IFN1YnNjcmlwdGluZ1JlZiwgdGhlIEpTT04gcGF0aCBpcyByZXByZXNlbnRlZAorICogYXMgYSBm bGF0IGxpc3Qgb2YgRmllbGRBY2Nlc3NvckV4cHIgbm9kZXMgKGZvciBvYmplY3QgZmllbGQgYWNj ZXNzKSwgQ29uc3QKKyAqIG5vZGVzIChmb3IgYXJyYXkgaW5kZXhlcyksIGFuZCBOVUxMcyAoZm9y IG9taXR0ZWQgc2xpY2UgYm91bmRzKSwgcmF0aGVyIHRoYW4KKyAqIHRocm91Z2ggbmVzdGVkIGV4 cHJlc3Npb24gdHJlZXMuCisgKgorICogTm90ZTogVGhlIGZsYXQgcmVwcmVzZW50YXRpb24gYXZv aWRzIG5lc3RlZCBGaWVsZEFjY2Vzc29yRXhwciBjaGFpbnMsCisgKiBzaW1wbGlmeWluZyBldmFs dWF0aW9uIGFuZCBlbmFibGluZyBzdGFuZGFyZC1jb21wbGlhbnQgYmVoYXZpb3Igc3VjaCBhcwor ICogY29uZGl0aW9uYWwgYXJyYXkgd3JhcHBpbmcuIFRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciBw b3NpdGlvbi1hd2FyZQorICogd3JhcHBpbmcvdW53cmFwcGluZyBsb2dpYyBkdXJpbmcgZXhlY3V0 aW9uLgorICoKKyAqIEZvciBleGFtcGxlLCBpbiB0aGUgZXhwcmVzc2lvbjoKKyAqCQkoJ3siYSI6 IFt7ImIiOiAxfV19Jzo6anNvbmIpLmFbMF0uYgorICogdGhlIFN1YnNjcmlwdGluZ1JlZiB3aWxs IGNvbnRhaW46CisgKgkJLSByZWZleHByOiB0aGUgYmFzZSBleHByZXNzaW9uICh0aGUganNvbmIg dmFsdWUpCisgKgkJLSByZWZ1cHBlcmluZGV4cHI6IFtGaWVsZEFjY2Vzc29yRXhwcigiYSIpLCBD b25zdCgwKSwKKyAqCQkJRmllbGRBY2Nlc3NvckV4cHIoImIiKV0KKyAqCQktIHJlZmxvd2VyaW5k ZXhwcjogW05VTEwsIE5VTEwsIE5VTExdIChzbGljZSBsb3dlciBib3VuZHMgbm90IHVzZWQgaGVy ZSkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgRmllbGRBY2Nlc3NvckV4cHIKK3sKKwlOb2RlVGFnCQl0 eXBlOworCWNoYXIJICAgKmZpZWxkbmFtZTsJCS8qIG5hbWUgb2YgdGhlIEpTT05CIG9iamVjdCBm aWVsZCBhY2Nlc3NlZCB2aWEKKwkJCQkJCQkJICogZG90IG5vdGF0aW9uICovCisJT2lkCQkJZmFl Y29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKK30JCQlGaWVsZEFjY2Vz c29yRXhwcjsKKwogI2VuZGlmCQkJCQkJCS8qIFBSSU1OT0RFU19IICovCmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYyBiL3NyYy9pbnRl cmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCmluZGV4IDM5MjIxZjllYTVk Li5lNmE3ZWNlNmRhYiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVk L3NxbC1zcWxqc29uLmMKQEAgLTQxNywxMiArNDE3LDEyMiBAQCBpZiAoc3FsY2Euc3FsY29kZSA8 IDApIHNxbHByaW50KCk7fQogCSAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplb2YoaXNfanNvbik7 IGkrKykKIAkJICBwcmludGYoIkZvdW5kIGlzX2pzb25bJWRdOiAlc1xuIiwgaSwgaXNfanNvbltp XSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCi0gIHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJD VVJSRU5UIik7CisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3Jt YWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBq c29uYiApIC4gXCJhXCIgKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25n KTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1Is IE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKICNsaW5lIDExOCAic3FsanNvbi5wZ2Mi CiAKIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAjbGluZSAxMTggInNxbGpz b24ucGdjIgogCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2Rv KF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAn e1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iIC4gXCJhXCIgKSIsIEVDUEd0 X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6 ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BH dF9FT1JUKTsKKyNsaW5lIDEyMSAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwg MCkgc3FscHJpbnQoKTt9CisjbGluZSAxMjEgInNxbGpzb24ucGdjIgorCisJLy8gZXJyb3IKKwor CXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0 IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9fScgOjoganNvbmIgKSAuIGEg KSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwo MTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEws IDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEyNCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5z cWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxMjQgInNxbGpzb24ucGdjIgorCisJcHJp bnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAx LCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJc IjogMSwgXCJjXCI6IDJ9fScgOjoganNvbmIgKSAuIGEgLiBiICkiLCBFQ1BHdF9FT0lULCAKKwlF Q1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwg CisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7Cisj bGluZSAxMjcgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50 KCk7fQorI2xpbmUgMTI3ICJzcWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNvbj0lc1xu IiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25v cm1hbCwgInNlbGVjdCBqc29uICggY29hbGVzY2UgKCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6 IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iICkgLiBjICkgLCAnbnVsbCcgKSApIiwgRUNQR3RfRU9J VCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2Yo Y2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VP UlQpOworI2xpbmUgMTMwICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBz cWxwcmludCgpO30KKyNsaW5lIDEzMCAic3FsanNvbi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpz b249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVD UEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjog Mn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpz b25iICkgLiBiIFsgMCBdICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9u ZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9S LCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMzMgInNxbGpzb24ucGdj IgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTMzICJzcWxq c29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdk byhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICgg KCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4 XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgLiB4ICkiLCBFQ1BHdF9FT0lU LCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihj aGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9S VCk7CisjbGluZSAxMzYgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQorI2xpbmUgMTM2ICJzcWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNv bj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQ R3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAy fSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNv bmIgKSBbICdiJyBdIFsgMCBdICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwo bG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNB VE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMzkgInNxbGpzb24u cGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTM5ICJz cWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVD UEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29u ICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7 XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyAxIF0gLiB4IFsgMCA6 IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcp MSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwg MEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDE0MiAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxj YS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNDIgInNxbGpzb24ucGdjIgorCisJ Ly8gZXJyb3IKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9y bWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJc IjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4g KiApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykx LCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAw TCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTQ1ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNh LnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDE0NSAic3FsanNvbi5wZ2MiCisKKwkv LyBlcnJvcgorCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3Jt YWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwi OiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgWyAn YicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykx MDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBO VUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxNDggInNxbGpzb24ucGdjIgor CitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTQ4ICJzcWxqc29u LnBnYyIKKworCS8vIGVycm9yCisKKyAgeyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJF TlQiKTsKKyNsaW5lIDE1MSAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkg c3FscHJpbnQoKTt9CisjbGluZSAxNTEgInNxbGpzb24ucGdjIgorCiAKICAgcmV0dXJuIDA7CiB9 CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpz b24uc3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LnN0ZGVycgppbmRleCBlNTVhOTVkZDcxMS4uMTlmOGM1OGFmMDYgMTAwNjQ0Ci0tLSBhL3NyYy9p bnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKKysrIGIvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgpAQCAtMjY4 LDUgKzI2OCwxMDUgQEAgU1FMIGVycm9yOiBjYW5ub3QgdXNlIHR5cGUganNvbmIgaW4gUkVUVVJO SU5HIGNsYXVzZSBvZiBKU09OX1NFUklBTElaRSgpIG9uIGxpbmUKIFtOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEw MjogUkVTVUxUOiBmIG9mZnNldDogLTE7IGFycmF5OiBubwogW05PX1BJRF06IHNxbGNhOiBjb2Rl OiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMTg6IHF1 ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiAp IC4gImEiICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNz aW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVj cGdfZXhlY3V0ZSBvbiBsaW5lIDExODogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGlu ZSAxMTg6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxkcworW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxp bmUgMTE4OiBSRVNVTFQ6IHsiYiI6IDEsICJjIjogMn0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhl Y3V0ZSBvbiBsaW5lIDEyMTogcXVlcnk6IHNlbGVjdCBqc29uICggJ3siYSI6IHsiYiI6IDEsICJj IjogMn19JyA6OiBqc29uYiAuICJhIiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rp b24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjE6IHVzaW5nIFBRZXhlYworW05P X1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNr X1BRcmVzdWx0IG9uIGxpbmUgMTIxOiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIHNjaGVtYSAianNv bmIiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHNlbGVjdCBqc29uICggJ3siYSI6IHsiYiI6IDEs ICJjIjogMn19JyA6OiBqc29uYiAuICJhIiApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgM0YwMDAgKHNxbGNvZGUgLTQwMCk6 IHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0IG9uIGxpbmUgMTIxCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IC00MDAsIHN0YXRlOiAzRjAwMAorU1FMIGVycm9yOiBzY2hlbWEgImpzb25iIiBk b2VzIG5vdCBleGlzdCBvbiBsaW5lIDEyMQorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5l IDEyNDogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfX0nIDo6 IGpzb25iICkgLiBhICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9y ZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNDogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQg b24gbGluZSAxMjQ6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxkcworW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2dldF9kYXRh IG9uIGxpbmUgMTI0OiBSRVNVTFQ6IHsiYiI6IDEsICJjIjogMn0gb2Zmc2V0OiAtMTsgYXJyYXk6 IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVj cGdfZXhlY3V0ZSBvbiBsaW5lIDEyNzogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJi IjogMSwgImMiOiAyfX0nIDo6IGpzb25iICkgLiBhIC4gYiApOyB3aXRoIDAgcGFyYW1ldGVyKHMp IG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjc6IHVzaW5n IFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURd OiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTI3OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVz IHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEyNzogUkVTVUxUOiAxIG9mZnNldDogLTE7 IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19Q SURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzA6IHF1ZXJ5OiBzZWxlY3QganNvbiAoIGNvYWxl c2NlICgganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiApIC4gYyAp ICwgJ251bGwnICkgKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3Jl Z3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMwOiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBv biBsaW5lIDEzMDogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEg b24gbGluZSAxMzA6IFJFU1VMVDogbnVsbCBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9u IGxpbmUgMTMzOiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIg WyAwIF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Np b24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNw Z19leGVjdXRlIG9uIGxpbmUgMTMzOiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5l IDEzMzogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGlu ZSAxMzM6IFJFU1VMVDogeyJ4IjogMX0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTog c3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBs aW5lIDEzNjogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwg ImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIC4g eCApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4 ZWN1dGUgb24gbGluZSAxMzY6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTM2 OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEz NjogUkVTVUxUOiBbMSwgWzEyLCB7InkiOiAxfV1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05P X1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1 dGUgb24gbGluZSAxMzk6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJj IjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiAp IFsgJ2InIF0gWyAwIF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcx X3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTM5OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1 dCBvbiBsaW5lIDEzOTogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2Rh dGEgb24gbGluZSAxMzk6IFJFU1VMVDogeyJ4IjogMX0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhl Y3V0ZSBvbiBsaW5lIDE0MjogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwg ImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25i ICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVj dGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAw MDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0MjogdXNpbmcgUFFleGVjCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfY2hl Y2tfUFFyZXN1bHQgb24gbGluZSAxNDI6IGJhZCByZXNwb25zZSAtIEVSUk9SOiAganNvbmIgc3Vi c2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCitMSU5FIDE6IC4uLiwgeyJ4IjogWzEyLCB7 InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyAxIF0gLiB4IFsgMCA6IF0gKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogcmFpc2lu ZyBzcWxzdGF0ZSA0MjgwNCAoc3FsY29kZSAtNDAwKToganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90 IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAs IHN0YXRlOiA0MjgwNAorU1FMIGVycm9yOiBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9y dCBzbGljZXMgb24gbGluZSAxNDIKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDU6 IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3si eCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApOyB3aXRoIDAg cGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGlu ZSAxNDU6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTQ1OiBiYWQgcmVzcG9u c2UgLSBFUlJPUjogIHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUK K0xJTkUgMTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7 IngiOiAxfSwgeyJ4Li4uCisgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgMEEw MDAgKHNxbGNvZGUgLTQwMCk6IHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVk IGhlcmUgb24gbGluZSAxNDUKK1tOT19QSURdOiBzcWxjYTogY29kZTogLTQwMCwgc3RhdGU6IDBB MDAwCitTUUwgZXJyb3I6IHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhl cmUgb24gbGluZSAxNDUKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHF1ZXJ5 OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9 LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIDogXSApOyB3 aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUg b24gbGluZSAxNDg6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTQ4OiBiYWQg cmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNl cworTElORSAxOiAuLi54IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkg WyAnYicgXSBbIDAgOiBdICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0 YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQw MCk6IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0OAor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKK1NRTCBlcnJvcjoganNv bmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQ4CiBbTk9fUElE XTogZWNwZ19maW5pc2g6IGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbiBjbG9zZWQKIFtOT19Q SURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0IGIvc3JjL2ludGVyZmFj ZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dAppbmRleCA4M2Y4ZGYxM2U1 YS4uNDQyZDM2OTMxZjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBl Y3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dApAQCAtMjgsMyArMjgsMTAgQEAgRm91bmQgaXNfanNv bls0XTogZmFsc2UKIEZvdW5kIGlzX2pzb25bNV06IGZhbHNlCiBGb3VuZCBpc19qc29uWzZdOiB0 cnVlCiBGb3VuZCBpc19qc29uWzddOiBmYWxzZQorRm91bmQganNvbj17ImIiOiAxLCAiYyI6IDJ9 CitGb3VuZCBqc29uPXsiYiI6IDEsICJjIjogMn0KK0ZvdW5kIGpzb249MQorRm91bmQganNvbj1u dWxsCitGb3VuZCBqc29uPXsieCI6IDF9CitGb3VuZCBqc29uPVsxLCBbMTIsIHsieSI6IDF9XV0K K0ZvdW5kIGpzb249eyJ4IjogMX0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24u cGdjCmluZGV4IGRkY2JjYzNiM2NiLi41N2E5YmZmNDI0ZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVy ZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3Bn L3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xMTUsNiArMTE1LDM5IEBAIEVYRUMgU1FMIEVORCBE RUNMQVJFIFNFQ1RJT047CiAJICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihpc19qc29uKTsg aSsrKQogCQkgIHByaW50ZigiRm91bmQgaXNfanNvblslZF06ICVzXG4iLCBpLCBpc19qc29uW2ld ID8gInRydWUiIDogImZhbHNlIik7CiAKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsi YiI6IDEsICJjIjogMn19Jzo6anNvbmIpLiJhIikgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5k IGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oJ3siYSI6IHsiYiI6 IDEsICJjIjogMn19Jzo6anNvbmIuImEiKSBJTlRPIDpqc29uOworCS8vIGVycm9yCisKKwlFWEVD IFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6anNvbmIpLmEpIElO VE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FM IFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfX0nOjpqc29uYikuYS5iKSBJTlRP IDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBT RUxFQ1QgSlNPTihDT0FMRVNDRShKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfX0nOjpqc29u YikuYyksICdudWxsJykpIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBq c29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwg ImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYikuYlswXSkgSU5U TyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwg U0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4 IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS5iLngpIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjog eyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0n Ojpqc29uYilbJ2InXVswXSkgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhb MDpdKSBJTlRPIDpqc29uOworCS8vIGVycm9yCisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3si YSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1d fV19Jzo6anNvbmIpLiopIElOVE8gOmpzb247CisJLy8gZXJyb3IKKworCUVYRUMgU1FMIFNFTEVD VCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsx MiwgeyJ5IjoxfV19XX0nOjpqc29uYilbJ2InXVswOl0pIElOVE8gOmpzb247CisJLy8gZXJyb3IK KwogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCiAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2pzb25iLm91dAppbmRleCA1YTFlYjE4YWJhMi4uZDU5NmU3MTIzNzIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvanNvbmIub3V0CkBAIC00OTg5LDYgKzQ5ODksMTIgQEAgc2VsZWN0ICgnMTIz Jzo6anNvbmIpWydhJ107CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5hOwor IGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogIGpzb25i IAogLS0tLS0tLQpAQCAtNTAwMSwxMiArNTAwNywyNCBAQCBzZWxlY3QgKCcxMjMnOjpqc29uYilb TlVMTF07CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5OVUxMOworIG51bGwg CistLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ2EnXTsK ICBqc29uYiAKIC0tLS0tLS0KICAxCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNv bmIpLmE7CisgYSAKKy0tLQorIDEKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29u YilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC01MDE5LDYgKzUwMzcsMTIgQEAgc2VsZWN0ICgn eyJhIjogMX0nOjpqc29uYilbJ25vdF9leGlzdCddOwogIAogKDEgcm93KQogCitzZWxlY3QgKCd7 ImEiOiAxfSc6Ompzb25iKS4ibm90X2V4aXN0IjsKKyBub3RfZXhpc3QgCistLS0tLS0tLS0tLQor IAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVtOVUxMXTsKICBqc29uYiAK IC0tLS0tLS0KQEAgLTUwMzEsNiArNTA1NSwxMiBAQCBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6 Ompzb25iKVsnYSddOwogIAogKDEgcm93KQogCitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompz b25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC01MDQzLDYgKzUwNzMsMTIgQEAgc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbJzEnXTsKICAiMiIKICgxIHJvdykKIAorc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuIjEiOworIDEgCistLS0KKyAKKygxIHJvdykK Kwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMS4wXTsKIEVSUk9SOiAgc3Vic2Ny aXB0IHR5cGUgbnVtZXJpYyBpcyBub3Qgc3VwcG9ydGVkCiBMSU5FIDE6IHNlbGVjdCAoJ1sxLCAi MiIsIG51bGxdJzo6anNvbmIpWzEuMF07CkBAIC01MDcyLDYgKzUxMDgsMTIgQEAgc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bJ2EnXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV0uYTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKIHNl bGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWzBdOwogIGpzb25iIAogLS0tLS0tLQpA QCAtNTA4NCw1NiArNTEyNiwxMjcgQEAgc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjog WzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwogICJjIgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEi OiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmI7CisgIGIgIAorLS0tLS0K KyAiYyIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIs IDNdfSc6Ompzb25iKVsnZCddOwogICAganNvbmIgICAKIC0tLS0tLS0tLS0tCiAgWzEsIDIsIDNd CiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0n Ojpqc29uYikuZDsKKyAgICAgZCAgICAgCistLS0tLS0tLS0tLQorIFsxLCAyLCAzXQorKDEgcm93 KQorCiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIp WydkJ11bMV07CiAganNvbmIgCiAtLS0tLS0tCiAgMgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEi OiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmRbMV07CisgZCAKKy0tLQor IDIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNd fSc6Ompzb25iKVsnZCddWydhJ107CiAganNvbmIgCiAtLS0tLS0tCiAgCiAoMSByb3cpCiAKK3Nl bGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZFsnYSdd OworIGQgCistLS0KKyAKKygxIHJvdykKKworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJk IjogWzEsIDIsIDNdfSc6Ompzb25iKS5kLmE7CisgYSAKKy0tLQorIAorKDEgcm93KQorCitzZWxl Y3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiB7ImEiOiBbMSwgMiwgM119fSc6Ompzb25iKS5k WydhJ11bMF07CisgZCAKKy0tLQorIDEKKygxIHJvdykKKworc2VsZWN0ICgneyJhIjogMSwgImIi OiAiYyIsICJkIjogeyJhIjogWzEsIDIsIDNdfX0nOjpqc29uYikuZC5hWzBdOworIGEgCistLS0K KyAxCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIi OiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXTsKICAgICAganNvbmIgICAg IAogLS0tLS0tLS0tLS0tLS0tCiAgeyJhMiI6ICJhYWEifQogKDEgcm93KQogCitzZWxlY3QgKCd7 ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNv bmIpLmEuYTE7CisgICAgICBhMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorIHsiYTIiOiAiYWFh In0KKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6 ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSddWydhMSddWydhMiddOwogIGpzb25iIAog LS0tLS0tLQogICJhYWEiCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjog ImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMjsKKyAgYTIg ICAKKy0tLS0tLS0KKyAiYWFhIgorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJh MiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ11b J2EyJ11bJ2EzJ107CiAganNvbmIgCiAtLS0tLS0tCiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3si YSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29u YikuYS5hMS5hMi5hMzsKKyBhMyAKKy0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjog WyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25i KVsnYSddWzFdWydiMSddOwogICAgICAgICAganNvbmIgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgWyJhYWEiLCAiYmJiIiwgImNjYyJdCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3si YSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpq c29uYikuYVsxXS5iMTsKKyAgICAgICAgICBiMSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFsiYWFhIiwgImJiYiIsICJjY2MiXQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEi OiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNv bmIpWydhJ11bMV1bJ2IxJ11bMl07CiAganNvbmIgCiAtLS0tLS0tCiAgImNjYyIKICgxIHJvdykK IAotLS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVkCi1zZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25i KVsnYSc6J2InXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwg ImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMVsyXTsKKyAgYjEgICAKKy0tLS0t LS0KKyAiY2NjIgorKDEgcm93KQorCitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2In XTsgLS0gZmFpbHMKIEVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xp Y2VzCiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpAQCAtNTgzMSwzICs1OTQ0LDI5OSBA QCBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDUnOjpqc29uYjo6aW50ODsKICAxMjM0NQogKDEgcm93KQogCistLSBkb3Qgbm90YXRpb24K K0NSRUFURSBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiBBUworU0VMRUNUICd7ImEiOiBb MSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5Iiwg InoiOiAienp6In19XSwgImIiOiBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAi eiI6ICJaWloifX1dfSc6Ompzb25iIGpiOworU0VMRUNUIChqYikuYSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAy LCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6 ICJ6enoifX1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLiJhIiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOyAtLSBkb3VibGUgcXVvdGUgc2hvdWxkIHdvcmsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJm IiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XQorKDEgcm93KQorCitTRUxFQ1QgKGpi KS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gc2luZ2xlIHF1b3RlIHNob3Vs ZCBub3Qgd29yaworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiJ2EnIgorTElORSAx OiBTRUxFQ1QgKGpiKS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAg ICAgICAgICAgICAgXgorc2VsZWN0IChqYilbMF0uYSBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOyAtLSByZXR1cm5zIHNhbWUgcmVzdWx0IGFzIChqYikuYQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYi LCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dCisoMSByb3cpCisKK3NlbGVjdCAoamIp WzFdLmEgZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMCisgYSAK Ky0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgYiAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV0KKygxIHJv dykKKworU0VMRUNUIChqYikuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGMgCist LS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykK KworU0VMRUNUIChqYikuYVsyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgIGIg IAorLS0tLS0KKyAiYyIKKygxIHJvdykKKworU0VMRUNUIChqYikuYS54LnkgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5IgorKDEgcm93KQorCitT RUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgeiAgIAor LS0tLS0tLQorICJaWloiCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CisgYyAKKy0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKChqYiku YilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7IC0tIGZhaWxzCitFUlJPUjog IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworU0VMRUNUIChqYikuYS4q IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGZhaWxzCitFUlJPUjogIHR5cGUganNv bmIgaXMgbm90IGNvbXBvc2l0ZQorLS0gZXhwbGFpbnMgc2hvdWxkIHdvcmsKK0VYUExBSU4gKFZF UkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2Nh biBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdAorICAgT3V0cHV0OiAoamIpLmEK KygyIHJvd3MpCisKK1NFTEVDVCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u IHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsIDIsIHsiYiI6ICJj In0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0K KygxIHJvdykKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWzFd IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAg IE91dHB1dDogKGpiKS5hWzFdCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CisgYSAKKy0tLQorIDIKKygxIHJvdykKKworLS0gdmlld3Mg c2hvdWxkIHdvcmsKK0NSRUFURSBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNF TEVDVCAoamIpLmFbM10ueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRl c3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCisgU0VMRUNUIChqYikuYVszXS54LnkgQVMgeQor ICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorLS0gbWl4ZWQgc3ludGF4CitEUk9QIFZJ RVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBP RkYpIFNFTEVDVCAoamIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYlsnYSc6OnRleHRdKS5iCisoMiByb3dz KQorCitTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0g cmV0dXJucyBhbiBhcnJheSBkdWUgdG8gbGF4IG1vZGUKKyAgICAgYiAgICAgIAorLS0tLS0tLS0t LS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1Ig UkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVD VCAoamJbJ2EnOjp0ZXh0XSkuYiBBUyBiCisgICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u CitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworICAgICBiICAgICAg CistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYp IFNFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNv bmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoamIpLmEpWydiJzo6dGV4dF0KKygyIHJvd3Mp CisKK1NFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBy ZXR1cm5zIE5VTEwgZHVlIHRvIHN0cmljdCBtb2RlCisgYSAKKy0tLQorIAorKDEgcm93KQorCitD UkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAo amIpLmFbJ2InXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoKGpiKS5hKVsnYic6OnRleHRdIEFTIGEKKyAg IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjE7CisgYSAKKy0tLQorIAorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGlj LnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoamIpLmIueClbJ3onOjp0ZXh0XQorKDIg cm93cykKKworU0VMRUNUIChqYikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsgLS0gd2FybmluZ3MKKyAgIHggICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitDUkVB VEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIp LmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxIEFTCisgU0VMRUNUICgoamIpLmIueClbJ3onOjp0ZXh0XSBBUyB4Cisg ICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxOworICAgeCAgIAorLS0tLS0tLQorICJaWloiCisoMSByb3cpCisKK0RS T1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2Nh biBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKChqYlsnYic6 OnRleHRdKS54KVsneic6OnRleHRdCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKVsnYiddLnhbJ3on XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAgLS0gd2FybmluZ3MKKyAgIHggICAKKy0t LS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NSRUFURSBP UiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCisgU0VM RUNUICgoamJbJ2InOjp0ZXh0XSkueClbJ3onOjp0ZXh0XSBBUyB4CisgICBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx OworICAgeCAgIAorLS0tLS0tLQorICJaWloiCisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYp IFNFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKCgoamIpLmIpWyd4Jzo6dGV4dF0pLnoKKygy IHJvd3MpCisKK1NFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247IC0tIHJldHVybnMgTlVMTAorIHogCistLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFZJRVcg cHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKS5iWyd4J10u eiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0 aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MSBBUworIFNFTEVDVCAoKChqYikuYilbJ3gnOjp0ZXh0XSkueiBBUyB6CisgICBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxOworIHogCistLS0KKyAKKygxIHJvdykKKworRFJPUCBWSUVXIHB1YmxpYy50ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VM RUNUIChqYikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pz b25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiKS5iKVsneCc6OnRleHRdWyd6Jzo6dGV4 dF0KKygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorIGIgCistLS0KKyAKKygxIHJvdykKKworQ1JF QVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpi KS5iWyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNv bmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pz b25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoKGpiKS5iKVsneCc6OnRleHRdWyd6Jzo6 dGV4dF0gQVMgYgorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJv bSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKyBiIAorLS0tCisgCisoMSByb3cpCisKK0RS T1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpWydiJ11bJ3gnXS56IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2Nh biBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiWydiJzo6 dGV4dF1bJ3gnOjp0ZXh0XSkuegorKDIgcm93cykKKworU0VMRUNUIChqYilbJ2InXVsneCddLnog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMCisgeiAKKy0tLQor IAorKDEgcm93KQorCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25f djEgQVMKK1NFTEVDVCAoamIpWydiJ11bJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NSRUFURSBPUiBSRVBMQUNFIFZJ RVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCisgU0VMRUNUIChqYlsnYic6 OnRleHRdWyd4Jzo6dGV4dF0pLnogQVMgegorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKyB6IAorLS0tCisg CisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7 CistLSBjbGVhbiB1cAorRFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2pzb25iLnNxbAppbmRleCA1N2MxMWFjZGRmZS4uNTkwN2NhZDY5ZmQgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9qc29uYi5zcWwKQEAgLTEzMDQsMzMgKzEzMDQsNTEgQEAgc2VsZWN0IGpzb25iX2luc2VydCgn eyJhIjogeyJiIjogInZhbHVlIn19JywgJ3thLCBifScsICcibmV3X3ZhbHVlIicsIHRydWUpOwog CiAtLSBqc29uYiBzdWJzY3JpcHQKIHNlbGVjdCAoJzEyMyc6Ompzb25iKVsnYSddOworc2VsZWN0 ICgnMTIzJzo6anNvbmIpLmE7CiBzZWxlY3QgKCcxMjMnOjpqc29uYilbMF07CiBzZWxlY3QgKCcx MjMnOjpqc29uYilbTlVMTF07CitzZWxlY3QgKCcxMjMnOjpqc29uYikuTlVMTDsKIHNlbGVjdCAo J3siYSI6IDF9Jzo6anNvbmIpWydhJ107CitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKS5hOwog c2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbMF07CiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25i KVsnbm90X2V4aXN0J107CitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKS4ibm90X2V4aXN0IjsK IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpW05VTExdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVs bF0nOjpqc29uYilbJ2EnXTsKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpLmE7CiBz ZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVswXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWycxJ107CitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS4iMSI7 CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxLjBdOwogc2VsZWN0ICgnWzEsICIy IiwgbnVsbF0nOjpqc29uYilbMl07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsz XTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWy0yXTsKIHNlbGVjdCAoJ1sxLCAi MiIsIG51bGxdJzo6anNvbmIpWzFdWydhJ107CitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompz b25iKVsxXS5hOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bMF07CiBzZWxl Y3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpWydiJ107Citz ZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmI7CiBz ZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpWydkJ107 CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQ7 CiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpWydk J11bMV07CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNv bmIpLmRbMV07CiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6 anNvbmIpWydkJ11bJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAy LCAzXX0nOjpqc29uYikuZFsnYSddOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjog WzEsIDIsIDNdfSc6Ompzb25iKS5kLmE7CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQi OiB7ImEiOiBbMSwgMiwgM119fSc6Ompzb25iKS5kWydhJ11bMF07CitzZWxlY3QgKCd7ImEiOiAx LCAiYiI6ICJjIiwgImQiOiB7ImEiOiBbMSwgMiwgM119fSc6Ompzb25iKS5kLmFbMF07CiBzZWxl Y3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9 Jzo6anNvbmIpWydhJ11bJ2ExJ107CitzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEi fX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpLmEuYTE7CiBzZWxlY3QgKCd7ImEi OiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIp WydhJ11bJ2ExJ11bJ2EyJ107CitzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0s ICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpLmEuYTEuYTI7CiBzZWxlY3QgKCd7ImEi OiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIp WydhJ11bJ2ExJ11bJ2EyJ11bJ2EzJ107CitzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJh YWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpLmEuYTEuYTIuYTM7CiBzZWxl Y3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJi YiJ9Jzo6anNvbmIpWydhJ11bMV1bJ2IxJ107CitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6 IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjE7CiBz ZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6 ICJiYiJ9Jzo6anNvbmIpWydhJ11bMV1bJ2IxJ11bMl07CitzZWxlY3QgKCd7ImEiOiBbImExIiwg eyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0u YjFbMl07CiAKLS0tIHNsaWNlcyBhcmUgbm90IHN1cHBvcnRlZAotc2VsZWN0ICgneyJhIjogMX0n Ojpqc29uYilbJ2EnOidiJ107CitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsg LS0gZmFpbHMKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6Ml07CiBzZWxlY3Qg KCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVs6Ml07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6 Ompzb25iKVsxOl07CkBAIC0xNTkwLDMgKzE2MDgsOTQgQEAgc2VsZWN0ICcxMjM0NS4wMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmZsb2F0ODsK IHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwNSc6Ompzb25iOjppbnQyOwogc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDQ7CiBzZWxlY3QgJzEyMzQ1LjAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50 ODsKKworLS0gZG90IG5vdGF0aW9uCitDUkVBVEUgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRp b24gQVMKK1NFTEVDVCAneyJhIjogWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAi ZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sICJiIjogWzMsIDQsIHsiYiI6ICJn IiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XX0nOjpqc29uYiBqYjsKKworU0VMRUNU IChqYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuImEiIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGRvdWJsZSBxdW90ZSBzaG91bGQgd29yawor U0VMRUNUIChqYikuJ2EnIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHNpbmdsZSBx dW90ZSBzaG91bGQgbm90IHdvcmsKK3NlbGVjdCAoamIpWzBdLmEgZnJvbSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsgLS0gcmV0dXJucyBzYW1lIHJlc3VsdCBhcyAoamIpLmEKK3NlbGVjdCAoamIp WzFdLmEgZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMCitTRUxF Q1QgKGpiKS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5jIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLmIgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmFbMl0uYiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworU0VMRUNUIChqYikuYS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK1NFTEVDVCAoamIpLmIueC56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxF Q1QgKGpiKS5hLmIuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUICgoamIp LmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OyAtLSBmYWlscworU0VMRUNU IChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGZhaWxzCisKKy0tIGV4 cGxhaW5zIHNob3VsZCB3b3JrCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAo dC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKHQuamIpLmEg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxF Q1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisKKy0tIHZpZXdzIHNo b3VsZCB3b3JrCitDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUyBTRUxF Q1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxCisKKy0tIG1peGVkIHN5bnRheAorRFJPUCBWSUVXIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxOworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNF TEVDVCAoamIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChq YilbJ2EnXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgYW4gYXJy YXkgZHVlIHRvIGxheCBtb2RlCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5h WydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmFbJ2InXSBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwgZHVlIHRvIHN0cmlj dCBtb2RlCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMK K1NFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRl c3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsK KworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYi54Wyd6J10gRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gd2FybmluZ3MKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYi54Wyd6J10gRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorU0VM RUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RST1AgVklFVyBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9G RikgU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK K1NFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247ICAt LSB3YXJuaW5ncworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx IEFTCitTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNv bmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5iWyd4 J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYlsneCddLnog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMCitDUkVBVEUgVklF VyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpLmJbJ3gn XS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9Q IFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworCitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5iWyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorU0VMRUNU ICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RST1AgVklFVyBwdWJsaWMudGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikg U0VMRUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NF TEVDVCAoamIpWydiJ11bJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJl dHVybnMgTlVMTAorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx IEFTCitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNv bmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MTsKKworLS0gY2xlYW4gdXAKK0RST1AgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGExM2U4MTYyODkwLi5jYzY0NjQyZjM5 OSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTgwNSw2ICs4MDUsNyBAQCBGZHdSb3V0 aW5lCiBGZXRjaERpcmVjdGlvbgogRmV0Y2hEaXJlY3Rpb25LZXl3b3JkcwogRmV0Y2hTdG10CitG aWVsZEFjY2Vzc29yRXhwcgogRmllbGRTZWxlY3QKIEZpZWxkU3RvcmUKIEZpbGUKLS0gCjIuMzku NSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000000237be063ddc34cd Content-Type: application/octet-stream; name="v15-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v15-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf3bvwr85 RnJvbSBlN2ZkZDQ4YTk3ZWQzNGZiZWIwZjRlYWQ3Yjc1MTQ2YzFjYTY4MDgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE1IDMvN10gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw YXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNlIHRoZQphZm9y ZW1lbnRpb25lZCBmdW5jdGlvbi4KCkF1dGhvcmVkLWJ5OiBOaWtpdGEgR2x1a2hvdiA8Z2x1a2hv di5uLmFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53 YW5nLm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1 bnNsYW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5 N0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFp bC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMgfCAxOSArKysrKysr KysrKysrKystLS0tCiBzcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5oICAgICB8ICA0ICsrKysK IDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9qc29ucGF0aC5jCmluZGV4IDc2MmY3ZThhMDlkLi45NzZhZWU4NGNmMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2pzb25wYXRoLmMKQEAgLTE2NiwxNSArMTY2LDEzIEBAIGpzb25wYXRoX3NlbmQo UEdfRlVOQ1RJT05fQVJHUykKICAqIENvbnZlcnRzIEMtc3RyaW5nIHRvIGEganNvbnBhdGggdmFs dWUuCiAgKgogICogVXNlcyBqc29ucGF0aCBwYXJzZXIgdG8gdHVybiBzdHJpbmcgaW50byBhbiBB U1QsIHRoZW4KLSAqIGZsYXR0ZW5Kc29uUGF0aFBhcnNlSXRlbSgpIGRvZXMgc2Vjb25kIHBhc3Mg dHVybmluZyBBU1QgaW50byBiaW5hcnkKKyAqIGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkgZG9l cyBzZWNvbmQgcGFzcyB0dXJuaW5nIEFTVCBpbnRvIGJpbmFyeQogICogcmVwcmVzZW50YXRpb24g b2YganNvbnBhdGguCiAgKi8KIHN0YXRpYyBEYXR1bQoganNvblBhdGhGcm9tQ3N0cmluZyhjaGFy ICppbiwgaW50IGxlbiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKIHsKIAlKc29uUGF0aFBhcnNl UmVzdWx0ICpqc29ucGF0aCA9IHBhcnNlanNvbnBhdGgoaW4sIGxlbiwgZXNjb250ZXh0KTsKLQlK c29uUGF0aCAgICpyZXM7Ci0JU3RyaW5nSW5mb0RhdGEgYnVmOwogCiAJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZXNjb250ZXh0KSkKIAkJcmV0dXJuIChEYXR1bSkgMDsKQEAgLTE4NSw4ICsxODMs MjEgQEAganNvblBhdGhGcm9tQ3N0cmluZyhjaGFyICppbiwgaW50IGxlbiwgc3RydWN0IE5vZGUg KmVzY29udGV4dCkKIAkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAl czogXCIlc1wiIiwgImpzb25wYXRoIiwKIAkJCQkJCWluKSkpOwogCisJcmV0dXJuIGpzb25QYXRo RnJvbVBhcnNlUmVzdWx0KGpzb25wYXRoLCA0ICogbGVuLCBlc2NvbnRleHQpOworfQorCisvKgor ICogQ29udmVydHMganNvbnBhdGggQWJzdHJhY3QgU3ludGF4IFRyZWUgKEFTVCkgaW50byBqc29u cGF0aCB2YWx1ZSBpbiBiaW5hcnkuCisgKi8KK0RhdHVtCitqc29uUGF0aEZyb21QYXJzZVJlc3Vs dChKc29uUGF0aFBhcnNlUmVzdWx0ICpqc29ucGF0aCwgaW50IGVzdGltYXRlZF9sZW4sCisJCQkJ CQlzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCUpzb25QYXRoICAgKnJlczsKKwlTdHJpbmdJ bmZvRGF0YSBidWY7CisKIAlpbml0U3RyaW5nSW5mbygmYnVmKTsKLQllbmxhcmdlU3RyaW5nSW5m bygmYnVmLCA0ICogbGVuIC8qIGVzdGltYXRpb24gKi8gKTsKKwllbmxhcmdlU3RyaW5nSW5mbygm YnVmLCBlc3RpbWF0ZWRfbGVuKTsKIAogCWFwcGVuZFN0cmluZ0luZm9TcGFjZXMoJmJ1ZiwgSlNP TlBBVEhfSERSU1opOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaAppbmRleCAyM2E3NmQyMzNlOS4uZTA1OTQx NjIzZTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgKKysrIGIvc3Jj L2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaApAQCAtMjgxLDYgKzI4MSwxMCBAQCBleHRlcm4gSnNv blBhdGhQYXJzZVJlc3VsdCAqcGFyc2Vqc29ucGF0aChjb25zdCBjaGFyICpzdHIsIGludCBsZW4s CiBleHRlcm4gYm9vbCBqc3BDb252ZXJ0UmVnZXhGbGFncyh1aW50MzIgeGZsYWdzLCBpbnQgKnJl c3VsdCwKIAkJCQkJCQkJIHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogCitleHRlcm4gRGF0dW0g anNvblBhdGhGcm9tUGFyc2VSZXN1bHQoSnNvblBhdGhQYXJzZVJlc3VsdCAqanNvbnBhdGgsCisJ CQkJCQkJCQkgaW50IGVzdGltYXRlZF9sZW4sCisJCQkJCQkJCQkgc3RydWN0IE5vZGUgKmVzY29u dGV4dCk7CisKIC8qCiAgKiBTdHJ1Y3QgZm9yIGRldGFpbHMgYWJvdXQgZXh0ZXJuYWwgdmFyaWFi bGVzIHBhc3NlZCBpbnRvIGpzb25wYXRoIGV4ZWN1dG9yCiAgKi8KLS0gCjIuMzkuNSAoQXBwbGUg R2l0LTE1NCkKCg== --0000000000000237be063ddc34cd Content-Type: application/octet-stream; name="v15-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Disposition: attachment; filename="v15-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf3bvwr96 RnJvbSA0OTFiNDJlOGE0NTlkYTFjZmYyNzY4ODc2ZmVkZTk4ZTM2ZDY4MWY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE1IDIvN10gQWxsb3cgR2VuZXJpYyBUeXBlIFN1YnNjcmlwdGluZyB0byBBY2NlcHQgRG90CiBO b3RhdGlvbiAoLikgYXMgSW5wdXQKClRoaXMgY2hhbmdlIGV4dGVuZHMgZ2VuZXJpYyB0eXBlIHN1 YnNjcmlwdGluZyB0byByZWNvZ25pemUgZG90Cm5vdGF0aW9uICguKSBpbiBhZGRpdGlvbiB0byBi cmFja2V0IG5vdGF0aW9uIChbXSkuIFdoaWxlIHRoaXMgZG9lcyBub3QKeWV0IHByb3ZpZGUgZnVs bCBzdXBwb3J0IGZvciBkb3Qgbm90YXRpb24sIGl0IGVuYWJsZXMgc3Vic2NyaXB0aW5nCmNvbnRh aW5lcnMgdG8gcHJvY2VzcyBpdCBpbiB0aGUgZnV0dXJlLgoKRm9yIG5vdywgY29udGFpbmVyLXNw ZWNpZmljIHRyYW5zZm9ybSBmdW5jdGlvbnMgb25seSBoYW5kbGUKc3Vic2NyaXB0aW5nIGluZGlj ZXMgYW5kIHN0b3AgcHJvY2Vzc2luZyB3aGVuIGVuY291bnRlcmluZyBkb3QKbm90YXRpb24uIEl0 IGlzIHVwIHRvIGluZGl2aWR1YWwgY29udGFpbmVycyB0byBkZWNpZGUgaG93IHRvIHRyYW5zZm9y bQpkb3Qgbm90YXRpb24gaW4gc3Vic2VxdWVudCB1cGRhdGVzLgoKQXV0aG9yZWQtYnk6IE5pa2l0 YSBHbHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbGV4YW5kcmEg V2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBE dW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRh cmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGppYW4u dW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jICAgfCA2NiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2Vfbm9kZS5jICAgfCA0MSArKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgfCAgMyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Fy cmF5c3Vicy5jIHwgMTMgKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMg fCAxMSArKysrKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICB8ICAzICstCiA2 IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwppbmRleCA2ZThmZDQyYzYxMi4uZmYxMDRjOTUzMTEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwpAQCAtNDQxLDggKzQ0MSw5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCUxpc3RDZWxsICAgKmk7 CiAKIAkvKgotCSAqIFdlIGhhdmUgdG8gc3BsaXQgYW55IGZpZWxkLXNlbGVjdGlvbiBvcGVyYXRp b25zIGFwYXJ0IGZyb20KLQkgKiBzdWJzY3JpcHRpbmcuICBBZGphY2VudCBBX0luZGljZXMgbm9k ZXMgaGF2ZSB0byBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlCisJICogQ29tYmluZSBmaWVsZCBuYW1l cyBhbmQgc3Vic2NyaXB0cyBpbnRvIGEgc2luZ2xlIGluZGlyZWN0aW9uIGxpc3QsIGFzCisJICog c29tZSBzdWJzY3JpcHRpbmcgY29udGFpbmVycywgc3VjaCBhcyBqc29uYiwgc3VwcG9ydCBmaWVs ZCBhY2Nlc3MgdXNpbmcKKwkgKiBkb3Qgbm90YXRpb24uIEFkamFjZW50IEFfSW5kaWNlcyBub2Rl cyBoYXZlIHRvIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUKIAkgKiBtdWx0aWRpbWVuc2lvbmFsIHN1 YnNjcmlwdCBvcGVyYXRpb24uCiAJICovCiAJZm9yZWFjaChpLCBpbmQtPmluZGlyZWN0aW9uKQpA QCAtNDYwLDE5ICs0NjEsNDMgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCX0KIAkJZWxzZQogCQl7Ci0JCQlOb2RlCSAgICpu ZXdyZXN1bHQ7Ci0KIAkJCUFzc2VydChJc0EobiwgU3RyaW5nKSk7CisJCQlzdWJzY3JpcHRzID0g bGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKKwkJfQorCX0KKworCXdoaWxlIChzdWJzY3JpcHRzKQor CXsKKwkJLyogdHJ5IHByb2Nlc3NpbmcgY29udGFpbmVyIHN1YnNjcmlwdHMgZmlyc3QgKi8KKwkJ Tm9kZQkgICAqbmV3cmVzdWx0ID0gKE5vZGUgKikKKwkJCXRyYW5zZm9ybUNvbnRhaW5lclN1YnNj cmlwdHMocHN0YXRlLAorCQkJCQkJCQkJCSByZXN1bHQsCisJCQkJCQkJCQkJIGV4cHJUeXBlKHJl c3VsdCksCisJCQkJCQkJCQkJIGV4cHJUeXBtb2QocmVzdWx0KSwKKwkJCQkJCQkJCQkgJnN1YnNj cmlwdHMsCisJCQkJCQkJCQkJIGZhbHNlLAorCQkJCQkJCQkJCSB0cnVlKTsKKworCQlpZiAoIW5l d3Jlc3VsdCkKKwkJeworCQkJLyoKKwkJCSAqIGdlbmVyaWMgc3Vic2NyaXB0aW5nIGZhaWxlZDsg ZmFsbGluZyBiYWNrIHRvIGZpZWxkIHNlbGVjdGlvbgorCQkJICogZm9yIGEgY29tcG9zaXRlIHR5 cGUuCisJCQkgKi8KKwkJCU5vZGUJICAgKm47CisKKwkJCUFzc2VydChzdWJzY3JpcHRzKTsKIAot CQkJLyogcHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxkIHNlbGVjdGlvbiAqLwot CQkJd2hpbGUgKHN1YnNjcmlwdHMpCi0JCQkJcmVzdWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29u dGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCi0JCQkJCQkJCQkJCQkJCQkgICByZXN1bHQsCi0JCQkJ CQkJCQkJCQkJCQkgICBleHByVHlwZShyZXN1bHQpLAotCQkJCQkJCQkJCQkJCQkJICAgZXhwclR5 cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJ CQkJCQkgICBmYWxzZSk7CisJCQluID0gbGluaXRpYWwoc3Vic2NyaXB0cyk7CisKKwkJCWlmICgh SXNBKG4sIFN0cmluZykpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0 eXBlICVzIGJlY2F1c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAorCQkJCQkJ CQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShyZXN1bHQpKSksCisJCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHJlc3VsdCkpKSk7CiAKKwkJCS8qIHRyeSB0byBm aW5kIGZ1bmN0aW9uIGZvciBmaWVsZCBzZWxlY3Rpb24gKi8KIAkJCW5ld3Jlc3VsdCA9IFBhcnNl RnVuY09yQ29sdW1uKHBzdGF0ZSwKIAkJCQkJCQkJCQkgIGxpc3RfbWFrZTEobiksCiAJCQkJCQkJ CQkJICBsaXN0X21ha2UxKHJlc3VsdCksCkBAIC00ODAsMTkgKzUwNSwxNiBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJCQkJ CQkJCQkgIE5VTEwsCiAJCQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJCQkgIGxvY2F0aW9uKTsK LQkJCWlmIChuZXdyZXN1bHQgPT0gTlVMTCkKKworCQkJaWYgKCFuZXdyZXN1bHQpCiAJCQkJdW5r bm93bl9hdHRyaWJ1dGUocHN0YXRlLCByZXN1bHQsIHN0clZhbChuKSwgbG9jYXRpb24pOwotCQkJ cmVzdWx0ID0gbmV3cmVzdWx0OworCisJCQkvKiBjb25zdW1lIGZpZWxkIHNlbGVjdCAqLworCQkJ c3Vic2NyaXB0cyA9IGxpc3RfZGVsZXRlX2ZpcnN0KHN1YnNjcmlwdHMpOwogCQl9CisKKwkJcmVz dWx0ID0gbmV3cmVzdWx0OwogCX0KLQkvKiBwcm9jZXNzIHRyYWlsaW5nIHN1YnNjcmlwdHMsIGlm IGFueSAqLwotCXdoaWxlIChzdWJzY3JpcHRzKQotCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zv cm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkgICByZXN1bHQsCi0J CQkJCQkJCQkJCQkJICAgZXhwclR5cGUocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkgICBleHByVHlw bW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJCQkJ ICAgZmFsc2UpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ub2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmlu ZGV4IGYwNWJhYTUwYTE1Li5jNDRhNWEwZWZmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX25vZGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBA IC0yMzgsNiArMjM4LDggQEAgdHJhbnNmb3JtQ29udGFpbmVyVHlwZShPaWQgKmNvbnRhaW5lclR5 cGUsIGludDMyICpjb250YWluZXJUeXBtb2QpCiAgKiBjb250YWluZXJUeXBNb2QJdHlwbW9kIGZv ciB0aGUgY29udGFpbmVyCiAgKiBpbmRpcmVjdGlvbgkJVW50cmFuc2Zvcm1lZCBsaXN0IG9mIHN1 YnNjcmlwdHMgKG11c3Qgbm90IGJlIE5JTCkKICAqIGlzQXNzaWdubWVudAkJVHJ1ZSBpZiB0aGlz IHdpbGwgYmVjb21lIGEgY29udGFpbmVyIGFzc2lnbm1lbnQuCisgKiBub0Vycm9yCQkJVHJ1ZSBm b3IgcmV0dXJuIE5VTEwgd2l0aCBubyBlcnJvciwgaWYgdGhlIGNvbnRhaW5lciB0eXBlCisgKiAJ CQkJCWlzIG5vdCBzdWJzY3JpcHRhYmxlLgogICovCiBTdWJzY3JpcHRpbmdSZWYgKgogdHJhbnNm b3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0yNDUsMTMgKzI0 NywxNSBAQCB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1v ZCwKIAkJCQkJCQkgTGlzdCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCSBib29sIGlzQXNzaWdubWVu dCkKKwkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQsCisJCQkJCQkJIGJvb2wgbm9FcnJvcikKIHsK IAlTdWJzY3JpcHRpbmdSZWYgKnNic3JlZjsKIAljb25zdCBTdWJzY3JpcHRSb3V0aW5lcyAqc2Jz cm91dGluZXM7CiAJT2lkCQkJZWxlbWVudFR5cGU7CiAJYm9vbAkJaXNTbGljZSA9IGZhbHNlOwog CUxpc3RDZWxsICAgKmlkeDsKKwlpbnQJCQlpbmRpcmVjdGlvbl9sZW5ndGggPSBsaXN0X2xlbmd0 aCgqaW5kaXJlY3Rpb24pOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIGFjdHVhbCBjb250YWlu ZXIgdHlwZSwgc21hc2hpbmcgYW55IGRvbWFpbi4gIEluIHRoZQpAQCAtMjY3LDExICsyNzEsMTYg QEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJICov CiAJc2Jzcm91dGluZXMgPSBnZXRTdWJzY3JpcHRpbmdSb3V0aW5lcyhjb250YWluZXJUeXBlLCAm ZWxlbWVudFR5cGUpOwogCWlmICghc2Jzcm91dGluZXMpCisJeworCQlpZiAobm9FcnJvcikKKwkJ CXJldHVybiBOVUxMOworCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVz IGJlY2F1c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAogCQkJCQkJZm9ybWF0 X3R5cGVfYmUoY29udGFpbmVyVHlwZSkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJfQogCiAJLyoKIAkgKiBEZXRlY3Qg d2hldGhlciBhbnkgb2YgdGhlIGluZGlyZWN0aW9uIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJz LgpAQCAtMjgyLDkgKzI5MSw5IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewotCQlB X0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwkJTm9kZQkgICAq YWkgPSBsZmlyc3QoaWR4KTsKIAotCQlpZiAoYWktPmlzX3NsaWNlKQorCQlpZiAoSXNBKGFpLCBB X0luZGljZXMpICYmIGNhc3ROb2RlKEFfSW5kaWNlcywgYWkpLT5pc19zbGljZSkKIAkJewogCQkJ aXNTbGljZSA9IHRydWU7CiAJCQlicmVhazsKQEAgLTMxMiw2ICszMjEsMzIgQEAgdHJhbnNmb3Jt Q29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJc2Jzcm91dGluZXMtPnRy YW5zZm9ybShzYnNyZWYsIGluZGlyZWN0aW9uLCBwc3RhdGUsCiAJCQkJCQkgICBpc1NsaWNlLCBp c0Fzc2lnbm1lbnQpOwogCisJLyoKKwkgKiBFcnJvciBvdXQsIGlmIGRhdGF0eXBlIGZhaWxlZCB0 byBjb25zdW1lIGFueSBpbmRpcmVjdGlvbiBlbGVtZW50cy4KKwkgKi8KKwlpZiAobGlzdF9sZW5n dGgoKmluZGlyZWN0aW9uKSA9PSBpbmRpcmVjdGlvbl9sZW5ndGgpCisJeworCQlOb2RlCSAgICpp bmQgPSBsaW5pdGlhbCgqaW5kaXJlY3Rpb24pOworCisJCWlmIChub0Vycm9yKQorCQkJcmV0dXJu IE5VTEw7CisKKwkJaWYgKElzQShpbmQsIFN0cmluZykpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidHlw ZSAlcyBkb2VzIG5vdCBzdXBwb3J0IGRvdCBub3RhdGlvbiIsCisJCQkJCQkJZm9ybWF0X3R5cGVf YmUoY29udGFpbmVyVHlwZSkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhw ckxvY2F0aW9uKGNvbnRhaW5lckJhc2UpKSkpOworCQllbHNlIGlmIChJc0EoaW5kLCBBX0luZGlj ZXMpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9N SVNNQVRDSCksCisJCQkJCSBlcnJtc2coInR5cGUgJXMgZG9lcyBub3Qgc3VwcG9ydCBhcnJheSBz dWJzY3JpcHRpbmciLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihjb250YWluZXJCYXNl KSkpKTsKKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgImludmFsaWQgaW5kaXJlY3Rpb24gb3BlcmF0 aW9uOiAlZCIsIG5vZGVUYWcoaW5kKSk7CisJfQorCiAJLyoKIAkgKiBWZXJpZnkgd2UgZ290IGEg dmFsaWQgdHlwZSAodGhpcyBkZWZlbmRzLCBmb3IgZXhhbXBsZSwgYWdhaW5zdCBzb21lb25lCiAJ ICogdXNpbmcgYXJyYXlfc3Vic2NyaXB0X2hhbmRsZXIgYXMgdHlwc3Vic2NyaXB0IHdpdGhvdXQg c2V0dGluZyB0eXBlbGVtKS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90 YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBhMDk3NzM2 MjI5YS4uYjg5NzM2ZmYxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90 YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNiw3 ICs5MzYsOCBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBlLAogCQkJCQkJCQkJCSAgY29udGFpbmVyVHlw TW9kLAogCQkJCQkJCQkJCSAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJICB0cnVlKTsKKwkJCQkJ CQkJCQkgIHRydWUsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAKIAl0eXBlTmVlZGVkID0gc2JzcmVm LT5yZWZyZXN0eXBlOwogCXR5cG1vZE5lZWRlZCA9IHNic3JlZi0+cmVmdHlwbW9kOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2FycmF5c3Vicy5jCmluZGV4IDIzNGMyYzI3OGMxLi5kMDNkMzUxOWRmZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9hcnJheXN1YnMuYwpAQCAtNjIsNiArNjIsNyBAQCBhcnJheV9zdWJzY3JpcHRf dHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCUxpc3QJICAgKnVwcGVySW5kZXhw ciA9IE5JTDsKIAlMaXN0CSAgICpsb3dlckluZGV4cHIgPSBOSUw7CiAJTGlzdENlbGwgICAqaWR4 OworCWludAkJCW5kaW07CiAKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgc3Vic2NyaXB0IGV4cHJl c3Npb25zLCBhbmQgc2VwYXJhdGUgdXBwZXIgYW5kIGxvd2VyCkBAIC03Myw5ICs3NCwxNCBAQCBh cnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqLwog CWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewotCQlBX0luZGljZXMgICphaSA9IGxmaXJz dF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwkJQV9JbmRpY2VzICAqYWk7CiAJCU5vZGUJICAgKnN1 YmV4cHI7CiAKKwkJaWYgKCFJc0EobGZpcnN0KGlkeCksIEFfSW5kaWNlcykpCisJCQlicmVhazsK KworCQlhaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwogCQlpZiAoaXNTbGljZSkK IAkJewogCQkJaWYgKGFpLT5saWR4KQpAQCAtMTQ1LDE0ICsxNTEsMTUgQEAgYXJyYXlfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwciA9IGxvd2VySW5kZXhwcjsKIAogCS8qIFZlcmlmeSBzdWJzY3JpcHQgbGlzdCBsZW5n dGhzIGFyZSB3aXRoaW4gaW1wbGVtZW50YXRpb24gbGltaXQgKi8KLQlpZiAobGlzdF9sZW5ndGgo dXBwZXJJbmRleHByKSA+IE1BWERJTSkKKwluZGltID0gbGlzdF9sZW5ndGgodXBwZXJJbmRleHBy KTsKKwlpZiAobmRpbSA+IE1BWERJTSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShF UlJDT0RFX1BST0dSQU1fTElNSVRfRVhDRUVERUQpLAogCQkJCSBlcnJtc2coIm51bWJlciBvZiBh cnJheSBkaW1lbnNpb25zICglZCkgZXhjZWVkcyB0aGUgbWF4aW11bSBhbGxvd2VkICglZCkiLAog CQkJCQkJbGlzdF9sZW5ndGgodXBwZXJJbmRleHByKSwgTUFYRElNKSkpOwogCS8qIFdlIG5lZWQg bm90IGNoZWNrIGxvd2VySW5kZXhwciBzZXBhcmF0ZWx5ICovCiAKLQkqaW5kaXJlY3Rpb24gPSBO SUw7CisJKmluZGlyZWN0aW9uID0gbGlzdF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIG5k aW0pOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3Jp cHRpbmcgb3BlcmF0aW9uLiAgSXQncyB0aGUgc2FtZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5j CmluZGV4IDhhZDZhYTFhZDRmLi5hMGQzOGEwZmQ4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1 YnMuYwpAQCAtNTUsOSArNTUsMTQgQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsK LQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJCUFfSW5k aWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJFeHByOwogCisJCWlmICghSXNBKGxmaXJzdChpZHgp LCBBX0luZGljZXMpKQorCQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMs IGlkeCk7CisKIAkJaWYgKGlzU2xpY2UpCiAJCXsKIAkJCU5vZGUJICAgKmV4cHIgPSBhaS0+dWlk eCA/IGFpLT51aWR4IDogYWktPmxpZHg7CkBAIC0xNjAsNyArMTY1LDkgQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlzYnNyZWYtPnJlZnJlc3R5 cGUgPSBKU09OQk9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOwogCi0JKmluZGlyZWN0aW9u ID0gTklMOworCS8qIFJlbW92ZSBwcm9jZXNzZWQgZWxlbWVudHMgKi8KKwlpZiAodXBwZXJJbmRl eHByKQorCQkqaW5kaXJlY3Rpb24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRpcmVjdGlvbiwg bGlzdF9sZW5ndGgodXBwZXJJbmRleHByKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aAppbmRleCA1OGE0YjlkZjE1Ny4uNWNjM2NlNThjMzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aApAQCAtMzYyLDcgKzM2Miw4IEBAIGV4dGVybiBTdWJzY3JpcHRpbmdSZWYgKnRyYW5zZm9ybUNv bnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQkJCSBPaWQg Y29udGFpbmVyVHlwZSwKIAkJCQkJCQkJCQkJCQkgaW50MzIgY29udGFpbmVyVHlwTW9kLAogCQkJ CQkJCQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCi0JCQkJCQkJCQkJCQkJIGJvb2wgaXNBc3Np Z25tZW50KTsKKwkJCQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQsCisJCQkJCQkJCQkJCQkJ IGJvb2wgbm9FcnJvcik7CiBleHRlcm4gQ29uc3QgKm1ha2VfY29uc3QoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0NvbnN0ICphY29uc3QpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfTk9ERV9IICov Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000000237be063ddc34cd--