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 1tsj98-0053Gy-Bi for pgsql-hackers@arkaria.postgresql.org; Thu, 13 Mar 2025 14:02: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 1tsj96-00EU9a-Qt for pgsql-hackers@arkaria.postgresql.org; Thu, 13 Mar 2025 14:02: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 1tsj96-00EU8U-7j for pgsql-hackers@lists.postgresql.org; Thu, 13 Mar 2025 14:02:48 +0000 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tsj92-002eyh-0g for pgsql-hackers@postgresql.org; Thu, 13 Mar 2025 14:02:47 +0000 Received: by mail-pl1-x641.google.com with SMTP id d9443c01a7336-2243803b776so27461705ad.0 for ; Thu, 13 Mar 2025 07:02:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741874563; x=1742479363; 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=XvaS6bLPhrMhN4SO1ri9wpBBIY1GolVg2K+n043EneU=; b=TMmHGAwxhJjqBXL+GHK2sHwCZvarBwnGsauY3FKjY/h7EkxZ3i91kZn611OqwEo5uc nESI14lywT+0tmNMNV9WwOw7KX1Gp9RSaJjyEsOJUfOa3Fr23lso2ivNTbjztU/5ltMT khP5Hvho7cUogd3az94KLsoy8haAttxEPXj9oP+MRJ6yLLoYs3LppbyqohO7Io5n00+a gIxiJ0atu5as8pBvQbzGgjb0eEa4UfYwYxRfapyaOKH+MH96nyao6DvKBjfrmUiLBNsm /4rLm4//2CCxNcIQCejgtsBLpzgYVPBrQaec6Cubi4HBZPkvjOVJY8mAesn+fQX08xTo Db9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741874563; x=1742479363; 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=XvaS6bLPhrMhN4SO1ri9wpBBIY1GolVg2K+n043EneU=; b=SmhNWJBrrcc9+zKtLan3kyhXZAn5TskY/Mz0WVhix891Nwbi8ztk5CaXbC80REta7U VfeKjxbnIEP8l+rYCIlA+Xtcf1J/hR2yRkMkgouksI6L1jQElFtdGiC102zEZDNBbWxu L2tJL+Tf+K7pTlb+bHzlgDXU4czqIGRGHQ+5C5FgWHTlpyuIp1o/rxHeJMrLwV2epkI4 cdNE4zW2n1J9Aul9YvdeMyMQYrcXQgjt5OhqearZrP8NtwI9yc0BNnBBjwDFISgAJzFd F09GO8gi41qMx8BoqXEb8F29Zwm6NtHHDrUpwcsbQiGHZJ3hyDcsuAwQinWIUqvykUub 1xxg== X-Forwarded-Encrypted: i=1; AJvYcCVDLdUQxdhKlXOGPzK+9wOSpOjQGY4bvFwlc9Jr45A2Ib0FlzuRxl3dM1QxSTfkALopYANmldYNKQ9IARzh@postgresql.org X-Gm-Message-State: AOJu0YzEhQy12pU+KfxEjfQ2itV4rLITfcKqmmRusS2fYUD9zWb8CRVs EbdODSeTLeU/n2lwJDqmoTHxU9POvUx82iwsCqyy6weJWEc9NfsfhoXYBcSV0bPX1+u6gB/r6hz Fc2zXejjEOuzDY6oSbFkyAUEz9PE= X-Gm-Gg: ASbGnctCZ1R7Bi14V9QyAoALNw1eWt+unLsZLcOgpQ1sTyuK2XYjLmPOa66bf3f4W4j suo/X6JyTuHsGNNpzy+z1amJfVoAX00STEGRfv8JpfgFeKnpm9hI34cTf7wCW1X+WUwMZi9SiKO ASIjN2RJRqkn4p+d1WhptGjxmim6jNnhM85+w= X-Google-Smtp-Source: AGHT+IEm1dYKMK4i9T+dJ3kVgRTAVVyqXkDFgm0S8Qc00SWomcPoFm4aOvZdW3STZNlcie7EV1ZgaKYQBzjzbOqcADY= X-Received: by 2002:a05:6a00:b51:b0:736:6043:69f9 with SMTP id d2e1a72fcca58-736aaadf584mr36699659b3a.19.1741874562972; Thu, 13 Mar 2025 07:02:42 -0700 (PDT) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> In-Reply-To: From: Alexandra Wang Date: Thu, 13 Mar 2025 09:02:06 -0500 X-Gm-Features: AQ5f1JosYdebrOO1Dx6GFfAtvLoTp-Z53dpDydW8tPo0D8yarnYQW21pFdtleTs Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Mark Dilger Cc: Matheus Alcantara , Peter Eisentraut , Andrew Dunstan , Nikita Glukhov , PostgreSQL Hackers , "David E. Wheeler" , jian he Content-Type: multipart/mixed; boundary="000000000000921051063039c638" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000921051063039c638 Content-Type: multipart/alternative; boundary="000000000000921050063039c636" --000000000000921050063039c636 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Mark, Thank you so much for reviewing! I have attached the new patches. On Tue, Mar 4, 2025 at 8:05=E2=80=AFAM Mark Dilger wrote: > > On Mon, Mar 3, 2025 at 12:23=E2=80=AFPM Alexandra Wang < > alexandra.wang.oss@gmail.com> wrote: > >> I've attached v10, which addresses your feedback. >> >> > Hi Alex! Thanks for the patches. > > In src/test/regress/sql/jsonb.sql, the section marked with "-- slices are > not supported" should be relabeled. That comment predates these patches, > and is now misleading. > > A bit further down in expected/jsonb.out, there is an expected failure, > but no SQL comment to indicate that it is expected: > > +SELECT (t.jb).* FROM test_jsonb_dot_notation; > +ERROR: missing FROM-clause entry for table "t" > +LINE 1: SELECT (t.jb).* FROM test_jsonb_dot_notation; > > Perhaps a "-- fails" comment would clarify? Then, further down, > Fixed. > > +SELECT (jb).a.**.x FROM test_jsonb_dot_notation; -- not supported > +ERROR: syntax error at or near "**" > +LINE 1: SELECT (jb).a.**.x FROM test_jsonb_dot_notation; > > I wonder if it would be better to have the parser handle this case and > raise a ERRCODE_FEATURE_NOT_SUPPORTED instead? > In 0008 I added a new token named "DOUBLE_ASTERISK" to the lexers to represent "**". Hope this helps! > I got curious about the support for this new dot notation in the plpgsql > parser and tried: > > +DO $$ > +DECLARE > + a jsonb :=3D '[1,2,3,4,5,6,7]'::jsonb; > +BEGIN > + WHILE a IS NOT NULL > + LOOP > + RAISE NOTICE '%', a; > + a :=3D a[2:]; > + END LOOP; > +END > +$$ LANGUAGE plpgsql; > +NOTICE: [1, 2, 3, 4, 5, 6, 7] > +NOTICE: [3, 4, 5, 6, 7] > +NOTICE: [5, 6, 7] > +NOTICE: 7 > > which looks good! But then I tried: > > +DO $$ > +DECLARE > + a jsonb :=3D '{"": 6, "NU": [{"": [[3]]}, [6], [2], "bCi"], "aaf": [-6= , > -8]}'::jsonb; > +BEGIN > + WHILE a IS NOT NULL > + LOOP > + RAISE NOTICE '%', a; > + a :=3D COALESCE(a."NU", a[2]); > + END LOOP; > +END > +$$ LANGUAGE plpgsql; > +NOTICE: {"": 6, "NU": [{"": [[3]]}, [6], [2], "bCi"], "aaf": [-6, -8]} > +ERROR: missing FROM-clause entry for table "a" > +LINE 1: a :=3D COALESCE(a."NU", a[2]) > + ^ > +QUERY: a :=3D COALESCE(a."NU", a[2]) > +CONTEXT: PL/pgSQL function inline_code_block line 8 at assignment > > which suggests the plpgsql parser does not recognize a."NU" as we'd > expect. Any thoughts on this? > Thanks for the tests! I added them to the "jsonb" regress test. > I notice there are no changes in src/interfaces/ecpg/test, which concerns > me. The sqljson.pgc and sqljson_jsontable.pgc files are already testing > json handling in ecpg; perhaps just extend those a bit? > Thanks for bringing this up! I have added new tests in src/interfaces/ecpg/test/sql/sqljson.pgc. Best, Alex --000000000000921050063039c636 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Mark,

Th= ank you so much for reviewing! I have attached the new patches.

On Tue, Mar = 4, 2025 at 8:05=E2=80=AFAM Mark Dilger <mark.dilger@enterprisedb.com> wrot= e:

On= Mon, Mar 3, 2025 at 12:23=E2=80=AFPM Alexandra Wang <alexandra.wang.oss@gmail.co= m> wrote:
=C2=A0I've attached v10, which=C2=A0addresses yo= ur feedback.


Hi Al= ex!=C2=A0 Thanks for the patches.

In src/test/regress/sq= l/jsonb.sql, the section marked with "-- slices are not supported"= ; should be relabeled.=C2=A0 That comment predates these patches, and is no= w misleading.

A bit further down in expected/jsonb= .out, there is an expected failure, but no SQL comment to indicate that it = is expected:

+SELECT (t.jb).* FROM test_jsonb_dot_= notation;
+ERROR: =C2=A0missing FROM-clause entry for table "t"= ;
+LINE 1: SELECT (t.jb).* FROM test_jsonb_dot_notation;
<= br>
Perhaps a "-- fails" comment would clarify?=C2=A0 T= hen, further down,

= Fixed.
=C2=A0
=C2=A0
+SELECT (jb).a.**.x FROM tes= t_jsonb_dot_notation; -- not supported
+ERROR: =C2=A0syntax error at or = near "**"
+LINE 1: SELECT (jb).a.**.x FROM test_jsonb_dot_nota= tion;

I wonder if it would be better to have t= he parser handle this case and raise a=C2=A0ERRCODE_FEATURE_NOT_SUPPORTED i= nstead?

In 0008 I a= dded a new token named "DOUBLE_ASTERISK" to the lexers to
represent "**". Hope this helps!=C2=A0
=C2=A0
I got curious about the support for this new dot notation = in the plpgsql parser and tried:

+DO $$
+DECLAR= E
+ =C2=A0a jsonb :=3D '[1,2,3,4,5,6,7]'::jsonb;
+BEGIN
+ = =C2=A0WHILE a IS NOT NULL
+ =C2=A0LOOP
+ =C2=A0 =C2=A0RAISE NOTICE &#= 39;%', a;
+ =C2=A0 =C2=A0a :=3D a[2:];
+ =C2=A0END LOOP;
+END<= br>+$$ LANGUAGE plpgsql;
+NOTICE: =C2=A0[1, 2, 3, 4, 5, 6, 7]
+NOTICE= : =C2=A0[3, 4, 5, 6, 7]
+NOTICE: =C2=A0[5, 6, 7]
+NOTICE: =C2=A07
=

which looks good!=C2=A0 But then I tried:

+DO $$
+DECLARE
+ =C2=A0a jsonb :=3D '{"&q= uot;: 6, "NU": [{"": [[3]]}, [6], [2], "bCi"]= , "aaf": [-6, -8]}'::jsonb;
+BEGIN
+ =C2=A0WHILE a IS N= OT NULL
+ =C2=A0LOOP
+ =C2=A0 =C2=A0RAISE NOTICE '%', a;
+= =C2=A0 =C2=A0a :=3D COALESCE(a."NU", a[2]);
+ =C2=A0END LOOP;=
+END
+$$ LANGUAGE plpgsql;
+NOTICE: =C2=A0{"": 6, "= ;NU": [{"": [[3]]}, [6], [2], "bCi"], "aaf&qu= ot;: [-6, -8]}
+ERROR: =C2=A0missing FROM-clause entry for table "a= "
+LINE 1: a :=3D COALESCE(a."NU", a[2])
+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^
+QUE= RY: =C2=A0a :=3D COALESCE(a."NU", a[2])
+CONTEXT: =C2=A0PL/pgS= QL function inline_code_block line 8 at assignment

=
which suggests the plpgsql parser does not recognize a."NU" = as we'd expect.=C2=A0 Any thoughts on this?

Thanks for the tests! I added them to=C2=A0the "= ;jsonb" regress test.
=C2=A0
<= div>I notice there are no changes in=C2=A0src/interfaces/ecpg/test, which c= oncerns me.=C2=A0 The sqljson.pgc and sqljson_jsontable.pgc files are alrea= dy testing json handling in ecpg; perhaps just extend those a bit?

Thanks for bringing this up! I have added new tests in src/interfaces/ec= pg/test/sql/sqljson.pgc.


Best,
Alex<= /div>
=C2=A0
--000000000000921050063039c636-- --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Disposition: attachment; filename="v11-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w101 RnJvbSBhOWY2NGFkODM5ZDFlYTc2NTg1ODMzNzI5Mjk0ZmE0OTM2Mjk3MzA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djExIDIvOF0gQWxsb3cgR2VuZXJpYyBUeXBlIFN1YnNjcmlwdGluZyB0byBBY2NlcHQgRG90CiBO b3RhdGlvbiAoLikgYXMgSW5wdXQKClRoaXMgY2hhbmdlIGV4dGVuZHMgZ2VuZXJpYyB0eXBlIHN1 YnNjcmlwdGluZyB0byByZWNvZ25pemUgZG90Cm5vdGF0aW9uICguKSBpbiBhZGRpdGlvbiB0byBi cmFja2V0IG5vdGF0aW9uIChbXSkuIFdoaWxlIHRoaXMgZG9lcyBub3QKeWV0IHByb3ZpZGUgZnVs bCBzdXBwb3J0IGZvciBkb3Qgbm90YXRpb24sIGl0IGVuYWJsZXMgc3Vic2NyaXB0aW5nCmNvbnRh aW5lcnMgdG8gcHJvY2VzcyBpdCBpbiB0aGUgZnV0dXJlLgoKRm9yIG5vdywgY29udGFpbmVyLXNw ZWNpZmljIHRyYW5zZm9ybSBmdW5jdGlvbnMgb25seSBoYW5kbGUKc3Vic2NyaXB0aW5nIGluZGlj ZXMgYW5kIHN0b3AgcHJvY2Vzc2luZyB3aGVuIGVuY291bnRlcmluZyBkb3QKbm90YXRpb24uIEl0 IGlzIHVwIHRvIGluZGl2aWR1YWwgY29udGFpbmVycyB0byBkZWNpZGUgaG93IHRvIHRyYW5zZm9y bQpkb3Qgbm90YXRpb24gaW4gc3Vic2VxdWVudCB1cGRhdGVzLgotLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICB8IDY2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMgICB8IDQxICsrKysrKysrKysrKysrKysr LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyB8ICAzICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvYXJyYXlzdWJzLmMgfCAxMyArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyB8IDExICsrKysrLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aCAgIHwgIDMgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDMyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDJjMGY0YTUwYjIxLi44ZWE1MTE3 NjE5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NDIsOCArNDQyLDkgQEAgdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJ TGlzdENlbGwgICAqaTsKIAogCS8qCi0JICogV2UgaGF2ZSB0byBzcGxpdCBhbnkgZmllbGQtc2Vs ZWN0aW9uIG9wZXJhdGlvbnMgYXBhcnQgZnJvbQotCSAqIHN1YnNjcmlwdGluZy4gIEFkamFjZW50 IEFfSW5kaWNlcyBub2RlcyBoYXZlIHRvIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUKKwkgKiBDb21i aW5lIGZpZWxkIG5hbWVzIGFuZCBzdWJzY3JpcHRzIGludG8gYSBzaW5nbGUgaW5kaXJlY3Rpb24g bGlzdCwgYXMKKwkgKiBzb21lIHN1YnNjcmlwdGluZyBjb250YWluZXJzLCBzdWNoIGFzIGpzb25i LCBzdXBwb3J0IGZpZWxkIGFjY2VzcyB1c2luZworCSAqIGRvdCBub3RhdGlvbi4gQWRqYWNlbnQg QV9JbmRpY2VzIG5vZGVzIGhhdmUgdG8gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZQogCSAqIG11bHRp ZGltZW5zaW9uYWwgc3Vic2NyaXB0IG9wZXJhdGlvbi4KIAkgKi8KIAlmb3JlYWNoKGksIGluZC0+ aW5kaXJlY3Rpb24pCkBAIC00NjEsMTkgKzQ2Miw0MyBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJfQogCQllbHNlCiAJCXsK LQkJCU5vZGUJICAgKm5ld3Jlc3VsdDsKLQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKKwkJ CXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4pOworCQl9CisJfQorCisJd2hpbGUg KHN1YnNjcmlwdHMpCisJeworCQkvKiB0cnkgcHJvY2Vzc2luZyBjb250YWluZXIgc3Vic2NyaXB0 cyBmaXJzdCAqLworCQlOb2RlCSAgICpuZXdyZXN1bHQgPSAoTm9kZSAqKQorCQkJdHJhbnNmb3Jt Q29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCisJCQkJCQkJCQkJIHJlc3VsdCwKKwkJCQkJCQkJ CQkgZXhwclR5cGUocmVzdWx0KSwKKwkJCQkJCQkJCQkgZXhwclR5cG1vZChyZXN1bHQpLAorCQkJ CQkJCQkJCSAmc3Vic2NyaXB0cywKKwkJCQkJCQkJCQkgZmFsc2UsCisJCQkJCQkJCQkJIHRydWUp OworCisJCWlmICghbmV3cmVzdWx0KQorCQl7CisJCQkvKgorCQkJICogZ2VuZXJpYyBzdWJzY3Jp cHRpbmcgZmFpbGVkOyBmYWxsaW5nIGJhY2sgdG8gZnVuY3Rpb24gY2FsbCBvcgorCQkJICogZmll bGQgc2VsZWN0aW9uIGZvciBhIGNvbXBvc2l0ZSB0eXBlLgorCQkJICovCisJCQlOb2RlCSAgICpu OworCisJCQlBc3NlcnQoc3Vic2NyaXB0cyk7CiAKLQkJCS8qIHByb2Nlc3Mgc3Vic2NyaXB0cyBi ZWZvcmUgdGhpcyBmaWVsZCBzZWxlY3Rpb24gKi8KLQkJCXdoaWxlIChzdWJzY3JpcHRzKQotCQkJ CXJlc3VsdCA9IChOb2RlICopIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMocHN0YXRlLAot CQkJCQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCQkJICAgZXhwclR5cGUocmVz dWx0KSwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2QocmVzdWx0KSwKLQkJCQkJCQkJCQkJ CQkJCSAgICZzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCQkJICAgZmFsc2UpOworCQkJbiA9IGxp bml0aWFsKHN1YnNjcmlwdHMpOworCisJCQlpZiAoIUlzQShuLCBTdHJpbmcpKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJ CQkJCSBlcnJtc2coImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90 IHN1cHBvcnQgc3Vic2NyaXB0aW5nIiwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUo cmVzdWx0KSkpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlv bihyZXN1bHQpKSkpOwogCisJCQkvKiB0cnkgdG8gZmluZCBmdW5jdGlvbiBmb3IgZmllbGQgc2Vs ZWN0aW9uICovCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1bmNPckNvbHVtbihwc3RhdGUsCiAJCQkJ CQkJCQkJICBsaXN0X21ha2UxKG4pLAogCQkJCQkJCQkJCSAgbGlzdF9tYWtlMShyZXN1bHQpLApA QCAtNDgxLDE5ICs1MDYsMTYgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCQkJCQkJCQkJICBOVUxMLAogCQkJCQkJCQkJCSAg ZmFsc2UsCiAJCQkJCQkJCQkJICBsb2NhdGlvbik7Ci0JCQlpZiAobmV3cmVzdWx0ID09IE5VTEwp CisKKwkJCWlmICghbmV3cmVzdWx0KQogCQkJCXVua25vd25fYXR0cmlidXRlKHBzdGF0ZSwgcmVz dWx0LCBzdHJWYWwobiksIGxvY2F0aW9uKTsKLQkJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKKworCQkJ LyogY29uc3VtZSBmaWVsZCBzZWxlY3QgKi8KKwkJCXN1YnNjcmlwdHMgPSBsaXN0X2RlbGV0ZV9m aXJzdChzdWJzY3JpcHRzKTsKIAkJfQorCisJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKIAl9Ci0JLyog cHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBhbnkgKi8KLQl3aGlsZSAoc3Vic2NyaXB0 cykKLQkJcmVzdWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3Rh dGUsCi0JCQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJl c3VsdCksCi0JCQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJ CSAgICZzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCSAgIGZhbHNlKTsKIAogCXJldHVybiByZXN1 bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwppbmRleCAxOWE2YjY3OGU2Ny4uYjNlNDc2ZWIx ODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwpAQCAtMjM4LDYgKzIzOCw4IEBAIHRyYW5zZm9y bUNvbnRhaW5lclR5cGUoT2lkICpjb250YWluZXJUeXBlLCBpbnQzMiAqY29udGFpbmVyVHlwbW9k KQogICogY29udGFpbmVyVHlwTW9kCXR5cG1vZCBmb3IgdGhlIGNvbnRhaW5lcgogICogaW5kaXJl Y3Rpb24JCVVudHJhbnNmb3JtZWQgbGlzdCBvZiBzdWJzY3JpcHRzIChtdXN0IG5vdCBiZSBOSUwp CiAgKiBpc0Fzc2lnbm1lbnQJCVRydWUgaWYgdGhpcyB3aWxsIGJlY29tZSBhIGNvbnRhaW5lciBh c3NpZ25tZW50LgorICogbm9FcnJvcgkJCVRydWUgZm9yIHJldHVybiBOVUxMIHdpdGggbm8gZXJy b3IsIGlmIHRoZSBjb250YWluZXIgdHlwZQorICogCQkJCQlpcyBub3Qgc3Vic2NyaXB0YWJsZS4K ICAqLwogU3Vic2NyaXB0aW5nUmVmICoKIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFy c2VTdGF0ZSAqcHN0YXRlLApAQCAtMjQ1LDEzICsyNDcsMTUgQEAgdHJhbnNmb3JtQ29udGFpbmVy U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBl LAogCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCiAJCQkJCQkJIExpc3QgKippbmRpcmVj dGlvbiwKLQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQpCisJCQkJCQkJIGJvb2wgaXNBc3NpZ25t ZW50LAorCQkJCQkJCSBib29sIG5vRXJyb3IpCiB7CiAJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWY7 CiAJY29uc3QgU3Vic2NyaXB0Um91dGluZXMgKnNic3JvdXRpbmVzOwogCU9pZAkJCWVsZW1lbnRU eXBlOwogCWJvb2wJCWlzU2xpY2UgPSBmYWxzZTsKIAlMaXN0Q2VsbCAgICppZHg7CisJaW50CQkJ aW5kaXJlY3Rpb25fbGVuZ3RoID0gbGlzdF9sZW5ndGgoKmluZGlyZWN0aW9uKTsKIAogCS8qCiAJ ICogRGV0ZXJtaW5lIHRoZSBhY3R1YWwgY29udGFpbmVyIHR5cGUsIHNtYXNoaW5nIGFueSBkb21h aW4uICBJbiB0aGUKQEAgLTI2NywxMSArMjcxLDE2IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNj cmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqLwogCXNic3JvdXRpbmVzID0gZ2V0U3Vic2Ny aXB0aW5nUm91dGluZXMoY29udGFpbmVyVHlwZSwgJmVsZW1lbnRUeXBlKTsKIAlpZiAoIXNic3Jv dXRpbmVzKQorCXsKKwkJaWYgKG5vRXJyb3IpCisJCQlyZXR1cm4gTlVMTDsKKwogCQllcmVwb3J0 KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJCSBl cnJtc2coImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBv cnQgc3Vic2NyaXB0aW5nIiwKIAkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwK IAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGNvbnRhaW5lckJh c2UpKSkpOworCX0KIAogCS8qCiAJICogRGV0ZWN0IHdoZXRoZXIgYW55IG9mIHRoZSBpbmRpcmVj dGlvbiBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lmaWVycy4KQEAgLTI4Miw5ICsyOTEsOSBAQCB0cmFu c2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKi8KIAlmb3Jl YWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9k ZShBX0luZGljZXMsIGlkeCk7CisJCU5vZGUJICAgKmFpID0gbGZpcnN0KGlkeCk7CiAKLQkJaWYg KGFpLT5pc19zbGljZSkKKwkJaWYgKElzQShhaSwgQV9JbmRpY2VzKSAmJiBjYXN0Tm9kZShBX0lu ZGljZXMsIGFpKS0+aXNfc2xpY2UpCiAJCXsKIAkJCWlzU2xpY2UgPSB0cnVlOwogCQkJYnJlYWs7 CkBAIC0zMTIsNiArMzIxLDMyIEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCXNic3JvdXRpbmVzLT50cmFuc2Zvcm0oc2JzcmVmLCBpbmRpcmVjdGlv biwgcHN0YXRlLAogCQkJCQkJICAgaXNTbGljZSwgaXNBc3NpZ25tZW50KTsKIAorCS8qCisJICog RXJyb3Igb3V0LCBpZiBkYXRhdHlwZSBmYWlsZWQgdG8gY29uc3VtZSBhbnkgaW5kaXJlY3Rpb24g ZWxlbWVudHMuCisJICovCisJaWYgKGxpc3RfbGVuZ3RoKCppbmRpcmVjdGlvbikgPT0gaW5kaXJl Y3Rpb25fbGVuZ3RoKQorCXsKKwkJTm9kZQkgICAqaW5kID0gbGluaXRpYWwoKmluZGlyZWN0aW9u KTsKKworCQlpZiAobm9FcnJvcikKKwkJCXJldHVybiBOVUxMOworCisJCWlmIChJc0EoaW5kLCBT dHJpbmcpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInR5cGUgJXMgZG9lcyBub3Qgc3VwcG9ydCBkb3Qg bm90YXRpb24iLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwKKwkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihjb250YWluZXJCYXNlKSkp KTsKKwkJZWxzZSBpZiAoSXNBKGluZCwgQV9JbmRpY2VzKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ0 eXBlICVzIGRvZXMgbm90IHN1cHBvcnQgYXJyYXkgc3Vic2NyaXB0aW5nIiwKKwkJCQkJCQlmb3Jt YXRfdHlwZV9iZShjb250YWluZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UKKwkJCWVsb2coRVJS T1IsICJpbnZhbGlkIGluZGlyZWN0aW9uIG9wZXJhdGlvbjogJWQiLCBub2RlVGFnKGluZCkpOwor CX0KKwogCS8qCiAJICogVmVyaWZ5IHdlIGdvdCBhIHZhbGlkIHR5cGUgKHRoaXMgZGVmZW5kcywg Zm9yIGV4YW1wbGUsIGFnYWluc3Qgc29tZW9uZQogCSAqIHVzaW5nIGFycmF5X3N1YnNjcmlwdF9o YW5kbGVyIGFzIHR5cHN1YnNjcmlwdCB3aXRob3V0IHNldHRpbmcgdHlwZWxlbSkuCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggNDY3NWE1MjMwNDUuLjNlZjU4OTdmMmViIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3RhcmdldC5jCkBAIC05MzcsNyArOTM3LDggQEAgdHJhbnNmb3JtQXNzaWdu bWVudFN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSAgY29udGFpbmVy VHlwZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkgICZzdWJzY3Jp cHRzLAotCQkJCQkJCQkJCSAgdHJ1ZSk7CisJCQkJCQkJCQkJICB0cnVlLAorCQkJCQkJCQkJCSAg ZmFsc2UpOwogCiAJdHlwZU5lZWRlZCA9IHNic3JlZi0+cmVmcmVzdHlwZTsKIAl0eXBtb2ROZWVk ZWQgPSBzYnNyZWYtPnJlZnR5cG1vZDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYwppbmRleCAy MzRjMmMyNzhjMS4uZDAzZDM1MTlkZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKQEAg LTYyLDYgKzYyLDcgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYg KnNic3JlZiwKIAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdAkgICAqbG93ZXJJ bmRleHByID0gTklMOwogCUxpc3RDZWxsICAgKmlkeDsKKwlpbnQJCQluZGltOwogCiAJLyoKIAkg KiBUcmFuc2Zvcm0gdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucywgYW5kIHNlcGFyYXRlIHVwcGVy IGFuZCBsb3dlcgpAQCAtNzMsOSArNzQsMTQgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9u KQogCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJ CUFfSW5kaWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJleHByOwogCisJCWlmICghSXNBKGxmaXJz dChpZHgpLCBBX0luZGljZXMpKQorCQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0lu ZGljZXMsIGlkeCk7CisKIAkJaWYgKGlzU2xpY2UpCiAJCXsKIAkJCWlmIChhaS0+bGlkeCkKQEAg LTE0NSwxNCArMTUxLDE1IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBsb3dlckluZGV4cHI7CiAK IAkvKiBWZXJpZnkgc3Vic2NyaXB0IGxpc3QgbGVuZ3RocyBhcmUgd2l0aGluIGltcGxlbWVudGF0 aW9uIGxpbWl0ICovCi0JaWYgKGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikgPiBNQVhESU0pCisJ bmRpbSA9IGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcik7CisJaWYgKG5kaW0gPiBNQVhESU0pCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VF REVEKSwKIAkJCQkgZXJybXNnKCJudW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoJWQpIGV4Y2Vl ZHMgdGhlIG1heGltdW0gYWxsb3dlZCAoJWQpIiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5k ZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIgc2Vw YXJhdGVseSAqLwogCi0JKmluZGlyZWN0aW9uID0gTklMOworCSppbmRpcmVjdGlvbiA9IGxpc3Rf ZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBuZGltKTsKIAogCS8qCiAJICogRGV0ZXJtaW5l IHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEl0J3MgdGhl IHNhbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCA4YWQ2YWExYWQ0Zi4uYTBkMzhh MGZkODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAgLTU1LDkgKzU1LDE0IEBAIGpz b25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICovCiAJ Zm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7Ci0JCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0 X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCQlBX0luZGljZXMgICphaTsKIAkJTm9kZQkgICAqc3Vi RXhwcjsKIAorCQlpZiAoIUlzQShsZmlyc3QoaWR4KSwgQV9JbmRpY2VzKSkKKwkJCWJyZWFrOwor CisJCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCiAJCWlmIChpc1NsaWNlKQog CQl7CiAJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+dWlkeCA6IGFpLT5saWR4OwpA QCAtMTYwLDcgKzE2NSw5IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7CiAJc2JzcmVmLT5y ZWZ0eXBtb2QgPSAtMTsKIAotCSppbmRpcmVjdGlvbiA9IE5JTDsKKwkvKiBSZW1vdmUgcHJvY2Vz c2VkIGVsZW1lbnRzICovCisJaWYgKHVwcGVySW5kZXhwcikKKwkJKmluZGlyZWN0aW9uID0gbGlz dF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikp OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggNWFlMTFjY2VjMzMuLjcxYjA0 YmQ1MDNjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM3OCw3ICszNzgsOCBAQCBleHRl cm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJ CQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkJCQkgTGlzdCAqKmluZGlyZWN0 aW9uLAotCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCk7CisJCQkJCQkJCQkJCQkJIGJv b2wgaXNBc3NpZ25tZW50LAorCQkJCQkJCQkJCQkJCSBib29sIG5vRXJyb3IpOwogZXh0ZXJuIENv bnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9Db25zdCAqYWNvbnN0KTsKIAog I2VuZGlmCQkJCQkJCS8qIFBBUlNFX05PREVfSCAqLwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0 KQoK --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v11-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w112 RnJvbSA1YmZjMmQyM2U4NTIwZDhiMTVlZjhjNTFhZTUwZTM1ZTViZTRhYmQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNTo1NSArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djExIDMvOF0gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw YXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNlIHRoZQphZm9y ZW1lbnRpb25lZCBmdW5jdGlvbi4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGgu YyB8IDE5ICsrKysrKysrKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgg ICAgIHwgIDQgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMKaW5kZXggNzYyZjdlOGEwOWQuLjE1MzY3 OTdjZjIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYwpAQCAtMTY2LDE1ICsxNjYsMTMgQEAg anNvbnBhdGhfc2VuZChQR19GVU5DVElPTl9BUkdTKQogICogQ29udmVydHMgQy1zdHJpbmcgdG8g YSBqc29ucGF0aCB2YWx1ZS4KICAqCiAgKiBVc2VzIGpzb25wYXRoIHBhcnNlciB0byB0dXJuIHN0 cmluZyBpbnRvIGFuIEFTVCwgdGhlbgotICogZmxhdHRlbkpzb25QYXRoUGFyc2VJdGVtKCkgZG9l cyBzZWNvbmQgcGFzcyB0dXJuaW5nIEFTVCBpbnRvIGJpbmFyeQorICoganNvblBhdGhGcm9tUGFy c2VSZXN1bHQoKSBkb2VzIHNlY29uZCBwYXNzIHR1cm5pbmcgQVNUIGludG8gYmluYXJ5CiAgKiBy ZXByZXNlbnRhdGlvbiBvZiBqc29ucGF0aC4KICAqLwogc3RhdGljIERhdHVtCiBqc29uUGF0aEZy b21Dc3RyaW5nKGNoYXIgKmluLCBpbnQgbGVuLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewog CUpzb25QYXRoUGFyc2VSZXN1bHQgKmpzb25wYXRoID0gcGFyc2Vqc29ucGF0aChpbiwgbGVuLCBl c2NvbnRleHQpOwotCUpzb25QYXRoICAgKnJlczsKLQlTdHJpbmdJbmZvRGF0YSBidWY7CiAKIAlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQogCQlyZXR1cm4gKERhdHVtKSAwOwpA QCAtMTg1LDggKzE4MywyMSBAQCBqc29uUGF0aEZyb21Dc3RyaW5nKGNoYXIgKmluLCBpbnQgbGVu LCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogCQkJCSBlcnJtc2coImludmFsaWQgaW5wdXQgc3lu dGF4IGZvciB0eXBlICVzOiBcIiVzXCIiLCAianNvbnBhdGgiLAogCQkJCQkJaW4pKSk7CiAKKwly ZXR1cm4ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoanNvbnBhdGgsIDQgKiBsZW4sIGVzY29udGV4 dCk7Cit9CisKKy8qCisgKiBDb252ZXJ0cyBqc29ucGF0aCBBU1QgaW50byBqc29ucGF0aCB2YWx1 ZSBpbiBiaW5hcnkuCisgKi8KK0RhdHVtCitqc29uUGF0aEZyb21QYXJzZVJlc3VsdChKc29uUGF0 aFBhcnNlUmVzdWx0ICpqc29ucGF0aCwgaW50IGVzdGltYXRlZF9sZW4sCisJCQkJCQlzdHJ1Y3Qg Tm9kZSAqZXNjb250ZXh0KQoreworCUpzb25QYXRoICAgKnJlczsKKwlTdHJpbmdJbmZvRGF0YSBi dWY7CisKIAlpbml0U3RyaW5nSW5mbygmYnVmKTsKLQllbmxhcmdlU3RyaW5nSW5mbygmYnVmLCA0 ICogbGVuIC8qIGVzdGltYXRpb24gKi8gKTsKKwllbmxhcmdlU3RyaW5nSW5mbygmYnVmLCBlc3Rp bWF0ZWRfbGVuKTsKIAogCWFwcGVuZFN0cmluZ0luZm9TcGFjZXMoJmJ1ZiwgSlNPTlBBVEhfSERS U1opOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvanNvbnBhdGguaAppbmRleCAyM2E3NmQyMzNlOS4uZTA1OTQxNjIzZTcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgKKysrIGIvc3JjL2luY2x1ZGUv dXRpbHMvanNvbnBhdGguaApAQCAtMjgxLDYgKzI4MSwxMCBAQCBleHRlcm4gSnNvblBhdGhQYXJz ZVJlc3VsdCAqcGFyc2Vqc29ucGF0aChjb25zdCBjaGFyICpzdHIsIGludCBsZW4sCiBleHRlcm4g Ym9vbCBqc3BDb252ZXJ0UmVnZXhGbGFncyh1aW50MzIgeGZsYWdzLCBpbnQgKnJlc3VsdCwKIAkJ CQkJCQkJIHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogCitleHRlcm4gRGF0dW0ganNvblBhdGhG cm9tUGFyc2VSZXN1bHQoSnNvblBhdGhQYXJzZVJlc3VsdCAqanNvbnBhdGgsCisJCQkJCQkJCQkg aW50IGVzdGltYXRlZF9sZW4sCisJCQkJCQkJCQkgc3RydWN0IE5vZGUgKmVzY29udGV4dCk7CisK IC8qCiAgKiBTdHJ1Y3QgZm9yIGRldGFpbHMgYWJvdXQgZXh0ZXJuYWwgdmFyaWFibGVzIHBhc3Nl ZCBpbnRvIGpzb25wYXRoIGV4ZWN1dG9yCiAgKi8KLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkK Cg== --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v11-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w133 RnJvbSBhNzJjN2FiM2IzNzU4OWFkYTJmZmVhMTlhMjlhYWFkNjczYmU1OWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyNiBGZWIgMjAyNSAxMzowMzoyNyAtMDYwMApTdWJqZWN0OiBb UEFUQ0ggdjExIDQvOF0gRXh0cmFjdCBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KCkKClRoaXMg aXMgYSBwcmVwYXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNl IHRoZQphZm9yZW1lbnRpb25lZCBmdW5jdGlvbi4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv anNvbmJzdWJzLmMgfCAxNDIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25ic3Vicy5jCmluZGV4IGEwZDM4YTBmZDgwLi4zZmZlNDBjZmE0MCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9qc29uYnN1YnMuYwpAQCAtMzIsNiArMzIsODMgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJT dWJXb3Jrc3BhY2UKIAlEYXR1bQkgICAqaW5kZXg7CQkJLyogU3Vic2NyaXB0IHZhbHVlcyBpbiBE YXR1bSBmb3JtYXQgKi8KIH0gSnNvbmJTdWJXb3Jrc3BhY2U7CiAKK3N0YXRpYyBPaWQKK2pzb25i X3N1YnNjcmlwdF90eXBlKE5vZGUgKmV4cHIpCit7CisJaWYgKGV4cHIgJiYgSXNBKGV4cHIsIFN0 cmluZykpCisJCXJldHVybiBURVhUT0lEOworCisJcmV0dXJuIGV4cHJUeXBlKGV4cHIpOworfQor CitzdGF0aWMgTm9kZSAqCitjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTm9kZSAqc3ViRXhwciwgT2lkIG51bXR5cGUpCit7CisJT2lkCQkJc3ViRXhwclR5cGUg PSBqc29uYl9zdWJzY3JpcHRfdHlwZShzdWJFeHByKTsKKwlPaWQJCQl0YXJnZXRUeXBlID0gVU5L Tk9XTk9JRDsKKworCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQorCXsKKwkJT2lkCQkJ dGFyZ2V0c1syXSA9IHtudW10eXBlLCBURVhUT0lEfTsKKworCQkvKgorCQkgKiBKc29uYiBjYW4g aGFuZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0IGNhc2VzIHdoZW4gYQorCQkgKiBz dWJzY3JpcHQgY291bGQgYmUgY29lcmNlZCB0byBtdWx0aXBsZSB0YXJnZXQgdHlwZXMgbXVzdCBi ZQorCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rpb25zLiBJdCBjb3Vs ZCBiZSBwb3NzaWJseQorCQkgKiBleHRlbmQgd2l0aCBqc29ucGF0aCBpbiB0aGUgZnV0dXJlLgor CQkgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspCisJCXsKKwkJCWlmIChjYW5fY29l cmNlX3R5cGUoMSwgJnN1YkV4cHJUeXBlLCAmdGFyZ2V0c1tpXSwgQ09FUkNJT05fSU1QTElDSVQp KQorCQkJeworCQkJCS8qCisJCQkJICogT25lIHR5cGUgaGFzIGFscmVhZHkgc3VjY2VlZGVkLCBp dCBtZWFucyB0aGVyZSBhcmUgdHdvCisJCQkJICogY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwg ZmFpbHVyZS4KKwkJCQkgKi8KKwkJCQlpZiAodGFyZ2V0VHlwZSAhPSBVTktOT1dOT0lEKQorCQkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFU Q0gpLAorCQkJCQkJCSBlcnJtc2coInN1YnNjcmlwdCB0eXBlICVzIGlzIG5vdCBzdXBwb3J0ZWQi LCBmb3JtYXRfdHlwZV9iZShzdWJFeHByVHlwZSkpLAorCQkJCQkJCSBlcnJoaW50KCJqc29uYiBz dWJzY3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlwZSwgaW50ZWdlciBvciB0 ZXh0LiIpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o c3ViRXhwcikpKSk7CisKKwkJCQl0YXJnZXRUeXBlID0gdGFyZ2V0c1tpXTsKKwkJCX0KKwkJfQor CisJCS8qCisJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUgZm91bmQsIGZhaWx1cmUuCisJCSAq LworCQlpZiAodGFyZ2V0VHlwZSA9PSBVTktOT1dOT0lEKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInN1 YnNjcmlwdCB0eXBlICVzIGlzIG5vdCBzdXBwb3J0ZWQiLCBmb3JtYXRfdHlwZV9iZShzdWJFeHBy VHlwZSkpLAorCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29lcmNpYmxl IHRvIGVpdGhlciBpbnRlZ2VyIG9yIHRleHQuIiksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisJfQorCWVsc2UKKwkJdGFyZ2V0VHlw ZSA9IFRFWFRPSUQ7CisKKwkvKgorCSAqIFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRo YXQgY29lcmNpb24gd2lsbCBzdWNjZWVkLCBzbworCSAqIGNvZXJjZV90eXBlIGNvdWxkIGJlIHVz ZWQuIE5vdGUgdGhlIGltcGxpY2l0IGNvZXJjaW9uIGNvbnRleHQsIHdoaWNoIGlzCisJICogcmVx dWlyZWQgdG8gaGFuZGxlIHN1YnNjcmlwdHMgb2YgZGlmZmVyZW50IHR5cGVzLCBzaW1pbGFyIHRv IG92ZXJsb2FkZWQKKwkgKiBmdW5jdGlvbnMuCisJICovCisJc3ViRXhwciA9IGNvZXJjZV90eXBl KHBzdGF0ZSwKKwkJCQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCisJCQkJCQkgIHRhcmdldFR5 cGUsIC0xLAorCQkJCQkJICBDT0VSQ0lPTl9JTVBMSUNJVCwKKwkJCQkJCSAgQ09FUkNFX0lNUExJ Q0lUX0NBU1QsCisJCQkJCQkgIC0xKTsKKwlpZiAoc3ViRXhwciA9PSBOVUxMKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBl cnJtc2coImpzb25iIHN1YnNjcmlwdCBtdXN0IGhhdmUgdGV4dCB0eXBlIiksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKworCXJldHVy biBzdWJFeHByOworfQogCiAvKgogICogRmluaXNoIHBhcnNlIGFuYWx5c2lzIG9mIGEgU3Vic2Ny aXB0aW5nUmVmIGV4cHJlc3Npb24gZm9yIGEganNvbmIuCkBAIC03NSw3MSArMTUyLDggQEAganNv bmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAogCQlpZiAo YWktPnVpZHgpCiAJCXsKLQkJCU9pZAkJCXN1YkV4cHJUeXBlID0gSW52YWxpZE9pZCwKLQkJCQkJ CXRhcmdldFR5cGUgPSBVTktOT1dOT0lEOwotCiAJCQlzdWJFeHByID0gdHJhbnNmb3JtRXhwcihw c3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKLQkJCXN1YkV4cHJUeXBlID0g ZXhwclR5cGUoc3ViRXhwcik7Ci0KLQkJCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQot CQkJewotCQkJCU9pZAkJCXRhcmdldHNbMl0gPSB7SU5UNE9JRCwgVEVYVE9JRH07Ci0KLQkJCQkv KgotCQkJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3Vic2NyaXB0IHR5cGVzLCBidXQg Y2FzZXMgd2hlbiBhCi0JCQkJICogc3Vic2NyaXB0IGNvdWxkIGJlIGNvZXJjZWQgdG8gbXVsdGlw bGUgdGFyZ2V0IHR5cGVzIG11c3QgYmUKLQkJCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJs b2FkZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBiZQotCQkJCSAqIHBvc3NpYmx5IGV4dGVuZCB3aXRo IGpzb25wYXRoIGluIHRoZSBmdXR1cmUuCi0JCQkJICovCi0JCQkJZm9yIChpbnQgaSA9IDA7IGkg PCAyOyBpKyspCi0JCQkJewotCQkJCQlpZiAoY2FuX2NvZXJjZV90eXBlKDEsICZzdWJFeHByVHlw ZSwgJnRhcmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkKLQkJCQkJewotCQkJCQkJLyoKLQkJ CQkJCSAqIE9uZSB0eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRlZCwgaXQgbWVhbnMgdGhlcmUgYXJl Ci0JCQkJCQkgKiB0d28gY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwgZmFpbHVyZS4KLQkJCQkJ CSAqLwotCQkJCQkJaWYgKHRhcmdldFR5cGUgIT0gVU5LTk9XTk9JRCkKLQkJCQkJCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0J CQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgZm9y bWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkJCSBlcnJoaW50KCJqc29uYiBzdWJz Y3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlwZSwgaW50ZWdlciBvciB0ZXh0 LiIpLAotCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihz dWJFeHByKSkpKTsKLQotCQkJCQkJdGFyZ2V0VHlwZSA9IHRhcmdldHNbaV07Ci0JCQkJCX0KLQkJ CQl9Ci0KLQkJCQkvKgotCQkJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUgZm91bmQsIGZhaWx1 cmUuCi0JCQkJICovCi0JCQkJaWYgKHRhcmdldFR5cGUgPT0gVU5LTk9XTk9JRCkKLQkJCQkJZXJl cG9ydChFUlJPUiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwK LQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgZm9y bWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2Ny aXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRlZ2VyIG9yIHRleHQuIiksCi0JCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsK LQkJCX0KLQkJCWVsc2UKLQkJCQl0YXJnZXRUeXBlID0gVEVYVE9JRDsKLQotCQkJLyoKLQkJCSAq IFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQgY29lcmNpb24gd2lsbCBzdWNjZWVk LCBzbwotCQkJICogY29lcmNlX3R5cGUgY291bGQgYmUgdXNlZC4gTm90ZSB0aGUgaW1wbGljaXQg Y29lcmNpb24gY29udGV4dCwKLQkJCSAqIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGhhbmRsZSBzdWJz Y3JpcHRzIG9mIGRpZmZlcmVudCB0eXBlcywKLQkJCSAqIHNpbWlsYXIgdG8gb3ZlcmxvYWRlZCBm dW5jdGlvbnMuCi0JCQkgKi8KLQkJCXN1YkV4cHIgPSBjb2VyY2VfdHlwZShwc3RhdGUsCi0JCQkJ CQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCi0JCQkJCQkJCSAgdGFyZ2V0VHlwZSwgLTEsCi0J CQkJCQkJCSAgQ09FUkNJT05fSU1QTElDSVQsCi0JCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NB U1QsCi0JCQkJCQkJCSAgLTEpOwotCQkJaWYgKHN1YkV4cHIgPT0gTlVMTCkKLQkJCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJ CQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgbXVzdCBoYXZlIHRleHQgdHlwZSIpLAotCQkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKwkJ CXN1YkV4cHIgPSBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KHBzdGF0ZSwgc3ViRXhwciwgSU5U NE9JRCk7CiAJCX0KIAkJZWxzZQogCQl7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0005-Enable-String-node-as-field-accessors-in-generic.patch" Content-Disposition: attachment; filename="v11-0005-Enable-String-node-as-field-accessors-in-generic.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w144 RnJvbSBmMGQ0MjU2MTllZjc2ZTc4NTU4MDhiZTA5MDhhMTU0MjI4ZDZkOGYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djExIDUvOF0gRW5hYmxlIFN0cmluZyBub2RlIGFzIGZpZWxkIGFjY2Vzc29ycyBpbiBnZW5lcmlj CiBzdWJzY3JpcHRpbmcKCk5vdyB0aGF0IHdlIGFyZSBhbGxvd2luZyBjb250YWluZXIgZ2VuZXJp YyBzdWJzY3JpcHRpbmcgdG8gdGFrZSBkb3QKbm90YXRpb24gaW4gdGhlIGxpc3Qgb2YgaW5kaXJl Y3Rpb25zLCBhbmQgaXQgaXMgdHJhbnNmb3JtZWQgYXMgYQpTdHJpbmcgbm9kZS4KCkZvciBqc29u Yiwgd2Ugd2FudCB0byByZXByZXNlbnQgZmllbGQgYWNjZXNzb3JzIGFzIFN0cmluZyBub2RlcyBp bgpyZWZ1cHBlcmV4cHJzIGZvciBkaXN0aW5ndWlzaGluZyBmcm9tIG9yZGluYXJ5IHRleHQgc3Vi c2NyaXB0cyB3aGljaApjYW4gYmUgbmVlZGVkIGZvciBjb3JyZWN0IEVYUExBSU4uCgpTdHJpbmdz IG5vZGUgaXMgbm8gbG9uZ2VyIGEgdmFsaWQgZXhwcmVzc2lvbiBub2Rlcywgc28gYWRkZWQgc3Bl Y2lhbApoYW5kbGluZyBmb3IgdGhlbSBpbiB3YWxrZXJzIGluIG5vZGVGdW5jcyBldGMuCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICB8IDI0ICsrKysrKystLS0KIHNyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgfCA3MyArKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgfCAyMiArKysrKysr LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgfCAyOSArKysrKysrKy0tLS0K IDQgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCmluZGV4IGYxNTY5ODc5YjUyLi5iMDQ1OTAxMTYzOSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCkBAIC0zMzM2LDkgKzMzMzYsMTUgQEAgRXhlY0luaXRTdWJzY3Jp cHRpbmdSZWYoRXhwckV2YWxTdGVwICpzY3JhdGNoLCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwK IAkJewogCQkJc2JzcmVmc3RhdGUtPnVwcGVycHJvdmlkZWRbaV0gPSB0cnVlOwogCQkJLyogRWFj aCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVkIGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50cnkgKi8K LQkJCUV4ZWNJbml0RXhwclJlYyhlLCBzdGF0ZSwKLQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVy aW5kZXhbaV0sCi0JCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4bnVsbFtpXSk7CisJCQlp ZiAoSXNBKGUsIFN0cmluZykpCisJCQl7CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhbaV0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKHN0clZhbChlKSk7CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVy aW5kZXhudWxsW2ldID0gZmFsc2U7CisJCQl9CisJCQllbHNlCisJCQkJRXhlY0luaXRFeHByUmVj KGUsIHN0YXRlLAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhbaV0sCisJCQkJCQkJ CSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0pOwogCQl9CiAJCWkrKzsKIAl9CkBAIC0z MzU5LDkgKzMzNjUsMTUgQEAgRXhlY0luaXRTdWJzY3JpcHRpbmdSZWYoRXhwckV2YWxTdGVwICpz Y3JhdGNoLCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJewogCQkJc2JzcmVmc3RhdGUtPmxv d2VycHJvdmlkZWRbaV0gPSB0cnVlOwogCQkJLyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVk IGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50cnkgKi8KLQkJCUV4ZWNJbml0RXhwclJlYyhlLCBz dGF0ZSwKLQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhbaV0sCi0JCQkJCQkJJnNic3Jl ZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSk7CisJCQlpZiAoSXNBKGUsIFN0cmluZykpCisJCQl7 CisJCQkJc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhbaV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHN0 clZhbChlKSk7CisJCQkJc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldID0gZmFsc2U7CisJ CQl9CisJCQllbHNlCisJCQkJRXhlY0luaXRFeHByUmVjKGUsIHN0YXRlLAorCQkJCQkJCQkmc2Jz cmVmc3RhdGUtPmxvd2VyaW5kZXhbaV0sCisJCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRl eG51bGxbaV0pOwogCQl9CiAJCWkrKzsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDdiYzgy MzUwN2YxLi5hOWMyOWFiOGYyOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTIxODIsMTIgKzIx ODIsMjggQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCWNhc2Ug VF9TdWJzY3JpcHRpbmdSZWY6CiAJCQl7CiAJCQkJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYgPSAo U3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CisJCQkJTGlzdENlbGwgICAqbGM7CisKKwkJCQkvKgor CQkJCSAqIFJlY3Vyc2UgZGlyZWN0bHkgZm9yIHVwcGVyL2xvd2VyIGNvbnRhaW5lciBpbmRleCBs aXN0cywKKwkJCQkgKiBza2lwcGluZyBTdHJpbmcgc3Vic2NyaXB0cyB1c2VkIGZvciBkb3Qgbm90 YXRpb24uCisJCQkJICovCisJCQkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIp CisJCQkJeworCQkJCQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsKKworCQkJCQlpZiAoZXhw ciAmJiAhSXNBKGV4cHIsIFN0cmluZykgJiYgV0FMSyhleHByKSkKKwkJCQkJCXJldHVybiB0cnVl OworCQkJCX0KKworCQkJCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmbG93ZXJpbmRleHByKQorCQkJ CXsKKwkJCQkJTm9kZQkgICAqZXhwciA9IGxmaXJzdChsYyk7CisKKwkJCQkJaWYgKGV4cHIgJiYg IUlzQShleHByLCBTdHJpbmcpICYmIFdBTEsoZXhwcikpCisJCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJ CQl9CiAKLQkJCQkvKiByZWN1cnNlIGRpcmVjdGx5IGZvciB1cHBlci9sb3dlciBjb250YWluZXIg aW5kZXggbGlzdHMgKi8KLQkJCQlpZiAoTElTVF9XQUxLKHNic3JlZi0+cmVmdXBwZXJpbmRleHBy KSkKLQkJCQkJcmV0dXJuIHRydWU7Ci0JCQkJaWYgKExJU1RfV0FMSyhzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwcikpCi0JCQkJCXJldHVybiB0cnVlOwogCQkJCS8qIHdhbGtlciBtdXN0IHNlZSB0aGUg cmVmZXhwciBhbmQgcmVmYXNzZ25leHByLCBob3dldmVyICovCiAJCQkJaWYgKFdBTEsoc2JzcmVm LT5yZWZleHByKSkKIAkJCQkJcmV0dXJuIHRydWU7CkBAIC0zMDgyLDEyICszMDk4LDUxIEBAIGV4 cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCXsKIAkJCQlTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiA9IChTdWJzY3JpcHRpbmdSZWYgKikgbm9kZTsKIAkJCQlTdWJzY3Jp cHRpbmdSZWYgKm5ld25vZGU7CisJCQkJTGlzdENlbGwgICAqbGM7CisJCQkJTGlzdAkgICAqZXhw cnMgPSBOSUw7CiAKIAkJCQlGTEFUQ09QWShuZXdub2RlLCBzYnNyZWYsIFN1YnNjcmlwdGluZ1Jl Zik7Ci0JCQkJTVVUQVRFKG5ld25vZGUtPnJlZnVwcGVyaW5kZXhwciwgc2JzcmVmLT5yZWZ1cHBl cmluZGV4cHIsCi0JCQkJCSAgIExpc3QgKik7Ci0JCQkJTVVUQVRFKG5ld25vZGUtPnJlZmxvd2Vy aW5kZXhwciwgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsCi0JCQkJCSAgIExpc3QgKik7CisKKwkJ CQlmb3JlYWNoKGxjLCBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikKKwkJCQl7CisJCQkJCU5vZGUJ ICAgKmV4cHIgPSBsZmlyc3QobGMpOworCisJCQkJCWlmIChleHByICYmIElzQShleHByLCBTdHJp bmcpKQorCQkJCQl7CisJCQkJCQlTdHJpbmcJICAgKnN0cjsKKworCQkJCQkJRkxBVENPUFkoc3Ry LCBleHByLCBTdHJpbmcpOworCQkJCQkJZXhwciA9IChOb2RlICopIHN0cjsKKwkJCQkJfQorCQkJ CQllbHNlCisJCQkJCQlleHByID0gbXV0YXRvcihleHByLCBjb250ZXh0KTsKKworCQkJCQlleHBy cyA9IGxhcHBlbmQoZXhwcnMsIGV4cHIpOworCQkJCX0KKworCQkJCW5ld25vZGUtPnJlZnVwcGVy aW5kZXhwciA9IGV4cHJzOworCisJCQkJZXhwcnMgPSBOSUw7CisKKwkJCQlmb3JlYWNoKGxjLCBz YnNyZWYtPnJlZmxvd2VyaW5kZXhwcikKKwkJCQl7CisJCQkJCU5vZGUJICAgKmV4cHIgPSBsZmly c3QobGMpOworCisJCQkJCWlmIChleHByICYmIElzQShleHByLCBTdHJpbmcpKQorCQkJCQl7CisJ CQkJCQlTdHJpbmcJICAgKnN0cjsKKworCQkJCQkJRkxBVENPUFkoc3RyLCBleHByLCBTdHJpbmcp OworCQkJCQkJZXhwciA9IChOb2RlICopIHN0cjsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQll eHByID0gbXV0YXRvcihleHByLCBjb250ZXh0KTsKKworCQkJCQlleHBycyA9IGxhcHBlbmQoZXhw cnMsIGV4cHIpOworCQkJCX0KKworCQkJCW5ld25vZGUtPnJlZmxvd2VyaW5kZXhwciA9IGV4cHJz OworCiAJCQkJTVVUQVRFKG5ld25vZGUtPnJlZmV4cHIsIHNic3JlZi0+cmVmZXhwciwKIAkJCQkJ ICAgRXhwciAqKTsKIAkJCQlNVVRBVEUobmV3bm9kZS0+cmVmYXNzZ25leHByLCBzYnNyZWYtPnJl ZmFzc2duZXhwciwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCmluZGV4IGQyZTIxODM1M2Yz Li5iZTZkZWE2ZmZkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxh dGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCkBAIC02ODAsMTEg KzY4MCwyNSBAQCBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIoTm9kZSAqbm9kZSwgYXNzaWduX2Nv bGxhdGlvbnNfY29udGV4dCAqY29udGV4dCkKIAkJCQkJCQkgKiBjb250cmlidXRlIGFueXRoaW5n LikKIAkJCQkJCQkgKi8KIAkJCQkJCQlTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiA9IChTdWJzY3Jp cHRpbmdSZWYgKikgbm9kZTsKKwkJCQkJCQlMaXN0Q2VsbCAgICpsYzsKKworCQkJCQkJCS8qIHNr aXAgU3RyaW5nIHN1YnNjcmlwdHMgdXNlZCBmb3IgZG90IG5vdGF0aW9uICovCisJCQkJCQkJZm9y ZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpCisJCQkJCQkJeworCQkJCQkJCQlOb2Rl CSAgICpleHByID0gbGZpcnN0KGxjKTsKKworCQkJCQkJCQlpZiAoZXhwciAmJiAhSXNBKGV4cHIs IFN0cmluZykpCisJCQkJCQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKGNvbnRleHQtPnBzdGF0 ZSwgZXhwcik7CisJCQkJCQkJfQorCisJCQkJCQkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZsb3dl cmluZGV4cHIpCisJCQkJCQkJeworCQkJCQkJCQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsK KworCQkJCQkJCQlpZiAoZXhwciAmJiAhSXNBKGV4cHIsIFN0cmluZykpCisJCQkJCQkJCQlhc3Np Z25fZXhwcl9jb2xsYXRpb25zKGNvbnRleHQtPnBzdGF0ZSwgZXhwcik7CisJCQkJCQkJfQogCi0J CQkJCQkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhjb250ZXh0LT5wc3RhdGUsCi0JCQkJCQkJCQkJ CQkgICAoTm9kZSAqKSBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcik7Ci0JCQkJCQkJYXNzaWduX2V4 cHJfY29sbGF0aW9ucyhjb250ZXh0LT5wc3RhdGUsCi0JCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBz YnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CiAJCQkJCQkJKHZvaWQpIGFzc2lnbl9jb2xsYXRpb25z X3dhbGtlcigoTm9kZSAqKSBzYnNyZWYtPnJlZmV4cHIsCiAJCQkJCQkJCQkJCQkJCQkmbG9jY29u dGV4dCk7CiAJCQkJCQkJKHZvaWQpIGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlcigoTm9kZSAqKSBz YnNyZWYtPnJlZmFzc2duZXhwciwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA5ZTkw YWNlZGI5MS4uZDhkOTMwNTUyMGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTQ3 LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rl cy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9wYXRobm9kZXMuaCIKKyNpbmNsdWRlICJu b2Rlcy9zdWJzY3JpcHRpbmcuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2FnZy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9mdW5j LmgiCkBAIC0xMjk5NSwxNyArMTI5OTYsMjkgQEAgcHJpbnRTdWJzY3JpcHRzKFN1YnNjcmlwdGlu Z1JlZiAqc2JzcmVmLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJbG93bGlzdF9pdGVtID0g bGlzdF9oZWFkKHNic3JlZi0+cmVmbG93ZXJpbmRleHByKTsJLyogY291bGQgYmUgTlVMTCAqLwog CWZvcmVhY2godXBsaXN0X2l0ZW0sIHNic3JlZi0+cmVmdXBwZXJpbmRleHByKQogCXsKLQkJYXBw ZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnWycpOwotCQlpZiAobG93bGlzdF9pdGVtKQorCQlOb2Rl CSAgICp1cCA9IChOb2RlICopIGxmaXJzdCh1cGxpc3RfaXRlbSk7CisKKwkJaWYgKElzQSh1cCwg U3RyaW5nKSkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnLicpOworCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIoc3RyVmFsKHVwKSkpOwor CQl9CisJCWVsc2UKIAkJeworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnWycpOworCQkJ aWYgKGxvd2xpc3RfaXRlbSkKKwkJCXsKKwkJCQkvKiBJZiBzdWJleHByZXNzaW9uIGlzIE5VTEws IGdldF9ydWxlX2V4cHIgcHJpbnRzIG5vdGhpbmcgKi8KKwkJCQlnZXRfcnVsZV9leHByKChOb2Rl ICopIGxmaXJzdChsb3dsaXN0X2l0ZW0pLCBjb250ZXh0LCBmYWxzZSk7CisJCQkJYXBwZW5kU3Ry aW5nSW5mb0NoYXIoYnVmLCAnOicpOworCQkJfQogCQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBO VUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBub3RoaW5nICovCi0JCQlnZXRfcnVsZV9leHByKChO b2RlICopIGxmaXJzdChsb3dsaXN0X2l0ZW0pLCBjb250ZXh0LCBmYWxzZSk7Ci0JCQlhcHBlbmRT dHJpbmdJbmZvQ2hhcihidWYsICc6Jyk7Ci0JCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNyZWYt PnJlZmxvd2VyaW5kZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJCWdldF9ydWxlX2V4cHIoKE5vZGUg KikgbGZpcnN0KHVwbGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOworCQkJYXBwZW5kU3RyaW5n SW5mb0NoYXIoYnVmLCAnXScpOwogCQl9Ci0JCS8qIElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwg Z2V0X3J1bGVfZXhwciBwcmludHMgbm90aGluZyAqLwotCQlnZXRfcnVsZV9leHByKChOb2RlICop IGxmaXJzdCh1cGxpc3RfaXRlbSksIGNvbnRleHQsIGZhbHNlKTsKLQkJYXBwZW5kU3RyaW5nSW5m b0NoYXIoYnVmLCAnXScpOworCisJCWlmIChsb3dsaXN0X2l0ZW0pCisJCQlsb3dsaXN0X2l0ZW0g PSBsbmV4dChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwgbG93bGlzdF9pdGVtKTsKIAl9CiB9CiAK LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Disposition: attachment; filename="v11-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w0q0 RnJvbSAzZmNlOWRlMDUxMzkxY2I5OWZkZTNjMDRmNTJkY2Q2NDY0YTkyMmU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMjIgMTU6MzU6MjIgKzAzMDAKU3ViamVjdDogW1BBVENI IHYxMSAxLzhdIEFsbG93IHRyYW5zZm9ybWF0aW9uIG9mIG9ubHkgYSBzdWJsaXN0IG9mIHN1YnNj cmlwdHMKClRoaXMgaXMgYSBwcmVwYXJhdGlvbiBzdGVwIGZvciBhbGxvd2luZyBzdWJzY3JpcHRp bmcgY29udGFpbmVycyB0bwp0cmFuc2Zvcm0gb25seSBhIHByZWZpeCBvZiBhbiBpbmRpcmVjdGlv biBsaXN0IGFuZCBtb2RpZnkgdGhlIGxpc3QKaW4tcGxhY2UgYnkgcmVtb3ZpbmcgdGhlIHByb2Nl c3NlZCBlbGVtZW50cy4gQ3VycmVudGx5LCBhbGwgZWxlbWVudHMKYXJlIGNvbnN1bWVkLCBhbmQg dGhlIGxpc3QgaXMgc2V0IHRvIE5JTCBhZnRlciB0cmFuc2Zvcm1hdGlvbi4KCkluIHRoZSBmb2xs b3dpbmcgY29tbWl0LCBzdWJzY3JpcHRpbmcgY29udGFpbmVycyB3aWxsIGdhaW4gdGhlCmZsZXhp YmlsaXR5IHRvIHN0b3AgdHJhbnNmb3JtYXRpb24gd2hlbiBlbmNvdW50ZXJpbmcgYW4gdW5zdXBw b3J0ZWQKaW5kaXJlY3Rpb24gYW5kIHJldHVybiB0aGUgcmVtYWluaW5nIGluZGlyZWN0aW9ucyB0 byB0aGUgY2FsbGVyLgotLS0KIGNvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMgICAgICB8IDEw ICsrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICB8ICA5ICsrKyst LS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYyAgIHwgIDQgKystLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYyB8ICA2ICsrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jIHwgIDYgKysrKy0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCAgfCAgNyAr KysrKystCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgfCAgMiArLQogOCBmaWxl cyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb250cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1 YnMuYwppbmRleCAzZDAzZjY2ZmEwZC4uMWIyOTU0M2FiNjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv aHN0b3JlL2hzdG9yZV9zdWJzLmMKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwpA QCAtNDAsNyArNDAsNyBAQAogICovCiBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFu c2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCi0JCQkJCQkgICBMaXN0ICppbmRpcmVjdGlv biwKKwkJCQkJCSAgIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCSAgIFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkJCSAgIGJvb2wgaXNTbGljZSwKIAkJCQkJCSAgIGJvb2wgaXNBc3NpZ25tZW50 KQpAQCAtNDksMTUgKzQ5LDE1IEBAIGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlw dGluZ1JlZiAqc2JzcmVmLAogCU5vZGUJICAgKnN1YmV4cHI7CiAKIAkvKiBXZSBzdXBwb3J0IG9u bHkgc2luZ2xlLXN1YnNjcmlwdCwgbm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwg bGlzdF9sZW5ndGgoaW5kaXJlY3Rpb24pICE9IDEpCisJaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5n dGgoKmluZGlyZWN0aW9uKSAhPSAxKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dz IG9ubHkgb25lIHN1YnNjcmlwdCIpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAot CQkJCQkJCQkJZXhwckxvY2F0aW9uKChOb2RlICopIGluZGlyZWN0aW9uKSkpKTsKKwkJCQkJCQkJ CWV4cHJMb2NhdGlvbigoTm9kZSAqKSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3Jt IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFs X25vZGUoQV9JbmRpY2VzLCBpbmRpcmVjdGlvbik7CisJYWkgPSBsaW5pdGlhbF9ub2RlKEFfSW5k aWNlcywgKmluZGlyZWN0aW9uKTsKIAlBc3NlcnQoYWktPnVpZHggIT0gTlVMTCAmJiBhaS0+bGlk eCA9PSBOVUxMICYmICFhaS0+aXNfc2xpY2UpOwogCiAJc3ViZXhwciA9IHRyYW5zZm9ybUV4cHIo cHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7CkBAIC04MSw2ICs4MSw4IEBA IGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8q IERldGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247 IGFsd2F5cyB0ZXh0ICovCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0gVEVYVE9JRDsKIAlzYnNyZWYt PnJlZnR5cG1vZCA9IC0xOworCisJKmluZGlyZWN0aW9uID0gTklMOwogfQogCiAvKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKaW5kZXggYmFkMWRmNzMyZWEuLjJjMGY0YTUwYjIxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKQEAgLTQ2NiwxNCArNDY2LDEzIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJQXNzZXJ0KElzQShu LCBTdHJpbmcpKTsKIAogCQkJLyogcHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxk IHNlbGVjdGlvbiAqLwotCQkJaWYgKHN1YnNjcmlwdHMpCisJCQl3aGlsZSAoc3Vic2NyaXB0cykK IAkJCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0 ZSwKIAkJCQkJCQkJCQkJCQkJCSAgIHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBl KHJlc3VsdCksCiAJCQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJ CQkJCQkJCQkgICBzdWJzY3JpcHRzLAorCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJ CQkJCQkJCQkJCQkJCQkgICBmYWxzZSk7Ci0JCQlzdWJzY3JpcHRzID0gTklMOwogCiAJCQluZXdy ZXN1bHQgPSBQYXJzZUZ1bmNPckNvbHVtbihwc3RhdGUsCiAJCQkJCQkJCQkJICBsaXN0X21ha2Ux KG4pLApAQCAtNDg4LDEyICs0ODcsMTIgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCX0KIAl9CiAJLyogcHJvY2VzcyB0cmFp bGluZyBzdWJzY3JpcHRzLCBpZiBhbnkgKi8KLQlpZiAoc3Vic2NyaXB0cykKKwl3aGlsZSAoc3Vi c2NyaXB0cykKIAkJcmVzdWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0 cyhwc3RhdGUsCiAJCQkJCQkJCQkJCQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCSAgIGV4cHJU eXBlKHJlc3VsdCksCiAJCQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJ CQkJCQkJCSAgIHN1YnNjcmlwdHMsCisJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJ CQkJCQkJCQkJICAgZmFsc2UpOwogCiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9k ZS5jCmluZGV4IGQ2ZmViMTZhZWYzLi4xOWE2YjY3OGU2NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX25vZGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9k ZS5jCkBAIC0yNDQsNyArMjQ0LDcgQEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJz ZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJIE9p ZCBjb250YWluZXJUeXBlLAogCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJ IExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJ IGJvb2wgaXNBc3NpZ25tZW50KQogewogCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwpAQCAtMjgw LDcgKzI4MCw3IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCSAqIGVsZW1lbnQuICBJZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZp ZXJzIChsb3dlcjp1cHBlciksIHRoZW4KIAkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVh bnMgYSBjb250YWluZXIgc2xpY2Ugb3BlcmF0aW9uLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRp cmVjdGlvbikKKwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAq YWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYwppbmRleCA0YWJhMGQ5ZDRkNS4uNDY3NWE1MjMwNDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dGFyZ2V0LmMKQEAgLTkzNiw3ICs5MzYsNyBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0 cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJICBiYXNlbm9kZSwKIAkJCQkJCQkJCQkg IGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJCQkJ ICBzdWJzY3JpcHRzLAorCQkJCQkJCQkJCSAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJICB0cnVl KTsKIAogCXR5cGVOZWVkZWQgPSBzYnNyZWYtPnJlZnJlc3R5cGU7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMKaW5kZXggMjk0MGZiOGU4ZDcuLjIzNGMyYzI3OGMxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5c3Vicy5jCkBAIC01NCw3ICs1NCw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5U3ViV29y a3NwYWNlCiAgKi8KIHN0YXRpYyB2b2lkCiBhcnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNj cmlwdGluZ1JlZiAqc2JzcmVmLAotCQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAg TGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkg IGJvb2wgaXNTbGljZSwKIAkJCQkJCSAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC03MSw3ICs3MSw3 IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJ ICogaW5kaXJlY3Rpb24gaXRlbXMgdG8gc2xpY2VzIGJ5IHRyZWF0aW5nIHRoZSBzaW5nbGUgc3Vi c2NyaXB0IGFzIHRoZQogCSAqIHVwcGVyIGJvdW5kIGFuZCBzdXBwbHlpbmcgYW4gYXNzdW1lZCBs b3dlciBib3VuZCBvZiAxLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3Jl YWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9k ZShBX0luZGljZXMsIGlkeCk7CiAJCU5vZGUJICAgKnN1YmV4cHI7CkBAIC0xNTIsNiArMTUyLDgg QEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJ CQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5v dCBjaGVjayBsb3dlckluZGV4cHIgc2VwYXJhdGVseSAqLwogCisJKmluZGlyZWN0aW9uID0gTklM OworCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRp bmcgb3BlcmF0aW9uLiAgSXQncyB0aGUgc2FtZQogCSAqIGFzIHRoZSBhcnJheSB0eXBlIGlmIHdl J3JlIHNsaWNpbmcsIGVsc2UgaXQncyB0aGUgZWxlbWVudCB0eXBlLiAgSW4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYwppbmRleCBkZTY0ZDQ5ODUxMi4uOGFkNmFhMWFkNGYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbmJzdWJzLmMKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJT dWJXb3Jrc3BhY2UKICAqLwogc3RhdGljIHZvaWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0o U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJ CQkJICBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCSAgYm9vbCBpc1NsaWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTUzLDcg KzUzLDcgQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwKIAkgKiBUcmFuc2Zvcm0gYW5kIGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4g SnNvbmIgc3Vic2NyaXB0aW5nCiAJICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25s eSBhbmQgdGhlIHVwcGVyIGluZGV4LgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikK Kwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmly c3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CkBAIC0xNTksNiAr MTU5LDggQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwKIAkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3Bl cmF0aW9uOyBhbHdheXMganNvbmIgKi8KIAlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsK IAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJKmluZGlyZWN0aW9uID0gTklMOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaAppbmRleCAyMzRlOGFkODAxMi4uNWQ1NzZhZjM0NmYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oCkBAIC03MSw2ICs3MSwxMSBAQCBzdHJ1Y3QgU3Vi c2NyaXB0RXhlY1N0ZXBzOwogICogZG9lcyBub3QgY2FyZSB0byBzdXBwb3J0IHNsaWNpbmcsIGl0 IGNhbiBqdXN0IHRocm93IGFuIGVycm9yIGlmIGlzU2xpY2UuKQogICogU2VlIGFycmF5X3N1YnNj cmlwdF90cmFuc2Zvcm0oKSBmb3Igc2FtcGxlIGNvZGUuCiAgKgorICogVGhlIHRyYW5zZm9ybSBt ZXRob2QgcmVjZWl2ZXMgYSBwb2ludGVyIHRvIGEgbGlzdCBvZiByYXcgaW5kaXJlY3Rpb25zLgor ICogVGhpcyBhbGxvd3MgdGhlIG1ldGhvZCB0byBwYXJzZSBhIHN1Ymxpc3Qgb2YgdGhlIGluZGly ZWN0aW9ucyAodHlwaWNhbGx5CisgKiB0aGUgcHJlZml4KSBhbmQgbW9kaWZ5IHRoZSBvcmlnaW5h bCBsaXN0IGluIHBsYWNlLCBlbmFibGluZyB0aGUgY2FsbGVyIHRvCisgKiBlaXRoZXIgcHJvY2Vz cyB0aGUgcmVtYWluaW5nIGluZGlyZWN0aW9ucyBkaWZmZXJlbnRseSBvciByYWlzZSBhbiBlcnJv ci4KKyAqCiAgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCBpcyBhbHNvIHJlc3BvbnNpYmxlIGZvciBp ZGVudGlmeWluZyB0aGUgcmVzdWx0IHR5cGUKICAqIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0 aW9uLiAgQXQgY2FsbCwgcmVmY29udGFpbmVydHlwZSBhbmQgcmVmdHlwbW9kCiAgKiBkZXNjcmli ZSB0aGUgY29udGFpbmVyIHR5cGUgKHRoaXMgd2lsbCBiZSBhIGJhc2UgdHlwZSBub3QgYSBkb21h aW4pLCBhbmQKQEAgLTkzLDcgKzk4LDcgQEAgc3RydWN0IFN1YnNjcmlwdEV4ZWNTdGVwczsKICAq IGFzc2lnbm1lbnQgbXVzdCByZXR1cm4uCiAgKi8KIHR5cGVkZWYgdm9pZCAoKlN1YnNjcmlwdFRy YW5zZm9ybSkgKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAotCQkJCQkJCQkJTGlzdCAqaW5kaXJl Y3Rpb24sCisJCQkJCQkJCQlMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJCQlzdHJ1Y3QgUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJYm9vbCBpc1NsaWNlLAogCQkJCQkJCQkJYm9vbCBp c0Fzc2lnbm1lbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggOTk0Mjg0MDE5ZmIuLjVh ZTExY2NlYzMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisr KyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM3Nyw3ICszNzcsNyBAQCBl eHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgTm9kZSAqY29udGFpbmVyQmFzZSwKIAkJCQkJ CQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJCQkJIGludDMyIGNvbnRhaW5l clR5cE1vZCwKLQkJCQkJCQkJCQkJCQkgTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJCQkJCQkJCQkJ IExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQpOwog ZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9Db25zdCAqYWNv bnN0KTsKIAotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0007-Allow-wild-card-member-access-for-jsonb.patch" Content-Disposition: attachment; filename="v11-0007-Allow-wild-card-member-access-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w176 RnJvbSA3NjgwNzgyYzc5MmQ3ZGJhZjA2MmMwNDI5NWVlOTg2MWMwNTY1ZDM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djExIDcvOF0gQWxsb3cgd2lsZCBjYXJkIG1lbWJlciBhY2Nlc3MgZm9yIGpzb25iCgotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMzQgKystLQogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDY3ICsrKysrLS0K IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNiArLQog c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgICAzICsKIC4u Li9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYyAgICAgICAgICB8ICAxNCArLQogLi4u L2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIgICAgIHwgIDE3ICstCiAuLi4v ZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dCAgICAgfCAgIDIgKwogc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYyAgICAgIHwgICA1ICstCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCAgICAgICAgICAgfCAxNzkgKysrKysrKysrKysr KysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgICAgICAgICAgICAgICAgfCAg MzEgKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMTcgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKaW5kZXggMjcxYWUyNmNiYWYuLjQ0ODQwYmMxYjI1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTE4OTk2LDYgKzE4OTk2LDcgQEAgY2hlY2tfZnVuY19uYW1lKExpc3QgKm5hbWVzLCBj b3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIHN0YXRpYyBMaXN0ICoKIGNoZWNrX2luZGlyZWN0aW9u KExpc3QgKmluZGlyZWN0aW9uLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIHsKKyNpZiAwCiAJ TGlzdENlbGwgICAqbDsKIAogCWZvcmVhY2gobCwgaW5kaXJlY3Rpb24pCkBAIC0xOTAwNiw2ICsx OTAwNyw3IEBAIGNoZWNrX2luZGlyZWN0aW9uKExpc3QgKmluZGlyZWN0aW9uLCBjb3JlX3l5c2Nh bl90IHl5c2Nhbm5lcikKIAkJCQlwYXJzZXJfeXllcnJvcigiaW1wcm9wZXIgdXNlIG9mIFwiKlwi Iik7CiAJCX0KIAl9CisjZW5kaWYKIAlyZXR1cm4gaW5kaXJlY3Rpb247CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCmluZGV4IDhlYTUxMTc2MTk2Li41MTJhYzViNDk3MCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCkBAIC03NCw3ICs3NCw2IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2x1 bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpOwogc3RhdGljIE5vZGUg KnRyYW5zZm9ybVdob2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICBQYXJz ZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJCQkJCQkJICBpbnQgc3VibGV2ZWxzX3VwLCBpbnQg bG9jYXRpb24pOwotc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1UeXBl Q2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVDbGF1c2UgKmMp Owogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25PYmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRl ICpwc3RhdGUsCkBAIC0xNTgsNyArMTU3LDcgQEAgdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VT dGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX0FfSW5kaXJl Y3Rpb246Ci0JCQlyZXN1bHQgPSB0cmFuc2Zvcm1JbmRpcmVjdGlvbihwc3RhdGUsIChBX0luZGly ZWN0aW9uICopIGV4cHIpOworCQkJcmVzdWx0ID0gdHJhbnNmb3JtSW5kaXJlY3Rpb24ocHN0YXRl LCAoQV9JbmRpcmVjdGlvbiAqKSBleHByLCBOVUxMKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9B X0FycmF5RXhwcjoKQEAgLTQzMiw4ICs0MzEsOSBAQCB1bmtub3duX2F0dHJpYnV0ZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKnJlbHJlZiwgY29uc3QgY2hhciAqYXR0bmFtZSwKIAl9CiB9CiAK LXN0YXRpYyBOb2RlICoKLXRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKQorTm9kZSAqCit0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKKwkJCQkJIGJvb2wgKnRyYWlsaW5nX3N0 YXJfZXhwYW5zaW9uKQogewogCU5vZGUJICAgKmxhc3Rfc3JmID0gcHN0YXRlLT5wX2xhc3Rfc3Jm OwogCU5vZGUJICAgKnJlc3VsdCA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgaW5kLT5h cmcpOwpAQCAtNDU0LDEyICs0NTQsNyBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRl ICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJaWYgKElzQShuLCBBX0luZGljZXMpKQog CQkJc3Vic2NyaXB0cyA9IGxhcHBlbmQoc3Vic2NyaXB0cywgbik7CiAJCWVsc2UgaWYgKElzQShu LCBBX1N0YXIpKQotCQl7Ci0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coInJvdyBleHBhbnNpb24gdmlh IFwiKlwiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSIpLAotCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgbG9jYXRpb24pKSk7Ci0JCX0KKwkJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNj cmlwdHMsIG4pOwogCQllbHNlCiAJCXsKIAkJCUFzc2VydChJc0EobiwgU3RyaW5nKSk7CkBAIC00 OTEsNyArNDg2LDIxIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKQogCiAJCQluID0gbGluaXRpYWwoc3Vic2NyaXB0cyk7CiAKLQkJ CWlmICghSXNBKG4sIFN0cmluZykpCisJCQlpZiAoSXNBKG4sIEFfU3RhcikpCisJCQl7CisJCQkJ LyogU3VjY2VzcywgaWYgdHJhaWxpbmcgc3RhciBleHBhbnNpb24gaXMgYWxsb3dlZCAqLworCQkJ CWlmICh0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiAmJiBsaXN0X2xlbmd0aChzdWJzY3JpcHRzKSA9 PSAxKQorCQkJCXsKKwkJCQkJKnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uID0gdHJ1ZTsKKwkJCQkJ cmV0dXJuIHJlc3VsdDsKKwkJCQl9CisKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygicm93IGV4 cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCisJCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJCQl9CisJCQllbHNlIGlmICghSXNB KG4sIFN0cmluZykpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf REFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBl ICVzIGJlY2F1c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLApAQCAtNTE3LDYg KzUyNiw5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRp cmVjdGlvbiAqaW5kKQogCQlyZXN1bHQgPSBuZXdyZXN1bHQ7CiAJfQogCisJaWYgKHRyYWlsaW5n X3N0YXJfZXhwYW5zaW9uKQorCQkqdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gPSBmYWxzZTsKKwog CXJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCAzZWY1 ODk3ZjJlYi4uMTQxZmMxZGZlYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTQ4 LDcgKzQ4LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybUFzc2lnbm1lbnRTdWJzY3JpcHRzKFBh cnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBMaXN0ICpFeHBhbmRDb2x1bW5SZWZTdGFyKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLAogCQkJCQkJCQkgYm9vbCBtYWtlX3Rhcmdl dF9lbnRyeSk7CiBzdGF0aWMgTGlzdCAqRXhwYW5kQWxsVGFibGVzKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgaW50IGxvY2F0aW9uKTsKLXN0YXRpYyBMaXN0ICpFeHBhbmRJbmRpcmVjdGlvblN0YXIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCitzdGF0aWMgTm9kZSAqRXhwYW5k SW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAog CQkJCQkJCQkgICBib29sIG1ha2VfdGFyZ2V0X2VudHJ5LCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5k KTsKIHN0YXRpYyBMaXN0ICpFeHBhbmRTaW5nbGVUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIFBh cnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCQkJCSAgIGludCBzdWJsZXZlbHNfdXAsIGlu dCBsb2NhdGlvbiwKQEAgLTEzNCw2ICsxMzQsNyBAQCB0cmFuc2Zvcm1UYXJnZXRMaXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAlmb3JlYWNoKG9fdGFyZ2V0LCB0YXJn ZXRsaXN0KQogCXsKIAkJUmVzVGFyZ2V0ICAqcmVzID0gKFJlc1RhcmdldCAqKSBsZmlyc3Qob190 YXJnZXQpOworCQlOb2RlCSAgICp0cmFuc2Zvcm1lZCA9IE5VTEw7CiAKIAkJLyoKIAkJICogQ2hl Y2sgZm9yICJzb21ldGhpbmcuKiIuICBEZXBlbmRpbmcgb24gdGhlIGNvbXBsZXhpdHkgb2YgdGhl CkBAIC0xNjIsMTMgKzE2MywxOSBAQCB0cmFuc2Zvcm1UYXJnZXRMaXN0KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAogCQkJCWlmIChJc0EobGxhc3QoaW5kLT5pbmRpcmVj dGlvbiksIEFfU3RhcikpCiAJCQkJewotCQkJCQkvKiBJdCBpcyBzb21ldGhpbmcuKiwgZXhwYW5k IGludG8gbXVsdGlwbGUgaXRlbXMgKi8KLQkJCQkJcF90YXJnZXQgPSBsaXN0X2NvbmNhdChwX3Rh cmdldCwKLQkJCQkJCQkJCQkgICBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLAotCQkJCQkJ CQkJCQkJCQkJCSBpbmQsCi0JCQkJCQkJCQkJCQkJCQkJIHRydWUsCi0JCQkJCQkJCQkJCQkJCQkJ IGV4cHJLaW5kKSk7Ci0JCQkJCWNvbnRpbnVlOworCQkJCQlOb2RlCSAgICpjb2x1bW5zID0gRXhw YW5kSW5kaXJlY3Rpb25TdGFyKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCQkJCQlpbmQsCisJCQkJCQkJ CQkJCQkJCQkJdHJ1ZSwKKwkJCQkJCQkJCQkJCQkJCQlleHByS2luZCk7CisKKwkJCQkJaWYgKElz QShjb2x1bW5zLCBMaXN0KSkKKwkJCQkJeworCQkJCQkJLyogSXQgaXMgc29tZXRoaW5nLiosIGV4 cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCisJCQkJCQlwX3RhcmdldCA9IGxpc3RfY29uY2F0 KHBfdGFyZ2V0LCAoTGlzdCAqKSBjb2x1bW5zKTsKKwkJCQkJCWNvbnRpbnVlOworCQkJCQl9CisK KwkJCQkJdHJhbnNmb3JtZWQgPSAoTm9kZSAqKSBjb2x1bW5zOwogCQkJCX0KIAkJCX0KIAkJfQpA QCAtMTgwLDcgKzE4Nyw3IEBAIHRyYW5zZm9ybVRhcmdldExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRl LCBMaXN0ICp0YXJnZXRsaXN0LAogCQlwX3RhcmdldCA9IGxhcHBlbmQocF90YXJnZXQsCiAJCQkJ CQkgICB0cmFuc2Zvcm1UYXJnZXRFbnRyeShwc3RhdGUsCiAJCQkJCQkJCQkJCQlyZXMtPnZhbCwK LQkJCQkJCQkJCQkJCU5VTEwsCisJCQkJCQkJCQkJCQl0cmFuc2Zvcm1lZCwKIAkJCQkJCQkJCQkJ CWV4cHJLaW5kLAogCQkJCQkJCQkJCQkJcmVzLT5uYW1lLAogCQkJCQkJCQkJCQkJZmFsc2UpKTsK QEAgLTI1MSwxMCArMjU4LDE1IEBAIHRyYW5zZm9ybUV4cHJlc3Npb25MaXN0KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTGlzdCAqZXhwcmxpc3QsCiAKIAkJCWlmIChJc0EobGxhc3QoaW5kLT5pbmRpcmVj dGlvbiksIEFfU3RhcikpCiAJCQl7Ci0JCQkJLyogSXQgaXMgc29tZXRoaW5nLiosIGV4cGFuZCBp bnRvIG11bHRpcGxlIGl0ZW1zICovCi0JCQkJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LAot CQkJCQkJCQkJIEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsIGluZCwKLQkJCQkJCQkJCQkJ CQkJICAgZmFsc2UsIGV4cHJLaW5kKSk7CisJCQkJTm9kZQkgICAqY29scyA9IEV4cGFuZEluZGly ZWN0aW9uU3Rhcihwc3RhdGUsIGluZCwKKwkJCQkJCQkJCQkJCQkJIGZhbHNlLCBleHByS2luZCk7 CisKKwkJCQlpZiAoIWNvbHMgfHwgSXNBKGNvbHMsIExpc3QpKQorCQkJCQkvKiBJdCBpcyBzb21l dGhpbmcuKiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KKwkJCQkJcmVzdWx0ID0gbGlz dF9jb25jYXQocmVzdWx0LCAoTGlzdCAqKSBjb2xzKTsKKwkJCQllbHNlCisJCQkJCXJlc3VsdCA9 IGxhcHBlbmQocmVzdWx0LCBjb2xzKTsKKwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQl9CkBAIC0x MzQ1LDIyICsxMzU3LDMwIEBAIEV4cGFuZEFsbFRhYmxlcyhQYXJzZVN0YXRlICpwc3RhdGUsIGlu dCBsb2NhdGlvbikKICAqIEZvciByb2J1c3RuZXNzLCB3ZSB1c2UgYSBzZXBhcmF0ZSAibWFrZV90 YXJnZXRfZW50cnkiIGZsYWcgdG8gY29udHJvbAogICogdGhpcyByYXRoZXIgdGhhbiByZWx5aW5n IG9uIGV4cHJLaW5kLgogICovCi1zdGF0aWMgTGlzdCAqCitzdGF0aWMgTm9kZSAqCiBFeHBhbmRJ bmRpcmVjdGlvblN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCiAJ CQkJCSAgYm9vbCBtYWtlX3RhcmdldF9lbnRyeSwgUGFyc2VFeHByS2luZCBleHByS2luZCkKIHsK IAlOb2RlCSAgICpleHByOworCVBhcnNlRXhwcktpbmQgc3ZfZXhwcl9raW5kOworCWJvb2wJCXRy YWlsaW5nX3N0YXJfZXhwYW5zaW9uID0gZmFsc2U7CisKKwkvKiBTYXZlIGFuZCByZXN0b3JlIGlk ZW50aXR5IG9mIGV4cHJlc3Npb24gdHlwZSB3ZSdyZSBwYXJzaW5nICovCisJQXNzZXJ0KGV4cHJL aW5kICE9IEVYUFJfS0lORF9OT05FKTsKKwlzdl9leHByX2tpbmQgPSBwc3RhdGUtPnBfZXhwcl9r aW5kOworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBleHByS2luZDsKIAogCS8qIFN0cmlwIG9mZiB0 aGUgJyonIHRvIGNyZWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgcm93dHlwZSBvYmplY3QgKi8KLQlp bmQgPSBjb3B5T2JqZWN0KGluZCk7Ci0JaW5kLT5pbmRpcmVjdGlvbiA9IGxpc3RfdHJ1bmNhdGUo aW5kLT5pbmRpcmVjdGlvbiwKLQkJCQkJCQkJCSBsaXN0X2xlbmd0aChpbmQtPmluZGlyZWN0aW9u KSAtIDEpOworCWV4cHIgPSB0cmFuc2Zvcm1JbmRpcmVjdGlvbihwc3RhdGUsIGluZCwgJnRyYWls aW5nX3N0YXJfZXhwYW5zaW9uKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBzdl9leHByX2tp bmQ7CiAKLQkvKiBBbmQgdHJhbnNmb3JtIHRoYXQgKi8KLQlleHByID0gdHJhbnNmb3JtRXhwcihw c3RhdGUsIChOb2RlICopIGluZCwgZXhwcktpbmQpOworCS8qICcqJyB3YXMgY29uc3VtZWQgYnkg Z2VuZXJpYyB0eXBlIHN1YnNjcmlwdGluZyAqLworCWlmICghdHJhaWxpbmdfc3Rhcl9leHBhbnNp b24pCisJCXJldHVybiBleHByOwogCiAJLyogRXhwYW5kIHRoZSByb3d0eXBlIGV4cHJlc3Npb24g aW50byBpbmRpdmlkdWFsIGZpZWxkcyAqLwotCXJldHVybiBFeHBhbmRSb3dSZWZlcmVuY2UocHN0 YXRlLCBleHByLCBtYWtlX3RhcmdldF9lbnRyeSk7CisJcmV0dXJuIChOb2RlICopIEV4cGFuZFJv d1JlZmVyZW5jZShwc3RhdGUsIGV4cHIsIG1ha2VfdGFyZ2V0X2VudHJ5KTsKIH0KIAogLyoKQEAg LTE3ODUsMTMgKzE4MDUsMTggQEAgRmlndXJlQ29sbmFtZUludGVybmFsKE5vZGUgKm5vZGUsIGNo YXIgKipuYW1lKQogCQkJCWNoYXIJICAgKmZuYW1lID0gTlVMTDsKIAkJCQlMaXN0Q2VsbCAgICps OwogCi0JCQkJLyogZmluZCBsYXN0IGZpZWxkIG5hbWUsIGlmIGFueSwgaWdub3JpbmcgIioiIGFu ZCBzdWJzY3JpcHRzICovCisJCQkJLyoKKwkJCQkgKiBmaW5kIGxhc3QgZmllbGQgbmFtZSwgaWYg YW55LCBpZ25vcmluZyBzdWJzY3JpcHRzLCBhbmQgdXNlCisJCQkJICogJz9jb2x1bW4/JyB3aGVu IHRoZXJlJ3MgYSB0cmFpbGluZyAnKicuCisJCQkJICovCiAJCQkJZm9yZWFjaChsLCBpbmQtPmlu ZGlyZWN0aW9uKQogCQkJCXsKIAkJCQkJTm9kZQkgICAqaSA9IGxmaXJzdChsKTsKIAogCQkJCQlp ZiAoSXNBKGksIFN0cmluZykpCiAJCQkJCQlmbmFtZSA9IHN0clZhbChpKTsKKwkJCQkJZWxzZSBp ZiAoSXNBKGksIEFfU3RhcikpCisJCQkJCQlmbmFtZSA9ICI/Y29sdW1uPyI7CiAJCQkJfQogCQkJ CWlmIChmbmFtZSkKIAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggZDhkOTMw NTUyMGUuLjZhMjA3ZDU4YmUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMjk5 OCw3ICsxMjk5OCwxMSBAQCBwcmludFN1YnNjcmlwdHMoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYs IGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAl7CiAJCU5vZGUJICAgKnVwID0gKE5vZGUgKikg bGZpcnN0KHVwbGlzdF9pdGVtKTsKIAotCQlpZiAoSXNBKHVwLCBTdHJpbmcpKQorCQlpZiAoIXVw KQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIi4qIik7CisJCX0KKwkJZWxz ZSBpZiAoSXNBKHVwLCBTdHJpbmcpKQogCQl7CiAJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYs ICcuJyk7CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihz dHJWYWwodXApKSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCBlZmJhZmY4ZTcxMC4uYzlm NmE3NzI0YzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMjIsNCArMjIsNyBAQCBleHRl cm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBh cnNlRXhwcktpbmQgZXhwcktpbgogCiBleHRlcm4gY29uc3QgY2hhciAqUGFyc2VFeHByS2luZE5h bWUoUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKK2V4dGVybiBOb2RlICp0cmFuc2Zvcm1JbmRp cmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKKwkJCQkJCQkJ ICBib29sICp0cmFpbGluZ19zdGFyX2V4cGFuc2lvbik7CisKICNlbmRpZgkJCQkJCQkvKiBQQVJT RV9FWFBSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3Rl ZC9zcWwtc3FsanNvbi5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1z cWxqc29uLmMKaW5kZXggZTFlMmIxZTAzZjAuLjc0OGIyZTJiZWU2IDEwMDY0NAotLS0gYS9zcmMv aW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYworKysgYi9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpAQCAtNTE1LDE0ICs1MTUs MjQgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KIGlmIChzcWxjYS5zcWxj b2RlIDwgMCkgc3FscHJpbnQoKTt9CiAjbGluZSAxNDUgInNxbGpzb24ucGdjIgogCi0JLy8gZXJy b3IKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCi0gIHsgRUNQR2Rpc2Nvbm5l Y3QoX19MSU5FX18sICJDVVJSRU5UIik7CisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEws IDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBc ImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0n IDo6IGpzb25iICkgLiAqIC4geCApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiks KGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElD QVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOwogI2xpbmUgMTQ4ICJzcWxqc29u LnBnYyIKIAogaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KICNsaW5lIDE0OCAi c3FsanNvbi5wZ2MiCiAKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisgIHsg RUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisjbGluZSAxNTEgInNxbGpzb24u cGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTUxICJz cWxqc29uLnBnYyIKKwogCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciBiL3NyYy9pbnRlcmZhY2Vz L2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKaW5kZXggZTUzMmE4ZjQ0ZmEu LjkyYzVkMTUyMGM0IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0 ZWQvc3FsLXNxbGpzb24uc3RkZXJyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBl Y3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKQEAgLTM0NywxMiArMzQ3LDE3IEBAIFNRTCBlcnJvcjog c2NoZW1hICJqc29uYiIgZG9lcyBub3QgZXhpc3Qgb24gbGluZSAxMjEKIFtOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUg MTQ1OiB1c2luZyBQUWV4ZWMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAw Ci1bTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5lIDE0NTogYmFkIHJlc3BvbnNl IC0gRVJST1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlCi1M SU5FIDE6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4 IjogMX0sIHsieC4uLgotICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJRF06IGVjcGdf cHJvY2Vzc19vdXRwdXQgb24gbGluZSAxNDU6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAx IGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURd OiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTQ1OiBSRVNVTFQ6IFt7ImIiOiAxLCAiYyI6IDJ9LCBb eyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV1dIG9mZnNldDogLTE7IGFycmF5OiBubwor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4 ZWN1dGUgb24gbGluZSAxNDg6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEs ICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29u YiApIC4gKiAuIHggKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3Jl Z3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBv biBsaW5lIDE0ODogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEg b24gbGluZSAxNDg6IFJFU1VMVDogWzEsIFsxMiwgeyJ5IjogMX1dXSBvZmZzZXQ6IC0xOyBhcnJh eTogbm8KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCi1bTk9fUElEXTog cmFpc2luZyBzcWxzdGF0ZSAwQTAwMCAoc3FsY29kZSAtNDAwKTogcm93IGV4cGFuc2lvbiB2aWEg IioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBvbiBsaW5lIDE0NQotW05PX1BJRF06IHNxbGNhOiBj b2RlOiAtNDAwLCBzdGF0ZTogMEEwMDAKLVNRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioi IGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBvbiBsaW5lIDE0NQogW05PX1BJRF06IGVjcGdfZmluaXNo OiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24gY2xvc2VkCiBbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0 L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKaW5kZXggYmZhOTNlODZkMDAuLjk2YWYxMTNiZGE4 IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpz b24uc3Rkb3V0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5zdGRvdXQKQEAgLTM2LDMgKzM2LDUgQEAgRm91bmQganNvbj17IngiOiAxfQogRm91bmQg anNvbj1bMTIsIHsieSI6IDF9XQogRm91bmQganNvbj1beyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjogMX1dfV0KIEZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1dXQorRm91bmQganNvbj1beyJi IjogMSwgImMiOiAyfSwgW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dXQorRm91bmQg anNvbj1bMSwgWzEyLCB7InkiOiAxfV1dCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3Bn L3Rlc3Qvc3FsL3NxbGpzb24ucGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxq c29uLnBnYwppbmRleCA5NmJlMzkxOTkyOC4uNGU3NDI3ZDIzN2QgMTAwNjQ0Ci0tLSBhL3NyYy9p bnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKKysrIGIvc3JjL2ludGVyZmFjZXMv ZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYwpAQCAtMTQzLDcgKzE0MywxMCBAQCBFWEVDIFNRTCBF TkQgREVDTEFSRSBTRUNUSU9OOwogCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CiAK IAlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3si eCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLiopIElOVE8gOmpzb247Ci0J Ly8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwg U0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4 IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS4qLngpIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDkxYTdiODI1NzY0Li4xYTk0NTI5MzdkNSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTYwMzEsOCArNjAzMSwxNTkgQEAg U0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKICAKICgxIHJv dykKIAorLyogd2lsZCBjYXJkIG1lbWJlciBhY2Nlc3MgKi8KIFNFTEVDVCAoamIpLmEuKiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwotRVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21w b3NpdGUKKyAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImMiLCAiZCIsICJmIiwg eyJ5IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFtb MSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5Iiwg InoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAi WlpaIn19XV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMi fSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwg WzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJv dykKKworU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg P2NvbHVtbj8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIs ICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjog ImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCitTRUxFQ1Qg KGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7 InkiOiAieXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAi WVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJvdykKKworU0VMRUNUICh0LmpiKS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CitFUlJPUjogIG1pc3NpbmcgRlJPTS1jbGF1c2UgZW50cnkg Zm9yIHRhYmxlICJ0IgorTElORSAxOiBTRUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICBeCitTRUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEs IDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6 IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpa WiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYyIsICJkIiwgImYi LCB7InkiOiAieXl5IiwgInoiOiAienp6In1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKi5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYiAKKy0tLQorIAorKDEgcm93KQorCitT RUxFQ1QgKGpiKS5hLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIHggCistLS0K KyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYS4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5IgorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h LiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgID9jb2x1bW4/ICAgIAorLS0t LS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiJdCisoMSByb3cpCisKK1NFTEVDVCAoamIpLiou eCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAg ICB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9 LCB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLioueCBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg IHggICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoiOiAienp6In0s IHsieSI6ICJZWVkiLCAieiI6ICJaWloifV0KKygxIHJvdykKKworU0VMRUNUICgoamIpLiopLngg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworIHggCistLS0KKyAKKygxIHJvdykKKwor U0VMRUNUICgoamIpLiopLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworIHggCist LS0KKyAKKygxIHJvdykKKworU0VMRUNUICgoamIpLiopWzpdLnggRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9LCB7InkiOiAiWVlZIiwgInoi OiAiWlpaIn1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9LCB7InkiOiAiWVlZIiwgInoiOiAi WlpaIn1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLioueC4qIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CisgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiIsICJZWVkiLCAiWlpaIl0KKygxIHJvdykK KworU0VMRUNUIChqYikuKi54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAg ICB5ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJZWVkiXQorKDEgcm93KQor CitTRUxFQ1QgKGpiKS4qLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAg IHogICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsienp6IiwgIlpaWiJdCisoMSByb3cpCisK K1NFTEVDVCAoamIpLiouKi55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAg eSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAiWVlZIl0KKygxIHJvdykKKwor U0VMRUNUIChqYikuKi4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAg ICAgP2NvbHVtbj8gICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg WyJ5eXkiLCAienp6IiwgIllZWSIsICJaWloiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLiou Ki4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgP2NvbHVtbj8gCistLS0tLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuYi5jLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChq YikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIG5vdCBzdXBwb3J0ZWQK K0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioqIgorTElORSAxOiBTRUxFQ1QgKGpi KS5hLioqLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAg ICAgICBeCiAtLSBleHBsYWlucyBzaG91bGQgd29yawogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIApAQCAtNjA2MCw2ICs2 MjExLDMyIEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK ICAyCiAoMSByb3cpCiAKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYiku YS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24K KyAgIE91dHB1dDogamIuYS4qCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb ImMiLCAiZCIsICJmIiwgeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitFWFBM QUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6 IGpiLmEuKlsxOjJdLiouYgorKDIgcm93cykKKworU0VMRUNUIChqYikuYS4qWzE6Ml0uKi5iIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYiAKKy0tLQorIAorKDEgcm93KQorCiAtLSBq c29uYiBhcnJheSBhY2Nlc3MgaW4gcGxwZ3NxbAogRE8gJCQKIERFQ0xBUkUKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pz b25iLnNxbAppbmRleCA0YmQzOTkwZmI1NS4uYjQ4ZGVlZDdkYmQgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29u Yi5zcWwKQEAgLTE2MjYsMTMgKzE2MjYsNDQgQEAgU0VMRUNUIChqYikuYS54LnkgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKIFNFTEVDVCAoamIpLmIueC56IEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CiBTRUxFQ1QgKGpiKS5hLmIuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworCisvKiB3aWxkIGNhcmQgbWVtYmVyIGFjY2VzcyAqLworU0VMRUNUIChqYikuYS4qIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24g dDsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxF Q1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKHQuamIpLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CiBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CitTRUxFQ1QgKGpiKS5hLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VM RUNUIChqYikuYS4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIp LmEuKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLnggRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uIHQ7CitTRUxFQ1QgKChqYikuKilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u IHQ7CitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVD VCAoamIpLioueC4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4q LngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54LnogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiouKi55IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworU0VMRUNUIChqYikuKi4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworU0VMRUNUIChqYikuYS5iLmMuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIG5vdCBz dXBwb3J0ZWQKIAogLS0gZXhwbGFpbnMgc2hvdWxkIHdvcmsKIEVYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsK IFNFTEVDVCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CiBFWFBMQUlO IChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYS4q WzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLipb MToyXS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIAogLS0ganNvbmIgYXJyYXkg YWNjZXNzIGluIHBscGdzcWwKIERPICQkCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0006-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v11-0006-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w165 RnJvbSBiNzc1Mzk0ODc1YWM2ODNjYjRjYmNlMzY4NjM1NTVhNzJhODRkYjEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNzo1MyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djExIDYvOF0gSW1wbGVtZW50IHJlYWQtb25seSBkb3Qgbm90YXRpb24gZm9yIGpzb25iCgpUaGlz IHBhdGNoIGludHJvZHVjZXMgSlNPTkIgbWVtYmVyIGFjY2VzcyB1c2luZyBkb3Qgbm90YXRpb24s IHdpbGRjYXJkCmFjY2VzcywgYW5kIGFycmF5IHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcsIGFs aWduaW5nIHdpdGggdGhlIEpTT04Kc2ltcGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpZWQgaW4gU1FM OjIwMjMuIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZwpzeW50YXggZW5oYW5jZW1lbnRzIGFy ZSBhZGRlZDoKCjEuIFNpbXBsZSBkb3Qtbm90YXRpb24gYWNjZXNzIHRvIEpTT05CIG9iamVjdCBm aWVsZHMKMi4gV2lsZGNhcmQgZG90LW5vdGF0aW9uIGFjY2VzcyB0byBKU09OQiBvYmplY3QgZmll bGRzCjIuIFN1YnNjcmlwdGluZyBmb3IgaW5kZXggcmFuZ2UgYWNjZXNzIHRvIEpTT05CIGFycmF5 IGVsZW1lbnRzCgpFeGFtcGxlczoKCi0tIFNldHVwCmNyZWF0ZSB0YWJsZSB0KHggaW50LCB5IGpz b25iKTsKaW5zZXJ0IGludG8gdCBzZWxlY3QgMSwgJ3siYSI6IDEsICJiIjogNDJ9Jzo6anNvbmI7 Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAyLCAiYiI6IHsiYyI6IDQyfX0nOjpqc29u YjsKaW5zZXJ0IGludG8gdCBzZWxlY3QgMSwgJ3siYSI6IDMsICJiIjogeyJjIjogIjQyIn0sICJk IjpbMTEsIDEyXX0nOjpqc29uYjsKCi0tIEV4aXN0aW5nIHN5bnRheCBwcmVkYXRlcyB0aGUgU1FM IHN0YW5kYXJkOgpzZWxlY3QgKHQueSktPidiJyBmcm9tIHQ7CnNlbGVjdCAodC55KS0+J2InLT4n YycgZnJvbSB0OwpzZWxlY3QgKHQueSktPidkJy0+MCBmcm9tIHQ7CgotLSBKU09OIHNpbXBsaWZp ZWQgYWNjZXNzb3Igc3BlY2lmaWVkIGJ5IHRoZSBTUUwgc3RhbmRhcmQ6CnNlbGVjdCAodC55KS5i IGZyb20gdDsKc2VsZWN0ICh0LnkpLmIuYyBmcm9tIHQ7CnNlbGVjdCAodC55KS5kWzBdIGZyb20g dDsKClRoZSBTUUwgc3RhbmRhcmQgc3RhdGVzIHRoYXQgc2ltcGxpZmllZCBhY2Nlc3MgaXMgZXF1 aXZhbGVudCB0bzoKSlNPTl9RVUVSWSAoVkVQLCAnbGF4ICQuSkMnIFdJVEggQ09ORElUSU9OQUwg QVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJST1IpCgp3aGVyZToKICBWRVAg PSA8dmFsdWUgZXhwcmVzc2lvbiBwcmltYXJ5PgogIEpDID0gPEpTT04gc2ltcGxpZmllZCBhY2Nl c3NvciBvcCBjaGFpbj4KCkZvciBleGFtcGxlLCB0aGUgSlNPTl9RVUVSWSBlcXVpdmFsZW50cyBv ZiB0aGUgYWJvdmUgcXVlcmllcyBhcmU6CgpzZWxlY3QganNvbl9xdWVyeSh5LCAnbGF4ICQuYicg V0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5VTEwgT04gRU1QVFkgTlVMTCBPTiBFUlJP UikgZnJvbSB0OwpzZWxlY3QganNvbl9xdWVyeSh5LCAnbGF4ICQuYi5jJyBXSVRIIENPTkRJVElP TkFMIEFSUkFZIFdSQVBQRVIgTlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CnNl bGVjdCBqc29uX3F1ZXJ5KHksICdsYXggJC5kWzBdJyBXSVRIIENPTkRJVElPTkFMIEFSUkFZIFdS QVBQRVIgTlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CgpJbXBsZW1lbnRhdGlv biBkZXRhaWxzOgoKRXh0ZW5kcyB0aGUgZXhpc3RpbmcgY29udGFpbmVyIHN1YnNjcmlwdGluZyBp bnRlcmZhY2UgdG8gc3VwcG9ydApjb250YWluZXItc3BlY2lmaWMgaW5mb3JtYXRpb24sIHNwZWNp ZmljYWxseSBhIEpTT05QYXRoIGV4cHJlc3Npb24gZm9yCmpzb25iLgoKRHVyaW5nIHF1ZXJ5IHRy YW5zZm9ybWF0aW9uLCBkZXRlY3RzIGRvdC1ub3RhdGlvbiwgd2lsZGNhcmQgYWNjZXNzLAphbmQg c2xpY2VkIHN1YnNjcmlwdGluZy4gSWYgYW55IG9mIHRoZXNlIGFjY2Vzc29ycyBhcmUgcHJlc2Vu dCwKY29uc3RydWN0cyBhIEpTT05QYXRoIGV4cHJlc3Npb24gcmVwcmVzZW50aW5nIHRoZSBhY2Nl c3MgY2hhaW4uCgpEdXJpbmcgZXhlY3V0aW9uLCBpZiBhIEpTT05QYXRoIGV4cHJlc3Npb24gaXMg cHJlc2VudCBpbgpKc29uYlN1YldvcmtzcGFjZSwgZXhlY3V0ZXMgaXQgdmlhIEpzb25QYXRoUXVl cnkoKS4KCkRvZXMgbm90IHRyYW5zZm9ybSBhY2Nlc3NvcnMgZGlyZWN0bHkgaW50byBKU09OX1FV RVJZIGR1cmluZwp0cmFuc2Zvcm1hdGlvbiB0byBwcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgcXVlcnkg c3RydWN0dXJlIGZvciBFWFBMQUlOCmFuZCBDUkVBVEUgVklFVy4KLS0tCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbmJzdWJzLmMgICAgICAgICAgICAgfCAyODggKysrKysrKysrKysrKysrKy0K IHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNyArCiAu Li4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgICAgICAgICAgfCAxMDIgKysrKyst CiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciAgICAgfCAgODYgKysr KysKIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0ICAgICB8ICAgOCAr CiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjICAgICAgfCAgMzAgKysK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0ICAgICAgICAgICB8IDMwNSArKysr KysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAgICAgICAg ICAgICB8ICA4NSArKysrLQogOCBmaWxlcyBjaGFuZ2VkLCA4NzcgaW5zZXJ0aW9ucygrKSwgMzQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCmluZGV4IDNmZmU0MGNmYTQw Li4zNTg4YTFkMDYyZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwpAQCAtMTUsMjEgKzE1 LDMwIEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNF eHByLmgiCisjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9k ZUZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvc3Vic2NyaXB0aW5nLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX2NvZXJjZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9qc29uYi5oIgorI2luY2x1 ZGUgInV0aWxzL2pzb25wYXRoLmgiCiAKIAotLyogU3Vic2NyaXB0aW5nUmVmU3RhdGUud29ya3Nw YWNlIGZvciBqc29uYiBzdWJzY3JpcHRpbmcgZXhlY3V0aW9uICovCisvKgorICogU3Vic2NyaXB0 aW5nUmVmU3RhdGUud29ya3NwYWNlIGZvciBnZW5lcmljIGpzb25iIHN1YnNjcmlwdGluZyBleGVj dXRpb24uCisgKgorICogU3RvcmVzIHN0YXRlIGZvciBib3RoIGpzb25iIHNpbXBsZSBzdWJzY3Jp cHRpbmcgYW5kIGRvdCBub3RhdGlvbiBhY2Nlc3MuCisgKiBEb3Qgbm90YXRpb24gYWRkaXRpb25h bGx5IHVzZXMgYGpzb25wYXRoYCBmb3IgSnNvblBhdGggZXZhbHVhdGlvbi4KKyAqLwogdHlwZWRl ZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKIHsKIAlib29sCQlleHBlY3RBcnJheTsJLyoganNv bmIgcm9vdCBpcyBleHBlY3RlZCB0byBiZSBhbiBhcnJheSAqLwogCU9pZAkJICAgKmluZGV4T2lk OwkJLyogT0lEIG9mIGNvZXJjZWQgc3Vic2NyaXB0IGV4cHJlc3Npb24sIGNvdWxkCiAJCQkJCQkJ CSAqIGJlIG9ubHkgaW50ZWdlciBvciB0ZXh0ICovCiAJRGF0dW0JICAgKmluZGV4OwkJCS8qIFN1 YnNjcmlwdCB2YWx1ZXMgaW4gRGF0dW0gZm9ybWF0ICovCisJSnNvblBhdGggICAqanNvbnBhdGg7 CQkvKiBKc29uUGF0aCBmb3IgZG90IG5vdGF0aW9uIGV4ZWN1dGlvbiB2aWEKKwkJCQkJCQkJICog SnNvblBhdGhRdWVyeSgpICovCiB9IEpzb25iU3ViV29ya3NwYWNlOwogCiBzdGF0aWMgT2lkCkBA IC0xMTAsNiArMTE5LDIyMyBAQCBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqc3ViRXhwciwgT2lkIG51bXR5cGUpCiAJcmV0dXJuIHN1YkV4cHI7CiB9 CiAKKy8qCisgKiBEdXJpbmcgdHJhbnNmb3JtYXRpb24sIGRldGVybWluZSB3aGV0aGVyIHRvIGJ1 aWxkIGEgSnNvblBhdGgKKyAqIGZvciBKc29uUGF0aFF1ZXJ5KCkgZXhlY3V0aW9uLgorICoKKyAq IEpzb25QYXRoIGlzIG5lZWRlZCBpZiB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbmNsdWRlczoKKyAq IC0gU3RyaW5nLWJhc2VkIGFjY2VzcyAoZG90IG5vdGF0aW9uKQorICogLSBXaWxkY2FyZCAoYCpg KQorICogLSBTbGljZS1iYXNlZCBzdWJzY3JpcHRpbmcKKyAqCisgKiBPdGhlcndpc2UsIHNpbXBs ZSBqc29uYiBzdWJzY3JpcHRpbmcgaXMgc3VmZmljaWVudC4KKyAqLworc3RhdGljIGJvb2wKK2pz b25iX2NoZWNrX2pzb25wYXRoX25lZWRlZChMaXN0ICppbmRpcmVjdGlvbikKK3sKKwlMaXN0Q2Vs bCAgICpsYzsKKworCWZvcmVhY2gobGMsIGluZGlyZWN0aW9uKQorCXsKKwkJTm9kZQkgICAqYWNj ZXNzb3IgPSBsZmlyc3QobGMpOworCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykgfHwKKwkJ CUlzQShhY2Nlc3NvciwgQV9TdGFyKSkKKwkJCXJldHVybiB0cnVlOworCQllbHNlCisJCXsKKwkJ CUFzc2VydChJc0EoYWNjZXNzb3IsIEFfSW5kaWNlcykpOworCisJCQlpZiAoY2FzdE5vZGUoQV9J bmRpY2VzLCBhY2Nlc3NvciktPmlzX3NsaWNlKQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQor CisJcmV0dXJuIGZhbHNlOworfQorCisvKgorICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgY29uc3Ry dWN0aW5nIEpzb25QYXRoIGV4cHJlc3Npb25zLgorICoKKyAqIFRoZSBtYWtlX2pzb25wYXRoX2l0 ZW1fKiBmdW5jdGlvbnMgY3JlYXRlIHZhcmlvdXMgdHlwZXMgb2YgSnNvblBhdGhQYXJzZUl0ZW0K KyAqIG5vZGVzLCB3aGljaCBhcmUgdXNlZCB0byBidWlsZCBKc29uUGF0aCBleHByZXNzaW9ucyBm b3IganNvbmIgc2ltcGxpZmllZAorICogYWNjZXNzb3IuCisgKi8KKworc3RhdGljIEpzb25QYXRo UGFyc2VJdGVtICoKK21ha2VfanNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5cGUpCit7 CisJSnNvblBhdGhQYXJzZUl0ZW0gKnYgPSBwYWxsb2Moc2l6ZW9mKCp2KSk7CisKKwl2LT50eXBl ID0gdHlwZTsKKwl2LT5uZXh0ID0gTlVMTDsKKworCXJldHVybiB2OworfQorCitzdGF0aWMgSnNv blBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2ludChpbnQzMiB2YWwsIExpc3Qg KipleHBycykKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqanBpID0gbWFrZV9qc29ucGF0aF9pdGVt KGpwaU51bWVyaWMpOworCisJanBpLT52YWx1ZS5udW1lcmljID0KKwkJRGF0dW1HZXROdW1lcmlj KERpcmVjdEZ1bmN0aW9uQ2FsbDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKHZhbCkpKTsK KworCSpleHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFs aWRPaWQsIDQsCisJCQkJCQkJCQkgICBJbnQzMkdldERhdHVtKHZhbCksIGZhbHNlLCB0cnVlKSk7 CisKKwlyZXR1cm4ganBpOworfQorCisvKgorICogQ29udmVydCBhbiBleHByZXNzaW9uIGludG8g YSBKc29uUGF0aFBhcnNlSXRlbS4KKyAqIElmIHRoZSBleHByZXNzaW9uIGlzIGEgY29uc3RhbnQg aW50ZWdlciwgY3JlYXRlIGEgZGlyZWN0IG51bWVyaWMgaXRlbS4KKyAqIE90aGVyd2lzZSwgY3Jl YXRlIGEgdmFyaWFibGUgcmVmZXJlbmNlIGFuZCBhZGQgaXQgdG8gdGhlIGV4cHJlc3Npb24gbGlz dC4KKyAqLworc3RhdGljIEpzb25QYXRoUGFyc2VJdGVtICoKK21ha2VfanNvbnBhdGhfaXRlbV9l eHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAqKmV4cHJzKQoreworCUNv bnN0CSAgICpjbnN0OworCisJZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBleHByLCBwc3Rh dGUtPnBfZXhwcl9raW5kKTsKKworCWlmICghSXNBKGV4cHIsIENvbnN0KSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJy bXNnKCJqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1cHBvcnRzIHN1YnNjcmlwdGluZyBpbiBj b25zdCBpbnQ0LCBnb3QgdHlwZTogJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUo ZXhwcikpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4 cHIpKSkpOworCisJY25zdCA9IChDb25zdCAqKSBleHByOworCisJaWYgKGNuc3QtPmNvbnN0dHlw ZSA9PSBJTlQ0T0lEICYmICFjbnN0LT5jb25zdGlzbnVsbCkKKwl7CisJCWludDMyCQl2YWwgPSBE YXR1bUdldEludDMyKGNuc3QtPmNvbnN0dmFsdWUpOworCisJCXJldHVybiBtYWtlX2pzb25wYXRo X2l0ZW1faW50KHZhbCwgZXhwcnMpOworCX0KKworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCSBlcnJtc2coImpzb25iIHNpbXBsaWZp ZWQgYWNjZXNzb3Igc3VwcG9ydHMgc3Vic2NyaXB0aW5nIGluIHR5cGU6IElOVDQsIGdvdCB0eXBl OiAlcyIsCisJCQkJCWZvcm1hdF90eXBlX2JlKGNuc3QtPmNvbnN0dHlwZSkpLAorCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpKTsKK30KKworLyoKKyAq IGpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoCisgKgorICogQ29uc3RydWN0cyBhIEpzb25Q YXRoIGV4cHJlc3Npb24gZnJvbSBhIGxpc3Qgb2YgaW5kaXJlY3Rpb25zLgorICogVGhpcyBmdW5j dGlvbiBpcyB1c2VkIHdoZW4ganNvbmIgc3Vic2NyaXB0aW5nIGludm9sdmVzIGRvdCBub3RhdGlv biwKKyAqIHdpbGRjYXJkcyAoKiksIG9yIHNsaWNlLWJhc2VkIHN1YnNjcmlwdGluZywgcmVxdWly aW5nIEpzb25QYXRoLWJhc2VkCisgKiBldmFsdWF0aW9uLgorICoKKyAqIFRoZSBmdW5jdGlvbiBt b2RpZmllcyB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbiBwbGFjZSwgcmVtb3ZpbmcgcHJvY2Vzc2Vk CisgKiBlbGVtZW50cyBhcyBpdCBjb252ZXJ0cyB0aGVtIGludG8gSnNvblBhdGggY29tcG9uZW50 cywgYXMgZm9sbG93czoKKyAqIC0gU3RyaW5nIGtleXMgKGRvdCBub3RhdGlvbikgLT4ganBpS2V5 IGl0ZW1zLgorICogLSBXaWxkY2FyZCAoKikgLT4ganBpQW55S2V5IGl0ZW0uCisgKiAtIEFycmF5 IGluZGljZXMgYW5kIHNsaWNlcyAtPiBqcGlJbmRleEFycmF5IGl0ZW1zLgorICoKKyAqIFBhcmFt ZXRlcnM6CisgKiAtIHBzdGF0ZTogUGFyc2Ugc3RhdGUgY29udGV4dC4KKyAqIC0gaW5kaXJlY3Rp b246IExpc3Qgb2Ygc3Vic2NyaXB0aW5nIGV4cHJlc3Npb25zIChtb2RpZmllZCBpbi1wbGFjZSku CisgKiAtIHVleHByczogVXBwZXItYm91bmQgZXhwcmVzc2lvbnMgZXh0cmFjdGVkIGZyb20gc3Vi c2NyaXB0cy4KKyAqIC0gbGV4cHJzOiBMb3dlci1ib3VuZCBleHByZXNzaW9ucyBleHRyYWN0ZWQg ZnJvbSBzdWJzY3JpcHRzLgorICogUmV0dXJuczoKKyAqIC0gYSBDb25zdCBub2RlIGNvbnRhaW5p bmcgdGhlIHRyYW5zZm9ybWVkIEpzb25QYXRoIGV4cHJlc3Npb24uCisgKi8KK3N0YXRpYyBOb2Rl ICoKK2pzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlz dCAqKmluZGlyZWN0aW9uLAorCQkJCQkJCSAgTGlzdCAqKnVleHBycywgTGlzdCAqKmxleHBycykK K3sKKwlKc29uUGF0aFBhcnNlUmVzdWx0IGpwcmVzOworCUpzb25QYXRoUGFyc2VJdGVtICpwYXRo ID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaVJvb3QpOworCUxpc3RDZWxsICAgKmxjOworCURhdHVt CQlqc3A7CisJaW50CQkJcGF0aGxlbiA9IDA7CisKKwkqdWV4cHJzID0gTklMOworCSpsZXhwcnMg PSBOSUw7CisKKwlqcHJlcy5leHByID0gcGF0aDsKKwlqcHJlcy5sYXggPSB0cnVlOworCisJZm9y ZWFjaChsYywgKmluZGlyZWN0aW9uKQorCXsKKwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3Qo bGMpOworCQlKc29uUGF0aFBhcnNlSXRlbSAqanBpOworCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0 cmluZykpCisJCXsKKwkJCWNoYXIJICAgKmZpZWxkID0gc3RyVmFsKGFjY2Vzc29yKTsKKworCQkJ anBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUtleSk7CisJCQlqcGktPnZhbHVlLnN0cmluZy52 YWwgPSBmaWVsZDsKKwkJCWpwaS0+dmFsdWUuc3RyaW5nLmxlbiA9IHN0cmxlbihmaWVsZCk7CisK KwkJCSp1ZXhwcnMgPSBsYXBwZW5kKCp1ZXhwcnMsIGFjY2Vzc29yKTsKKwkJfQorCQllbHNlIGlm IChJc0EoYWNjZXNzb3IsIEFfU3RhcikpCisJCXsKKwkJCWpwaSA9IG1ha2VfanNvbnBhdGhfaXRl bShqcGlBbnlLZXkpOworCisJCQkqdWV4cHJzID0gbGFwcGVuZCgqdWV4cHJzLCBOVUxMKTsKKwkJ fQorCQllbHNlIGlmIChJc0EoYWNjZXNzb3IsIEFfSW5kaWNlcykpCisJCXsKKwkJCUFfSW5kaWNl cyAgKmFpID0gY2FzdE5vZGUoQV9JbmRpY2VzLCBhY2Nlc3Nvcik7CisKKwkJCWpwaSA9IG1ha2Vf anNvbnBhdGhfaXRlbShqcGlJbmRleEFycmF5KTsKKwkJCWpwaS0+dmFsdWUuYXJyYXkubmVsZW1z ID0gMTsKKwkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXMgPSBwYWxsb2Moc2l6ZW9mKGpwaS0+dmFs dWUuYXJyYXkuZWxlbXNbMF0pKTsKKworCQkJaWYgKGFpLT5pc19zbGljZSkKKwkJCXsKKwkJCQl3 aGlsZSAobGlzdF9sZW5ndGgoKmxleHBycykgPCBsaXN0X2xlbmd0aCgqdWV4cHJzKSkKKwkJCQkJ KmxleHBycyA9IGxhcHBlbmQoKmxleHBycywgTlVMTCk7CisKKwkJCQlpZiAoYWktPmxpZHgpCisJ CQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0uZnJvbSA9IG1ha2VfanNvbnBhdGhfaXRlbV9l eHByKHBzdGF0ZSwgYWktPmxpZHgsIGxleHBycyk7CisJCQkJZWxzZQorCQkJCQlqcGktPnZhbHVl LmFycmF5LmVsZW1zWzBdLmZyb20gPSBtYWtlX2pzb25wYXRoX2l0ZW1faW50KDAsIGxleHBycyk7 CisKKwkJCQlpZiAoYWktPnVpZHgpCisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8g PSBtYWtlX2pzb25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT51aWR4LCB1ZXhwcnMpOworCQkJ CWVsc2UKKwkJCQl7CisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8gPSBtYWtlX2pz b25wYXRoX2l0ZW0oanBpTGFzdCk7CisJCQkJCSp1ZXhwcnMgPSBsYXBwZW5kKCp1ZXhwcnMsIE5V TEwpOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlBc3NlcnQoYWktPnVpZHggJiYg IWFpLT5saWR4KTsKKwkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZyb20gPSBtYWtlX2pz b25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT51aWR4LCB1ZXhwcnMpOworCQkJCWpwaS0+dmFs dWUuYXJyYXkuZWxlbXNbMF0udG8gPSBOVUxMOworCQkJfQorCQl9CisJCWVsc2UKKwkJCWJyZWFr OworCisJCS8qIGFwcGVuZCBwYXRoIGl0ZW0gKi8KKwkJcGF0aC0+bmV4dCA9IGpwaTsKKwkJcGF0 aCA9IGpwaTsKKwkJcGF0aGxlbisrOworCX0KKworCWlmICgqbGV4cHJzKQorCXsKKwkJd2hpbGUg KGxpc3RfbGVuZ3RoKCpsZXhwcnMpIDwgbGlzdF9sZW5ndGgoKnVleHBycykpCisJCQkqbGV4cHJz ID0gbGFwcGVuZCgqbGV4cHJzLCBOVUxMKTsKKwl9CisKKwkqaW5kaXJlY3Rpb24gPSBsaXN0X2Rl bGV0ZV9maXJzdF9uKCppbmRpcmVjdGlvbiwgcGF0aGxlbik7CisKKwlqc3AgPSBqc29uUGF0aEZy b21QYXJzZVJlc3VsdCgmanByZXMsIDAsIE5VTEwpOworCisJcmV0dXJuIChOb2RlICopIG1ha2VD b25zdChKU09OUEFUSE9JRCwgLTEsIEludmFsaWRPaWQsIC0xLCBqc3AsIGZhbHNlLCBmYWxzZSk7 Cit9CisKIC8qCiAgKiBGaW5pc2ggcGFyc2UgYW5hbHlzaXMgb2YgYSBTdWJzY3JpcHRpbmdSZWYg ZXhwcmVzc2lvbiBmb3IgYSBqc29uYi4KICAqCkBAIC0xMjYsMTkgKzM1MiwzMiBAQCBqc29uYl9z dWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCUxpc3QJICAgKnVw cGVySW5kZXhwciA9IE5JTDsKIAlMaXN0Q2VsbCAgICppZHg7CiAKKwkvKiBEZXRlcm1pbmUgdGhl IHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIg Ki8KKwlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsKKwlzYnNyZWYtPnJlZnR5cG1vZCA9 IC0xOworCisJaWYgKGpzb25iX2NoZWNrX2pzb25wYXRoX25lZWRlZCgqaW5kaXJlY3Rpb24pKQor CXsKKwkJc2JzcmVmLT5yZWZqc29uYnBhdGggPQorCQkJanNvbmJfc3Vic2NyaXB0X21ha2VfanNv bnBhdGgocHN0YXRlLCBpbmRpcmVjdGlvbiwKKwkJCQkJCQkJCQkgICZzYnNyZWYtPnJlZnVwcGVy aW5kZXhwciwKKwkJCQkJCQkJCQkgICZzYnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CisJCXJldHVy bjsKKwl9CisKIAkvKgogCSAqIFRyYW5zZm9ybSBhbmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4 cHJlc3Npb25zLiBKc29uYiBzdWJzY3JpcHRpbmcKIAkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNl cywgbG9vayBvbmx5IGFuZCB0aGUgdXBwZXIgaW5kZXguCiAJICovCiAJZm9yZWFjaChpZHgsICpp bmRpcmVjdGlvbikKIAl7CisJCU5vZGUJICAgKmkgPSBsZmlyc3QoaWR4KTsKIAkJQV9JbmRpY2Vz ICAqYWk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CiAKLQkJaWYgKCFJc0EobGZpcnN0KGlkeCksIEFf SW5kaWNlcykpCi0JCQlicmVhazsKKwkJQXNzZXJ0KElzQShpLCBBX0luZGljZXMpKTsKIAotCQlh aSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwkJYWkgPSBjYXN0Tm9kZShBX0luZGlj ZXMsIGkpOwogCiAJCWlmIChpc1NsaWNlKQogCQl7CkBAIC0xNzUsMTAgKzQxNCw2IEBAIGpzb25i X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVmLT5y ZWZ1cHBlcmluZGV4cHIgPSB1cHBlckluZGV4cHI7CiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIg PSBOSUw7CiAKLQkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRp bmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIgKi8KLQlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09O Qk9JRDsKLQlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOwotCiAJLyogUmVtb3ZlIHByb2Nlc3NlZCBl bGVtZW50cyAqLwogCWlmICh1cHBlckluZGV4cHIpCiAJCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVs ZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBsaXN0X2xlbmd0aCh1cHBlckluZGV4cHIpKTsKQEAg LTIzMyw3ICs0NjgsNyBAQCBqc29uYl9zdWJzY3JpcHRfY2hlY2tfc3Vic2NyaXB0cyhFeHByU3Rh dGUgKnN0YXRlLAogCQkJICogRm9yIGpzb25iIGZldGNoIGFuZCBhc3NpZ24gZnVuY3Rpb25zIHdl IG5lZWQgdG8gcHJvdmlkZSBwYXRoIGluCiAJCQkgKiB0ZXh0IGZvcm1hdC4gQ29udmVydCBpZiBp dCdzIG5vdCBhbHJlYWR5IHRleHQuCiAJCQkgKi8KLQkJCWlmICh3b3Jrc3BhY2UtPmluZGV4T2lk W2ldID09IElOVDRPSUQpCisJCQlpZiAoIXdvcmtzcGFjZS0+anNvbnBhdGggJiYgd29ya3NwYWNl LT5pbmRleE9pZFtpXSA9PSBJTlQ0T0lEKQogCQkJewogCQkJCURhdHVtCQlkYXR1bSA9IHNic3Jl ZnN0YXRlLT51cHBlcmluZGV4W2ldOwogCQkJCWNoYXIJICAgKmNzID0gRGF0dW1HZXRDU3RyaW5n KERpcmVjdEZ1bmN0aW9uQ2FsbDEoaW50NG91dCwgZGF0dW0pKTsKQEAgLTI2MSwxNyArNDk2LDMy IEBAIGpzb25iX3N1YnNjcmlwdF9mZXRjaChFeHByU3RhdGUgKnN0YXRlLAogewogCVN1YnNjcmlw dGluZ1JlZlN0YXRlICpzYnNyZWZzdGF0ZSA9IG9wLT5kLnNic3JlZi5zdGF0ZTsKIAlKc29uYlN1 YldvcmtzcGFjZSAqd29ya3NwYWNlID0gKEpzb25iU3ViV29ya3NwYWNlICopIHNic3JlZnN0YXRl LT53b3Jrc3BhY2U7Ci0JSnNvbmIJICAgKmpzb25iU291cmNlOwogCiAJLyogU2hvdWxkIG5vdCBn ZXQgaGVyZSBpZiBzb3VyY2UganNvbmIgKG9yIGFueSBzdWJzY3JpcHQpIGlzIG51bGwgKi8KIAlB c3NlcnQoISgqb3AtPnJlc251bGwpKTsKIAotCWpzb25iU291cmNlID0gRGF0dW1HZXRKc29uYlAo Km9wLT5yZXN2YWx1ZSk7Ci0JKm9wLT5yZXN2YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpzb25i U291cmNlLAotCQkJCQkJCQkJICB3b3Jrc3BhY2UtPmluZGV4LAotCQkJCQkJCQkJICBzYnNyZWZz dGF0ZS0+bnVtdXBwZXIsCi0JCQkJCQkJCQkgIG9wLT5yZXNudWxsLAotCQkJCQkJCQkJICBmYWxz ZSk7CisJaWYgKHdvcmtzcGFjZS0+anNvbnBhdGgpCisJeworCQlib29sCQllbXB0eSA9IGZhbHNl OworCQlib29sCQllcnJvciA9IGZhbHNlOworCisJCSpvcC0+cmVzdmFsdWUgPSBKc29uUGF0aFF1 ZXJ5KCpvcC0+cmVzdmFsdWUsIHdvcmtzcGFjZS0+anNvbnBhdGgsCisJCQkJCQkJCQkgIEpTV19D T05ESVRJT05BTCwKKwkJCQkJCQkJCSAgJmVtcHR5LCAmZXJyb3IsIE5VTEwsCisJCQkJCQkJCQkg IE5VTEwpOworCisJCSpvcC0+cmVzbnVsbCA9IGVtcHR5IHx8IGVycm9yOworCX0KKwllbHNlCisJ eworCQlKc29uYgkgICAqanNvbmJTb3VyY2UgPSBEYXR1bUdldEpzb25iUCgqb3AtPnJlc3ZhbHVl KTsKKworCQkqb3AtPnJlc3ZhbHVlID0ganNvbmJfZ2V0X2VsZW1lbnQoanNvbmJTb3VyY2UsCisJ CQkJCQkJCQkJICB3b3Jrc3BhY2UtPmluZGV4LAorCQkJCQkJCQkJCSAgc2JzcmVmc3RhdGUtPm51 bXVwcGVyLAorCQkJCQkJCQkJCSAgb3AtPnJlc251bGwsCisJCQkJCQkJCQkJICBmYWxzZSk7CisJ fQogfQogCiAvKgpAQCAtMzgxLDYgKzYzMSw3IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vi c2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJTGlzdENlbGwgICAqbGM7CiAJaW50CQkJbnVwcGVyID0g c2JzcmVmLT5yZWZ1cHBlcmluZGV4cHItPmxlbmd0aDsKIAljaGFyCSAgICpwdHI7CisJYm9vbAkJ dXNlSnNvbnBhdGggPSBzYnNyZWYtPnJlZmpzb25icGF0aCAhPSBOVUxMOwogCiAJLyogQWxsb2Nh dGUgdHlwZS1zcGVjaWZpYyB3b3Jrc3BhY2Ugd2l0aCBzcGFjZSBmb3IgcGVyLXN1YnNjcmlwdCBk YXRhICovCiAJd29ya3NwYWNlID0gcGFsbG9jMChNQVhBTElHTihzaXplb2YoSnNvbmJTdWJXb3Jr c3BhY2UpKSArCkBAIC0zODgsNiArNjM5LDkgQEAganNvbmJfZXhlY19zZXR1cChjb25zdCBTdWJz Y3JpcHRpbmdSZWYgKnNic3JlZiwKIAl3b3Jrc3BhY2UtPmV4cGVjdEFycmF5ID0gZmFsc2U7CiAJ cHRyID0gKChjaGFyICopIHdvcmtzcGFjZSkgKyBNQVhBTElHTihzaXplb2YoSnNvbmJTdWJXb3Jr c3BhY2UpKTsKIAorCWlmICh1c2VKc29ucGF0aCkKKwkJd29ya3NwYWNlLT5qc29ucGF0aCA9IERh dHVtR2V0SnNvblBhdGhQKGNhc3ROb2RlKENvbnN0LCBzYnNyZWYtPnJlZmpzb25icGF0aCktPmNv bnN0dmFsdWUpOworCiAJLyoKIAkgKiBUaGlzIGNvZGluZyBhc3N1bWVzIHNpemVvZihEYXR1bSkg Pj0gc2l6ZW9mKE9pZCksIGVsc2Ugd2UgbWlnaHQKIAkgKiBtaXNhbGlnbiB0aGUgaW5kZXhPaWQg cG9pbnRlcgpAQCAtNDA0LDcgKzY1OCw3IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vic2Ny aXB0aW5nUmVmICpzYnNyZWYsCiAJCU5vZGUJICAgKmV4cHIgPSBsZmlyc3QobGMpOwogCQlpbnQJ CQlpID0gZm9yZWFjaF9jdXJyZW50X2luZGV4KGxjKTsKIAotCQl3b3Jrc3BhY2UtPmluZGV4T2lk W2ldID0gZXhwclR5cGUoZXhwcik7CisJCXdvcmtzcGFjZS0+aW5kZXhPaWRbaV0gPSBqc29uYl9z dWJzY3JpcHRfdHlwZShleHByKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCBk MDU3NmRhM2UyNS4uOWQzODBlZDYwZDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03MTgsNiAr NzE4LDEzIEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGluZ1JlZgogCUV4cHIJICAgKnJlZmV4 cHI7CiAJLyogZXhwcmVzc2lvbiBmb3IgdGhlIHNvdXJjZSB2YWx1ZSwgb3IgTlVMTCBpZiBmZXRj aCAqLwogCUV4cHIJICAgKnJlZmFzc2duZXhwcjsKKworCS8qCisJICogY29udGFpbmVyLXNwZWNp ZmljIGV4dHJhIGluZm9ybWF0aW9uLCBjdXJyZW50bHkgdXNlZCBvbmx5IGJ5IGpzb25iLgorCSAq IHN0b3JlcyBhIEpzb25QYXRoIGV4cHJlc3Npb24gd2hlbiBqc29uYiBkb3Qgbm90YXRpb24gaXMg dXNlZC4gTlVMTCBmb3IKKwkgKiBzaW1wbGUgc3Vic2NyaXB0aW5nLgorCSAqLworCU5vZGUJICAg KnJlZmpzb25icGF0aDsKIH0gU3Vic2NyaXB0aW5nUmVmOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwppbmRleCAzOTIyMWY5ZWE1ZC4u ZTFlMmIxZTAzZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3Rl ZC9zcWwtc3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5jCkBAIC00MTcsMTIgKzQxNywxMTIgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAw KSBzcWxwcmludCgpO30KIAkgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZW9mKGlzX2pzb24pOyBp KyspCiAJCSAgcHJpbnRmKCJGb3VuZCBpc19qc29uWyVkXTogJXNcbiIsIGksIGlzX2pzb25baV0g PyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAotICB7IEVDUEdkaXNjb25uZWN0KF9fTElORV9fLCAiQ1VS UkVOVCIpOworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFs LCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9fScgOjoganNv bmIgKSAuIFwiYVwiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykx MDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBO VUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAxMTggInNxbGpzb24ucGdjIgog CiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogI2xpbmUgMTE4ICJzcWxqc29u LnBnYyIKIAorCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhf X0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggJ3tc ImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiAuIFwiYVwiICkiLCBFQ1BHdF9F T0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVv ZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3Rf RU9SVCk7CisjbGluZSAxMjEgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDAp IHNxbHByaW50KCk7fQorI2xpbmUgMTIxICJzcWxqc29uLnBnYyIKKworCS8vIGVycm9yCisKKwl7 IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBq c29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iICkgLiBhICki LCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEw MjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAw TCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMjQgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3Fs Y29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTI0ICJzcWxqc29uLnBnYyIKKworCXByaW50 ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwg TlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6 IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iICkgLiBhIC4gYiApIiwgRUNQR3RfRU9JVCwgCisJRUNQ R3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAor CUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xp bmUgMTI3ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgp O30KKyNsaW5lIDEyNyAic3FsanNvbi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3Jt YWwsICJzZWxlY3QganNvbiAoIGNvYWxlc2NlICgganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAx LCBcImNcIjogMn19JyA6OiBqc29uYiApIC4gYyApICwgJ251bGwnICkgKSIsIEVDUEd0X0VPSVQs IAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNo YXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JU KTsKKyNsaW5lIDEzMCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3Fs cHJpbnQoKTt9CisjbGluZSAxMzAgInNxbGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBqc29u PSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BH c3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9 LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29u YiApIC4gYiBbIDAgXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcp MTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwg TlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTMzICJzcWxqc29uLnBnYyIK KworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEzMyAic3FsanNv bi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8o X19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwi OiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICki LCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEw MjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAw TCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMzYgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3Fs Y29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTM2ICJzcWxqc29uLnBnYyIKKworCXByaW50 ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwg TlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6 IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9 XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIs KGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9O T19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEzOSAi c3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGlu ZSAxMzkgInNxbGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsK KworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2Vs ZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhc IjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gYiAuIHggKSIs IEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAy NCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBM LCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDE0MiAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxj b2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNDIgInNxbGpzb24ucGdjIgorCisJcHJpbnRm KCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBO VUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjog MSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1d fV19JyA6OiBqc29uYiApIC4gKiApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiks KGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElD QVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTQ1ICJzcWxqc29u LnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDE0NSAi c3FsanNvbi5wZ2MiCisKKwkvLyBlcnJvcgorCisgIHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18s ICJDVVJSRU5UIik7CisjbGluZSAxNDggInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29k ZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTQ4ICJzcWxqc29uLnBnYyIKKwogCiAgIHJldHVy biAwOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3Nx bC1zcWxqc29uLnN0ZGVyciBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwt c3FsanNvbi5zdGRlcnIKaW5kZXggZTU1YTk1ZGQ3MTEuLmU1MzJhOGY0NGZhIDEwMDY0NAotLS0g YS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCisr KyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIK QEAgLTI2OCw1ICsyNjgsOTEgQEAgU1FMIGVycm9yOiBjYW5ub3QgdXNlIHR5cGUganNvbmIgaW4g UkVUVVJOSU5HIGNsYXVzZSBvZiBKU09OX1NFUklBTElaRSgpIG9uIGxpbmUKIFtOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBs aW5lIDEwMjogUkVTVUxUOiBmIG9mZnNldDogLTE7IGFycmF5OiBubwogW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAx MTg6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBq c29uYiApIC4gImEiICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9y ZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDExODogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQg b24gbGluZSAxMTg6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxkcworW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2dldF9kYXRh IG9uIGxpbmUgMTE4OiBSRVNVTFQ6IHsiYiI6IDEsICJjIjogMn0gb2Zmc2V0OiAtMTsgYXJyYXk6 IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVj cGdfZXhlY3V0ZSBvbiBsaW5lIDEyMTogcXVlcnk6IHNlbGVjdCBqc29uICggJ3siYSI6IHsiYiI6 IDEsICJjIjogMn19JyA6OiBqc29uYiAuICJhIiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjE6IHVzaW5nIFBRZXhl YworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTIxOiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIHNjaGVt YSAianNvbmIiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHNlbGVjdCBqc29uICggJ3siYSI6IHsi YiI6IDEsICJjIjogMn19JyA6OiBqc29uYiAuICJhIiApCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAs IHN0YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgM0YwMDAgKHNxbGNvZGUg LTQwMCk6IHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0IG9uIGxpbmUgMTIxCitbTk9fUElE XTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiAzRjAwMAorU1FMIGVycm9yOiBzY2hlbWEgImpz b25iIiBkb2VzIG5vdCBleGlzdCBvbiBsaW5lIDEyMQorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBv biBsaW5lIDEyNDogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAy fX0nIDo6IGpzb25iICkgLiBhICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBl Y3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNDogdXNpbmcgUFFleGVjCitbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vzc19v dXRwdXQgb24gbGluZSAxMjQ6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxkcwor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2dl dF9kYXRhIG9uIGxpbmUgMTI0OiBSRVNVTFQ6IHsiYiI6IDEsICJjIjogMn0gb2Zmc2V0OiAtMTsg YXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNzogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJh IjogeyJiIjogMSwgImMiOiAyfX0nIDo6IGpzb25iICkgLiBhIC4gYiApOyB3aXRoIDAgcGFyYW1l dGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBj b2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjc6 IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTI3OiBjb3JyZWN0bHkgZ290IDEg dHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAw MDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEyNzogUkVTVUxUOiAxIG9mZnNl dDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAK K1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzA6IHF1ZXJ5OiBzZWxlY3QganNvbiAo IGNvYWxlc2NlICgganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiAp IC4gYyApICwgJ251bGwnICkgKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVj cGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMwOiB1c2luZyBQUWV4ZWMKK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291 dHB1dCBvbiBsaW5lIDEzMDogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0 X2RhdGEgb24gbGluZSAxMzA6IFJFU1VMVDogbnVsbCBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tO T19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVj dXRlIG9uIGxpbmUgMTMzOiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAi YyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIg KSAuIGIgWyAwIF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3Jl Z3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMzOiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBv biBsaW5lIDEzMzogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEg b24gbGluZSAxMzM6IFJFU1VMVDogeyJ4IjogMX0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0 ZSBvbiBsaW5lIDEzNjogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMi OiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkg LiBiIFsgMSBdIC4geCBbIDAgOiBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlv biBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzNjogdXNpbmcgUFFleGVjCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vz c19vdXRwdXQgb24gbGluZSAxMzY6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxk cworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X2dldF9kYXRhIG9uIGxpbmUgMTM2OiBSRVNVTFQ6IFsxMiwgeyJ5IjogMX1dIG9mZnNldDogLTE7 IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19Q SURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzk6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3si YSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1d fV19JyA6OiBqc29uYiApIC4gYiBbIDogXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5l Y3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTog MDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzk6IHVzaW5nIFBRZXhlYwor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3By b2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTM5OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBm aWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTog ZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEzOTogUkVTVUxUOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwg eyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0MjogcXVl cnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4Ijog MX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIC4geCApOyB3aXRoIDAg cGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGlu ZSAxNDI6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTQyOiBjb3JyZWN0bHkg Z290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE0MjogUkVTVUxUOiBb MSwgWzEyLCB7InkiOiAxfV1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAx NDU6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjog W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApOyB3aXRo IDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24g bGluZSAxNDU6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTog MDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTQ1OiBiYWQgcmVz cG9uc2UgLSBFUlJPUjogIHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhl cmUKK0xJTkUgMTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6 IFt7IngiOiAxfSwgeyJ4Li4uCisgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTog c3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUg MEEwMDAgKHNxbGNvZGUgLTQwMCk6IHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBub3Qgc3VwcG9y dGVkIGhlcmUgb24gbGluZSAxNDUKK1tOT19QSURdOiBzcWxjYTogY29kZTogLTQwMCwgc3RhdGU6 IDBBMDAwCitTUUwgZXJyb3I6IHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVk IGhlcmUgb24gbGluZSAxNDUKIFtOT19QSURdOiBlY3BnX2ZpbmlzaDogY29ubmVjdGlvbiBlY3Bn MV9yZWdyZXNzaW9uIGNsb3NlZAogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5zdGRvdXQgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpz b24uc3Rkb3V0CmluZGV4IDgzZjhkZjEzZTVhLi5iZmE5M2U4NmQwMCAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dAorKysgYi9z cmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CkBAIC0y OCwzICsyOCwxMSBAQCBGb3VuZCBpc19qc29uWzRdOiBmYWxzZQogRm91bmQgaXNfanNvbls1XTog ZmFsc2UKIEZvdW5kIGlzX2pzb25bNl06IHRydWUKIEZvdW5kIGlzX2pzb25bN106IGZhbHNlCitG b3VuZCBqc29uPXsiYiI6IDEsICJjIjogMn0KK0ZvdW5kIGpzb249eyJiIjogMSwgImMiOiAyfQor Rm91bmQganNvbj0xCitGb3VuZCBqc29uPW51bGwKK0ZvdW5kIGpzb249eyJ4IjogMX0KK0ZvdW5k IGpzb249WzEyLCB7InkiOiAxfV0KK0ZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsi eSI6IDF9XX1dCitGb3VuZCBqc29uPVsxLCBbMTIsIHsieSI6IDF9XV0KZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCmluZGV4IGRkY2JjYzNiM2NiLi45NmJlMzkxOTkyOCAx MDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYworKysg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xMTUsNiArMTE1 LDM2IEBAIEVYRUMgU1FMIEVORCBERUNMQVJFIFNFQ1RJT047CiAJICBmb3IgKGludCBpID0gMDsg aSA8IHNpemVvZihpc19qc29uKTsgaSsrKQogCQkgIHByaW50ZigiRm91bmQgaXNfanNvblslZF06 ICVzXG4iLCBpLCBpc19qc29uW2ldID8gInRydWUiIDogImZhbHNlIik7CiAKKwlFWEVDIFNRTCBT RUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6anNvbmIpLiJhIikgSU5UTyA6 anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwgU0VM RUNUIEpTT04oJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6anNvbmIuImEiKSBJTlRPIDpqc29u OworCS8vIGVycm9yCisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJj IjogMn19Jzo6anNvbmIpLmEpIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4i LCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAy fX0nOjpqc29uYikuYS5iKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwg anNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTihDT0FMRVNDRShKU09OKCgneyJhIjogeyJi IjogMSwgImMiOiAyfX0nOjpqc29uYikuYyksICdudWxsJykpIElOVE8gOmpzb247CisJcHJpbnRm KCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJh IjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19 XX0nOjpqc29uYikuYlswXSkgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhb MDpdKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlF WEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6 IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmJbOl0pIElOVE8gOmpzb247CisJ cHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09O KCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nOjpqc29uYikuYi54KSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0l c1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJj IjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLiop IElOVE8gOmpzb247CisJLy8gZXJyb3IKKwogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCiAgIHJl dHVybiAwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dAppbmRleCA1YTFlYjE4YWJhMi4u OTFhN2I4MjU3NjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CkBAIC00OTg5LDYg KzQ5ODksMTIgQEAgc2VsZWN0ICgnMTIzJzo6anNvbmIpWydhJ107CiAgCiAoMSByb3cpCiAKK3Nl bGVjdCAoJzEyMyc6Ompzb25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgn MTIzJzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTAwMSwxMiArNTAwNywyNCBA QCBzZWxlY3QgKCcxMjMnOjpqc29uYilbTlVMTF07CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJzEy Myc6Ompzb25iKS5OVUxMOworIG51bGwgCistLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgn eyJhIjogMX0nOjpqc29uYilbJ2EnXTsKICBqc29uYiAKIC0tLS0tLS0KICAxCiAoMSByb3cpCiAK K3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLmE7CisgYSAKKy0tLQorIDEKKygxIHJvdykKKwog c2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC01MDE5 LDYgKzUwMzcsMTIgQEAgc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ25vdF9leGlzdCddOwog IAogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKS4ibm90X2V4aXN0IjsKKyBu b3RfZXhpc3QgCistLS0tLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxfSc6 Ompzb25iKVtOVUxMXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMzEsNiArNTA1NSwxMiBAQCBz ZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsnYSddOwogIAogKDEgcm93KQogCitzZWxl Y3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwog c2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBA IC01MDQzLDYgKzUwNzMsMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbJzEn XTsKICAiMiIKICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuIjEi OworIDEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29u YilbMS4wXTsKIEVSUk9SOiAgc3Vic2NyaXB0IHR5cGUgbnVtZXJpYyBpcyBub3Qgc3VwcG9ydGVk CiBMSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CkBAIC01MDcy LDYgKzUxMDgsMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bJ2EnXTsK ICAKICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV0uYTsKKyBh IAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFd WzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTA4NCw3MyArNTEyNiwxNDAgQEAgc2VsZWN0ICgn eyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwogICJjIgog KDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6 anNvbmIpLmI7CisgIGIgIAorLS0tLS0KKyAiYyIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjog MSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddOwogICAganNvbmIgICAK IC0tLS0tLS0tLS0tCiAgWzEsIDIsIDNdCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEsICJi IjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZDsKKyAgICAgZCAgICAgCistLS0tLS0t LS0tLQorIFsxLCAyLCAzXQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwg ImQiOiBbMSwgMiwgM119Jzo6anNvbmIpWydkJ11bMV07CiAganNvbmIgCiAtLS0tLS0tCiAgMgog KDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6 anNvbmIpLmRbMV07CisgZCAKKy0tLQorIDIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMSwg ImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddWydhJ107CiAganNvbmIgCiAt LS0tLS0tCiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsx LCAyLCAzXX0nOjpqc29uYikuZFsnYSddOworRVJST1I6ICBqc29uYiBzaW1wbGlmaWVkIGFjY2Vz c29yIHN1cHBvcnRzIHN1YnNjcmlwdGluZyBpbiB0eXBlOiBJTlQ0LCBnb3QgdHlwZTogdW5rbm93 bgorTElORSAxOiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6 anNvbmIpLmRbJ2EnXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6 IFsxLCAyLCAzXX0nOjpqc29uYikuZC5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0 ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6 Ompzb25iKVsnYSddWydhMSddOwogICAgICBqc29uYiAgICAgCiAtLS0tLS0tLS0tLS0tLS0KICB7 ImEyIjogImFhYSJ9CiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFh YSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMTsKKyAgICAgIGExICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tCisgeyJhMiI6ICJhYWEifQorKDEgcm93KQorCiBzZWxlY3Qg KCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6 anNvbmIpWydhJ11bJ2ExJ11bJ2EyJ107CiAganNvbmIgCiAtLS0tLS0tCiAgImFhYSIKICgxIHJv dykKIAorc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAi YyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyOworICBhMiAgIAorLS0tLS0tLQorICJhYWEiCiso MSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJi IiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXVsnYTInXVsnYTMnXTsKICBqc29uYiAK IC0tLS0tLS0KICAKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFh In19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyLmEzOworIGEzIAor LS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwg ImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpWydhJ11bMV1bJ2IxJ107CiAgICAg ICAgICBqc29uYiAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBbImFhYSIsICJi YmIiLCAiY2NjIl0KICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFh YSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxOworICAgICAg ICAgIGIxICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJhYWEiLCAiYmJi IiwgImNjYyJdCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEi LCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXVsyXTsK ICBqc29uYiAKIC0tLS0tLS0KICAiY2NjIgogKDEgcm93KQogCi0tLSBzbGljZXMgYXJlIG5vdCBz dXBwb3J0ZWQKLXNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwotRVJST1I6ICBq c29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKK3NlbGVjdCAoJ3siYSI6IFsi YTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYiku YVsxXS5iMVsyXTsKKyAgYjEgICAKKy0tLS0tLS0KKyAiY2NjIgorKDEgcm93KQorCitzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsgLS0gZmFpbHMKK0VSUk9SOiAganNvbmIgc2lt cGxpZmllZCBhY2Nlc3NvciBzdXBwb3J0cyBzdWJzY3JpcHRpbmcgaW4gdHlwZTogSU5UNCwgZ290 IHR5cGU6IHVua25vd24KIExJTkUgMTogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ2EnOidi J107Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNv bmIpWzE6Ml07Ci1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNl cwotTElORSAxOiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICBqc29uYiAgICAKKy0t LS0tLS0tLS0tLS0KKyBbIjIiLCBudWxsXQorKDEgcm93KQorCiBzZWxlY3QgKCdbMSwgIjIiLCBu dWxsXSc6Ompzb25iKVs6Ml07Ci1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBw b3J0IHNsaWNlcwotTElORSAxOiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVs6Ml07 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgIGpzb25i ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWzEsICIyIiwgbnVsbF0KKygxIHJvdykKKwogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMTpdOwotRVJST1I6ICBqc29uYiBzdWJzY3Jp cHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVs bF0nOjpqc29uYilbMTpdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisgWyIyIiwgbnVsbF0KKygxIHJvdykK Kwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOl07Ci1FUlJPUjogIGpzb25iIHN1 YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworICAgICBqc29uYiAgICAgIAorLS0tLS0t LS0tLS0tLS0tLQorIFsxLCAiMiIsIG51bGxdCisoMSByb3cpCisKIGNyZWF0ZSBURU1QIFRBQkxF IHRlc3RfanNvbmJfc3Vic2NyaXB0ICgKICAgICAgICBpZCBpbnQsCiAgICAgICAgdGVzdF9qc29u IGpzb25iCkBAIC01ODMxLDMgKzU5NDAsMTcxIEBAIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4OwogIDEyMzQ1 CiAoMSByb3cpCiAKKy0tIGRvdCBub3RhdGlvbgorQ1JFQVRFIFRBQkxFIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uIEFTCitTRUxFQ1QgJ3siYSI6IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIs ICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCAiYiI6IFszLCA0LCB7 ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV19Jzo6anNvbmIgamI7CitT RUxFQ1QgKGpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUi OiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0KKygxIHJvdykKKworU0VMRUNU IChqYikuImEiIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGRvdWJsZSBxdW90ZSBz aG91bGQgd29yaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7 ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6 enoifX1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOyAtLSBzaW5nbGUgcXVvdGUgc2hvdWxkIG5vdCB3b3JrCitFUlJPUjogIHN5bnRheCBl cnJvciBhdCBvciBuZWFyICInYSciCitMSU5FIDE6IFNFTEVDVCAoamIpLidhJyBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgKGpiKS5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAg YiAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZ WSIsICJ6IjogIlpaWiJ9fV0KKygxIHJvdykKKworU0VMRUNUIChqYikuYyBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworIGMgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYS5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0tLS0t LQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVsyXS5iIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CisgIGIgIAorLS0tLS0KKyAiYyIKKygxIHJvdykKKworU0VMRUNU IChqYikuYVsyOjNdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgYiAgICAg IAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hWzI6 XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0t LS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVs6Ml0uYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisKK1NF TEVDVCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBiICAg ICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEu eC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICB5ICAgCistLS0tLS0tCisgInl5 eSIKKygxIHJvdykKKworU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiB0OworICAgICAgICAgICAgeCAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9CisoMSByb3cpCisKK1NFTEVDVCAo amIpLmIueC56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICB6ICAgCistLS0tLS0t CisgIlpaWiIKKygxIHJvdykKKworU0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKKyBjIAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuKiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21w b3NpdGUKKy0tIGV4cGxhaW5zIHNob3VsZCB3b3JrCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBP RkYpIFNFTEVDVCAodC5qYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRl c3RfanNvbmJfZG90X25vdGF0aW9uIHQKKyAgIE91dHB1dDogamIuYQorKDIgcm93cykKKworU0VM RUNUICh0LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAi ZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XQorKDEgcm93KQorCitFWFBM QUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBT Y2FuIG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiBqYi5hWzFd CisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CisgYSAKKy0tLQorIDIKKygxIHJvdykKKworLS0ganNvbmIgYXJyYXkgYWNjZXNzIGluIHBs cGdzcWwKK0RPICQkCitERUNMQVJFCisgIGEganNvbmIgOj0gJ1sxLDIsMyw0LDUsNiw3XSc6Ompz b25iOworQkVHSU4KKyAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICBMT09QCisgICAgUkFJU0UgTk9U SUNFICclJywgYTsKKyAgICBhIDo9IGFbMjpdOworICBFTkQgTE9PUDsKK0VORAorJCQgTEFOR1VB R0UgcGxwZ3NxbDsKK05PVElDRTogIFsxLCAyLCAzLCA0LCA1LCA2LCA3XQorTk9USUNFOiAgWzMs IDQsIDUsIDYsIDddCitOT1RJQ0U6ICBbNSwgNiwgN10KK05PVElDRTogIDcKKy0tIGpzb25iIGRv dCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKK0RFQ0xBUkUKKyAgYSBqc29uYiA6PSAneyIiOiA2 LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04XX0n Ojpqc29uYjsKK0JFR0lOCisgIFdISUxFIGEgSVMgTk9UIE5VTEwKKyAgTE9PUAorICAgIFJBSVNF IE5PVElDRSAnJScsIGE7CisgICAgYSA6PSBDT0FMRVNDRShhLiJOVSIsIGFbMl0pOyAtLSBmYWls cworICBFTkQgTE9PUDsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK05PVElDRTogIHsiIjog NiwgIk5VIjogW3siIjogW1szXV19LCBbNl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19 CitFUlJPUjogIG1pc3NpbmcgRlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJhIgorTElORSAx OiBhIDo9IENPQUxFU0NFKGEuIk5VIiwgYVsyXSkKKyAgICAgICAgICAgICAgICAgICAgICBeCitR VUVSWTogIGEgOj0gQ09BTEVTQ0UoYS4iTlUiLCBhWzJdKQorQ09OVEVYVDogIFBML3BnU1FMIGZ1 bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgOCBhdCBhc3NpZ25tZW50CitETyAkJAorICAg IERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6PSAneyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0s IFs2XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04XX0nOjpqc29uYjsKKyAgICBCRUdJTgor ICAgICAgICBXSElMRSBhIElTIE5PVCBOVUxMCisgICAgICAgICAgICBMT09QCisgICAgICAgICAg ICAgICAgUkFJU0UgTk9USUNFICclJywgYTsKKyAgICAgICAgICAgICAgICBhIDo9IENPQUxFU0NF KChhKS4iTlUiLCBhWzJdKTsgLS0gc3VjY2VlZHMKKyAgICAgICAgICAgIEVORCBMT09QOworICAg IEVORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK05PVElDRTogIHsiIjogNiwgIk5VIjogW3siIjog W1szXV19LCBbNl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19CitOT1RJQ0U6ICBbeyIi OiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0KK05PVElDRTogIFsyXQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIu c3FsCmluZGV4IDU3YzExYWNkZGZlLi40YmQzOTkwZmI1NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvanNvbmIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNx bApAQCAtMTMwNCwzMyArMTMwNCw0OSBAQCBzZWxlY3QganNvbmJfaW5zZXJ0KCd7ImEiOiB7ImIi OiAidmFsdWUifX0nLCAne2EsIGJ9JywgJyJuZXdfdmFsdWUiJywgdHJ1ZSk7CiAKIC0tIGpzb25i IHN1YnNjcmlwdAogc2VsZWN0ICgnMTIzJzo6anNvbmIpWydhJ107CitzZWxlY3QgKCcxMjMnOjpq c29uYikuYTsKIHNlbGVjdCAoJzEyMyc6Ompzb25iKVswXTsKIHNlbGVjdCAoJzEyMyc6Ompzb25i KVtOVUxMXTsKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5OVUxMOwogc2VsZWN0ICgneyJhIjogMX0n Ojpqc29uYilbJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLmE7CiBzZWxlY3QgKCd7 ImEiOiAxfSc6Ompzb25iKVswXTsKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydub3RfZXhp c3QnXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLiJub3RfZXhpc3QiOwogc2VsZWN0ICgn eyJhIjogMX0nOjpqc29uYilbTlVMTF07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25i KVsnYSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuYTsKIHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzBdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29u YilbJzEnXTsKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpLiIxIjsKIHNlbGVjdCAo J1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6 Ompzb25iKVsyXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzNdOwogc2VsZWN0 ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbLTJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMV1bJ2EnXTsKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdLmE7 CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxXVswXTsKIHNlbGVjdCAoJ3siYSI6 IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2InXTsKK3NlbGVjdCAoJ3si YSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuYjsKIHNlbGVjdCAoJ3si YSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXTsKK3NlbGVjdCAo J3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZDsKIHNlbGVjdCAo J3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXVsxXTsKK3Nl bGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZFsxXTsK IHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2Qn XVsnYSddOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompz b25iKS5kWydhJ107CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmQuYTsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIi OiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXTsKK3NlbGVjdCAoJ3siYSI6 IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYiku YS5hMTsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwg ImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXVsnYTInXTsKK3NlbGVjdCAoJ3siYSI6IHsi YTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5h MS5hMjsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwg ImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXVsnYTInXVsnYTMnXTsKK3NlbGVjdCAoJ3si YSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29u YikuYS5hMS5hMi5hMzsKIHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJi IiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXTsKK3NlbGVjdCAo J3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0n Ojpqc29uYikuYVsxXS5iMTsKIHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAi YmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXVsyXTsKK3Nl bGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjog ImJiIn0nOjpqc29uYikuYVsxXS5iMVsyXTsKIAotLS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVk Ci1zZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsKK3NlbGVjdCAoJ3siYSI6IDF9 Jzo6anNvbmIpWydhJzonYiddOyAtLSBmYWlscwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpq c29uYilbMToyXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzoyXTsKIHNlbGVj dCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6XTsKQEAgLTE1OTAsMyArMTYwNiw2OCBAQCBz ZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDUnOjpqc29uYjo6ZmxvYXQ4Owogc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDI7CiBzZWxlY3QgJzEyMzQ1LjAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50 NDsKIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwNSc6Ompzb25iOjppbnQ4OworCistLSBkb3Qgbm90YXRpb24KK0NSRUFURSBUQUJMRSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiBBUworU0VMRUNUICd7ImEiOiBbMSwgMiwgeyJiIjogImMi fSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwg ImIiOiBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dfSc6 Ompzb25iIGpiOworCitTRUxFQ1QgKGpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CitTRUxFQ1QgKGpiKS4iYSIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZG91Ymxl IHF1b3RlIHNob3VsZCB3b3JrCitTRUxFQ1QgKGpiKS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsgLS0gc2luZ2xlIHF1b3RlIHNob3VsZCBub3Qgd29yaworU0VMRUNUIChqYikuYiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYyBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CitTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK K1NFTEVDVCAoamIpLmFbMjozXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxF Q1QgKGpiKS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpi KS5hWzoyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzpd LmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEueC55IEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworCist LSBleHBsYWlucyBzaG91bGQgd29yaworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxF Q1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworU0VMRUNUICh0Lmpi KS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK0VYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworCistLSBqc29u YiBhcnJheSBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKK0RFQ0xBUkUKKyAgYSBqc29uYiA6PSAn WzEsMiwzLDQsNSw2LDddJzo6anNvbmI7CitCRUdJTgorICBXSElMRSBhIElTIE5PVCBOVUxMCisg IExPT1AKKyAgICBSQUlTRSBOT1RJQ0UgJyUnLCBhOworICAgIGEgOj0gYVsyOl07CisgIEVORCBM T09QOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBqc29uYiBkb3QgYWNjZXNzIGlu IHBscGdzcWwKK0RPICQkCitERUNMQVJFCisgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3si IjogW1szXV19LCBbNl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CitC RUdJTgorICBXSElMRSBhIElTIE5PVCBOVUxMCisgIExPT1AKKyAgICBSQUlTRSBOT1RJQ0UgJyUn LCBhOworICAgIGEgOj0gQ09BTEVTQ0UoYS4iTlUiLCBhWzJdKTsgLS0gZmFpbHMKKyAgRU5EIExP T1A7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0RPICQkCisgICAgREVDTEFSRQorICAg ICAgICBhIGpzb25iIDo9ICd7IiI6IDYsICJOVSI6IFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJi Q2kiXSwgImFhZiI6IFstNiwgLThdfSc6Ompzb25iOworICAgIEJFR0lOCisgICAgICAgIFdISUxF IGEgSVMgTk9UIE5VTEwKKyAgICAgICAgICAgIExPT1AKKyAgICAgICAgICAgICAgICBSQUlTRSBO T1RJQ0UgJyUnLCBhOworICAgICAgICAgICAgICAgIGEgOj0gQ09BTEVTQ0UoKGEpLiJOVSIsIGFb Ml0pOyAtLSBzdWNjZWVkcworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBMQU5H VUFHRSBwbHBnc3FsOwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000921051063039c638 Content-Type: application/x-patch; name="v11-0008-Add-as-a-new-token-in-scanners.patch" Content-Disposition: attachment; filename="v11-0008-Add-as-a-new-token-in-scanners.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m87f1w187 RnJvbSBjODgwNDdmN2ZiNDUzNjNlODM2YWVmMGViMjQyMjA5OTEwNmU1NDRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAxMCBNYXIgMjAyNSAwNzowMDowMyAtMDUwMApTdWJqZWN0OiBb UEFUQ0ggdjExIDgvOF0gQWRkICIqKiIgYXMgYSBuZXcgdG9rZW4gaW4gc2Nhbm5lcnMKCkRPVUJM RV9BU1RFUklTSyBpcyBub3cgcmVjb2duaXplZCBidXQgbm90IHlldCBpbXBsZW1lbnRlZC4KClRo aXMgY2hhbmdlIGltcHJvdmVzIGVycm9yIG1lc3NhZ2UgcmVhZGFiaWxpdHksIGFzICIqKiIgaXMg c3VwcG9ydGVkCmluIGpzb25wYXRoX3NjYW4ubCBhcyBBTllfUC4gIEhvd2V2ZXIsIHRoZSBTUUwg c3RhbmRhcmQgZm9yIHNpbXBsaWZpZWQKSlNPTiBhY2Nlc3NvcnMgZG9lcyBub3Qgc3BlY2lmeSAi KioiLCBzbyBpdCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoYXQKY29udGV4dC4KLS0tCiBzcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKysr KystCiBzcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysrKysrCiBzcmMvaW5jbHVkZS9wYXJzZXIvc2Nhbm5lci5oICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubCAgICAg ICAgICAgICAgICAgICAgfCAgNSArKysrKwogc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLmMgICAgICB8IDEyICsrKysrKysrKysrLQogc3JjL2ludGVyZmFjZXMv ZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciB8IDExICsrKysrKysrKysrCiBz cmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjICAgICAgICAgICAgIHwgIDMg KysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0ICAgICAgICAgICAg ICAgICAgfCAgMiArLQogOSBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDQ0ODQwYmMxYjI1Li40NjM1NjE2ZDkzYSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC02ODcsNyArNjg3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwog JXRva2VuIDxzdHI+CUlERU5UIFVJREVOVCBGQ09OU1QgU0NPTlNUIFVTQ09OU1QgQkNPTlNUIFhD T05TVCBPcAogJXRva2VuIDxpdmFsPglJQ09OU1QgUEFSQU0KLSV0b2tlbgkJCVRZUEVDQVNUIERP VF9ET1QgQ09MT05fRVFVQUxTIEVRVUFMU19HUkVBVEVSCisldG9rZW4JCQlUWVBFQ0FTVCBET1Rf RE9UIENPTE9OX0VRVUFMUyBFUVVBTFNfR1JFQVRFUiBET1VCTEVfQVNURVJJU0sKICV0b2tlbgkJ CUxFU1NfRVFVQUxTIEdSRUFURVJfRVFVQUxTIE5PVF9FUVVBTFMKIAogLyoKQEAgLTE2OTY5LDYg KzE2OTY5LDEzIEBAIGluZGlyZWN0aW9uX2VsOgogCQkJCXsKIAkJCQkJJCQgPSAoTm9kZSAqKSBt YWtlTm9kZShBX1N0YXIpOwogCQkJCX0KKwkJCXwgJy4nIERPVUJMRV9BU1RFUklTSworCQkJCXsK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkJZXJybXNnKCJhcmJpdHJhcnkgZGVwdGggd2lsZCBjYXJkIGluIHNpbXBs ZSBqc29uIGFjY2Vzc29yIG5vdCBzdXBwb3J0ZWQiKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9u KEAyKSkpOworCQkJCX0KIAkJCXwgJ1snIGFfZXhwciAnXScKIAkJCQl7CiAJCQkJCUFfSW5kaWNl cyAqYWkgPSBtYWtlTm9kZShBX0luZGljZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3NjYW4ubCBiL3NyYy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKaW5kZXggMDg5OTA4MzFmZTgu LmM1OGJhMjMzMTUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKQEAgLTMzOCw2ICszMzgsNyBAQCBpZGVudGlmaWVy CQl7aWRlbnRfc3RhcnR9e2lkZW50X2NvbnR9KgogdHlwZWNhc3QJCSI6OiIKIGRvdF9kb3QJCQlc LlwuCiBjb2xvbl9lcXVhbHMJIjo9IgorZG91YmxlX2FzdGVyaXNrCSIqKiIKIAogLyoKICAqIFRo ZXNlIG9wZXJhdG9yLWxpa2UgdG9rZW5zICh1bmxpa2UgdGhlIGFib3ZlIG9uZXMpIGFsc28gbWF0 Y2ggdGhlIHtvcGVyYXRvcn0KQEAgLTg1MSw2ICs4NTIsMTEgQEAgb3RoZXIJCQkuCiAJCQkJCXJl dHVybiBDT0xPTl9FUVVBTFM7CiAJCQkJfQogCit7ZG91YmxlX2FzdGVyaXNrfQl7CisJCQkJCQlT RVRfWVlMTE9DKCk7CisJCQkJCQlyZXR1cm4gRE9VQkxFX0FTVEVSSVNLOworCQkJCQl9CisKIHtl cXVhbHNfZ3JlYXRlcn0gewogCQkJCQlTRVRfWVlMTE9DKCk7CiAJCQkJCXJldHVybiBFUVVBTFNf R1JFQVRFUjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9zY2FubmVyLmggYi9zcmMv aW5jbHVkZS9wYXJzZXIvc2Nhbm5lci5oCmluZGV4IDc0YWQ4NjY5OGFjLi4yZjliN2JhYTFhOSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3NjYW5uZXIuaAorKysgYi9zcmMvaW5jbHVk ZS9wYXJzZXIvc2Nhbm5lci5oCkBAIC01MCw3ICs1MCw3IEBAIHR5cGVkZWYgdW5pb24gY29yZV9Z WVNUWVBFCiAgKiB0aGUgQVNDSUkgY2hhcmFjdGVycyBwbHVzIHRoZXNlOgogICoJJXRva2VuIDxz dHI+CUlERU5UIFVJREVOVCBGQ09OU1QgU0NPTlNUIFVTQ09OU1QgQkNPTlNUIFhDT05TVCBPcAog ICoJJXRva2VuIDxpdmFsPglJQ09OU1QgUEFSQU0KLSAqCSV0b2tlbgkJCVRZUEVDQVNUIERPVF9E T1QgQ09MT05fRVFVQUxTIEVRVUFMU19HUkVBVEVSCisgKgkldG9rZW4JCQlUWVBFQ0FTVCBET1Rf RE9UIENPTE9OX0VRVUFMUyBFUVVBTFNfR1JFQVRFUiBET1VCTEVfQVNURVJJU0sKICAqCSV0b2tl bgkJCUxFU1NfRVFVQUxTIEdSRUFURVJfRVFVQUxTIE5PVF9FUVVBTFMKICAqIFRoZSBhYm92ZSB0 b2tlbiBkZWZpbml0aW9ucyAqbXVzdCogYmUgdGhlIGZpcnN0IG9uZXMgZGVjbGFyZWQgaW4gYW55 CiAgKiBiaXNvbiBwYXJzZXIgYnVpbHQgYXRvcCB0aGlzIHNjYW5uZXIsIHNvIHRoYXQgdGhleSB3 aWxsIGhhdmUgY29uc2lzdGVudApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVw cm9jL3BnYy5sIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3BnYy5sCmluZGV4IDYzMjgz YTRhMWU1Li4xNDE1Y2JlMjgwOCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVw cm9jL3BnYy5sCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubApAQCAtMzIx LDYgKzMyMSw3IEBAIGFycmF5CQkJKHtpZGVudF9jb250fXx7d2hpdGVzcGFjZX18W1xbXF1cK1wt XCpcJVwvXChcKVw+XC5dKSoKIHR5cGVjYXN0CQkiOjoiCiBkb3RfZG90CQkJXC5cLgogY29sb25f ZXF1YWxzCSI6PSIKK2RvdWJsZV9hc3RlcmlzawkiKioiCiAKIC8qCiAgKiBUaGVzZSBvcGVyYXRv ci1saWtlIHRva2VucyAodW5saWtlIHRoZSBhYm92ZSBvbmVzKSBhbHNvIG1hdGNoIHRoZSB7b3Bl cmF0b3J9CkBAIC04MzIsNiArODMzLDEwIEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMoW15pXVtBLVph LXpdKnx7aWZ9fHtpZmRlZn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14qL10qXCorCiAJCQkJ CXJldHVybiBDT0xPTl9FUVVBTFM7CiAJCQkJfQogCit7ZG91YmxlX2FzdGVyaXNrfQl7CisJCQkJ CQlyZXR1cm4gRE9VQkxFX0FTVEVSSVNLOworCQkJCQl9CisKIHtlcXVhbHNfZ3JlYXRlcn0gewog CQkJCQlyZXR1cm4gRVFVQUxTX0dSRUFURVI7CiAJCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwppbmRleCA3NDhiMmUyYmVlNi4uZjc3MjMw NWMyMDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwt c3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5jCkBAIC01MjcsMTIgKzUyNywyMiBAQCBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHBy aW50KCk7fQogCiAJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAotICB7IEVDUEdk aXNjb25uZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAx LCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJc IjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6 MX1dfV19JyA6OiBqc29uYiApIC4gKiogLiBiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFy LChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3Rf Tk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAxNTEg InNxbGpzb24ucGdjIgogCiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogI2xp bmUgMTUxICJzcWxqc29uLnBnYyIKIAorCS8vIGVycm9yCisKKyAgeyBFQ1BHZGlzY29ubmVjdChf X0xJTkVfXywgIkNVUlJFTlQiKTsKKyNsaW5lIDE1NCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxj YS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNTQgInNxbGpzb24ucGdjIgorCiAK ICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLnN0ZGVycgppbmRleCA5MmM1ZDE1MjBjNC4uZDlhMmZlMjE5MTUgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRlcnIKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LnN0ZGVycgpAQCAtMzU5LDUgKzM1OSwxNiBAQCBTUUwgZXJyb3I6IHNjaGVtYSAianNvbmIiIGRv ZXMgbm90IGV4aXN0IG9uIGxpbmUgMTIxCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAogW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogWzEs IFsxMiwgeyJ5IjogMX1dXSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUx OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7 IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuICoqIC4gYiApOyB3 aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUg b24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTUxOiBiYWQg cmVzcG9uc2UgLSBFUlJPUjogIGFyYml0cmFyeSBkZXB0aCB3aWxkIGNhcmQgaW4gc2ltcGxlIGpz b24gYWNjZXNzb3Igbm90IHN1cHBvcnRlZAorTElORSAxOiAuLi5iIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gKiogLiBiICkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1tOT19Q SURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogcmFpc2luZyBzcWxz dGF0ZSAwQTAwMCAoc3FsY29kZSAtNDAwKTogYXJiaXRyYXJ5IGRlcHRoIHdpbGQgY2FyZCBpbiBz aW1wbGUganNvbiBhY2Nlc3NvciBub3Qgc3VwcG9ydGVkIG9uIGxpbmUgMTUxCitbTk9fUElEXTog c3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiAwQTAwMAorU1FMIGVycm9yOiBhcmJpdHJhcnkgZGVw dGggd2lsZCBjYXJkIGluIHNpbXBsZSBqc29uIGFjY2Vzc29yIG5vdCBzdXBwb3J0ZWQgb24gbGlu ZSAxNTEKIFtOT19QSURdOiBlY3BnX2ZpbmlzaDogY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9u IGNsb3NlZAogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCmluZGV4IDRlNzQyN2QyMzdkLi42NTQ0M2Qz MDA1NSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBn YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xNDgs NiArMTQ4LDkgQEAgRVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElPTjsKIAlFWEVDIFNRTCBTRUxF Q1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLioueCkgSU5UTyA6anNvbjsKIAlwcmludGYoIkZvdW5k IGpzb249JXNcbiIsIGpzb24pOwogCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIi OiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompz b25iKS4qKi5iKSBJTlRPIDpqc29uOworCS8vIGVycm9yCisKICAgRVhFQyBTUUwgRElTQ09OTkVD VDsKIAogICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFt LnkgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55CmluZGV4IDU2MTJlNjZkMDIzLi4xM2Uw NmFkNWIwYiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55CkBAIC0yNDUsNyArMjQ1LDcgQEAgc3RhdGljCXZv aWQJCQljaGVja19yYWlzZV9wYXJhbWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAg Ki8KICV0b2tlbiA8c3RyPglJREVOVCBVSURFTlQgRkNPTlNUIFNDT05TVCBVU0NPTlNUIEJDT05T VCBYQ09OU1QgT3AKICV0b2tlbiA8aXZhbD4JSUNPTlNUIFBBUkFNCi0ldG9rZW4JCQlUWVBFQ0FT VCBET1RfRE9UIENPTE9OX0VRVUFMUyBFUVVBTFNfR1JFQVRFUgorJXRva2VuCQkJVFlQRUNBU1Qg RE9UX0RPVCBDT0xPTl9FUVVBTFMgRVFVQUxTX0dSRUFURVIgRE9VQkxFX0FTVEVSSVNLCiAldG9r ZW4JCQlMRVNTX0VRVUFMUyBHUkVBVEVSX0VRVUFMUyBOT1RfRVFVQUxTCiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDFhOTQ1MjkzN2Q1Li4wNzI5ZDcyNTFjNiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTYxODEsNyArNjE4MSw3IEBAIFNFTEVD VCAoamIpLmEuYi5jLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKICgxIHJvdykKIAog U0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIG5vdCBz dXBwb3J0ZWQKLUVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioqIgorRVJST1I6ICBh cmJpdHJhcnkgZGVwdGggd2lsZCBjYXJkIGluIHNpbXBsZSBqc29uIGFjY2Vzc29yIG5vdCBzdXBw b3J0ZWQKIExJTkUgMTogU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZXhwbGFpbnMgc2hvdWxkIHdvcmsK LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000921051063039c638--