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 1uw03U-004itN-Qj for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Sep 2025 15:14:50 +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 1uw03T-00Cpue-Sq for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Sep 2025 15:14:48 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uw03T-00CpuV-CC for pgsql-hackers@lists.postgresql.org; Tue, 09 Sep 2025 15:14:47 +0000 Received: from mail-pj1-x1041.google.com ([2607:f8b0:4864:20::1041]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uw03P-001XqM-1d for pgsql-hackers@postgresql.org; Tue, 09 Sep 2025 15:14:47 +0000 Received: by mail-pj1-x1041.google.com with SMTP id 98e67ed59e1d1-32da4f36572so649045a91.3 for ; Tue, 09 Sep 2025 08:14:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757430883; x=1758035683; 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=OQIOr64InZJteN7lY79REdk9PAnHu6QLWdc2PpjF7bU=; b=GO1xkSXrotAwzJ4hGlY8vaOs0AGLvy4DDr44wyY/NDxm3zH8C8aR2oBRHwmk36Xrgt 5YpLMydN6sakvOmF6bkaNd4Qyo86YaHpQeB8+cRLKqhS7/NtJxkq76aq99TIoyJL00ua n9+Z5n4pClr4aU/3St/DelUxm9nkYR8AmH0+LfhUi0xdQCDowbSmRbX0vPH8Wrtu9YT7 b5OUt/N3VT0BmKYm72mp0SnI5G9o/+wQah2XO6/l4k4MHUxDA/o1GGpVAFIDg22XxJ1J 7nCqKXhBH/Tv+JA7Lr6sOzAa3KEjN4w9m1JRgpK3SHQhCXTTFYzoHVJ0AGMKEdfsayTA 4Jaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757430883; x=1758035683; 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=OQIOr64InZJteN7lY79REdk9PAnHu6QLWdc2PpjF7bU=; b=q+xHTW6IbMRBG3dg0sqCmsuT4CJEU+qqSZFsR7DvsjP45CD1241fDGANU6WJ7BfwRE dMeoILWrc6CseShLYtTIGh+uGKSpd/BVAtRP0dwkkY4r5j/J5uHA4y58AbKmpIQw2nou +lMJrhnt1KFCDY6hwO2z87JdeEimr7El5sOGPzwyVV3AxGqEuKQnPaNnbc5vuxZbgFAi HH7vek/TElpuW/p1QkPrq6XosUWTrJ4aBgJdtCK5FAEFgJeZWCfwAsZNj8aVrZPdYIp1 VF+5xdm5sGQMKNQoYgmDbZShtWTiXI+n+IKzbAXw/6oteJ6UgokaV7Dkw4ZKRn/kfaRL V1ng== X-Forwarded-Encrypted: i=1; AJvYcCX5jGE7EunoXWi/rDUr9gxWKnpWfWN/HEFCmdB3atAvdObSJnANwu3ODGxduEwr/4WZJczaPPpGQ2QARNN6@postgresql.org X-Gm-Message-State: AOJu0YxU6nO92rJqbpy93mMv8McJQz4roogfHNcHubY2Q9mxn7CnN0Y6 zgH+fgGDYckjWPIpByuk5NpDMY7R0ywJMy40f8Gq9FiUlnmUHuDNyNpV5ozDzqmxvxfypjwXmNd 0LUEMJ1xhU+sLi31oOw3wsd4Gp9hyz7U= X-Gm-Gg: ASbGnctB1+MgACw8irmq+8v465HGj8jbtFFvxMurCGZwJukrKbxBjQl/Eo2InHnx5dq 5WCLe/4NT7jJH/GbBWbWPAQGyfdBHfMIwX8ceBkVmNJd5MVZyjIjUa5KryhtBYUzuX6ZtiuZnl+ tbAsMOaP/FGUsMNZr0iCtgEPkCl8xsKmQu/331rm6OwRiNzcqY0889y8fyXP35WZ+8lf7ZnGA/2 lPMdfjBvufzEDwBrSY= X-Google-Smtp-Source: AGHT+IEG56N+nlUXE1VukGQDvUpH9g94j3FirACv15N7O57l9TKIT6S5yR/0DgfF6Td1BYG2pLa4rEdfrUjQnDwTdPM= X-Received: by 2002:a17:90b:578c:b0:32b:ca6f:1234 with SMTP id 98e67ed59e1d1-32d43fca56cmr14726140a91.30.1757430882510; Tue, 09 Sep 2025 08:14:42 -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> <0D687585-0C6D-4B6E-B0B7-BDE084699CF3@gmail.com> In-Reply-To: <0D687585-0C6D-4B6E-B0B7-BDE084699CF3@gmail.com> From: Alexandra Wang Date: Tue, 9 Sep 2025 08:14:04 -0700 X-Gm-Features: Ac12FXxFSicE7i1syFvxYc58lCdxvdk17QEhrMjChrA0OfqVlLEBjgmeGcKKkH0 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="000000000000789ac1063e5fc312" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000789ac1063e5fc312 Content-Type: multipart/alternative; boundary="000000000000789ac0063e5fc310" --000000000000789ac0063e5fc310 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Chao, Thank you so much for your review! I=E2=80=99ve attached v16. My current goal is to get consensus on 0001 - 0005 and move them toward commitment. I=E2=80=99d also appreciate feedback on 0006 - 0007 as follow-u= p. In v16, I addressed your feedback regarding the isSlice argument in SubscriptTransform() -- I removed it. I=E2=80=99ve also addressed your thre= e other comments, sorry for missing them earlier! I did not change anything about the jb[0] array accessor for jsonb objects, will discuss that in a follow-up email. On Tue, Sep 2, 2025 at 8:56=E2=80=AFPM Chao Li wro= te: > On Sep 3, 2025, at 10:16, Alexandra Wang > wrote: > 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. > > I agree we should keep the change minimum and tightly related to the core > feature. > > My original suggestion was to move > > /* > * Detect whether any of the indirection items are slice specifiers. > * > * A list containing only simple subscripts refers to a single container > * element. If any of the items are slice specifiers (lower:upper), then > * the subscript expression means a container slice operation. > */ > foreach(idx, *indirection) > { > Node *ai =3D lfirst(idx); > > if (IsA(ai, A_Indices) && castNode(A_Indices, ai)->is_slice) > { > isSlice =3D true; > break; > } > } > > To out of transformContainerSubscripts(). Because the function was called > only once under =E2=80=9Cif=E2=80=9D, now this patch change it to be call= ed under =E2=80=9Cwhile=E2=80=9D, > which brings two issues: > > * Original it was O(n) as it was under =E2=80=9Cif=E2=80=9D, now it is O= (n2) as it is > under =E2=80=9Cwhile=E2=80=9D. > * Logically it feels wrong now. Because this loops over the entire > indirection list to check is_slice, while the subsequent > sbsroutines->transform() may only process a portion (prefix) of indirecti= on > list. Say, the 5th element is slice, but the first sbsroutines-transform(= ) > call will only process the first 3 elements of indirection list, then pas= s > true to the first transform() call sounds wrong. > > if we pull the loop out of transformContainerSubscripts(), then we have t= o > add a new parameter =E2=80=9Cbool is_slice=E2=80=9D to it. But after some= researching, I > found that making that change is more complicated than removing =E2=80=9C= is_slice=E2=80=9D > parameter from SubscriptTransform(). That=E2=80=99s why I ended up sugges= ting > removing =E2=80=9Cis_slice=E2=80=9D from SubscriptTransform(). > > Does that sound reasonable? > Yes, that makes total sense! The logical defect you found can indeed cause bugs in arraysubs. In 0002, I=E2=80=99ve added a test in arrays.sql t= o demonstrate the potential bug and updated the code accordingly: This change also updates the SubscriptTransform() API to remove the "bool isSlice" argument. Each container=E2=80=99s transform function no= w determines slice-ness itself, since it may only process a prefix of the indirection list. For example, array_subscript_transform() stops at dot notation, so "isSlice" should not depend on slice specifiers that appear afterward. Thanks, Alex --000000000000789ac0063e5fc310 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Chao,

Th= ank you so much for your review!

I=E2=80=99ve attached v16.

M= y current goal is to get consensus on 0001 - 0005 and move them toward
c= ommitment. I=E2=80=99d also appreciate feedback on 0006 - 0007 as follow-up= .

In v16, I addressed your feedback regarding the isSlice argument i= n
SubscriptTransform() -- I removed it. I=E2=80=99ve also addressed your= three
other comments, sorry for missing them earlier!

I did not = change anything about the jb[0] array accessor for jsonb
objects, will d= iscuss that in a follow-up email.

On Tue, Sep 2, 2025 at 8:56=E2=80=AFPM Cha= o Li <li.eva= n.chao@gmail.com> wrote:
On Sep 3, 2025, at 10:= 16, Alexandra Wang <alexandra.wang.oss@gmail.com> wrote:
I don't like the idea of remo= ving the "bool isSlice" argument from the
*SubscriptTransform(= ) function pointer. This patch series should make
only minimal changes t= o 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 ab= out isSlice; and users can also define custom
data types that support su= bscripting, so the interface is not limited
to built-in types.
=

As the comment for *SubscriptTransform() explains:
(Of course, if the trans= form method
* does not care to support slicing, it can just throw an err= or if isSlice.)

It's possible that in t= he end the "isSlice" argument isn't needed at
all, but I d= on=E2=80=99t think this patch set is the right place for that
refactor.<= /div>
I agree we should keep the c= hange minimum and tightly related to the core feature.

=
My original suggestion was to move

/*
* Detect whether any = of the indirection items are slice specifiers.
*
* A list containing only simple subscripts refers to a sin= gle container
* = element. If any of the items are slice specifiers (lower:upper), then
* the subscript expr= ession means a container slice operation.
*/
foreach(= idx, *indirection)
{
Node *ai =3D lfirst(idx);

= if (IsA(ai, A_Indices) && castNode(A_Indices, ai)->is_slice)
= {
isSlice =3D true<= span style=3D"color:rgb(180,180,180)">;
break;
= }
}

To out of transformContainerSubscripts(). = Because the function was called only once under =E2=80=9Cif=E2=80=9D, now t= his patch change it to be called under =E2=80=9Cwhile=E2=80=9D, which bring= s two issues:

=C2=A0* Original it was O(n) as it w= as under =E2=80=9Cif=E2=80=9D, now it is O(n2) as it is under =E2=80=9Cwhil= e=E2=80=9D.
* Logically it feels wrong now. Because this loops ov= er the entire indirection list to check is_slice, while the subsequent sbsr= outines->transform() may only process a portion (prefix) of indirection = list. Say, the 5th element is slice, but the first sbsroutines-transform() = call will only process the first 3 elements of indirection list, then pass = true to the first transform() call sounds wrong.

i= f we pull the loop out of transformContainerSubscripts(), then we have to a= dd a new parameter =E2=80=9Cbool is_slice=E2=80=9D to it. But after some re= searching, I found that making that change is more complicated than removin= g =E2=80=9Cis_slice=E2=80=9D parameter from SubscriptTransform(). That=E2= =80=99s why I ended up suggesting removing =E2=80=9Cis_slice=E2=80=9D from = SubscriptTransform().

Does that sound reasonable?<= /div>

Yes, that makes total sense! Th= e logical defect you found can indeed
cause bugs in arraysubs. In 0002, = I=E2=80=99ve added a test in arrays.sql to
demonstrate the potential bug= and updated the code accordingly:

=C2=A0 =C2=A0 This change also updates the SubscriptT= ransform() API to remove the
=C2=A0 =C2=A0 "bool isSlice" argu= ment. Each container=E2=80=99s transform function now
=C2=A0 =C2=A0 dete= rmines slice-ness itself, since it may only process a prefix of
=C2=A0 = =C2=A0 the indirection list. For example, array_subscript_transform() stops=
=C2=A0 =C2=A0 at dot notation, so "isSlice" should not depend= on slice specifiers
=C2=A0 =C2=A0 that appear afterward.

=
Thanks,
Alex

--000000000000789ac0063e5fc310-- --000000000000789ac1063e5fc312 Content-Type: application/octet-stream; name="v16-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Disposition: attachment; filename="v16-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcoy0fw1 RnJvbSAzNmExM2IwZGY2MTc5OWEzN2VhMTkxZmY0ZmU3YjJlMDZmMDlmNzYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE2IDcvN10gSW1wbGVtZW50IGpzb25iIHdpbGRjYXJkIG1lbWJlciBhY2Nlc3NvcgoKVGhpcyBj b21taXQgYWRkcyBzdXBwb3J0IGZvciB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzIGluIGpzb25iLCBh cwpzcGVjaWZpZWQgYnkgdGhlIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggaW4gU1FM OjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdtYWls LmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5vc3NA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFuZS5u ZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2VkYi5j b20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmlld2Vk LWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogUGV0 ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBKZWx0ZSBG ZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgpUZXN0ZWQtYnk6IEplbHRlIEZlbm5lbWEt TmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+Ci0tLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMgICAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCAgMzkgKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0 LmMgICAgICAgICAgICAgfCAgNjcgKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJz dWJzLmMgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYyAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgg ICAgICAgICAgICAgICAgIHwgIDEyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgg ICAgICAgICAgICAgICB8ICAgMyArCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LmMgICAgICAgICAgfCAgMTggKy0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyICAgICB8ICAyMyArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQgICAgIHwgICAyICsKIHNyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5w Z2MgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgICAg ICAgICAgIHwgMjIyICsrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNv bmIuc3FsICAgICAgICAgICAgICAgIHwgIDQyICsrKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDQwNiBp bnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGQx YmQ1NzVkOWJkLi41ZjMwMzhhMWMyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTI5MSw2ICsy OTEsOSBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQkJICovCiAJCQl0eXBlID0gVEVY VE9JRDsKIAkJCWJyZWFrOworCQljYXNlIFRfU3RhcjoKKwkJCXR5cGUgPSBVTktOT1dOT0lEOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUg dHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKIAkJCXR5cGUgPSBJbnZhbGlkT2lkOwkv KiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC0xMTU2LDYgKzExNTksOSBAQCBleHByU2V0Q29s bGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCWNhc2UgVF9GaWVsZEFjY2Vzc29y RXhwcjoKIAkJCSgoRmllbGRBY2Nlc3NvckV4cHIgKikgZXhwciktPmZhZWNvbGxpZCA9IGNvbGxh dGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfU3RhcjoKKwkJCUFzc2VydCghT2lkSXNWYWxpZChj b2xsYXRpb24pKTsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJKChT dWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFr OwpAQCAtMjE0MCw2ICsyMTQ2LDcgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUg Km5vZGUsCiAJCWNhc2UgVF9DVEVTZWFyY2hDbGF1c2U6CiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRG dW5jOgogCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CisJCWNhc2UgVF9TdGFyOgogCQkJLyog cHJpbWl0aXZlIG5vZGUgdHlwZXMgd2l0aCBubyBleHByZXNzaW9uIHN1Ym5vZGVzICovCiAJCQli cmVhazsKIAkJY2FzZSBUX1dpdGhDaGVja09wdGlvbjoKQEAgLTMwMjAsNiArMzAyNyw3IEBAIGV4 cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2FzZSBUX0NURVNlYXJj aENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCWNhc2UgVF9GaWVsZEFjY2Vz c29yRXhwcjoKKwkJY2FzZSBUX1N0YXI6CiAJCQlyZXR1cm4gY29weU9iamVjdChub2RlKTsKIAkJ Y2FzZSBUX1dpdGhDaGVja09wdGlvbjoKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDlmZDQ4YWNiMWY4 Li5jODZhYjZmZDUxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xODk4MCw2ICsxODk4MCw3IEBAIGNoZWNr X2Z1bmNfbmFtZShMaXN0ICpuYW1lcywgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiBzdGF0aWMg TGlzdCAqCiBjaGVja19pbmRpcmVjdGlvbihMaXN0ICppbmRpcmVjdGlvbiwgY29yZV95eXNjYW5f dCB5eXNjYW5uZXIpCiB7CisjaWYgMAogCUxpc3RDZWxsICAgKmw7CiAKIAlmb3JlYWNoKGwsIGlu ZGlyZWN0aW9uKQpAQCAtMTg5OTAsNiArMTg5OTEsNyBAQCBjaGVja19pbmRpcmVjdGlvbihMaXN0 ICppbmRpcmVjdGlvbiwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQkJcGFyc2VyX3l5ZXJy b3IoImltcHJvcGVyIHVzZSBvZiBcIipcIiIpOwogCQl9CiAJfQorI2VuZGlmCiAJcmV0dXJuIGlu ZGlyZWN0aW9uOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBmOGEwNjE3ZjgyMy4u MzhhYzY1MDNhMjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNzMsNyArNzMsNiBAQCBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1u UmVmICpjcmVmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJCQkJCSAgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQkJ CSAgaW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKLXN0YXRpYyBOb2RlICp0cmFuc2Zv cm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2Fz dCAqdGMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2Jq ZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTU3LDcgKzE1Niw3IEBAIHRy YW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJy ZWFrOwogCiAJCWNhc2UgVF9BX0luZGlyZWN0aW9uOgotCQkJcmVzdWx0ID0gdHJhbnNmb3JtSW5k aXJlY3Rpb24ocHN0YXRlLCAoQV9JbmRpcmVjdGlvbiAqKSBleHByKTsKKwkJCXJlc3VsdCA9IHRy YW5zZm9ybUluZGlyZWN0aW9uKHBzdGF0ZSwgKEFfSW5kaXJlY3Rpb24gKikgZXhwciwgTlVMTCk7 CiAJCQlicmVhazsKIAogCQljYXNlIFRfQV9BcnJheUV4cHI6CkBAIC00MzEsOCArNDMwLDkgQEAg dW5rbm93bl9hdHRyaWJ1dGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpyZWxyZWYsIGNvbnN0 IGNoYXIgKmF0dG5hbWUsCiAJfQogfQogCi1zdGF0aWMgTm9kZSAqCi10cmFuc2Zvcm1JbmRpcmVj dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKK05vZGUgKgordHJh bnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQs CisJCQkJCSBib29sICp0cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKIHsKIAlOb2RlCSAgICpsYXN0 X3NyZiA9IHBzdGF0ZS0+cF9sYXN0X3NyZjsKIAlOb2RlCSAgICpyZXN1bHQgPSB0cmFuc2Zvcm1F eHByUmVjdXJzZShwc3RhdGUsIGluZC0+YXJnKTsKQEAgLTQ1MCwxNiArNDUwLDggQEAgdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJ ewogCQlOb2RlCSAgICpuID0gbGZpcnN0KGkpOwogCi0JCWlmIChJc0EobiwgQV9JbmRpY2VzKSB8 fCBJc0EobiwgU3RyaW5nKSkKLQkJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4p OwotCQllbHNlCi0JCXsKLQkJCUFzc2VydChJc0EobiwgQV9TdGFyKSk7Ci0JCQllcmVwb3J0KEVS Uk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJ CSBlcnJtc2coInJvdyBleHBhbnNpb24gdmlhIFwiKlwiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSIp LAotCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7Ci0JCX0KKwkJ QXNzZXJ0IChJc0EobiwgQV9JbmRpY2VzKSB8fCBJc0EobiwgU3RyaW5nKSB8fCBJc0EobiwgQV9T dGFyKSk7CisJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4pOwogCX0KIAogCXdo aWxlIChzdWJzY3JpcHRzKQpAQCAtNDg2LDcgKzQ3OCwyMSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAogCQkJbiA9IGxpbml0 aWFsKHN1YnNjcmlwdHMpOwogCi0JCQlpZiAoIUlzQShuLCBTdHJpbmcpKQorCQkJaWYgKElzQShu LCBBX1N0YXIpKQorCQkJeworCQkJCS8qIFN1Y2Nlc3MsIGlmIHRyYWlsaW5nIHN0YXIgZXhwYW5z aW9uIGlzIGFsbG93ZWQgKi8KKwkJCQlpZiAodHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gJiYgbGlz dF9sZW5ndGgoc3Vic2NyaXB0cykgPT0gMSkKKwkJCQl7CisJCQkJCSp0cmFpbGluZ19zdGFyX2V4 cGFuc2lvbiA9IHRydWU7CisJCQkJCXJldHVybiByZXN1bHQ7CisJCQkJfQorCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK KwkJCQkJCSBlcnJtc2coInJvdyBleHBhbnNpb24gdmlhIFwiKlwiIGlzIG5vdCBzdXBwb3J0ZWQg aGVyZSIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwor CQkJfQorCQkJZWxzZSBpZiAoIUlzQShuLCBTdHJpbmcpKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKIAkJCQkJCSBlcnJtc2co ImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBvcnQgc3Vi c2NyaXB0aW5nIiwKQEAgLTUxMiw2ICs1MTgsOSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJcmVzdWx0ID0gbmV3cmVzdWx0 OwogCX0KIAorCWlmICh0cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKKwkJKnRyYWlsaW5nX3N0YXJf ZXhwYW5zaW9uID0gZmFsc2U7CisKIAlyZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdGFyZ2V0LmMKaW5kZXggYjg5NzM2ZmYxZWEuLjg1YzA1Yzc0MzRjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1B c3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTGlzdCAqRXhw YW5kQ29sdW1uUmVmU3RhcihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZiwKIAkJ CQkJCQkJIGJvb2wgbWFrZV90YXJnZXRfZW50cnkpOwogc3RhdGljIExpc3QgKkV4cGFuZEFsbFRh YmxlcyhQYXJzZVN0YXRlICpwc3RhdGUsIGludCBsb2NhdGlvbik7Ci1zdGF0aWMgTGlzdCAqRXhw YW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5k LAorc3RhdGljIE5vZGUgKkV4cGFuZEluZGlyZWN0aW9uU3RhcihQYXJzZVN0YXRlICpwc3RhdGUs IEFfSW5kaXJlY3Rpb24gKmluZCwKIAkJCQkJCQkJICAgYm9vbCBtYWtlX3RhcmdldF9lbnRyeSwg UGFyc2VFeHByS2luZCBleHByS2luZCk7CiBzdGF0aWMgTGlzdCAqRXhwYW5kU2luZ2xlVGFibGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJCQkJCQkg ICBpbnQgc3VibGV2ZWxzX3VwLCBpbnQgbG9jYXRpb24sCkBAIC0xMzMsNiArMTMzLDcgQEAgdHJh bnNmb3JtVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAJ Zm9yZWFjaChvX3RhcmdldCwgdGFyZ2V0bGlzdCkKIAl7CiAJCVJlc1RhcmdldCAgKnJlcyA9IChS ZXNUYXJnZXQgKikgbGZpcnN0KG9fdGFyZ2V0KTsKKwkJTm9kZQkgICAqdHJhbnNmb3JtZWQgPSBO VUxMOwogCiAJCS8qCiAJCSAqIENoZWNrIGZvciAic29tZXRoaW5nLioiLiAgRGVwZW5kaW5nIG9u IHRoZSBjb21wbGV4aXR5IG9mIHRoZQpAQCAtMTYxLDEzICsxNjIsMTkgQEAgdHJhbnNmb3JtVGFy Z2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAKIAkJCQlpZiAo SXNBKGxsYXN0KGluZC0+aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJCXsKLQkJCQkJLyogSXQg aXMgc29tZXRoaW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCi0JCQkJCXBfdGFy Z2V0ID0gbGlzdF9jb25jYXQocF90YXJnZXQsCi0JCQkJCQkJCQkJICAgRXhwYW5kSW5kaXJlY3Rp b25TdGFyKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkJCQkgaW5kLAotCQkJCQkJCQkJCQkJCQkJCSB0 cnVlLAotCQkJCQkJCQkJCQkJCQkJCSBleHByS2luZCkpOwotCQkJCQljb250aW51ZTsKKwkJCQkJ Tm9kZQkgICAqY29sdW1ucyA9IEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsCisJCQkJCQkJ CQkJCQkJCQkJaW5kLAorCQkJCQkJCQkJCQkJCQkJCXRydWUsCisJCQkJCQkJCQkJCQkJCQkJZXhw cktpbmQpOworCisJCQkJCWlmIChJc0EoY29sdW1ucywgTGlzdCkpCisJCQkJCXsKKwkJCQkJCS8q IEl0IGlzIHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLworCQkJCQkJ cF90YXJnZXQgPSBsaXN0X2NvbmNhdChwX3RhcmdldCwgKExpc3QgKikgY29sdW1ucyk7CisJCQkJ CQljb250aW51ZTsKKwkJCQkJfQorCisJCQkJCXRyYW5zZm9ybWVkID0gKE5vZGUgKikgY29sdW1u czsKIAkJCQl9CiAJCQl9CiAJCX0KQEAgLTE3OSw3ICsxODYsNyBAQCB0cmFuc2Zvcm1UYXJnZXRM aXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAkJcF90YXJnZXQgPSBs YXBwZW5kKHBfdGFyZ2V0LAogCQkJCQkJICAgdHJhbnNmb3JtVGFyZ2V0RW50cnkocHN0YXRlLAog CQkJCQkJCQkJCQkJcmVzLT52YWwsCi0JCQkJCQkJCQkJCQlOVUxMLAorCQkJCQkJCQkJCQkJdHJh bnNmb3JtZWQsCiAJCQkJCQkJCQkJCQlleHByS2luZCwKIAkJCQkJCQkJCQkJCXJlcy0+bmFtZSwK IAkJCQkJCQkJCQkJCWZhbHNlKSk7CkBAIC0yNTAsMTAgKzI1NywxNSBAQCB0cmFuc2Zvcm1FeHBy ZXNzaW9uTGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmV4cHJsaXN0LAogCiAJCQlpZiAo SXNBKGxsYXN0KGluZC0+aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJewotCQkJCS8qIEl0IGlz IHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLwotCQkJCXJlc3VsdCA9 IGxpc3RfY29uY2F0KHJlc3VsdCwKLQkJCQkJCQkJCSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0 YXRlLCBpbmQsCi0JCQkJCQkJCQkJCQkJCSAgIGZhbHNlLCBleHByS2luZCkpOworCQkJCU5vZGUJ ICAgKmNvbHMgPSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLCBpbmQsCisJCQkJCQkJCQkJ CQkJCSBmYWxzZSwgZXhwcktpbmQpOworCisJCQkJaWYgKCFjb2xzIHx8IElzQShjb2xzLCBMaXN0 KSkKKwkJCQkJLyogSXQgaXMgc29tZXRoaW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1z ICovCisJCQkJCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgKExpc3QgKikgY29scyk7CisJ CQkJZWxzZQorCQkJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgY29scyk7CisKIAkJCQljb250 aW51ZTsKIAkJCX0KIAkJfQpAQCAtMTM0NCwyMiArMTM1NiwzMCBAQCBFeHBhbmRBbGxUYWJsZXMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBpbnQgbG9jYXRpb24pCiAgKiBGb3Igcm9idXN0bmVzcywgd2Ug dXNlIGEgc2VwYXJhdGUgIm1ha2VfdGFyZ2V0X2VudHJ5IiBmbGFnIHRvIGNvbnRyb2wKICAqIHRo aXMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBleHByS2luZC4KICAqLwotc3RhdGljIExpc3QgKgor c3RhdGljIE5vZGUgKgogRXhwYW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kLAogCQkJCQkgIGJvb2wgbWFrZV90YXJnZXRfZW50cnksIFBhcnNl RXhwcktpbmQgZXhwcktpbmQpCiB7CiAJTm9kZQkgICAqZXhwcjsKKwlQYXJzZUV4cHJLaW5kIHN2 X2V4cHJfa2luZDsKKwlib29sCQl0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiA9IGZhbHNlOworCisJ LyogU2F2ZSBhbmQgcmVzdG9yZSBpZGVudGl0eSBvZiBleHByZXNzaW9uIHR5cGUgd2UncmUgcGFy c2luZyAqLworCUFzc2VydChleHByS2luZCAhPSBFWFBSX0tJTkRfTk9ORSk7CisJc3ZfZXhwcl9r aW5kID0gcHN0YXRlLT5wX2V4cHJfa2luZDsKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gZXhwcktp bmQ7CiAKIAkvKiBTdHJpcCBvZmYgdGhlICcqJyB0byBjcmVhdGUgYSByZWZlcmVuY2UgdG8gdGhl IHJvd3R5cGUgb2JqZWN0ICovCi0JaW5kID0gY29weU9iamVjdChpbmQpOwotCWluZC0+aW5kaXJl Y3Rpb24gPSBsaXN0X3RydW5jYXRlKGluZC0+aW5kaXJlY3Rpb24sCi0JCQkJCQkJCQkgbGlzdF9s ZW5ndGgoaW5kLT5pbmRpcmVjdGlvbikgLSAxKTsKKwlleHByID0gdHJhbnNmb3JtSW5kaXJlY3Rp b24ocHN0YXRlLCBpbmQsICZ0cmFpbGluZ19zdGFyX2V4cGFuc2lvbik7CisKKwlwc3RhdGUtPnBf ZXhwcl9raW5kID0gc3ZfZXhwcl9raW5kOwogCi0JLyogQW5kIHRyYW5zZm9ybSB0aGF0ICovCi0J ZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBpbmQsIGV4cHJLaW5kKTsKKwkv KiAnKicgd2FzIGNvbnN1bWVkIGJ5IGdlbmVyaWMgdHlwZSBzdWJzY3JpcHRpbmcgKi8KKwlpZiAo IXRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKQorCQlyZXR1cm4gZXhwcjsKIAogCS8qIEV4cGFuZCB0 aGUgcm93dHlwZSBleHByZXNzaW9uIGludG8gaW5kaXZpZHVhbCBmaWVsZHMgKi8KLQlyZXR1cm4g RXhwYW5kUm93UmVmZXJlbmNlKHBzdGF0ZSwgZXhwciwgbWFrZV90YXJnZXRfZW50cnkpOworCXJl dHVybiAoTm9kZSAqKSBFeHBhbmRSb3dSZWZlcmVuY2UocHN0YXRlLCBleHByLCBtYWtlX3Rhcmdl dF9lbnRyeSk7CiB9CiAKIC8qCkBAIC0xNzg0LDEzICsxODA0LDE4IEBAIEZpZ3VyZUNvbG5hbWVJ bnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJCQljaGFyCSAgICpmbmFtZSA9IE5V TEw7CiAJCQkJTGlzdENlbGwgICAqbDsKIAotCQkJCS8qIGZpbmQgbGFzdCBmaWVsZCBuYW1lLCBp ZiBhbnksIGlnbm9yaW5nICIqIiBhbmQgc3Vic2NyaXB0cyAqLworCQkJCS8qCisJCQkJICogZmlu ZCBsYXN0IGZpZWxkIG5hbWUsIGlmIGFueSwgaWdub3Jpbmcgc3Vic2NyaXB0cywgYW5kIHVzZQor CQkJCSAqICc/Y29sdW1uPycgd2hlbiB0aGVyZSdzIGEgdHJhaWxpbmcgJyonLgorCQkJCSAqLwog CQkJCWZvcmVhY2gobCwgaW5kLT5pbmRpcmVjdGlvbikKIAkJCQl7CiAJCQkJCU5vZGUJICAgKmkg PSBsZmlyc3QobCk7CiAKIAkJCQkJaWYgKElzQShpLCBTdHJpbmcpKQogCQkJCQkJZm5hbWUgPSBz dHJWYWwoaSk7CisJCQkJCWVsc2UgaWYgKElzQShpLCBBX1N0YXIpKQorCQkJCQkJZm5hbWUgPSAi P2NvbHVtbj8iOwogCQkJCX0KIAkJCQlpZiAoZm5hbWUpCiAJCQkJewpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pz b25ic3Vicy5jCmluZGV4IGVlOTI1YTdiNDg2Li44ZmZkMTlmZjk2NiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYwpAQCAtMTI0LDcgKzEyNCw3IEBAIGpzb25iX2NoZWNrX2pzb25wYXRoX25l ZWRlZChMaXN0ICppbmRpcmVjdGlvbikKIAl7CiAJCU5vZGUJICAgKmFjY2Vzc29yID0gbGZpcnN0 KGxjKTsKIAotCQlpZiAoSXNBKGFjY2Vzc29yLCBTdHJpbmcpKQorCQlpZiAoSXNBKGFjY2Vzc29y LCBTdHJpbmcpIHx8IElzQShhY2Nlc3NvciwgQV9TdGFyKSkKIAkJCXJldHVybiB0cnVlOwogCQll bHNlCiAJCXsKQEAgLTMzOSw2ICszMzksMTYgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBh dGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJ CQl9CiAJCQl9CiAJCX0KKwkJZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX1N0YXIpKQorCQl7CisJ CQlTdGFyICpzdGFyX25vZGU7CisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpQW55S2V5 KTsKKworCQkJc3Rhcl9ub2RlID0gbWFrZU5vZGUoU3Rhcik7CisJCQlzdGFyX25vZGUtPnR5cGUg PSBUX1N0YXI7CisKKwkJCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gbGFwcGVuZChzYnNyZWYt PnJlZnVwcGVyaW5kZXhwciwgc3Rhcl9ub2RlKTsKKwkJfQogCQllbHNlCiAJCXsKIAkJCS8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggYmFhM2FlOTdkNTcuLmFjZTBlZmY1MmUyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMzAxMCw3ICsxMzAxMCwxMSBAQCBwcmlu dFN1YnNjcmlwdHMoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsIGRlcGFyc2VfY29udGV4dCAqY29u dGV4dCkKIAl7CiAJCU5vZGUgKnVwcGVyID0gKE5vZGUgKikgbGZpcnN0KHVwbGlzdF9pdGVtKTsK IAotCQlpZiAodXBwZXIgJiYgSXNBKHVwcGVyLCBGaWVsZEFjY2Vzc29yRXhwcikpCisJCWlmICh1 cHBlciAmJiBJc0EodXBwZXIsIFN0YXIpKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KGJ1ZiwgIi4qIik7CisJCX0KKwkJZWxzZSBpZiAodXBwZXIgJiYgSXNBKHVwcGVyLCBGaWVsZEFj Y2Vzc29yRXhwcikpCiAJCXsKIAkJCUZpZWxkQWNjZXNzb3JFeHByICpmYWUgPSAoRmllbGRBY2Nl c3NvckV4cHIgKikgdXBwZXI7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggN2U4OTYyMWJkNjUu LjdlNDE4ODMwZjIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMjQxOSw0ICsyNDE5LDE2IEBA IHR5cGVkZWYgc3RydWN0IEZpZWxkQWNjZXNzb3JFeHByCiAJT2lkCQkJZmFlY29sbGlkIHBnX25v ZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIH0JCQlGaWVsZEFjY2Vzc29yRXhwcjsKIAor LyoKKyAqIFN0YXIgLSByZXByZXNlbnRzIGEgd2lsZGNhcmQgbWVtYmVyIGFjY2Vzc29yIChlLmcu LCAiLioiKSB1c2VkIGluIEpTT05CIHNpbXBsaWZpZWQgYWNjZXNzb3IuCisgKgorICogVGhpcyBu b2RlIHNlcnZlcyBhcyBhIHN5bnRhY3RpYyBwbGFjZWhvbGRlciBpbiB0aGUgZXhwcmVzc2lvbiB0 cmVlIGFuZCBkb2VzIG5vdCBnZXQgZXZhbHVhdGVkLCBoZW5jZSBpdAorICogaGFzIG5vIGFzc29j aWF0ZWQgdHlwZSBvciBjb2xsYXRpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFN0YXIKK3sKKwlO b2RlVGFnCQl0eXBlOworfQkJCVN0YXI7CisKKwogI2VuZGlmCQkJCQkJCS8qIFBSSU1OT0RFU19I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCBlZmJhZmY4ZTcxMC4uYzlmNmE3NzI0YzAg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMjIsNCArMjIsNyBAQCBleHRlcm4gTm9kZSAq dHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktp bmQgZXhwcktpbgogCiBleHRlcm4gY29uc3QgY2hhciAqUGFyc2VFeHByS2luZE5hbWUoUGFyc2VF eHByS2luZCBleHByS2luZCk7CiAKK2V4dGVybiBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKKwkJCQkJCQkJICBib29sICp0 cmFpbGluZ19zdGFyX2V4cGFuc2lvbik7CisKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9FWFBSX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMK aW5kZXggOTM1YjQ3YTNiOWEuLjU4NWQ5YjE0NDQ1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYworKysgYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpAQCAtNTE1LDkgKzUxNSw5IEBAIGlmIChz cWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQogI2xpbmUgMTQ1ICJzcWxqc29uLnBnYyIKIAotCS8vIGVycm9yCisJcHJpbnRm KCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAotCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBO VUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjog MSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1d fV19JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIDogXSApIiwgRUNQR3RfRU9JVCwgCisJeyBFQ1BH ZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAo ICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wi eFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiAqIC4geCApIiwgRUNQR3RfRU9J VCwgCiAJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2Yo Y2hhciksIAogCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VP UlQpOwogI2xpbmUgMTQ4ICJzcWxqc29uLnBnYyIKQEAgLTUyNyw3ICs1MjcsNyBAQCBpZiAoc3Fs Y2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogCiAJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4i LCBqc29uKTsKIAotCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9y bWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJc IjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4g YiBbIDogXSApIiwgRUNQR3RfRU9JVCwgCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEws IDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBc ImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0n IDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKIAlFQ1BHdF9jaGFy LChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCiAJRUNQR3Rf Tk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAxNTEg InNxbGpzb24ucGdjIgpAQCAtNTM3LDEyICs1MzcsMjIgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAw KSBzcWxwcmludCgpO30KIAogCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CiAKLSAg eyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQiKTsKKwl7IEVDUEdkbyhfX0xJTkVf XywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwi OiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwg e1wieVwiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVD UEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAK KwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKICNs aW5lIDE1NCAic3FsanNvbi5wZ2MiCiAKIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQo KTt9CiAjbGluZSAxNTQgInNxbGpzb24ucGdjIgogCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4i LCBqc29uKTsKKworICB7IEVDUEdkaXNjb25uZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworI2xp bmUgMTU3ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgp O30KKyNsaW5lIDE1NyAic3FsanNvbi5wZ2MiCisKIAogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCmlu ZGV4IGYzZjg5OWM2ZDg3Li40YjkwODg1NDVkNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv ZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgorKysgYi9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCkBAIC0zNDcsMjIgKzM0Nywx OSBAQCBTUUwgZXJyb3I6IHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0IG9uIGxpbmUgMTIx CiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdf ZXhlY3V0ZSBvbiBsaW5lIDE0NTogdXNpbmcgUFFleGVjCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJRF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAx NDU6IGJhZCByZXNwb25zZSAtIEVSUk9SOiAgcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBz dXBwb3J0ZWQgaGVyZQotTElORSAxOiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJj IjogMn0sICJiIjogW3sieCI6IDF9LCB7InguLi4KLSAgICAgICAgICAgICAgICAgICAgICAgIF4K K1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTQ1OiBjb3JyZWN0bHkgZ290 IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCi1bTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSAwQTAwMCAoc3FsY29kZSAtNDAwKTog cm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBvbiBsaW5lIDE0NQot W05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogMEEwMDAKLVNRTCBlcnJvcjogcm93 IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBvbiBsaW5lIDE0NQotW05P X1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0ODogcXVlcnk6IHNlbGVjdCBqc29uICggKCAn eyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5Ijox fV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykg b24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBv biBsaW5lIDE0NTogUkVTVUxUOiBbeyJiIjogMSwgImMiOiAyfSwgW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6IDF9XX1dXSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4 OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7 IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuICogLiB4ICk7IHdp dGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCiBbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBv biBsaW5lIDE0ODogdXNpbmcgUFFleGVjCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAogW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxNDg6IGNvcnJl Y3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxkcwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTQ4OiBSRVNV TFQ6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19XSBvZmZzZXQ6IC0xOyBhcnJheTog bm8KK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTQ4OiBSRVNVTFQ6IFsxLCBbMTIs IHsieSI6IDF9XV0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE1MTogcXVl cnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4Ijog MX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICk7IHdpdGgg MCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUxOiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7 ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScg OjoganNvbmIgKSBbICdiJyBdIFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25u ZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUxOiB1c2luZyBQUWV4ZWMK IFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCkBAIC0zNzAsNSArMzY3LDEz IEBAIFNRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVy ZSBvbiBsaW5lIDE0NQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtO T19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTUxOiBSRVNVTFQ6IFt7IngiOiAxfSwgeyJ4 IjogWzEyLCB7InkiOiAxfV19XSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUg MTU0OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6 IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0g KTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tO T19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVj dXRlIG9uIGxpbmUgMTU0OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwg c3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE1NDog Y29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNTQ6 IFJFU1VMVDogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFy cmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19QSURd OiBlY3BnX2ZpbmlzaDogY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uIGNsb3NlZAogW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQgYi9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CmluZGV4IGQwMWE4NDU3ZjAx Li4xNDVkYzk1ZDQzMCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLnN0ZG91dAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CkBAIC0zNiw1ICszNiw3IEBAIEZvdW5kIGpzb249eyJ4 IjogMX0KIEZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1dXQogRm91bmQganNvbj17IngiOiAx fQogRm91bmQganNvbj1bMTIsIHsieSI6IDF9XQorRm91bmQganNvbj1beyJiIjogMSwgImMiOiAy fSwgW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dXQorRm91bmQganNvbj1bMSwgWzEy LCB7InkiOiAxfV1dCiBGb3VuZCBqc29uPVt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19 XQogRm91bmQganNvbj1beyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0KZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCmluZGV4IDk0MjNkMjVmZDBiLi4yYWY1MGI1 ZGE0YiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBn YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xNDMs NyArMTQzLDEwIEBAIEVYRUMgU1FMIEVORCBERUNMQVJFIFNFQ1RJT047CiAJcHJpbnRmKCJGb3Vu ZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJi IjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpq c29uYikuKikgSU5UTyA6anNvbjsKLQkvLyBlcnJvcgorCXByaW50ZigiRm91bmQganNvbj0lc1xu IiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjog Mn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLioueCkg SU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCiAJRVhFQyBT UUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwg eyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKVsnYiddWzA6XSkgSU5UTyA6anNvbjsKIAlw cmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9qc29uYi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25i Lm91dAppbmRleCAyNzAyZWRjOTcwNS4uODZiN2Y3Njc3ZmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvanNvbmIub3V0CkBAIC02MDY0LDggKzYwNjQsMTc1IEBAIFNFTEVDVCAoKGpiKS5iKVs6XS54 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKICB7InkiOiAiWVlZIiwgInoiOiAiWlpa In0KICgxIHJvdykKIAotU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247IC0tIGZhaWxzCi1FUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorLyogd2ls ZCBjYXJkIG1lbWJlciBhY2Nlc3MgKi8KK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYyIsICJk IiwgImYiLCB7InkiOiAieXl5IiwgInoiOiAienp6In1dCisoMSByb3cpCisKK1NFTEVDVCAoamIp LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6 ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVki LCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7 ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6 enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1d XQorKDEgcm93KQorCitTRUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv biB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsi YiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0 LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisK K1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYi LCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6 IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCitTRUxFQ1QgKHQuamIpLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVz ZSBlbnRyeSBmb3IgdGFibGUgInQiCitMSU5FIDE6IFNFTEVDVCAodC5qYikuKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgIF4KK1NFTEVDVCAodC5qYikuKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAi eXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwg InoiOiAiWlpaIn19XV0KKygxIHJvdykKKworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJjIiwg ImQiLCAiZiIsIHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifV0KKygxIHJvdykKKworU0VMRUNUIChq YikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyBiIAorLS0tCisgCisoMSBy b3cpCisKK1NFTEVDVCAoamIpLmEuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Cisg eCAKKy0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLioueSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgeSAgIAorLS0tLS0tLQorICJ5eXkiCisoMSByb3cpCisKK1NFTEVD VCAoamIpLmEuKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgP2NvbHVtbj8g ICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6Il0KKygxIHJvdykKKworU0VMRUNU IChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAg ICAgICAgICAgIHggICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoi OiAienp6In0sIHsieSI6ICJZWVkiLCAieiI6ICJaWloifV0KKygxIHJvdykKKworU0VMRUNUIChq YikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6 ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKChq YikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgeCAKKy0tLQorIAorKDEg cm93KQorCitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7 CisgeCAKKy0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKChqYikuKilbOl0ueCBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHggICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoiOiAienp6In0sIHsieSI6ICJZ WVkiLCAieiI6ICJaWloifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgIHggICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoiOiAienp6In0sIHsieSI6ICJZWVki LCAieiI6ICJaWloifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi54LiogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6IiwgIllZWSIsICJaWloiXQor KDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworICAgICAgIHkgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgIllZWSJdCiso MSByb3cpCisKK1NFTEVDVCAoamIpLioueC56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICAgICAgeiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ6enoiLCAiWlpaIl0KKygx IHJvdykKKworU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgICB5ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJZWVkiXQorKDEg cm93KQorCitTRUxFQ1QgKGpiKS4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor ICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbInl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cpCisKK1NFTEVDVCAo amIpLiouKi4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyA/Y29sdW1uPyAKKy0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYS5iLmMuKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitT RUxFQ1QgKGpiKS5hLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgID9jb2x1 bW4/ICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiJdCisoMSByb3cpCisKK1NF TEVDVCAoamIpLmEuKls6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgP2Nv bHVtbj8gICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6Il0KKygxIHJvdykKKwor U0VMRUNUIChqYikuYS4qWypdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gbm90 IHN1cHBvcnRlZAorRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKK0xJTkUgMTog U0VMRUNUIChqYikuYS4qWypdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAg ICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCAoamIpLmEuKioueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICIqKiIKK0xJTkUgMTogU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZXhwbGFpbnMgc2hvdWxk IHdvcmsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAKQEAgLTYwOTMsNiArNjI2MCw0NSBAQCBTRUxFQ1QgKGpiKS5hWzFd IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAgMgogKDEgcm93KQogCitFWFBMQUlOIChW RVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24g cHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYS4qCisoMiBy b3dzKQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAg ICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImMiLCAiZCIsICJmIiwgeyJ5IjogInl5 eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYp IFNFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYS4qWzpdLioKKygyIHJvd3MpCisK K1NFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpIFNFTEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVi bGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYS4qWzoyXS4qLmIK KygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworIGIgCistLS0KKyAKKygxIHJvdykKKwogLS0gdmlld3Mgc2hvdWxkIHdvcmsK IENSRUFURSBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFb M10ueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBcc3YgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjEKQEAgLTYxMjEsNiArNjMyNywxNyBAQCBTRUxFQ1QgKiBmcm9tIHYzOwogICJ5 eXkiCiAoMSByb3cpCiAKK0NSRUFURSBWSUVXIHY0IEFTIFNFTEVDVCAoamIpLmEuKls6XS4qIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdjQKK0NSRUFURSBPUiBSRVBMQUNFIFZJ RVcgcHVibGljLnY0IEFTCisgU0VMRUNUIChqYikuYS4qWzpdLiogQVMgIj9jb2x1bW4/IgorICAg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB2NDsKKyAgICA/Y29s dW1uPyAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCiAt LSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKIEVY UExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2EnXS5iIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CkBAIC02MzU2LDQgKzY1NzMsNSBAQCBOT1RJQ0U6ICBbMl0KIC0t IGNsZWFuIHVwCiBEUk9QIFZJRVcgdjI7CiBEUk9QIFZJRVcgdjM7CitEUk9QIFZJRVcgdjQ7CiBE Uk9QIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvanNvbmIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCmlu ZGV4IGRlMmM5Y2RhMDk0Li4wN2ZhY2MyODBkNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvanNvbmIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbApAQCAt MTYzMSwxMyArMTYzMSw0OSBAQCBTRUxFQ1QgKGpiKS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CiBTRUxFQ1QgKGpiKS5hWzoyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiBTRUxFQ1QgKGpiKS5hWzpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK IFNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKLVNF TEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWlscworCisv KiB3aWxkIGNhcmQgbWVtYmVyIGFjY2VzcyAqLworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NF TEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpi KS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKHQuamIpLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLmEuKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitT RUxFQ1QgKGpiKS5hLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChq YikuYS4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKi4q IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7 CitTRUxFQ1QgKChqYikuKilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitT RUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIp LioueC4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLngueSBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54LnogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiouKi55IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworU0VMRUNUIChqYikuKi4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYS5iLmMuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYS4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEu Kls6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLipbKl0u KiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCitTRUxFQ1Qg KGpiKS5hLioqLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gbm90IHN1cHBvcnRl ZAogCiAtLSBleHBsYWlucyBzaG91bGQgd29yawogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogU0VMRUNU ICh0LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIEVYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOwogU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVhQ TEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLipbMTpdLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBT RUxFQ1QgKGpiKS5hLipbMToyXS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NF TEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogCiAt LSB2aWV3cyBzaG91bGQgd29yawogQ1JFQVRFIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25f djEgQVMgU0VMRUNUIChqYikuYVszXS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK QEAgLTE2NDgsNiArMTY4NCw5IEBAIFNFTEVDVCAqIGZyb20gdjI7CiBDUkVBVEUgVklFVyB2MyBB UyBTRUxFQ1QgKGpiKS5hWzozXS54LnlbLTE6XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OwogXHN2IHYzCiBTRUxFQ1QgKiBmcm9tIHYzOworQ1JFQVRFIFZJRVcgdjQgQVMgU0VMRUNUIChq YikuYS4qWzpdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2NAorU0VMRUNU ICogZnJvbSB2NDsKIAogLS0gbWl4ZWQgc3ludGF4CiBEUk9QIFZJRVcgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CkBAIC0xNzQ5LDQgKzE3ODgsNSBAQCAkJCBMQU5HVUFHRSBwbHBnc3FsOwog LS0gY2xlYW4gdXAKIERST1AgVklFVyB2MjsKIERST1AgVklFVyB2MzsKK0RST1AgVklFVyB2NDsK IERST1AgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5LjUgKEFwcGxlIEdp dC0xNTQpCgo= --000000000000789ac1063e5fc312 Content-Type: application/octet-stream; name="v16-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Disposition: attachment; filename="v16-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcoy0fn0 RnJvbSBiYzZkNjNiYjU5M2NjZjA3OTM5MDk5NmNiYmIzNjEyNzUxNjAwZmRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE2IDEvN10gQWxsb3cgdHJhbnNmb3JtYXRpb24gb2Ygb25seSBhIHN1Ymxpc3Qgb2Ygc3Vic2Ny aXB0cwoKVGhpcyBpcyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGFsbG93aW5nIHN1YnNjcmlwdGlu ZyBjb250YWluZXJzIHRvCnRyYW5zZm9ybSBvbmx5IGEgcHJlZml4IG9mIGFuIGluZGlyZWN0aW9u IGxpc3QgYW5kIG1vZGlmeSB0aGUgbGlzdAppbi1wbGFjZSBieSByZW1vdmluZyB0aGUgcHJvY2Vz c2VkIGVsZW1lbnRzLiBDdXJyZW50bHksIGFsbCBlbGVtZW50cwphcmUgY29uc3VtZWQsIGFuZCB0 aGUgbGlzdCBpcyBzZXQgdG8gTklMIGFmdGVyIHRyYW5zZm9ybWF0aW9uLgoKSW4gdGhlIGZvbGxv d2luZyBjb21taXQsIHN1YnNjcmlwdGluZyBjb250YWluZXJzIHdpbGwgZ2FpbiB0aGUKZmxleGli aWxpdHkgdG8gc3RvcCB0cmFuc2Zvcm1hdGlvbiB3aGVuIGVuY291bnRlcmluZyBhbiB1bnN1cHBv cnRlZAppbmRpcmVjdGlvbiBhbmQgcmV0dXJuIHRoZSByZW1haW5pbmcgaW5kaXJlY3Rpb25zIHRv IHRoZSBjYWxsZXIuCgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53YW5n Lm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNs YW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5N0Bn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0KIGNv bnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMgICAgICB8IDEwICsrKysrKy0tLS0KIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICB8ICA5ICsrKystLS0tLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX25vZGUuYyAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYyB8ICA2ICsr KystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIHwgIDYgKysrKy0tCiBzcmMv aW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCAgfCAgNyArKysrKystCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgfCAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3Rv cmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwppbmRleCAzZDAzZjY2ZmEw ZC4uMWIyOTU0M2FiNjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMK KysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwpAQCAtNDAsNyArNDAsNyBAQAogICov CiBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVm ICpzYnNyZWYsCi0JCQkJCQkgICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgIExpc3QgKipp bmRpcmVjdGlvbiwKIAkJCQkJCSAgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgIGJvb2wg aXNTbGljZSwKIAkJCQkJCSAgIGJvb2wgaXNBc3NpZ25tZW50KQpAQCAtNDksMTUgKzQ5LDE1IEBA IGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCU5v ZGUJICAgKnN1YmV4cHI7CiAKIAkvKiBXZSBzdXBwb3J0IG9ubHkgc2luZ2xlLXN1YnNjcmlwdCwg bm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoaW5kaXJlY3Rp b24pICE9IDEpCisJaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoKmluZGlyZWN0aW9uKSAhPSAx KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dzIG9ubHkgb25lIHN1YnNjcmlwdCIp LAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAotCQkJCQkJCQkJZXhwckxvY2F0aW9u KChOb2RlICopIGluZGlyZWN0aW9uKSkpKTsKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAq KSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3JtIHRoZSBzdWJzY3JpcHQgZXhwcmVz c2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRpY2VzLCBpbmRp cmVjdGlvbik7CisJYWkgPSBsaW5pdGlhbF9ub2RlKEFfSW5kaWNlcywgKmluZGlyZWN0aW9uKTsK IAlBc3NlcnQoYWktPnVpZHggIT0gTlVMTCAmJiBhaS0+bGlkeCA9PSBOVUxMICYmICFhaS0+aXNf c2xpY2UpOwogCiAJc3ViZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0 YXRlLT5wX2V4cHJfa2luZCk7CkBAIC04MSw2ICs4MSw4IEBAIGhzdG9yZV9zdWJzY3JpcHRfdHJh bnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUgcmVzdWx0 IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyB0ZXh0ICovCiAJc2Jz cmVmLT5yZWZyZXN0eXBlID0gVEVYVE9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJ KmluZGlyZWN0aW9uID0gTklMOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXgg ZTE5NzlhODBjMTkuLjZlOGZkNDJjNjEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ2 NSwxNCArNDY1LDEzIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKIAogCQkJLyog cHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxkIHNlbGVjdGlvbiAqLwotCQkJaWYg KHN1YnNjcmlwdHMpCisJCQl3aGlsZSAoc3Vic2NyaXB0cykKIAkJCQlyZXN1bHQgPSAoTm9kZSAq KSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCSAg IHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJCQkJ CQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICBzdWJzY3JpcHRz LAorCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJCQkgICBmYWxz ZSk7Ci0JCQlzdWJzY3JpcHRzID0gTklMOwogCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1bmNPckNv bHVtbihwc3RhdGUsCiAJCQkJCQkJCQkJICBsaXN0X21ha2UxKG4pLApAQCAtNDg3LDEyICs0ODYs MTIgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0 aW9uICppbmQpCiAJCX0KIAl9CiAJLyogcHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBh bnkgKi8KLQlpZiAoc3Vic2NyaXB0cykKKwl3aGlsZSAoc3Vic2NyaXB0cykKIAkJcmVzdWx0ID0g KE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCiAJCQkJCQkJCQkJ CQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJ CQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAgIHN1YnNjcmlwdHMs CisJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJICAgZmFsc2UpOwog CiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9u b2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IDIwM2I3YTMyMTc4 Li5mMDViYWE1MGExNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yNDQsNyArMjQ0LDcg QEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBlLAogCQkJ CQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJIExpc3QgKmluZGlyZWN0aW9uLAor CQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KQog ewogCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwpAQCAtMjgwLDcgKzI4MCw3IEBAIHRyYW5zZm9y bUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGVsZW1lbnQuICBJ ZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRo ZW4KIAkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ug b3BlcmF0aW9uLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlk eCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0lu ZGljZXMsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgz Yi4uYTA5NzczNjIyOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNSw3ICs5 MzUsNyBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJICBiYXNlbm9kZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cGUsCiAJCQkJ CQkJCQkJICBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJCQkJICBzdWJzY3JpcHRzLAorCQkJCQkJ CQkJCSAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJICB0cnVlKTsKIAogCXR5cGVOZWVkZWQgPSBz YnNyZWYtPnJlZnJlc3R5cGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKaW5kZXggMjk0MGZi OGU4ZDcuLjIzNGMyYzI3OGMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCkBAIC01NCw3 ICs1NCw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5U3ViV29ya3NwYWNlCiAgKi8KIHN0YXRpYyB2 b2lkCiBhcnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAot CQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgTGlzdCAqKmluZGlyZWN0aW9uLAog CQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgIGJvb2wgaXNTbGljZSwKIAkJCQkJ CSAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC03MSw3ICs3MSw3IEBAIGFycmF5X3N1YnNjcmlwdF90 cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICogaW5kaXJlY3Rpb24gaXRlbXMg dG8gc2xpY2VzIGJ5IHRyZWF0aW5nIHRoZSBzaW5nbGUgc3Vic2NyaXB0IGFzIHRoZQogCSAqIHVw cGVyIGJvdW5kIGFuZCBzdXBwbHlpbmcgYW4gYXNzdW1lZCBsb3dlciBib3VuZCBvZiAxLgogCSAq LwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9u KQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAJ CU5vZGUJICAgKnN1YmV4cHI7CkBAIC0xNTIsNiArMTUyLDggQEAgYXJyYXlfc3Vic2NyaXB0X3Ry YW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVy SW5kZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIg c2VwYXJhdGVseSAqLwogCisJKmluZGlyZWN0aW9uID0gTklMOworCiAJLyoKIAkgKiBEZXRlcm1p bmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uLiAgSXQncyB0 aGUgc2FtZQogCSAqIGFzIHRoZSBhcnJheSB0eXBlIGlmIHdlJ3JlIHNsaWNpbmcsIGVsc2UgaXQn cyB0aGUgZWxlbWVudCB0eXBlLiAgSW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCBk ZTY0ZDQ5ODUxMi4uOGFkNmFhMWFkNGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAg LTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKICAqLwogc3Rh dGljIHZvaWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNy ZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJICBMaXN0ICoqaW5kaXJlY3Rp b24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgYm9vbCBpc1NsaWNlLAog CQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTUzLDcgKzUzLDcgQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKiBUcmFuc2Zvcm0gYW5k IGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4gSnNvbmIgc3Vic2NyaXB0aW5nCiAJ ICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhbmQgdGhlIHVwcGVyIGluZGV4 LgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlkeCwgKmluZGly ZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlk eCk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CkBAIC0xNTksNiArMTU5LDggQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkvKiBEZXRlcm1pbmUgdGhl IHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIg Ki8KIAlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9 IC0xOworCisJKmluZGlyZWN0aW9uID0gTklMOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRp bmcuaAppbmRleCAyMzRlOGFkODAxMi4uZGY5ODhhODVmYWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3N1YnNjcmlwdGluZy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlw dGluZy5oCkBAIC03MSw2ICs3MSwxMSBAQCBzdHJ1Y3QgU3Vic2NyaXB0RXhlY1N0ZXBzOwogICog ZG9lcyBub3QgY2FyZSB0byBzdXBwb3J0IHNsaWNpbmcsIGl0IGNhbiBqdXN0IHRocm93IGFuIGVy cm9yIGlmIGlzU2xpY2UuKQogICogU2VlIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oKSBmb3Ig c2FtcGxlIGNvZGUuCiAgKgorICogVGhlIHRyYW5zZm9ybSBtZXRob2QgcmVjZWl2ZXMgYSBwb2lu dGVyIHRvIGEgbGlzdCBvZiByYXcgaW5kaXJlY3Rpb25zLgorICogSXQgbWF5IHBhcnNlIGEgc3Vi bGlzdCAodHlwaWNhbGx5IHRoZSBwcmVmaXgpIG9mIHRoZXNlIGluZGlyZWN0aW9ucyBhbmQKKyAq IG1vZGlmeSB0aGUgb3JpZ2luYWwgbGlzdCBpbiBwbGFjZSwgYWxsb3dpbmcgdGhlIGNhbGxlciB0 byBoYW5kbGUgYW55CisgKiByZW1haW5pbmcgaW5kaXJlY3Rpb25zIGRpZmZlcmVudGx5IG9yIHRv IHJhaXNlIGFuIGVycm9yIGFzIG5lZWRlZC4KKyAqCiAgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCBp cyBhbHNvIHJlc3BvbnNpYmxlIGZvciBpZGVudGlmeWluZyB0aGUgcmVzdWx0IHR5cGUKICAqIG9m IHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uLiAgQXQgY2FsbCwgcmVmY29udGFpbmVydHlwZSBh bmQgcmVmdHlwbW9kCiAgKiBkZXNjcmliZSB0aGUgY29udGFpbmVyIHR5cGUgKHRoaXMgd2lsbCBi ZSBhIGJhc2UgdHlwZSBub3QgYSBkb21haW4pLCBhbmQKQEAgLTkzLDcgKzk4LDcgQEAgc3RydWN0 IFN1YnNjcmlwdEV4ZWNTdGVwczsKICAqIGFzc2lnbm1lbnQgbXVzdCByZXR1cm4uCiAgKi8KIHR5 cGVkZWYgdm9pZCAoKlN1YnNjcmlwdFRyYW5zZm9ybSkgKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVm LAotCQkJCQkJCQkJTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJCQkJCQlMaXN0ICoqaW5kaXJlY3Rp b24sCiAJCQkJCQkJCQlzdHJ1Y3QgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJYm9vbCBp c1NsaWNlLAogCQkJCQkJCQkJYm9vbCBpc0Fzc2lnbm1lbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmgKaW5kZXggZjdkMDdjODQ1NDIuLjU4YTRiOWRmMTU3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmgKQEAgLTM2MSw3ICszNjEsNyBAQCBleHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1D b250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgTm9k ZSAqY29udGFpbmVyQmFzZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJ CQkJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKLQkJCQkJCQkJCQkJCQkgTGlzdCAqaW5k aXJlY3Rpb24sCisJCQkJCQkJCQkJCQkJIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCQkJCQkJ CQkgYm9vbCBpc0Fzc2lnbm1lbnQpOwogZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9Db25zdCAqYWNvbnN0KTsKIAotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0 KQoK --000000000000789ac1063e5fc312 Content-Type: application/octet-stream; name="v16-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v16-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcoy0g34 RnJvbSBiMmEzY2E2YzZkNTdkMjIwOWVmZjA2NTQzODFjMzk4M2FkOTI0MjA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTYgNC83XSBFeHRyYWN0IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQoKQoKVGhpcyBp cyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGEgZnV0dXJlIGNvbW1pdCB0aGF0IHdpbGwgcmV1c2Ug dGhlCmFmb3JlbWVudGlvbmVkIGZ1bmN0aW9uLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBHbHVr aG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEgV2Fu ZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5z dGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRhcmEg PG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGppYW4udW5p dmVyc2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJz LmMgfCAxMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NjUgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jCmluZGV4IGVjOGU4MmRjNjI5Li4xYzU4NmU5NjBmMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl 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 ZWYgZXhwcmVzc2lvbiBmb3IgYSBqc29uYi4KQEAgLTUwLDcgKzExMyw3IEBAIGpzb25iX3N1YnNj cmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAKIAkvKgogCSAqIFRyYW5z Zm9ybSBhbmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb25zLiBKc29uYiBzdWJzY3Jp cHRpbmcKLQkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcywgbG9vayBvbmx5IGFuZCB0aGUgdXBw ZXIgaW5kZXguCisJICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhdCB0aGUg dXBwZXIgaW5kZXguCiAJICovCiAJZm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7CkBAIC03 NCw3MSArMTM3LDggQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYg 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 --000000000000789ac1063e5fc312 Content-Type: application/octet-stream; name="v16-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Disposition: attachment; filename="v16-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcoy0fz2 RnJvbSA3MzMxNTUxYzJiNzQ2OTM4MWNlNTFmMzgyNWY5ZWMyYzFiNjUzYzMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTYgNi83XSBJbXBsZW1lbnQgSnNvbmIgc3Vic2NyaXB0aW5nIHdpdGggc2xpY2luZwoK UHJldmlvdXNseSwgc2xpY2luZyB3YXMgbm90IHN1cHBvcnRlZCBmb3IganNvbmIgc3Vic2NyaXB0 aW5nLiBUaGlzIGNvbW1pdAppbXBsZW1lbnRzIHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcgYXMg cGFydCBvZiB0aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yCnN5bnRheCBzcGVjaWZpZWQgaW4g U1FMOjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdt YWlsLmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5v c3NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFu ZS5uZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2Vk Yi5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmll d2VkLWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog UGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBDaGFv IExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpUZXN0ZWQtYnk6IE1hcmsgRGlsZ2VyIDxtYXJr LmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpUZXN0ZWQtYnk6IEppYW4gSGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMg ICAgICAgICAgICAgfCAxMTkgKysrKysrKystLS0tLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uYyAgICAgICAgICB8ICAxNiArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5zdGRlcnIgICAgIHwgIDI2ICsrLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uc3Rkb3V0ICAgICB8ICAgMyArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qv c3FsL3NxbGpzb24ucGdjICAgICAgfCAgIDcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv anNvbmIub3V0ICAgICAgICAgICB8IDE0NSArKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAgICAgICAgICAgICB8ICA1MyArKysrKystCiA3IGZpbGVz IGNoYW5nZWQsIDI4NiBpbnNlcnRpb25zKCspLCA4MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmJzdWJzLmMKaW5kZXggNjI1NTNkNTQwNjAuLmVlOTI1YTdiNDg2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2pzb25ic3Vicy5jCkBAIC0xMTEsNyArMTExLDcgQEAgY29lcmNlX2pzb25wYXRoX3N1 YnNjcmlwdF90b19pbnQ0X29yX3RleHQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpzdWJFeHBy KQogICoKICAqIEpzb25QYXRoIGlzIG5lZWRlZCBpZiB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbmNs dWRlczoKICAqIC0gU3RyaW5nLWJhc2VkIGFjY2VzcyAoZG90IG5vdGF0aW9uKQotICogLSBTbGlj ZS1iYXNlZCBzdWJzY3JpcHRpbmcgKHdoZW4gaXNTbGljZSBpcyB0cnVlKQorICogLSBTbGljZS1i YXNlZCBzdWJzY3JpcHRpbmcKICAqCiAgKiBPdGhlcndpc2UsIHNpbXBsZSBqc29uYiBzdWJzY3Jp cHRpbmcgaXMgZW5vdWdoLgogICovCkBAIC0xMjcsNyArMTI3LDExIEBAIGpzb25iX2NoZWNrX2pz b25wYXRoX25lZWRlZChMaXN0ICppbmRpcmVjdGlvbikKIAkJaWYgKElzQShhY2Nlc3NvciwgU3Ry aW5nKSkKIAkJCXJldHVybiB0cnVlOwogCQllbHNlCisJCXsKIAkJCUFzc2VydChJc0EoYWNjZXNz b3IsIEFfSW5kaWNlcykpOworCQkJaWYgKGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpLT5p c19zbGljZSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQogCX0KIAogCXJldHVybiBmYWxzZTsKQEAg LTE1MiwyMCArMTU2LDQ1IEBAIG1ha2VfanNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5 cGUpCiAJcmV0dXJuIHY7CiB9CiAKKy8qCisgKiBCdWlsZCBhIEpzb25QYXRoUGFyc2VJdGVtIGZv ciBhIGNvbnN0YW50IGludGVnZXIgdmFsdWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1 Y3RzIGEganBpTnVtZXJpYyBpdGVtIGZvciB1c2UgaW4gSnNvblBhdGgsCisgKiBhbmQgYXBwZW5k cyBhIG1hdGNoaW5nIENvbnN0KElOVDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlz dAorICogZm9yIHVzZSBpbiBFWFBMQUlOLCB2aWV3cywgZXRjLgorICoKKyAqIFBhcmFtZXRlcnM6 CisgKiAtIHZhbDogaW50ZWdlciBjb25zdGFudCB2YWx1ZQorICogLSBleHByczogbGlzdCBvZiBl eHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQorICovCitzdGF0aWMgSnNvblBhdGhQ YXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2ludChpbnQzMiB2YWwsIExpc3QgKipleHBy cykKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaU51 bWVyaWMpOworCisJanBpLT52YWx1ZS5udW1lcmljID0KKwkJRGF0dW1HZXROdW1lcmljKERpcmVj dEZ1bmN0aW9uQ2FsbDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKHZhbCkpKTsKKworCSpl eHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRPaWQs IDQsCisJCQkJCQkJCQkgICBJbnQzMkdldERhdHVtKHZhbCksIGZhbHNlLCB0cnVlKSk7CisKKwly ZXR1cm4ganBpOworfQorCiAvKgogICogQ29udmVydCBhIGNvbnN0YW50IGludGVnZXIgZXhwcmVz c2lvbiBpbnRvIGEgSnNvblBhdGhQYXJzZUl0ZW0uCiAgKgogICogVGhlIGlucHV0IGV4cHJlc3Np b24gbXVzdCBiZSBhIG5vbi1udWxsIGNvbnN0YW50IG9mIHR5cGUgSU5UNC4gUmV0dXJucyBOVUxM IG90aGVyd2lzZS4KLSAqIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBhIGpwaU51bWVyaWMgaXRl bSBmb3IgdXNlIGluIEpzb25QYXRoIGFuZCBhcHBlbmRzIGEgbWF0Y2hpbmcKLSAqIENvbnN0KElO VDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdCBmb3IgdXNlIGluIEVYUExBSU4s IHZpZXdzLCBldGMuCisgKiBUaGUgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIHZhbHVlIGFuZCBkZWxl Z2F0ZXMgaXQgdG8gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgpLgogICoKICAqIFBhcmFtZXRlcnM6 CiAgKiAtIHBzdGF0ZTogcGFyc2Ugc3RhdGUgY29udGV4dAogICogLSBleHByOiBpbnB1dCBleHBy ZXNzaW9uIG5vZGUKICAqIC0gZXhwcnM6IGxpc3Qgb2YgZXhwcmVzc2lvbiBub2RlcyAodXBkYXRl ZCBpbiBwbGFjZSkKKyAqIC0gbm9fZXJyb3I6IHJldHVybnMgTlVMTCB3aGVuIHRoZSBkYXRhIHR5 cGUgZG9lc24ndCBtYXRjaC4gT3RoZXJ3aXNlLCBlbWl0cyBhbiBFUlJPUi4KICAqLwogc3RhdGlj IEpzb25QYXRoUGFyc2VJdGVtICoKLW1ha2VfanNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAqKmV4cHJzKQorbWFrZV9qc29ucGF0aF9pdGVtX2V4 cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMsIGJvb2wgbm9f ZXJyb3IpCiB7CiAJQ29uc3QJICAgKmNuc3Q7CiAKQEAgLTE3NSwyMCArMjA0LDE3IEBAIG1ha2Vf anNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAq KmV4cHJzKQogCXsKIAkJY25zdCA9IChDb25zdCAqKSBleHByOwogCQlpZiAoY25zdC0+Y29uc3R0 eXBlID09IElOVDRPSUQgJiYgIShjbnN0LT5jb25zdGlzbnVsbCkpCi0JCXsKLQkJCUpzb25QYXRo UGFyc2VJdGVtICpqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpTnVtZXJpYyk7Ci0KLQkJCWpw aS0+dmFsdWUubnVtZXJpYyA9Ci0JCQkJRGF0dW1HZXROdW1lcmljKERpcmVjdEZ1bmN0aW9uQ2Fs bDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKGNuc3QtPmNvbnN0dmFsdWUpKSk7Ci0KLQkJ CSpleHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRP aWQsIDQsCi0JCQkJCQkJCQkJCSAgIEludDMyR2V0RGF0dW0oY25zdC0+Y29uc3R2YWx1ZSksIGZh bHNlLCB0cnVlKSk7Ci0KLQkJCXJldHVybiBqcGk7Ci0JCX0KKwkJCXJldHVybiBtYWtlX2pzb25w YXRoX2l0ZW1faW50KERhdHVtR2V0SW50MzIoY25zdC0+Y29uc3R2YWx1ZSksIGV4cHJzKTsKIAl9 CiAKLQlyZXR1cm4gTlVMTDsKKwlpZiAobm9fZXJyb3IpCisJCXJldHVybiBOVUxMOworCWVsc2UK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAorCQkJCWVycm1zZygib25seSBub24tbnVsbCBpbnRlZ2VyIGNvbnN0YW50cyBhcmUgc3VwcG9y dGVkIGZvciBqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1YnNjcmlwdGluZyIpLAorCQkJCWVy cmhpbnQoInVzZSBpbnQgZGF0YSB0eXBlIGZvciBzdWJzY3JpcHRpbmcgd2l0aCBzbGljaW5nLiIp LAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpOwog fQogCiAvKgpAQCAtMjUxLDEzICsyNzcsMTIgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBh dGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJ ZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKQogCQl7CiAJCQlBX0luZGljZXMgICph aSA9IGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpOworCQkJSnNvblBhdGhQYXJzZUl0ZW0g KmpwaV9mcm9tID0gTlVMTDsKIAogCQkJaWYgKCFhaS0+aXNfc2xpY2UpCiAJCQl7Ci0JCQkJSnNv blBhdGhQYXJzZUl0ZW0gKmpwaV9mcm9tID0gTlVMTDsKLQogCQkJCUFzc2VydChhaS0+dWlkeCAm JiAhYWktPmxpZHgpOwotCQkJCWpwaV9mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0 YXRlLCBhaS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsKKwkJCQlqcGlfZnJvbSA9 IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVw cGVyaW5kZXhwciwgdHJ1ZSk7CiAJCQkJaWYgKGpwaV9mcm9tID09IE5VTEwpCiAJCQkJewogCQkJ CQkvKgpAQCAtMjg0LDIyICszMDksMzQgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBhdGgo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJCQkJ ICovCiAJCQkJCWJyZWFrOwogCQkJCX0KKwkJCX0KIAotCQkJCWpwaSA9IG1ha2VfanNvbnBhdGhf aXRlbShqcGlJbmRleEFycmF5KTsKLQkJCQlqcGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7Ci0J CQkJanBpLT52YWx1ZS5hcnJheS5lbGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJh eS5lbGVtc1swXSkpOworCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUluZGV4QXJyYXkp OworCQkJanBpLT52YWx1ZS5hcnJheS5uZWxlbXMgPSAxOworCQkJanBpLT52YWx1ZS5hcnJheS5l bGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOwogCisJCQlp ZiAoIWFpLT5pc19zbGljZSkKKwkJCXsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZy b20gPSBqcGlfZnJvbTsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gTlVMTDsK IAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+ dWlkeCA6IGFpLT5saWR4OworCQkJCXdoaWxlIChsaXN0X2xlbmd0aChzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwcikgPCBsaXN0X2xlbmd0aChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikpCisJCQkJCXNi c3JlZi0+cmVmbG93ZXJpbmRleHByID0gbGFwcGVuZChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwg TlVMTCk7CisKKwkJCQlpZiAoYWktPmxpZHgpCisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNb MF0uZnJvbSA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPmxpZHgsICZzYnNy ZWYtPnJlZmxvd2VyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UKKwkJCQkJanBpLT52YWx1ZS5h cnJheS5lbGVtc1swXS5mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgwLCAmc2JzcmVmLT5y ZWZsb3dlcmluZGV4cHIpOwogCi0JCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVS UkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAotCQkJCQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0 IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIiksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOworCQkJCWlmIChhaS0+dWlkeCkKKwkJCQkJanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0 ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UK KwkJCQl7CisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8gPSBtYWtlX2pzb25wYXRo X2l0ZW0oanBpTGFzdCk7CisJCQkJCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gbGFwcGVuZChz YnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgTlVMTCk7CisJCQkJfQogCQkJfQogCQl9CiAJCWVsc2UK QEAgLTM4MSwzMiArNDE4LDEyIEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0 aW5nUmVmICpzYnNyZWYsCiAJCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOwogCiAJ CWlmIChhaS0+aXNfc2xpY2UpCi0JCXsKLQkJCU5vZGUJICAgKmV4cHIgPSBhaS0+dWlkeCA/IGFp LT51aWR4IDogYWktPmxpZHg7CisJCQlicmVhazsKIAotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJtc2coImpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOwotCQl9CisJCUFzc2VydCghYWkt PmxpZHggJiYgYWktPnVpZHgpOwogCi0JCWlmIChhaS0+dWlkeCkKLQkJewotCQkJc3ViRXhwciA9 IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7Ci0J CQlzdWJFeHByID0gY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQocHN0 YXRlLCBzdWJFeHByKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBTbGljZSB3aXRo IG9taXR0ZWQgdXBwZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKLQkJ CSAqIGVycm9yZWQgb3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGlu IGNhc2UuCi0JCQkgKi8KLQkJCUFzc2VydChhaS0+aXNfc2xpY2UpOwotCQkJZXJlcG9ydChFUlJP UiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJt c2coImpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGFpLT51aWR4KSkpKTsKLQkJfQor CQlzdWJFeHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhw cl9raW5kKTsKKwkJc3ViRXhwciA9IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHRfdG9faW50NF9v cl90ZXh0KHBzdGF0ZSwgc3ViRXhwcik7CiAKIAkJdXBwZXJJbmRleHByID0gbGFwcGVuZCh1cHBl ckluZGV4cHIsIHN1YkV4cHIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLmMKaW5kZXggZTZhN2VjZTZkYWIuLjkzNWI0N2EzYjlhIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwor KysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpAQCAt NTA1LDcgKzUwNSw3IEBAIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiBpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogI2xpbmUgMTQyICJzcWxqc29uLnBnYyIK IAotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCXsgRUNQ R2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24g KCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtc InhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApIiwgRUNQR3RfRU9JVCwg CiAJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hh ciksIApAQCAtNTI1LDE0ICs1MjUsMjQgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmlu dCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAjbGluZSAxNDggInNx bGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OwogCi0gIHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisJeyBFQ1BHZG8o X19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwi OiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICkiLCBFQ1BHdF9FT0lU LCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihj aGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9S VCk7CiAjbGluZSAxNTEgInNxbGpzb24ucGdjIgogCiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQogI2xpbmUgMTUxICJzcWxqc29uLnBnYyIKIAorCXByaW50ZigiRm91bmQganNv bj0lc1xuIiwganNvbik7CisKKyAgeyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQi KTsKKyNsaW5lIDE1NCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3Fs cHJpbnQoKTt9CisjbGluZSAxNTQgInNxbGpzb24ucGdjIgorCiAKICAgcmV0dXJuIDA7CiB9CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0 ZGVycgppbmRleCAxOWY4YzU4YWYwNi4uZjNmODk5YzZkODcgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgpAQCAtMzM5LDEz ICszMzksMTAgQEAgU1FMIGVycm9yOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBs aW5lIDEyMQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19QSURd OiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9u IGxpbmUgMTQyOiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi4sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6 IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogZWNw Z19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0MjogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRo IDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDI6IFJFU1VMVDogWzEyLCB7InkiOiAxfV0gb2Zm c2V0OiAtMTsgYXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAotW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0MgotW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2Ny aXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCiBbTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTQ1OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAx LCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNv bmIgKSAuICogKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jl c3Npb24KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ1OiB1c2luZyBQUWV4ZWMKQEAgLTM2MSwxMiArMzU4LDE3 IEBAIFNRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVy ZSBvbiBsaW5lIDE0NQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVz dWx0IG9uIGxpbmUgMTQ4OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBk b2VzIG5vdCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi54IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElE XTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0ODogY29ycmVjdGx5IGdvdCAxIHR1cGxl cyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogW3sieCI6IDF9LCB7 IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGlu ZSAxNTE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJi IjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDog XSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4 ZWN1dGUgb24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTUx OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE1 MTogUkVTVUxUOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsg YXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJ RF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1YnNjcmlw dCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0OAotW05PX1BJRF06IHNxbGNhOiBj b2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQ4CiBbTk9fUElEXTogZWNwZ19maW5pc2g6IGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbiBjbG9zZWQKIFtOT19QSURdOiBzcWxjYTogY29kZTog MCwgc3RhdGU6IDAwMDAwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLnN0ZG91dAppbmRleCA0NDJkMzY5MzFmMS4uZDAxYTg0NTdmMDEgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LnN0ZG91dApAQCAtMzUsMyArMzUsNiBAQCBGb3VuZCBqc29uPW51bGwKIEZvdW5kIGpzb249eyJ4 IjogMX0KIEZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1dXQogRm91bmQganNvbj17IngiOiAx fQorRm91bmQganNvbj1bMTIsIHsieSI6IDF9XQorRm91bmQganNvbj1beyJ4IjogMX0sIHsieCI6 IFsxMiwgeyJ5IjogMX1dfV0KK0ZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 IDF9XX1dCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24u cGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYwppbmRleCA1N2E5 YmZmNDI0ZC4uOTQyM2QyNWZkMGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9zcWwvc3FsanNvbi5wZ2MKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxq c29uLnBnYwpAQCAtMTQwLDEzICsxNDAsMTYgQEAgRVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElP TjsKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCiAJRVhFQyBTUUwgU0VMRUNU IEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEy LCB7InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhbMDpdKSBJTlRPIDpqc29uOwotCS8vIGVycm9y CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCUVYRUMgU1FMIFNFTEVDVCBK U09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwg eyJ5IjoxfV19XX0nOjpqc29uYikuKikgSU5UTyA6anNvbjsKIAkvLyBlcnJvcgogCiAJRVhFQyBT UUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwg eyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKVsnYiddWzA6XSkgSU5UTyA6anNvbjsKLQkv LyBlcnJvcgorCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBT RUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmJbOl0pIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDM3ZDcxYjIzZDVkLi4yNzAyZWRjOTcwNSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTUyNDcsMjMgKzUyNDcsMzQgQEAg c2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIi OiAiYmIifSc6Ompzb25iKS5hWzFdLmIKICgxIHJvdykKIAogc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYilbJ2EnOidiJ107IC0tIGZhaWxzCi1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcworRVJST1I6ICBvbmx5IG5vbi1udWxsIGludGVnZXIgY29uc3RhbnRz IGFyZSBzdXBwb3J0ZWQgZm9yIGpzb25iIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3Vic2NyaXB0aW5n CiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgdXNlIGludCBkYXRhIHR5cGUgZm9yIHN1YnNjcmlwdGluZyB3 aXRoIHNsaWNpbmcuCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwotRVJS T1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisg WyIyIiwgbnVsbF0KKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb OjJdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJ TkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICBqc29uYiAgICAgIAorLS0tLS0t LS0tLS0tLS0tLQorIFsxLCAiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzE6XTsKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1 cHBvcnQgc2xpY2VzCi1MSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6 XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgIGpzb25i ICAgIAorLS0tLS0tLS0tLS0tLQorIFsiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzpdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMKKyAgICAganNvbmIgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBb MSwgIjIiLCBudWxsXQorKDEgcm93KQorCiBjcmVhdGUgVEVNUCBUQUJMRSB0ZXN0X2pzb25iX3N1 YnNjcmlwdCAoCiAgICAgICAgaWQgaW50LAogICAgICAgIHRlc3RfanNvbiBqc29uYgpAQCAtNjAx Nyw4ICs2MDI4LDQyIEBAIFNFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiAgCiAoMSByb3cpCiAKLVNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzCitTRUxFQ1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICB4ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn0KKygxIHJvdykKKworU0VM RUNUIChqYikuYVsyOjNdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgYiAg ICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h WzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0t LS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVs6Ml0uYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisK K1NFTEVDVCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBi ICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgIHgg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsieSI6ICJZWVkiLCAi eiI6ICJaWloifQorKDEgcm93KQorCiBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsgLS0gZmFpbHMKIEVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRl CiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtNjA1NCw2ICs2MDk5LDI4IEBAIENSRUFURSBW SUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10ueC55IEZS T00gdGVzdF9qc29uYl9kCiBDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUwogIFNFTEVDVCAoamIpLmFbM10ueC55IEFTIHkKICAgIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK0NSRUFURSBWSUVXIHYyIEFTIFNFTEVDVCAoamIpLmFb MzpdLngueVs6LTFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdjIKK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYyIEFTCisgU0VMRUNUIChqYikuYVszOl0ueC55WzA6 Jy0xJzo6aW50ZWdlcl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VM RUNUICogZnJvbSB2MjsKKyB5IAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHYzIEFT IFNFTEVDVCAoamIpLmFbOjNdLngueVstMTpdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 Citcc3YgdjMKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYzIEFTCisgU0VMRUNUIChq YikuYVswOjNdLngueVsnLTEnOjppbnRlZ2VyOl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB2MzsKKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5Igor KDEgcm93KQorCiAtLSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MTsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2EnXS5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CkBAIC02MjM4LDUgKzYzMDUsNTUgQEAgU0VM RUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKICgxIHJvdykKIAogRFJPUCBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKy0tIGpzb25iIGFycmF5IGFj Y2VzcyBpbiBwbHBnc3FsCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6PSAn WzEsMiwzLDQsNSw2LDddJzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAgICAgV0hJTEUgYSBJUyBO T1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAgIFJBSVNFIE5PVElDRSAn JScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBhWzI6XTsKKyAgICAgICAgICAgIEVORCBMT09Q OworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK05PVElDRTogIFsxLCAyLCAzLCA0LCA1 LCA2LCA3XQorTk9USUNFOiAgWzMsIDQsIDUsIDYsIDddCitOT1RJQ0U6ICBbNSwgNiwgN10KK05P VElDRTogIDcKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBERUNM QVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBbNl0s IFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAg ICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAg IFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBM QU5HVUFHRSBwbHBnc3FsOworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2 XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04XX0KK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNs YXVzZSBlbnRyeSBmb3IgdGFibGUgImEiCitMSU5FIDE6IGEgOj0gQ09BTEVTQ0UoYS4iTlUiLCBh WzJdKQorICAgICAgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sg bGluZSA4IGF0IGFzc2lnbm1lbnQKK0RPICQkCisgICAgREVDTEFSRQorICAgICAgICBhIGpzb25i IDo9ICd7IiI6IDYsICJOVSI6IFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2kiXSwgImFhZiI6 IFstNiwgLThdfSc6Ompzb25iOworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5V TEwKKyAgICAgICAgICAgIExPT1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBh OworICAgICAgICAgICAgICAgIGEgOj0gQ09BTEVTQ0UoKGEpLiJOVSIsIGFbMl0pOyAtLSBzdWNj ZWVkcworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBMQU5HVUFHRSBwbHBnc3Fs OworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0s ICJhYWYiOiBbLTYsIC04XX0KK05PVElDRTogIFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2ki XQorTk9USUNFOiAgWzJdCiAtLSBjbGVhbiB1cAorRFJPUCBWSUVXIHYyOworRFJPUCBWSUVXIHYz OwogRFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNx bAppbmRleCA1ZmM1M2UxYzlhYS4uZGUyYzljZGEwOTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwK QEAgLTE2MjUsNyArMTYyNSwxMiBAQCBTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiBTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwog U0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLVNFTEVDVCAo KGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKK1NF TEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoamIpLmFbMjozXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpi KS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzoy XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzpdLmIgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSBmYWlscwogCiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtMTYz Nyw2ICsxNjQyLDEyIEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKIC0tIHZpZXdzIHNob3VsZCB3b3JrCiBDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUyBTRUxFQ1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOwogXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgVklFVyB2MiBB UyBTRUxFQ1QgKGpiKS5hWzM6XS54LnlbOi0xXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworXHN2IHYyCitTRUxFQ1QgKiBmcm9tIHYyOworQ1JFQVRFIFZJRVcgdjMgQVMgU0VMRUNUIChq YikuYVs6M10ueC55Wy0xOl0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2Mwor U0VMRUNUICogZnJvbSB2MzsKIAogLS0gbWl4ZWQgc3ludGF4CiBEUk9QIFZJRVcgdGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjE7CkBAIC0xNjk3LDUgKzE3MDgsNDUgQEAgU0VMRUNUIChqYilbJ2In XVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAqIGZyb20gdGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CiBEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOwogCistLSBqc29uYiBhcnJheSBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQK KyAgICBERUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ1sxLDIsMyw0LDUsNiw3XSc6Ompzb25i OworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5VTEwKKyAgICAgICAgICAgIExP T1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBhOworICAgICAgICAgICAgICAg IGEgOj0gYVsyOl07CisgICAgICAgICAgICBFTkQgTE9PUDsKKyAgICBFTkQKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBE RUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBb Nl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAg ICAgICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAg ICAgIFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShh LiJOVSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECisk JCBMQU5HVUFHRSBwbHBnc3FsOworCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29u YiA6PSAneyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0sICJhYWYi OiBbLTYsIC04XX0nOjpqc29uYjsKKyAgICBCRUdJTgorICAgICAgICBXSElMRSBhIElTIE5PVCBO VUxMCisgICAgICAgICAgICBMT09QCisgICAgICAgICAgICAgICAgUkFJU0UgTk9USUNFICclJywg YTsKKyAgICAgICAgICAgICAgICBhIDo9IENPQUxFU0NFKChhKS4iTlUiLCBhWzJdKTsgLS0gc3Vj Y2VlZHMKKyAgICAgICAgICAgIEVORCBMT09QOworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKwogLS0gY2xlYW4gdXAKK0RST1AgVklFVyB2MjsKK0RST1AgVklFVyB2MzsKIERST1AgVEFC TEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000789ac1063e5fc312 Content-Type: application/octet-stream; name="v16-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v16-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcoy0g13 RnJvbSAyMjU0ZWVkMjMyMzZhYjg5NjhlYjVlNzc1M2IwZTJlOTc1ZjQ4MjUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTYgNS83XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIK 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 T1IpIGZyb20gdDsKCkltcGxlbWVudGF0aW9uIGRldGFpbHM6CgpUaGlzIHBhdGNoIGV4dGVuZHMg dGhlIGV4aXN0aW5nIGNvbnRhaW5lciBzdWJzY3JpcHRpbmcgaW50ZXJmYWNlIHRvCnN1cHBvcnQg Y29udGFpbmVyLXNwZWNpZmljIGluZm9ybWF0aW9uLCBuYW1lbHkgYSBKU09OUGF0aCBleHByZXNz aW9uCmZvciBqc29uYi4KCkR1cmluZyBxdWVyeSB0cmFuc2Zvcm1hdGlvbiwgaWYgZG90LW5vdGF0 aW9uIGlzIHByZXNlbnQsIGEgSlNPTlBhdGgKZXhwcmVzc2lvbiBpcyBjb25zdHJ1Y3RlZCB0byBy ZXByZXNlbnQgdGhlIGFjY2VzcyBjaGFpbi4KClRoZW4gZHVyaW5nIGV4ZWN1dGlvbiwgaWYgYSBK U09OUGF0aCBleHByZXNzaW9uIGlzIHByZXNlbnQgaW4KSnNvbmJTdWJXb3Jrc3BhY2UsIGV4ZWN1 dGVzIGl0IHZpYSBKc29uUGF0aFF1ZXJ5KCkuCgpOb3RlIHRoYXQgd2UgY2Fubm90IHNpbXBseSBy ZXdyaXRlIHRoZSBhY2Nlc3NvcnMgaW50byBKU09OX1FVRVJZKCkKZHVyaW5nIHRyYW5zZm9ybWF0 aW9uLCBiZWNhdXNlIHRoZSBvcmlnaW5hbCBxdWVyeSBzdHJ1Y3R1cmUgbXVzdCBiZQpwcmVzZXJ2 ZWQgZm9yIEVYUExBSU4gYW5kIENSRUFURSBWSUVXLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBH bHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEg V2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBE dW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRh cmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hcmsgRGlsZ2VyIDxt YXJrLmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpSZXZpZXdlZC1ieTogSmlhbiBIZSA8amlhbi51 bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVmlrIEZlYXJpbmcgPHZpa0Bwb3N0 Z3Jlc2ZyaWVuZHMub3JnPgpSZXZpZXdlZC1ieTogTmlraXRhIE1hbGFraG92IDxodWt1dG9jQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFBldGVyIEVpc2VudHJhdXQgPHBldGVyQGVpc2VudHJhdXQu b3JnPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KVGVzdGVk LWJ5OiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgotLS0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDgxICsrLS0KIHNyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbmJzdWJzLmMgICAgICAgICAgICAgfCAzMDEgKysrKysrKysrKysrLQog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDQzICstCiBz cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgNTQgKystCiAu Li4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgICAgICAgICAgfCAxMTIgKysrKy0K IC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyICAgICB8IDEwMCArKysr KwogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQgICAgIHwgICA3ICsK IHNyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgICAgICB8ICAzMyArKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgICAgICAgICAgIHwgNDEzICsrKysr KysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsICAgICAgICAgICAg ICAgIHwgMTEzICsrKystCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAg ICAgICAgfCAgIDEgKwogMTMgZmlsZXMgY2hhbmdlZCwgMTIwMSBpbnNlcnRpb25zKCspLCA3MyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJl cy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKaW5kZXggZWJlODUz MzdjMjguLjQ1N2U5OTMzMDVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9m ZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CkBA IC01NjgsOCArNTY4LDggQEAgVDgzOAlKU09OX1RBQkxFOiBQTEFOIERFRkFVTFQgY2xhdXNlCQkJ Tk8KIFQ4MzkJRm9ybWF0dGVkIGNhc3Qgb2YgZGF0ZXRpbWVzIHRvL2Zyb20gY2hhcmFjdGVyIHN0 cmluZ3MJCQlOTwkKIFQ4NDAJSGV4IGludGVnZXIgbGl0ZXJhbHMgaW4gU1FML0pTT04gcGF0aCBs YW5ndWFnZQkJCVlFUwkKIFQ4NTEJU1FML0pTT046IG9wdGlvbmFsIGtleXdvcmRzIGZvciBkZWZh dWx0IHN5bnRheAkJCVlFUwkKLVQ4NjAJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3NvcjogY29s dW1uIHJlZmVyZW5jZSBvbmx5CQkJTk8JCi1UODYxCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNz b3I6IGNhc2Utc2Vuc2l0aXZlIEpTT04gbWVtYmVyIGFjY2Vzc29yCQkJTk8JCitUODYwCVNRTC9K U09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNvbHVtbiByZWZlcmVuY2Ugb25seQkJCVlFUwkKK1Q4 NjEJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3NvcjogY2FzZS1zZW5zaXRpdmUgSlNPTiBtZW1i ZXIgYWNjZXNzb3IJCQlZRVMJCiBUODYyCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IHdp bGRjYXJkIG1lbWJlciBhY2Nlc3NvcgkJCU5PCQogVDg2MwlTUUwvSlNPTiBzaW1wbGlmaWVkIGFj Y2Vzc29yOiBzaW5nbGUtcXVvdGVkIHN0cmluZyBsaXRlcmFsIGFzIG1lbWJlciBhY2Nlc3NvcgkJ CU5PCQogVDg2NAlTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yCQkJTk8JCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwppbmRleCBmMTU2OTg3OWI1Mi4uMzg1YzhkMGNlZmUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwpAQCAtMzMyMCw1MCArMzMyMCw1OSBAQCBFeGVjSW5pdFN1YnNjcmlwdGluZ1Jl ZihFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJ CQkgICBzdGF0ZS0+c3RlcHNfbGVuIC0gMSk7CiAJfQogCi0JLyogRXZhbHVhdGUgdXBwZXIgc3Vi c2NyaXB0cyAqLwotCWkgPSAwOwotCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmdXBwZXJpbmRleHBy KQorCS8qIEV2YWx1YXRlIHVwcGVyIHN1YnNjcmlwdHMsIHVubGVzcyByZWZqc29uYnBhdGggaXMg dXNlZCBmb3IgZXhlY3V0aW9uICovCisJaWYgKCFzYnNyZWYtPnJlZmpzb25icGF0aCkKIAl7Ci0J CUV4cHIJICAgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOwotCi0JCS8qIFdoZW4gc2xpY2luZywg aW5kaXZpZHVhbCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCi0JCWlmICghZSkK LQkJewotCQkJc2JzcmVmc3RhdGUtPnVwcGVycHJvdmlkZWRbaV0gPSBmYWxzZTsKLQkJCXNic3Jl ZnN0YXRlLT51cHBlcmluZGV4bnVsbFtpXSA9IHRydWU7Ci0JCX0KLQkJZWxzZQorCQlpID0gMDsK KwkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpCiAJCXsKLQkJCXNic3JlZnN0 YXRlLT51cHBlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKLQkJCS8qIEVhY2ggc3Vic2NyaXB0IGlzIGV2 YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCi0JCQlFeGVjSW5pdEV4cHJS ZWMoZSwgc3RhdGUsCi0JCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4W2ldLAotCQkJCQkJ CSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0pOworCQkJRXhwciAqZSA9IChFeHByICop IGxmaXJzdChsYyk7CisKKwkJCS8qIFdoZW4gc2xpY2luZywgaW5kaXZpZHVhbCBzdWJzY3JpcHQg Ym91bmRzIGNhbiBiZSBvbWl0dGVkICovCisJCQlpZiAoIWUpCisJCQl7CisJCQkJc2JzcmVmc3Rh dGUtPnVwcGVycHJvdmlkZWRbaV0gPSBmYWxzZTsKKwkJCQlzYnNyZWZzdGF0ZS0+dXBwZXJpbmRl eG51bGxbaV0gPSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCXNic3JlZnN0YXRlLT51 cHBlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKKwkJCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFsdWF0 ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLworCQkJCUV4ZWNJbml0RXhwclJlYyhl LCBzdGF0ZSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4W2ldLAorCQkJCQkJCQkm c2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ldKTsKKwkJCX0KKwkJCWkrKzsKIAkJfQotCQlp Kys7CiAJfQogCi0JLyogRXZhbHVhdGUgbG93ZXIgc3Vic2NyaXB0cyBzaW1pbGFybHkgKi8KLQlp ID0gMDsKLQlmb3JlYWNoKGxjLCBzYnNyZWYtPnJlZmxvd2VyaW5kZXhwcikKKwkvKgorCSAqIEV2 YWx1YXRlIGxvd2VyIHN1YnNjcmlwdHMgc2ltaWxhcmx5LCB1bmxlc3MgcmVmanNvbmJwYXRoIGlz IHVzZWQgZm9yCisJICogZXhlY3V0aW9uCisJICovCisJaWYgKCFzYnNyZWYtPnJlZmpzb25icGF0 aCkKIAl7Ci0JCUV4cHIJICAgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOwotCi0JCS8qIFdoZW4g c2xpY2luZywgaW5kaXZpZHVhbCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCi0J CWlmICghZSkKLQkJewotCQkJc2JzcmVmc3RhdGUtPmxvd2VycHJvdmlkZWRbaV0gPSBmYWxzZTsK LQkJCXNic3JlZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSA9IHRydWU7Ci0JCX0KLQkJZWxzZQor CQlpID0gMDsKKwkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpCiAJCXsKLQkJ CXNic3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKLQkJCS8qIEVhY2ggc3Vic2Ny aXB0IGlzIGV2YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCi0JCQlFeGVj SW5pdEV4cHJSZWMoZSwgc3RhdGUsCi0JCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ld LAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleG51bGxbaV0pOworCQkJRXhwcgkgICAq ZSA9IChFeHByICopIGxmaXJzdChsYyk7CisKKwkJCS8qIFdoZW4gc2xpY2luZywgaW5kaXZpZHVh bCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCisJCQlpZiAoIWUpCisJCQl7CisJ CQkJc2JzcmVmc3RhdGUtPmxvd2VycHJvdmlkZWRbaV0gPSBmYWxzZTsKKwkJCQlzYnNyZWZzdGF0 ZS0+bG93ZXJpbmRleG51bGxbaV0gPSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCXNi c3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKKwkJCQkvKiBFYWNoIHN1YnNjcmlw dCBpcyBldmFsdWF0ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLworCQkJCUV4ZWNJ bml0RXhwclJlYyhlLCBzdGF0ZSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ld LAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldKTsKKwkJCX0KKwkJCWkr KzsKIAkJfQotCQlpKys7CiAJfQogCiAJLyogU0JTUkVGX1NVQlNDUklQVFMgY2hlY2tzIGFuZCBj b252ZXJ0cyBhbGwgdGhlIHN1YnNjcmlwdHMgYXQgb25jZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpp bmRleCA3YmM4MjM1MDdmMS4uZDFiZDU3NWQ5YmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0y ODQsNiArMjg0LDEzIEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9QbGFj ZUhvbGRlclZhcjoKIAkJCXR5cGUgPSBleHByVHlwZSgoTm9kZSAqKSAoKGNvbnN0IFBsYWNlSG9s ZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOwogCQkJYnJlYWs7CisJCWNhc2UgVF9GaWVsZEFjY2Vz c29yRXhwcjoKKwkJCS8qCisJCQkgKiBGaWVsZEFjY2Vzc29yRXhwciBpcyBub3QgZXZhbHVhYmxl LiBUcmVhdCBpdCBhcyBURVhUIGZvciBjb2xsYXRpb24sCisJCQkgKiBkZXBhcnNpbmcsIGFuZCBz aW1pbGFyIHB1cnBvc2VzLCBzaW5jZSBpdCByZXByZXNlbnRzIGEgSlNPTiBmaWVsZCBuYW1lLgor CQkJICovCisJCQl0eXBlID0gVEVYVE9JRDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhleHBy KSk7CiAJCQl0eXBlID0gSW52YWxpZE9pZDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAt MTE0Niw2ICsxMTUzLDkgQEAgZXhwclNldENvbGxhdGlvbihOb2RlICpleHByLCBPaWQgY29sbGF0 aW9uKQogCQljYXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKIAkJCSgoTWVyZ2VTdXBwb3J0RnVuYyAq KSBleHByKS0+bXNmY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgVF9GaWVs ZEFjY2Vzc29yRXhwcjoKKwkJCSgoRmllbGRBY2Nlc3NvckV4cHIgKikgZXhwciktPmZhZWNvbGxp ZCA9IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJ KChTdWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJy ZWFrOwpAQCAtMjEyOSw2ICsyMTM5LDcgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5v ZGUgKm5vZGUsCiAJCWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2UgVF9DVEVTZWFyY2hD bGF1c2U6CiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgorCQljYXNlIFRfRmllbGRBY2Nlc3Nv ckV4cHI6CiAJCQkvKiBwcmltaXRpdmUgbm9kZSB0eXBlcyB3aXRoIG5vIGV4cHJlc3Npb24gc3Vi bm9kZXMgKi8KIAkJCWJyZWFrOwogCQljYXNlIFRfV2l0aENoZWNrT3B0aW9uOgpAQCAtMzAwOCw2 ICszMDE5LDcgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChOb2RlICpub2RlLAogCQlj YXNlIFRfU29ydEdyb3VwQ2xhdXNlOgogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgogCQljYXNl IFRfTWVyZ2VTdXBwb3J0RnVuYzoKKwkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgogCQkJcmV0 dXJuIGNvcHlPYmplY3Qobm9kZSk7CiAJCWNhc2UgVF9XaXRoQ2hlY2tPcHRpb246CiAJCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5kZXggMWM1ODZlOTYwZjMuLjYyNTUzZDU0MDYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCkBAIC0xNSwyMSArMTUsMzAgQEAKICNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKKyNpbmNsdWRl ICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNs dWRlICJub2Rlcy9zdWJzY3JpcHRpbmcuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNl LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2pzb25iLmgiCisjaW5jbHVkZSAidXRpbHMvanNvbnBh dGguaCIKIAogCi0vKiBTdWJzY3JpcHRpbmdSZWZTdGF0ZS53b3Jrc3BhY2UgZm9yIGpzb25iIHN1 YnNjcmlwdGluZyBleGVjdXRpb24gKi8KKy8qCisgKiBTdWJzY3JpcHRpbmdSZWZTdGF0ZS53b3Jr c3BhY2UgZm9yIGdlbmVyaWMganNvbmIgc3Vic2NyaXB0aW5nIGV4ZWN1dGlvbi4KKyAqCisgKiBT dG9yZXMgc3RhdGUgZm9yIGJvdGgganNvbmIgc2ltcGxlIHN1YnNjcmlwdGluZyBhbmQgZG90IG5v dGF0aW9uIGFjY2Vzcy4KKyAqIERvdCBub3RhdGlvbiBhZGRpdGlvbmFsbHkgdXNlcyBganNvbnBh dGhgIGZvciBKc29uUGF0aCBldmFsdWF0aW9uLgorICovCiB0eXBlZGVmIHN0cnVjdCBKc29uYlN1 YldvcmtzcGFjZQogewogCWJvb2wJCWV4cGVjdEFycmF5OwkvKiBqc29uYiByb290IGlzIGV4cGVj dGVkIHRvIGJlIGFuIGFycmF5ICovCiAJT2lkCQkgICAqaW5kZXhPaWQ7CQkvKiBPSUQgb2YgY29l cmNlZCBzdWJzY3JpcHQgZXhwcmVzc2lvbiwgY291bGQKIAkJCQkJCQkJICogYmUgb25seSBpbnRl Z2VyIG9yIHRleHQgKi8KIAlEYXR1bQkgICAqaW5kZXg7CQkJLyogU3Vic2NyaXB0IHZhbHVlcyBp biBEYXR1bSBmb3JtYXQgKi8KKwlKc29uUGF0aCAgICpqc29ucGF0aDsJCS8qIEpzb25QYXRoIGZv ciBkb3Qgbm90YXRpb24gZXhlY3V0aW9uIHZpYQorCQkJCQkJCQkgKiBKc29uUGF0aFF1ZXJ5KCkg Ki8KIH0gSnNvbmJTdWJXb3Jrc3BhY2U7CiAKIHN0YXRpYyBOb2RlICoKQEAgLTk2LDYgKzEwNSwy MzQgQEAgY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpzdWJFeHByKQogCXJldHVybiBzdWJFeHByOwogfQogCisvKgorICog RHVyaW5nIHRyYW5zZm9ybWF0aW9uLCBkZXRlcm1pbmUgd2hldGhlciB0byBidWlsZCBhIEpzb25Q YXRoCisgKiBmb3IgSnNvblBhdGhRdWVyeSgpIGV4ZWN1dGlvbi4KKyAqCisgKiBKc29uUGF0aCBp cyBuZWVkZWQgaWYgdGhlIGluZGlyZWN0aW9uIGxpc3QgaW5jbHVkZXM6CisgKiAtIFN0cmluZy1i YXNlZCBhY2Nlc3MgKGRvdCBub3RhdGlvbikKKyAqIC0gU2xpY2UtYmFzZWQgc3Vic2NyaXB0aW5n ICh3aGVuIGlzU2xpY2UgaXMgdHJ1ZSkKKyAqCisgKiBPdGhlcndpc2UsIHNpbXBsZSBqc29uYiBz dWJzY3JpcHRpbmcgaXMgZW5vdWdoLgorICovCitzdGF0aWMgYm9vbAoranNvbmJfY2hlY2tfanNv bnBhdGhfbmVlZGVkKExpc3QgKmluZGlyZWN0aW9uKQoreworCUxpc3RDZWxsICAgKmxjOworCisJ Zm9yZWFjaChsYywgaW5kaXJlY3Rpb24pCisJeworCQlOb2RlCSAgICphY2Nlc3NvciA9IGxmaXJz dChsYyk7CisKKwkJaWYgKElzQShhY2Nlc3NvciwgU3RyaW5nKSkKKwkJCXJldHVybiB0cnVlOwor CQllbHNlCisJCQlBc3NlcnQoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKTsKKwl9CisKKwlyZXR1 cm4gZmFsc2U7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBjb25zdHJ1Y3Rpbmcg SnNvblBhdGggZXhwcmVzc2lvbnMuCisgKgorICogVGhlIG1ha2VfanNvbnBhdGhfaXRlbV8qIGZ1 bmN0aW9ucyBjcmVhdGUgdmFyaW91cyB0eXBlcyBvZiBKc29uUGF0aFBhcnNlSXRlbQorICogbm9k ZXMsIHdoaWNoIGFyZSB1c2VkIHRvIGJ1aWxkIEpzb25QYXRoIGV4cHJlc3Npb25zIGZvciBqc29u YiBzaW1wbGlmaWVkCisgKiBhY2Nlc3Nvci4KKyAqLworCitzdGF0aWMgSnNvblBhdGhQYXJzZUl0 ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtKEpzb25QYXRoSXRlbVR5cGUgdHlwZSkKK3sKKwlKc29u UGF0aFBhcnNlSXRlbSAqdiA9IHBhbGxvYyhzaXplb2YoKnYpKTsKKworCXYtPnR5cGUgPSB0eXBl OworCXYtPm5leHQgPSBOVUxMOworCisJcmV0dXJuIHY7Cit9CisKKy8qCisgKiBDb252ZXJ0IGEg Y29uc3RhbnQgaW50ZWdlciBleHByZXNzaW9uIGludG8gYSBKc29uUGF0aFBhcnNlSXRlbS4KKyAq CisgKiBUaGUgaW5wdXQgZXhwcmVzc2lvbiBtdXN0IGJlIGEgbm9uLW51bGwgY29uc3RhbnQgb2Yg dHlwZSBJTlQ0LiBSZXR1cm5zIE5VTEwgb3RoZXJ3aXNlLgorICogVGhpcyBmdW5jdGlvbiBjb25z dHJ1Y3RzIGEganBpTnVtZXJpYyBpdGVtIGZvciB1c2UgaW4gSnNvblBhdGggYW5kIGFwcGVuZHMg YSBtYXRjaGluZworICogQ29uc3QoSU5UNCkgbm9kZSB0byB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBs aXN0IGZvciB1c2UgaW4gRVhQTEFJTiwgdmlld3MsIGV0Yy4KKyAqCisgKiBQYXJhbWV0ZXJzOgor ICogLSBwc3RhdGU6IHBhcnNlIHN0YXRlIGNvbnRleHQKKyAqIC0gZXhwcjogaW5wdXQgZXhwcmVz c2lvbiBub2RlCisgKiAtIGV4cHJzOiBsaXN0IG9mIGV4cHJlc3Npb24gbm9kZXMgKHVwZGF0ZWQg aW4gcGxhY2UpCisgKi8KK3N0YXRpYyBKc29uUGF0aFBhcnNlSXRlbSAqCittYWtlX2pzb25wYXRo X2l0ZW1fZXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIExpc3QgKipleHBycykK K3sKKwlDb25zdAkgICAqY25zdDsKKworCWV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgZXhw ciwgcHN0YXRlLT5wX2V4cHJfa2luZCk7CisKKwlpZiAoSXNBKGV4cHIsIENvbnN0KSkKKwl7CisJ CWNuc3QgPSAoQ29uc3QgKikgZXhwcjsKKwkJaWYgKGNuc3QtPmNvbnN0dHlwZSA9PSBJTlQ0T0lE ICYmICEoY25zdC0+Y29uc3Rpc251bGwpKQorCQl7CisJCQlKc29uUGF0aFBhcnNlSXRlbSAqanBp ID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaU51bWVyaWMpOworCisJCQlqcGktPnZhbHVlLm51bWVy aWMgPQorCQkJCURhdHVtR2V0TnVtZXJpYyhEaXJlY3RGdW5jdGlvbkNhbGwxKGludDRfbnVtZXJp YywgSW50MzJHZXREYXR1bShjbnN0LT5jb25zdHZhbHVlKSkpOworCisJCQkqZXhwcnMgPSBsYXBw ZW5kKCpleHBycywgbWFrZUNvbnN0KElOVDRPSUQsIC0xLCBJbnZhbGlkT2lkLCA0LAorCQkJCQkJ CQkJCQkgICBJbnQzMkdldERhdHVtKGNuc3QtPmNvbnN0dmFsdWUpLCBmYWxzZSwgdHJ1ZSkpOwor CisJCQlyZXR1cm4ganBpOworCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBD b25zdHJ1Y3RzIGEgSnNvblBhdGggZXhwcmVzc2lvbiBmcm9tIGEgbGlzdCBvZiBpbmRpcmVjdGlv bnMuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBqc29uYiBzdWJzY3JpcHRpbmcgaW52 b2x2ZXMgZG90IG5vdGF0aW9uLAorICogcmVxdWlyaW5nIEpzb25QYXRoLWJhc2VkIGV2YWx1YXRp b24uCisgKgorICogVGhlIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBpbmRpcmVjdGlvbiBsaXN0IGlu IHBsYWNlLCByZW1vdmluZyBwcm9jZXNzZWQKKyAqIGVsZW1lbnRzIGFzIGl0IGNvbnZlcnRzIHRo ZW0gaW50byBKc29uUGF0aCBjb21wb25lbnRzLCBhcyBmb2xsb3dzOgorICogLSBTdHJpbmcga2V5 cyAoZG90IG5vdGF0aW9uKSAtPiBqcGlLZXkgaXRlbXMuCisgKiAtIEFycmF5IGluZGljZXMgLT4g anBpSW5kZXhBcnJheSBpdGVtcy4KKyAqCisgKiBJbiBhZGRpdGlvbiB0byBidWlsZGluZyB0aGUg SnNvblBhdGggZXhwcmVzc2lvbiwgdGhpcyBmdW5jdGlvbiBwb3B1bGF0ZXMKKyAqIHRoZSBmb2xs b3dpbmcgZmllbGRzIG9mIHRoZSBnaXZlbiBTdWJzY3JpcHRpbmdSZWY6CisgKiAtIHJlZmpzb25i cGF0aDogdGhlIGdlbmVyYXRlZCBKc29uUGF0aAorICogLSByZWZ1cHBlcmluZGV4cHI6IHVwcGVy IGluZGV4IGV4cHJlc3Npb25zIChvYmplY3Qga2V5cyBvciBhcnJheSBpbmRleGVzKQorICogLSBy ZWZsb3dlcmluZGV4cHI6IGxvd2VyIGluZGV4IGV4cHJlc3Npb25zLCByZW1haW5zIE5JTCBhcyBz bGljZXMgYXJlIG5vdCBzdXBwb3J0ZWQuCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gcHN0YXRl OiBQYXJzZSBzdGF0ZSBjb250ZXh0LgorICogLSBpbmRpcmVjdGlvbjogTGlzdCBvZiBzdWJzY3Jp cHRpbmcgZXhwcmVzc2lvbnMgKG1vZGlmaWVkIGluLXBsYWNlKS4KKyAqIC0gc2JzcmVmOiBTdWJz Y3JpcHRpbmdSZWYgbm9kZSB0byB1cGRhdGUKKyAqLworc3RhdGljIHZvaWQKK2pzb25iX3N1YnNj cmlwdF9tYWtlX2pzb25wYXRoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqKmluZGlyZWN0aW9u LCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZikKK3sKKwlKc29uUGF0aFBhcnNlUmVzdWx0IGpwcmVz OworCUpzb25QYXRoUGFyc2VJdGVtICpwYXRoID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaVJvb3Qp OworCUxpc3RDZWxsICAgKmxjOworCURhdHVtCQlqc3A7CisJaW50CQkJcGF0aGxlbiA9IDA7CisK KwlzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciA9IE5JTDsKKwlzYnNyZWYtPnJlZmxvd2VyaW5kZXhw ciA9IE5JTDsKKwlzYnNyZWYtPnJlZmpzb25icGF0aCA9IE5VTEw7CisKKwlqcHJlcy5leHByID0g cGF0aDsKKwlqcHJlcy5sYXggPSB0cnVlOworCisJZm9yZWFjaChsYywgKmluZGlyZWN0aW9uKQor CXsKKwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOworCQlKc29uUGF0aFBhcnNlSXRl bSAqanBpOworCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJCXsKKwkJCWNoYXIJICAg KmZpZWxkID0gc3RyVmFsKGFjY2Vzc29yKTsKKwkJCUZpZWxkQWNjZXNzb3JFeHByICphY2Nlc3Nv cl9leHByOworCisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpS2V5KTsKKwkJCWpwaS0+ dmFsdWUuc3RyaW5nLnZhbCA9IGZpZWxkOworCQkJanBpLT52YWx1ZS5zdHJpbmcubGVuID0gc3Ry bGVuKGZpZWxkKTsKKworCQkJYWNjZXNzb3JfZXhwciA9IG1ha2VOb2RlKEZpZWxkQWNjZXNzb3JF eHByKTsKKwkJCWFjY2Vzc29yX2V4cHItPnR5cGUgPSBUX0ZpZWxkQWNjZXNzb3JFeHByOworCQkJ YWNjZXNzb3JfZXhwci0+ZmllbGRuYW1lID0gZmllbGQ7CisKKwkJCXNic3JlZi0+cmVmdXBwZXJp bmRleHByID0gbGFwcGVuZChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgYWNjZXNzb3JfZXhwcik7 CisJCX0KKwkJZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKQorCQl7CisJCQlBX0lu ZGljZXMgICphaSA9IGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpOworCisJCQlpZiAoIWFp LT5pc19zbGljZSkKKwkJCXsKKwkJCQlKc29uUGF0aFBhcnNlSXRlbSAqanBpX2Zyb20gPSBOVUxM OworCisJCQkJQXNzZXJ0KGFpLT51aWR4ICYmICFhaS0+bGlkeCk7CisJCQkJanBpX2Zyb20gPSBt YWtlX2pzb25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT51aWR4LCAmc2JzcmVmLT5yZWZ1cHBl cmluZGV4cHIpOworCQkJCWlmIChqcGlfZnJvbSA9PSBOVUxMKQorCQkJCXsKKwkJCQkJLyoKKwkJ CQkJICogQnJlYWsgb3V0IG9mIHRoZSBsb29wIGlmIHRoZSBzdWJzY3JpcHQgaXMgbm90IGEKKwkJ CQkJICogbm9uLW51bGwgaW50ZWdlciBjb25zdGFudCwgc28gdGhhdCB3ZSBjYW4gZmFsbCBiYWNr IHRvCisJCQkJCSAqIGpzb25iIHN1YnNjcmlwdGluZyBsb2dpYy4KKwkJCQkJICoKKwkJCQkJICog VGhpcyBpcyBuZWVkZWQgdG8gaGFuZGxlIGNhc2VzIHdpdGggbWl4ZWQgdXNhZ2Ugb2YgU1FMCisJ CQkJCSAqIHN0YW5kYXJkIGpzb24gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggYW5kIFBvc3Rn cmVTUUwKKwkJCQkJICoganNvbmIgc3Vic2NyaXB0aW5nIHN5bnRheCwgZS5nOgorCQkJCQkgKgor CQkJCQkgKiBzZWxlY3QgKGpiKS5hWydiJ10uYyBmcm9tIGpzb25iX3RhYmxlOworCQkJCQkgKgor CQkJCQkgKiB3aGVyZSBkb3Qtbm90YXRpb24gKC5hIGFuZCAuYykgaXMgdGhlIFNRTCBzdGFuZGFy ZCBqc29uCisJCQkJCSAqIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3ludGF4LCBhbmQgdGhlIFsnYidd IHN1YnNjcmlwdCBpcworCQkJCQkgKiB0aGUgUG9zdGdyZVNRTCBqc29uYiBzdWJzY3JpcHRpbmcg c3ludGF4LCBiZWNhdXNlICdiJworCQkJCQkgKiBpcyBub3QgYSBub24tbnVsbCBjb25zdGFudCBp bnRlZ2VyIGFuZCBjYW5ub3QgYmUgdXNlZAorCQkJCQkgKiBmb3IganNvbiBhcnJheSBhY2Nlc3Mu CisJCQkJCSAqCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgd2UgY2Fubm90IGNyZWF0ZSBhIEpzb25Q YXRoIGl0ZW0sIHNvIHdlCisJCQkJCSAqIGJyZWFrIG91dCBvZiB0aGUgbG9vcCBhbmQgbGV0CisJ CQkJCSAqIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oKSBoYW5kbGUgdGhpcyBpbmRpcmVjdGlv biBhcworCQkJCQkgKiBhIFBvc3RncmVTUUwganNvbmIgc3Vic2NyaXB0LgorCQkJCQkgKi8KKwkJ CQkJYnJlYWs7CisJCQkJfQorCisJCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUluZGV4 QXJyYXkpOworCQkJCWpwaS0+dmFsdWUuYXJyYXkubmVsZW1zID0gMTsKKwkJCQlqcGktPnZhbHVl LmFycmF5LmVsZW1zID0gcGFsbG9jKHNpemVvZihqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdKSk7 CisKKwkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZyb20gPSBqcGlfZnJvbTsKKwkJCQlq cGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gTlVMTDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsK KwkJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+dWlkeCA6IGFpLT5saWR4OworCisJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFU Q0gpLAorCQkJCQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xp Y2VzIiksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4 cHIpKSkpOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFVuZXhwZWN0ZWQg bm9kZSB0eXBlIGluIGluZGlyZWN0aW9uIGxpc3QuIFRoaXMgc2hvdWxkIG5vdAorCQkJICogaGFw cGVuIHdpdGggY3VycmVudCBncmFtbWFyLCBidXQgd2UgaGFuZGxlIGl0IGRlZmVuc2l2ZWx5IGJ5 CisJCQkgKiBicmVha2luZyBvdXQgb2YgdGhlIGxvb3AgcmF0aGVyIHRoYW4gY3Jhc2hpbmcuIElu IGNhc2Ugb2YKKwkJCSAqIGZ1dHVyZSBncmFtbWFyIGNoYW5nZXMgdGhhdCBtaWdodCBpbnRyb2R1 Y2UgbmV3IG5vZGUgdHlwZXMsCisJCQkgKiB0aGlzIGFsbG93cyB1cyB0byBjcmVhdGUgYSBqc29u cGF0aCBmcm9tIGFzIG1hbnkgaW5kaXJlY3Rpb24KKwkJCSAqIGVsZW1lbnRzIGFzIHdlIGNhbiBh bmQgbGV0IHRyYW5zZm9ybUluZGlyZWN0aW9uKCkgZmFsbGJhY2sgdG8KKwkJCSAqIGFsdGVybmF0 aXZlIGxvZ2ljIHRvIGhhbmRsZSB0aGUgcmVtYWluaW5nIGluZGlyZWN0aW9uIGVsZW1lbnRzLgor CQkJICovCisJCQlBc3NlcnQoZmFsc2UpOwkJLyogbm90IHJlYWNoYWJsZSAqLworCQkJYnJlYWs7 CisJCX0KKworCQkvKiBhcHBlbmQgcGF0aCBpdGVtICovCisJCXBhdGgtPm5leHQgPSBqcGk7CisJ CXBhdGggPSBqcGk7CisJCXBhdGhsZW4rKzsKKwl9CisKKwlpZiAocGF0aGxlbiA9PSAwKQorCQly ZXR1cm47CisKKwkqaW5kaXJlY3Rpb24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRpcmVjdGlv biwgcGF0aGxlbik7CisKKwlqc3AgPSBqc29uUGF0aEZyb21QYXJzZVJlc3VsdCgmanByZXMsIDAs IE5VTEwpOworCisJc2JzcmVmLT5yZWZqc29uYnBhdGggPSAoTm9kZSAqKSBtYWtlQ29uc3QoSlNP TlBBVEhPSUQsIC0xLCBJbnZhbGlkT2lkLCAtMSwganNwLCBmYWxzZSwgZmFsc2UpOworfQorCiAv KgogICogRmluaXNoIHBhcnNlIGFuYWx5c2lzIG9mIGEgU3Vic2NyaXB0aW5nUmVmIGV4cHJlc3Np b24gZm9yIGEganNvbmIuCiAgKgpAQCAtMTExLDkgKzM0OCwyNyBAQCBqc29uYl9zdWJzY3JpcHRf dHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCUxpc3QJICAgKnVwcGVySW5kZXhw ciA9IE5JTDsKIAlMaXN0Q2VsbCAgICppZHg7CiAKKwkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0 eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIgKi8KKwlzYnNy ZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsKKwlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJ aWYgKGpzb25iX2NoZWNrX2pzb25wYXRoX25lZWRlZCgqaW5kaXJlY3Rpb24pKQorCXsKKwkJanNv bmJfc3Vic2NyaXB0X21ha2VfanNvbnBhdGgocHN0YXRlLCBpbmRpcmVjdGlvbiwgc2JzcmVmKTsK KwkJaWYgKHNic3JlZi0+cmVmanNvbmJwYXRoKQorCQkJcmV0dXJuOworCX0KKwogCS8qCi0JICog VHJhbnNmb3JtIGFuZCBjb252ZXJ0IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbnMuIEpzb25iIHN1 YnNjcmlwdGluZwotCSAqIGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzLCBsb29rIG9ubHkgYXQgdGhl IHVwcGVyIGluZGV4LgorCSAqIFdlIHJlYWNoIGhlcmUgb25seSBpbiB0d28gY2FzZXM6IChhKSB0 aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIGlzCisJICogbm90IG5lZWRlZCBhdCBhbGwgKGZv ciBleGFtcGxlLCBhIHBsYWluIGFycmF5IHN1YnNjcmlwdCBsaWtlIFsxXSBvcgorCSAqIG9iamVj dCBrZXkgYWNjZXNzIGxpa2UgWydhJ10pLCBvciAoYikganNvbmJfc3Vic2NyaXB0X21ha2VfanNv bnBhdGgoKQorCSAqIHdhcyBjYWxsZWQgYnV0IGNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgSnNvblBh dGggY29uc3RydWN0aW9uIChmb3IKKwkgKiBleGFtcGxlLCB3aGVuIG1peGluZyBkb3Qgbm90YXRp b24gd2l0aCBub24taW50ZWdlciBzdWJzY3JpcHRzIGxpa2UKKwkgKiAoamIpWydhJ10uYiB3aGVy ZSAnYScgaXMgbm90IGEgY29uc3RhbnQgaW50ZWdlcikuCisJICoKKwkgKiBJbiBib3RoIGNhc2Vz IHdlIGZhbGwgYmFjayB0byBwcmUtc3RhbmRhcmQganNvbmIgc3Vic2NyaXB0aW5nLCBjb2VyY2lu ZworCSAqIGVhY2ggc3Vic2NyaXB0IHRvIGFycmF5IGluZGV4IG9yIG9iamVjdCBrZXkgYXMgbmVl ZGVkLgogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewpAQCAtMTYwLDEwICs0 MTUsNiBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVm LAogCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gdXBwZXJJbmRleHByOwogCXNic3JlZi0+cmVm bG93ZXJpbmRleHByID0gTklMOwogCi0JLyogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0 aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3YXlzIGpzb25iICovCi0Jc2JzcmVmLT5yZWZy ZXN0eXBlID0gSlNPTkJPSUQ7Ci0Jc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKLQogCS8qIFJlbW92 ZSBwcm9jZXNzZWQgZWxlbWVudHMgKi8KIAlpZiAodXBwZXJJbmRleHByKQogCQkqaW5kaXJlY3Rp b24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRpcmVjdGlvbiwgbGlzdF9sZW5ndGgodXBwZXJJ bmRleHByKSk7CkBAIC0yMTgsNyArNDY5LDcgQEAganNvbmJfc3Vic2NyaXB0X2NoZWNrX3N1YnNj cmlwdHMoRXhwclN0YXRlICpzdGF0ZSwKIAkJCSAqIEZvciBqc29uYiBmZXRjaCBhbmQgYXNzaWdu IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIHByb3ZpZGUgcGF0aCBpbgogCQkJICogdGV4dCBmb3JtYXQu IENvbnZlcnQgaWYgaXQncyBub3QgYWxyZWFkeSB0ZXh0LgogCQkJICovCi0JCQlpZiAod29ya3Nw YWNlLT5pbmRleE9pZFtpXSA9PSBJTlQ0T0lEKQorCQkJaWYgKCF3b3Jrc3BhY2UtPmpzb25wYXRo ICYmIHdvcmtzcGFjZS0+aW5kZXhPaWRbaV0gPT0gSU5UNE9JRCkKIAkJCXsKIAkJCQlEYXR1bQkJ ZGF0dW0gPSBzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleFtpXTsKIAkJCQljaGFyCSAgICpjcyA9IERh dHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5jdGlvbkNhbGwxKGludDRvdXQsIGRhdHVtKSk7CkBAIC0y NDYsMTcgKzQ5NywzMiBAQCBqc29uYl9zdWJzY3JpcHRfZmV0Y2goRXhwclN0YXRlICpzdGF0ZSwK IHsKIAlTdWJzY3JpcHRpbmdSZWZTdGF0ZSAqc2JzcmVmc3RhdGUgPSBvcC0+ZC5zYnNyZWYuc3Rh dGU7CiAJSnNvbmJTdWJXb3Jrc3BhY2UgKndvcmtzcGFjZSA9IChKc29uYlN1YldvcmtzcGFjZSAq KSBzYnNyZWZzdGF0ZS0+d29ya3NwYWNlOwotCUpzb25iCSAgICpqc29uYlNvdXJjZTsKIAogCS8q IFNob3VsZCBub3QgZ2V0IGhlcmUgaWYgc291cmNlIGpzb25iIChvciBhbnkgc3Vic2NyaXB0KSBp cyBudWxsICovCiAJQXNzZXJ0KCEoKm9wLT5yZXNudWxsKSk7CiAKLQlqc29uYlNvdXJjZSA9IERh dHVtR2V0SnNvbmJQKCpvcC0+cmVzdmFsdWUpOwotCSpvcC0+cmVzdmFsdWUgPSBqc29uYl9nZXRf ZWxlbWVudChqc29uYlNvdXJjZSwKLQkJCQkJCQkJCSAgd29ya3NwYWNlLT5pbmRleCwKLQkJCQkJ CQkJCSAgc2JzcmVmc3RhdGUtPm51bXVwcGVyLAotCQkJCQkJCQkJICBvcC0+cmVzbnVsbCwKLQkJ CQkJCQkJCSAgZmFsc2UpOworCWlmICh3b3Jrc3BhY2UtPmpzb25wYXRoKQorCXsKKwkJYm9vbAkJ ZW1wdHkgPSBmYWxzZTsKKwkJYm9vbAkJZXJyb3IgPSBmYWxzZTsKKworCQkqb3AtPnJlc3ZhbHVl ID0gSnNvblBhdGhRdWVyeSgqb3AtPnJlc3ZhbHVlLCB3b3Jrc3BhY2UtPmpzb25wYXRoLAorCQkJ CQkJCQkJICBKU1dfQ09ORElUSU9OQUwsCisJCQkJCQkJCQkgICZlbXB0eSwgJmVycm9yLCBOVUxM LAorCQkJCQkJCQkJICBOVUxMKTsKKworCQkqb3AtPnJlc251bGwgPSBlbXB0eSB8fCBlcnJvcjsK Kwl9CisJZWxzZQorCXsKKwkJSnNvbmIJICAgKmpzb25iU291cmNlID0gRGF0dW1HZXRKc29uYlAo Km9wLT5yZXN2YWx1ZSk7CisKKwkJKm9wLT5yZXN2YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpz b25iU291cmNlLAorCQkJCQkJCQkJCSAgd29ya3NwYWNlLT5pbmRleCwKKwkJCQkJCQkJCQkgIHNi c3JlZnN0YXRlLT5udW11cHBlciwKKwkJCQkJCQkJCQkgIG9wLT5yZXNudWxsLAorCQkJCQkJCQkJ CSAgZmFsc2UpOworCX0KIH0KIAogLyoKQEAgLTM2NCw3ICs2MzAsNyBAQCBqc29uYl9leGVjX3Nl dHVwKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogewogCUpzb25iU3ViV29ya3NwYWNl ICp3b3Jrc3BhY2U7CiAJTGlzdENlbGwgICAqbGM7Ci0JaW50CQkJbnVwcGVyID0gc2JzcmVmLT5y ZWZ1cHBlcmluZGV4cHItPmxlbmd0aDsKKwlpbnQJCQludXBwZXIgPSBsaXN0X2xlbmd0aChzYnNy ZWYtPnJlZnVwcGVyaW5kZXhwcik7CiAJY2hhcgkgICAqcHRyOwogCiAJLyogQWxsb2NhdGUgdHlw ZS1zcGVjaWZpYyB3b3Jrc3BhY2Ugd2l0aCBzcGFjZSBmb3IgcGVyLXN1YnNjcmlwdCBkYXRhICov CkBAIC0zNzMsNiArNjM5LDkgQEAganNvbmJfZXhlY19zZXR1cChjb25zdCBTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZiwKIAl3b3Jrc3BhY2UtPmV4cGVjdEFycmF5ID0gZmFsc2U7CiAJcHRyID0gKChj aGFyICopIHdvcmtzcGFjZSkgKyBNQVhBTElHTihzaXplb2YoSnNvbmJTdWJXb3Jrc3BhY2UpKTsK IAorCWlmIChzYnNyZWYtPnJlZmpzb25icGF0aCkKKwkJd29ya3NwYWNlLT5qc29ucGF0aCA9IERh dHVtR2V0SnNvblBhdGhQKGNhc3ROb2RlKENvbnN0LCBzYnNyZWYtPnJlZmpzb25icGF0aCktPmNv bnN0dmFsdWUpOworCiAJLyoKIAkgKiBUaGlzIGNvZGluZyBhc3N1bWVzIHNpemVvZihEYXR1bSkg Pj0gc2l6ZW9mKE9pZCksIGVsc2Ugd2UgbWlnaHQKIAkgKiBtaXNhbGlnbiB0aGUgaW5kZXhPaWQg cG9pbnRlcgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDNkNmU2YmRiZmQyLi5iYWEz YWU5N2Q1NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtOTMyOSwxMCArOTMyOSwx MyBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwK IAkJCQkgKiBQYXJlbnRoZXNpemUgdGhlIGFyZ3VtZW50IHVubGVzcyBpdCdzIGEgc2ltcGxlIFZh ciBvciBhCiAJCQkJICogRmllbGRTZWxlY3QuICAoSW4gcGFydGljdWxhciwgaWYgaXQncyBhbm90 aGVyCiAJCQkJICogU3Vic2NyaXB0aW5nUmVmLCB3ZSAqbXVzdCogcGFyZW50aGVzaXplIHRvIGF2 b2lkCi0JCQkJICogY29uZnVzaW9uLikKKwkJCQkgKiBjb25mdXNpb24uKSBBbHdheXMgYWRkIHBh cmVudGhlc2lzIGlmIEpTT04gc2ltcGxpZmllZAorCQkJCSAqIGFjY2Vzc29yIGlzIHVzZWQsIGZv ciBub3cuCiAJCQkJICovCi0JCQkJbmVlZF9wYXJlbnMgPSAhSXNBKHNic3JlZi0+cmVmZXhwciwg VmFyKSAmJgotCQkJCQkhSXNBKHNic3JlZi0+cmVmZXhwciwgRmllbGRTZWxlY3QpOworCQkJCW5l ZWRfcGFyZW5zID0gKCFJc0Eoc2JzcmVmLT5yZWZleHByLCBWYXIpICYmCisJCQkJCSFJc0Eoc2Jz cmVmLT5yZWZleHByLCBGaWVsZFNlbGVjdCkpIHx8CisJCQkJCQlzYnNyZWYtPnJlZmpzb25icGF0 aDsKKwogCQkJCWlmIChuZWVkX3BhcmVucykKIAkJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVm LCAnKCcpOwogCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgc2JzcmVmLT5yZWZleHByLCBjb250 ZXh0LCBzaG93aW1wbGljaXQpOwpAQCAtMTMwMDUsMTcgKzEzMDA4LDM1IEBAIHByaW50U3Vic2Ny aXB0cyhTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQog CWxvd2xpc3RfaXRlbSA9IGxpc3RfaGVhZChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CS8qIGNv dWxkIGJlIE5VTEwgKi8KIAlmb3JlYWNoKHVwbGlzdF9pdGVtLCBzYnNyZWYtPnJlZnVwcGVyaW5k ZXhwcikKIAl7Ci0JCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ1snKTsKLQkJaWYgKGxvd2xp c3RfaXRlbSkKKwkJTm9kZSAqdXBwZXIgPSAoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pOwor CisJCWlmICh1cHBlciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JFeHByKSkKIAkJeworCQkJ RmllbGRBY2Nlc3NvckV4cHIgKmZhZSA9IChGaWVsZEFjY2Vzc29yRXhwciAqKSB1cHBlcjsKKwor CQkJLyogVXNlIGRvdC1ub3RhdGlvbiBmb3IgZmllbGQgYWNjZXNzICovCisJCQlhcHBlbmRTdHJp bmdJbmZvQ2hhcihidWYsICcuJyk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVv dGVfaWRlbnRpZmllcihmYWUtPmZpZWxkbmFtZSkpOworCisJCQkvKiBTa2lwIG1hdGNoaW5nIGxv dyBpbmRleCDigJQgZmllbGQgYWNjZXNzIGRvZXNuJ3QgdXNlIHNsaWNlcyAqLworCQkJaWYgKGxv d2xpc3RfaXRlbSkKKwkJCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNyZWYtPnJlZmxvd2VyaW5k ZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIFVzZSBKU09OQiBh cnJheSBzdWJzY3JpcHRpbmcgKi8KKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ1snKTsK KwkJCWlmIChsb3dsaXN0X2l0ZW0pCisJCQl7CisJCQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBO VUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBub3RoaW5nICovCisJCQkJZ2V0X3J1bGVfZXhwcigo Tm9kZSAqKSBsZmlyc3QobG93bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOworCQkJCWFwcGVu ZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJzonKTsKKwkJCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNy ZWYtPnJlZmxvd2VyaW5kZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJCX0KIAkJCS8qIElmIHN1YmV4 cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1bGVfZXhwciBwcmludHMgbm90aGluZyAqLwotCQkJZ2V0 X3J1bGVfZXhwcigoTm9kZSAqKSBsZmlyc3QobG93bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2Up OwotCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnOicpOwotCQkJbG93bGlzdF9pdGVtID0g bG5leHQoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsIGxvd2xpc3RfaXRlbSk7CisJCQlnZXRfcnVs ZV9leHByKHVwcGVyLCBjb250ZXh0LCBmYWxzZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihi dWYsICddJyk7CiAJCX0KLQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBOVUxMLCBnZXRfcnVsZV9l eHByIHByaW50cyBub3RoaW5nICovCi0JCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGZpcnN0KHVw bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOwotCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYs ICddJyk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDZkZmNhM2NiMzViLi43ZTg5 NjIxYmQ2NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTcwOCwxOCArNzA4LDMwIEBAIHR5cGVk ZWYgc3RydWN0IFN1YnNjcmlwdGluZ1JlZgogCWludDMyCQlyZWZ0eXBtb2QgcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGNvbGxhdGlvbiBvZiByZXN1bHQsIG9yIEludmFs aWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXJlZmNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7Ci0JLyogZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byB1cHBlciBjb250 YWluZXIgaW5kZXhlcyAqLworCisJLyoKKwkgKiBleHByZXNzaW9ucyB0aGF0IGV2YWx1YXRlIHRv IHVwcGVyIGNvbnRhaW5lciBpbmRleGVzIG9yIGV4cHJlc3Npb25zCisJICogdGhhdCBhcmUgY29s bGVjdGVkIGJ1dCBub3QgZXZhbHVhdGVkIHdoZW4gcmVmanNvbmJwYXRoIGlzIHNldC4KKwkgKi8K IAlMaXN0CSAgICpyZWZ1cHBlcmluZGV4cHI7CiAKIAkvKgotCSAqIGV4cHJlc3Npb25zIHRoYXQg ZXZhbHVhdGUgdG8gbG93ZXIgY29udGFpbmVyIGluZGV4ZXMsIG9yIE5JTCBmb3Igc2luZ2xlCi0J ICogY29udGFpbmVyIGVsZW1lbnQuCisJICogZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byBs b3dlciBjb250YWluZXIgaW5kZXhlcywgb3IgTklMIGZvciBhCisJICogc2luZ2xlIGNvbnRhaW5l ciBlbGVtZW50LCBvciBleHByZXNzaW9ucyB0aGF0IGFyZSBjb2xsZWN0ZWQgYnV0IG5vdAorCSAq IGV2YWx1YXRlZCB3aGVuIHJlZmpzb25icGF0aCBpcyBzZXQuCiAJICovCiAJTGlzdAkgICAqcmVm bG93ZXJpbmRleHByOwogCS8qIHRoZSBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGEgY29u dGFpbmVyIHZhbHVlICovCiAJRXhwcgkgICAqcmVmZXhwcjsKIAkvKiBleHByZXNzaW9uIGZvciB0 aGUgc291cmNlIHZhbHVlLCBvciBOVUxMIGlmIGZldGNoICovCiAJRXhwcgkgICAqcmVmYXNzZ25l eHByOworCisJLyoKKwkgKiBjb250YWluZXItc3BlY2lmaWMgZXh0cmEgaW5mb3JtYXRpb24sIGN1 cnJlbnRseSB1c2VkIG9ubHkgYnkganNvbmIuCisJICogc3RvcmVzIGEgSnNvblBhdGggZXhwcmVz c2lvbiB3aGVuIGpzb25iIGRvdCBub3RhdGlvbiBpcyB1c2VkLiBOVUxMIGZvcgorCSAqIHNpbXBs ZSBzdWJzY3JpcHRpbmcuCisJICovCisJTm9kZQkgICAqcmVmanNvbmJwYXRoOwogfSBTdWJzY3Jp cHRpbmdSZWY7CiAKIC8qCkBAIC0yMzcxLDQgKzIzODMsNDAgQEAgdHlwZWRlZiBzdHJ1Y3QgT25D b25mbGljdEV4cHIKIAlMaXN0CSAgICpleGNsUmVsVGxpc3Q7CS8qIHRsaXN0IG9mIHRoZSBFWENM VURFRCBwc2V1ZG8gcmVsYXRpb24gKi8KIH0gT25Db25mbGljdEV4cHI7CiAKKy8qCisgKiBGaWVs ZEFjY2Vzc29yRXhwciAtIHJlcHJlc2VudHMgYSBzaW5nbGUgb2JqZWN0IG1lbWJlciBhY2Nlc3Mg dXNpbmcgZG90LW5vdGF0aW9uCisgKgkJaW4gSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRh eCAoZS5nLiwganNvbmJfY29sLmEpLgorICoKKyAqIFRoZXNlIG5vZGVzIGFwcGVhciBhcyBsaXN0 IGVsZW1lbnRzIGluIFN1YnNjcmlwdGluZ1JlZi5yZWZ1cHBlcmluZGV4cHIgdG8KKyAqIGluZGlj YXRlIEpTT04gb2JqZWN0IGtleSBhY2Nlc3MuIFRoZXkgYXJlIG5vdCBldmFsdWFibGUgZXhwcmVz c2lvbnMgYnkKKyAqIHRoZW1zZWx2ZXMgYnV0IHNlcnZlIGFzIHBsYWNlaG9sZGVycyB0byBwcmVz ZXJ2ZSBzb3VyY2UtbGV2ZWwgc3ludGF4IGZvcgorICogcnVsZSByZXdyaXRpbmcgYW5kIGRlcGFy c2luZyAoZS5nLiwgaW4gRVhQTEFJTiBhbmQgdmlldyBkZWZpbml0aW9ucykuCisgKiBFeGVjdXRp b24gaXMgaGFuZGxlZCBieSB0aGUgZW5jbG9zaW5nIFN1YnNjcmlwdGluZ1JlZi4KKyAqCisgKiBJ ZiBkb3Qtbm90YXRpb24gaXMgdXNlZCBpbiBhIFN1YnNjcmlwdGluZ1JlZiwgdGhlIEpTT04gcGF0 aCBpcyByZXByZXNlbnRlZAorICogYXMgYSBmbGF0IGxpc3Qgb2YgRmllbGRBY2Nlc3NvckV4cHIg bm9kZXMgKGZvciBvYmplY3QgZmllbGQgYWNjZXNzKSwgQ29uc3QKKyAqIG5vZGVzIChmb3IgYXJy YXkgaW5kZXhlcyksIGFuZCBOVUxMcyAoZm9yIG9taXR0ZWQgc2xpY2UgYm91bmRzKSwgcmF0aGVy IHRoYW4KKyAqIHRocm91Z2ggbmVzdGVkIGV4cHJlc3Npb24gdHJlZXMuCisgKgorICogTm90ZTog VGhlIGZsYXQgcmVwcmVzZW50YXRpb24gYXZvaWRzIG5lc3RlZCBGaWVsZEFjY2Vzc29yRXhwciBj aGFpbnMsCisgKiBzaW1wbGlmeWluZyBldmFsdWF0aW9uIGFuZCBlbmFibGluZyBzdGFuZGFyZC1j b21wbGlhbnQgYmVoYXZpb3Igc3VjaCBhcworICogY29uZGl0aW9uYWwgYXJyYXkgd3JhcHBpbmcu IFRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciBwb3NpdGlvbi1hd2FyZQorICogd3JhcHBpbmcvdW53 cmFwcGluZyBsb2dpYyBkdXJpbmcgZXhlY3V0aW9uLgorICoKKyAqIEZvciBleGFtcGxlLCBpbiB0 aGUgZXhwcmVzc2lvbjoKKyAqCQkoJ3siYSI6IFt7ImIiOiAxfV19Jzo6anNvbmIpLmFbMF0uYgor ICogdGhlIFN1YnNjcmlwdGluZ1JlZiB3aWxsIGNvbnRhaW46CisgKgkJLSByZWZleHByOiB0aGUg YmFzZSBleHByZXNzaW9uICh0aGUganNvbmIgdmFsdWUpCisgKgkJLSByZWZ1cHBlcmluZGV4cHI6 IFtGaWVsZEFjY2Vzc29yRXhwcigiYSIpLCBDb25zdCgwKSwKKyAqCQkJRmllbGRBY2Nlc3NvckV4 cHIoImIiKV0KKyAqCQktIHJlZmxvd2VyaW5kZXhwcjogW05VTEwsIE5VTEwsIE5VTExdIChzbGlj ZSBsb3dlciBib3VuZHMgbm90IHVzZWQgaGVyZSkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgRmllbGRB Y2Nlc3NvckV4cHIKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAgKmZpZWxkbmFtZTsJCS8q IG5hbWUgb2YgdGhlIEpTT05CIG9iamVjdCBmaWVsZCBhY2Nlc3NlZCB2aWEKKwkJCQkJCQkJICog ZG90IG5vdGF0aW9uICovCisJT2lkCQkJZmFlY29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1i bGVfaWdub3JlKTsKK30JCQlGaWVsZEFjY2Vzc29yRXhwcjsKKwogI2VuZGlmCQkJCQkJCS8qIFBS SU1OT0RFU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0 ZWQvc3FsLXNxbGpzb24uYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwt c3FsanNvbi5jCmluZGV4IDM5MjIxZjllYTVkLi5lNmE3ZWNlNmRhYiAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMKQEAgLTQxNywxMiArNDE3 LDEyMiBAQCBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogCSAgZm9yIChpbnQg aSA9IDA7IGkgPCBzaXplb2YoaXNfanNvbik7IGkrKykKIAkJICBwcmludGYoIkZvdW5kIGlzX2pz b25bJWRdOiAlc1xuIiwgaSwgaXNfanNvbltpXSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCi0gIHsg RUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisJeyBFQ1BHZG8oX19MSU5FX18s IDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjog e1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiApIC4gXCJhXCIgKSIsIEVDUEd0X0VPSVQs IAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNo YXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JU KTsKICNsaW5lIDExOCAic3FsanNvbi5wZ2MiCiAKIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3Fs cHJpbnQoKTt9CiAjbGluZSAxMTggInNxbGpzb24ucGdjIgogCisJcHJpbnRmKCJGb3VuZCBqc29u PSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BH c3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0n IDo6IGpzb25iIC4gXCJhXCIgKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChs b25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FU T1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEyMSAic3FsanNvbi5w Z2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxMjEgInNx bGpzb24ucGdjIgorCisJLy8gZXJyb3IKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9fScgOjoganNvbmIgKSAuIGEgKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIs KGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9O T19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEyNCAi c3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGlu ZSAxMjQgInNxbGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsK KworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2Vs ZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9fScgOjoganNvbmIgKSAu IGEgLiBiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChs b25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwg MEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMjcgInNxbGpzb24ucGdjIgorCitpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTI3ICJzcWxqc29uLnBnYyIK KworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVf XywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggY29hbGVzY2Ug KCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iICkgLiBj ICkgLCAnbnVsbCcgKSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcp MTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwg TlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTMwICJzcWxqc29uLnBnYyIK KworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEzMCAic3FsanNv bi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8o X19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwi OiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgMCBdICkiLCBFQ1BHdF9FT0lU LCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihj aGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9S VCk7CisjbGluZSAxMzMgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQorI2xpbmUgMTMzICJzcWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNv bj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQ R3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAy fSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNv bmIgKSAuIGIgLiB4ICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykx MDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBO VUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMzYgInNxbGpzb24ucGdjIgor CitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTM2ICJzcWxqc29u LnBnYyIKKworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhf X0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAn e1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6 IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSBbICdiJyBdIFsgMCBdICkiLCBFQ1BHdF9F T0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVv ZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3Rf RU9SVCk7CisjbGluZSAxMzkgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDAp IHNxbHByaW50KCk7fQorI2xpbmUgMTM5ICJzcWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQg anNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwg RUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wi OiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjog anNvbmIgKSAuIGIgWyAxIF0gLiB4IFsgMCA6IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2No YXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BH dF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDE0 MiAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9Cisj bGluZSAxNDIgInNxbGpzb24ucGdjIgorCisJLy8gZXJyb3IKKworCXsgRUNQR2RvKF9fTElORV9f LCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6 IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7 XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hh ciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0 X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTQ1 ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNs aW5lIDE0NSAic3FsanNvbi5wZ2MiCisKKwkvLyBlcnJvcgorCisJeyBFQ1BHZG8oX19MSU5FX18s IDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjog e1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtc InlcIjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAK KwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFy KSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7 CisjbGluZSAxNDggInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHBy aW50KCk7fQorI2xpbmUgMTQ4ICJzcWxqc29uLnBnYyIKKworCS8vIGVycm9yCisKKyAgeyBFQ1BH ZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQiKTsKKyNsaW5lIDE1MSAic3FsanNvbi5wZ2Mi CisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNTEgInNxbGpz b24ucGdjIgorCiAKICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9l Y3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgppbmRleCBlNTVhOTVkZDcxMS4uMTlm OGM1OGFmMDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5zdGRlcnIKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVk L3NxbC1zcWxqc29uLnN0ZGVycgpAQCAtMjY4LDUgKzI2OCwxMDUgQEAgU1FMIGVycm9yOiBjYW5u b3QgdXNlIHR5cGUganNvbmIgaW4gUkVUVVJOSU5HIGNsYXVzZSBvZiBKU09OX1NFUklBTElaRSgp IG9uIGxpbmUKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElE XTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEwMjogUkVTVUxUOiBmIG9mZnNldDogLTE7IGFycmF5 OiBubwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBl Y3BnX2V4ZWN1dGUgb24gbGluZSAxMTg6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsi YiI6IDEsICJjIjogMn19JyA6OiBqc29uYiApIC4gImEiICk7IHdpdGggMCBwYXJhbWV0ZXIocykg b24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAs IHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDExODogdXNpbmcg UFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06 IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMTg6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMg d2l0aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTE4OiBSRVNVTFQ6IHsiYiI6IDEsICJjIjog Mn0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyMTogcXVlcnk6IHNlbGVj dCBqc29uICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiAuICJhIiApOyB3aXRo IDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24g bGluZSAxMjE6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTog MDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTIxOiBiYWQgcmVz cG9uc2UgLSBFUlJPUjogIHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHNl bGVjdCBqc29uICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiAuICJhIiApCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcgc3Fs c3RhdGUgM0YwMDAgKHNxbGNvZGUgLTQwMCk6IHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0 IG9uIGxpbmUgMTIxCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiAzRjAwMAor U1FMIGVycm9yOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBsaW5lIDEyMQorW05P X1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNDogcXVlcnk6IHNlbGVjdCBqc29uICggKCAn eyJhIjogeyJiIjogMSwgImMiOiAyfX0nIDo6IGpzb25iICkgLiBhICk7IHdpdGggMCBwYXJhbWV0 ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNDog dXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMjQ6IGNvcnJlY3RseSBnb3QgMSB0 dXBsZXMgd2l0aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTI0OiBSRVNVTFQ6IHsiYiI6IDEs ICJjIjogMn0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAs IHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNzogcXVlcnk6 IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfX0nIDo6IGpzb25iICkgLiBh IC4gYiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lv bgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X2V4ZWN1dGUgb24gbGluZSAxMjc6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2Rl OiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUg MTI3OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5l IDEyNzogUkVTVUxUOiAxIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBj b2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzA6 IHF1ZXJ5OiBzZWxlY3QganNvbiAoIGNvYWxlc2NlICgganNvbiAoICggJ3siYSI6IHsiYiI6IDEs ICJjIjogMn19JyA6OiBqc29uYiApIC4gYyApICwgJ251bGwnICkgKTsgd2l0aCAwIHBhcmFtZXRl cihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMwOiB1 c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEzMDogY29ycmVjdGx5IGdvdCAxIHR1 cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMzA6IFJFU1VMVDogbnVsbCBvZmZz ZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAw CitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMzOiBxdWVyeTogc2VsZWN0IGpzb24g KCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7 InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyAwIF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBv biBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwg c3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMzOiB1c2luZyBQ UWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTog ZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEzMzogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3 aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMzM6IFJFU1VMVDogeyJ4IjogMX0gb2Zmc2V0 OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzNjogcXVlcnk6IHNlbGVjdCBqc29uICgg KCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIC4geCApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzY6IHVzaW5nIFBRZXhl YworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTM2OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGgg MSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEzNjogUkVTVUxUOiBbMSwgWzEyLCB7InkiOiAxfV1d IG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTog MDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzk6IHF1ZXJ5OiBzZWxlY3Qg anNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIF0gKTsgd2l0aCAwIHBhcmFt ZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTM5 OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEzOTogY29ycmVjdGx5IGdvdCAx IHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAw MDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMzk6IFJFU1VMVDogeyJ4Ijog MX0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0MjogcXVlcnk6IHNlbGVj dCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6 IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICk7IHdp dGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBv biBsaW5lIDE0MjogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAxNDI6IGJhZCBy ZXNwb25zZSAtIEVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2Vz CitMSU5FIDE6IC4uLiwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyAx IF0gLiB4IFsgMCA6IF0gKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSA0MjgwNCAoc3FsY29kZSAtNDAw KToganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiA0MjgwNAorU1FMIGVycm9yOiBqc29u YiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMgb24gbGluZSAxNDIKK1tOT19QSURd OiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDU6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6 IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19 JyA6OiBqc29uYiApIC4gKiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNw ZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDU6IHVzaW5nIFBRZXhlYworW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVz dWx0IG9uIGxpbmUgMTQ1OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIHJvdyBleHBhbnNpb24gdmlh ICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUgMTogc2VsZWN0IGpzb24gKCAoICd7ImEi OiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4Li4uCisgICAgICAgICAgICAg ICAgICAgICAgICBeCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgMEEwMDAgKHNxbGNvZGUgLTQwMCk6IHJvdyBleHBhbnNp b24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUgb24gbGluZSAxNDUKK1tOT19QSURdOiBz cWxjYTogY29kZTogLTQwMCwgc3RhdGU6IDBBMDAwCitTUUwgZXJyb3I6IHJvdyBleHBhbnNpb24g dmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUgb24gbGluZSAxNDUKK1tOT19QSURdOiBlY3Bn X2V4ZWN1dGUgb24gbGluZSAxNDg6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6 IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBq c29uYiApIFsgJ2InIF0gWyAwIDogXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rp b24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHVzaW5nIFBRZXhlYworW05P X1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNr X1BRcmVzdWx0IG9uIGxpbmUgMTQ4OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNj cmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworTElORSAxOiAuLi54IjogMX0sIHsieCI6IFsx MiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcg c3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBz dXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0OAorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBz dGF0ZTogNDI4MDQKK1NRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQg c2xpY2VzIG9uIGxpbmUgMTQ4CiBbTk9fUElEXTogZWNwZ19maW5pc2g6IGNvbm5lY3Rpb24gZWNw ZzFfcmVncmVzc2lvbiBjbG9zZWQKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAw MDAwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNx bGpzb24uc3Rkb3V0IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxq c29uLnN0ZG91dAppbmRleCA4M2Y4ZGYxM2U1YS4uNDQyZDM2OTMxZjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKKysrIGIv c3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dApAQCAt MjgsMyArMjgsMTAgQEAgRm91bmQgaXNfanNvbls0XTogZmFsc2UKIEZvdW5kIGlzX2pzb25bNV06 IGZhbHNlCiBGb3VuZCBpc19qc29uWzZdOiB0cnVlCiBGb3VuZCBpc19qc29uWzddOiBmYWxzZQor Rm91bmQganNvbj17ImIiOiAxLCAiYyI6IDJ9CitGb3VuZCBqc29uPXsiYiI6IDEsICJjIjogMn0K K0ZvdW5kIGpzb249MQorRm91bmQganNvbj1udWxsCitGb3VuZCBqc29uPXsieCI6IDF9CitGb3Vu ZCBqc29uPVsxLCBbMTIsIHsieSI6IDF9XV0KK0ZvdW5kIGpzb249eyJ4IjogMX0KZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCmluZGV4IGRkY2JjYzNiM2NiLi41N2E5YmZm NDI0ZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBn YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xMTUs NiArMTE1LDM5IEBAIEVYRUMgU1FMIEVORCBERUNMQVJFIFNFQ1RJT047CiAJICBmb3IgKGludCBp ID0gMDsgaSA8IHNpemVvZihpc19qc29uKTsgaSsrKQogCQkgIHByaW50ZigiRm91bmQgaXNfanNv blslZF06ICVzXG4iLCBpLCBpc19qc29uW2ldID8gInRydWUiIDogImZhbHNlIik7CiAKKwlFWEVD IFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6anNvbmIpLiJhIikg SU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBT UUwgU0VMRUNUIEpTT04oJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6anNvbmIuImEiKSBJTlRP IDpqc29uOworCS8vIGVycm9yCisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6 IDEsICJjIjogMn19Jzo6anNvbmIpLmEpIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29u PSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwg ImMiOiAyfX0nOjpqc29uYikuYS5iKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0l c1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTihDT0FMRVNDRShKU09OKCgneyJh IjogeyJiIjogMSwgImMiOiAyfX0nOjpqc29uYikuYyksICdudWxsJykpIElOVE8gOmpzb247CisJ cHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09O KCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nOjpqc29uYikuYlswXSkgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249 JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAi YyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS5i LngpIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVY RUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4Ijog MX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYilbJ2InXVswXSkgSU5UTyA6anNvbjsK KwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpT T04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7 InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhbMDpdKSBJTlRPIDpqc29uOworCS8vIGVycm9yCisK KwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3si eCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLiopIElOVE8gOmpzb247CisJ Ly8gZXJyb3IKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAy fSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYilbJ2InXVsw Ol0pIElOVE8gOmpzb247CisJLy8gZXJyb3IKKwogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCiAg IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dAppbmRleCA1YTFlYjE4YWJh Mi4uMzdkNzFiMjNkNWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNv bmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CkBAIC00OTg5 LDYgKzQ5ODksMTIgQEAgc2VsZWN0ICgnMTIzJzo6anNvbmIpWydhJ107CiAgCiAoMSByb3cpCiAK K3NlbGVjdCAoJzEyMyc6Ompzb25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0 ICgnMTIzJzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTAwMSwxMiArNTAwNywy NCBAQCBzZWxlY3QgKCcxMjMnOjpqc29uYilbTlVMTF07CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAo JzEyMyc6Ompzb25iKS5OVUxMOworIG51bGwgCistLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0 ICgneyJhIjogMX0nOjpqc29uYilbJ2EnXTsKICBqc29uYiAKIC0tLS0tLS0KICAxCiAoMSByb3cp CiAKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLmE7CisgYSAKKy0tLQorIDEKKygxIHJvdykK Kwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC01 MDE5LDYgKzUwMzcsMTIgQEAgc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ25vdF9leGlzdCdd OwogIAogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKS4ibm90X2V4aXN0IjsK KyBub3RfZXhpc3QgCistLS0tLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAx fSc6Ompzb25iKVtOVUxMXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMzEsNiArNTA1NSwxMiBA QCBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsnYSddOwogIAogKDEgcm93KQogCitz ZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykK Kwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0t CkBAIC01MDQzLDYgKzUwNzMsMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb JzEnXTsKICAiMiIKICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYiku IjEiOworIDEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpq c29uYilbMS4wXTsKIEVSUk9SOiAgc3Vic2NyaXB0IHR5cGUgbnVtZXJpYyBpcyBub3Qgc3VwcG9y dGVkCiBMSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CkBAIC01 MDcyLDYgKzUxMDgsMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bJ2En XTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV0uYTsK KyBhIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIp WzFdWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTA4NCw1NiArNTEyNiwxMjcgQEAgc2VsZWN0 ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwogICJj IgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmI7CisgIGIgIAorLS0tLS0KKyAiYyIKKygxIHJvdykKKwogc2VsZWN0ICgneyJh IjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddOwogICAganNvbmIg ICAKIC0tLS0tLS0tLS0tCiAgWzEsIDIsIDNdCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEs ICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZDsKKyAgICAgZCAgICAgCistLS0t LS0tLS0tLQorIFsxLCAyLCAzXQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJj IiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpWydkJ11bMV07CiAganNvbmIgCiAtLS0tLS0tCiAg MgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmRbMV07CisgZCAKKy0tLQorIDIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjog MSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddWydhJ107CiAganNvbmIg CiAtLS0tLS0tCiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6 IFsxLCAyLCAzXX0nOjpqc29uYikuZFsnYSddOworIGQgCistLS0KKyAKKygxIHJvdykKKworc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5kLmE7Cisg YSAKKy0tLQorIAorKDEgcm93KQorCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiB7 ImEiOiBbMSwgMiwgM119fSc6Ompzb25iKS5kWydhJ11bMF07CisgZCAKKy0tLQorIDEKKygxIHJv dykKKworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogeyJhIjogWzEsIDIsIDNdfX0n Ojpqc29uYikuZC5hWzBdOworIGEgCistLS0KKyAxCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6 IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilb J2EnXVsnYTEnXTsKICAgICAganNvbmIgICAgIAogLS0tLS0tLS0tLS0tLS0tCiAgeyJhMiI6ICJh YWEifQogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJi IjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpLmEuYTE7CisgICAgICBhMSAgICAgICAKKy0t LS0tLS0tLS0tLS0tLQorIHsiYTIiOiAiYWFhIn0KKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjog eyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsn YSddWydhMSddWydhMiddOwogIGpzb25iIAogLS0tLS0tLQogICJhYWEiCiAoMSByb3cpCiAKK3Nl bGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2Nj In0nOjpqc29uYikuYS5hMS5hMjsKKyAgYTIgICAKKy0tLS0tLS0KKyAiYWFhIgorKDEgcm93KQor CiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjog ImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ11bJ2EyJ11bJ2EzJ107CiAganNvbmIgCiAtLS0tLS0t CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIi OiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMi5hMzsKKyBhMyAKKy0tLS0KKyAK KygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAi Y2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddOwogICAgICAgICAganNv bmIgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgWyJhYWEiLCAiYmJiIiwgImNj YyJdCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJi IiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMTsKKyAgICAgICAgICBiMSAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYWFhIiwgImJiYiIsICJjY2Mi XQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIs ICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpWydhJ11bMV1bJ2IxJ11bMl07CiAganNvbmIg CiAtLS0tLS0tCiAgImNjYyIKICgxIHJvdykKIAotLS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVk Ci1zZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsKK3NlbGVjdCAoJ3siYSI6IFsi YTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYiku YVsxXS5iMVsyXTsKKyAgYjEgICAKKy0tLS0tLS0KKyAiY2NjIgorKDEgcm93KQorCitzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsgLS0gZmFpbHMKIEVSUk9SOiAganNvbmIgc3Vi c2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9 Jzo6anNvbmIpWydhJzonYiddOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgpAQCAtNTgzMSwzICs1OTQ0LDI5OSBAQCBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50ODsKICAxMjM0NQog KDEgcm93KQogCistLSBkb3Qgbm90YXRpb24KK0NSRUFURSBUQUJMRSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiBBUworU0VMRUNUICd7ImEiOiBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAi ZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgImIiOiBbMywgNCwgeyJi IjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dfSc6Ompzb25iIGpiOworU0VM RUNUIChqYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjog ImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dCisoMSByb3cpCisKK1NFTEVDVCAo amIpLiJhIiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBkb3VibGUgcXVvdGUgc2hv dWxkIHdvcmsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwgMiwgeyJi IjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6 In19XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsgLS0gc2luZ2xlIHF1b3RlIHNob3VsZCBub3Qgd29yaworRVJST1I6ICBzeW50YXggZXJy b3IgYXQgb3IgbmVhciAiJ2EnIgorTElORSAxOiBTRUxFQ1QgKGpiKS4nYScgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgXgorc2VsZWN0IChqYilbMF0u YSBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIHNhbWUgcmVzdWx0IGFz IChqYikuYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIi OiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoi fX1dCisoMSByb3cpCisKK3NlbGVjdCAoamIpWzFdLmEgZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsgLS0gcmV0dXJucyBOVUxMCisgYSAKKy0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpi KS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAg ICAgYiAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5Ijog IllZWSIsICJ6IjogIlpaWiJ9fV0KKygxIHJvdykKKworU0VMRUNUIChqYikuYyBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworIGMgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYiku YS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0t LS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVsyXS5iIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CisgIGIgIAorLS0tLS0KKyAiYyIKKygxIHJvdykKKworU0VM RUNUIChqYikuYS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgIHkgICAKKy0t LS0tLS0KKyAieXl5IgorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworICAgeiAgIAorLS0tLS0tLQorICJaWloiCisoMSByb3cpCisKK1NF TEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYyAKKy0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uIHQ7IC0tIGZhaWxzCitFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBw b3J0IHNsaWNlcworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 IC0tIGZhaWxzCitFUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorLS0gZXhwbGFp bnMgc2hvdWxkIHdvcmsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0Lmpi KS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb24gdAorICAgT3V0cHV0OiAoamIpLmEKKygyIHJvd3MpCisKK1NFTEVDVCAodC5qYikuYSBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4Ijog eyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0KKygxIHJvdykKKworRVhQTEFJTiAoVkVSQk9TRSwg Q09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hWzFdCisoMiByb3dzKQor CitTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYSAKKy0t LQorIDIKKygxIHJvdykKKworLS0gdmlld3Mgc2hvdWxkIHdvcmsKK0NSRUFURSBWSUVXIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10ueC55IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCisg U0VMRUNUIChqYikuYVszXS54LnkgQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bgorLS0gbWl4ZWQgc3ludGF4CitEUk9QIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7 CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpWydhJ10uYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6 IChqYlsnYSc6OnRleHRdKS5iCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBhbiBhcnJheSBkdWUgdG8gbGF4IG1v ZGUKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitD UkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAo amIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoamJbJ2EnOjp0ZXh0XSkuYiBBUyBiCisgICBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCiso MSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitF WFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgo amIpLmEpWydiJzo6dGV4dF0KKygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwgYmVjYXVzZSBbJ2InXSBsb29r cyBmb3Igc3RyaWN0IG1hdGNoIGluIGFuIG9iamVjdAorIGEgCistLS0KKyAKKygxIHJvdykKKwor Q1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1Qg KGpiKS5hWydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYSlbJ2InOjp0ZXh0XSBBUyBhCisg ICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxOworIGEgCistLS0KKyAKKygxIHJvdykKKworRFJPUCBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9G RikgU0VMRUNUIChqYikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiKS5iLngpWyd6Jzo6dGV4dF0KKygy IHJvd3MpCisKK1NFTEVDVCAoamIpLmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247IC0tIHdhcm5pbmdzCisgICB4ICAgCistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworQ1JF QVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpi KS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoKGpiKS5iLngpWyd6Jzo6dGV4dF0gQVMgeAor ICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MTsKKyAgIHggICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitE Uk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoamJbJ2In Ojp0ZXh0XSkueClbJ3onOjp0ZXh0XQorKDIgcm93cykKKworU0VMRUNUIChqYilbJ2InXS54Wyd6 J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgIC0tIHdhcm5pbmdzCisgICB4ICAgCist LS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUg T1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNF TEVDVCAoKGpiWydiJzo6dGV4dF0pLngpWyd6Jzo6dGV4dF0gQVMgeAorICAgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKKyAgIHggICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGlj LnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoKGpiKS5iKVsneCc6OnRleHRdKS56Ciso MiByb3dzKQorCitTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOyAtLSByZXR1cm5zIE5VTEwKKyB6IAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVX IHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsneCdd LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEgQVMKKyBTRUxFQ1QgKCgoamIpLmIpWyd4Jzo6dGV4dF0pLnogQVMgegorICAgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MTsKKyB6IAorLS0tCisgCisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNF TEVDVCAoamIpLmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKChqYikuYilbJ3gnOjp0ZXh0XVsneic6OnRl eHRdCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5iWyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKKyBiIAorLS0tCisgCisoMSByb3cpCisKK0NS RUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChq YikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYilbJ3gnOjp0ZXh0XVsneic6 OnRleHRdIEFTIGIKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZy b20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgYiAKKy0tLQorIAorKDEgcm93KQorCitE Uk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYlsnYic6 OnRleHRdWyd4Jzo6dGV4dF0pLnoKKygyIHJvd3MpCisKK1NFTEVDVCAoamIpWydiJ11bJ3gnXS56 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorIHogCistLS0K KyAKKygxIHJvdykKKworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9u X3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoamJbJ2In Ojp0ZXh0XVsneCc6OnRleHRdKS56IEFTIHoKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgeiAKKy0tLQor IAorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx OworLS0gY2xlYW4gdXAKK0RST1AgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9qc29uYi5zcWwKaW5kZXggNTdjMTFhY2RkZmUuLjVmYzUzZTFjOWFhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvanNvbmIuc3FsCkBAIC0xMzA0LDMzICsxMzA0LDUxIEBAIHNlbGVjdCBqc29uYl9pbnNlcnQo J3siYSI6IHsiYiI6ICJ2YWx1ZSJ9fScsICd7YSwgYn0nLCAnIm5ld192YWx1ZSInLCB0cnVlKTsK IAogLS0ganNvbmIgc3Vic2NyaXB0CiBzZWxlY3QgKCcxMjMnOjpqc29uYilbJ2EnXTsKK3NlbGVj dCAoJzEyMyc6Ompzb25iKS5hOwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogc2VsZWN0ICgn MTIzJzo6anNvbmIpW05VTExdOworc2VsZWN0ICgnMTIzJzo6anNvbmIpLk5VTEw7CiBzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuYTsK IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWzBdOwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29u YilbJ25vdF9leGlzdCddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuIm5vdF9leGlzdCI7 CiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVtOVUxMXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWydhJ107CitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS5hOwog c2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMF07CiBzZWxlY3QgKCdbMSwgIjIiLCBu dWxsXSc6Ompzb25iKVsnMSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuIjEi Owogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMS4wXTsKIHNlbGVjdCAoJ1sxLCAi MiIsIG51bGxdJzo6anNvbmIpWzJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb M107CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVstMl07CiBzZWxlY3QgKCdbMSwg IjIiLCBudWxsXSc6Ompzb25iKVsxXVsnYSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpq c29uYilbMV0uYTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWzBdOwogc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwor c2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5iOwog c2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCdd Oworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5k Owogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsn ZCddWzFdOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompz b25iKS5kWzFdOwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6 Ompzb25iKVsnZCddWydhJ107CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwg MiwgM119Jzo6anNvbmIpLmRbJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6 IFsxLCAyLCAzXX0nOjpqc29uYikuZC5hOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJk IjogeyJhIjogWzEsIDIsIDNdfX0nOjpqc29uYikuZFsnYSddWzBdOworc2VsZWN0ICgneyJhIjog MSwgImIiOiAiYyIsICJkIjogeyJhIjogWzEsIDIsIDNdfX0nOjpqc29uYikuZC5hWzBdOwogc2Vs ZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2Mi fSc6Ompzb25iKVsnYSddWydhMSddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFh In19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExOwogc2VsZWN0ICgneyJh IjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25i KVsnYSddWydhMSddWydhMiddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19 LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyOwogc2VsZWN0ICgneyJh IjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25i KVsnYSddWydhMSddWydhMiddWydhMyddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAi YWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyLmEzOwogc2Vs ZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAi YmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddOworc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEi OiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxOwog c2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIi OiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddWzJdOworc2VsZWN0ICgneyJhIjogWyJhMSIs IHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFd LmIxWzJdOwogCi0tLSBzbGljZXMgYXJlIG5vdCBzdXBwb3J0ZWQKLXNlbGVjdCAoJ3siYSI6IDF9 Jzo6anNvbmIpWydhJzonYiddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ2EnOidiJ107 IC0tIGZhaWxzCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwogc2VsZWN0 ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMTpdOwpAQCAtMTU5MCwzICsxNjA4LDk0IEBAIHNlbGVjdCAnMTIzNDUuMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjpmbG9hdDg7 CiBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDUnOjpqc29uYjo6aW50MjsKIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ0Owogc2VsZWN0ICcxMjM0NS4w MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6Omlu dDg7CisKKy0tIGRvdCBub3RhdGlvbgorQ1JFQVRFIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uIEFTCitTRUxFQ1QgJ3siYSI6IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjog ImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCAiYiI6IFszLCA0LCB7ImIiOiAi ZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV19Jzo6anNvbmIgamI7CisKK1NFTEVD VCAoamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiJhIiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBkb3VibGUgcXVvdGUgc2hvdWxkIHdvcmsK K1NFTEVDVCAoamIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBzaW5nbGUg cXVvdGUgc2hvdWxkIG5vdCB3b3JrCitzZWxlY3QgKGpiKVswXS5hIGZyb20gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247IC0tIHJldHVybnMgc2FtZSByZXN1bHQgYXMgKGpiKS5hCitzZWxlY3QgKGpi KVsxXS5hIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorU0VM RUNUIChqYikuYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYyBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS5iIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CitTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VM RUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKK1NFTEVD VCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWlscworCistLSBl eHBsYWlucyBzaG91bGQgd29yaworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1Qg KHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworU0VMRUNUICh0LmpiKS5h IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VM RUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworCistLSB2aWV3cyBz aG91bGQgd29yaworQ1JFQVRFIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMgU0VM RUNUIChqYikuYVszXS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MQorCistLSBtaXhlZCBzeW50YXgKK0RST1AgVklFVyB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBT RUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAo amIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIGFuIGFy cmF5IGR1ZSB0byBsYXggbW9kZQorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYiku YVsnYiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWydiJ10g RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMIGJlY2F1c2UgWydi J10gbG9va3MgZm9yIHN0cmljdCBtYXRjaCBpbiBhbiBvYmplY3QKK0NSRUFURSBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYVsnYiddIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEK K1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVi bGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpIFNFTEVDVCAoamIpLmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CitTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSB3 YXJuaW5ncworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFT CitTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2 IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddLnhbJ3on XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYilbJ2InXS54Wyd6J10g RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgIC0tIHdhcm5pbmdzCitDUkVBVEUgVklFVyBw dWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydiJ10ueFsn eiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9Q IFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworCitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CitTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOyAtLSByZXR1cm5zIE5VTEwKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChq YikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIp LmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVM TAorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxF Q1QgKGpiKS5iWyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRl c3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsK KworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYilbJ2InXVsneCddLnogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMCitDUkVBVEUgVklFVyBw dWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydiJ11bJ3gn XS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9Q IFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworCistLSBjbGVhbiB1cAor RFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKaW5kZXggYTEzZTgxNjI4OTAuLmNjNjQ2NDJmMzk5IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdApAQCAtODA1LDYgKzgwNSw3IEBAIEZkd1JvdXRpbmUKIEZldGNoRGlyZWN0aW9uCiBGZXRj aERpcmVjdGlvbktleXdvcmRzCiBGZXRjaFN0bXQKK0ZpZWxkQWNjZXNzb3JFeHByCiBGaWVsZFNl bGVjdAogRmllbGRTdG9yZQogRmlsZQotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000789ac1063e5fc312 Content-Type: application/octet-stream; name="v16-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v16-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcoy0g65 RnJvbSA3ZDZlZDcwNjZhN2M2MjFhZGFlYjUzMzhhYTNmMGVmMWJlYjVhZWY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE2IDMvN10gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw 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== --000000000000789ac1063e5fc312 Content-Type: application/octet-stream; name="v16-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Disposition: attachment; filename="v16-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcoy0g86 RnJvbSBjYzdiYjI1NjJhMDJjZWUxNjNhMzA4ZjQ3MDdmMTRmMGNhNGJmZGUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogRnJpLCA1IFNlcCAyMDI1IDE0OjE3OjM3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTYgMi83XSBBbGxvdyBHZW5lcmljIFR5cGUgU3Vic2NyaXB0aW5nIHRvIEFjY2VwdCBE b3QKIE5vdGF0aW9uICguKSBhcyBJbnB1dApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKVGhpcyBjaGFuZ2UgZXh0ZW5kcyBnZW5lcmljIHR5cGUgc3Vic2NyaXB0aW5nIHRvIHJlY29n bml6ZSBkb3QKbm90YXRpb24gKC4pIGluIGFkZGl0aW9uIHRvIGJyYWNrZXQgbm90YXRpb24gKFtd KS4gV2hpbGUgdGhpcyBkb2VzIG5vdAp5ZXQgcHJvdmlkZSBmdWxsIHN1cHBvcnQgZm9yIGRvdCBu b3RhdGlvbiwgaXQgZW5hYmxlcyBzdWJzY3JpcHRpbmcKY29udGFpbmVycyB0byBwcm9jZXNzIGl0 IGluIHRoZSBmdXR1cmUuCgpGb3Igbm93LCBjb250YWluZXItc3BlY2lmaWMgdHJhbnNmb3JtIGZ1 bmN0aW9ucyBvbmx5IGhhbmRsZQpzdWJzY3JpcHRpbmcgaW5kaWNlcyBhbmQgc3RvcCBwcm9jZXNz aW5nIHdoZW4gZW5jb3VudGVyaW5nIGRvdApub3RhdGlvbi4gSXQgaXMgdXAgdG8gaW5kaXZpZHVh bCBjb250YWluZXJzIHRvIGRlY2lkZSBob3cgdG8gdHJhbnNmb3JtCmRvdCBub3RhdGlvbiBpbiBz dWJzZXF1ZW50IHVwZGF0ZXMuCgpUaGlzIGNoYW5nZSBhbHNvIHVwZGF0ZXMgdGhlIFN1YnNjcmlw dFRyYW5zZm9ybSgpIEFQSSB0byByZW1vdmUgdGhlCiJib29sIGlzU2xpY2UiIGFyZ3VtZW50LiBF YWNoIGNvbnRhaW5lcuKAmXMgdHJhbnNmb3JtIGZ1bmN0aW9uIG5vdwpkZXRlcm1pbmVzIHNsaWNl LW5lc3MgaXRzZWxmLCBzaW5jZSBpdCBtYXkgb25seSBwcm9jZXNzIGEgcHJlZml4IG9mCnRoZSBp bmRpcmVjdGlvbiBsaXN0LiBGb3IgZXhhbXBsZSwgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgp IHN0b3BzCmF0IGRvdCBub3RhdGlvbiwgc28gImlzU2xpY2UiIHNob3VsZCBub3QgZGVwZW5kIG9u IHNsaWNlIHNwZWNpZmllcnMKdGhhdCBhcHBlYXIgYWZ0ZXJ3YXJkLgoKQXV0aG9yZWQtYnk6IE5p a2l0YSBHbHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkF1dGhvcmVkLWJ5OiBBbGV4YW5k cmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJl dyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNh bnRhcmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4u Y2hhb0BnbWFpbC5jb20+Ci0tLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyAgICAgICAg IHwgIDkgKystLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgIHwgNjggKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YyAgICAgIHwgNTcgKysrKysrKysrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYyAgICB8ICAzICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJz LmMgICAgfCA0MCArKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJz dWJzLmMgICAgfCAxNiArKysrKy0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCAg ICAgfCAgMyArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgIHwgIDMgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dCB8IDI2ICsrKysrKysrKy0tCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9hcnJheXMuc3FsICAgICAgfCAgNyArKy0KIDEwIGZpbGVzIGNo YW5nZWQsIDE2MiBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b250cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMu YwppbmRleCAxYjI5NTQzYWI2Ny4uNTQ5MjA0OWFmM2IgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0 b3JlL2hzdG9yZV9zdWJzLmMKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwpAQCAt NDIsMTQgKzQyLDE2IEBAIHN0YXRpYyB2b2lkCiBoc3RvcmVfc3Vic2NyaXB0X3RyYW5zZm9ybShT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCSAgIExpc3QgKippbmRpcmVjdGlvbiwKIAkJ CQkJCSAgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCSAgIGJvb2wgaXNTbGljZSwKIAkJCQkJ CSAgIGJvb2wgaXNBc3NpZ25tZW50KQogewogCUFfSW5kaWNlcyAgKmFpOwogCU5vZGUJICAgKnN1 YmV4cHI7CiAKKwlBc3NlcnQoKmluZGlyZWN0aW9uICE9IE5JTCk7CisJYWkgPSBsaW5pdGlhbF9u b2RlKEFfSW5kaWNlcywgKmluZGlyZWN0aW9uKTsKKwogCS8qIFdlIHN1cHBvcnQgb25seSBzaW5n bGUtc3Vic2NyaXB0LCBub24tc2xpY2UgY2FzZXMgKi8KLQlpZiAoaXNTbGljZSB8fCBsaXN0X2xl bmd0aCgqaW5kaXJlY3Rpb24pICE9IDEpCisJaWYgKGFpLT5pc19zbGljZSB8fCBsaXN0X2xlbmd0 aCgqaW5kaXJlY3Rpb24pICE9IDEpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImhzdG9yZSBhbGxvd3Mg b25seSBvbmUgc3Vic2NyaXB0IiksCkBAIC01Nyw4ICs1OSw3IEBAIGhzdG9yZV9zdWJzY3JpcHRf dHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJCQkJZXhwckxvY2F0aW9u KChOb2RlICopICppbmRpcmVjdGlvbikpKSk7CiAKIAkvKiBUcmFuc2Zvcm0gdGhlIHN1YnNjcmlw dCBleHByZXNzaW9uIHRvIHR5cGUgdGV4dCAqLwotCWFpID0gbGluaXRpYWxfbm9kZShBX0luZGlj ZXMsICppbmRpcmVjdGlvbik7Ci0JQXNzZXJ0KGFpLT51aWR4ICE9IE5VTEwgJiYgYWktPmxpZHgg PT0gTlVMTCAmJiAhYWktPmlzX3NsaWNlKTsKKwlBc3NlcnQoYWktPnVpZHggIT0gTlVMTCAmJiBh aS0+bGlkeCA9PSBOVUxMKTsKIAogCXN1YmV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgYWkt PnVpZHgsIHBzdGF0ZS0+cF9leHByX2tpbmQpOwogCS8qIElmIGl0J3Mgbm90IHRleHQgYWxyZWFk eSwgdHJ5IHRvIGNvZXJjZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNmU4ZmQ0MmM2 MTIuLmY4YTA2MTdmODIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ0MSwzOCArNDQx LDU5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVj dGlvbiAqaW5kKQogCUxpc3RDZWxsICAgKmk7CiAKIAkvKgotCSAqIFdlIGhhdmUgdG8gc3BsaXQg YW55IGZpZWxkLXNlbGVjdGlvbiBvcGVyYXRpb25zIGFwYXJ0IGZyb20KLQkgKiBzdWJzY3JpcHRp bmcuICBBZGphY2VudCBBX0luZGljZXMgbm9kZXMgaGF2ZSB0byBiZSB0cmVhdGVkIGFzIGEgc2lu Z2xlCisJICogQ29tYmluZSBmaWVsZCBuYW1lcyBhbmQgc3Vic2NyaXB0cyBpbnRvIGEgc2luZ2xl IGluZGlyZWN0aW9uIGxpc3QsIGFzCisJICogc29tZSBzdWJzY3JpcHRpbmcgY29udGFpbmVycywg c3VjaCBhcyBqc29uYiwgc3VwcG9ydCBmaWVsZCBhY2Nlc3MgdXNpbmcKKwkgKiBkb3Qgbm90YXRp b24uIEFkamFjZW50IEFfSW5kaWNlcyBub2RlcyBoYXZlIHRvIGJlIHRyZWF0ZWQgYXMgYSBzaW5n bGUKIAkgKiBtdWx0aWRpbWVuc2lvbmFsIHN1YnNjcmlwdCBvcGVyYXRpb24uCiAJICovCiAJZm9y ZWFjaChpLCBpbmQtPmluZGlyZWN0aW9uKQogCXsKIAkJTm9kZQkgICAqbiA9IGxmaXJzdChpKTsK IAotCQlpZiAoSXNBKG4sIEFfSW5kaWNlcykpCisJCWlmIChJc0EobiwgQV9JbmRpY2VzKSB8fCBJ c0EobiwgU3RyaW5nKSkKIAkJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4pOwot CQllbHNlIGlmIChJc0EobiwgQV9TdGFyKSkKKwkJZWxzZQogCQl7CisJCQlBc3NlcnQoSXNBKG4s IEFfU3RhcikpOwogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJyb3cgZXhwYW5zaW9uIHZpYSBcIipc IiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGxvY2F0aW9uKSkpOwogCQl9Ci0JCWVsc2UKKwl9CisKKwl3aGlsZSAoc3Vic2NyaXB0cykK Kwl7CisJCS8qIHRyeSBwcm9jZXNzaW5nIGNvbnRhaW5lciBzdWJzY3JpcHRzIGZpcnN0ICovCisJ CU5vZGUJICAgKm5ld3Jlc3VsdCA9IChOb2RlICopCisJCQl0cmFuc2Zvcm1Db250YWluZXJTdWJz Y3JpcHRzKHBzdGF0ZSwKKwkJCQkJCQkJCQkgcmVzdWx0LAorCQkJCQkJCQkJCSBleHByVHlwZShy ZXN1bHQpLAorCQkJCQkJCQkJCSBleHByVHlwbW9kKHJlc3VsdCksCisJCQkJCQkJCQkJICZzdWJz Y3JpcHRzLAorCQkJCQkJCQkJCSBmYWxzZSwKKwkJCQkJCQkJCQkgdHJ1ZSk7CisKKwkJaWYgKCFu ZXdyZXN1bHQpCiAJCXsKLQkJCU5vZGUJICAgKm5ld3Jlc3VsdDsKKwkJCS8qCisJCQkgKiBnZW5l cmljIHN1YnNjcmlwdGluZyBmYWlsZWQ7IGZhbGxpbmcgYmFjayB0byBmaWVsZCBzZWxlY3Rpb24K KwkJCSAqIGZvciBhIGNvbXBvc2l0ZSB0eXBlLgorCQkJICovCisJCQlOb2RlCSAgICpuOworCisJ CQlBc3NlcnQoc3Vic2NyaXB0cyk7CiAKLQkJCUFzc2VydChJc0EobiwgU3RyaW5nKSk7CisJCQlu ID0gbGluaXRpYWwoc3Vic2NyaXB0cyk7CiAKLQkJCS8qIHByb2Nlc3Mgc3Vic2NyaXB0cyBiZWZv cmUgdGhpcyBmaWVsZCBzZWxlY3Rpb24gKi8KLQkJCXdoaWxlIChzdWJzY3JpcHRzKQotCQkJCXJl c3VsdCA9IChOb2RlICopIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMocHN0YXRlLAotCQkJ CQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCQkJICAgZXhwclR5cGUocmVzdWx0 KSwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2QocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkJ CSAgICZzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCQkJICAgZmFsc2UpOworCQkJaWYgKCFJc0Eo biwgU3RyaW5nKSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3Qgc3Vic2NyaXB0IHR5cGUg JXMgYmVjYXVzZSBpdCBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGluZyIsCisJCQkJCQkJCWZv cm1hdF90eXBlX2JlKGV4cHJUeXBlKHJlc3VsdCkpKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCBleHByTG9jYXRpb24ocmVzdWx0KSkpKTsKIAorCQkJLyogdHJ5IHRvIGZpbmQg ZnVuY3Rpb24gZm9yIGZpZWxkIHNlbGVjdGlvbiAqLwogCQkJbmV3cmVzdWx0ID0gUGFyc2VGdW5j T3JDb2x1bW4ocHN0YXRlLAogCQkJCQkJCQkJCSAgbGlzdF9tYWtlMShuKSwKIAkJCQkJCQkJCQkg IGxpc3RfbWFrZTEocmVzdWx0KSwKQEAgLTQ4MCwxOSArNTAxLDE2IEBAIHRyYW5zZm9ybUluZGly ZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJCQkJCQkJ CSAgTlVMTCwKIAkJCQkJCQkJCQkgIGZhbHNlLAogCQkJCQkJCQkJCSAgbG9jYXRpb24pOwotCQkJ aWYgKG5ld3Jlc3VsdCA9PSBOVUxMKQorCisJCQlpZiAoIW5ld3Jlc3VsdCkKIAkJCQl1bmtub3du X2F0dHJpYnV0ZShwc3RhdGUsIHJlc3VsdCwgc3RyVmFsKG4pLCBsb2NhdGlvbik7Ci0JCQlyZXN1 bHQgPSBuZXdyZXN1bHQ7CisKKwkJCS8qIGNvbnN1bWUgZmllbGQgc2VsZWN0ICovCisJCQlzdWJz Y3JpcHRzID0gbGlzdF9kZWxldGVfZmlyc3Qoc3Vic2NyaXB0cyk7CiAJCX0KKworCQlyZXN1bHQg PSBuZXdyZXN1bHQ7CiAJfQotCS8qIHByb2Nlc3MgdHJhaWxpbmcgc3Vic2NyaXB0cywgaWYgYW55 ICovCi0Jd2hpbGUgKHN1YnNjcmlwdHMpCi0JCXJlc3VsdCA9IChOb2RlICopIHRyYW5zZm9ybUNv bnRhaW5lclN1YnNjcmlwdHMocHN0YXRlLAotCQkJCQkJCQkJCQkJCSAgIHJlc3VsdCwKLQkJCQkJ CQkJCQkJCQkgICBleHByVHlwZShyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2Qo cmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkgICAmc3Vic2NyaXB0cywKLQkJCQkJCQkJCQkJCQkgICBm YWxzZSk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX25vZGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKaW5kZXgg ZjA1YmFhNTBhMTUuLmQ3YjIzNjg4YjliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2Vfbm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKQEAgLTIz OCw2ICsyMzgsOCBAQCB0cmFuc2Zvcm1Db250YWluZXJUeXBlKE9pZCAqY29udGFpbmVyVHlwZSwg aW50MzIgKmNvbnRhaW5lclR5cG1vZCkKICAqIGNvbnRhaW5lclR5cE1vZAl0eXBtb2QgZm9yIHRo ZSBjb250YWluZXIKICAqIGluZGlyZWN0aW9uCQlVbnRyYW5zZm9ybWVkIGxpc3Qgb2Ygc3Vic2Ny aXB0cyAobXVzdCBub3QgYmUgTklMKQogICogaXNBc3NpZ25tZW50CQlUcnVlIGlmIHRoaXMgd2ls bCBiZWNvbWUgYSBjb250YWluZXIgYXNzaWdubWVudC4KKyAqIG5vRXJyb3IJCQlUcnVlIGZvciBy ZXR1cm4gTlVMTCB3aXRoIG5vIGVycm9yLCBpZiB0aGUgY29udGFpbmVyIHR5cGUKKyAqIAkJCQkJ aXMgbm90IHN1YnNjcmlwdGFibGUuCiAgKi8KIFN1YnNjcmlwdGluZ1JlZiAqCiB0cmFuc2Zvcm1D b250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTI0NSwxMyArMjQ3LDEz IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCSBPaWQgY29udGFpbmVyVHlwZSwKIAkJCQkJCQkgaW50MzIgY29udGFpbmVyVHlwTW9kLAog CQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCi0JCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KQor CQkJCQkJCSBib29sIGlzQXNzaWdubWVudCwKKwkJCQkJCQkgYm9vbCBub0Vycm9yKQogewogCVN1 YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwogCWNvbnN0IFN1YnNjcmlwdFJvdXRpbmVzICpzYnNyb3V0 aW5lczsKIAlPaWQJCQllbGVtZW50VHlwZTsKLQlib29sCQlpc1NsaWNlID0gZmFsc2U7Ci0JTGlz dENlbGwgICAqaWR4OworCWludAkJCWluZGlyZWN0aW9uX2xlbmd0aCA9IGxpc3RfbGVuZ3RoKCpp bmRpcmVjdGlvbik7CiAKIAkvKgogCSAqIERldGVybWluZSB0aGUgYWN0dWFsIGNvbnRhaW5lciB0 eXBlLCBzbWFzaGluZyBhbnkgZG9tYWluLiAgSW4gdGhlCkBAIC0yNjcsMjggKzI2OSwxNSBAQCB0 cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKi8KIAlz YnNyb3V0aW5lcyA9IGdldFN1YnNjcmlwdGluZ1JvdXRpbmVzKGNvbnRhaW5lclR5cGUsICZlbGVt ZW50VHlwZSk7CiAJaWYgKCFzYnNyb3V0aW5lcykKKwl7CisJCWlmIChub0Vycm9yKQorCQkJcmV0 dXJuIE5VTEw7CisKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFU WVBFX01JU01BVENIKSwKIAkJCQkgZXJybXNnKCJjYW5ub3Qgc3Vic2NyaXB0IHR5cGUgJXMgYmVj YXVzZSBpdCBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGluZyIsCiAJCQkJCQlmb3JtYXRfdHlw ZV9iZShjb250YWluZXJUeXBlKSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4 cHJMb2NhdGlvbihjb250YWluZXJCYXNlKSkpKTsKLQotCS8qCi0JICogRGV0ZWN0IHdoZXRoZXIg YW55IG9mIHRoZSBpbmRpcmVjdGlvbiBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lmaWVycy4KLQkgKgot CSAqIEEgbGlzdCBjb250YWluaW5nIG9ubHkgc2ltcGxlIHN1YnNjcmlwdHMgcmVmZXJzIHRvIGEg c2luZ2xlIGNvbnRhaW5lcgotCSAqIGVsZW1lbnQuICBJZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBz bGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRoZW4KLQkgKiB0aGUgc3Vic2NyaXB0IGV4 cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ugb3BlcmF0aW9uLgotCSAqLwotCWZvcmVh Y2goaWR4LCAqaW5kaXJlY3Rpb24pCi0JewotCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2Rl KEFfSW5kaWNlcywgaWR4KTsKLQotCQlpZiAoYWktPmlzX3NsaWNlKQotCQl7Ci0JCQlpc1NsaWNl ID0gdHJ1ZTsKLQkJCWJyZWFrOwotCQl9CiAJfQogCiAJLyoKQEAgLTMxMCw3ICsyOTksMzMgQEAg dHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJICogZGV0 ZXJtaW5lIHRoZSBzdWJzY3JpcHRpbmcgcmVzdWx0IHR5cGUuCiAJICovCiAJc2Jzcm91dGluZXMt PnRyYW5zZm9ybShzYnNyZWYsIGluZGlyZWN0aW9uLCBwc3RhdGUsCi0JCQkJCQkgICBpc1NsaWNl LCBpc0Fzc2lnbm1lbnQpOworCQkJCQkJICAgaXNBc3NpZ25tZW50KTsKKworCS8qCisJICogRXJy b3Igb3V0LCBpZiBkYXRhdHlwZSBmYWlsZWQgdG8gY29uc3VtZSBhbnkgaW5kaXJlY3Rpb24gZWxl bWVudHMuCisJICovCisJaWYgKGxpc3RfbGVuZ3RoKCppbmRpcmVjdGlvbikgPT0gaW5kaXJlY3Rp b25fbGVuZ3RoKQorCXsKKwkJTm9kZQkgICAqaW5kID0gbGluaXRpYWwoKmluZGlyZWN0aW9uKTsK KworCQlpZiAobm9FcnJvcikKKwkJCXJldHVybiBOVUxMOworCisJCWlmIChJc0EoaW5kLCBTdHJp bmcpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9N SVNNQVRDSCksCisJCQkJCSBlcnJtc2coInR5cGUgJXMgZG9lcyBub3Qgc3VwcG9ydCBkb3Qgbm90 YXRpb24iLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwKKwkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihjb250YWluZXJCYXNlKSkpKTsK KwkJZWxzZSBpZiAoSXNBKGluZCwgQV9JbmRpY2VzKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ0eXBl ICVzIGRvZXMgbm90IHN1cHBvcnQgYXJyYXkgc3Vic2NyaXB0aW5nIiwKKwkJCQkJCQlmb3JtYXRf dHlwZV9iZShjb250YWluZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UKKwkJCWVsb2coRVJST1Is ICJpbnZhbGlkIGluZGlyZWN0aW9uIG9wZXJhdGlvbjogJWQiLCBub2RlVGFnKGluZCkpOworCX0K IAogCS8qCiAJICogVmVyaWZ5IHdlIGdvdCBhIHZhbGlkIHR5cGUgKHRoaXMgZGVmZW5kcywgZm9y IGV4YW1wbGUsIGFnYWluc3Qgc29tZW9uZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4 IGEwOTc3MzYyMjlhLi5iODk3MzZmZjFlYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpA QCAtOTM2LDcgKzkzNiw4IEBAIHRyYW5zZm9ybUFzc2lnbm1lbnRTdWJzY3JpcHRzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJICBjb250 YWluZXJUeXBNb2QsCiAJCQkJCQkJCQkJICAmc3Vic2NyaXB0cywKLQkJCQkJCQkJCQkgIHRydWUp OworCQkJCQkJCQkJCSAgdHJ1ZSwKKwkJCQkJCQkJCQkgIGZhbHNlKTsKIAogCXR5cGVOZWVkZWQg PSBzYnNyZWYtPnJlZnJlc3R5cGU7CiAJdHlwbW9kTmVlZGVkID0gc2JzcmVmLT5yZWZ0eXBtb2Q7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKaW5kZXggMjM0YzJjMjc4YzEuLjM3OGI2YmYxNmNi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCkBAIC01NiwxMiArNTYsMzggQEAgc3RhdGlj IHZvaWQKIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYs CiAJCQkJCQkgIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCSAgUGFyc2VTdGF0ZSAqcHN0YXRl LAotCQkJCQkJICBib29sIGlzU2xpY2UsCiAJCQkJCQkgIGJvb2wgaXNBc3NpZ25tZW50KQogewog CUxpc3QJICAgKnVwcGVySW5kZXhwciA9IE5JTDsKIAlMaXN0CSAgICpsb3dlckluZGV4cHIgPSBO SUw7CiAJTGlzdENlbGwgICAqaWR4OworCWludAkJCW5kaW07CisJYm9vbAkJaXNTbGljZSA9IGZh bHNlOworCisJLyoKKwkgKiBEZXRlY3Qgd2hldGhlciBhbnkgb2YgdGhlIGluZGlyZWN0aW9uIGl0 ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzLgorCSAqCisJICogQSBsaXN0IGNvbnRhaW5pbmcgb25s eSBzaW1wbGUgc3Vic2NyaXB0cyByZWZlcnMgdG8gYSBzaW5nbGUgY29udGFpbmVyCisJICogZWxl bWVudC4gIElmIGFueSBvZiB0aGUgaXRlbXMgYXJlIHNsaWNlIHNwZWNpZmllcnMgKGxvd2VyOnVw cGVyKSwgdGhlbgorCSAqIHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbiBtZWFucyBhIGNvbnRhaW5l ciBzbGljZSBvcGVyYXRpb24uCisJICovCisJZm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKKwl7 CisJCU5vZGUJICAgKmFpID0gbGZpcnN0KGlkeCk7CisKKwkJLyoKKwkJICogV2Ugc2hvdWxkIG5v dCBpbnNwZWN0IHNsaWNlIHNwZWNpZmllcnMgYmV5b25kIGFuIGluZGlyZWN0aW9uIG5vZGUKKwkJ ICogdHlwZSB0aGF0IHdlIGRvbid0IHN1cHBvcnQuCisJCSAqLworCQlpZiAoIUlzQShhaSwgQV9J bmRpY2VzKSkKKwkJCWJyZWFrOworCisJCWlmIChjYXN0Tm9kZShBX0luZGljZXMsIGFpKS0+aXNf c2xpY2UpCisJCXsKKwkJCWlzU2xpY2UgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CiAKIAkv KgogCSAqIFRyYW5zZm9ybSB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb25zLCBhbmQgc2VwYXJhdGUg dXBwZXIgYW5kIGxvd2VyCkBAIC03Myw5ICs5OSwxNCBAQCBhcnJheV9zdWJzY3JpcHRfdHJhbnNm b3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJl Y3Rpb24pCiAJewotCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4 KTsKKwkJQV9JbmRpY2VzICAqYWk7CiAJCU5vZGUJICAgKnN1YmV4cHI7CiAKKwkJaWYgKCFJc0Eo bGZpcnN0KGlkeCksIEFfSW5kaWNlcykpCisJCQlicmVhazsKKworCQlhaSA9IGxmaXJzdF9ub2Rl KEFfSW5kaWNlcywgaWR4KTsKKwogCQlpZiAoaXNTbGljZSkKIAkJewogCQkJaWYgKGFpLT5saWR4 KQpAQCAtMTQ1LDE0ICsxNzYsMTUgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiwKIAlzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciA9IGxvd2VySW5kZXhw cjsKIAogCS8qIFZlcmlmeSBzdWJzY3JpcHQgbGlzdCBsZW5ndGhzIGFyZSB3aXRoaW4gaW1wbGVt ZW50YXRpb24gbGltaXQgKi8KLQlpZiAobGlzdF9sZW5ndGgodXBwZXJJbmRleHByKSA+IE1BWERJ TSkKKwluZGltID0gbGlzdF9sZW5ndGgodXBwZXJJbmRleHByKTsKKwlpZiAobmRpbSA+IE1BWERJ TSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1BST0dSQU1fTElNSVRf RVhDRUVERUQpLAogCQkJCSBlcnJtc2coIm51bWJlciBvZiBhcnJheSBkaW1lbnNpb25zICglZCkg ZXhjZWVkcyB0aGUgbWF4aW11bSBhbGxvd2VkICglZCkiLAogCQkJCQkJbGlzdF9sZW5ndGgodXBw ZXJJbmRleHByKSwgTUFYRElNKSkpOwogCS8qIFdlIG5lZWQgbm90IGNoZWNrIGxvd2VySW5kZXhw ciBzZXBhcmF0ZWx5ICovCiAKLQkqaW5kaXJlY3Rpb24gPSBOSUw7CisJKmluZGlyZWN0aW9uID0g bGlzdF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIG5kaW0pOwogCiAJLyoKIAkgKiBEZXRl cm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uLiAgSXQn cyB0aGUgc2FtZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCmluZGV4IDhhZDZhYTFhZDRmLi5l YzhlODJkYzYyOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwpAQCAtNDMsNyArNDMsNiBA QCBzdGF0aWMgdm9pZAoganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYg KnNic3JlZiwKIAkJCQkJCSAgTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJICBQYXJzZVN0YXRl ICpwc3RhdGUsCi0JCQkJCQkgIGJvb2wgaXNTbGljZSwKIAkJCQkJCSAgYm9vbCBpc0Fzc2lnbm1l bnQpCiB7CiAJTGlzdAkgICAqdXBwZXJJbmRleHByID0gTklMOwpAQCAtNTUsMTAgKzU0LDE1IEBA IGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICov CiAJZm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7Ci0JCUFfSW5kaWNlcyAgKmFpID0gbGZp cnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCQlBX0luZGljZXMgICphaTsKIAkJTm9kZQkgICAq c3ViRXhwcjsKIAotCQlpZiAoaXNTbGljZSkKKwkJaWYgKCFJc0EobGZpcnN0KGlkeCksIEFfSW5k aWNlcykpCisJCQlicmVhazsKKworCQlhaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsK KworCQlpZiAoYWktPmlzX3NsaWNlKQogCQl7CiAJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHgg PyBhaS0+dWlkeCA6IGFpLT5saWR4OwogCkBAIC0xNDIsNyArMTQ2LDcgQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCSAqIFNsaWNlIHdpdGgg b21pdHRlZCB1cHBlciBib3VuZC4gU2hvdWxkIG5vdCBoYXBwZW4gYXMgd2UgYWxyZWFkeQogCQkJ ICogZXJyb3JlZCBvdXQgb24gc2xpY2UgZWFybGllciwgYnV0IGhhbmRsZSB0aGlzIGp1c3QgaW4g Y2FzZS4KIAkJCSAqLwotCQkJQXNzZXJ0KGlzU2xpY2UgJiYgYWktPmlzX3NsaWNlKTsKKwkJCUFz c2VydChhaS0+aXNfc2xpY2UpOwogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJS Q09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJCSBlcnJtc2coImpzb25iIHN1YnNjcmlwdCBk b2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLApAQCAtMTYwLDcgKzE2NCw5IEBAIGpzb25iX3N1YnNj cmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZyZXN0 eXBlID0gSlNPTkJPSUQ7CiAJc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKIAotCSppbmRpcmVjdGlv biA9IE5JTDsKKwkvKiBSZW1vdmUgcHJvY2Vzc2VkIGVsZW1lbnRzICovCisJaWYgKHVwcGVySW5k ZXhwcikKKwkJKmluZGlyZWN0aW9uID0gbGlzdF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24s IGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRp bmcuaAppbmRleCBkZjk4OGE4NWZhZC4uMTRlZjQxNGExODAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3N1YnNjcmlwdGluZy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlw dGluZy5oCkBAIC02OCw3ICs2OCw3IEBAIHN0cnVjdCBTdWJzY3JpcHRFeGVjU3RlcHM7CiAgKiBz YW1lIGxlbmd0aCBhcyByZWZ1cHBlcmluZGV4cHIgZm9yIGEgc2xpY2Ugb3BlcmF0aW9uLiAgSW5z ZXJ0IE5VTExzCiAgKiAodGhhdCBpcywgYW4gZW1wdHkgcGFyc2UgdHJlZSwgbm90IGEgbnVsbCBD b25zdCBub2RlKSBmb3IgYW55IG9taXR0ZWQKICAqIHN1YnNjcmlwdHMgaW4gYSBzbGljZSBvcGVy YXRpb24uICAoT2YgY291cnNlLCBpZiB0aGUgdHJhbnNmb3JtIG1ldGhvZAotICogZG9lcyBub3Qg Y2FyZSB0byBzdXBwb3J0IHNsaWNpbmcsIGl0IGNhbiBqdXN0IHRocm93IGFuIGVycm9yIGlmIGlz U2xpY2UuKQorICogZG9lcyBub3QgY2FyZSB0byBzdXBwb3J0IHNsaWNpbmcsIGl0IGNhbiBqdXN0 IHRocm93IGFuIGVycm9yLikKICAqIFNlZSBhcnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKCkgZm9y IHNhbXBsZSBjb2RlLgogICoKICAqIFRoZSB0cmFuc2Zvcm0gbWV0aG9kIHJlY2VpdmVzIGEgcG9p bnRlciB0byBhIGxpc3Qgb2YgcmF3IGluZGlyZWN0aW9ucy4KQEAgLTEwMCw3ICsxMDAsNiBAQCBz dHJ1Y3QgU3Vic2NyaXB0RXhlY1N0ZXBzOwogdHlwZWRlZiB2b2lkICgqU3Vic2NyaXB0VHJhbnNm b3JtKSAoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkJCQkJCQlMaXN0ICoqaW5kaXJlY3Rp b24sCiAJCQkJCQkJCQlzdHJ1Y3QgUGFyc2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJCQkJYm9vbCBp c1NsaWNlLAogCQkJCQkJCQkJYm9vbCBpc0Fzc2lnbm1lbnQpOwogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmgKaW5kZXggNThhNGI5ZGYxNTcuLjVjYzNjZTU4YzMwIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmgKQEAgLTM2Miw3ICszNjIsOCBAQCBleHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFu c2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJ CQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1v ZCwKIAkJCQkJCQkJCQkJCQkgTGlzdCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCQkJCQkJCSBib29s IGlzQXNzaWdubWVudCk7CisJCQkJCQkJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50LAorCQkJCQkJ CQkJCQkJCSBib29sIG5vRXJyb3IpOwogZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9Db25zdCAqYWNvbnN0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX05P REVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hcnJheXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hcnJheXMub3V0CmluZGV4IGI4MTU0NzNmNDE0 Li43OGRkOWU3MWJmMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hcnJh eXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dApAQCAtMTc4 MiwxNyArMTc4MiwxNyBAQCBTRUxFQ1QgbWF4KGYxKSwgbWluKGYxKSwgbWF4KGYyKSwgbWluKGYy KSwgbWF4KGYzKSwgbWluKGYzKSBGUk9NIGFycmFnZ3Rlc3Q7CiAoMSByb3cpCiAKIC0tIEEgZmV3 IHNpbXBsZSB0ZXN0cyBmb3IgYXJyYXlzIG9mIGNvbXBvc2l0ZSB0eXBlcwotY3JlYXRlIHR5cGUg Y29tcHR5cGUgYXMgKGYxIGludCwgZjIgdGV4dCk7CitjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAo ZjEgaW50LCBmMiB0ZXh0LCBmMyBpbnRbXSk7CiBjcmVhdGUgdGFibGUgY29tcHRhYmxlIChjMSBj b21wdHlwZSwgYzIgY29tcHR5cGVbXSk7CiAtLSBYWFggd291bGQgbGlrZSB0byBub3QgaGF2ZSB0 byBzcGVjaWZ5IHJvdygpIGNvbnN0cnVjdCB0eXBlcyBoZXJlIC4uLgogaW5zZXJ0IGludG8gY29t cHRhYmxlCi0gIHZhbHVlcyAocm93KDEsJ2ZvbycpLCBhcnJheVtyb3coMiwnYmFyJyk6OmNvbXB0 eXBlLCByb3coMywnYmF6Jyk6OmNvbXB0eXBlXSk7CisgIHZhbHVlcyAocm93KDEsJ2ZvbycsYXJy YXlbMTAsMjBdKSwgYXJyYXlbcm93KDIsJ2JhcicsYXJyYXlbMzAsNDBdKTo6Y29tcHR5cGUsIHJv dygzLCdiYXonLGFycmF5WzUwLDYwXSk6OmNvbXB0eXBlXSk7CiAtLSBjaGVjayB0aGF0IGltcGxp Y2l0bHkgbmFtZWQgYXJyYXkgdHlwZSBfY29tcHR5cGUgaXNuJ3QgYSBwcm9ibGVtCiBjcmVhdGUg dHlwZSBfY29tcHR5cGUgYXMgZW51bSgnZm9vZXknKTsKIHNlbGVjdCAqIGZyb20gY29tcHRhYmxl OwotICAgYzEgICAgfCAgICAgICAgICBjMiAgICAgICAgICAgCi0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSAoMSxmb28pIHwgeyIoMixiYXIpIiwiKDMsYmF6KSJ9CisgICAgICAg IGMxICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBjMiAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKDEsZm9vLCJ7MTAsMjB9IikgfCB7IigyLGJhcixcInszMCw0MH1c IikiLCIoMyxiYXosXCJ7NTAsNjB9XCIpIn0KICgxIHJvdykKIAogc2VsZWN0IGMyWzJdLmYyIGZy b20gY29tcHRhYmxlOwpAQCAtMTgwMSw2ICsxODAxLDIyIEBAIHNlbGVjdCBjMlsyXS5mMiBmcm9t IGNvbXB0YWJsZTsKICBiYXoKICgxIHJvdykKIAorc2VsZWN0IGMyWzJdLmYzIGZyb20gY29tcHRh YmxlOworICAgZjMgICAgCistLS0tLS0tLS0KKyB7NTAsNjB9CisoMSByb3cpCisKK3NlbGVjdCBj MlsyXS5mM1sxOjJdIGZyb20gY29tcHRhYmxlOworICAgZjMgICAgCistLS0tLS0tLS0KKyB7NTAs NjB9CisoMSByb3cpCisKK3NlbGVjdCBjMlsxOjJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7CitF UlJPUjogIGNvbHVtbiBub3RhdGlvbiAuZjMgYXBwbGllZCB0byB0eXBlIGNvbXB0eXBlW10sIHdo aWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitMSU5FIDE6IHNlbGVjdCBjMlsxOjJdLmYzWzE6 Ml0gZnJvbSBjb21wdGFibGU7CisgICAgICAgICAgICAgICBeCiBkcm9wIHR5cGUgX2NvbXB0eXBl OwogZHJvcCB0YWJsZSBjb21wdGFibGU7CiBkcm9wIHR5cGUgY29tcHR5cGU7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9hcnJheXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv YXJyYXlzLnNxbAppbmRleCA0N2Q2MmMxZDM4ZC4uNDUwMzg5ODMxYTAgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2FycmF5cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv YXJyYXlzLnNxbApAQCAtNTU1LDE5ICs1NTUsMjIgQEAgU0VMRUNUIG1heChmMSksIG1pbihmMSks IG1heChmMiksIG1pbihmMiksIG1heChmMyksIG1pbihmMykgRlJPTSBhcnJhZ2d0ZXN0OwogCiAt LSBBIGZldyBzaW1wbGUgdGVzdHMgZm9yIGFycmF5cyBvZiBjb21wb3NpdGUgdHlwZXMKIAotY3Jl YXRlIHR5cGUgY29tcHR5cGUgYXMgKGYxIGludCwgZjIgdGV4dCk7CitjcmVhdGUgdHlwZSBjb21w dHlwZSBhcyAoZjEgaW50LCBmMiB0ZXh0LCBmMyBpbnRbXSk7CiAKIGNyZWF0ZSB0YWJsZSBjb21w dGFibGUgKGMxIGNvbXB0eXBlLCBjMiBjb21wdHlwZVtdKTsKIAogLS0gWFhYIHdvdWxkIGxpa2Ug dG8gbm90IGhhdmUgdG8gc3BlY2lmeSByb3coKSBjb25zdHJ1Y3QgdHlwZXMgaGVyZSAuLi4KIGlu c2VydCBpbnRvIGNvbXB0YWJsZQotICB2YWx1ZXMgKHJvdygxLCdmb28nKSwgYXJyYXlbcm93KDIs J2JhcicpOjpjb21wdHlwZSwgcm93KDMsJ2JheicpOjpjb21wdHlwZV0pOworICB2YWx1ZXMgKHJv dygxLCdmb28nLGFycmF5WzEwLDIwXSksIGFycmF5W3JvdygyLCdiYXInLGFycmF5WzMwLDQwXSk6 OmNvbXB0eXBlLCByb3coMywnYmF6JyxhcnJheVs1MCw2MF0pOjpjb21wdHlwZV0pOwogCiAtLSBj aGVjayB0aGF0IGltcGxpY2l0bHkgbmFtZWQgYXJyYXkgdHlwZSBfY29tcHR5cGUgaXNuJ3QgYSBw cm9ibGVtCiBjcmVhdGUgdHlwZSBfY29tcHR5cGUgYXMgZW51bSgnZm9vZXknKTsKIAogc2VsZWN0 ICogZnJvbSBjb21wdGFibGU7CiBzZWxlY3QgYzJbMl0uZjIgZnJvbSBjb21wdGFibGU7CitzZWxl Y3QgYzJbMl0uZjMgZnJvbSBjb21wdGFibGU7CitzZWxlY3QgYzJbMl0uZjNbMToyXSBmcm9tIGNv bXB0YWJsZTsKK3NlbGVjdCBjMlsxOjJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7CiAKIGRyb3Ag dHlwZSBfY29tcHR5cGU7CiBkcm9wIHRhYmxlIGNvbXB0YWJsZTsKLS0gCjIuMzkuNSAoQXBwbGUg R2l0LTE1NCkKCg== --000000000000789ac1063e5fc312--