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 1uwUgn-003DOG-GQ for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Sep 2025 23:57:26 +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 1uwUgl-004Di6-OF for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Sep 2025 23:57:24 +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 1uwUgk-004Dhx-Vo for pgsql-hackers@lists.postgresql.org; Wed, 10 Sep 2025 23:57:23 +0000 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uwUgg-0005nI-1c for pgsql-hackers@postgresql.org; Wed, 10 Sep 2025 23:57:22 +0000 Received: by mail-pg1-x543.google.com with SMTP id 41be03b00d2f7-b52196e8464so113946a12.3 for ; Wed, 10 Sep 2025 16:57:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757548638; x=1758153438; 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=9aOkJKc1yKUWbMembvhNR79/PWxFuNjlp9g8ymvfma4=; b=ITQI4kxcDzSItqmr0dX4hveKC/G3fz/TMLtgo6ylmszbz4ftbEYR4BsWrOD5rqjSI9 r2U9pLcb6z5mUoUQ8qQQ95Mn+AwQIXexdyS2cQ7GW/qLOWTSgexLTm1OtNvIy3WshJr/ ale93hMpQMPnJgiFw+x3N0WglobCMvtBe0X0an7ouNVGGp34NMi44gGKap/tRhEvfa3l dNfAxnAxhJUzB9akpl5T+qIzKMm7DoC+WT3gSmGGRk5UUC+iDKVPRjUlHsUpDxQervLR 3JiQ6r2fYWQ6Zo/ocDRyaP3NCg6G6/5/2qLsJxqpZXpEEsCUZDd3GwmID8xeNPZ6MDek uKUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757548638; x=1758153438; 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=9aOkJKc1yKUWbMembvhNR79/PWxFuNjlp9g8ymvfma4=; b=C/oTemCojey+CeknWGunPE5tjNXNvqY89+FQLUFkipwe1BW7NRcIiabtpy6ImZPOZ9 zIbbSS2Y9tYDsCAnrRJx79+72JRrsgmbckwBDVgFqA1+h1lh1B+tou9hjIP5L1wziTwC Dy+w6pcGBR9NoBxjd7Iore/uF+tl0pGXP+adVcynJBe3gssNJHyQiNA1AOWcFlQ7hCWH cHUol53M7tzVqbsGxN3+V31hU88Z1UyIsotom8NwYpOe8XeH2id6kSNxojW/I1IjqsJO oqiV26P1GKgRVRlbBX5iPei2jufncV4KtVJCs+PcEoq+6CdmrdFPhoK7tU2XYz6A6UFP tegg== X-Forwarded-Encrypted: i=1; AJvYcCVhzhqLEvZWbVjn0mDe5CfUhpTMDRSjrRcmpHq4zDRqFXmmto4u2VvxE5coai0Fk3H/szwW90IWI+Ki4G1E@postgresql.org X-Gm-Message-State: AOJu0Yxfq4lBQuFB3/W9K9lFv3Y90DFJuTQp3MQNvVxOYZU8ReGxWmjq vqNpN1muM4YdI+LmulYwPuwnbgWeZoGosANUl7mmcNGHrNfDxtToZWREby90GDEHfznHWpIli2k ZTDjrKZNjB4jFbSG3s0A/ZlCbzhxTLz/r9UIrS3cWsw== X-Gm-Gg: ASbGnctSS0+c57IuUmA9mE1Cl+E9TJSBa8OTfusskQ2LROAJfk+NBMxb+kWPhbK2jWv KozG9MFhpl9xMd1e/eeC+8/cGqoK2jD38NXRltAG0AwhupezFQ4e0ZlLDHnqci+5Qdg8OkP+41j tZd/9ivj/JJLrxvknFv8KQQZ1KjwByiOix44XLMN0Jo4yqWrdN6h9zm1yst2V9CqI3O8VAq5S3v HEi444= X-Google-Smtp-Source: AGHT+IHuPKBRjuSQy4ilnZ1HB9SJBAb1lHsVFeGGkblrJ6n6XgaVHjS9BH8bXCk4E4VfOSpwyTzED3mGlpY4AxWK6YU= X-Received: by 2002:a17:90b:3910:b0:329:7285:6941 with SMTP id 98e67ed59e1d1-32d43f6657emr22367091a91.19.1757548637802; Wed, 10 Sep 2025 16:57:17 -0700 (PDT) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> <290418A2-3A9B-4304-AAAD-4A40CFF1CB93@gmail.com> <98C6F445-773B-4C82-8198-7F5CD56D5252@gmail.com> <052E941B-C905-448F-AE3A-753C12AAC938@gmail.com> <8CB9A1EC-2D14-44FF-A600-6669353A14C2@gmail.com> In-Reply-To: <8CB9A1EC-2D14-44FF-A600-6669353A14C2@gmail.com> From: Alexandra Wang Date: Wed, 10 Sep 2025 16:56:40 -0700 X-Gm-Features: Ac12FXzaxGRhrn77Q-5AyiRVrH4t3kiXwfeqAzXAAJekbdP_8diiDWla-In-IUg Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Chao Li Cc: Nikita Glukhov , jian he , Nikita Malakhov , Vik Fearing , Mark Dilger , Matheus Alcantara , Peter Eisentraut , Andrew Dunstan , PostgreSQL Hackers , "David E. Wheeler" Content-Type: multipart/mixed; boundary="0000000000003b99b4063e7b2e10" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003b99b4063e7b2e10 Content-Type: multipart/alternative; boundary="0000000000003b99b2063e7b2e0e" --0000000000003b99b2063e7b2e0e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Chao, On Tue, Sep 9, 2025 at 9:03=E2=80=AFPM Chao Li wro= te: > I don=E2=80=99t see you have updated any documentation yet. I don=E2=80= =99t want to block > you because of this issue. As long as you state the behavior clearly in t= he > document, I am happy to let it go. > Thanks for the reminder for documentation! I've attached v18. v18 adds documentation in 0005. I've also updated the commit messages for 0003, 0004, and 0007 to include reviewers' names. For everyone: my immediate goal is to move 0001 - 0005 forward, as I feel more confident about them now. In the meantime, I'd also appreciate code review for 0006 - 0007. Best, Alex --0000000000003b99b2063e7b2e0e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Chao,

On Tue, Sep 9, 2025 at = 9:03=E2=80=AFPM Chao Li <li.ev= an.chao@gmail.com> wrote:
I don=E2=80=99t see you have updated any documentati= on yet. I don=E2=80=99t want to block you because of this issue. As long as= you state the behavior clearly in the document, I am happy to let it go.

Thanks for the reminder for docu= mentation! I've attached v18. v18 adds
documentation in 0005. I'= ve also updated the commit messages for 0003,
0004, and 0007 to include = reviewers' names.

For everyone: my immediate goal is to move 000= 1 - 0005 forward, as I
feel more confident about them now. In the meanti= me, I'd also
appreciate code review for 0006 - 0007.
<= br>
Best,
Alex

--0000000000003b99b2063e7b2e0e-- --0000000000003b99b4063e7b2e10 Content-Type: application/octet-stream; name="v18-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Disposition: attachment; filename="v18-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfen1o762 RnJvbSA3MzgzM2JkMWM2Y2YyOTM1YTY3Mjc1MTJlYTNhMDM5MDZjNmZhZGU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTggNi83XSBJbXBsZW1lbnQgSnNvbmIgc3Vic2NyaXB0aW5nIHdpdGggc2xpY2luZwoK UHJldmlvdXNseSwgc2xpY2luZyB3YXMgbm90IHN1cHBvcnRlZCBmb3IganNvbmIgc3Vic2NyaXB0 aW5nLiBUaGlzIGNvbW1pdAppbXBsZW1lbnRzIHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcgYXMg cGFydCBvZiB0aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yCnN5bnRheCBzcGVjaWZpZWQgaW4g U1FMOjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdt YWlsLmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5v c3NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFu ZS5uZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2Vk Yi5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmll d2VkLWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog UGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBDaGFv IExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpUZXN0ZWQtYnk6IE1hcmsgRGlsZ2VyIDxtYXJr LmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpUZXN0ZWQtYnk6IEppYW4gSGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMg ICAgICAgICAgICAgfCAxMTkgKysrKysrKystLS0tLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uYyAgICAgICAgICB8ICAxNiArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5zdGRlcnIgICAgIHwgIDI2ICsrLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uc3Rkb3V0ICAgICB8ICAgMyArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qv c3FsL3NxbGpzb24ucGdjICAgICAgfCAgIDcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv anNvbmIub3V0ICAgICAgICAgICB8IDE0NSArKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAgICAgICAgICAgICB8ICA1MyArKysrKystCiA3IGZpbGVz IGNoYW5nZWQsIDI4NiBpbnNlcnRpb25zKCspLCA4MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmJzdWJzLmMKaW5kZXggY2NjNWYzYzZlOTQuLjQ3NjJmNmJkMTFjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2pzb25ic3Vicy5jCkBAIC0xMTEsNyArMTExLDcgQEAgY29lcmNlX2pzb25wYXRoX3N1 YnNjcmlwdF90b19pbnQ0X29yX3RleHQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpzdWJFeHBy KQogICoKICAqIEpzb25QYXRoIGlzIG5lZWRlZCBpZiB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbmNs dWRlczoKICAqIC0gU3RyaW5nLWJhc2VkIGFjY2VzcyAoZG90IG5vdGF0aW9uKQotICogLSBTbGlj ZS1iYXNlZCBzdWJzY3JpcHRpbmcgKHdoZW4gaXNTbGljZSBpcyB0cnVlKQorICogLSBTbGljZS1i YXNlZCBzdWJzY3JpcHRpbmcKICAqCiAgKiBPdGhlcndpc2UsIHNpbXBsZSBqc29uYiBzdWJzY3Jp cHRpbmcgaXMgZW5vdWdoLgogICovCkBAIC0xMjcsNyArMTI3LDExIEBAIGpzb25iX2NoZWNrX2pz b25wYXRoX25lZWRlZChMaXN0ICppbmRpcmVjdGlvbikKIAkJaWYgKElzQShhY2Nlc3NvciwgU3Ry aW5nKSkKIAkJCXJldHVybiB0cnVlOwogCQllbHNlCisJCXsKIAkJCUFzc2VydChJc0EoYWNjZXNz b3IsIEFfSW5kaWNlcykpOworCQkJaWYgKGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpLT5p c19zbGljZSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQogCX0KIAogCXJldHVybiBmYWxzZTsKQEAg LTE1MiwyMCArMTU2LDQ1IEBAIG1ha2VfanNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5 cGUpCiAJcmV0dXJuIHY7CiB9CiAKKy8qCisgKiBCdWlsZCBhIEpzb25QYXRoUGFyc2VJdGVtIGZv ciBhIGNvbnN0YW50IGludGVnZXIgdmFsdWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1 Y3RzIGEganBpTnVtZXJpYyBpdGVtIGZvciB1c2UgaW4gSnNvblBhdGgsCisgKiBhbmQgYXBwZW5k cyBhIG1hdGNoaW5nIENvbnN0KElOVDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlz dAorICogZm9yIHVzZSBpbiBFWFBMQUlOLCB2aWV3cywgZXRjLgorICoKKyAqIFBhcmFtZXRlcnM6 CisgKiAtIHZhbDogaW50ZWdlciBjb25zdGFudCB2YWx1ZQorICogLSBleHByczogbGlzdCBvZiBl eHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQorICovCitzdGF0aWMgSnNvblBhdGhQ YXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2ludChpbnQzMiB2YWwsIExpc3QgKipleHBy cykKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaU51 bWVyaWMpOworCisJanBpLT52YWx1ZS5udW1lcmljID0KKwkJRGF0dW1HZXROdW1lcmljKERpcmVj dEZ1bmN0aW9uQ2FsbDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKHZhbCkpKTsKKworCSpl eHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRPaWQs IDQsCisJCQkJCQkJCQkgICBJbnQzMkdldERhdHVtKHZhbCksIGZhbHNlLCB0cnVlKSk7CisKKwly ZXR1cm4ganBpOworfQorCiAvKgogICogQ29udmVydCBhIGNvbnN0YW50IGludGVnZXIgZXhwcmVz c2lvbiBpbnRvIGEgSnNvblBhdGhQYXJzZUl0ZW0uCiAgKgogICogVGhlIGlucHV0IGV4cHJlc3Np b24gbXVzdCBiZSBhIG5vbi1udWxsIGNvbnN0YW50IG9mIHR5cGUgSU5UNC4gUmV0dXJucyBOVUxM IG90aGVyd2lzZS4KLSAqIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBhIGpwaU51bWVyaWMgaXRl bSBmb3IgdXNlIGluIEpzb25QYXRoIGFuZCBhcHBlbmRzIGEgbWF0Y2hpbmcKLSAqIENvbnN0KElO VDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdCBmb3IgdXNlIGluIEVYUExBSU4s IHZpZXdzLCBldGMuCisgKiBUaGUgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIHZhbHVlIGFuZCBkZWxl Z2F0ZXMgaXQgdG8gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgpLgogICoKICAqIFBhcmFtZXRlcnM6 CiAgKiAtIHBzdGF0ZTogcGFyc2Ugc3RhdGUgY29udGV4dAogICogLSBleHByOiBpbnB1dCBleHBy ZXNzaW9uIG5vZGUKICAqIC0gZXhwcnM6IGxpc3Qgb2YgZXhwcmVzc2lvbiBub2RlcyAodXBkYXRl ZCBpbiBwbGFjZSkKKyAqIC0gbm9fZXJyb3I6IHJldHVybnMgTlVMTCB3aGVuIHRoZSBkYXRhIHR5 cGUgZG9lc24ndCBtYXRjaC4gT3RoZXJ3aXNlLCBlbWl0cyBhbiBFUlJPUi4KICAqLwogc3RhdGlj IEpzb25QYXRoUGFyc2VJdGVtICoKLW1ha2VfanNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAqKmV4cHJzKQorbWFrZV9qc29ucGF0aF9pdGVtX2V4 cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMsIGJvb2wgbm9f ZXJyb3IpCiB7CiAJQ29uc3QJICAgKmNuc3Q7CiAKQEAgLTE3NSwyMCArMjA0LDE3IEBAIG1ha2Vf anNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAq KmV4cHJzKQogCXsKIAkJY25zdCA9IChDb25zdCAqKSBleHByOwogCQlpZiAoY25zdC0+Y29uc3R0 eXBlID09IElOVDRPSUQgJiYgIShjbnN0LT5jb25zdGlzbnVsbCkpCi0JCXsKLQkJCUpzb25QYXRo UGFyc2VJdGVtICpqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpTnVtZXJpYyk7Ci0KLQkJCWpw aS0+dmFsdWUubnVtZXJpYyA9Ci0JCQkJRGF0dW1HZXROdW1lcmljKERpcmVjdEZ1bmN0aW9uQ2Fs bDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKGNuc3QtPmNvbnN0dmFsdWUpKSk7Ci0KLQkJ CSpleHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRP aWQsIDQsCi0JCQkJCQkJCQkJCSAgIEludDMyR2V0RGF0dW0oY25zdC0+Y29uc3R2YWx1ZSksIGZh bHNlLCB0cnVlKSk7Ci0KLQkJCXJldHVybiBqcGk7Ci0JCX0KKwkJCXJldHVybiBtYWtlX2pzb25w YXRoX2l0ZW1faW50KERhdHVtR2V0SW50MzIoY25zdC0+Y29uc3R2YWx1ZSksIGV4cHJzKTsKIAl9 CiAKLQlyZXR1cm4gTlVMTDsKKwlpZiAobm9fZXJyb3IpCisJCXJldHVybiBOVUxMOworCWVsc2UK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAorCQkJCWVycm1zZygib25seSBub24tbnVsbCBpbnRlZ2VyIGNvbnN0YW50cyBhcmUgc3VwcG9y dGVkIGZvciBqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1YnNjcmlwdGluZyIpLAorCQkJCWVy cmhpbnQoInVzZSBpbnQgZGF0YSB0eXBlIGZvciBzdWJzY3JpcHRpbmcgd2l0aCBzbGljaW5nLiIp LAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpOwog fQogCiAvKgpAQCAtMjUxLDEzICsyNzcsMTIgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBh dGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJ ZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKQogCQl7CiAJCQlBX0luZGljZXMgICph aSA9IGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpOworCQkJSnNvblBhdGhQYXJzZUl0ZW0g KmpwaV9mcm9tID0gTlVMTDsKIAogCQkJaWYgKCFhaS0+aXNfc2xpY2UpCiAJCQl7Ci0JCQkJSnNv blBhdGhQYXJzZUl0ZW0gKmpwaV9mcm9tID0gTlVMTDsKLQogCQkJCUFzc2VydChhaS0+dWlkeCAm JiAhYWktPmxpZHgpOwotCQkJCWpwaV9mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0 YXRlLCBhaS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsKKwkJCQlqcGlfZnJvbSA9 IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVw cGVyaW5kZXhwciwgdHJ1ZSk7CiAJCQkJaWYgKGpwaV9mcm9tID09IE5VTEwpCiAJCQkJewogCQkJ CQkvKgpAQCAtMjg0LDIyICszMDksMzQgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBhdGgo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJCQkJ ICovCiAJCQkJCWJyZWFrOwogCQkJCX0KKwkJCX0KIAotCQkJCWpwaSA9IG1ha2VfanNvbnBhdGhf aXRlbShqcGlJbmRleEFycmF5KTsKLQkJCQlqcGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7Ci0J CQkJanBpLT52YWx1ZS5hcnJheS5lbGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJh eS5lbGVtc1swXSkpOworCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUluZGV4QXJyYXkp OworCQkJanBpLT52YWx1ZS5hcnJheS5uZWxlbXMgPSAxOworCQkJanBpLT52YWx1ZS5hcnJheS5l bGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOwogCisJCQlp ZiAoIWFpLT5pc19zbGljZSkKKwkJCXsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZy b20gPSBqcGlfZnJvbTsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gTlVMTDsK IAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+ dWlkeCA6IGFpLT5saWR4OworCQkJCXdoaWxlIChsaXN0X2xlbmd0aChzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwcikgPCBsaXN0X2xlbmd0aChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikpCisJCQkJCXNi c3JlZi0+cmVmbG93ZXJpbmRleHByID0gbGFwcGVuZChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwg TlVMTCk7CisKKwkJCQlpZiAoYWktPmxpZHgpCisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNb MF0uZnJvbSA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPmxpZHgsICZzYnNy ZWYtPnJlZmxvd2VyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UKKwkJCQkJanBpLT52YWx1ZS5h cnJheS5lbGVtc1swXS5mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgwLCAmc2JzcmVmLT5y ZWZsb3dlcmluZGV4cHIpOwogCi0JCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVS UkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAotCQkJCQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0 IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIiksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOworCQkJCWlmIChhaS0+dWlkeCkKKwkJCQkJanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0 ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UK KwkJCQl7CisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8gPSBtYWtlX2pzb25wYXRo X2l0ZW0oanBpTGFzdCk7CisJCQkJCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gbGFwcGVuZChz YnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgTlVMTCk7CisJCQkJfQogCQkJfQogCQl9CiAJCWVsc2UK QEAgLTM4MSwzMiArNDE4LDEyIEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0 aW5nUmVmICpzYnNyZWYsCiAJCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOwogCiAJ CWlmIChhaS0+aXNfc2xpY2UpCi0JCXsKLQkJCU5vZGUJICAgKmV4cHIgPSBhaS0+dWlkeCA/IGFp LT51aWR4IDogYWktPmxpZHg7CisJCQlicmVhazsKIAotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJtc2coImpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOwotCQl9CisJCUFzc2VydCghYWkt PmxpZHggJiYgYWktPnVpZHgpOwogCi0JCWlmIChhaS0+dWlkeCkKLQkJewotCQkJc3ViRXhwciA9 IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7Ci0J CQlzdWJFeHByID0gY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQocHN0 YXRlLCBzdWJFeHByKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBTbGljZSB3aXRo IG9taXR0ZWQgdXBwZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKLQkJ CSAqIGVycm9yZWQgb3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGlu IGNhc2UuCi0JCQkgKi8KLQkJCUFzc2VydChhaS0+aXNfc2xpY2UpOwotCQkJZXJlcG9ydChFUlJP UiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJt c2coImpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGFpLT51aWR4KSkpKTsKLQkJfQor CQlzdWJFeHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhw cl9raW5kKTsKKwkJc3ViRXhwciA9IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHRfdG9faW50NF9v cl90ZXh0KHBzdGF0ZSwgc3ViRXhwcik7CiAKIAkJdXBwZXJJbmRleHByID0gbGFwcGVuZCh1cHBl ckluZGV4cHIsIHN1YkV4cHIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLmMKaW5kZXggZTZhN2VjZTZkYWIuLjkzNWI0N2EzYjlhIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwor KysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpAQCAt NTA1LDcgKzUwNSw3IEBAIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiBpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogI2xpbmUgMTQyICJzcWxqc29uLnBnYyIK IAotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCXsgRUNQ R2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24g KCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtc InhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApIiwgRUNQR3RfRU9JVCwg CiAJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hh ciksIApAQCAtNTI1LDE0ICs1MjUsMjQgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmlu dCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAjbGluZSAxNDggInNx bGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OwogCi0gIHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisJeyBFQ1BHZG8o X19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwi OiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICkiLCBFQ1BHdF9FT0lU LCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihj aGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9S VCk7CiAjbGluZSAxNTEgInNxbGpzb24ucGdjIgogCiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQogI2xpbmUgMTUxICJzcWxqc29uLnBnYyIKIAorCXByaW50ZigiRm91bmQganNv bj0lc1xuIiwganNvbik7CisKKyAgeyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQi KTsKKyNsaW5lIDE1NCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3Fs cHJpbnQoKTt9CisjbGluZSAxNTQgInNxbGpzb24ucGdjIgorCiAKICAgcmV0dXJuIDA7CiB9CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0 ZGVycgppbmRleCAxOWY4YzU4YWYwNi4uZjNmODk5YzZkODcgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgpAQCAtMzM5LDEz ICszMzksMTAgQEAgU1FMIGVycm9yOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBs aW5lIDEyMQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19QSURd OiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9u IGxpbmUgMTQyOiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi4sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6 IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogZWNw Z19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0MjogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRo IDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDI6IFJFU1VMVDogWzEyLCB7InkiOiAxfV0gb2Zm c2V0OiAtMTsgYXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAotW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0MgotW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2Ny aXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCiBbTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTQ1OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAx LCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNv bmIgKSAuICogKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jl c3Npb24KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ1OiB1c2luZyBQUWV4ZWMKQEAgLTM2MSwxMiArMzU4LDE3 IEBAIFNRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVy ZSBvbiBsaW5lIDE0NQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVz dWx0IG9uIGxpbmUgMTQ4OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBk b2VzIG5vdCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi54IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElE XTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0ODogY29ycmVjdGx5IGdvdCAxIHR1cGxl cyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogW3sieCI6IDF9LCB7 IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGlu ZSAxNTE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJi IjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDog XSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4 ZWN1dGUgb24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTUx OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE1 MTogUkVTVUxUOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsg YXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJ RF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1YnNjcmlw dCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0OAotW05PX1BJRF06IHNxbGNhOiBj b2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQ4CiBbTk9fUElEXTogZWNwZ19maW5pc2g6IGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbiBjbG9zZWQKIFtOT19QSURdOiBzcWxjYTogY29kZTog MCwgc3RhdGU6IDAwMDAwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLnN0ZG91dAppbmRleCA0NDJkMzY5MzFmMS4uZDAxYTg0NTdmMDEgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LnN0ZG91dApAQCAtMzUsMyArMzUsNiBAQCBGb3VuZCBqc29uPW51bGwKIEZvdW5kIGpzb249eyJ4 IjogMX0KIEZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1dXQogRm91bmQganNvbj17IngiOiAx fQorRm91bmQganNvbj1bMTIsIHsieSI6IDF9XQorRm91bmQganNvbj1beyJ4IjogMX0sIHsieCI6 IFsxMiwgeyJ5IjogMX1dfV0KK0ZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 IDF9XX1dCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24u cGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYwppbmRleCA1N2E5 YmZmNDI0ZC4uOTQyM2QyNWZkMGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9zcWwvc3FsanNvbi5wZ2MKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxq c29uLnBnYwpAQCAtMTQwLDEzICsxNDAsMTYgQEAgRVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElP TjsKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCiAJRVhFQyBTUUwgU0VMRUNU IEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEy LCB7InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhbMDpdKSBJTlRPIDpqc29uOwotCS8vIGVycm9y CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCUVYRUMgU1FMIFNFTEVDVCBK U09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwg eyJ5IjoxfV19XX0nOjpqc29uYikuKikgSU5UTyA6anNvbjsKIAkvLyBlcnJvcgogCiAJRVhFQyBT UUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwg eyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKVsnYiddWzA6XSkgSU5UTyA6anNvbjsKLQkv LyBlcnJvcgorCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBT RUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmJbOl0pIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDM3ZDcxYjIzZDVkLi4yNzAyZWRjOTcwNSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTUyNDcsMjMgKzUyNDcsMzQgQEAg c2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIi OiAiYmIifSc6Ompzb25iKS5hWzFdLmIKICgxIHJvdykKIAogc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYilbJ2EnOidiJ107IC0tIGZhaWxzCi1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcworRVJST1I6ICBvbmx5IG5vbi1udWxsIGludGVnZXIgY29uc3RhbnRz IGFyZSBzdXBwb3J0ZWQgZm9yIGpzb25iIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3Vic2NyaXB0aW5n CiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgdXNlIGludCBkYXRhIHR5cGUgZm9yIHN1YnNjcmlwdGluZyB3 aXRoIHNsaWNpbmcuCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwotRVJS T1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisg WyIyIiwgbnVsbF0KKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb OjJdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJ TkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICBqc29uYiAgICAgIAorLS0tLS0t LS0tLS0tLS0tLQorIFsxLCAiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzE6XTsKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1 cHBvcnQgc2xpY2VzCi1MSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6 XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgIGpzb25i ICAgIAorLS0tLS0tLS0tLS0tLQorIFsiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzpdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMKKyAgICAganNvbmIgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBb MSwgIjIiLCBudWxsXQorKDEgcm93KQorCiBjcmVhdGUgVEVNUCBUQUJMRSB0ZXN0X2pzb25iX3N1 YnNjcmlwdCAoCiAgICAgICAgaWQgaW50LAogICAgICAgIHRlc3RfanNvbiBqc29uYgpAQCAtNjAx Nyw4ICs2MDI4LDQyIEBAIFNFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiAgCiAoMSByb3cpCiAKLVNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzCitTRUxFQ1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICB4ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn0KKygxIHJvdykKKworU0VM RUNUIChqYikuYVsyOjNdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgYiAg ICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h WzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0t LS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVs6Ml0uYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisK K1NFTEVDVCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBi ICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgIHgg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsieSI6ICJZWVkiLCAi eiI6ICJaWloifQorKDEgcm93KQorCiBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsgLS0gZmFpbHMKIEVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRl CiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtNjA1NCw2ICs2MDk5LDI4IEBAIENSRUFURSBW SUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10ueC55IEZS T00gdGVzdF9qc29uYl9kCiBDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUwogIFNFTEVDVCAoamIpLmFbM10ueC55IEFTIHkKICAgIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK0NSRUFURSBWSUVXIHYyIEFTIFNFTEVDVCAoamIpLmFb MzpdLngueVs6LTFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdjIKK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYyIEFTCisgU0VMRUNUIChqYikuYVszOl0ueC55WzA6 Jy0xJzo6aW50ZWdlcl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VM RUNUICogZnJvbSB2MjsKKyB5IAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHYzIEFT IFNFTEVDVCAoamIpLmFbOjNdLngueVstMTpdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 Citcc3YgdjMKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYzIEFTCisgU0VMRUNUIChq YikuYVswOjNdLngueVsnLTEnOjppbnRlZ2VyOl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB2MzsKKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5Igor KDEgcm93KQorCiAtLSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MTsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2EnXS5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CkBAIC02MjM4LDUgKzYzMDUsNTUgQEAgU0VM RUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKICgxIHJvdykKIAogRFJPUCBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKy0tIGpzb25iIGFycmF5IGFj Y2VzcyBpbiBwbHBnc3FsCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6PSAn WzEsMiwzLDQsNSw2LDddJzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAgICAgV0hJTEUgYSBJUyBO T1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAgIFJBSVNFIE5PVElDRSAn JScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBhWzI6XTsKKyAgICAgICAgICAgIEVORCBMT09Q OworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK05PVElDRTogIFsxLCAyLCAzLCA0LCA1 LCA2LCA3XQorTk9USUNFOiAgWzMsIDQsIDUsIDYsIDddCitOT1RJQ0U6ICBbNSwgNiwgN10KK05P VElDRTogIDcKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBERUNM QVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBbNl0s IFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAg ICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAg IFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBM QU5HVUFHRSBwbHBnc3FsOworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2 XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04XX0KK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNs YXVzZSBlbnRyeSBmb3IgdGFibGUgImEiCitMSU5FIDE6IGEgOj0gQ09BTEVTQ0UoYS4iTlUiLCBh WzJdKQorICAgICAgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sg bGluZSA4IGF0IGFzc2lnbm1lbnQKK0RPICQkCisgICAgREVDTEFSRQorICAgICAgICBhIGpzb25i IDo9ICd7IiI6IDYsICJOVSI6IFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2kiXSwgImFhZiI6 IFstNiwgLThdfSc6Ompzb25iOworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5V TEwKKyAgICAgICAgICAgIExPT1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBh OworICAgICAgICAgICAgICAgIGEgOj0gQ09BTEVTQ0UoKGEpLiJOVSIsIGFbMl0pOyAtLSBzdWNj ZWVkcworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBMQU5HVUFHRSBwbHBnc3Fs OworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0s ICJhYWYiOiBbLTYsIC04XX0KK05PVElDRTogIFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2ki XQorTk9USUNFOiAgWzJdCiAtLSBjbGVhbiB1cAorRFJPUCBWSUVXIHYyOworRFJPUCBWSUVXIHYz OwogRFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNx bAppbmRleCA1ZmM1M2UxYzlhYS4uZGUyYzljZGEwOTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwK QEAgLTE2MjUsNyArMTYyNSwxMiBAQCBTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiBTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwog U0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLVNFTEVDVCAo KGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKK1NF TEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoamIpLmFbMjozXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpi KS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzoy XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzpdLmIgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSBmYWlscwogCiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtMTYz Nyw2ICsxNjQyLDEyIEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKIC0tIHZpZXdzIHNob3VsZCB3b3JrCiBDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUyBTRUxFQ1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOwogXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgVklFVyB2MiBB UyBTRUxFQ1QgKGpiKS5hWzM6XS54LnlbOi0xXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworXHN2IHYyCitTRUxFQ1QgKiBmcm9tIHYyOworQ1JFQVRFIFZJRVcgdjMgQVMgU0VMRUNUIChq YikuYVs6M10ueC55Wy0xOl0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2Mwor U0VMRUNUICogZnJvbSB2MzsKIAogLS0gbWl4ZWQgc3ludGF4CiBEUk9QIFZJRVcgdGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjE7CkBAIC0xNjk3LDUgKzE3MDgsNDUgQEAgU0VMRUNUIChqYilbJ2In XVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAqIGZyb20gdGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CiBEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOwogCistLSBqc29uYiBhcnJheSBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQK KyAgICBERUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ1sxLDIsMyw0LDUsNiw3XSc6Ompzb25i OworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5VTEwKKyAgICAgICAgICAgIExP T1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBhOworICAgICAgICAgICAgICAg IGEgOj0gYVsyOl07CisgICAgICAgICAgICBFTkQgTE9PUDsKKyAgICBFTkQKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBE RUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBb Nl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAg ICAgICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAg ICAgIFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShh LiJOVSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECisk JCBMQU5HVUFHRSBwbHBnc3FsOworCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29u YiA6PSAneyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0sICJhYWYi OiBbLTYsIC04XX0nOjpqc29uYjsKKyAgICBCRUdJTgorICAgICAgICBXSElMRSBhIElTIE5PVCBO VUxMCisgICAgICAgICAgICBMT09QCisgICAgICAgICAgICAgICAgUkFJU0UgTk9USUNFICclJywg YTsKKyAgICAgICAgICAgICAgICBhIDo9IENPQUxFU0NFKChhKS4iTlUiLCBhWzJdKTsgLS0gc3Vj Y2VlZHMKKyAgICAgICAgICAgIEVORCBMT09QOworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKwogLS0gY2xlYW4gdXAKK0RST1AgVklFVyB2MjsKK0RST1AgVklFVyB2MzsKIERST1AgVEFC TEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000003b99b4063e7b2e10 Content-Type: application/octet-stream; name="v18-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Disposition: attachment; filename="v18-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfen1o710 RnJvbSAxNDBiNDVlZDg2YmM3YTRlOTQ5ODE5NGE3NzcyNTBlYzQ2NDNmZDA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE4IDEvN10gQWxsb3cgdHJhbnNmb3JtYXRpb24gb2Ygb25seSBhIHN1Ymxpc3Qgb2Ygc3Vic2Ny aXB0cwoKVGhpcyBpcyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGFsbG93aW5nIHN1YnNjcmlwdGlu ZyBjb250YWluZXJzIHRvCnRyYW5zZm9ybSBvbmx5IGEgcHJlZml4IG9mIGFuIGluZGlyZWN0aW9u IGxpc3QgYW5kIG1vZGlmeSB0aGUgbGlzdAppbi1wbGFjZSBieSByZW1vdmluZyB0aGUgcHJvY2Vz c2VkIGVsZW1lbnRzLiBDdXJyZW50bHksIGFsbCBlbGVtZW50cwphcmUgY29uc3VtZWQsIGFuZCB0 aGUgbGlzdCBpcyBzZXQgdG8gTklMIGFmdGVyIHRyYW5zZm9ybWF0aW9uLgoKSW4gdGhlIGZvbGxv d2luZyBjb21taXQsIHN1YnNjcmlwdGluZyBjb250YWluZXJzIHdpbGwgZ2FpbiB0aGUKZmxleGli aWxpdHkgdG8gc3RvcCB0cmFuc2Zvcm1hdGlvbiB3aGVuIGVuY291bnRlcmluZyBhbiB1bnN1cHBv cnRlZAppbmRpcmVjdGlvbiBhbmQgcmV0dXJuIHRoZSByZW1haW5pbmcgaW5kaXJlY3Rpb25zIHRv IHRoZSBjYWxsZXIuCgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53YW5n Lm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNs YW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5N0Bn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0KIGNv bnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMgICAgICB8IDEwICsrKysrKy0tLS0KIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICB8ICA5ICsrKystLS0tLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX25vZGUuYyAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYyB8ICA2ICsr KystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIHwgIDYgKysrKy0tCiBzcmMv aW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCAgfCAgNyArKysrKystCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgfCAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3Rv cmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwppbmRleCAzZDAzZjY2ZmEw ZC4uMWIyOTU0M2FiNjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMK KysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwpAQCAtNDAsNyArNDAsNyBAQAogICov CiBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVm ICpzYnNyZWYsCi0JCQkJCQkgICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgIExpc3QgKipp bmRpcmVjdGlvbiwKIAkJCQkJCSAgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgIGJvb2wg aXNTbGljZSwKIAkJCQkJCSAgIGJvb2wgaXNBc3NpZ25tZW50KQpAQCAtNDksMTUgKzQ5LDE1IEBA IGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCU5v ZGUJICAgKnN1YmV4cHI7CiAKIAkvKiBXZSBzdXBwb3J0IG9ubHkgc2luZ2xlLXN1YnNjcmlwdCwg bm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoaW5kaXJlY3Rp b24pICE9IDEpCisJaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoKmluZGlyZWN0aW9uKSAhPSAx KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dzIG9ubHkgb25lIHN1YnNjcmlwdCIp LAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAotCQkJCQkJCQkJZXhwckxvY2F0aW9u KChOb2RlICopIGluZGlyZWN0aW9uKSkpKTsKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAq KSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3JtIHRoZSBzdWJzY3JpcHQgZXhwcmVz c2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRpY2VzLCBpbmRp cmVjdGlvbik7CisJYWkgPSBsaW5pdGlhbF9ub2RlKEFfSW5kaWNlcywgKmluZGlyZWN0aW9uKTsK IAlBc3NlcnQoYWktPnVpZHggIT0gTlVMTCAmJiBhaS0+bGlkeCA9PSBOVUxMICYmICFhaS0+aXNf c2xpY2UpOwogCiAJc3ViZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0 YXRlLT5wX2V4cHJfa2luZCk7CkBAIC04MSw2ICs4MSw4IEBAIGhzdG9yZV9zdWJzY3JpcHRfdHJh bnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUgcmVzdWx0 IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyB0ZXh0ICovCiAJc2Jz cmVmLT5yZWZyZXN0eXBlID0gVEVYVE9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJ KmluZGlyZWN0aW9uID0gTklMOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXgg ZTE5NzlhODBjMTkuLjZlOGZkNDJjNjEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ2 NSwxNCArNDY1LDEzIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKIAogCQkJLyog cHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxkIHNlbGVjdGlvbiAqLwotCQkJaWYg KHN1YnNjcmlwdHMpCisJCQl3aGlsZSAoc3Vic2NyaXB0cykKIAkJCQlyZXN1bHQgPSAoTm9kZSAq KSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCSAg IHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJCQkJ CQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICBzdWJzY3JpcHRz LAorCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJCQkgICBmYWxz ZSk7Ci0JCQlzdWJzY3JpcHRzID0gTklMOwogCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1bmNPckNv bHVtbihwc3RhdGUsCiAJCQkJCQkJCQkJICBsaXN0X21ha2UxKG4pLApAQCAtNDg3LDEyICs0ODYs MTIgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0 aW9uICppbmQpCiAJCX0KIAl9CiAJLyogcHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBh bnkgKi8KLQlpZiAoc3Vic2NyaXB0cykKKwl3aGlsZSAoc3Vic2NyaXB0cykKIAkJcmVzdWx0ID0g KE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCiAJCQkJCQkJCQkJ CQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJ CQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAgIHN1YnNjcmlwdHMs CisJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJICAgZmFsc2UpOwog CiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9u b2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IDIwM2I3YTMyMTc4 Li5mMDViYWE1MGExNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yNDQsNyArMjQ0LDcg QEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBlLAogCQkJ CQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJIExpc3QgKmluZGlyZWN0aW9uLAor CQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KQog ewogCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwpAQCAtMjgwLDcgKzI4MCw3IEBAIHRyYW5zZm9y bUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGVsZW1lbnQuICBJ ZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRo ZW4KIAkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ug b3BlcmF0aW9uLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlk eCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0lu ZGljZXMsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgz Yi4uYTA5NzczNjIyOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNSw3ICs5 MzUsNyBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJICBiYXNlbm9kZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cGUsCiAJCQkJ CQkJCQkJICBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJCQkJICBzdWJzY3JpcHRzLAorCQkJCQkJ CQkJCSAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJICB0cnVlKTsKIAogCXR5cGVOZWVkZWQgPSBz YnNyZWYtPnJlZnJlc3R5cGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKaW5kZXggMjk0MGZi OGU4ZDcuLjIzNGMyYzI3OGMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCkBAIC01NCw3 ICs1NCw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5U3ViV29ya3NwYWNlCiAgKi8KIHN0YXRpYyB2 b2lkCiBhcnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAot CQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgTGlzdCAqKmluZGlyZWN0aW9uLAog CQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgIGJvb2wgaXNTbGljZSwKIAkJCQkJ CSAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC03MSw3ICs3MSw3IEBAIGFycmF5X3N1YnNjcmlwdF90 cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICogaW5kaXJlY3Rpb24gaXRlbXMg dG8gc2xpY2VzIGJ5IHRyZWF0aW5nIHRoZSBzaW5nbGUgc3Vic2NyaXB0IGFzIHRoZQogCSAqIHVw cGVyIGJvdW5kIGFuZCBzdXBwbHlpbmcgYW4gYXNzdW1lZCBsb3dlciBib3VuZCBvZiAxLgogCSAq LwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9u KQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAJ CU5vZGUJICAgKnN1YmV4cHI7CkBAIC0xNTIsNiArMTUyLDggQEAgYXJyYXlfc3Vic2NyaXB0X3Ry YW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVy SW5kZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIg c2VwYXJhdGVseSAqLwogCisJKmluZGlyZWN0aW9uID0gTklMOworCiAJLyoKIAkgKiBEZXRlcm1p bmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uLiAgSXQncyB0 aGUgc2FtZQogCSAqIGFzIHRoZSBhcnJheSB0eXBlIGlmIHdlJ3JlIHNsaWNpbmcsIGVsc2UgaXQn cyB0aGUgZWxlbWVudCB0eXBlLiAgSW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCBl ODYyNmQzYjRmYy4uNWVhZDY5M2EzYjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAg LTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKICAqLwogc3Rh dGljIHZvaWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNy ZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJICBMaXN0ICoqaW5kaXJlY3Rp b24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgYm9vbCBpc1NsaWNlLAog CQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTUzLDcgKzUzLDcgQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKiBUcmFuc2Zvcm0gYW5k IGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4gSnNvbmIgc3Vic2NyaXB0aW5nCiAJ ICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhdCB0aGUgdXBwZXIgaW5kZXgu CiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQorCWZvcmVhY2goaWR4LCAqaW5kaXJl Y3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4 KTsKIAkJTm9kZQkgICAqc3ViRXhwcjsKQEAgLTE1OSw2ICsxNTksOCBAQCBqc29uYl9zdWJzY3Jp cHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUg cmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyBqc29uYiAq LwogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05CT0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0g LTE7CisKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGlu Zy5oCmluZGV4IDIzNGU4YWQ4MDEyLi5kZjk4OGE4NWZhZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0 aW5nLmgKQEAgLTcxLDYgKzcxLDExIEBAIHN0cnVjdCBTdWJzY3JpcHRFeGVjU3RlcHM7CiAgKiBk b2VzIG5vdCBjYXJlIHRvIHN1cHBvcnQgc2xpY2luZywgaXQgY2FuIGp1c3QgdGhyb3cgYW4gZXJy b3IgaWYgaXNTbGljZS4pCiAgKiBTZWUgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgpIGZvciBz YW1wbGUgY29kZS4KICAqCisgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCByZWNlaXZlcyBhIHBvaW50 ZXIgdG8gYSBsaXN0IG9mIHJhdyBpbmRpcmVjdGlvbnMuCisgKiBJdCBtYXkgcGFyc2UgYSBzdWJs aXN0ICh0eXBpY2FsbHkgdGhlIHByZWZpeCkgb2YgdGhlc2UgaW5kaXJlY3Rpb25zIGFuZAorICog bW9kaWZ5IHRoZSBvcmlnaW5hbCBsaXN0IGluIHBsYWNlLCBhbGxvd2luZyB0aGUgY2FsbGVyIHRv IGhhbmRsZSBhbnkKKyAqIHJlbWFpbmluZyBpbmRpcmVjdGlvbnMgZGlmZmVyZW50bHkgb3IgdG8g cmFpc2UgYW4gZXJyb3IgYXMgbmVlZGVkLgorICoKICAqIFRoZSB0cmFuc2Zvcm0gbWV0aG9kIGlz IGFsc28gcmVzcG9uc2libGUgZm9yIGlkZW50aWZ5aW5nIHRoZSByZXN1bHQgdHlwZQogICogb2Yg dGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb24uICBBdCBjYWxsLCByZWZjb250YWluZXJ0eXBlIGFu ZCByZWZ0eXBtb2QKICAqIGRlc2NyaWJlIHRoZSBjb250YWluZXIgdHlwZSAodGhpcyB3aWxsIGJl IGEgYmFzZSB0eXBlIG5vdCBhIGRvbWFpbiksIGFuZApAQCAtOTMsNyArOTgsNyBAQCBzdHJ1Y3Qg U3Vic2NyaXB0RXhlY1N0ZXBzOwogICogYXNzaWdubWVudCBtdXN0IHJldHVybi4KICAqLwogdHlw ZWRlZiB2b2lkICgqU3Vic2NyaXB0VHJhbnNmb3JtKSAoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYs Ci0JCQkJCQkJCQlMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCQkJCUxpc3QgKippbmRpcmVjdGlv biwKIAkJCQkJCQkJCXN0cnVjdCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQlib29sIGlz U2xpY2UsCiAJCQkJCQkJCQlib29sIGlzQXNzaWdubWVudCk7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aAppbmRleCBmN2QwN2M4NDU0Mi4uNThhNGI5ZGYxNTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aApAQCAtMzYxLDcgKzM2MSw3IEBAIGV4dGVybiBTdWJzY3JpcHRpbmdSZWYgKnRyYW5zZm9ybUNv bnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQkJCSBOb2Rl ICpjb250YWluZXJCYXNlLAogCQkJCQkJCQkJCQkJCSBPaWQgY29udGFpbmVyVHlwZSwKIAkJCQkJ CQkJCQkJCQkgaW50MzIgY29udGFpbmVyVHlwTW9kLAotCQkJCQkJCQkJCQkJCSBMaXN0ICppbmRp cmVjdGlvbiwKKwkJCQkJCQkJCQkJCQkgTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJCQkJCQkJ CSBib29sIGlzQXNzaWdubWVudCk7CiBleHRlcm4gQ29uc3QgKm1ha2VfY29uc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0NvbnN0ICphY29uc3QpOwogCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQp Cgo= --0000000000003b99b4063e7b2e10 Content-Type: application/octet-stream; name="v18-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v18-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfen1o794 RnJvbSA4NjRlODcwMjcxZDAzM2FiNjFmMDgyMzhmM2E2MGY4YTYwYWViYjhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTggNC83XSBFeHRyYWN0IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQoKQoKVGhpcyBp cyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGEgZnV0dXJlIGNvbW1pdCB0aGF0IHdpbGwgcmV1c2Ug dGhlCmFmb3JlbWVudGlvbmVkIGZ1bmN0aW9uLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBHbHVr aG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEgV2Fu ZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5z dGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRhcmEg PG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGppYW4udW5p dmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIHwgMTI4ICsr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlv bnMoKyksIDY0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCAy YWE0MTBmNjA1Yi4uODg1MmMyN2ExOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAg LTMyLDYgKzMyLDY5IEBAIHR5cGVkZWYgc3RydWN0IEpzb25iU3ViV29ya3NwYWNlCiAJRGF0dW0J ICAgKmluZGV4OwkJCS8qIFN1YnNjcmlwdCB2YWx1ZXMgaW4gRGF0dW0gZm9ybWF0ICovCiB9IEpz b25iU3ViV29ya3NwYWNlOwogCitzdGF0aWMgTm9kZSAqCitjb2VyY2VfanNvbnBhdGhfc3Vic2Ny aXB0X3RvX2ludDRfb3JfdGV4dChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnN1YkV4cHIpCit7 CisJT2lkCQkJc3ViRXhwclR5cGUgPSBleHByVHlwZShzdWJFeHByKTsKKwlPaWQJCQl0YXJnZXRU eXBlID0gSW52YWxpZE9pZDsKKworCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQorCXsK KwkJY29uc3QgT2lkCXRhcmdldHNbXSA9IHtJTlQ0T0lELCBURVhUT0lEfTsKKworCQkvKgorCQkg KiBKc29uYiBjYW4gaGFuZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0IGNhc2VzIHdo ZW4gYQorCQkgKiBzdWJzY3JpcHQgY291bGQgYmUgY29lcmNlZCB0byBtdWx0aXBsZSB0YXJnZXQg dHlwZXMgbXVzdCBiZQorCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rp b25zLiBJdCBjb3VsZCBiZSBwb3NzaWJseQorCQkgKiBleHRlbmQgd2l0aCBqc29ucGF0aCBpbiB0 aGUgZnV0dXJlLgorCQkgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGhvZih0YXJnZXRz KTsgaSsrKQorCQl7CisJCQlpZiAoY2FuX2NvZXJjZV90eXBlKDEsICZzdWJFeHByVHlwZSwgJnRh cmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIE9uZSB0 eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRlZCwgaXQgbWVhbnMgdGhlcmUgYXJlIHR3bworCQkJCSAq IGNvZXJjaW9uIHRhcmdldHMgcG9zc2libGUsIGZhaWx1cmUuCisJCQkJICovCisJCQkJaWYgKE9p ZElzVmFsaWQodGFyZ2V0VHlwZSkpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCQkJIGVycm1zZygic3Vic2NyaXB0 IHR5cGUgJXMgaXMgbm90IHN1cHBvcnRlZCIsIGZvcm1hdF90eXBlX2JlKHN1YkV4cHJUeXBlKSks CisJCQkJCQkJIGVycmhpbnQoImpzb25iIHN1YnNjcmlwdCBtdXN0IGJlIGNvZXJjaWJsZSB0byBv bmx5IG9uZSB0eXBlLCBpbnRlZ2VyIG9yIHRleHQuIiksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKworCQkJCXRhcmdldFR5cGUg PSB0YXJnZXRzW2ldOworCQkJfQorCQl9CisKKwkJLyoKKwkJICogTm8gc3VpdGFibGUgdHlwZXMg d2VyZSBmb3VuZCwgZmFpbHVyZS4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh0YXJnZXRUeXBl KSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVk IiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKKwkJCQkJIGVycmhpbnQoImpzb25iIHN1 YnNjcmlwdCBtdXN0IGJlIGNvZXJjaWJsZSB0byBlaXRoZXIgaW50ZWdlciBvciB0ZXh0LiIpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHN1YkV4cHIpKSkp OworCX0KKwllbHNlCisJCXRhcmdldFR5cGUgPSBURVhUT0lEOworCisJLyoKKwkgKiBXZSBrbm93 biBmcm9tIGNhbl9jb2VyY2VfdHlwZSB0aGF0IGNvZXJjaW9uIHdpbGwgc3VjY2VlZCwgc28KKwkg KiBjb2VyY2VfdHlwZSBjb3VsZCBiZSB1c2VkLiBOb3RlIHRoZSBpbXBsaWNpdCBjb2VyY2lvbiBj b250ZXh0LCB3aGljaCBpcworCSAqIHJlcXVpcmVkIHRvIGhhbmRsZSBzdWJzY3JpcHRzIG9mIGRp ZmZlcmVudCB0eXBlcywgc2ltaWxhciB0byBvdmVybG9hZGVkCisJICogZnVuY3Rpb25zLgorCSAq LworCXN1YkV4cHIgPSBjb2VyY2VfdHlwZShwc3RhdGUsCisJCQkJCQkgIHN1YkV4cHIsIHN1YkV4 cHJUeXBlLAorCQkJCQkJICB0YXJnZXRUeXBlLCAtMSwKKwkJCQkJCSAgQ09FUkNJT05fSU1QTElD SVQsCisJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJICAtMSk7CisKKwlyZXR1 cm4gc3ViRXhwcjsKK30KIAogLyoKICAqIEZpbmlzaCBwYXJzZSBhbmFseXNpcyBvZiBhIFN1YnNj cmlwdGluZ1JlZiBleHByZXNzaW9uIGZvciBhIGpzb25iLgpAQCAtNzQsNzEgKzEzNyw4IEBAIGpz b25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAKIAkJaWYg KGFpLT51aWR4KQogCQl7Ci0JCQlPaWQJCQlzdWJFeHByVHlwZSA9IEludmFsaWRPaWQsCi0JCQkJ CQl0YXJnZXRUeXBlID0gVU5LTk9XTk9JRDsKLQogCQkJc3ViRXhwciA9IHRyYW5zZm9ybUV4cHIo cHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7Ci0JCQlzdWJFeHByVHlwZSA9 IGV4cHJUeXBlKHN1YkV4cHIpOwotCi0JCQlpZiAoc3ViRXhwclR5cGUgIT0gVU5LTk9XTk9JRCkK LQkJCXsKLQkJCQlPaWQJCQl0YXJnZXRzWzJdID0ge0lOVDRPSUQsIFRFWFRPSUR9OwotCi0JCQkJ LyoKLQkJCQkgKiBKc29uYiBjYW4gaGFuZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0 IGNhc2VzIHdoZW4gYQotCQkJCSAqIHN1YnNjcmlwdCBjb3VsZCBiZSBjb2VyY2VkIHRvIG11bHRp cGxlIHRhcmdldCB0eXBlcyBtdXN0IGJlCi0JCQkJICogYXZvaWRlZCwgc2ltaWxhciB0byBvdmVy bG9hZGVkIGZ1bmN0aW9ucy4gSXQgY291bGQgYmUKLQkJCQkgKiBwb3NzaWJseSBleHRlbmQgd2l0 aCBqc29ucGF0aCBpbiB0aGUgZnV0dXJlLgotCQkJCSAqLwotCQkJCWZvciAoaW50IGkgPSAwOyBp IDwgMjsgaSsrKQotCQkJCXsKLQkJCQkJaWYgKGNhbl9jb2VyY2VfdHlwZSgxLCAmc3ViRXhwclR5 cGUsICZ0YXJnZXRzW2ldLCBDT0VSQ0lPTl9JTVBMSUNJVCkpCi0JCQkJCXsKLQkJCQkJCS8qCi0J CQkJCQkgKiBPbmUgdHlwZSBoYXMgYWxyZWFkeSBzdWNjZWVkZWQsIGl0IG1lYW5zIHRoZXJlIGFy ZQotCQkJCQkJICogdHdvIGNvZXJjaW9uIHRhcmdldHMgcG9zc2libGUsIGZhaWx1cmUuCi0JCQkJ CQkgKi8KLQkJCQkJCWlmICh0YXJnZXRUeXBlICE9IFVOS05PV05PSUQpCi0JCQkJCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAot CQkJCQkJCQkJIGVycm1zZygic3Vic2NyaXB0IHR5cGUgJXMgaXMgbm90IHN1cHBvcnRlZCIsIGZv cm1hdF90eXBlX2JlKHN1YkV4cHJUeXBlKSksCi0JCQkJCQkJCQkgZXJyaGludCgianNvbmIgc3Vi c2NyaXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIG9ubHkgb25lIHR5cGUsIGludGVnZXIgb3IgdGV4 dC4iKSwKLQkJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o c3ViRXhwcikpKSk7Ci0KLQkJCQkJCXRhcmdldFR5cGUgPSB0YXJnZXRzW2ldOwotCQkJCQl9Ci0J CQkJfQotCi0JCQkJLyoKLQkJCQkgKiBObyBzdWl0YWJsZSB0eXBlcyB3ZXJlIGZvdW5kLCBmYWls dXJlLgotCQkJCSAqLwotCQkJCWlmICh0YXJnZXRUeXBlID09IFVOS05PV05PSUQpCi0JCQkJCWVy ZXBvcnQoRVJST1IsCi0JCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCks Ci0JCQkJCQkJIGVycm1zZygic3Vic2NyaXB0IHR5cGUgJXMgaXMgbm90IHN1cHBvcnRlZCIsIGZv cm1hdF90eXBlX2JlKHN1YkV4cHJUeXBlKSksCi0JCQkJCQkJIGVycmhpbnQoImpzb25iIHN1YnNj cmlwdCBtdXN0IGJlIGNvZXJjaWJsZSB0byBlaXRoZXIgaW50ZWdlciBvciB0ZXh0LiIpLAotCQkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7 Ci0JCQl9Ci0JCQllbHNlCi0JCQkJdGFyZ2V0VHlwZSA9IFRFWFRPSUQ7Ci0KLQkJCS8qCi0JCQkg KiBXZSBrbm93biBmcm9tIGNhbl9jb2VyY2VfdHlwZSB0aGF0IGNvZXJjaW9uIHdpbGwgc3VjY2Vl ZCwgc28KLQkJCSAqIGNvZXJjZV90eXBlIGNvdWxkIGJlIHVzZWQuIE5vdGUgdGhlIGltcGxpY2l0 IGNvZXJjaW9uIGNvbnRleHQsCi0JCQkgKiB3aGljaCBpcyByZXF1aXJlZCB0byBoYW5kbGUgc3Vi c2NyaXB0cyBvZiBkaWZmZXJlbnQgdHlwZXMsCi0JCQkgKiBzaW1pbGFyIHRvIG92ZXJsb2FkZWQg ZnVuY3Rpb25zLgotCQkJICovCi0JCQlzdWJFeHByID0gY29lcmNlX3R5cGUocHN0YXRlLAotCQkJ CQkJCQkgIHN1YkV4cHIsIHN1YkV4cHJUeXBlLAotCQkJCQkJCQkgIHRhcmdldFR5cGUsIC0xLAot CQkJCQkJCQkgIENPRVJDSU9OX0lNUExJQ0lULAotCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9D QVNULAotCQkJCQkJCQkgIC0xKTsKLQkJCWlmIChzdWJFeHByID09IE5VTEwpCi0JCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAotCQkJ CQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0IG11c3QgaGF2ZSB0ZXh0IHR5cGUiKSwKLQkJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisJ CQlzdWJFeHByID0gY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQocHN0 YXRlLCBzdWJFeHByKTsKIAkJfQogCQllbHNlCiAJCXsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1 NCkKCg== --0000000000003b99b4063e7b2e10 Content-Type: application/octet-stream; name="v18-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Disposition: attachment; filename="v18-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfen1o751 RnJvbSBkMzlhOGE1MTQ5YjM3NmU0ZThlOWQ0MTc2ZmY1MWNiZjMzMTg5ODJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE4IDcvN10gSW1wbGVtZW50IGpzb25iIHdpbGRjYXJkIG1lbWJlciBhY2Nlc3NvcgoKVGhpcyBj b21taXQgYWRkcyBzdXBwb3J0IGZvciB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzIGluIGpzb25iLCBh cwpzcGVjaWZpZWQgYnkgdGhlIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggaW4gU1FM OjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdtYWls LmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5vc3NA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFuZS5u ZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2VkYi5j b20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmlld2Vk LWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogUGV0 ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBKZWx0ZSBG ZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgpUZXN0ZWQtYnk6IEplbHRlIEZlbm5lbWEt TmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+ClRlc3RlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFv QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAg ICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAg ICB8ICAzOSArLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAg ICB8ICA2NyArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyAgICAgICAg ICAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgICA2ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAg ICAgfCAgMTIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAg IHwgICAzICsKIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYyAgICAgICAgICB8 ICAxOCArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIgICAgIHwg IDIzICstCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dCAgICAgfCAg IDIgKwogc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYyAgICAgIHwgICA1 ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCAgICAgICAgICAgfCAyMjIg KysrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgICAgICAg ICAgICAgICAgfCAgNDIgKysrLQogMTQgZmlsZXMgY2hhbmdlZCwgNDA2IGluc2VydGlvbnMoKyks IDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggZDFiZDU3NWQ5YmQuLjVm MzAzOGExYzI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjkxLDYgKzI5MSw5IEBAIGV4cHJU eXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkgKi8KIAkJCXR5cGUgPSBURVhUT0lEOwogCQkJYnJl YWs7CisJCWNhc2UgVF9TdGFyOgorCQkJdHlwZSA9IFVOS05PV05PSUQ7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChp bnQpIG5vZGVUYWcoZXhwcikpOwogCQkJdHlwZSA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KQEAgLTExNTYsNiArMTE1OSw5IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAq ZXhwciwgT2lkIGNvbGxhdGlvbikKIAkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgogCQkJKChG aWVsZEFjY2Vzc29yRXhwciAqKSBleHByKS0+ZmFlY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJl YWs7CisJCWNhc2UgVF9TdGFyOgorCQkJQXNzZXJ0KCFPaWRJc1ZhbGlkKGNvbGxhdGlvbikpOwor CQkJYnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJCQkoKFN1YnNjcmlwdGluZ1Jl ZiAqKSBleHByKS0+cmVmY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CkBAIC0yMTQwLDYg KzIxNDYsNyBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2Fz ZSBUX0NURVNlYXJjaENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCWNhc2Ug VF9GaWVsZEFjY2Vzc29yRXhwcjoKKwkJY2FzZSBUX1N0YXI6CiAJCQkvKiBwcmltaXRpdmUgbm9k ZSB0eXBlcyB3aXRoIG5vIGV4cHJlc3Npb24gc3Vibm9kZXMgKi8KIAkJCWJyZWFrOwogCQljYXNl IFRfV2l0aENoZWNrT3B0aW9uOgpAQCAtMzAyMCw2ICszMDI3LDcgQEAgZXhwcmVzc2lvbl90cmVl X211dGF0b3JfaW1wbChOb2RlICpub2RlLAogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgogCQlj YXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKIAkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgorCQlj YXNlIFRfU3RhcjoKIAkJCXJldHVybiBjb3B5T2JqZWN0KG5vZGUpOwogCQljYXNlIFRfV2l0aENo ZWNrT3B0aW9uOgogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOWZkNDhhY2IxZjguLmM4NmFiNmZkNTEy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKQEAgLTE4OTgwLDYgKzE4OTgwLDcgQEAgY2hlY2tfZnVuY19uYW1lKExp c3QgKm5hbWVzLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIHN0YXRpYyBMaXN0ICoKIGNoZWNr X2luZGlyZWN0aW9uKExpc3QgKmluZGlyZWN0aW9uLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikK IHsKKyNpZiAwCiAJTGlzdENlbGwgICAqbDsKIAogCWZvcmVhY2gobCwgaW5kaXJlY3Rpb24pCkBA IC0xODk5MCw2ICsxODk5MSw3IEBAIGNoZWNrX2luZGlyZWN0aW9uKExpc3QgKmluZGlyZWN0aW9u LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIAkJCQlwYXJzZXJfeXllcnJvcigiaW1wcm9wZXIg dXNlIG9mIFwiKlwiIik7CiAJCX0KIAl9CisjZW5kaWYKIAlyZXR1cm4gaW5kaXJlY3Rpb247CiB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGY4YTA2MTdmODIzLi4zOGFjNjUwM2EyMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC03Myw3ICs3Myw2IEBAIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpOwog c3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJICBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJCQkJCQkJICBpbnQgc3VibGV2 ZWxzX3VwLCBpbnQgbG9jYXRpb24pOwotc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxh dGVDbGF1c2UgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25PYmplY3RDb25zdHJ1Y3Rv cihQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0xNTcsNyArMTU2LDcgQEAgdHJhbnNmb3JtRXhwclJl Y3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJYnJlYWs7CiAKIAkJY2Fz ZSBUX0FfSW5kaXJlY3Rpb246Ci0JCQlyZXN1bHQgPSB0cmFuc2Zvcm1JbmRpcmVjdGlvbihwc3Rh dGUsIChBX0luZGlyZWN0aW9uICopIGV4cHIpOworCQkJcmVzdWx0ID0gdHJhbnNmb3JtSW5kaXJl Y3Rpb24ocHN0YXRlLCAoQV9JbmRpcmVjdGlvbiAqKSBleHByLCBOVUxMKTsKIAkJCWJyZWFrOwog CiAJCWNhc2UgVF9BX0FycmF5RXhwcjoKQEAgLTQzMSw4ICs0MzAsOSBAQCB1bmtub3duX2F0dHJp YnV0ZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnJlbHJlZiwgY29uc3QgY2hhciAqYXR0bmFt ZSwKIAl9CiB9CiAKLXN0YXRpYyBOb2RlICoKLXRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQorTm9kZSAqCit0cmFuc2Zvcm1JbmRpcmVj dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKKwkJCQkJIGJvb2wg KnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKQogewogCU5vZGUJICAgKmxhc3Rfc3JmID0gcHN0YXRl LT5wX2xhc3Rfc3JmOwogCU5vZGUJICAgKnJlc3VsdCA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBz dGF0ZSwgaW5kLT5hcmcpOwpAQCAtNDUwLDE2ICs0NTAsOCBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAl7CiAJCU5vZGUJICAg Km4gPSBsZmlyc3QoaSk7CiAKLQkJaWYgKElzQShuLCBBX0luZGljZXMpIHx8IElzQShuLCBTdHJp bmcpKQotCQkJc3Vic2NyaXB0cyA9IGxhcHBlbmQoc3Vic2NyaXB0cywgbik7Ci0JCWVsc2UKLQkJ ewotCQkJQXNzZXJ0KElzQShuLCBBX1N0YXIpKTsKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygicm93 IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCi0JCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKLQkJfQorCQlBc3NlcnQgKElzQShu LCBBX0luZGljZXMpIHx8IElzQShuLCBTdHJpbmcpIHx8IElzQShuLCBBX1N0YXIpKTsKKwkJc3Vi c2NyaXB0cyA9IGxhcHBlbmQoc3Vic2NyaXB0cywgbik7CiAJfQogCiAJd2hpbGUgKHN1YnNjcmlw dHMpCkBAIC00ODYsNyArNDc4LDIxIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCiAJCQluID0gbGluaXRpYWwoc3Vic2NyaXB0 cyk7CiAKLQkJCWlmICghSXNBKG4sIFN0cmluZykpCisJCQlpZiAoSXNBKG4sIEFfU3RhcikpCisJ CQl7CisJCQkJLyogU3VjY2VzcywgaWYgdHJhaWxpbmcgc3RhciBleHBhbnNpb24gaXMgYWxsb3dl ZCAqLworCQkJCWlmICh0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiAmJiBsaXN0X2xlbmd0aChzdWJz Y3JpcHRzKSA9PSAxKQorCQkJCXsKKwkJCQkJKnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uID0gdHJ1 ZTsKKwkJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCQl9CisKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1z Zygicm93IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCisJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJCQl9CisJCQllbHNl IGlmICghSXNBKG4sIFN0cmluZykpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNj cmlwdCB0eXBlICVzIGJlY2F1c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLApA QCAtNTEyLDYgKzUxOCw5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQlyZXN1bHQgPSBuZXdyZXN1bHQ7CiAJfQogCisJaWYg KHRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKQorCQkqdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gPSBm YWxzZTsKKwogCXJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpp bmRleCBiODk3MzZmZjFlYS4uODVjMDVjNzQzNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0 LmMKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybUFzc2lnbm1lbnRTdWJz Y3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBMaXN0ICpFeHBhbmRDb2x1bW5SZWZT dGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLAogCQkJCQkJCQkgYm9vbCBt YWtlX3RhcmdldF9lbnRyeSk7CiBzdGF0aWMgTGlzdCAqRXhwYW5kQWxsVGFibGVzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgaW50IGxvY2F0aW9uKTsKLXN0YXRpYyBMaXN0ICpFeHBhbmRJbmRpcmVjdGlv blN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCitzdGF0aWMgTm9k ZSAqRXhwYW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlv biAqaW5kLAogCQkJCQkJCQkgICBib29sIG1ha2VfdGFyZ2V0X2VudHJ5LCBQYXJzZUV4cHJLaW5k IGV4cHJLaW5kKTsKIHN0YXRpYyBMaXN0ICpFeHBhbmRTaW5nbGVUYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCQkJCSAgIGludCBzdWJsZXZl bHNfdXAsIGludCBsb2NhdGlvbiwKQEAgLTEzMyw2ICsxMzMsNyBAQCB0cmFuc2Zvcm1UYXJnZXRM aXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAlmb3JlYWNoKG9fdGFy Z2V0LCB0YXJnZXRsaXN0KQogCXsKIAkJUmVzVGFyZ2V0ICAqcmVzID0gKFJlc1RhcmdldCAqKSBs Zmlyc3Qob190YXJnZXQpOworCQlOb2RlCSAgICp0cmFuc2Zvcm1lZCA9IE5VTEw7CiAKIAkJLyoK IAkJICogQ2hlY2sgZm9yICJzb21ldGhpbmcuKiIuICBEZXBlbmRpbmcgb24gdGhlIGNvbXBsZXhp dHkgb2YgdGhlCkBAIC0xNjEsMTMgKzE2MiwxOSBAQCB0cmFuc2Zvcm1UYXJnZXRMaXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAogCQkJCWlmIChJc0EobGxhc3QoaW5k LT5pbmRpcmVjdGlvbiksIEFfU3RhcikpCiAJCQkJewotCQkJCQkvKiBJdCBpcyBzb21ldGhpbmcu KiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KLQkJCQkJcF90YXJnZXQgPSBsaXN0X2Nv bmNhdChwX3RhcmdldCwKLQkJCQkJCQkJCQkgICBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRl LAotCQkJCQkJCQkJCQkJCQkJCSBpbmQsCi0JCQkJCQkJCQkJCQkJCQkJIHRydWUsCi0JCQkJCQkJ CQkJCQkJCQkJIGV4cHJLaW5kKSk7Ci0JCQkJCWNvbnRpbnVlOworCQkJCQlOb2RlCSAgICpjb2x1 bW5zID0gRXhwYW5kSW5kaXJlY3Rpb25TdGFyKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCQkJCQlpbmQs CisJCQkJCQkJCQkJCQkJCQkJdHJ1ZSwKKwkJCQkJCQkJCQkJCQkJCQlleHByS2luZCk7CisKKwkJ CQkJaWYgKElzQShjb2x1bW5zLCBMaXN0KSkKKwkJCQkJeworCQkJCQkJLyogSXQgaXMgc29tZXRo aW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCisJCQkJCQlwX3RhcmdldCA9IGxp c3RfY29uY2F0KHBfdGFyZ2V0LCAoTGlzdCAqKSBjb2x1bW5zKTsKKwkJCQkJCWNvbnRpbnVlOwor CQkJCQl9CisKKwkJCQkJdHJhbnNmb3JtZWQgPSAoTm9kZSAqKSBjb2x1bW5zOwogCQkJCX0KIAkJ CX0KIAkJfQpAQCAtMTc5LDcgKzE4Niw3IEBAIHRyYW5zZm9ybVRhcmdldExpc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICp0YXJnZXRsaXN0LAogCQlwX3RhcmdldCA9IGxhcHBlbmQocF90YXJn ZXQsCiAJCQkJCQkgICB0cmFuc2Zvcm1UYXJnZXRFbnRyeShwc3RhdGUsCiAJCQkJCQkJCQkJCQly ZXMtPnZhbCwKLQkJCQkJCQkJCQkJCU5VTEwsCisJCQkJCQkJCQkJCQl0cmFuc2Zvcm1lZCwKIAkJ CQkJCQkJCQkJCWV4cHJLaW5kLAogCQkJCQkJCQkJCQkJcmVzLT5uYW1lLAogCQkJCQkJCQkJCQkJ ZmFsc2UpKTsKQEAgLTI1MCwxMCArMjU3LDE1IEBAIHRyYW5zZm9ybUV4cHJlc3Npb25MaXN0KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZXhwcmxpc3QsCiAKIAkJCWlmIChJc0EobGxhc3QoaW5k LT5pbmRpcmVjdGlvbiksIEFfU3RhcikpCiAJCQl7Ci0JCQkJLyogSXQgaXMgc29tZXRoaW5nLios IGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCi0JCQkJcmVzdWx0ID0gbGlzdF9jb25jYXQo cmVzdWx0LAotCQkJCQkJCQkJIEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsIGluZCwKLQkJ CQkJCQkJCQkJCQkJICAgZmFsc2UsIGV4cHJLaW5kKSk7CisJCQkJTm9kZQkgICAqY29scyA9IEV4 cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsIGluZCwKKwkJCQkJCQkJCQkJCQkJIGZhbHNlLCBl eHByS2luZCk7CisKKwkJCQlpZiAoIWNvbHMgfHwgSXNBKGNvbHMsIExpc3QpKQorCQkJCQkvKiBJ dCBpcyBzb21ldGhpbmcuKiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KKwkJCQkJcmVz dWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCAoTGlzdCAqKSBjb2xzKTsKKwkJCQllbHNlCisJCQkJ CXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBjb2xzKTsKKwogCQkJCWNvbnRpbnVlOwogCQkJfQog CQl9CkBAIC0xMzQ0LDIyICsxMzU2LDMwIEBAIEV4cGFuZEFsbFRhYmxlcyhQYXJzZVN0YXRlICpw c3RhdGUsIGludCBsb2NhdGlvbikKICAqIEZvciByb2J1c3RuZXNzLCB3ZSB1c2UgYSBzZXBhcmF0 ZSAibWFrZV90YXJnZXRfZW50cnkiIGZsYWcgdG8gY29udHJvbAogICogdGhpcyByYXRoZXIgdGhh biByZWx5aW5nIG9uIGV4cHJLaW5kLgogICovCi1zdGF0aWMgTGlzdCAqCitzdGF0aWMgTm9kZSAq CiBFeHBhbmRJbmRpcmVjdGlvblN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9u ICppbmQsCiAJCQkJCSAgYm9vbCBtYWtlX3RhcmdldF9lbnRyeSwgUGFyc2VFeHByS2luZCBleHBy S2luZCkKIHsKIAlOb2RlCSAgICpleHByOworCVBhcnNlRXhwcktpbmQgc3ZfZXhwcl9raW5kOwor CWJvb2wJCXRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uID0gZmFsc2U7CisKKwkvKiBTYXZlIGFuZCBy ZXN0b3JlIGlkZW50aXR5IG9mIGV4cHJlc3Npb24gdHlwZSB3ZSdyZSBwYXJzaW5nICovCisJQXNz ZXJ0KGV4cHJLaW5kICE9IEVYUFJfS0lORF9OT05FKTsKKwlzdl9leHByX2tpbmQgPSBwc3RhdGUt PnBfZXhwcl9raW5kOworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBleHByS2luZDsKIAogCS8qIFN0 cmlwIG9mZiB0aGUgJyonIHRvIGNyZWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgcm93dHlwZSBvYmpl Y3QgKi8KLQlpbmQgPSBjb3B5T2JqZWN0KGluZCk7Ci0JaW5kLT5pbmRpcmVjdGlvbiA9IGxpc3Rf dHJ1bmNhdGUoaW5kLT5pbmRpcmVjdGlvbiwKLQkJCQkJCQkJCSBsaXN0X2xlbmd0aChpbmQtPmlu ZGlyZWN0aW9uKSAtIDEpOworCWV4cHIgPSB0cmFuc2Zvcm1JbmRpcmVjdGlvbihwc3RhdGUsIGlu ZCwgJnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBz dl9leHByX2tpbmQ7CiAKLQkvKiBBbmQgdHJhbnNmb3JtIHRoYXQgKi8KLQlleHByID0gdHJhbnNm b3JtRXhwcihwc3RhdGUsIChOb2RlICopIGluZCwgZXhwcktpbmQpOworCS8qICcqJyB3YXMgY29u c3VtZWQgYnkgZ2VuZXJpYyB0eXBlIHN1YnNjcmlwdGluZyAqLworCWlmICghdHJhaWxpbmdfc3Rh cl9leHBhbnNpb24pCisJCXJldHVybiBleHByOwogCiAJLyogRXhwYW5kIHRoZSByb3d0eXBlIGV4 cHJlc3Npb24gaW50byBpbmRpdmlkdWFsIGZpZWxkcyAqLwotCXJldHVybiBFeHBhbmRSb3dSZWZl cmVuY2UocHN0YXRlLCBleHByLCBtYWtlX3RhcmdldF9lbnRyeSk7CisJcmV0dXJuIChOb2RlICop IEV4cGFuZFJvd1JlZmVyZW5jZShwc3RhdGUsIGV4cHIsIG1ha2VfdGFyZ2V0X2VudHJ5KTsKIH0K IAogLyoKQEAgLTE3ODQsMTMgKzE4MDQsMTggQEAgRmlndXJlQ29sbmFtZUludGVybmFsKE5vZGUg Km5vZGUsIGNoYXIgKipuYW1lKQogCQkJCWNoYXIJICAgKmZuYW1lID0gTlVMTDsKIAkJCQlMaXN0 Q2VsbCAgICpsOwogCi0JCQkJLyogZmluZCBsYXN0IGZpZWxkIG5hbWUsIGlmIGFueSwgaWdub3Jp bmcgIioiIGFuZCBzdWJzY3JpcHRzICovCisJCQkJLyoKKwkJCQkgKiBmaW5kIGxhc3QgZmllbGQg bmFtZSwgaWYgYW55LCBpZ25vcmluZyBzdWJzY3JpcHRzLCBhbmQgdXNlCisJCQkJICogJz9jb2x1 bW4/JyB3aGVuIHRoZXJlJ3MgYSB0cmFpbGluZyAnKicuCisJCQkJICovCiAJCQkJZm9yZWFjaChs LCBpbmQtPmluZGlyZWN0aW9uKQogCQkJCXsKIAkJCQkJTm9kZQkgICAqaSA9IGxmaXJzdChsKTsK IAogCQkJCQlpZiAoSXNBKGksIFN0cmluZykpCiAJCQkJCQlmbmFtZSA9IHN0clZhbChpKTsKKwkJ CQkJZWxzZSBpZiAoSXNBKGksIEFfU3RhcikpCisJCQkJCQlmbmFtZSA9ICI/Y29sdW1uPyI7CiAJ CQkJfQogCQkJCWlmIChmbmFtZSkKIAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5k ZXggNDc2MmY2YmQxMWMuLjFkY2RlNjU4NzM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5j CkBAIC0xMjQsNyArMTI0LDcgQEAganNvbmJfY2hlY2tfanNvbnBhdGhfbmVlZGVkKExpc3QgKmlu ZGlyZWN0aW9uKQogCXsKIAkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOwogCi0JCWlm IChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykgfHwg SXNBKGFjY2Vzc29yLCBBX1N0YXIpKQogCQkJcmV0dXJuIHRydWU7CiAJCWVsc2UKIAkJewpAQCAt MzM5LDYgKzMzOSwxNiBAQCBqc29uYl9zdWJzY3JpcHRfbWFrZV9qc29ucGF0aChQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwgU3Vic2NyaXB0aQogCQkJCX0KIAkJCX0KIAkJ fQorCQllbHNlIGlmIChJc0EoYWNjZXNzb3IsIEFfU3RhcikpCisJCXsKKwkJCVN0YXIgKnN0YXJf bm9kZTsKKwkJCWpwaSA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlBbnlLZXkpOworCisJCQlzdGFy X25vZGUgPSBtYWtlTm9kZShTdGFyKTsKKwkJCXN0YXJfbm9kZS0+dHlwZSA9IFRfU3RhcjsKKwor CQkJc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIgPSBsYXBwZW5kKHNic3JlZi0+cmVmdXBwZXJpbmRl eHByLCBzdGFyX25vZGUpOworCQl9CiAJCWVsc2UKIAkJewogCQkJLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYwppbmRleCBiYWEzYWU5N2Q1Ny4uYWNlMGVmZjUyZTIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvcnVsZXV0aWxzLmMKQEAgLTEzMDEwLDcgKzEzMDEwLDExIEBAIHByaW50U3Vic2NyaXB0cyhT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCXsKIAkJ Tm9kZSAqdXBwZXIgPSAoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pOwogCi0JCWlmICh1cHBl ciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JFeHByKSkKKwkJaWYgKHVwcGVyICYmIElzQSh1 cHBlciwgU3RhcikpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLioiKTsK KwkJfQorCQllbHNlIGlmICh1cHBlciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JFeHByKSkK IAkJewogCQkJRmllbGRBY2Nlc3NvckV4cHIgKmZhZSA9IChGaWVsZEFjY2Vzc29yRXhwciAqKSB1 cHBlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA3ZTg5NjIxYmQ2NS4uN2U0MTg4MzBmMjIg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0yNDE5LDQgKzI0MTksMTYgQEAgdHlwZWRlZiBzdHJ1 Y3QgRmllbGRBY2Nlc3NvckV4cHIKIAlPaWQJCQlmYWVjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOwogfQkJCUZpZWxkQWNjZXNzb3JFeHByOwogCisvKgorICogU3RhciAt IHJlcHJlc2VudHMgYSB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzb3IgKGUuZy4sICIuKiIpIHVzZWQg aW4gSlNPTkIgc2ltcGxpZmllZCBhY2Nlc3Nvci4KKyAqCisgKiBUaGlzIG5vZGUgc2VydmVzIGFz IGEgc3ludGFjdGljIHBsYWNlaG9sZGVyIGluIHRoZSBleHByZXNzaW9uIHRyZWUgYW5kIGRvZXMg bm90IGdldCBldmFsdWF0ZWQsIGhlbmNlIGl0CisgKiBoYXMgbm8gYXNzb2NpYXRlZCB0eXBlIG9y IGNvbGxhdGlvbi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU3RhcgoreworCU5vZGVUYWcJCXR5cGU7 Cit9CQkJU3RhcjsKKworCiAjZW5kaWYJCQkJCQkJLyogUFJJTU5PREVTX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCmluZGV4IGVmYmFmZjhlNzEwLi5jOWY2YTc3MjRjMCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCkBAIC0yMiw0ICsyMiw3IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luCiAK IGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJL aW5kKTsKIAorZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAorCQkJCQkJCQkgIGJvb2wgKnRyYWlsaW5nX3N0YXJf ZXhwYW5zaW9uKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0VYUFJfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwppbmRleCA5MzViNDdh M2I5YS4uNTg1ZDliMTQ0NDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBl Y3RlZC9zcWwtc3FsanNvbi5jCkBAIC01MTUsOSArNTE1LDkgQEAgaWYgKHNxbGNhLnNxbGNvZGUg PCAwKSBzcWxwcmludCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAj bGluZSAxNDUgInNxbGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249 JXNcbiIsIGpzb24pOwogCi0JeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdz dF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0s IFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25i ICkgWyAnYicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKKwl7IEVDUEdkbyhfX0xJTkVfXywg MCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7 XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wi eVwiOjF9XX1dfScgOjoganNvbmIgKSAuICogLiB4ICkiLCBFQ1BHdF9FT0lULCAKIAlFQ1BHdF9j aGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCiAJRUNQ R3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAx NDggInNxbGpzb24ucGdjIgpAQCAtNTI3LDcgKzUyNyw3IEBAIGlmIChzcWxjYS5zcWxjb2RlIDwg MCkgc3FscHJpbnQoKTt9CiAKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCi0J eyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3Qg anNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAx fSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICkiLCBF Q1BHdF9FT0lULCAKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25v cm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJi XCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSBb ICdiJyBdIFsgMCA6IF0gKSIsIEVDUEd0X0VPSVQsIAogCUVDUEd0X2NoYXIsKGpzb24pLChsb25n KTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKIAlFQ1BHdF9OT19JTkRJQ0FUT1Is IE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKICNsaW5lIDE1MSAic3FsanNvbi5wZ2Mi CkBAIC01MzcsMTIgKzUzNywyMiBAQCBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7 fQogCiAJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAotICB7IEVDUEdkaXNjb25u ZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19 JyA6OiBqc29uYiApIC4gYiBbIDogXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNv biksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lO RElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOwogI2xpbmUgMTU0ICJzcWxq c29uLnBnYyIKIAogaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KICNsaW5lIDE1 NCAic3FsanNvbi5wZ2MiCiAKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisg IHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisjbGluZSAxNTcgInNxbGpz b24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTU3 ICJzcWxqc29uLnBnYyIKKwogCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKaW5kZXggZjNmODk5YzZk ODcuLjRiOTA4ODU0NWQ2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKQEAgLTM0NywyMiArMzQ3LDE5IEBAIFNRTCBlcnJv cjogc2NoZW1hICJqc29uYiIgZG9lcyBub3QgZXhpc3Qgb24gbGluZSAxMjEKIFtOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxp bmUgMTQ1OiB1c2luZyBQUWV4ZWMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAw MDAwCi1bTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5lIDE0NTogYmFkIHJlc3Bv bnNlIC0gRVJST1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJl Ci1MSU5FIDE6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBb eyJ4IjogMX0sIHsieC4uLgotICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJRF06IGVj cGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxNDU6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0 aCAxIGZpZWxkcwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19Q SURdOiByYWlzaW5nIHNxbHN0YXRlIDBBMDAwIChzcWxjb2RlIC00MDApOiByb3cgZXhwYW5zaW9u IHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1Ci1bTk9fUElEXTogc3Fs Y2E6IGNvZGU6IC00MDAsIHN0YXRlOiAwQTAwMAotU1FMIGVycm9yOiByb3cgZXhwYW5zaW9uIHZp YSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1Ci1bTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTQ4OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAx LCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNv bmIgKSBbICdiJyBdIFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9u IGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTQ1OiBS RVNVTFQ6IFt7ImIiOiAxLCAiYyI6IDJ9LCBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1d fV1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHF1ZXJ5OiBzZWxl Y3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gKiAuIHggKTsgd2l0aCAwIHBhcmFtZXRl cihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KIFtOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4OiB1 c2luZyBQUWV4ZWMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9f UElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0ODogY29ycmVjdGx5IGdvdCAxIHR1 cGxlcyB3aXRoIDEgZmllbGRzCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAotW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogW3sieCI6IDF9 LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06 IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogWzEsIFsxMiwgeyJ5IjogMX1dXSBv ZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAw MDAwCi1bTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUxOiBxdWVyeTogc2VsZWN0IGpz b24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEy LCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihz KSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUg b24gbGluZSAxNTE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjog Mn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIFsg J2InIF0gWyAwIDogXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFf cmVncmVzc2lvbgogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19Q SURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKQEAgLTM3MCw1ICszNjcsMTMgQEAgU1FMIGVycm9y OiByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1 CiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdf Z2V0X2RhdGEgb24gbGluZSAxNTE6IFJFU1VMVDogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBz dGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNTQ6IHF1ZXJ5OiBz ZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7 IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDogXSApOyB3aXRoIDAgcGFy YW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAx NTQ6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAK K1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTU0OiBjb3JyZWN0bHkgZ290 IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE1NDogUkVTVUxUOiBbeyJ4 IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZmluaXNo OiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24gY2xvc2VkCiBbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0 L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKaW5kZXggZDAxYTg0NTdmMDEuLjE0NWRjOTVkNDMw IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpz b24uc3Rkb3V0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5zdGRvdXQKQEAgLTM2LDUgKzM2LDcgQEAgRm91bmQganNvbj17IngiOiAxfQogRm91bmQg anNvbj1bMSwgWzEyLCB7InkiOiAxfV1dCiBGb3VuZCBqc29uPXsieCI6IDF9CiBGb3VuZCBqc29u PVsxMiwgeyJ5IjogMX1dCitGb3VuZCBqc29uPVt7ImIiOiAxLCAiYyI6IDJ9LCBbeyJ4IjogMX0s IHsieCI6IFsxMiwgeyJ5IjogMX1dfV1dCitGb3VuZCBqc29uPVsxLCBbMTIsIHsieSI6IDF9XV0K IEZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dCiBGb3VuZCBqc29u PVt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19XQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9zcWwvc3FsanNvbi5wZ2MKaW5kZXggOTQyM2QyNWZkMGIuLjJhZjUwYjVkYTRiIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCisrKyBiL3NyYy9p bnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKQEAgLTE0Myw3ICsxNDMsMTAgQEAg RVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElPTjsKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOwogCiAJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS4qKSBJTlRP IDpqc29uOwotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKwor CUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4 IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYikuKi54KSBJTlRPIDpqc29uOwor CXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CiAKIAlFWEVDIFNRTCBTRUxFQ1QgSlNP TigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsi eSI6MX1dfV19Jzo6anNvbmIpWydiJ11bMDpdKSBJTlRPIDpqc29uOwogCXByaW50ZigiRm91bmQg anNvbj0lc1xuIiwganNvbik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2pzb25iLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDI3 MDJlZGM5NzA1Li44NmI3Zjc2NzdmYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9qc29uYi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQK QEAgLTYwNjQsOCArNjA2NCwxNzUgQEAgU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiB0OwogIHsieSI6ICJZWVkiLCAieiI6ICJaWloifQogKDEgcm93KQog Ci1TRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZmFpbHMK LUVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCisvKiB3aWxkIGNhcmQgbWVtYmVy IGFjY2VzcyAqLworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiLCAiZiIsIHsieSI6 ICJ5eXkiLCAieiI6ICJ6enoifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIs IHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6Ijog Inp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9 fV1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv biB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsi YiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0 LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisK K1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1 bW4/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6 ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwg IngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJvdykKKworU0VMRUNUIChqYiku KiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5Ijog Inl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIs ICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0 YWJsZSAidCIKK0xJTkUgMTogU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgICAgICAgICAgICAgXgorU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7 ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6 enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1d XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImMiLCAiZCIsICJmIiwgeyJ5 IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiouYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGIgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNU IChqYikuYS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyB4IAorLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCAoamIpLmEuKi55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICB5ICAgCistLS0tLS0tCisgInl5eSIKKygxIHJvdykKKworU0VMRUNUIChqYikuYS4qLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICA/Y29sdW1uPyAgICAKKy0tLS0tLS0t LS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5 IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9LCB7Inki OiAiWVlZIiwgInoiOiAiWlpaIn1dCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKS54IEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAorLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAorLS0tCisg CisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpa WiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9 XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnguKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cpCisKK1NF TEVDVCAoamIpLioueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgeSAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAiWVlZIl0KKygxIHJvdykKKworU0VM RUNUIChqYikuKi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICB6ICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInp6eiIsICJaWloiXQorKDEgcm93KQorCitTRUxF Q1QgKGpiKS4qLioueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgIHkgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgIllZWSJdCisoMSByb3cpCisKK1NFTEVD VCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgID9j b2x1bW4/ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5 IiwgInp6eiIsICJZWVkiLCAiWlpaIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi4qLiouKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEu Ki4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgP2NvbHVtbj8gICAgCistLS0t LS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6Il0KKygxIHJvdykKKworU0VMRUNUIChqYikuYS4q WzpdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICA/Y29sdW1uPyAgICAKKy0t LS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h LipbKl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCitF UlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIqIgorTElORSAxOiBTRUxFQ1QgKGpiKS5h LipbKl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAg ICAgICAgXgorU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 IC0tIG5vdCBzdXBwb3J0ZWQKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioqIgor TElORSAxOiBTRUxFQ1QgKGpiKS5hLioqLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBleHBsYWlucyBzaG91bGQgd29yawogRVhQTEFJ TiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbiB0OwogICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgIApAQCAtNjA5Myw2ICs2MjYwLDQ1IEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKICAyCiAoMSByb3cpCiAKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLioKKygyIHJvd3MpCisKK1NFTEVD VCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAg ICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsiYyIsICJkIiwgImYiLCB7InkiOiAieXl5IiwgInoiOiAienp6 In1dCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYiku YS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLipbOl0uKgorKDIgcm93cykKKworU0VMRUNUIChqYiku YS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgP2NvbHVtbj8gCistLS0t LS0tLS0tCisgCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNU IChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLipbOjJdLiouYgorKDIgcm93cykKKwor U0VMRUNUIChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Cisg YiAKKy0tLQorIAorKDEgcm93KQorCiAtLSB2aWV3cyBzaG91bGQgd29yawogQ1JFQVRFIFZJRVcg dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMgU0VMRUNUIChqYikuYVszXS54LnkgRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFxzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQpA QCAtNjEyMSw2ICs2MzI3LDE3IEBAIFNFTEVDVCAqIGZyb20gdjM7CiAgInl5eSIKICgxIHJvdykK IAorQ1JFQVRFIFZJRVcgdjQgQVMgU0VMRUNUIChqYikuYS4qWzpdLiogRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKK1xzdiB2NAorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudjQg QVMKKyBTRUxFQ1QgKGpiKS5hLipbOl0uKiBBUyAiP2NvbHVtbj8iCisgICBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHY0OworICAgID9jb2x1bW4/ICAgIAorLS0t LS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiJdCisoMSByb3cpCisKIC0tIG1peGVkIHN5bnRh eAogRFJPUCBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOwogRVhQTEFJTiAoVkVSQk9T RSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKQEAgLTYzNTYsNCArNjU3Myw1IEBAIE5PVElDRTogIFsyXQogLS0gY2xlYW4gdXAKIERS T1AgVklFVyB2MjsKIERST1AgVklFVyB2MzsKK0RST1AgVklFVyB2NDsKIERST1AgVEFCTEUgdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9q c29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKaW5kZXggZGUyYzljZGEw OTQuLjA3ZmFjYzI4MGQ3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCkBAIC0xNjMxLDEzICsxNjMx LDQ5IEBAIFNFTEVDVCAoamIpLmFbMjpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK IFNFTEVDVCAoamIpLmFbOjJdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVD VCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogU0VMRUNUICgoamIp LmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwotU0VMRUNUIChqYikuYS4q IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGZhaWxzCisKKy8qIHdpbGQgY2FyZCBt ZW1iZXIgYWNjZXNzICovCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVD VCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworU0VMRUNUICh0LmpiKS4q IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24g dDsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEu Ki54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLioueSBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qLiogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsK K1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoKGpi KS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoamIpLiou eCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54LiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueC55IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK K1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1Qg KGpiKS4qLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5h LmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLiouKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qWzpdLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKlsqXS4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247IC0tIG5vdCBzdXBwb3J0ZWQKK1NFTEVDVCAoamIpLmEuKioueCBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCiAKIC0tIGV4cGxh aW5zIHNob3VsZCB3b3JrCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAodC5q YikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CiBTRUxFQ1QgKHQuamIpLmEgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBTRUxFQ1Qg KGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NF LCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlO IChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEu KlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4q WzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAKIC0tIHZpZXdzIHNob3Vs ZCB3b3JrCiBDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUyBTRUxFQ1Qg KGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwpAQCAtMTY0OCw2ICsx Njg0LDkgQEAgU0VMRUNUICogZnJvbSB2MjsKIENSRUFURSBWSUVXIHYzIEFTIFNFTEVDVCAoamIp LmFbOjNdLngueVstMTpdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBcc3YgdjMKIFNF TEVDVCAqIGZyb20gdjM7CitDUkVBVEUgVklFVyB2NCBBUyBTRUxFQ1QgKGpiKS5hLipbOl0uKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHY0CitTRUxFQ1QgKiBmcm9tIHY0Owog CiAtLSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsK QEAgLTE3NDksNCArMTc4OCw1IEBAICQkIExBTkdVQUdFIHBscGdzcWw7CiAtLSBjbGVhbiB1cAog RFJPUCBWSUVXIHYyOwogRFJPUCBWSUVXIHYzOworRFJPUCBWSUVXIHY0OwogRFJPUCBUQUJMRSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000003b99b4063e7b2e10 Content-Type: application/octet-stream; name="v18-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v18-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfen1o773 RnJvbSA2YmM5MmU2ZGJhZGQ1ZTQxYThkZjNiZjM5ZDg4NTM3N2IxOGUzMzFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTggNS83XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBKU09OQiBtZW1iZXIgYWNjZXNzIHVzaW5nIGRvdCBub3Rh dGlvbiB0aGF0CmFsaWducyB3aXRoIHRoZSBKU09OIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3BlY2lm aWVkIGluIFNRTDoyMDIzLgoKRXhhbXBsZXM6CgotLSBTZXR1cApjcmVhdGUgdGFibGUgdCh4IGlu dCwgeSBqc29uYik7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAxLCAiYiI6IDQyfSc6 Ompzb25iOwppbnNlcnQgaW50byB0IHNlbGVjdCAxLCAneyJhIjogMiwgImIiOiB7ImMiOiA0Mn19 Jzo6anNvbmI7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAzLCAiYiI6IHsiYyI6ICI0 MiJ9LCAiZCI6WzExLCAxMl19Jzo6anNvbmI7CgotLSBFeGlzdGluZyBzeW50YXggaW4gUG9zdGdy ZVNRTCB0aGF0IHByZWRhdGVzIHRoZSBTUUwgc3RhbmRhcmQ6CnNlbGVjdCAodC55KS0+J2InIGZy b20gdDsKc2VsZWN0ICh0LnkpLT4nYictPidjJyBmcm9tIHQ7CnNlbGVjdCAodC55KS0+J2QnLT4w IGZyb20gdDsKCi0tIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpZWQgYnkgdGhlIFNR TCBzdGFuZGFyZDoKc2VsZWN0ICh0LnkpLmIgZnJvbSB0OwpzZWxlY3QgKHQueSkuYi5jIGZyb20g dDsKc2VsZWN0ICh0LnkpLmRbMF0gZnJvbSB0OwoKVGhlIFNRTCBzdGFuZGFyZCBzdGF0ZXMgdGhh dCBzaW1wbGlmaWVkIGFjY2VzcyBpcyBlcXVpdmFsZW50IHRvOgpKU09OX1FVRVJZIChWRVAsICds YXggJC5KQycgV0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5VTEwgT04gRU1QVFkgTlVM TCBPTiBFUlJPUikKCndoZXJlOgogIFZFUCA9IDx2YWx1ZSBleHByZXNzaW9uIHByaW1hcnk+CiAg SkMgPSA8SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIG9wIGNoYWluPgoKRm9yIGV4YW1wbGUsIHRo ZSBKU09OX1FVRVJZIGVxdWl2YWxlbnRzIG9mIHRoZSBhYm92ZSBxdWVyaWVzIGFyZToKCnNlbGVj dCBqc29uX3F1ZXJ5KHksICdsYXggJC5iJyBXSVRIIENPTkRJVElPTkFMIEFSUkFZIFdSQVBQRVIg TlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CnNlbGVjdCBqc29uX3F1ZXJ5KHks ICdsYXggJC5iLmMnIFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZ IE5VTEwgT04gRVJST1IpIGZyb20gdDsKc2VsZWN0IGpzb25fcXVlcnkoeSwgJ2xheCAkLmRbMF0n IFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJS T1IpIGZyb20gdDsKCkltcGxlbWVudGF0aW9uIGRldGFpbHM6CgpUaGlzIHBhdGNoIGV4dGVuZHMg dGhlIGV4aXN0aW5nIGNvbnRhaW5lciBzdWJzY3JpcHRpbmcgaW50ZXJmYWNlIHRvCnN1cHBvcnQg Y29udGFpbmVyLXNwZWNpZmljIGluZm9ybWF0aW9uLCBuYW1lbHkgYSBKU09OUGF0aCBleHByZXNz aW9uCmZvciBqc29uYi4KCkR1cmluZyBxdWVyeSB0cmFuc2Zvcm1hdGlvbiwgaWYgZG90LW5vdGF0 aW9uIGlzIHByZXNlbnQsIGEgSlNPTlBhdGgKZXhwcmVzc2lvbiBpcyBjb25zdHJ1Y3RlZCB0byBy ZXByZXNlbnQgdGhlIGFjY2VzcyBjaGFpbi4KClRoZW4gZHVyaW5nIGV4ZWN1dGlvbiwgaWYgYSBK U09OUGF0aCBleHByZXNzaW9uIGlzIHByZXNlbnQgaW4KSnNvbmJTdWJXb3Jrc3BhY2UsIGV4ZWN1 dGVzIGl0IHZpYSBKc29uUGF0aFF1ZXJ5KCkuCgpOb3RlIHRoYXQgd2UgY2Fubm90IHNpbXBseSBy ZXdyaXRlIHRoZSBhY2Nlc3NvcnMgaW50byBKU09OX1FVRVJZKCkKZHVyaW5nIHRyYW5zZm9ybWF0 aW9uLCBiZWNhdXNlIHRoZSBvcmlnaW5hbCBxdWVyeSBzdHJ1Y3R1cmUgbXVzdCBiZQpwcmVzZXJ2 ZWQgZm9yIEVYUExBSU4gYW5kIENSRUFURSBWSUVXLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBH bHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEg V2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBE dW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRh cmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hcmsgRGlsZ2VyIDxt YXJrLmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpSZXZpZXdlZC1ieTogSmlhbiBIZSA8amlhbi51 bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVmlrIEZlYXJpbmcgPHZpa0Bwb3N0 Z3Jlc2ZyaWVuZHMub3JnPgpSZXZpZXdlZC1ieTogTmlraXRhIE1hbGFraG92IDxodWt1dG9jQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFBldGVyIEVpc2VudHJhdXQgPHBldGVyQGVpc2VudHJhdXQu b3JnPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KVGVzdGVk LWJ5OiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgotLS0KIGRvYy9zcmMv c2dtbC9qc29uLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICB8IDMwMSArKysrKysrKysrKysr CiBzcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQgICAgICAgICAgfCAgIDQgKy0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA4MSArKy0t CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgMTIgKwog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jICAgICAgICAgICAgIHwgMzAxICsrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8 ICA0MyArLQogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDU0ICsrLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jICAgICAgICAgIHwg MTEyICsrKystCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciAgICAg fCAxMDAgKysrKysKIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0ICAg ICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjICAgICAg fCAgMzMgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0ICAgICAgICAgICB8 IDQxMyArKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCAg ICAgICAgICAgICAgICB8IDExMyArKysrLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgICAgICAgIHwgICAxICsKIDE0IGZpbGVzIGNoYW5nZWQsIDE1MDIgaW5zZXJ0aW9u cygrKSwgNzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2pzb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9qc29uLnNnbWwKaW5kZXggMjA2ZWFkYjhmN2IuLjRlNzdlOWU5NTEy IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvanNvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9q c29uLnNnbWwKQEAgLTcxMiw2ICs3MTIsMzA3IEBAIFVQREFURSB0YWJsZV9uYW1lIFNFVCBqc29u Yl9maWVsZFsxXVsnYSddID0gJzEnOwogICA8L3BhcmE+CiAgPC9zZWN0Mj4KIAorIDxzZWN0MiBp ZD0ianNvbmItc2ltcGxpZmllZC1hY2Nlc3NvciI+CisgIDx0aXRsZT5KU09OIFNpbXBsaWZpZWQg QWNjZXNzb3I8L3RpdGxlPgorICA8cGFyYT4KKyAgIFBvc3RncmVTUUwgaW1wbGVtZW50cyB0aGUg SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIGFzIHNwZWNpZmllZCBpbiBTUUw6MjAyMy4KKyAgIFRo ZSBTUUwgc3RhbmRhcmQgZGVmaW5lcyB0aGUgc2ltcGxpZmllZCBhY2Nlc3NvciBhcyBhIGNoYWlu IG9mIG9wZXJhdGlvbnMKKyAgIHRoYXQgY2FuIGluY2x1ZGUgSlNPTiBtZW1iZXIgYWNjZXNzb3Jz IChkb3Qgbm90YXRpb24gZm9yIG9iamVjdCBmaWVsZHMpCisgICBhbmQgSlNPTiBhcnJheSBhY2Nl c3NvcnMgKGludGVnZXIgc3Vic2NyaXB0cyBmb3IgYXJyYXkgZWxlbWVudHMpLgorICAgVGhpcyBw cm92aWRlcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gYWNjZXNzIEpTT04gZGF0YSB0aGF0IGNvbXBs ZW1lbnRzCisgICBQb3N0Z3JlU1FMJ3MgcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZyBhbmQgb3Bl cmF0b3ItYmFzZWQgYWNjZXNzIG1ldGhvZHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRo ZSBTUUw6MjAyMyBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCBpbmNsdWRlczoKKyAgIDxpdGVt aXplZGxpc3Q+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIDxlbXBoYXNpcz5K U09OIG1lbWJlciBhY2Nlc3Nvcjo8L2VtcGhhc2lzPiA8bGl0ZXJhbD5qc29uYl9jb2x1bW4uZmll bGRfbmFtZTwvbGl0ZXJhbD4gCisgICAgICBmb3IgYWNjZXNzaW5nIG9iamVjdCBmaWVsZHMKKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIDxlbXBoYXNpcz5KU09OIGFycmF5IGFjY2Vzc29yOjwvZW1waGFzaXM+IDxsaXRlcmFs Pmpzb25iX2NvbHVtbltpbmRleF08L2xpdGVyYWw+IAorICAgICAgZm9yIGFjY2Vzc2luZyBhcnJh eSBlbGVtZW50cyBieSBpbnRlZ2VyIGluZGV4CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC9pdGVtaXplZGxpc3Q+CisgICBUaGVzZSBjYW4gYmUgY2hhaW5lZCB0b2dldGhlcjog PGxpdGVyYWw+anNvbmJfY29sdW1uLmZpZWxkX25hbWVbMF0ubmVzdGVkX2ZpZWxkPC9saXRlcmFs Pi4KKyAgIFdoZW4gZG90IG5vdGF0aW9uIGlzIHByZXNlbnQgaW4gdGhlIGFjY2Vzc29yIGNoYWlu LCB0aGUgZW50aXJlIGNoYWluIGZvbGxvd3MKKyAgIFNRTDoyMDIzIHNlbWFudGljcyB3aXRoIGxh eCBtb2RlIGJlaGF2aW9yIGFuZCBjb25kaXRpb25hbCBhcnJheSB3cmFwcGVyLgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBUaGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIGlzIHNlbWFudGlj YWxseSBlcXVpdmFsZW50IHRvIHVzaW5nCisgICA8ZnVuY3Rpb24+SlNPTl9RVUVSWTwvZnVuY3Rp b24+IHdpdGggdGhlIDxsaXRlcmFsPmxheDwvbGl0ZXJhbD4gbW9kZSBhbmQKKyAgIDxsaXRlcmFs PldJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJS T1I8L2xpdGVyYWw+CisgICBvcHRpb25zLiBGb3IgZXhhbXBsZSwgPGxpdGVyYWw+anNvbl9jb2wu ZmllbGQ8L2xpdGVyYWw+IGlzIGVxdWl2YWxlbnQgdG8KKyAgIDxsaXRlcmFsPkpTT05fUVVFUlko anNvbl9jb2wsICdsYXggJC5maWVsZCcgV0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5V TEwgT04gRU1QVFkgTlVMTCBPTiBFUlJPUik8L2xpdGVyYWw+LgorICAgVGhlIGNvbmRpdGlvbmFs IGFycmF5IHdyYXBwZXIgd3JhcHMgbXVsdGlwbGUgcmVzdWx0cyBpbiBhbiBhcnJheQorICAgYnV0 IGxlYXZlcyBhIHNpbmdsZSByZXN1bHQgYXMtaXMgd2l0aG91dCB3cmFwcGluZy4KKyAgPC9wYXJh PgorCisgIDxwYXJhPgorICAgRXhhbXBsZXMgb2YgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5 bnRheDoKKworPHByb2dyYW1saXN0aW5nPgorCistLSBCYXNpYyBmaWVsZCBhY2Nlc3MKK1NFTEVD VCAoJ3siY29sb3IiOiAicmVkIiwgInJnYiI6IFsyNTUsIDAsIDBdfSc6Ompzb25iKS5jb2xvcjsK KworLS0gTmVzdGVkIGZpZWxkIGFjY2VzcworU0VMRUNUICgneyJ1c2VyIjogeyJwcm9maWxlIjog eyJzZXR0aW5ncyI6IHsidGhlbWUiOiAiZGFyayJ9fX19Jzo6anNvbmIpLnVzZXIucHJvZmlsZS5z ZXR0aW5ncy50aGVtZTsKKworLS0gSlNPTiBtZW1iZXIgYWNjZXNzb3IgZm9sbG93ZWQgYnkgSlNP TiBhcnJheSBhY2Nlc3NvciAoYm90aCBwYXJ0IG9mIHNpbXBsaWZpZWQgYWNjZXNzb3IpCitTRUxF Q1QgKCd7InJlcGVydG9pcmUiOiBbeyJ0aXRsZSI6ICJTd2FuIExha2UifSwgeyJ0aXRsZSI6ICJU aGUgTnV0Y3JhY2tlciJ9XX0nOjpqc29uYikucmVwZXJ0b2lyZVsxXS50aXRsZTsKKworLS0gSW4g V0hFUkUgY2xhdXNlcworU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSBwcm9maWxlLnByZWZlcmVu Y2VzLnRoZW1lID0gJyJkYXJrIic7CisKKy0tIENvbXBhcmlzb24gd2l0aCBvdGhlciBhY2Nlc3Mg bWV0aG9kcyAoTk9UIGVxdWl2YWxlbnQgLSBkaWZmZXJlbnQgc2VtYW50aWNzKToKK1NFTEVDVCBq c29uX2NvbFsnYWRkcmVzcyddWydjaXR5J107ICAgICAgICAgICAtLSBTdWJzY3JpcHRpbmcKK1NF TEVDVCBqc29uX2NvbC0+J2FkZHJlc3MnLT4nY2l0eSc7ICAgICAgICAgICAtLSBPcGVyYXRvciAg CitTRUxFQ1QganNvbl9jb2wuYWRkcmVzcy5jaXR5OyAgICAgICAgICAgICAgICAgLS0gU2ltcGxp ZmllZCBhY2Nlc3NvciAoZGlmZmVyZW50IGJlaGF2aW9yKQorPC9wcm9ncmFtbGlzdGluZz4KKyAg PC9wYXJhPgorCisgIDxzZWN0MyBpZD0ianNvbmItYWNjZXNzLW1ldGhvZC1jb21wYXJpc29uIj4K KyAgIDx0aXRsZT5Db21wYXJpc29uIG9mIEpTT04gQWNjZXNzIE1ldGhvZHM8L3RpdGxlPgorICAg PHBhcmE+CisgICAgUG9zdGdyZVNRTCBwcm92aWRlcyB0aHJlZSBkaWZmZXJlbnQgYXBwcm9hY2hl cyBmb3IgYWNjZXNzaW5nIEpTT04gZGF0YSwgZWFjaCB3aXRoCisgICAgZGlzdGluY3Qgc2VtYW50 aWNzIGFuZCBiZWhhdmlvcnM6CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNp cz5TUUw6MjAyMyBKU09OIFNpbXBsaWZpZWQgQWNjZXNzb3I6PC9lbXBoYXNpcz4KKyAgICA8aXRl bWl6ZWRsaXN0PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTeW50YXg6 IDxsaXRlcmFsPmpzb25fY29sLmZpZWxkX25hbWU8L2xpdGVyYWw+IChtZW1iZXIgYWNjZXNzb3Ip IGFuZCAKKyAgICAgICA8bGl0ZXJhbD5qc29uX2NvbFtpbmRleF08L2xpdGVyYWw+IChhcnJheSBh Y2Nlc3NvciB3aGVuIHVzZWQgd2l0aCBkb3Qgbm90YXRpb24pCisgICAgICA8L3BhcmE+CisgICAg IDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFN0YW5k YXJkIFNRTDoyMDIzIGJlaGF2aW9yIHdpdGggPGxpdGVyYWw+bGF4PC9saXRlcmFsPiBtb2RlIHNl bWFudGljcworICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBBdXRvbWF0aWMgYXJyYXkgd3JhcHBpbmcvdW53cmFwcGlu ZyBhcyBzcGVjaWZpZWQgaW4gdGhlIFNRTCBzdGFuZGFyZAorICAgICAgPC9wYXJhPgorICAgICA8 L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBXaGVuIGFj Y2Vzc2luZyBhIGZpZWxkIGZyb20gYW4gYXJyYXksIG9wZXJhdGVzIG9uIGVhY2ggYXJyYXkgZWxl bWVudCBhbmQgd3JhcHMgcmVzdWx0cyBpbiBhbiBhcnJheTsKKyAgICAgICB3aGVuIGFjY2Vzc2lu ZyBhbiBhcnJheSBpbmRleCBmcm9tIGEgbm9uLWFycmF5LCB3cmFwcyB0aGUgdmFsdWUgYXMgYW4g YXJyYXkgZmlyc3QKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVHJpZ2dlcmVkIHdoZW4gZG90IG5vdGF0aW9uIGlz IHByZXNlbnQgYW55d2hlcmUgaW4gdGhlIGFjY2Vzc29yIGNoYWluCisgICAgICA8L3BhcmE+Cisg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJl YWQtb25seSBhY2Nlc3MKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0 ZW1pemVkbGlzdD4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPlByZS1z dGFuZGFyZCBKU09OQiBTdWJzY3JpcHRpbmc6PC9lbXBoYXNpcz4KKyAgICA8aXRlbWl6ZWRsaXN0 PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTeW50YXg6IDxsaXRlcmFs Pmpzb25fY29sWydmaWVsZF9uYW1lJ108L2xpdGVyYWw+ICh0ZXh0LWJhc2VkKSBhbmQgCisgICAg ICAgPGxpdGVyYWw+anNvbl9jb2xbaW5kZXhdPC9saXRlcmFsPiAoaW50ZWdlci1iYXNlZCB3aGVu IG5vIGRvdCBub3RhdGlvbiBwcmVzZW50KQorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVt PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBQb3N0Z3JlU1FMJ3Mgb3Jp Z2luYWwgSlNPTkIgc3Vic2NyaXB0aW5nIGJlaGF2aW9yIChhdmFpbGFibGUgc2luY2UgdmVyc2lv biAxNCkKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgRGlyZWN0IG9iamVjdCBmaWVsZCBhbmQgYXJyYXkgZWxlbWVu dCBhY2Nlc3Mgd2l0aG91dCBhcnJheSB3cmFwcGluZy91bndyYXBwaW5nCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IFN1cHBvcnRzIGJvdGggcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucworICAgICAgPC9wYXJhPgor ICAgICA8L2xpc3RpdGVtPgorICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPC9wYXJhPgorCisgICA8 cGFyYT4KKyAgICA8ZW1waGFzaXM+QXJyb3cgT3BlcmF0b3JzOjwvZW1waGFzaXM+CisgICAgPGl0 ZW1pemVkbGlzdD4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU3ludGF4 OiA8bGl0ZXJhbD5qc29uX2NvbC0+J2ZpZWxkX25hbWUnPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+ anNvbl9jb2wtPj4nZmllbGRfbmFtZSc8L2xpdGVyYWw+CisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFBvc3RncmVT UUwncyBKU09OIG9wZXJhdG9ycyB0aGF0IHdvcmsgd2l0aCBib3RoIDxsaXRlcmFsPmpzb248L2xp dGVyYWw+IGFuZCA8bGl0ZXJhbD5qc29uYjwvbGl0ZXJhbD4gdHlwZXMKKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAg RGlyZWN0IG9iamVjdCBmaWVsZCBhbmQgYXJyYXkgZWxlbWVudCBhY2Nlc3Mgd2l0aG91dCBhcnJh eSB3cmFwcGluZy91bndyYXBwaW5nCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxsaXRlcmFsPi0+PC9saXRlcmFs PiByZXR1cm5zIGpzb25iLCA8bGl0ZXJhbD4tPj48L2xpdGVyYWw+IHJldHVybnMgdGV4dAorICAg ICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBSZWFkLW9ubHkgYWNjZXNzCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0 ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxl bXBoYXNpcz5LZXkgU2VtYW50aWMgRGlmZmVyZW5jZXM6PC9lbXBoYXNpcz4gVGhlIG1vc3QgaW1w b3J0YW50IGRpc3RpbmN0aW9ucyBhcmUKKyAgICBob3cgdGhlc2UgbWV0aG9kcyBoYW5kbGUgbWVt YmVyIGFjY2VzcyBmcm9tIGFycmF5cyBhbmQgYXJyYXkgYWNjZXNzIGZyb20gbm9uLWFycmF5IHZh bHVlcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPk1lbWJlciBBY2Nl c3MgZnJvbSBBcnJheXM6PC9lbXBoYXNpcz4KKzxwcm9ncmFtbGlzdGluZz4KKy0tIFNldHVwIGRh dGEKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUgVkFMVUVTIAorICAoJ3siYnJpZ2h0bmVzcyI6IDgw fScpLCAgICAgICAgICAgICAgICAgICAgICAtLSBPYmplY3QgY2FzZQorICAoJ1t7ImJyaWdodG5l c3MiOiA0NX0sIHsiYnJpZ2h0bmVzcyI6IDkwfV0nKTsgLS0gQXJyYXkgY2FzZQorCistLSBEaWZm ZXJlbnQgYmVoYXZpb3JzOgorU0VMRUNUIGRhdGEuYnJpZ2h0bmVzcyBGUk9NIHRlc3RfdGFibGU7 ICAgICAgICAgLS0gU2ltcGxpZmllZCBhY2Nlc3NvcgorLS0gUmVzdWx0czogODAsIFs0NSwgOTBd ICAoYXJyYXkgZWxlbWVudHMgdW53cmFwcGVkLCByZXN1bHRzIHdyYXBwZWQpCisKK1NFTEVDVCBk YXRhWydicmlnaHRuZXNzJ10gRlJPTSB0ZXN0X3RhYmxlOyAgICAgIC0tIFByZS1zdGFuZGFyZCBz dWJzY3JpcHRpbmcgIAorLS0gUmVzdWx0czogODAsIE5VTEwgICAgKG5vIGFycmF5IGhhbmRsaW5n KQorCitTRUxFQ1QgZGF0YS0+J2JyaWdodG5lc3MnIEZST00gdGVzdF90YWJsZTsgICAgICAtLSBB cnJvdyBvcGVyYXRvcgorLS0gUmVzdWx0czogODAsIE5VTEwgICAgKG5vIGFycmF5IGhhbmRsaW5n KQorPC9wcm9ncmFtbGlzdGluZz4KKworICAgIEluIHRoZSBhcnJheSBjYXNlLCB0aGUgc2ltcGxp ZmllZCBhY2Nlc3NvciBhcHBsaWVzIHRoZSBmaWVsZCBhY2Nlc3MgdG8gZWFjaCBhcnJheSBlbGVt ZW50CisgICAgKHVud3JhcHBpbmcpIGFuZCBjb25kaXRpb25hbGx5IHdyYXBzIHRoZSByZXN1bHRz IGluIGFuIGFycmF5LCB3aGlsZSBzdWJzY3JpcHRpbmcgYW5kIGFycm93IG9wZXJhdG9ycworICAg IGF0dGVtcHQgZGlyZWN0IGZpZWxkIGFjY2VzcyBvbiB0aGUgYXJyYXkgaXRzZWxmICh3aGljaCBy ZXR1cm5zIE5VTEwgc2luY2UKKyAgICBhcnJheXMgZG9uJ3QgaGF2ZSBuYW1lZCBmaWVsZHMpLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICA8ZW1waGFzaXM+QXJyYXkgQWNjZXNzIGZyb20g T2JqZWN0cyAoTGF4IE1vZGUgQmVoYXZpb3IpOjwvZW1waGFzaXM+Cis8cHJvZ3JhbWxpc3Rpbmc+ CistLSBTZXR1cCBkYXRhCitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUyAoJ3sid2VhdGhl ciI6ICJzdW5ueSIsICJ0ZW1wZXJhdHVyZSI6ICI3MkYifScpOworCistLSBEaWZmZXJlbnQgYmVo YXZpb3JzIHdoZW4gYWNjZXNzaW5nIFswXSBvbiBhIG5vbi1hcnJheSB2YWx1ZToKK1NFTEVDVCBk YXRhWzBdIEZST00gdGVzdF90YWJsZTsgICAgICAgICAgICAgICAgIC0tIFNpbXBsaWZpZWQgYWNj ZXNzb3IgKGxheCBtb2RlLCBpZiBkb3RzIHByZXNlbnQgZWxzZXdoZXJlKQorLS0gUmVzdWx0OiB7 IndlYXRoZXIiOiAic3VubnkiLCAidGVtcGVyYXR1cmUiOiAiNzJGIn0gIChvYmplY3Qgd3JhcHBl ZCBhcyBhcnJheSwgWzBdIHJldHVybnMgZW50aXJlIG9iamVjdCkKKworU0VMRUNUIGRhdGFbMF0g RlJPTSB0ZXN0X3RhYmxlOyAgICAgICAgICAgICAgICAgLS0gUHJlLXN0YW5kYXJkIHN1YnNjcmlw dGluZyAoc3RyaWN0IG1vZGUsIG5vIGRvdHMpCistLSBSZXN1bHQ6IE5VTEwgIChubyB3cmFwcGlu ZywgZGlyZWN0IGFycmF5IGFjY2VzcyBvbiBvYmplY3QgZmFpbHMpCisKK1NFTEVDVCBkYXRhLT4w IEZST00gdGVzdF90YWJsZTsgICAgICAgICAgICAgICAgIC0tIEFycm93IG9wZXJhdG9yIChzdHJp Y3QgbW9kZSkKKy0tIFJlc3VsdDogTlVMTCAgKG5vIHdyYXBwaW5nLCBkaXJlY3QgYXJyYXkgYWNj ZXNzIG9uIG9iamVjdCBmYWlscykKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICBJbiBsYXggbW9k ZSAoc2ltcGxpZmllZCBhY2Nlc3NvciksIHdoZW4gYW4gYXJyYXkgb3BlcmF0aW9uIGlzIHBlcmZv cm1lZCBvbiBhIG5vbi1hcnJheSB2YWx1ZSwKKyAgICB0aGUgdmFsdWUgaXMgZmlyc3Qgd3JhcHBl ZCBpbiBhbiBhcnJheSwgdGhlbiB0aGUgb3BlcmF0aW9uIHByb2NlZWRzLiBJbiBzdHJpY3QgbW9k ZSAKKyAgICAocHJlLXN0YW5kYXJkIG1ldGhvZHMpLCB0aGUgb3BlcmF0aW9uIGZhaWxzIGFuZCBy ZXR1cm5zIE5VTEwuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5XaGVu IHRvIFVzZSBFYWNoIE1ldGhvZDo8L2VtcGhhc2lzPgorICAgIDxpdGVtaXplZGxpc3Q+CisgICAg IDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFVzZSA8ZW1waGFzaXM+U1FMOjIwMjMg c2ltcGxpZmllZCBhY2Nlc3NvcjwvZW1waGFzaXM+IGZvciBzdGFuZGFyZCBjb21wbGlhbmNlIGFu ZCB3aGVuIHlvdSB3YW50IGxheCBtb2RlIGFuZCBjb25kaXRpb25hbCBhcnJheSB3cmFwcGVyCisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFVzZSA8ZW1waGFzaXM+cHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZzwvZW1w aGFzaXM+IGZvciB3cml0ZSBvcGVyYXRpb25zIG9yIHdoZW4geW91IG5lZWQgZGlyZWN0IGZpZWxk IGFjY2VzcyB3aXRob3V0IGFycmF5IHByb2Nlc3NpbmcKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9s aXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVXNlIDxlbXBo YXNpcz5hcnJvdyBvcGVyYXRvcnM8L2VtcGhhc2lzPiB3aGVuIHlvdSBuZWVkIHRleHQgb3V0cHV0 ICg8bGl0ZXJhbD4tPj48L2xpdGVyYWw+KSBvciB3aGVuIHdvcmtpbmcgd2l0aCBib3RoIDxsaXRl cmFsPmpzb248L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5qc29uYjwvbGl0ZXJhbD4gdHlwZXMKKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKyAgIDwv cGFyYT4KKyAgPC9zZWN0Mz4KKworICA8c2VjdDMgaWQ9Impzb25iLWFjY2Vzc29yLWJlc3QtcHJh Y3RpY2VzIj4KKyAgIDx0aXRsZT5CZXN0IFByYWN0aWNlczogQXZvaWQgTWl4aW5nIEFjY2VzcyBN ZXRob2RzPC90aXRsZT4KKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5JbXBvcnRhbnQ6PC9lbXBo YXNpcz4gRG8gbm90IG1peCBTUUw6MjAyMyBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCAKKyAg ICB3aXRoIHByZS1zdGFuZGFyZCBzdWJzY3JpcHRpbmcgc3ludGF4IGluIHRoZSBzYW1lIGFjY2Vz c29yIGNoYWluLiBUaGVzZSAKKyAgICBtZXRob2RzIGhhdmUgc3VidGx5IGRpZmZlcmVudCBzZW1h bnRpY3MgYW5kIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlIGFsaWFzZXMuCisgICAgTWl4aW5nIHRo ZW0gY2FuIGxlYWQgdG8gY29uZnVzaW9uIGFuZCBjb2RlIHRoYXQgaXMgZGlmZmljdWx0IHRvIHVu ZGVyc3RhbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5SZWNvbW1l bmRlZCAtIENvbnNpc3RlbnQgc2ltcGxpZmllZCBhY2Nlc3Nvcjo8L2VtcGhhc2lzPgorPHByb2dy YW1saXN0aW5nPgorLS0gQWxsIHBhcnRzIHVzZSBzaW1wbGlmaWVkIGFjY2Vzc29yIChzdGFuZGFy ZCBiZWhhdmlvcikKK1NFTEVDVCBkYXRhLmxvY2F0aW9uLmNvb3JkaW5hdGVzLmxhdGl0dWRlIEZS T00gdGFibGU7ICAtLSBHb29kCitTRUxFQ1QgZGF0YS5yZXBlcnRvaXJlWzBdLnRpdGxlIEZST00g dGFibGU7ICAgICAgICAgICAtLSBHb29kICAKK1NFTEVDVCBkYXRhLnVzZXJzWzFdLnByb2ZpbGUu ZW1haWwgRlJPTSB0YWJsZTsgICAgICAgIC0tIEdvb2QKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5SZWNvbW1lbmRlZCAtIENvbnNpc3Rl bnQgcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZzo8L2VtcGhhc2lzPgorPHByb2dyYW1saXN0aW5n PgorLS0gQWxsIHBhcnRzIHVzZSBwcmUtc3RhbmRhcmQgc3Vic2NyaXB0aW5nCitTRUxFQ1QgZGF0 YVsnbG9jYXRpb24nXVsnY29vcmRpbmF0ZXMnXVsnbGF0aXR1ZGUnXSBGUk9NIHRhYmxlOyAtLSBH b29kCitTRUxFQ1QgZGF0YVswXVsndGl0bGUnXSBGUk9NIHRhYmxlOyAgICAgICAgICAgICAgICAg ICAgLS0gR29vZCAod2hlbiBubyBkb3RzIHByZXNlbnQpCitTRUxFQ1QgZGF0YVsndXNlcnMnXVsx XVsncHJvZmlsZSddWydlbWFpbCddIEZST00gdGFibGU7IC0tIEdvb2QKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5Ob3QgcmVjb21tZW5k ZWQgLSBNaXhlZCBzeW50YXg6PC9lbXBoYXNpcz4KKzxwcm9ncmFtbGlzdGluZz4KKy0tIE1peGlu ZyBzaW1wbGlmaWVkIGFjY2Vzc29yIHdpdGggcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZworU0VM RUNUIGRhdGEubG9jYXRpb25bJ2xhdGl0dWRlJ10gRlJPTSB0YWJsZTsgICAgICAgLS0gQXZvaWQK K1NFTEVDVCBkYXRhWydyZXBlcnRvaXJlJ11bMF0udGl0bGUgRlJPTSB0YWJsZTsgICAgLS0gQXZv aWQKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgV2hpbGUgdGhlc2UgbWl4ZWQgZm9ybXMgd29yayBh cyBkZXNpZ25lZCwgdGhleSBjYW4gYmUgdmVyeSBjb25mdXNpbmcKKyAgICBiZWNhdXNlIHRoZSBz aW1wbGlmaWVkIGFjY2Vzc29yIGNhbm5vdCBoYW5kbGUgdGV4dC1iYXNlZCBzdWJzY3JpcHRzIGxp a2UgYFsnZmllbGQnXWAuCisgICAgVGhpcyBmb3JjZXMgYSBmYWxsYmFjayB0byBwcmUtc3RhbmRh cmQgc2VtYW50aWNzIGZvciB0aG9zZSBzcGVjaWZpYyBwYXJ0cywKKyAgICBjcmVhdGluZyBhIGNo YWluIHRoYXQgc3dpdGNoZXMgYmV0d2VlbiBsYXggbW9kZSAoZm9yIGRvdCBub3RhdGlvbikgYW5k IAorICAgIHN0cmljdCBtb2RlIChmb3IgdGV4dCBzdWJzY3JpcHRzKSB3aXRoaW4gdGhlIHNhbWUg YWNjZXNzb3IgZXhwcmVzc2lvbi4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ2hvb3Nl IG9uZSBhcHByb2FjaCBjb25zaXN0ZW50bHkgdGhyb3VnaG91dCB5b3VyIGFjY2Vzc29yIGNoYWlu IHRvIGVuc3VyZQorICAgIHByZWRpY3RhYmxlIGFuZCBtYWludGFpbmFibGUgY29kZS4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPkN1cnJlbnQgSW1wbGVtZW50YXRpb246 PC9lbXBoYXNpcz4gVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMKKyAgICBKU09O IG1lbWJlciBhY2Nlc3NvcnMgKGRvdCBub3RhdGlvbikgYW5kIEpTT04gYXJyYXkgYWNjZXNzb3Jz IChpbnRlZ2VyIHN1YnNjcmlwdHMpCisgICAgYXMgZGVmaW5lZCBpbiB0aGUgU1FMOjIwMjMgc2lt cGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpY2F0aW9uLgorICAgIEFkdmFuY2VkIGZlYXR1cmVzIGZy b20gdGhlIFNRTDoyMDIzIHNwZWNpZmljYXRpb24sIHN1Y2ggYXMgd2lsZGNhcmQgbWVtYmVyCisg ICAgYWNjZXNzb3JzIGFuZCBpdGVtIG1ldGhvZCBhY2Nlc3NvcnMsIGFyZSBub3QgeWV0IGltcGxl bWVudGVkLgorICAgPC9wYXJhPgorICA8L3NlY3QzPgorIDwvc2VjdDI+CisKICA8c2VjdDIgaWQ9 ImRhdGF0eXBlLWpzb24tdHJhbnNmb3JtcyI+CiAgIDx0aXRsZT5UcmFuc2Zvcm1zPC90aXRsZT4K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0IGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CmluZGV4IGViZTg1MzM3YzI4Li40NTdl OTkzMzA1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0 CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dApAQCAtNTY4LDggKzU2 OCw4IEBAIFQ4MzgJSlNPTl9UQUJMRTogUExBTiBERUZBVUxUIGNsYXVzZQkJCU5PCiBUODM5CUZv cm1hdHRlZCBjYXN0IG9mIGRhdGV0aW1lcyB0by9mcm9tIGNoYXJhY3RlciBzdHJpbmdzCQkJTk8J CiBUODQwCUhleCBpbnRlZ2VyIGxpdGVyYWxzIGluIFNRTC9KU09OIHBhdGggbGFuZ3VhZ2UJCQlZ RVMJCiBUODUxCVNRTC9KU09OOiBvcHRpb25hbCBrZXl3b3JkcyBmb3IgZGVmYXVsdCBzeW50YXgJ CQlZRVMJCi1UODYwCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNvbHVtbiByZWZlcmVu Y2Ugb25seQkJCU5PCQotVDg2MQlTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiBjYXNlLXNl bnNpdGl2ZSBKU09OIG1lbWJlciBhY2Nlc3NvcgkJCU5PCQorVDg2MAlTUUwvSlNPTiBzaW1wbGlm aWVkIGFjY2Vzc29yOiBjb2x1bW4gcmVmZXJlbmNlIG9ubHkJCQlZRVMJCitUODYxCVNRTC9KU09O IHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNhc2Utc2Vuc2l0aXZlIEpTT04gbWVtYmVyIGFjY2Vzc29y CQkJWUVTCQogVDg2MglTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiB3aWxkY2FyZCBtZW1i ZXIgYWNjZXNzb3IJCQlOTwkKIFQ4NjMJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3Nvcjogc2lu Z2xlLXF1b3RlZCBzdHJpbmcgbGl0ZXJhbCBhcyBtZW1iZXIgYWNjZXNzb3IJCQlOTwkKIFQ4NjQJ U1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3NvcgkJCU5PCQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK aW5kZXggZjE1Njk4NzliNTIuLjM4NWM4ZDBjZWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK QEAgLTMzMjAsNTAgKzMzMjAsNTkgQEAgRXhlY0luaXRTdWJzY3JpcHRpbmdSZWYoRXhwckV2YWxT dGVwICpzY3JhdGNoLCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCQkJICAgc3RhdGUt PnN0ZXBzX2xlbiAtIDEpOwogCX0KIAotCS8qIEV2YWx1YXRlIHVwcGVyIHN1YnNjcmlwdHMgKi8K LQlpID0gMDsKLQlmb3JlYWNoKGxjLCBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikKKwkvKiBFdmFs dWF0ZSB1cHBlciBzdWJzY3JpcHRzLCB1bmxlc3MgcmVmanNvbmJwYXRoIGlzIHVzZWQgZm9yIGV4 ZWN1dGlvbiAqLworCWlmICghc2JzcmVmLT5yZWZqc29uYnBhdGgpCiAJewotCQlFeHByCSAgICpl ID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKLQotCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwg c3Vic2NyaXB0IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLwotCQlpZiAoIWUpCi0JCXsKLQkJCXNi c3JlZnN0YXRlLT51cHBlcnByb3ZpZGVkW2ldID0gZmFsc2U7Ci0JCQlzYnNyZWZzdGF0ZS0+dXBw ZXJpbmRleG51bGxbaV0gPSB0cnVlOwotCQl9Ci0JCWVsc2UKKwkJaSA9IDA7CisJCWZvcmVhY2go bGMsIHNic3JlZi0+cmVmdXBwZXJpbmRleHByKQogCQl7Ci0JCQlzYnNyZWZzdGF0ZS0+dXBwZXJw cm92aWRlZFtpXSA9IHRydWU7Ci0JCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFsdWF0ZWQgaW50 byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLwotCQkJRXhlY0luaXRFeHByUmVjKGUsIHN0YXRl LAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleFtpXSwKLQkJCQkJCQkmc2JzcmVmc3Rh dGUtPnVwcGVyaW5kZXhudWxsW2ldKTsKKwkJCUV4cHIgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMp OworCisJCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0IGJvdW5kcyBjYW4g YmUgb21pdHRlZCAqLworCQkJaWYgKCFlKQorCQkJeworCQkJCXNic3JlZnN0YXRlLT51cHBlcnBy b3ZpZGVkW2ldID0gZmFsc2U7CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ldID0g dHJ1ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlzYnNyZWZzdGF0ZS0+dXBwZXJwcm92aWRl ZFtpXSA9IHRydWU7CisJCQkJLyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVkIGludG8gYXBw cm9wcmlhdGUgYXJyYXkgZW50cnkgKi8KKwkJCQlFeGVjSW5pdEV4cHJSZWMoZSwgc3RhdGUsCisJ CQkJCQkJCSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleFtpXSwKKwkJCQkJCQkJJnNic3JlZnN0YXRl LT51cHBlcmluZGV4bnVsbFtpXSk7CisJCQl9CisJCQlpKys7CiAJCX0KLQkJaSsrOwogCX0KIAot CS8qIEV2YWx1YXRlIGxvd2VyIHN1YnNjcmlwdHMgc2ltaWxhcmx5ICovCi0JaSA9IDA7Ci0JZm9y ZWFjaChsYywgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpCisJLyoKKwkgKiBFdmFsdWF0ZSBsb3dl ciBzdWJzY3JpcHRzIHNpbWlsYXJseSwgdW5sZXNzIHJlZmpzb25icGF0aCBpcyB1c2VkIGZvcgor CSAqIGV4ZWN1dGlvbgorCSAqLworCWlmICghc2JzcmVmLT5yZWZqc29uYnBhdGgpCiAJewotCQlF eHByCSAgICplID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKLQotCQkvKiBXaGVuIHNsaWNpbmcsIGlu ZGl2aWR1YWwgc3Vic2NyaXB0IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLwotCQlpZiAoIWUpCi0J CXsKLQkJCXNic3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gZmFsc2U7Ci0JCQlzYnNyZWZz dGF0ZS0+bG93ZXJpbmRleG51bGxbaV0gPSB0cnVlOwotCQl9Ci0JCWVsc2UKKwkJaSA9IDA7CisJ CWZvcmVhY2gobGMsIHNic3JlZi0+cmVmbG93ZXJpbmRleHByKQogCQl7Ci0JCQlzYnNyZWZzdGF0 ZS0+bG93ZXJwcm92aWRlZFtpXSA9IHRydWU7Ci0JCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFs dWF0ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLwotCQkJRXhlY0luaXRFeHByUmVj KGUsIHN0YXRlLAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleFtpXSwKLQkJCQkJCQkm c2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldKTsKKwkJCUV4cHIJICAgKmUgPSAoRXhwciAq KSBsZmlyc3QobGMpOworCisJCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0 IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLworCQkJaWYgKCFlKQorCQkJeworCQkJCXNic3JlZnN0 YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gZmFsc2U7CisJCQkJc2JzcmVmc3RhdGUtPmxvd2VyaW5k ZXhudWxsW2ldID0gdHJ1ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlzYnNyZWZzdGF0ZS0+ bG93ZXJwcm92aWRlZFtpXSA9IHRydWU7CisJCQkJLyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVh dGVkIGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50cnkgKi8KKwkJCQlFeGVjSW5pdEV4cHJSZWMo ZSwgc3RhdGUsCisJCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleFtpXSwKKwkJCQkJCQkJ JnNic3JlZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSk7CisJCQl9CisJCQlpKys7CiAJCX0KLQkJ aSsrOwogCX0KIAogCS8qIFNCU1JFRl9TVUJTQ1JJUFRTIGNoZWNrcyBhbmQgY29udmVydHMgYWxs IHRoZSBzdWJzY3JpcHRzIGF0IG9uY2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggN2JjODIz NTA3ZjEuLmQxYmQ1NzVkOWJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVu Y3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjg0LDYgKzI4NCwx MyBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6 CiAJCQl0eXBlID0gZXhwclR5cGUoKE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAqKSBl eHByKS0+cGhleHByKTsKIAkJCWJyZWFrOworCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CisJ CQkvKgorCQkJICogRmllbGRBY2Nlc3NvckV4cHIgaXMgbm90IGV2YWx1YWJsZS4gVHJlYXQgaXQg YXMgVEVYVCBmb3IgY29sbGF0aW9uLAorCQkJICogZGVwYXJzaW5nLCBhbmQgc2ltaWxhciBwdXJw b3Nlcywgc2luY2UgaXQgcmVwcmVzZW50cyBhIEpTT04gZmllbGQgbmFtZS4KKwkJCSAqLworCQkJ dHlwZSA9IFRFWFRPSUQ7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVUYWcoZXhwcikpOwogCQkJdHlw ZSA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTExNDYsNiArMTE1 Myw5IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxhdGlvbikKIAkJY2Fz ZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCQkoKE1lcmdlU3VwcG9ydEZ1bmMgKikgZXhwciktPm1z ZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4 cHI6CisJCQkoKEZpZWxkQWNjZXNzb3JFeHByICopIGV4cHIpLT5mYWVjb2xsaWQgPSBjb2xsYXRp b247CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCSgoU3Vic2NyaXB0 aW5nUmVmICopIGV4cHIpLT5yZWZjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTIx MjksNiArMjEzOSw3IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAog CQljYXNlIFRfU29ydEdyb3VwQ2xhdXNlOgogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgogCQlj YXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKKwkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgogCQkJ LyogcHJpbWl0aXZlIG5vZGUgdHlwZXMgd2l0aCBubyBleHByZXNzaW9uIHN1Ym5vZGVzICovCiAJ CQlicmVhazsKIAkJY2FzZSBUX1dpdGhDaGVja09wdGlvbjoKQEAgLTMwMDgsNiArMzAxOSw3IEBA IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2FzZSBUX1NvcnRH cm91cENsYXVzZToKIAkJY2FzZSBUX0NURVNlYXJjaENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3Vw cG9ydEZ1bmM6CisJCWNhc2UgVF9GaWVsZEFjY2Vzc29yRXhwcjoKIAkJCXJldHVybiBjb3B5T2Jq ZWN0KG5vZGUpOwogCQljYXNlIFRfV2l0aENoZWNrT3B0aW9uOgogCQkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25ic3Vicy5jCmluZGV4IDg4NTJjMjdhMTk4Li5jY2M1ZjNjNmU5NCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9qc29uYnN1YnMuYwpAQCAtMTUsMjEgKzE1LDMwIEBACiAjaW5jbHVkZSAicG9zdGdyZXMu aCIKIAogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCisjaW5jbHVkZSAibm9kZXMvbWFr ZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMv c3Vic2NyaXB0aW5nLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9qc29uYi5oIgorI2luY2x1ZGUgInV0aWxzL2pzb25wYXRoLmgiCiAKIAot LyogU3Vic2NyaXB0aW5nUmVmU3RhdGUud29ya3NwYWNlIGZvciBqc29uYiBzdWJzY3JpcHRpbmcg ZXhlY3V0aW9uICovCisvKgorICogU3Vic2NyaXB0aW5nUmVmU3RhdGUud29ya3NwYWNlIGZvciBn ZW5lcmljIGpzb25iIHN1YnNjcmlwdGluZyBleGVjdXRpb24uCisgKgorICogU3RvcmVzIHN0YXRl IGZvciBib3RoIGpzb25iIHNpbXBsZSBzdWJzY3JpcHRpbmcgYW5kIGRvdCBub3RhdGlvbiBhY2Nl c3MuCisgKiBEb3Qgbm90YXRpb24gYWRkaXRpb25hbGx5IHVzZXMgYGpzb25wYXRoYCBmb3IgSnNv blBhdGggZXZhbHVhdGlvbi4KKyAqLwogdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UK IHsKIAlib29sCQlleHBlY3RBcnJheTsJLyoganNvbmIgcm9vdCBpcyBleHBlY3RlZCB0byBiZSBh biBhcnJheSAqLwogCU9pZAkJICAgKmluZGV4T2lkOwkJLyogT0lEIG9mIGNvZXJjZWQgc3Vic2Ny aXB0IGV4cHJlc3Npb24sIGNvdWxkCiAJCQkJCQkJCSAqIGJlIG9ubHkgaW50ZWdlciBvciB0ZXh0 ICovCiAJRGF0dW0JICAgKmluZGV4OwkJCS8qIFN1YnNjcmlwdCB2YWx1ZXMgaW4gRGF0dW0gZm9y bWF0ICovCisJSnNvblBhdGggICAqanNvbnBhdGg7CQkvKiBKc29uUGF0aCBmb3IgZG90IG5vdGF0 aW9uIGV4ZWN1dGlvbiB2aWEKKwkJCQkJCQkJICogSnNvblBhdGhRdWVyeSgpICovCiB9IEpzb25i U3ViV29ya3NwYWNlOwogCiBzdGF0aWMgTm9kZSAqCkBAIC05Niw2ICsxMDUsMjM0IEBAIGNvZXJj ZV9qc29ucGF0aF9zdWJzY3JpcHRfdG9faW50NF9vcl90ZXh0KFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqc3ViRXhwcikKIAlyZXR1cm4gc3ViRXhwcjsKIH0KIAorLyoKKyAqIER1cmluZyB0cmFu c2Zvcm1hdGlvbiwgZGV0ZXJtaW5lIHdoZXRoZXIgdG8gYnVpbGQgYSBKc29uUGF0aAorICogZm9y IEpzb25QYXRoUXVlcnkoKSBleGVjdXRpb24uCisgKgorICogSnNvblBhdGggaXMgbmVlZGVkIGlm IHRoZSBpbmRpcmVjdGlvbiBsaXN0IGluY2x1ZGVzOgorICogLSBTdHJpbmctYmFzZWQgYWNjZXNz IChkb3Qgbm90YXRpb24pCisgKiAtIFNsaWNlLWJhc2VkIHN1YnNjcmlwdGluZyAod2hlbiBpc1Ns aWNlIGlzIHRydWUpCisgKgorICogT3RoZXJ3aXNlLCBzaW1wbGUganNvbmIgc3Vic2NyaXB0aW5n IGlzIGVub3VnaC4KKyAqLworc3RhdGljIGJvb2wKK2pzb25iX2NoZWNrX2pzb25wYXRoX25lZWRl ZChMaXN0ICppbmRpcmVjdGlvbikKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMs IGluZGlyZWN0aW9uKQorCXsKKwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOworCisJ CWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJZWxzZQorCQkJ QXNzZXJ0KElzQShhY2Nlc3NvciwgQV9JbmRpY2VzKSk7CisJfQorCisJcmV0dXJuIGZhbHNlOwor fQorCisvKgorICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgY29uc3RydWN0aW5nIEpzb25QYXRoIGV4 cHJlc3Npb25zLgorICoKKyAqIFRoZSBtYWtlX2pzb25wYXRoX2l0ZW1fKiBmdW5jdGlvbnMgY3Jl YXRlIHZhcmlvdXMgdHlwZXMgb2YgSnNvblBhdGhQYXJzZUl0ZW0KKyAqIG5vZGVzLCB3aGljaCBh cmUgdXNlZCB0byBidWlsZCBKc29uUGF0aCBleHByZXNzaW9ucyBmb3IganNvbmIgc2ltcGxpZmll ZAorICogYWNjZXNzb3IuCisgKi8KKworc3RhdGljIEpzb25QYXRoUGFyc2VJdGVtICoKK21ha2Vf anNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5cGUpCit7CisJSnNvblBhdGhQYXJzZUl0 ZW0gKnYgPSBwYWxsb2Moc2l6ZW9mKCp2KSk7CisKKwl2LT50eXBlID0gdHlwZTsKKwl2LT5uZXh0 ID0gTlVMTDsKKworCXJldHVybiB2OworfQorCisvKgorICogQ29udmVydCBhIGNvbnN0YW50IGlu dGVnZXIgZXhwcmVzc2lvbiBpbnRvIGEgSnNvblBhdGhQYXJzZUl0ZW0uCisgKgorICogVGhlIGlu cHV0IGV4cHJlc3Npb24gbXVzdCBiZSBhIG5vbi1udWxsIGNvbnN0YW50IG9mIHR5cGUgSU5UNC4g UmV0dXJucyBOVUxMIG90aGVyd2lzZS4KKyAqIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBhIGpw aU51bWVyaWMgaXRlbSBmb3IgdXNlIGluIEpzb25QYXRoIGFuZCBhcHBlbmRzIGEgbWF0Y2hpbmcK KyAqIENvbnN0KElOVDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdCBmb3IgdXNl IGluIEVYUExBSU4sIHZpZXdzLCBldGMuCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gcHN0YXRl OiBwYXJzZSBzdGF0ZSBjb250ZXh0CisgKiAtIGV4cHI6IGlucHV0IGV4cHJlc3Npb24gbm9kZQor ICogLSBleHByczogbGlzdCBvZiBleHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQor ICovCitzdGF0aWMgSnNvblBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMpCit7CisJQ29uc3QJ ICAgKmNuc3Q7CisKKwlleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGV4cHIsIHBzdGF0ZS0+ cF9leHByX2tpbmQpOworCisJaWYgKElzQShleHByLCBDb25zdCkpCisJeworCQljbnN0ID0gKENv bnN0ICopIGV4cHI7CisJCWlmIChjbnN0LT5jb25zdHR5cGUgPT0gSU5UNE9JRCAmJiAhKGNuc3Qt PmNvbnN0aXNudWxsKSkKKwkJeworCQkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaSA9IG1ha2VfanNv bnBhdGhfaXRlbShqcGlOdW1lcmljKTsKKworCQkJanBpLT52YWx1ZS5udW1lcmljID0KKwkJCQlE YXR1bUdldE51bWVyaWMoRGlyZWN0RnVuY3Rpb25DYWxsMShpbnQ0X251bWVyaWMsIEludDMyR2V0 RGF0dW0oY25zdC0+Y29uc3R2YWx1ZSkpKTsKKworCQkJKmV4cHJzID0gbGFwcGVuZCgqZXhwcnMs IG1ha2VDb25zdChJTlQ0T0lELCAtMSwgSW52YWxpZE9pZCwgNCwKKwkJCQkJCQkJCQkJICAgSW50 MzJHZXREYXR1bShjbnN0LT5jb25zdHZhbHVlKSwgZmFsc2UsIHRydWUpKTsKKworCQkJcmV0dXJu IGpwaTsKKwkJfQorCX0KKworCXJldHVybiBOVUxMOworfQorCisvKgorICogQ29uc3RydWN0cyBh IEpzb25QYXRoIGV4cHJlc3Npb24gZnJvbSBhIGxpc3Qgb2YgaW5kaXJlY3Rpb25zLgorICogVGhp cyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4ganNvbmIgc3Vic2NyaXB0aW5nIGludm9sdmVzIGRvdCBu b3RhdGlvbiwKKyAqIHJlcXVpcmluZyBKc29uUGF0aC1iYXNlZCBldmFsdWF0aW9uLgorICoKKyAq IFRoZSBmdW5jdGlvbiBtb2RpZmllcyB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbiBwbGFjZSwgcmVt b3ZpbmcgcHJvY2Vzc2VkCisgKiBlbGVtZW50cyBhcyBpdCBjb252ZXJ0cyB0aGVtIGludG8gSnNv blBhdGggY29tcG9uZW50cywgYXMgZm9sbG93czoKKyAqIC0gU3RyaW5nIGtleXMgKGRvdCBub3Rh dGlvbikgLT4ganBpS2V5IGl0ZW1zLgorICogLSBBcnJheSBpbmRpY2VzIC0+IGpwaUluZGV4QXJy YXkgaXRlbXMuCisgKgorICogSW4gYWRkaXRpb24gdG8gYnVpbGRpbmcgdGhlIEpzb25QYXRoIGV4 cHJlc3Npb24sIHRoaXMgZnVuY3Rpb24gcG9wdWxhdGVzCisgKiB0aGUgZm9sbG93aW5nIGZpZWxk cyBvZiB0aGUgZ2l2ZW4gU3Vic2NyaXB0aW5nUmVmOgorICogLSByZWZqc29uYnBhdGg6IHRoZSBn ZW5lcmF0ZWQgSnNvblBhdGgKKyAqIC0gcmVmdXBwZXJpbmRleHByOiB1cHBlciBpbmRleCBleHBy ZXNzaW9ucyAob2JqZWN0IGtleXMgb3IgYXJyYXkgaW5kZXhlcykKKyAqIC0gcmVmbG93ZXJpbmRl eHByOiBsb3dlciBpbmRleCBleHByZXNzaW9ucywgcmVtYWlucyBOSUwgYXMgc2xpY2VzIGFyZSBu b3Qgc3VwcG9ydGVkLgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiAtIHBzdGF0ZTogUGFyc2Ugc3Rh dGUgY29udGV4dC4KKyAqIC0gaW5kaXJlY3Rpb246IExpc3Qgb2Ygc3Vic2NyaXB0aW5nIGV4cHJl c3Npb25zIChtb2RpZmllZCBpbi1wbGFjZSkuCisgKiAtIHNic3JlZjogU3Vic2NyaXB0aW5nUmVm IG5vZGUgdG8gdXBkYXRlCisgKi8KK3N0YXRpYyB2b2lkCitqc29uYl9zdWJzY3JpcHRfbWFrZV9q c29ucGF0aChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwgU3Vic2NyaXB0 aW5nUmVmICpzYnNyZWYpCit7CisJSnNvblBhdGhQYXJzZVJlc3VsdCBqcHJlczsKKwlKc29uUGF0 aFBhcnNlSXRlbSAqcGF0aCA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlSb290KTsKKwlMaXN0Q2Vs bCAgICpsYzsKKwlEYXR1bQkJanNwOworCWludAkJCXBhdGhsZW4gPSAwOworCisJc2JzcmVmLT5y ZWZ1cHBlcmluZGV4cHIgPSBOSUw7CisJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBOSUw7CisJ c2JzcmVmLT5yZWZqc29uYnBhdGggPSBOVUxMOworCisJanByZXMuZXhwciA9IHBhdGg7CisJanBy ZXMubGF4ID0gdHJ1ZTsKKworCWZvcmVhY2gobGMsICppbmRpcmVjdGlvbikKKwl7CisJCU5vZGUJ ICAgKmFjY2Vzc29yID0gbGZpcnN0KGxjKTsKKwkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaTsKKwor CQlpZiAoSXNBKGFjY2Vzc29yLCBTdHJpbmcpKQorCQl7CisJCQljaGFyCSAgICpmaWVsZCA9IHN0 clZhbChhY2Nlc3Nvcik7CisJCQlGaWVsZEFjY2Vzc29yRXhwciAqYWNjZXNzb3JfZXhwcjsKKwor CQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUtleSk7CisJCQlqcGktPnZhbHVlLnN0cmlu Zy52YWwgPSBmaWVsZDsKKwkJCWpwaS0+dmFsdWUuc3RyaW5nLmxlbiA9IHN0cmxlbihmaWVsZCk7 CisKKwkJCWFjY2Vzc29yX2V4cHIgPSBtYWtlTm9kZShGaWVsZEFjY2Vzc29yRXhwcik7CisJCQlh Y2Nlc3Nvcl9leHByLT50eXBlID0gVF9GaWVsZEFjY2Vzc29yRXhwcjsKKwkJCWFjY2Vzc29yX2V4 cHItPmZpZWxkbmFtZSA9IGZpZWxkOworCisJCQlzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciA9IGxh cHBlbmQoc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIsIGFjY2Vzc29yX2V4cHIpOworCQl9CisJCWVs c2UgaWYgKElzQShhY2Nlc3NvciwgQV9JbmRpY2VzKSkKKwkJeworCQkJQV9JbmRpY2VzICAqYWkg PSBjYXN0Tm9kZShBX0luZGljZXMsIGFjY2Vzc29yKTsKKworCQkJaWYgKCFhaS0+aXNfc2xpY2Up CisJCQl7CisJCQkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaV9mcm9tID0gTlVMTDsKKworCQkJCUFz c2VydChhaS0+dWlkeCAmJiAhYWktPmxpZHgpOworCQkJCWpwaV9mcm9tID0gbWFrZV9qc29ucGF0 aF9pdGVtX2V4cHIocHN0YXRlLCBhaS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsK KwkJCQlpZiAoanBpX2Zyb20gPT0gTlVMTCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIEJyZWFr IG91dCBvZiB0aGUgbG9vcCBpZiB0aGUgc3Vic2NyaXB0IGlzIG5vdCBhCisJCQkJCSAqIG5vbi1u dWxsIGludGVnZXIgY29uc3RhbnQsIHNvIHRoYXQgd2UgY2FuIGZhbGwgYmFjayB0bworCQkJCQkg KiBqc29uYiBzdWJzY3JpcHRpbmcgbG9naWMuCisJCQkJCSAqCisJCQkJCSAqIFRoaXMgaXMgbmVl ZGVkIHRvIGhhbmRsZSBjYXNlcyB3aXRoIG1peGVkIHVzYWdlIG9mIFNRTAorCQkJCQkgKiBzdGFu ZGFyZCBqc29uIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3ludGF4IGFuZCBQb3N0Z3JlU1FMCisJCQkJ CSAqIGpzb25iIHN1YnNjcmlwdGluZyBzeW50YXgsIGUuZzoKKwkJCQkJICoKKwkJCQkJICogc2Vs ZWN0IChqYikuYVsnYiddLmMgZnJvbSBqc29uYl90YWJsZTsKKwkJCQkJICoKKwkJCQkJICogd2hl cmUgZG90LW5vdGF0aW9uICguYSBhbmQgLmMpIGlzIHRoZSBTUUwgc3RhbmRhcmQganNvbgorCQkJ CQkgKiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCwgYW5kIHRoZSBbJ2InXSBzdWJzY3JpcHQg aXMKKwkJCQkJICogdGhlIFBvc3RncmVTUUwganNvbmIgc3Vic2NyaXB0aW5nIHN5bnRheCwgYmVj YXVzZSAnYicKKwkJCQkJICogaXMgbm90IGEgbm9uLW51bGwgY29uc3RhbnQgaW50ZWdlciBhbmQg Y2Fubm90IGJlIHVzZWQKKwkJCQkJICogZm9yIGpzb24gYXJyYXkgYWNjZXNzLgorCQkJCQkgKgor CQkJCQkgKiBJbiB0aGlzIGNhc2UsIHdlIGNhbm5vdCBjcmVhdGUgYSBKc29uUGF0aCBpdGVtLCBz byB3ZQorCQkJCQkgKiBicmVhayBvdXQgb2YgdGhlIGxvb3AgYW5kIGxldAorCQkJCQkgKiBqc29u Yl9zdWJzY3JpcHRfdHJhbnNmb3JtKCkgaGFuZGxlIHRoaXMgaW5kaXJlY3Rpb24gYXMKKwkJCQkJ ICogYSBQb3N0Z3JlU1FMIGpzb25iIHN1YnNjcmlwdC4KKwkJCQkJICovCisJCQkJCWJyZWFrOwor CQkJCX0KKworCQkJCWpwaSA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlJbmRleEFycmF5KTsKKwkJ CQlqcGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7CisJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVt cyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOworCisJCQkJanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXS5mcm9tID0ganBpX2Zyb207CisJCQkJanBpLT52YWx1ZS5h cnJheS5lbGVtc1swXS50byA9IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJTm9kZQkg ICAqZXhwciA9IGFpLT51aWR4ID8gYWktPnVpZHggOiBhaS0+bGlkeDsKKworCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJ CSBlcnJtc2coImpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAorCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpKTsKKwkJ CX0KKwkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBVbmV4cGVjdGVkIG5vZGUgdHlwZSBp biBpbmRpcmVjdGlvbiBsaXN0LiBUaGlzIHNob3VsZCBub3QKKwkJCSAqIGhhcHBlbiB3aXRoIGN1 cnJlbnQgZ3JhbW1hciwgYnV0IHdlIGhhbmRsZSBpdCBkZWZlbnNpdmVseSBieQorCQkJICogYnJl YWtpbmcgb3V0IG9mIHRoZSBsb29wIHJhdGhlciB0aGFuIGNyYXNoaW5nLiBJbiBjYXNlIG9mCisJ CQkgKiBmdXR1cmUgZ3JhbW1hciBjaGFuZ2VzIHRoYXQgbWlnaHQgaW50cm9kdWNlIG5ldyBub2Rl IHR5cGVzLAorCQkJICogdGhpcyBhbGxvd3MgdXMgdG8gY3JlYXRlIGEganNvbnBhdGggZnJvbSBh cyBtYW55IGluZGlyZWN0aW9uCisJCQkgKiBlbGVtZW50cyBhcyB3ZSBjYW4gYW5kIGxldCB0cmFu c2Zvcm1JbmRpcmVjdGlvbigpIGZhbGxiYWNrIHRvCisJCQkgKiBhbHRlcm5hdGl2ZSBsb2dpYyB0 byBoYW5kbGUgdGhlIHJlbWFpbmluZyBpbmRpcmVjdGlvbiBlbGVtZW50cy4KKwkJCSAqLworCQkJ QXNzZXJ0KGZhbHNlKTsJCS8qIG5vdCByZWFjaGFibGUgKi8KKwkJCWJyZWFrOworCQl9CisKKwkJ LyogYXBwZW5kIHBhdGggaXRlbSAqLworCQlwYXRoLT5uZXh0ID0ganBpOworCQlwYXRoID0ganBp OworCQlwYXRobGVuKys7CisJfQorCisJaWYgKHBhdGhsZW4gPT0gMCkKKwkJcmV0dXJuOworCisJ KmluZGlyZWN0aW9uID0gbGlzdF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIHBhdGhsZW4p OworCisJanNwID0ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoJmpwcmVzLCAwLCBOVUxMKTsKKwor CXNic3JlZi0+cmVmanNvbmJwYXRoID0gKE5vZGUgKikgbWFrZUNvbnN0KEpTT05QQVRIT0lELCAt MSwgSW52YWxpZE9pZCwgLTEsIGpzcCwgZmFsc2UsIGZhbHNlKTsKK30KKwogLyoKICAqIEZpbmlz aCBwYXJzZSBhbmFseXNpcyBvZiBhIFN1YnNjcmlwdGluZ1JlZiBleHByZXNzaW9uIGZvciBhIGpz b25iLgogICoKQEAgLTExMSw5ICszNDgsMjcgQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7CiAJ TGlzdENlbGwgICAqaWR4OwogCisJLyogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0aGUg c3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3YXlzIGpzb25iICovCisJc2JzcmVmLT5yZWZyZXN0 eXBlID0gSlNPTkJPSUQ7CisJc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKKworCWlmIChqc29uYl9j aGVja19qc29ucGF0aF9uZWVkZWQoKmluZGlyZWN0aW9uKSkKKwl7CisJCWpzb25iX3N1YnNjcmlw dF9tYWtlX2pzb25wYXRoKHBzdGF0ZSwgaW5kaXJlY3Rpb24sIHNic3JlZik7CisJCWlmIChzYnNy ZWYtPnJlZmpzb25icGF0aCkKKwkJCXJldHVybjsKKwl9CisKIAkvKgotCSAqIFRyYW5zZm9ybSBh bmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb25zLiBKc29uYiBzdWJzY3JpcHRpbmcK LQkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcywgbG9vayBvbmx5IGF0IHRoZSB1cHBlciBpbmRl eC4KKwkgKiBXZSByZWFjaCBoZXJlIG9ubHkgaW4gdHdvIGNhc2VzOiAoYSkgdGhlIEpTT04gc2lt cGxpZmllZCBhY2Nlc3NvciBpcworCSAqIG5vdCBuZWVkZWQgYXQgYWxsIChmb3IgZXhhbXBsZSwg YSBwbGFpbiBhcnJheSBzdWJzY3JpcHQgbGlrZSBbMV0gb3IKKwkgKiBvYmplY3Qga2V5IGFjY2Vz cyBsaWtlIFsnYSddKSwgb3IgKGIpIGpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKCkKKwkg KiB3YXMgY2FsbGVkIGJ1dCBjb3VsZCBub3QgY29tcGxldGUgdGhlIEpzb25QYXRoIGNvbnN0cnVj dGlvbiAoZm9yCisJICogZXhhbXBsZSwgd2hlbiBtaXhpbmcgZG90IG5vdGF0aW9uIHdpdGggbm9u LWludGVnZXIgc3Vic2NyaXB0cyBsaWtlCisJICogKGpiKVsnYSddLmIgd2hlcmUgJ2EnIGlzIG5v dCBhIGNvbnN0YW50IGludGVnZXIpLgorCSAqCisJICogSW4gYm90aCBjYXNlcyB3ZSBmYWxsIGJh Y2sgdG8gcHJlLXN0YW5kYXJkIGpzb25iIHN1YnNjcmlwdGluZywgY29lcmNpbmcKKwkgKiBlYWNo IHN1YnNjcmlwdCB0byBhcnJheSBpbmRleCBvciBvYmplY3Qga2V5IGFzIG5lZWRlZC4KIAkgKi8K IAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKQEAgLTE2MCwxMCArNDE1LDYgQEAganNv bmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlzYnNyZWYt PnJlZnVwcGVyaW5kZXhwciA9IHVwcGVySW5kZXhwcjsKIAlzYnNyZWYtPnJlZmxvd2VyaW5kZXhw ciA9IE5JTDsKIAotCS8qIERldGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlw dGluZyBvcGVyYXRpb247IGFsd2F5cyBqc29uYiAqLwotCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpT T05CT0lEOwotCXNic3JlZi0+cmVmdHlwbW9kID0gLTE7Ci0KIAkvKiBSZW1vdmUgcHJvY2Vzc2Vk IGVsZW1lbnRzICovCiAJaWYgKHVwcGVySW5kZXhwcikKIAkJKmluZGlyZWN0aW9uID0gbGlzdF9k ZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikpOwpA QCAtMjE4LDcgKzQ2OSw3IEBAIGpzb25iX3N1YnNjcmlwdF9jaGVja19zdWJzY3JpcHRzKEV4cHJT dGF0ZSAqc3RhdGUsCiAJCQkgKiBGb3IganNvbmIgZmV0Y2ggYW5kIGFzc2lnbiBmdW5jdGlvbnMg d2UgbmVlZCB0byBwcm92aWRlIHBhdGggaW4KIAkJCSAqIHRleHQgZm9ybWF0LiBDb252ZXJ0IGlm IGl0J3Mgbm90IGFscmVhZHkgdGV4dC4KIAkJCSAqLwotCQkJaWYgKHdvcmtzcGFjZS0+aW5kZXhP aWRbaV0gPT0gSU5UNE9JRCkKKwkJCWlmICghd29ya3NwYWNlLT5qc29ucGF0aCAmJiB3b3Jrc3Bh Y2UtPmluZGV4T2lkW2ldID09IElOVDRPSUQpCiAJCQl7CiAJCQkJRGF0dW0JCWRhdHVtID0gc2Jz cmVmc3RhdGUtPnVwcGVyaW5kZXhbaV07CiAJCQkJY2hhcgkgICAqY3MgPSBEYXR1bUdldENTdHJp bmcoRGlyZWN0RnVuY3Rpb25DYWxsMShpbnQ0b3V0LCBkYXR1bSkpOwpAQCAtMjQ2LDE3ICs0OTcs MzIgQEAganNvbmJfc3Vic2NyaXB0X2ZldGNoKEV4cHJTdGF0ZSAqc3RhdGUsCiB7CiAJU3Vic2Ny aXB0aW5nUmVmU3RhdGUgKnNic3JlZnN0YXRlID0gb3AtPmQuc2JzcmVmLnN0YXRlOwogCUpzb25i U3ViV29ya3NwYWNlICp3b3Jrc3BhY2UgPSAoSnNvbmJTdWJXb3Jrc3BhY2UgKikgc2JzcmVmc3Rh dGUtPndvcmtzcGFjZTsKLQlKc29uYgkgICAqanNvbmJTb3VyY2U7CiAKIAkvKiBTaG91bGQgbm90 IGdldCBoZXJlIGlmIHNvdXJjZSBqc29uYiAob3IgYW55IHN1YnNjcmlwdCkgaXMgbnVsbCAqLwog CUFzc2VydCghKCpvcC0+cmVzbnVsbCkpOwogCi0JanNvbmJTb3VyY2UgPSBEYXR1bUdldEpzb25i UCgqb3AtPnJlc3ZhbHVlKTsKLQkqb3AtPnJlc3ZhbHVlID0ganNvbmJfZ2V0X2VsZW1lbnQoanNv bmJTb3VyY2UsCi0JCQkJCQkJCQkgIHdvcmtzcGFjZS0+aW5kZXgsCi0JCQkJCQkJCQkgIHNic3Jl ZnN0YXRlLT5udW11cHBlciwKLQkJCQkJCQkJCSAgb3AtPnJlc251bGwsCi0JCQkJCQkJCQkgIGZh bHNlKTsKKwlpZiAod29ya3NwYWNlLT5qc29ucGF0aCkKKwl7CisJCWJvb2wJCWVtcHR5ID0gZmFs c2U7CisJCWJvb2wJCWVycm9yID0gZmFsc2U7CisKKwkJKm9wLT5yZXN2YWx1ZSA9IEpzb25QYXRo UXVlcnkoKm9wLT5yZXN2YWx1ZSwgd29ya3NwYWNlLT5qc29ucGF0aCwKKwkJCQkJCQkJCSAgSlNX X0NPTkRJVElPTkFMLAorCQkJCQkJCQkJICAmZW1wdHksICZlcnJvciwgTlVMTCwKKwkJCQkJCQkJ CSAgTlVMTCk7CisKKwkJKm9wLT5yZXNudWxsID0gZW1wdHkgfHwgZXJyb3I7CisJfQorCWVsc2UK Kwl7CisJCUpzb25iCSAgICpqc29uYlNvdXJjZSA9IERhdHVtR2V0SnNvbmJQKCpvcC0+cmVzdmFs dWUpOworCisJCSpvcC0+cmVzdmFsdWUgPSBqc29uYl9nZXRfZWxlbWVudChqc29uYlNvdXJjZSwK KwkJCQkJCQkJCQkgIHdvcmtzcGFjZS0+aW5kZXgsCisJCQkJCQkJCQkJICBzYnNyZWZzdGF0ZS0+ bnVtdXBwZXIsCisJCQkJCQkJCQkJICBvcC0+cmVzbnVsbCwKKwkJCQkJCQkJCQkgIGZhbHNlKTsK Kwl9CiB9CiAKIC8qCkBAIC0zNjQsNyArNjMwLDcgQEAganNvbmJfZXhlY19zZXR1cChjb25zdCBT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIHsKIAlKc29uYlN1YldvcmtzcGFjZSAqd29ya3NwYWNl OwogCUxpc3RDZWxsICAgKmxjOwotCWludAkJCW51cHBlciA9IHNic3JlZi0+cmVmdXBwZXJpbmRl eHByLT5sZW5ndGg7CisJaW50CQkJbnVwcGVyID0gbGlzdF9sZW5ndGgoc2JzcmVmLT5yZWZ1cHBl cmluZGV4cHIpOwogCWNoYXIJICAgKnB0cjsKIAogCS8qIEFsbG9jYXRlIHR5cGUtc3BlY2lmaWMg d29ya3NwYWNlIHdpdGggc3BhY2UgZm9yIHBlci1zdWJzY3JpcHQgZGF0YSAqLwpAQCAtMzczLDYg KzYzOSw5IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYs CiAJd29ya3NwYWNlLT5leHBlY3RBcnJheSA9IGZhbHNlOwogCXB0ciA9ICgoY2hhciAqKSB3b3Jr c3BhY2UpICsgTUFYQUxJR04oc2l6ZW9mKEpzb25iU3ViV29ya3NwYWNlKSk7CiAKKwlpZiAoc2Jz cmVmLT5yZWZqc29uYnBhdGgpCisJCXdvcmtzcGFjZS0+anNvbnBhdGggPSBEYXR1bUdldEpzb25Q YXRoUChjYXN0Tm9kZShDb25zdCwgc2JzcmVmLT5yZWZqc29uYnBhdGgpLT5jb25zdHZhbHVlKTsK KwogCS8qCiAJICogVGhpcyBjb2RpbmcgYXNzdW1lcyBzaXplb2YoRGF0dW0pID49IHNpemVvZihP aWQpLCBlbHNlIHdlIG1pZ2h0CiAJICogbWlzYWxpZ24gdGhlIGluZGV4T2lkIHBvaW50ZXIKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAzZDZlNmJkYmZkMi4uYmFhM2FlOTdkNTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTkzMjksMTAgKzkzMjksMTMgQEAgZ2V0X3J1 bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQkJICogUGFy ZW50aGVzaXplIHRoZSBhcmd1bWVudCB1bmxlc3MgaXQncyBhIHNpbXBsZSBWYXIgb3IgYQogCQkJ CSAqIEZpZWxkU2VsZWN0LiAgKEluIHBhcnRpY3VsYXIsIGlmIGl0J3MgYW5vdGhlcgogCQkJCSAq IFN1YnNjcmlwdGluZ1JlZiwgd2UgKm11c3QqIHBhcmVudGhlc2l6ZSB0byBhdm9pZAotCQkJCSAq IGNvbmZ1c2lvbi4pCisJCQkJICogY29uZnVzaW9uLikgQWx3YXlzIGFkZCBwYXJlbnRoZXNpcyBp ZiBKU09OIHNpbXBsaWZpZWQKKwkJCQkgKiBhY2Nlc3NvciBpcyB1c2VkLCBmb3Igbm93LgogCQkJ CSAqLwotCQkJCW5lZWRfcGFyZW5zID0gIUlzQShzYnNyZWYtPnJlZmV4cHIsIFZhcikgJiYKLQkJ CQkJIUlzQShzYnNyZWYtPnJlZmV4cHIsIEZpZWxkU2VsZWN0KTsKKwkJCQluZWVkX3BhcmVucyA9 ICghSXNBKHNic3JlZi0+cmVmZXhwciwgVmFyKSAmJgorCQkJCQkhSXNBKHNic3JlZi0+cmVmZXhw ciwgRmllbGRTZWxlY3QpKSB8fAorCQkJCQkJc2JzcmVmLT5yZWZqc29uYnBhdGg7CisKIAkJCQlp ZiAobmVlZF9wYXJlbnMpCiAJCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKIAkJ CQlnZXRfcnVsZV9leHByKChOb2RlICopIHNic3JlZi0+cmVmZXhwciwgY29udGV4dCwgc2hvd2lt cGxpY2l0KTsKQEAgLTEzMDA1LDE3ICsxMzAwOCwzNSBAQCBwcmludFN1YnNjcmlwdHMoU3Vic2Ny aXB0aW5nUmVmICpzYnNyZWYsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAlsb3dsaXN0X2l0 ZW0gPSBsaXN0X2hlYWQoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpOwkvKiBjb3VsZCBiZSBOVUxM ICovCiAJZm9yZWFjaCh1cGxpc3RfaXRlbSwgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpCiAJewot CQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICdbJyk7Ci0JCWlmIChsb3dsaXN0X2l0ZW0pCisJ CU5vZGUgKnVwcGVyID0gKE5vZGUgKikgbGZpcnN0KHVwbGlzdF9pdGVtKTsKKworCQlpZiAodXBw ZXIgJiYgSXNBKHVwcGVyLCBGaWVsZEFjY2Vzc29yRXhwcikpCiAJCXsKKwkJCUZpZWxkQWNjZXNz b3JFeHByICpmYWUgPSAoRmllbGRBY2Nlc3NvckV4cHIgKikgdXBwZXI7CisKKwkJCS8qIFVzZSBk b3Qtbm90YXRpb24gZm9yIGZpZWxkIGFjY2VzcyAqLworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnLicpOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZp ZXIoZmFlLT5maWVsZG5hbWUpKTsKKworCQkJLyogU2tpcCBtYXRjaGluZyBsb3cgaW5kZXgg4oCU IGZpZWxkIGFjY2VzcyBkb2Vzbid0IHVzZSBzbGljZXMgKi8KKwkJCWlmIChsb3dsaXN0X2l0ZW0p CisJCQkJbG93bGlzdF9pdGVtID0gbG5leHQoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsIGxvd2xp c3RfaXRlbSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBVc2UgSlNPTkIgYXJyYXkgc3Vic2Ny aXB0aW5nICovCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICdbJyk7CisJCQlpZiAobG93 bGlzdF9pdGVtKQorCQkJeworCQkJCS8qIElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1 bGVfZXhwciBwcmludHMgbm90aGluZyAqLworCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGZp cnN0KGxvd2xpc3RfaXRlbSksIGNvbnRleHQsIGZhbHNlKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZv Q2hhcihidWYsICc6Jyk7CisJCQkJbG93bGlzdF9pdGVtID0gbG5leHQoc2JzcmVmLT5yZWZsb3dl cmluZGV4cHIsIGxvd2xpc3RfaXRlbSk7CisJCQl9CiAJCQkvKiBJZiBzdWJleHByZXNzaW9uIGlz IE5VTEwsIGdldF9ydWxlX2V4cHIgcHJpbnRzIG5vdGhpbmcgKi8KLQkJCWdldF9ydWxlX2V4cHIo KE5vZGUgKikgbGZpcnN0KGxvd2xpc3RfaXRlbSksIGNvbnRleHQsIGZhbHNlKTsKLQkJCWFwcGVu ZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJzonKTsKLQkJCWxvd2xpc3RfaXRlbSA9IGxuZXh0KHNic3Jl Zi0+cmVmbG93ZXJpbmRleHByLCBsb3dsaXN0X2l0ZW0pOworCQkJZ2V0X3J1bGVfZXhwcih1cHBl ciwgY29udGV4dCwgZmFsc2UpOworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnXScpOwog CQl9Ci0JCS8qIElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1bGVfZXhwciBwcmludHMg bm90aGluZyAqLwotCQlnZXRfcnVsZV9leHByKChOb2RlICopIGxmaXJzdCh1cGxpc3RfaXRlbSks IGNvbnRleHQsIGZhbHNlKTsKLQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnXScpOwogCX0K IH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA2ZGZjYTNjYjM1Yi4uN2U4OTYyMWJkNjUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03MDgsMTggKzcwOCwzMCBAQCB0eXBlZGVmIHN0cnVjdCBT dWJzY3JpcHRpbmdSZWYKIAlpbnQzMgkJcmVmdHlwbW9kIHBnX25vZGVfYXR0cihxdWVyeV9qdW1i bGVfaWdub3JlKTsKIAkvKiBjb2xsYXRpb24gb2YgcmVzdWx0LCBvciBJbnZhbGlkT2lkIGlmIG5v bmUgKi8KIAlPaWQJCQlyZWZjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwotCS8qIGV4cHJlc3Npb25zIHRoYXQgZXZhbHVhdGUgdG8gdXBwZXIgY29udGFpbmVyIGluZGV4 ZXMgKi8KKworCS8qCisJICogZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byB1cHBlciBjb250 YWluZXIgaW5kZXhlcyBvciBleHByZXNzaW9ucworCSAqIHRoYXQgYXJlIGNvbGxlY3RlZCBidXQg bm90IGV2YWx1YXRlZCB3aGVuIHJlZmpzb25icGF0aCBpcyBzZXQuCisJICovCiAJTGlzdAkgICAq cmVmdXBwZXJpbmRleHByOwogCiAJLyoKLQkgKiBleHByZXNzaW9ucyB0aGF0IGV2YWx1YXRlIHRv IGxvd2VyIGNvbnRhaW5lciBpbmRleGVzLCBvciBOSUwgZm9yIHNpbmdsZQotCSAqIGNvbnRhaW5l ciBlbGVtZW50LgorCSAqIGV4cHJlc3Npb25zIHRoYXQgZXZhbHVhdGUgdG8gbG93ZXIgY29udGFp bmVyIGluZGV4ZXMsIG9yIE5JTCBmb3IgYQorCSAqIHNpbmdsZSBjb250YWluZXIgZWxlbWVudCwg b3IgZXhwcmVzc2lvbnMgdGhhdCBhcmUgY29sbGVjdGVkIGJ1dCBub3QKKwkgKiBldmFsdWF0ZWQg d2hlbiByZWZqc29uYnBhdGggaXMgc2V0LgogCSAqLwogCUxpc3QJICAgKnJlZmxvd2VyaW5kZXhw cjsKIAkvKiB0aGUgZXhwcmVzc2lvbiB0aGF0IGV2YWx1YXRlcyB0byBhIGNvbnRhaW5lciB2YWx1 ZSAqLwogCUV4cHIJICAgKnJlZmV4cHI7CiAJLyogZXhwcmVzc2lvbiBmb3IgdGhlIHNvdXJjZSB2 YWx1ZSwgb3IgTlVMTCBpZiBmZXRjaCAqLwogCUV4cHIJICAgKnJlZmFzc2duZXhwcjsKKworCS8q CisJICogY29udGFpbmVyLXNwZWNpZmljIGV4dHJhIGluZm9ybWF0aW9uLCBjdXJyZW50bHkgdXNl ZCBvbmx5IGJ5IGpzb25iLgorCSAqIHN0b3JlcyBhIEpzb25QYXRoIGV4cHJlc3Npb24gd2hlbiBq c29uYiBkb3Qgbm90YXRpb24gaXMgdXNlZC4gTlVMTCBmb3IKKwkgKiBzaW1wbGUgc3Vic2NyaXB0 aW5nLgorCSAqLworCU5vZGUJICAgKnJlZmpzb25icGF0aDsKIH0gU3Vic2NyaXB0aW5nUmVmOwog CiAvKgpAQCAtMjM3MSw0ICsyMzgzLDQwIEBAIHR5cGVkZWYgc3RydWN0IE9uQ29uZmxpY3RFeHBy CiAJTGlzdAkgICAqZXhjbFJlbFRsaXN0OwkvKiB0bGlzdCBvZiB0aGUgRVhDTFVERUQgcHNldWRv IHJlbGF0aW9uICovCiB9IE9uQ29uZmxpY3RFeHByOwogCisvKgorICogRmllbGRBY2Nlc3NvckV4 cHIgLSByZXByZXNlbnRzIGEgc2luZ2xlIG9iamVjdCBtZW1iZXIgYWNjZXNzIHVzaW5nIGRvdC1u b3RhdGlvbgorICoJCWluIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggKGUuZy4sIGpz b25iX2NvbC5hKS4KKyAqCisgKiBUaGVzZSBub2RlcyBhcHBlYXIgYXMgbGlzdCBlbGVtZW50cyBp biBTdWJzY3JpcHRpbmdSZWYucmVmdXBwZXJpbmRleHByIHRvCisgKiBpbmRpY2F0ZSBKU09OIG9i amVjdCBrZXkgYWNjZXNzLiBUaGV5IGFyZSBub3QgZXZhbHVhYmxlIGV4cHJlc3Npb25zIGJ5Cisg KiB0aGVtc2VsdmVzIGJ1dCBzZXJ2ZSBhcyBwbGFjZWhvbGRlcnMgdG8gcHJlc2VydmUgc291cmNl LWxldmVsIHN5bnRheCBmb3IKKyAqIHJ1bGUgcmV3cml0aW5nIGFuZCBkZXBhcnNpbmcgKGUuZy4s IGluIEVYUExBSU4gYW5kIHZpZXcgZGVmaW5pdGlvbnMpLgorICogRXhlY3V0aW9uIGlzIGhhbmRs ZWQgYnkgdGhlIGVuY2xvc2luZyBTdWJzY3JpcHRpbmdSZWYuCisgKgorICogSWYgZG90LW5vdGF0 aW9uIGlzIHVzZWQgaW4gYSBTdWJzY3JpcHRpbmdSZWYsIHRoZSBKU09OIHBhdGggaXMgcmVwcmVz ZW50ZWQKKyAqIGFzIGEgZmxhdCBsaXN0IG9mIEZpZWxkQWNjZXNzb3JFeHByIG5vZGVzIChmb3Ig b2JqZWN0IGZpZWxkIGFjY2VzcyksIENvbnN0CisgKiBub2RlcyAoZm9yIGFycmF5IGluZGV4ZXMp LCBhbmQgTlVMTHMgKGZvciBvbWl0dGVkIHNsaWNlIGJvdW5kcyksIHJhdGhlciB0aGFuCisgKiB0 aHJvdWdoIG5lc3RlZCBleHByZXNzaW9uIHRyZWVzLgorICoKKyAqIE5vdGU6IFRoZSBmbGF0IHJl cHJlc2VudGF0aW9uIGF2b2lkcyBuZXN0ZWQgRmllbGRBY2Nlc3NvckV4cHIgY2hhaW5zLAorICog c2ltcGxpZnlpbmcgZXZhbHVhdGlvbiBhbmQgZW5hYmxpbmcgc3RhbmRhcmQtY29tcGxpYW50IGJl aGF2aW9yIHN1Y2ggYXMKKyAqIGNvbmRpdGlvbmFsIGFycmF5IHdyYXBwaW5nLiBUaGlzIGF2b2lk cyB0aGUgbmVlZCBmb3IgcG9zaXRpb24tYXdhcmUKKyAqIHdyYXBwaW5nL3Vud3JhcHBpbmcgbG9n aWMgZHVyaW5nIGV4ZWN1dGlvbi4KKyAqCisgKiBGb3IgZXhhbXBsZSwgaW4gdGhlIGV4cHJlc3Np b246CisgKgkJKCd7ImEiOiBbeyJiIjogMX1dfSc6Ompzb25iKS5hWzBdLmIKKyAqIHRoZSBTdWJz Y3JpcHRpbmdSZWYgd2lsbCBjb250YWluOgorICoJCS0gcmVmZXhwcjogdGhlIGJhc2UgZXhwcmVz c2lvbiAodGhlIGpzb25iIHZhbHVlKQorICoJCS0gcmVmdXBwZXJpbmRleHByOiBbRmllbGRBY2Nl c3NvckV4cHIoImEiKSwgQ29uc3QoMCksCisgKgkJCUZpZWxkQWNjZXNzb3JFeHByKCJiIildCisg KgkJLSByZWZsb3dlcmluZGV4cHI6IFtOVUxMLCBOVUxMLCBOVUxMXSAoc2xpY2UgbG93ZXIgYm91 bmRzIG5vdCB1c2VkIGhlcmUpCisgKi8KK3R5cGVkZWYgc3RydWN0IEZpZWxkQWNjZXNzb3JFeHBy Cit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpmaWVsZG5hbWU7CQkvKiBuYW1lIG9mIHRo ZSBKU09OQiBvYmplY3QgZmllbGQgYWNjZXNzZWQgdmlhCisJCQkJCQkJCSAqIGRvdCBub3RhdGlv biAqLworCU9pZAkJCWZhZWNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7 Cit9CQkJRmllbGRBY2Nlc3NvckV4cHI7CisKICNlbmRpZgkJCQkJCQkvKiBQUklNTk9ERVNfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxq c29uLmMgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpp bmRleCAzOTIyMWY5ZWE1ZC4uZTZhN2VjZTZkYWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCkBAIC00MTcsMTIgKzQxNywxMjIgQEAgaWYg KHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KIAkgIGZvciAoaW50IGkgPSAwOyBpIDwg c2l6ZW9mKGlzX2pzb24pOyBpKyspCiAJCSAgcHJpbnRmKCJGb3VuZCBpc19qc29uWyVkXTogJXNc biIsIGksIGlzX2pzb25baV0gPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAotICB7IEVDUEdkaXNjb25u ZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9fScgOjoganNvbmIgKSAuIFwiYVwiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9j aGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQ R3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAx MTggInNxbGpzb24ucGdjIgogCiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQog I2xpbmUgMTE4ICJzcWxqc29uLnBnYyIKIAorCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNv bik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwg InNlbGVjdCBqc29uICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiAu IFwiYVwiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChs b25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwg MEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMjEgInNxbGpzb24ucGdjIgorCitpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTIxICJzcWxqc29uLnBnYyIK KworCS8vIGVycm9yCisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0 X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0n IDo6IGpzb25iICkgLiBhICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9u ZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9S LCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMjQgInNxbGpzb24ucGdj IgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTI0ICJzcWxq c29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdk byhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICgg KCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iICkgLiBhIC4gYiApIiwg RUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0 KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEws IEVDUEd0X0VPUlQpOworI2xpbmUgMTI3ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNv ZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEyNyAic3FsanNvbi5wZ2MiCisKKwlwcmludGYo IkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5V TEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoIGNvYWxlc2NlICgganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiApIC4gYyApICwgJ251bGwn ICkgKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcp MSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwg MEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEzMCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxj YS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxMzAgInNxbGpzb24ucGdjIgorCisJ cHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAw LCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtc ImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5 XCI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDAgXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3Rf Y2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVD UEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUg MTMzICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30K KyNsaW5lIDEzMyAic3FsanNvbi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpz b24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWws ICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBb e1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIC4g eCApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykx LCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAw TCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTM2ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNh LnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEzNiAic3FsanNvbi5wZ2MiCisKKwlw cmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAs IDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wi YlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlc IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQ R3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAor CUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xp bmUgMTM5ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgp O30KKyNsaW5lIDEzOSAic3FsanNvbi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3Jt YWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwi OiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBi IFsgMSBdIC4geCBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwo bG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNB VE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxNDIgInNxbGpzb24u cGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTQyICJz cWxqc29uLnBnYyIKKworCS8vIGVycm9yCisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVM TCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEs IFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1d fScgOjoganNvbmIgKSAuICogKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChs b25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FU T1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDE0NSAic3FsanNvbi5w Z2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNDUgInNx bGpzb24ucGdjIgorCisJLy8gZXJyb3IKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19 JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIDogXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hh ciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0 X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTQ4 ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNs aW5lIDE0OCAic3FsanNvbi5wZ2MiCisKKwkvLyBlcnJvcgorCisgIHsgRUNQR2Rpc2Nvbm5lY3Qo X19MSU5FX18sICJDVVJSRU5UIik7CisjbGluZSAxNTEgInNxbGpzb24ucGdjIgorCitpZiAoc3Fs Y2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTUxICJzcWxqc29uLnBnYyIKKwog CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBl Y3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKaW5kZXggZTU1YTk1ZGQ3MTEuLjE5ZjhjNThhZjA2IDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNv bi5zdGRlcnIKQEAgLTI2OCw1ICsyNjgsMTA1IEBAIFNRTCBlcnJvcjogY2Fubm90IHVzZSB0eXBl IGpzb25iIGluIFJFVFVSTklORyBjbGF1c2Ugb2YgSlNPTl9TRVJJQUxJWkUoKSBvbiBsaW5lCiBb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZ2V0 X2RhdGEgb24gbGluZSAxMDI6IFJFU1VMVDogZiBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19Q SURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRl IG9uIGxpbmUgMTE4OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6 IDJ9fScgOjoganNvbmIgKSAuICJhIiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rp b24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMTg6IHVzaW5nIFBRZXhlYworW05P X1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nl c3Nfb3V0cHV0IG9uIGxpbmUgMTE4OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVs ZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNw Z19nZXRfZGF0YSBvbiBsaW5lIDExODogUkVTVUxUOiB7ImIiOiAxLCAiYyI6IDJ9IG9mZnNldDog LTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICd7 ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fScgOjoganNvbmIgLiAiYSIgKTsgd2l0aCAwIHBhcmFtZXRl cihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTIxOiB1 c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5lIDEyMTogYmFkIHJlc3BvbnNlIC0gRVJS T1I6ICBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBzZWxlY3QganNvbiAo ICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fScgOjoganNvbmIgLiAiYSIgKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiByYWlzaW5nIHNxbHN0YXRlIDNGMDAw IChzcWxjb2RlIC00MDApOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBsaW5lIDEy MQorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogM0YwMDAKK1NRTCBlcnJvcjog c2NoZW1hICJqc29uYiIgZG9lcyBub3QgZXhpc3Qgb24gbGluZSAxMjEKK1tOT19QSURdOiBlY3Bn X2V4ZWN1dGUgb24gbGluZSAxMjQ6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6 IDEsICJjIjogMn19JyA6OiBqc29uYiApIC4gYSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjQ6IHVzaW5nIFBRZXhl YworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTI0OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGgg MSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEyNDogUkVTVUxUOiB7ImIiOiAxLCAiYyI6IDJ9IG9m ZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjc6IHF1ZXJ5OiBzZWxlY3QganNv biAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiApIC4gYSAuIGIgKTsgd2l0 aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9u IGxpbmUgMTI3OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEyNzogY29ycmVj dGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAs IHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMjc6IFJFU1VM VDogMSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMwOiBxdWVyeTogc2Vs ZWN0IGpzb24gKCBjb2FsZXNjZSAoIGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fScg OjoganNvbmIgKSAuIGMgKSAsICdudWxsJyApICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29u bmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzMDogdXNpbmcgUFFleGVj CitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdf cHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMzA6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAx IGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURd OiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTMwOiBSRVNVTFQ6IG51bGwgb2Zmc2V0OiAtMTsgYXJy YXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06 IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzMzogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjog eyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0n IDo6IGpzb25iICkgLiBiIFsgMCBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlv biBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzMzogdXNpbmcgUFFleGVjCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vz c19vdXRwdXQgb24gbGluZSAxMzM6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxk cworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X2dldF9kYXRhIG9uIGxpbmUgMTMzOiBSRVNVTFQ6IHsieCI6IDF9IG9mZnNldDogLTE7IGFycmF5 OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBl Y3BnX2V4ZWN1dGUgb24gbGluZSAxMzY6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsi YiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6 OiBqc29uYiApIC4gYiAuIHggKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVj cGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTM2OiB1c2luZyBQUWV4ZWMKK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291 dHB1dCBvbiBsaW5lIDEzNjogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0 X2RhdGEgb24gbGluZSAxMzY6IFJFU1VMVDogWzEsIFsxMiwgeyJ5IjogMX1dXSBvZmZzZXQ6IC0x OyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTM5OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7 ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9 XX1dfScgOjoganNvbmIgKSBbICdiJyBdIFsgMCBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24g Y29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0 YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzOTogdXNpbmcgUFFl eGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVj cGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMzk6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0 aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19Q SURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTM5OiBSRVNVTFQ6IHsieCI6IDF9IG9mZnNldDog LTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICgg J3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDEgXSAuIHggWyAwIDogXSApOyB3aXRoIDAgcGFyYW1l dGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBj b2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6 IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTQyOiBiYWQgcmVzcG9uc2UgLSBF UlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworTElORSAxOiAu Li4sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAg OiBdICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1 YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0MgorW05PX1BJRF06IHNx bGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKK1NRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0 IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCitbTk9fUElEXTogZWNwZ19leGVj dXRlIG9uIGxpbmUgMTQ1OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAi YyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIg KSAuICogKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Np b24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNw Z19leGVjdXRlIG9uIGxpbmUgMTQ1OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5l IDE0NTogYmFkIHJlc3BvbnNlIC0gRVJST1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90 IHN1cHBvcnRlZCBoZXJlCitMSU5FIDE6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwg ImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieC4uLgorICAgICAgICAgICAgICAgICAgICAgICAg XgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiByYWlz aW5nIHNxbHN0YXRlIDBBMDAwIChzcWxjb2RlIC00MDApOiByb3cgZXhwYW5zaW9uIHZpYSAiKiIg aXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1CitbTk9fUElEXTogc3FsY2E6IGNvZGU6 IC00MDAsIHN0YXRlOiAwQTAwMAorU1FMIGVycm9yOiByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMg bm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1CitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9u IGxpbmUgMTQ4OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSBbICdi JyBdIFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3Jl Z3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBv biBsaW5lIDE0ODogYmFkIHJlc3BvbnNlIC0gRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMKK0xJTkUgMTogLi4ueCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1d fV19JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIDogXSApCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiByYWlzaW5nIHNxbHN0YXRlIDQy ODA0IChzcWxjb2RlIC00MDApOiBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGlj ZXMgb24gbGluZSAxNDgKK1tOT19QSURdOiBzcWxjYTogY29kZTogLTQwMCwgc3RhdGU6IDQyODA0 CitTUUwgZXJyb3I6IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBs aW5lIDE0OAogW05PX1BJRF06IGVjcGdfZmluaXNoOiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Np b24gY2xvc2VkCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMApkaWZmIC0t Z2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91 dCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQK aW5kZXggODNmOGRmMTNlNWEuLjQ0MmQzNjkzMWYxIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CisrKyBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKQEAgLTI4LDMgKzI4LDEw IEBAIEZvdW5kIGlzX2pzb25bNF06IGZhbHNlCiBGb3VuZCBpc19qc29uWzVdOiBmYWxzZQogRm91 bmQgaXNfanNvbls2XTogdHJ1ZQogRm91bmQgaXNfanNvbls3XTogZmFsc2UKK0ZvdW5kIGpzb249 eyJiIjogMSwgImMiOiAyfQorRm91bmQganNvbj17ImIiOiAxLCAiYyI6IDJ9CitGb3VuZCBqc29u PTEKK0ZvdW5kIGpzb249bnVsbAorRm91bmQganNvbj17IngiOiAxfQorRm91bmQganNvbj1bMSwg WzEyLCB7InkiOiAxfV1dCitGb3VuZCBqc29uPXsieCI6IDF9CmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90 ZXN0L3NxbC9zcWxqc29uLnBnYwppbmRleCBkZGNiY2MzYjNjYi4uNTdhOWJmZjQyNGQgMTAwNjQ0 Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKKysrIGIvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYwpAQCAtMTE1LDYgKzExNSwzOSBA QCBFWEVDIFNRTCBFTkQgREVDTEFSRSBTRUNUSU9OOwogCSAgZm9yIChpbnQgaSA9IDA7IGkgPCBz aXplb2YoaXNfanNvbik7IGkrKykKIAkJICBwcmludGYoIkZvdW5kIGlzX2pzb25bJWRdOiAlc1xu IiwgaSwgaXNfanNvbltpXSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCisJRVhFQyBTUUwgU0VMRUNU IEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fSc6Ompzb25iKS4iYSIpIElOVE8gOmpzb247 CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBK U09OKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fSc6Ompzb25iLiJhIikgSU5UTyA6anNvbjsKKwkv LyBlcnJvcgorCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 fSc6Ompzb25iKS5hKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNv bik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6 anNvbmIpLmEuYikgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oQ09BTEVTQ0UoSlNPTigoJ3siYSI6IHsiYiI6IDEs ICJjIjogMn19Jzo6anNvbmIpLmMpLCAnbnVsbCcpKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91 bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsi YiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6 anNvbmIpLmJbMF0pIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29u KTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIi OiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYikuYi54KSBJTlRPIDpq c29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxF Q1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6MX1dfV19Jzo6anNvbmIpWydiJ11bMF0pIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjog eyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0n Ojpqc29uYikuYlsxXS54WzA6XSkgSU5UTyA6anNvbjsKKwkvLyBlcnJvcgorCisJRVhFQyBTUUwg U0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4 IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS4qKSBJTlRPIDpqc29uOworCS8vIGVycm9yCisK KwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3si eCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpWydiJ11bMDpdKSBJTlRPIDpq c29uOworCS8vIGVycm9yCisKICAgRVhFQyBTUUwgRElTQ09OTkVDVDsKIAogICByZXR1cm4gMDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKaW5kZXggNWExZWIxOGFiYTIuLjM3ZDcxYjIz ZDVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dApAQCAtNDk4OSw2ICs0OTg5LDEy IEBAIHNlbGVjdCAoJzEyMyc6Ompzb25iKVsnYSddOwogIAogKDEgcm93KQogCitzZWxlY3QgKCcx MjMnOjpqc29uYikuYTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJzEyMyc6Ompz b25iKVswXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMDEsMTIgKzUwMDcsMjQgQEAgc2VsZWN0 ICgnMTIzJzo6anNvbmIpW05VTExdOwogIAogKDEgcm93KQogCitzZWxlY3QgKCcxMjMnOjpqc29u YikuTlVMTDsKKyBudWxsIAorLS0tLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDF9 Jzo6anNvbmIpWydhJ107CiAganNvbmIgCiAtLS0tLS0tCiAgMQogKDEgcm93KQogCitzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKS5hOworIGEgCistLS0KKyAxCisoMSByb3cpCisKIHNlbGVjdCAo J3siYSI6IDF9Jzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTAxOSw2ICs1MDM3 LDEyIEBAIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydub3RfZXhpc3QnXTsKICAKICgxIHJv dykKIAorc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuIm5vdF9leGlzdCI7Cisgbm90X2V4aXN0 IAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilb TlVMTF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC01MDMxLDYgKzUwNTUsMTIgQEAgc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbJ2EnXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgnWzEs ICIyIiwgbnVsbF0nOjpqc29uYikuYTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAo J1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTA0Myw2 ICs1MDczLDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWycxJ107CiAgIjIi CiAoMSByb3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpLiIxIjsKKyAxIAor LS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07 CiBFUlJPUjogIHN1YnNjcmlwdCB0eXBlIG51bWVyaWMgaXMgbm90IHN1cHBvcnRlZAogTElORSAx OiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxLjBdOwpAQCAtNTA3Miw2ICs1MTA4 LDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWydhJ107CiAgCiAoMSBy b3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdLmE7CisgYSAKKy0tLQor IAorKDEgcm93KQorCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxXVswXTsKICBq c29uYiAKIC0tLS0tLS0KQEAgLTUwODQsNTYgKzUxMjYsMTI3IEBAIHNlbGVjdCAoJ3siYSI6IDEs ICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2InXTsKICAiYyIKICgxIHJvdykK IAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5i OworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjog ImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXTsKICAgIGpzb25iICAgCiAtLS0tLS0t LS0tLQogIFsxLCAyLCAzXQogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwg ImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQ7CisgICAgIGQgICAgIAorLS0tLS0tLS0tLS0KKyBb MSwgMiwgM10KKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEs IDIsIDNdfSc6Ompzb25iKVsnZCddWzFdOwogIGpzb25iIAogLS0tLS0tLQogIDIKICgxIHJvdykK IAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5k WzFdOworIGQgCistLS0KKyAyCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMi LCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXVsnYSddOwogIGpzb25iIAogLS0tLS0tLQog IAogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmRbJ2EnXTsKKyBkIAorLS0tCisgCisoMSByb3cpCisKK3NlbGVjdCAoJ3siYSI6 IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZC5hOworIGEgCistLS0KKyAK KygxIHJvdykKKworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogeyJhIjogWzEsIDIs IDNdfX0nOjpqc29uYikuZFsnYSddWzBdOworIGQgCistLS0KKyAxCisoMSByb3cpCisKK3NlbGVj dCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IHsiYSI6IFsxLCAyLCAzXX19Jzo6anNvbmIpLmQu YVswXTsKKyBhIAorLS0tCisgMQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJh MiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ107 CiAgICAgIGpzb25iICAgICAKIC0tLS0tLS0tLS0tLS0tLQogIHsiYTIiOiAiYWFhIn0KICgxIHJv dykKIAorc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAi YyI6ICJjY2MifSc6Ompzb25iKS5hLmExOworICAgICAgYTEgICAgICAgCistLS0tLS0tLS0tLS0t LS0KKyB7ImEyIjogImFhYSJ9CisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEy IjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXVsn YTInXTsKICBqc29uYiAKIC0tLS0tLS0KICAiYWFhIgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEi OiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIp LmEuYTEuYTI7CisgIGEyICAgCistLS0tLS0tCisgImFhYSIKKygxIHJvdykKKwogc2VsZWN0ICgn eyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompz b25iKVsnYSddWydhMSddWydhMiddWydhMyddOwogIGpzb25iIAogLS0tLS0tLQogIAogKDEgcm93 KQogCitzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJj IjogImNjYyJ9Jzo6anNvbmIpLmEuYTEuYTIuYTM7CisgYTMgCistLS0tCisgCisoMSByb3cpCisK IHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJi IjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXTsKICAgICAgICAgIGpzb25iICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFsiYWFhIiwgImJiYiIsICJjY2MiXQogKDEgcm93 KQogCitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1d LCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjE7CisgICAgICAgICAgYjEgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImFhYSIsICJiYmIiLCAiY2NjIl0KKygxIHJvdykK Kwogc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwg ImIiOiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddWzJdOwogIGpzb25iIAogLS0tLS0tLQog ICJjY2MiCiAoMSByb3cpCiAKLS0tIHNsaWNlcyBhcmUgbm90IHN1cHBvcnRlZAotc2VsZWN0ICgn eyJhIjogMX0nOjpqc29uYilbJ2EnOidiJ107CitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6 IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjFbMl07 CisgIGIxICAgCistLS0tLS0tCisgImNjYyIKKygxIHJvdykKKworc2VsZWN0ICgneyJhIjogMX0n Ojpqc29uYilbJ2EnOidiJ107IC0tIGZhaWxzCiBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2Vz IG5vdCBzdXBwb3J0IHNsaWNlcwogTElORSAxOiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsn YSc6J2InXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KQEAgLTU4 MzEsMyArNTk0NCwyOTkgQEAgc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDg7CiAgMTIzNDUKICgxIHJvdykKIAor LS0gZG90IG5vdGF0aW9uCitDUkVBVEUgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gQVMK K1NFTEVDVCAneyJhIjogWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4 IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sICJiIjogWzMsIDQsIHsiYiI6ICJnIiwgIngi OiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XX0nOjpqc29uYiBqYjsKK1NFTEVDVCAoamIpLmEg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7 InkiOiAieXl5IiwgInoiOiAienp6In19XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4iYSIgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZG91YmxlIHF1b3RlIHNob3VsZCB3b3JrCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsIDIsIHsiYiI6ICJjIn0sIHsi YiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0KKygxIHJv dykKKworU0VMRUNUIChqYikuJ2EnIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHNp bmdsZSBxdW90ZSBzaG91bGQgbm90IHdvcmsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5l YXIgIidhJyIKK0xJTkUgMTogU0VMRUNUIChqYikuJ2EnIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgICAgICAgICAgICAgICAgIF4KK3NlbGVjdCAoamIpWzBdLmEgZnJvbSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBzYW1lIHJlc3VsdCBhcyAoamIpLmEKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwgMiwgeyJiIjogImMifSwgeyJi IjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XQorKDEgcm93 KQorCitzZWxlY3QgKGpiKVsxXS5hIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJl dHVybnMgTlVMTAorIGEgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgIGIgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6 ICJaWloifX1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyBjIAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMi LCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmFbMl0uYiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEu eC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICB5ICAgCistLS0tLS0tCisgInl5 eSIKKygxIHJvdykKKworU0VMRUNUIChqYikuYi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKKyAgIHogICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h LmIuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGMgCistLS0KKyAKKygxIHJvdykK KworU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OyAt LSBmYWlscworRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMK K1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWlscwor RVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKKy0tIGV4cGxhaW5zIHNob3VsZCB3 b3JrCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAodC5qYikuYSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQKKyAg IE91dHB1dDogKGpiKS5hCisoMiByb3dzKQorCitTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXki LCAieiI6ICJ6enoifX1dCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikg U0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJf ZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYVsxXQorKDIgcm93cykKKworU0VMRUNUIChq YikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGEgCistLS0KKyAyCisoMSBy b3cpCisKKy0tIHZpZXdzIHNob3VsZCB3b3JrCitDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUyBTRUxFQ1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFD RSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoamIp LmFbM10ueC55IEFTIHkKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKy0tIG1peGVk IHN5bnRheAorRFJPUCBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2Fu IG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoamJbJ2EnOjp0 ZXh0XSkuYgorKDIgcm93cykKKworU0VMRUNUIChqYilbJ2EnXS5iIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247IC0tIHJldHVybnMgYW4gYXJyYXkgZHVlIHRvIGxheCBtb2RlCisgICAgIGIg ICAgICAKKy0tLS0tLS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworQ1JFQVRFIFZJRVcg cHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYSddLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjEgQVMKKyBTRUxFQ1QgKGpiWydhJzo6dGV4dF0pLmIgQVMgYgorICAgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitE Uk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9u IHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiKS5hKVsnYic6 OnRleHRdCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5hWydiJ10gRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMIGJlY2F1c2UgWydiJ10gbG9va3MgZm9yIHN0cmlj dCBtYXRjaCBpbiBhbiBvYmplY3QKKyBhIAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVX IHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYVsnYidd IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0 aW9uX3YxIEFTCisgU0VMRUNUICgoamIpLmEpWydiJzo6dGV4dF0gQVMgYQorICAgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAo amIpLmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rf bm90YXRpb24KKyAgIE91dHB1dDogKChqYikuYi54KVsneic6OnRleHRdCisoMiByb3dzKQorCitT RUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSB3YXJu aW5ncworICAgeCAgIAorLS0tLS0tLQorICJaWloiCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHB1 YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYi54Wyd6J10g RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYi54KVsneic6OnRleHRdIEFTIHgKKyAgIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjE7CisgICB4ICAgCistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworRFJPUCBWSUVXIHB1 YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiWydiJzo6dGV4dF0pLngp Wyd6Jzo6dGV4dF0KKygyIHJvd3MpCisKK1NFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247ICAtLSB3YXJuaW5ncworICAgeCAgIAorLS0tLS0tLQorICJa WloiCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MSBBUworU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0Ug VklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYlsn Yic6OnRleHRdKS54KVsneic6OnRleHRdIEFTIHgKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgICB4ICAg CistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChq YikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbgorICAgT3V0cHV0OiAoKChqYikuYilbJ3gnOjp0ZXh0XSkuegorKDIgcm93cykKKwor U0VMRUNUIChqYikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0 dXJucyBOVUxMCisgeiAKKy0tLQorIAorKDEgcm93KQorCitDUkVBVEUgVklFVyBwdWJsaWMudGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NS RUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFT CisgU0VMRUNUICgoKGpiKS5iKVsneCc6OnRleHRdKS56IEFTIHoKKyAgIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7 CisgeiAKKy0tLQorIAorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5i Wyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uCisgICBPdXRwdXQ6ICgoamIpLmIpWyd4Jzo6dGV4dF1bJ3onOjp0ZXh0XQorKDIgcm93 cykKKworU0VMRUNUIChqYikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsgLS0gcmV0dXJucyBOVUxMCisgYiAKKy0tLQorIAorKDEgcm93KQorCitDUkVBVEUgVklFVyBw dWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpLmJbJ3gnXVsn eiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxIEFTCisgU0VMRUNUICgoamIpLmIpWyd4Jzo6dGV4dF1bJ3onOjp0ZXh0XSBBUyBi CisgICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNv bmJfZG90X25vdGF0aW9uX3YxOworIGIgCistLS0KKyAKKygxIHJvdykKKworRFJPUCBWSUVXIHB1 YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoamJbJ2InOjp0ZXh0XVsneCc6 OnRleHRdKS56CisoMiByb3dzKQorCitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKKyB6IAorLS0tCisgCisoMSByb3cp CisKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VM RUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKGpiWydiJzo6dGV4dF1bJ3gn Ojp0ZXh0XSkueiBBUyB6CisgICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1Qg KiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworIHogCistLS0KKyAKKygxIHJvdykK KworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKy0tIGNsZWFu IHVwCitEUk9QIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIu c3FsCmluZGV4IDU3YzExYWNkZGZlLi41ZmM1M2UxYzlhYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvanNvbmIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNx bApAQCAtMTMwNCwzMyArMTMwNCw1MSBAQCBzZWxlY3QganNvbmJfaW5zZXJ0KCd7ImEiOiB7ImIi 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 Jzo6anNvbmIpLmQuYTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IHsiYSI6IFsx LCAyLCAzXX19Jzo6anNvbmIpLmRbJ2EnXVswXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMi LCAiZCI6IHsiYSI6IFsxLCAyLCAzXX19Jzo6anNvbmIpLmQuYVswXTsKIHNlbGVjdCAoJ3siYSI6 IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilb J2EnXVsnYTEnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAi YmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMTsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7 ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEn XVsnYTInXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJi IiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMjsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7 ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEn XVsnYTInXVsnYTMnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIi OiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMi5hMzsKIHNlbGVjdCAoJ3siYSI6 IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29u YilbJ2EnXVsxXVsnYjEnXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAi YmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMTsKIHNlbGVjdCAoJ3si YSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpq c29uYilbJ2EnXVsxXVsnYjEnXVsyXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJh YWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMVsyXTsKIAot LS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVkCi1zZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsn YSc6J2InXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOyAtLSBmYWlscwog c2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzoyXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6 XTsKQEAgLTE1OTAsMyArMTYwOCw5NCBAQCBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6ZmxvYXQ4Owogc2VsZWN0ICcx MjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNv bmI6OmludDI7CiBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50NDsKIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4OworCistLSBk b3Qgbm90YXRpb24KK0NSRUFURSBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiBBUworU0VM RUNUICd7ImEiOiBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7 InkiOiAieXl5IiwgInoiOiAienp6In19XSwgImIiOiBbMywgNCwgeyJiIjogImciLCAieCI6IHsi eSI6ICJZWVkiLCAieiI6ICJaWloifX1dfSc6Ompzb25iIGpiOworCitTRUxFQ1QgKGpiKS5hIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4iYSIgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsgLS0gZG91YmxlIHF1b3RlIHNob3VsZCB3b3JrCitTRUxFQ1QgKGpi KS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gc2luZ2xlIHF1b3RlIHNob3Vs ZCBub3Qgd29yaworc2VsZWN0IChqYilbMF0uYSBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OyAtLSByZXR1cm5zIHNhbWUgcmVzdWx0IGFzIChqYikuYQorc2VsZWN0IChqYilbMV0uYSBmcm9t IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKK1NFTEVDVCAoamIpLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmMgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuYiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuYVsyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CitTRUxFQ1QgKGpiKS5hLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEu Yi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKChqYikuYilbOl0ueCBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7IC0tIGZhaWxzCitTRUxFQ1QgKGpiKS5hLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZmFpbHMKKworLS0gZXhwbGFpbnMgc2hv dWxkIHdvcmsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAodC5qYikuYSBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVD VCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmFb MV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKworLS0gdmlld3Mgc2hvdWxkIHdvcmsK K0NSRUFURSBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFb M10ueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjEKKworLS0gbWl4ZWQgc3ludGF4CitEUk9QIFZJRVcgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilb J2EnXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKVsnYSddLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBhbiBhcnJheSBkdWUgdG8g bGF4IG1vZGUKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBB UworU0VMRUNUIChqYilbJ2EnXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3Yg dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx OworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbJ2InXSBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYVsnYiddIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTCBiZWNhdXNlIFsnYiddIGxvb2tzIGZv ciBzdHJpY3QgbWF0Y2ggaW4gYW4gb2JqZWN0CitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBm cm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pz b25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxF Q1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChq YikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gd2FybmluZ3MKK0NS RUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChq YikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExB SU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247ICAtLSB3YXJuaW5ncworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitT RUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0 dXJucyBOVUxMCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEg QVMKK1NFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citc c3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9u X3YxOworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmJbJ3gnXVsn eiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5iWyd4J11bJ3on XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKK0NSRUFURSBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsn eCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsK K0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4g KFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpWydiJ11bJ3gnXS56IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitT RUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworLS0gY2xlYW4gdXAKK0RST1AgVEFCTEUg dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGEx M2U4MTYyODkwLi5jYzY0NjQyZjM5OSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTgw NSw2ICs4MDUsNyBAQCBGZHdSb3V0aW5lCiBGZXRjaERpcmVjdGlvbgogRmV0Y2hEaXJlY3Rpb25L ZXl3b3JkcwogRmV0Y2hTdG10CitGaWVsZEFjY2Vzc29yRXhwcgogRmllbGRTZWxlY3QKIEZpZWxk U3RvcmUKIEZpbGUKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000003b99b4063e7b2e10 Content-Type: application/octet-stream; name="v18-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v18-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfen1o7a5 RnJvbSBjYWU0MDcwODEwNjY0NmEyZTI3YTcwNWNmNDU0MDg4N2FiNWYzMmFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE4IDMvN10gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw YXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNlIHRoZQphZm9y ZW1lbnRpb25lZCBmdW5jdGlvbi4KCkF1dGhvcmVkLWJ5OiBOaWtpdGEgR2x1a2hvdiA8Z2x1a2hv di5uLmFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53 YW5nLm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1 bnNsYW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5 N0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0K IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jIHwgMTkgKysrKysrKysrKysrKysrLS0t LQogc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCAgICAgfCAgNCArKysrCiAyIGZpbGVzIGNo YW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bnBhdGguYwppbmRleCA3NjJmN2U4YTA5ZC4uYzgzNzc0YjJhMTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9q c29ucGF0aC5jCkBAIC0xNjYsMTUgKzE2NiwxMyBAQCBqc29ucGF0aF9zZW5kKFBHX0ZVTkNUSU9O X0FSR1MpCiAgKiBDb252ZXJ0cyBDLXN0cmluZyB0byBhIGpzb25wYXRoIHZhbHVlLgogICoKICAq IFVzZXMganNvbnBhdGggcGFyc2VyIHRvIHR1cm4gc3RyaW5nIGludG8gYW4gQVNULCB0aGVuCi0g KiBmbGF0dGVuSnNvblBhdGhQYXJzZUl0ZW0oKSBkb2VzIHNlY29uZCBwYXNzIHR1cm5pbmcgQVNU IGludG8gYmluYXJ5CisgKiBqc29uUGF0aEZyb21QYXJzZVJlc3VsdCgpIGRvZXMgc2Vjb25kIHBh c3MgdHVybmluZyBBU1QgaW50byBiaW5hcnkKICAqIHJlcHJlc2VudGF0aW9uIG9mIGpzb25wYXRo LgogICovCiBzdGF0aWMgRGF0dW0KIGpzb25QYXRoRnJvbUNzdHJpbmcoY2hhciAqaW4sIGludCBs ZW4sIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7CiAJSnNvblBhdGhQYXJzZVJlc3VsdCAqanNv bnBhdGggPSBwYXJzZWpzb25wYXRoKGluLCBsZW4sIGVzY29udGV4dCk7Ci0JSnNvblBhdGggICAq cmVzOwotCVN0cmluZ0luZm9EYXRhIGJ1ZjsKIAogCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCiAJCXJldHVybiAoRGF0dW0pIDA7CkBAIC0xODUsOCArMTgzLDIxIEBAIGpzb25Q YXRoRnJvbUNzdHJpbmcoY2hhciAqaW4sIGludCBsZW4sIHN0cnVjdCBOb2RlICplc2NvbnRleHQp CiAJCQkJIGVycm1zZygiaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgJXM6IFwiJXNcIiIs ICJqc29ucGF0aCIsCiAJCQkJCQlpbikpKTsKIAorCXJldHVybiBqc29uUGF0aEZyb21QYXJzZVJl c3VsdChqc29ucGF0aCwgNCAqIGxlbiwgZXNjb250ZXh0KTsKK30KKworLyoKKyAqIENvbnZlcnRz IGpzb25wYXRoIEFic3RyYWN0IFN5bnRheCBUcmVlIChBU1QpIGludG8ganNvbnBhdGggdmFsdWUg aW4gYmluYXJ5LgorICovCitEYXR1bQoranNvblBhdGhGcm9tUGFyc2VSZXN1bHQoY29uc3QgSnNv blBhdGhQYXJzZVJlc3VsdCAqanNvbnBhdGgsIGludCBlc3RpbWF0ZWRfbGVuLAorCQkJCQkJc3Ry dWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlKc29uUGF0aCAgICpyZXM7CisJU3RyaW5nSW5mb0Rh dGEgYnVmOworCiAJaW5pdFN0cmluZ0luZm8oJmJ1Zik7Ci0JZW5sYXJnZVN0cmluZ0luZm8oJmJ1 ZiwgNCAqIGxlbiAvKiBlc3RpbWF0aW9uICovICk7CisJZW5sYXJnZVN0cmluZ0luZm8oJmJ1Ziwg ZXN0aW1hdGVkX2xlbik7CiAKIAlhcHBlbmRTdHJpbmdJbmZvU3BhY2VzKCZidWYsIEpTT05QQVRI X0hEUlNaKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgKaW5kZXggMjNhNzZkMjMzZTkuLjA5NThiYzIyYmI2 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL2pzb25wYXRoLmgKQEAgLTI4MSw2ICsyODEsMTAgQEAgZXh0ZXJuIEpzb25QYXRo UGFyc2VSZXN1bHQgKnBhcnNlanNvbnBhdGgoY29uc3QgY2hhciAqc3RyLCBpbnQgbGVuLAogZXh0 ZXJuIGJvb2wganNwQ29udmVydFJlZ2V4RmxhZ3ModWludDMyIHhmbGFncywgaW50ICpyZXN1bHQs CiAJCQkJCQkJCSBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKIAorZXh0ZXJuIERhdHVtIGpzb25Q YXRoRnJvbVBhcnNlUmVzdWx0KGNvbnN0IEpzb25QYXRoUGFyc2VSZXN1bHQgKmpzb25wYXRoLAor CQkJCQkJCQkJIGludCBlc3RpbWF0ZWRfbGVuLAorCQkJCQkJCQkJIHN0cnVjdCBOb2RlICplc2Nv bnRleHQpOworCiAvKgogICogU3RydWN0IGZvciBkZXRhaWxzIGFib3V0IGV4dGVybmFsIHZhcmlh YmxlcyBwYXNzZWQgaW50byBqc29ucGF0aCBleGVjdXRvcgogICovCi0tIAoyLjM5LjUgKEFwcGxl IEdpdC0xNTQpCgo= --0000000000003b99b4063e7b2e10 Content-Type: application/octet-stream; name="v18-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Disposition: attachment; filename="v18-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfen1o7b6 RnJvbSA4MjA4NjI3OTVmZmY0NjE1OGM5OTMxZjJmNjRjYzNmYWI4YTRlMDA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogRnJpLCA1IFNlcCAyMDI1IDE0OjE3OjM3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTggMi83XSBBbGxvdyBHZW5lcmljIFR5cGUgU3Vic2NyaXB0aW5nIHRvIEFjY2VwdCBE b3QKIE5vdGF0aW9uICguKSBhcyBJbnB1dApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKVGhpcyBjaGFuZ2UgZXh0ZW5kcyBnZW5lcmljIHR5cGUgc3Vic2NyaXB0aW5nIHRvIHJlY29n bml6ZSBkb3QKbm90YXRpb24gKC4pIGluIGFkZGl0aW9uIHRvIGJyYWNrZXQgbm90YXRpb24gKFtd KS4gV2hpbGUgdGhpcyBkb2VzIG5vdAp5ZXQgcHJvdmlkZSBmdWxsIHN1cHBvcnQgZm9yIGRvdCBu b3RhdGlvbiwgaXQgZW5hYmxlcyBzdWJzY3JpcHRpbmcKY29udGFpbmVycyB0byBwcm9jZXNzIGl0 IGluIHRoZSBmdXR1cmUuCgpGb3Igbm93LCBjb250YWluZXItc3BlY2lmaWMgdHJhbnNmb3JtIGZ1 bmN0aW9ucyBvbmx5IGhhbmRsZQpzdWJzY3JpcHRpbmcgaW5kaWNlcyBhbmQgc3RvcCBwcm9jZXNz aW5nIHdoZW4gZW5jb3VudGVyaW5nIGRvdApub3RhdGlvbi4gSXQgaXMgdXAgdG8gaW5kaXZpZHVh bCBjb250YWluZXJzIHRvIGRlY2lkZSBob3cgdG8gdHJhbnNmb3JtCmRvdCBub3RhdGlvbiBpbiBz dWJzZXF1ZW50IHVwZGF0ZXMuCgpUaGlzIGNoYW5nZSBhbHNvIHVwZGF0ZXMgdGhlIFN1YnNjcmlw dFRyYW5zZm9ybSgpIEFQSSB0byByZW1vdmUgdGhlCiJib29sIGlzU2xpY2UiIGFyZ3VtZW50LiBF YWNoIGNvbnRhaW5lcuKAmXMgdHJhbnNmb3JtIGZ1bmN0aW9uIG5vdwpkZXRlcm1pbmVzIHNsaWNl LW5lc3MgaXRzZWxmLCBzaW5jZSBpdCBtYXkgb25seSBwcm9jZXNzIGEgcHJlZml4IG9mCnRoZSBp bmRpcmVjdGlvbiBsaXN0LiBGb3IgZXhhbXBsZSwgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgp IHN0b3BzCmF0IGRvdCBub3RhdGlvbiwgc28gImlzU2xpY2UiIHNob3VsZCBub3QgZGVwZW5kIG9u IHNsaWNlIHNwZWNpZmllcnMKdGhhdCBhcHBlYXIgYWZ0ZXJ3YXJkLgoKQXV0aG9yZWQtYnk6IE5p a2l0YSBHbHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkF1dGhvcmVkLWJ5OiBBbGV4YW5k cmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJl dyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNh bnRhcmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4u Y2hhb0BnbWFpbC5jb20+Ci0tLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyAgICAgICAg IHwgMTEgKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICB8IDY4ICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2Rl LmMgICAgICB8IDU3ICsrKysrKysrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vi cy5jICAgIHwgNDAgKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25i c3Vicy5jICAgIHwgMTYgKysrKystLQogc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgg ICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICB8ICAzICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FycmF5cy5vdXQgfCAyNiArKysrKysrKystLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvYXJyYXlzLnNxbCAgICAgIHwgIDcgKystCiAxMCBmaWxlcyBj aGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJz LmMKaW5kZXggMWIyOTU0M2FiNjcuLmYwMDhlNWZhZjAzIDEwMDY0NAotLS0gYS9jb250cmliL2hz dG9yZS9oc3RvcmVfc3Vicy5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMKQEAg LTQyLDE0ICs0MiwxNiBAQCBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0o U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkJCQkgICBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJ CQkJCQkgICBQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkgICBib29sIGlzU2xpY2UsCiAJCQkJ CQkgICBib29sIGlzQXNzaWdubWVudCkKIHsKIAlBX0luZGljZXMgICphaTsKIAlOb2RlCSAgICpz dWJleHByOwogCisJQXNzZXJ0KCppbmRpcmVjdGlvbiAhPSBOSUwpOworCWFpID0gbGluaXRpYWxf bm9kZShBX0luZGljZXMsICppbmRpcmVjdGlvbik7CisKIAkvKiBXZSBzdXBwb3J0IG9ubHkgc2lu Z2xlLXN1YnNjcmlwdCwgbm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwgbGlzdF9s ZW5ndGgoKmluZGlyZWN0aW9uKSAhPSAxKQorCWlmIChsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24p ICE9IDEgfHwgYWktPmlzX3NsaWNlKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dz IG9ubHkgb25lIHN1YnNjcmlwdCIpLApAQCAtNTcsOCArNTksNyBAQCBoc3RvcmVfc3Vic2NyaXB0 X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCQkJCWV4cHJMb2NhdGlv bigoTm9kZSAqKSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3JtIHRoZSBzdWJzY3Jp cHQgZXhwcmVzc2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRp Y2VzLCAqaW5kaXJlY3Rpb24pOwotCUFzc2VydChhaS0+dWlkeCAhPSBOVUxMICYmIGFpLT5saWR4 ID09IE5VTEwgJiYgIWFpLT5pc19zbGljZSk7CisJQXNzZXJ0KGFpLT51aWR4ICE9IE5VTEwgJiYg YWktPmxpZHggPT0gTlVMTCk7CiAKIAlzdWJleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFp LT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKIAkvKiBJZiBpdCdzIG5vdCB0ZXh0IGFscmVh ZHksIHRyeSB0byBjb2VyY2UgKi8KQEAgLTgyLDcgKzgzLDcgQEAgaHN0b3JlX3N1YnNjcmlwdF90 cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0g VEVYVE9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOwogCi0JKmluZGlyZWN0aW9uID0gTklM OworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCAxKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDZlOGZkNDJjNjEyLi5mOGEwNjE3 ZjgyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NDEsMzggKzQ0MSw1OSBAQCB0cmFu c2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkK IAlMaXN0Q2VsbCAgICppOwogCiAJLyoKLQkgKiBXZSBoYXZlIHRvIHNwbGl0IGFueSBmaWVsZC1z ZWxlY3Rpb24gb3BlcmF0aW9ucyBhcGFydCBmcm9tCi0JICogc3Vic2NyaXB0aW5nLiAgQWRqYWNl bnQgQV9JbmRpY2VzIG5vZGVzIGhhdmUgdG8gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZQorCSAqIENv bWJpbmUgZmllbGQgbmFtZXMgYW5kIHN1YnNjcmlwdHMgaW50byBhIHNpbmdsZSBpbmRpcmVjdGlv biBsaXN0LCBhcworCSAqIHNvbWUgc3Vic2NyaXB0aW5nIGNvbnRhaW5lcnMsIHN1Y2ggYXMganNv bmIsIHN1cHBvcnQgZmllbGQgYWNjZXNzIHVzaW5nCisJICogZG90IG5vdGF0aW9uLiBBZGphY2Vu dCBBX0luZGljZXMgbm9kZXMgaGF2ZSB0byBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlCiAJICogbXVs dGlkaW1lbnNpb25hbCBzdWJzY3JpcHQgb3BlcmF0aW9uLgogCSAqLwogCWZvcmVhY2goaSwgaW5k LT5pbmRpcmVjdGlvbikKIAl7CiAJCU5vZGUJICAgKm4gPSBsZmlyc3QoaSk7CiAKLQkJaWYgKElz QShuLCBBX0luZGljZXMpKQorCQlpZiAoSXNBKG4sIEFfSW5kaWNlcykgfHwgSXNBKG4sIFN0cmlu ZykpCiAJCQlzdWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKLQkJZWxzZSBpZiAo SXNBKG4sIEFfU3RhcikpCisJCWVsc2UKIAkJeworCQkJQXNzZXJ0KElzQShuLCBBX1N0YXIpKTsK IAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkJIGVycm1zZygicm93IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1 cHBvcnRlZCBoZXJlIiksCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlv bikpKTsKIAkJfQotCQllbHNlCisJfQorCisJd2hpbGUgKHN1YnNjcmlwdHMpCisJeworCQkvKiB0 cnkgcHJvY2Vzc2luZyBjb250YWluZXIgc3Vic2NyaXB0cyBmaXJzdCAqLworCQlOb2RlCSAgICpu ZXdyZXN1bHQgPSAoTm9kZSAqKQorCQkJdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3Rh dGUsCisJCQkJCQkJCQkJIHJlc3VsdCwKKwkJCQkJCQkJCQkgZXhwclR5cGUocmVzdWx0KSwKKwkJ CQkJCQkJCQkgZXhwclR5cG1vZChyZXN1bHQpLAorCQkJCQkJCQkJCSAmc3Vic2NyaXB0cywKKwkJ CQkJCQkJCQkgZmFsc2UsCisJCQkJCQkJCQkJIHRydWUpOworCisJCWlmICghbmV3cmVzdWx0KQog CQl7Ci0JCQlOb2RlCSAgICpuZXdyZXN1bHQ7CisJCQkvKgorCQkJICogZ2VuZXJpYyBzdWJzY3Jp cHRpbmcgZmFpbGVkOyBmYWxsaW5nIGJhY2sgdG8gZmllbGQgc2VsZWN0aW9uCisJCQkgKiBmb3Ig YSBjb21wb3NpdGUgdHlwZS4KKwkJCSAqLworCQkJTm9kZQkgICAqbjsKKworCQkJQXNzZXJ0KHN1 YnNjcmlwdHMpOwogCi0JCQlBc3NlcnQoSXNBKG4sIFN0cmluZykpOworCQkJbiA9IGxpbml0aWFs KHN1YnNjcmlwdHMpOwogCi0JCQkvKiBwcm9jZXNzIHN1YnNjcmlwdHMgYmVmb3JlIHRoaXMgZmll bGQgc2VsZWN0aW9uICovCi0JCQl3aGlsZSAoc3Vic2NyaXB0cykKLQkJCQlyZXN1bHQgPSAoTm9k ZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkJ CSAgIHJlc3VsdCwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCi0JCQkJCQkJ CQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICAmc3Vic2Ny aXB0cywKLQkJCQkJCQkJCQkJCQkJCSAgIGZhbHNlKTsKKwkJCWlmICghSXNBKG4sIFN0cmluZykp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1c2Ug aXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAorCQkJCQkJCQlmb3JtYXRfdHlwZV9i ZShleHByVHlwZShyZXN1bHQpKSksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZXhwckxvY2F0aW9uKHJlc3VsdCkpKSk7CiAKKwkJCS8qIHRyeSB0byBmaW5kIGZ1bmN0aW9uIGZv ciBmaWVsZCBzZWxlY3Rpb24gKi8KIAkJCW5ld3Jlc3VsdCA9IFBhcnNlRnVuY09yQ29sdW1uKHBz dGF0ZSwKIAkJCQkJCQkJCQkgIGxpc3RfbWFrZTEobiksCiAJCQkJCQkJCQkJICBsaXN0X21ha2Ux KHJlc3VsdCksCkBAIC00ODAsMTkgKzUwMSwxNiBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJCQkJCQkJCQkgIE5VTEwsCiAJ CQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJCQkgIGxvY2F0aW9uKTsKLQkJCWlmIChuZXdyZXN1 bHQgPT0gTlVMTCkKKworCQkJaWYgKCFuZXdyZXN1bHQpCiAJCQkJdW5rbm93bl9hdHRyaWJ1dGUo cHN0YXRlLCByZXN1bHQsIHN0clZhbChuKSwgbG9jYXRpb24pOwotCQkJcmVzdWx0ID0gbmV3cmVz dWx0OworCisJCQkvKiBjb25zdW1lIGZpZWxkIHNlbGVjdCAqLworCQkJc3Vic2NyaXB0cyA9IGxp c3RfZGVsZXRlX2ZpcnN0KHN1YnNjcmlwdHMpOwogCQl9CisKKwkJcmVzdWx0ID0gbmV3cmVzdWx0 OwogCX0KLQkvKiBwcm9jZXNzIHRyYWlsaW5nIHN1YnNjcmlwdHMsIGlmIGFueSAqLwotCXdoaWxl IChzdWJzY3JpcHRzKQotCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJz Y3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkgICByZXN1bHQsCi0JCQkJCQkJCQkJCQkJICAg ZXhwclR5cGUocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0J CQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9u b2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IGYwNWJhYTUwYTE1 Li5kN2IyMzY4OGI5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yMzgsNiArMjM4LDgg QEAgdHJhbnNmb3JtQ29udGFpbmVyVHlwZShPaWQgKmNvbnRhaW5lclR5cGUsIGludDMyICpjb250 YWluZXJUeXBtb2QpCiAgKiBjb250YWluZXJUeXBNb2QJdHlwbW9kIGZvciB0aGUgY29udGFpbmVy CiAgKiBpbmRpcmVjdGlvbgkJVW50cmFuc2Zvcm1lZCBsaXN0IG9mIHN1YnNjcmlwdHMgKG11c3Qg bm90IGJlIE5JTCkKICAqIGlzQXNzaWdubWVudAkJVHJ1ZSBpZiB0aGlzIHdpbGwgYmVjb21lIGEg Y29udGFpbmVyIGFzc2lnbm1lbnQuCisgKiBub0Vycm9yCQkJVHJ1ZSBmb3IgcmV0dXJuIE5VTEwg d2l0aCBubyBlcnJvciwgaWYgdGhlIGNvbnRhaW5lciB0eXBlCisgKiAJCQkJCWlzIG5vdCBzdWJz Y3JpcHRhYmxlLgogICovCiBTdWJzY3JpcHRpbmdSZWYgKgogdHJhbnNmb3JtQ29udGFpbmVyU3Vi c2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0yNDUsMTMgKzI0NywxMyBAQCB0cmFuc2Zv cm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkgT2lkIGNv bnRhaW5lclR5cGUsCiAJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkgTGlz dCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCkKKwkJCQkJCQkgYm9v bCBpc0Fzc2lnbm1lbnQsCisJCQkJCQkJIGJvb2wgbm9FcnJvcikKIHsKIAlTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZjsKIAljb25zdCBTdWJzY3JpcHRSb3V0aW5lcyAqc2Jzcm91dGluZXM7CiAJT2lk CQkJZWxlbWVudFR5cGU7Ci0JYm9vbAkJaXNTbGljZSA9IGZhbHNlOwotCUxpc3RDZWxsICAgKmlk eDsKKwlpbnQJCQlpbmRpcmVjdGlvbl9sZW5ndGggPSBsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24p OwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIGFjdHVhbCBjb250YWluZXIgdHlwZSwgc21hc2hp bmcgYW55IGRvbWFpbi4gIEluIHRoZQpAQCAtMjY3LDI4ICsyNjksMTUgQEAgdHJhbnNmb3JtQ29u dGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJICovCiAJc2Jzcm91dGluZXMg PSBnZXRTdWJzY3JpcHRpbmdSb3V0aW5lcyhjb250YWluZXJUeXBlLCAmZWxlbWVudFR5cGUpOwog CWlmICghc2Jzcm91dGluZXMpCisJeworCQlpZiAobm9FcnJvcikKKwkJCXJldHVybiBOVUxMOwor CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1c2UgaXQgZG9l cyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAogCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29udGFp bmVyVHlwZSkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o Y29udGFpbmVyQmFzZSkpKSk7Ci0KLQkvKgotCSAqIERldGVjdCB3aGV0aGVyIGFueSBvZiB0aGUg aW5kaXJlY3Rpb24gaXRlbXMgYXJlIHNsaWNlIHNwZWNpZmllcnMuCi0JICoKLQkgKiBBIGxpc3Qg Y29udGFpbmluZyBvbmx5IHNpbXBsZSBzdWJzY3JpcHRzIHJlZmVycyB0byBhIHNpbmdsZSBjb250 YWluZXIKLQkgKiBlbGVtZW50LiAgSWYgYW55IG9mIHRoZSBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lm aWVycyAobG93ZXI6dXBwZXIpLCB0aGVuCi0JICogdGhlIHN1YnNjcmlwdCBleHByZXNzaW9uIG1l YW5zIGEgY29udGFpbmVyIHNsaWNlIG9wZXJhdGlvbi4KLQkgKi8KLQlmb3JlYWNoKGlkeCwgKmlu ZGlyZWN0aW9uKQotCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMs IGlkeCk7Ci0KLQkJaWYgKGFpLT5pc19zbGljZSkKLQkJewotCQkJaXNTbGljZSA9IHRydWU7Ci0J CQlicmVhazsKLQkJfQogCX0KIAogCS8qCkBAIC0zMTAsNyArMjk5LDMzIEBAIHRyYW5zZm9ybUNv bnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGRldGVybWluZSB0aGUg c3Vic2NyaXB0aW5nIHJlc3VsdCB0eXBlLgogCSAqLwogCXNic3JvdXRpbmVzLT50cmFuc2Zvcm0o c2JzcmVmLCBpbmRpcmVjdGlvbiwgcHN0YXRlLAotCQkJCQkJICAgaXNTbGljZSwgaXNBc3NpZ25t ZW50KTsKKwkJCQkJCSAgIGlzQXNzaWdubWVudCk7CisKKwkvKgorCSAqIEVycm9yIG91dCwgaWYg ZGF0YXR5cGUgZmFpbGVkIHRvIGNvbnN1bWUgYW55IGluZGlyZWN0aW9uIGVsZW1lbnRzLgorCSAq LworCWlmIChsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24pID09IGluZGlyZWN0aW9uX2xlbmd0aCkK Kwl7CisJCU5vZGUJICAgKmluZCA9IGxpbml0aWFsKCppbmRpcmVjdGlvbik7CisKKwkJaWYgKG5v RXJyb3IpCisJCQlyZXR1cm4gTlVMTDsKKworCQlpZiAoSXNBKGluZCwgU3RyaW5nKSkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAor CQkJCQkgZXJybXNnKCJ0eXBlICVzIGRvZXMgbm90IHN1cHBvcnQgZG90IG5vdGF0aW9uIiwKKwkJ CQkJCQlmb3JtYXRfdHlwZV9iZShjb250YWluZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UgaWYg KElzQShpbmQsIEFfSW5kaWNlcykpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidHlwZSAlcyBkb2VzIG5v dCBzdXBwb3J0IGFycmF5IHN1YnNjcmlwdGluZyIsCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29u dGFpbmVyVHlwZSkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0 aW9uKGNvbnRhaW5lckJhc2UpKSkpOworCQllbHNlCisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBp bmRpcmVjdGlvbiBvcGVyYXRpb246ICVkIiwgbm9kZVRhZyhpbmQpKTsKKwl9CiAKIAkvKgogCSAq IFZlcmlmeSB3ZSBnb3QgYSB2YWxpZCB0eXBlICh0aGlzIGRlZmVuZHMsIGZvciBleGFtcGxlLCBh Z2FpbnN0IHNvbWVvbmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBhMDk3NzM2MjI5 YS4uYjg5NzM2ZmYxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNiw3ICs5 MzYsOCBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBlLAogCQkJCQkJCQkJCSAgY29udGFpbmVyVHlwTW9k LAogCQkJCQkJCQkJCSAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJICB0cnVlKTsKKwkJCQkJCQkJ CQkgIHRydWUsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAKIAl0eXBlTmVlZGVkID0gc2JzcmVmLT5y ZWZyZXN0eXBlOwogCXR5cG1vZE5lZWRlZCA9IHNic3JlZi0+cmVmdHlwbW9kOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2FycmF5c3Vicy5jCmluZGV4IDIzNGMyYzI3OGMxLi4zNzhiNmJmMTZjYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheXN1YnMuYwpAQCAtNTYsMTIgKzU2LDM4IEBAIHN0YXRpYyB2b2lkCiBhcnJh eV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJICBM aXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCSAg Ym9vbCBpc1NsaWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKIHsKIAlMaXN0CSAgICp1 cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdAkgICAqbG93ZXJJbmRleHByID0gTklMOwogCUxpc3RD ZWxsICAgKmlkeDsKKwlpbnQJCQluZGltOworCWJvb2wJCWlzU2xpY2UgPSBmYWxzZTsKKworCS8q CisJICogRGV0ZWN0IHdoZXRoZXIgYW55IG9mIHRoZSBpbmRpcmVjdGlvbiBpdGVtcyBhcmUgc2xp Y2Ugc3BlY2lmaWVycy4KKwkgKgorCSAqIEEgbGlzdCBjb250YWluaW5nIG9ubHkgc2ltcGxlIHN1 YnNjcmlwdHMgcmVmZXJzIHRvIGEgc2luZ2xlIGNvbnRhaW5lcgorCSAqIGVsZW1lbnQuICBJZiBh bnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRoZW4K KwkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ugb3Bl cmF0aW9uLgorCSAqLworCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCisJeworCQlOb2RlCSAg ICphaSA9IGxmaXJzdChpZHgpOworCisJCS8qCisJCSAqIFdlIHNob3VsZCBub3QgaW5zcGVjdCBz bGljZSBzcGVjaWZpZXJzIGJleW9uZCBhbiBpbmRpcmVjdGlvbiBub2RlCisJCSAqIHR5cGUgdGhh dCB3ZSBkb24ndCBzdXBwb3J0LgorCQkgKi8KKwkJaWYgKCFJc0EoYWksIEFfSW5kaWNlcykpCisJ CQlicmVhazsKKworCQlpZiAoY2FzdE5vZGUoQV9JbmRpY2VzLCBhaSktPmlzX3NsaWNlKQorCQl7 CisJCQlpc1NsaWNlID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQogCiAJLyoKIAkgKiBUcmFu c2Zvcm0gdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucywgYW5kIHNlcGFyYXRlIHVwcGVyIGFuZCBs b3dlcgpAQCAtNzMsOSArOTksMTQgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsK LQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJCUFfSW5k aWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJleHByOwogCisJCWlmICghSXNBKGxmaXJzdChpZHgp LCBBX0luZGljZXMpKQorCQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMs IGlkeCk7CisKIAkJaWYgKGlzU2xpY2UpCiAJCXsKIAkJCWlmIChhaS0+bGlkeCkKQEAgLTE0NSwx NCArMTc2LDE1IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpz YnNyZWYsCiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBsb3dlckluZGV4cHI7CiAKIAkvKiBW ZXJpZnkgc3Vic2NyaXB0IGxpc3QgbGVuZ3RocyBhcmUgd2l0aGluIGltcGxlbWVudGF0aW9uIGxp bWl0ICovCi0JaWYgKGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikgPiBNQVhESU0pCisJbmRpbSA9 IGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcik7CisJaWYgKG5kaW0gPiBNQVhESU0pCiAJCWVyZXBv cnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwK IAkJCQkgZXJybXNnKCJudW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoJWQpIGV4Y2VlZHMgdGhl IG1heGltdW0gYWxsb3dlZCAoJWQpIiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwciks IE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIgc2VwYXJhdGVs eSAqLwogCi0JKmluZGlyZWN0aW9uID0gTklMOworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRl X2ZpcnN0X24oKmluZGlyZWN0aW9uLCBuZGltKTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIHRoZSBy ZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEl0J3MgdGhlIHNhbWUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCA1ZWFkNjkzYTNiMi4uMmFhNDEwZjYwNWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAgLTQzLDcgKzQzLDYgQEAgc3RhdGljIHZv aWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJ CQkJCQkgIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCSAgUGFyc2VTdGF0ZSAqcHN0YXRlLAot CQkJCQkJICBib29sIGlzU2xpY2UsCiAJCQkJCQkgIGJvb2wgaXNBc3NpZ25tZW50KQogewogCUxp c3QJICAgKnVwcGVySW5kZXhwciA9IE5JTDsKQEAgLTU1LDEwICs1NCwxNSBAQCBqc29uYl9zdWJz Y3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqLwogCWZvcmVhY2go aWR4LCAqaW5kaXJlY3Rpb24pCiAJewotCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFf SW5kaWNlcywgaWR4KTsKKwkJQV9JbmRpY2VzICAqYWk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CiAK LQkJaWYgKGlzU2xpY2UpCisJCWlmICghSXNBKGxmaXJzdChpZHgpLCBBX0luZGljZXMpKQorCQkJ YnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisKKwkJaWYgKGFp LT5pc19zbGljZSkKIAkJewogCQkJTm9kZQkgICAqZXhwciA9IGFpLT51aWR4ID8gYWktPnVpZHgg OiBhaS0+bGlkeDsKIApAQCAtMTQyLDcgKzE0Niw3IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zv cm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkgKiBTbGljZSB3aXRoIG9taXR0ZWQgdXBw ZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKIAkJCSAqIGVycm9yZWQg b3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGluIGNhc2UuCiAJCQkg Ki8KLQkJCUFzc2VydChpc1NsaWNlICYmIGFpLT5pc19zbGljZSk7CisJCQlBc3NlcnQoYWktPmlz X3NsaWNlKTsKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAogCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3Vw cG9ydCBzbGljZXMiKSwKQEAgLTE2MCw3ICsxNjQsOSBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNm b3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05C T0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0gLTE7CiAKLQkqaW5kaXJlY3Rpb24gPSBOSUw7CisJ LyogUmVtb3ZlIHByb2Nlc3NlZCBlbGVtZW50cyAqLworCWlmICh1cHBlckluZGV4cHIpCisJCSpp bmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBsaXN0X2xlbmd0 aCh1cHBlckluZGV4cHIpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3N1YnNjcmlwdGluZy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKaW5kZXgg ZGY5ODhhODVmYWQuLjE0ZWY0MTRhMTgwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9z dWJzY3JpcHRpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaApAQCAt NjgsNyArNjgsNyBAQCBzdHJ1Y3QgU3Vic2NyaXB0RXhlY1N0ZXBzOwogICogc2FtZSBsZW5ndGgg YXMgcmVmdXBwZXJpbmRleHByIGZvciBhIHNsaWNlIG9wZXJhdGlvbi4gIEluc2VydCBOVUxMcwog ICogKHRoYXQgaXMsIGFuIGVtcHR5IHBhcnNlIHRyZWUsIG5vdCBhIG51bGwgQ29uc3Qgbm9kZSkg Zm9yIGFueSBvbWl0dGVkCiAgKiBzdWJzY3JpcHRzIGluIGEgc2xpY2Ugb3BlcmF0aW9uLiAgKE9m IGNvdXJzZSwgaWYgdGhlIHRyYW5zZm9ybSBtZXRob2QKLSAqIGRvZXMgbm90IGNhcmUgdG8gc3Vw cG9ydCBzbGljaW5nLCBpdCBjYW4ganVzdCB0aHJvdyBhbiBlcnJvciBpZiBpc1NsaWNlLikKKyAq IGRvZXMgbm90IGNhcmUgdG8gc3VwcG9ydCBzbGljaW5nLCBpdCBjYW4ganVzdCB0aHJvdyBhbiBl cnJvci4pCiAgKiBTZWUgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgpIGZvciBzYW1wbGUgY29k ZS4KICAqCiAgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCByZWNlaXZlcyBhIHBvaW50ZXIgdG8gYSBs aXN0IG9mIHJhdyBpbmRpcmVjdGlvbnMuCkBAIC0xMDAsNyArMTAwLDYgQEAgc3RydWN0IFN1YnNj cmlwdEV4ZWNTdGVwczsKIHR5cGVkZWYgdm9pZCAoKlN1YnNjcmlwdFRyYW5zZm9ybSkgKFN1YnNj cmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJCQkJTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJ CQkJc3RydWN0IFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCQkJCWJvb2wgaXNTbGljZSwKIAkJ CQkJCQkJCWJvb2wgaXNBc3NpZ25tZW50KTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmlu ZGV4IDU4YTRiOWRmMTU3Li41Y2MzY2U1OGMzMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBA IC0zNjIsNyArMzYyLDggQEAgZXh0ZXJuIFN1YnNjcmlwdGluZ1JlZiAqdHJhbnNmb3JtQ29udGFp bmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJIE9pZCBjb250 YWluZXJUeXBlLAogCQkJCQkJCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCiAJCQkJCQkJ CQkJCQkJIExpc3QgKippbmRpcmVjdGlvbiwKLQkJCQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1l bnQpOworCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCwKKwkJCQkJCQkJCQkJCQkgYm9v bCBub0Vycm9yKTsKIGV4dGVybiBDb25zdCAqbWFrZV9jb25zdChQYXJzZVN0YXRlICpwc3RhdGUs IEFfQ29uc3QgKmFjb25zdCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9OT0RFX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dAppbmRleCBiODE1NDczZjQxNC4uNzhkZDllNzFi ZjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FycmF5cy5vdXQKQEAgLTE3ODIsMTcgKzE3ODIs MTcgQEAgU0VMRUNUIG1heChmMSksIG1pbihmMSksIG1heChmMiksIG1pbihmMiksIG1heChmMyks IG1pbihmMykgRlJPTSBhcnJhZ2d0ZXN0OwogKDEgcm93KQogCiAtLSBBIGZldyBzaW1wbGUgdGVz dHMgZm9yIGFycmF5cyBvZiBjb21wb3NpdGUgdHlwZXMKLWNyZWF0ZSB0eXBlIGNvbXB0eXBlIGFz IChmMSBpbnQsIGYyIHRleHQpOworY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKGYxIGludCwgZjIg dGV4dCwgZjMgaW50W10pOwogY3JlYXRlIHRhYmxlIGNvbXB0YWJsZSAoYzEgY29tcHR5cGUsIGMy IGNvbXB0eXBlW10pOwogLS0gWFhYIHdvdWxkIGxpa2UgdG8gbm90IGhhdmUgdG8gc3BlY2lmeSBy b3coKSBjb25zdHJ1Y3QgdHlwZXMgaGVyZSAuLi4KIGluc2VydCBpbnRvIGNvbXB0YWJsZQotICB2 YWx1ZXMgKHJvdygxLCdmb28nKSwgYXJyYXlbcm93KDIsJ2JhcicpOjpjb21wdHlwZSwgcm93KDMs J2JheicpOjpjb21wdHlwZV0pOworICB2YWx1ZXMgKHJvdygxLCdmb28nLGFycmF5WzEwLDIwXSks IGFycmF5W3JvdygyLCdiYXInLGFycmF5WzMwLDQwXSk6OmNvbXB0eXBlLCByb3coMywnYmF6Jyxh cnJheVs1MCw2MF0pOjpjb21wdHlwZV0pOwogLS0gY2hlY2sgdGhhdCBpbXBsaWNpdGx5IG5hbWVk IGFycmF5IHR5cGUgX2NvbXB0eXBlIGlzbid0IGEgcHJvYmxlbQogY3JlYXRlIHR5cGUgX2NvbXB0 eXBlIGFzIGVudW0oJ2Zvb2V5Jyk7CiBzZWxlY3QgKiBmcm9tIGNvbXB0YWJsZTsKLSAgIGMxICAg IHwgICAgICAgICAgYzIgICAgICAgICAgIAotLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0gKDEsZm9vKSB8IHsiKDIsYmFyKSIsIigzLGJheikifQorICAgICAgICBjMSAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgYzIgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICgxLGZvbywiezEwLDIwfSIpIHwgeyIoMixiYXIsXCJ7MzAsNDB9XCIpIiwiKDMsYmF6 LFwiezUwLDYwfVwiKSJ9CiAoMSByb3cpCiAKIHNlbGVjdCBjMlsyXS5mMiBmcm9tIGNvbXB0YWJs ZTsKQEAgLTE4MDEsNiArMTgwMSwyMiBAQCBzZWxlY3QgYzJbMl0uZjIgZnJvbSBjb21wdGFibGU7 CiAgYmF6CiAoMSByb3cpCiAKK3NlbGVjdCBjMlsyXS5mMyBmcm9tIGNvbXB0YWJsZTsKKyAgIGYz ICAgIAorLS0tLS0tLS0tCisgezUwLDYwfQorKDEgcm93KQorCitzZWxlY3QgYzJbMl0uZjNbMToy XSBmcm9tIGNvbXB0YWJsZTsKKyAgIGYzICAgIAorLS0tLS0tLS0tCisgezUwLDYwfQorKDEgcm93 KQorCitzZWxlY3QgYzJbMToyXS5mM1sxOjJdIGZyb20gY29tcHRhYmxlOworRVJST1I6ICBjb2x1 bW4gbm90YXRpb24gLmYzIGFwcGxpZWQgdG8gdHlwZSBjb21wdHlwZVtdLCB3aGljaCBpcyBub3Qg YSBjb21wb3NpdGUgdHlwZQorTElORSAxOiBzZWxlY3QgYzJbMToyXS5mM1sxOjJdIGZyb20gY29t cHRhYmxlOworICAgICAgICAgICAgICAgXgogZHJvcCB0eXBlIF9jb21wdHlwZTsKIGRyb3AgdGFi bGUgY29tcHRhYmxlOwogZHJvcCB0eXBlIGNvbXB0eXBlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvYXJyYXlzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FycmF5cy5zcWwK aW5kZXggNDdkNjJjMWQzOGQuLjQ1MDM4OTgzMWEwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9hcnJheXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FycmF5cy5zcWwK QEAgLTU1NSwxOSArNTU1LDIyIEBAIFNFTEVDVCBtYXgoZjEpLCBtaW4oZjEpLCBtYXgoZjIpLCBt aW4oZjIpLCBtYXgoZjMpLCBtaW4oZjMpIEZST00gYXJyYWdndGVzdDsKIAogLS0gQSBmZXcgc2lt cGxlIHRlc3RzIGZvciBhcnJheXMgb2YgY29tcG9zaXRlIHR5cGVzCiAKLWNyZWF0ZSB0eXBlIGNv bXB0eXBlIGFzIChmMSBpbnQsIGYyIHRleHQpOworY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKGYx IGludCwgZjIgdGV4dCwgZjMgaW50W10pOwogCiBjcmVhdGUgdGFibGUgY29tcHRhYmxlIChjMSBj b21wdHlwZSwgYzIgY29tcHR5cGVbXSk7CiAKIC0tIFhYWCB3b3VsZCBsaWtlIHRvIG5vdCBoYXZl IHRvIHNwZWNpZnkgcm93KCkgY29uc3RydWN0IHR5cGVzIGhlcmUgLi4uCiBpbnNlcnQgaW50byBj b21wdGFibGUKLSAgdmFsdWVzIChyb3coMSwnZm9vJyksIGFycmF5W3JvdygyLCdiYXInKTo6Y29t cHR5cGUsIHJvdygzLCdiYXonKTo6Y29tcHR5cGVdKTsKKyAgdmFsdWVzIChyb3coMSwnZm9vJyxh cnJheVsxMCwyMF0pLCBhcnJheVtyb3coMiwnYmFyJyxhcnJheVszMCw0MF0pOjpjb21wdHlwZSwg cm93KDMsJ2JheicsYXJyYXlbNTAsNjBdKTo6Y29tcHR5cGVdKTsKIAogLS0gY2hlY2sgdGhhdCBp bXBsaWNpdGx5IG5hbWVkIGFycmF5IHR5cGUgX2NvbXB0eXBlIGlzbid0IGEgcHJvYmxlbQogY3Jl YXRlIHR5cGUgX2NvbXB0eXBlIGFzIGVudW0oJ2Zvb2V5Jyk7CiAKIHNlbGVjdCAqIGZyb20gY29t cHRhYmxlOwogc2VsZWN0IGMyWzJdLmYyIGZyb20gY29tcHRhYmxlOworc2VsZWN0IGMyWzJdLmYz IGZyb20gY29tcHRhYmxlOworc2VsZWN0IGMyWzJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7Citz ZWxlY3QgYzJbMToyXS5mM1sxOjJdIGZyb20gY29tcHRhYmxlOwogCiBkcm9wIHR5cGUgX2NvbXB0 eXBlOwogZHJvcCB0YWJsZSBjb21wdGFibGU7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000003b99b4063e7b2e10--