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.96) (envelope-from ) id 1vxAuS-001XsV-16 for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 21:34:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vxAuP-0032Xv-0d for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 21:34:33 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vxAuO-0032Xm-0n for pgsql-hackers@lists.postgresql.org; Mon, 02 Mar 2026 21:34:33 +0000 Received: from mail-dy1-x1330.google.com ([2607:f8b0:4864:20::1330]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vxAuJ-000000004pQ-1QFQ for pgsql-hackers@postgresql.org; Mon, 02 Mar 2026 21:34:31 +0000 Received: by mail-dy1-x1330.google.com with SMTP id 5a478bee46e88-2ba895adfeaso4297914eec.0 for ; Mon, 02 Mar 2026 13:34:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1772487266; x=1773092066; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=z41Vs4cf16nBuEglrzz8J01oexrjx4nYyOwB7sqbXGo=; b=pfsvHuZus7Z4JKA+T/PgZ9SPQpZC8FTGuvTupff2L+x8trcanDS+2qTIi5ddrGU+wn N1JUUC5quWHIVEQLKEx55KnwozBNEuBzVAfcnyaUc2O5BAEuEMmQX7IY5M8ajOrXeglj iIfwjaOiKL3zuVd1C9Ku49HS76v7WbTWGZ+H5CB+Ch5d5Vl28toFhzQOFR3Kdlj7D4/7 cYMC55OZfXVyLcb6lb3tTzfQL3benviE/JcMeO57orKEwAevGjl+5al0cb2qK8nCxy60 YbmM4IBaZgcd06xk/VNOqFOQbJzK7tNnZhpoVFJ1dvWEhmoaRUMWpMNSgCOl0Yyqu7kV RtLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772487266; x=1773092066; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=z41Vs4cf16nBuEglrzz8J01oexrjx4nYyOwB7sqbXGo=; b=QMQdgVvyTc+bm/TxBlWlmAePO8rIH2Df/x0+y04d8JRiC8cmlGGieKiUFBEY4l8O15 TBwMJKG9BiUlFX2RH0DThL4qkhBMWuepJBsqiVSCTR5gZuhG/nt8QWNo37u1g9eF18wm Y9qAEuvxagU9xo6g0AX2+LoLGcQfKB5A8C6GtfWW5dtsJzG1Y1xocG09O9a1dQhNd8VY 6Gl6RHIvxGFuSn0K7Y/DEoO4Mkzu6mkVimnZFQwjo6mAlA6eI8uoO9mT21RpxbgAvz8E ASDrAC5xIpjfGVYA/33ooLUBPfOX76jv5rl/PO1EhNOywM6CZENeVtHMM5o0K3EcSaa4 jQ2A== X-Forwarded-Encrypted: i=1; AJvYcCXQ8lFFxdJNt0rBqjQSTUMsFLuGCDH2Qhx+X6Q+nmLwrmVd1QTMXM17u7Re5zNYRQEmInnXRfJa/CPVU0i2@postgresql.org X-Gm-Message-State: AOJu0Ywl7vm3D2ciYPVRmLQI0+lGlhtG/Tk1qb8325yMJXShQGw7ssJD pi9bA4VT1s/bIUYhdMbGQWxn50Iv9SYva8gGB3UlTG27PDBidpwM4/TGtXEYa8dznw== X-Gm-Gg: ATEYQzzXh6Icw9hT3IQLGSlcuAHqiisU+x2d3RsPtgaLWVs8VmkIbHOPnB6/t1ASZGY P1ekpFlCZnys57ulS/7ZeoIFLdNlsuTfQ3rntw4iJOZdUZ5IPYxz59B+mLS+hv81FIC791eDG4s ITTZoyYlaFOul5pXKh9HCPrvRSaYDefKz0oLN5v+A+2R1m/9+VmX3aM87LEZiksHkC7F6sVWtZ9 zqgLLBTaBZbFTjYXnZYWZ3E/IE9QV6lfy37NlxQagEosg5S1wVV4KiWm8pBNwso2RhVT09qzf0m YcK/w4hGrCsIf8vdaP26eVBVkTaRPcIcrl+Ge3UMeYkr9xnZJIdC/H1h+fciJYY42I7W+K21xO0 NWKHa9sUEFToNwwXypIcvfOj0wdeklJwXV6ltk9RoLJcE7O/9bH4GPC/hhaCFk6oDYf19IoJJ+T +gw82OzcFF5J3Dt+mHkgIMwrpJZ6r1m7QzjLUmv4oD35/x8gsmgSI= X-Received: by 2002:a05:7300:3b24:b0:2ae:5e93:b69 with SMTP id 5a478bee46e88-2bde1f74d58mr5240924eec.29.1772487266034; Mon, 02 Mar 2026 13:34:26 -0800 (PST) Received: from jeff-laptop.lan (c-24-7-19-3.hsd1.ca.comcast.net. [24.7.19.3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be1731b6b6sm3315987eec.5.2026.03.02.13.34.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Mar 2026 13:34:25 -0800 (PST) Message-ID: Subject: Re: [19] CREATE SUBSCRIPTION ... SERVER From: Jeff Davis To: Masahiko Sawada Cc: Shlok Kyal , Ashutosh Bapat , Bharath Rupireddy , Joe Conway , pgsql-hackers@postgresql.org Date: Mon, 02 Mar 2026 13:34:23 -0800 In-Reply-To: <60ff024706fe1beab62a89ac07eb6a721856de2e.camel@j-davis.com> References: <149ff9264db27cdf724b65709fbbaee4bf316835.camel@j-davis.com> <830a2bc6cbbb2e6e01c6c0d9f31f320822e10603.camel@j-davis.com> <433d0845248e86c0317d9d396926182cfe157340.camel@j-davis.com> <05ae37abb207cd6bf6b126780024692d91402b0b.camel@j-davis.com> <93392ffa941ab0d436e19e0ab5d04d0e42c02d3f.camel@j-davis.com> <26be917cb07b6aa3ef5dd15f6b59d1b375ece6e8.camel@j-davis.com> <55201bd916e748acfc754c8f95880dae8e4e5ed0.camel@j-davis.com> <2a89b14a2b1622bffb8b137ca1f9ab7866f2d2b9.camel@j-davis.com> <61831790a0a937038f78ce09f8dd4cef7de7456a.camel@j-davis.com> <0910b47040406c1d24ec0150dafb5bae6b910ed7.camel@j-davis.com> <7338f22c4534322a08ab6ce9f879e2e308eb5e5d.camel@j-davis.com> <34fd5885b8245d1014f4426ea22af61229d42e3e.camel@j-davis.com> <7a5df376fffb273430aec9e89f88c31d52dcf295.camel@j-davis.com> <5dfe845221db2e7d38fc7c2a18a4ba5ea29cdfc0.camel@j-davis.com> <60ff024706fe1beab62a89ac07eb6a721856de2e.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-CfJat9Udqck+gWSsjhHG" User-Agent: Evolution 3.52.3-0ubuntu1.1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-CfJat9Udqck+gWSsjhHG Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2026-02-26 at 11:12 -0800, Jeff Davis wrote: > On Wed, 2026-02-04 at 13:53 +0900, Masahiko Sawada wrote: > > I've reviewed the latest patch set. I understand the motivation > > behind > > this proposal and find it useful. >=20 > Thank you, that's important feedback. Attached v18: * rebase * Changed ForeignServerConnectionString() to use a local variable rather than a static. It's not very performance-sensitive, so it's OK to create a memory context for each invocation, which will be deleted. I'm not aware of an actual problem in the previous code, but it seemed a bit less safe. I plan to commit the main patch (v18-0001) soon, after rechecking some details (like the postgres_fdw upgrade). v18-0002 could use some review first.=20 Regards, Jeff Davis --=-CfJat9Udqck+gWSsjhHG Content-Disposition: attachment; filename="v18-0001-CREATE-SUBSCRIPTION-.-SERVER.patch" Content-Type: text/x-patch; name="v18-0001-CREATE-SUBSCRIPTION-.-SERVER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjOTRmM2UzMWFlYjI2NjMzNDlhMWE1YWIxMTM2NDEwZDM4ZTMxMzFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDIgSmFuIDIwMjQgMTM6NDI6NDggLTA4MDAKU3ViamVjdDogW1BBVENIIHYxOCAxLzJdIENS RUFURSBTVUJTQ1JJUFRJT04gLi4uIFNFUlZFUi4KCi0tLSBDQVRWRVJTSU9OIEJVTVAgLS0tCgpB bGxvdyBzcGVjaWZ5aW5nIGEgZm9yZWlnbiBzZXJ2ZXIgZm9yIENSRUFURSBTVUJTQ1JJUFRJT04s IHJhdGhlciB0aGFuCmEgcmF3IGNvbm5lY3Rpb24gc3RyaW5nIHdpdGggQ09OTkVDVElPTi4KClVz aW5nIGEgZm9yZWlnbiBzZXJ2ZXIgYXMgYSBsYXllciBvZiBpbmRpcmVjdGlvbiBpbXByb3ZlcyBt YW5hZ2VtZW50Cm9mIG11bHRpcGxlIHN1YnNjcmlwdGlvbnMgdG8gdGhlIHNhbWUgc2VydmVyLiBJ dCBhbHNvIHByb3ZpZGVzCmludGVncmF0aW9uIHdpdGggdXNlciBtYXBwaW5ncyBpbiBjYXNlIGRp ZmZlcmVudCBzdWJzY3JpcHRpb25zIGhhdmUKZGlmZmVyZW50IG93bmVycyBvciBhIHN1YnNjcmlw dGlvbiBjaGFuZ2VzIG93bmVycy4KClJldmlld2VkLWJ5OiBBc2h1dG9zaCBCYXBhdCA8YXNodXRv c2guYmFwYXQub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFNobG9rIEt5YWwgPHNobG9rLmt5 YWwub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hc2FoaWtvIFNhd2FkYSA8c2F3YWRhLm1z aGtAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzYxODMxNzkwYTBh OTM3MDM4Zjc4Y2UwOWY4ZGQ0Y2VmN2RlNzQ1NmEuY2FtZWxAai1kYXZpcy5jb20KLS0tCiBjb250 cmliL3Bvc3RncmVzX2Zkdy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGNvbnRy aWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYyAgICAgICAgICAgICB8IDI5OSArKysrKysrKysr Ky0tLS0tLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8 ICAgOCArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAg IDIgKwogLi4uL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMi0tMS4zLnNxbCAgIHwgIDEy ICsKIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jb250cm9sICAgICB8ICAgMiAr LQogY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgICAgIHwgICA3ICsK IGNvbnRyaWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlwdGlvbi5wbCAgICB8ICA3MSArKysr KwogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgICA0ICst CiBkb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwgICAgICAgICAgICAgICAgfCAgMjYgKysK IC4uLi9zZ21sL3JlZi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sICB8ICAyMCArKwog ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgIDE4ICstCiAu Li4vc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fZGF0YV93cmFwcGVyLnNnbWwgfCAgMjAgKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NlcnZlci5zZ21sICAgICAgICAgICB8ICAgNyArCiBkb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCAgICAgfCAgMTEgKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICAgICB8ICAzOCArKy0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2ZvcmVpZ25jbWRzLmMgICAgICAgICAgICB8ICA1OCArKystCiBzcmMv YmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgICAgICAgfCAxNjggKysrKysrKysr LQogc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMgICAgICAgICAgICAgICAgIHwgIDg2ICsr KysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjIg KysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAxNiAr LQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICsr LQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQog c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDExICstCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyLmggfCAgIDMgKwogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAgICAgIHwgICA3ICstCiBzcmMv aW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgICAgfCAxOTkgKysrKysrLS0tLS0tCiBz cmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYyAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgICAgIHwgIDI2ICsrCiAzMyBm aWxlcyBjaGFuZ2VkLCA5NTggaW5zZXJ0aW9ucygrKSwgMjQ1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMu c3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wb3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2Ny aXB0aW9uLnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvTWFrZWZpbGUgYi9j b250cmliL3Bvc3RncmVzX2Zkdy9NYWtlZmlsZQppbmRleCA4ZWFmNGQyNjNiNi4uYjhjNzhiNTg4 MDQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlCisrKyBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlCkBAIC0xNCw3ICsxNCw3IEBAIFBHX0NQUEZMQUdTID0g LUkkKGxpYnBxX3NyY2RpcikKIFNITElCX0xJTktfSU5URVJOQUwgPSAkKGxpYnBxKQogCiBFWFRF TlNJT04gPSBwb3N0Z3Jlc19mZHcKLURBVEEgPSBwb3N0Z3Jlc19mZHctLTEuMC5zcWwgcG9zdGdy ZXNfZmR3LS0xLjAtLTEuMS5zcWwgcG9zdGdyZXNfZmR3LS0xLjEtLTEuMi5zcWwKK0RBVEEgPSBw b3N0Z3Jlc19mZHctLTEuMC5zcWwgcG9zdGdyZXNfZmR3LS0xLjAtLTEuMS5zcWwgcG9zdGdyZXNf ZmR3LS0xLjEtLTEuMi5zcWwgcG9zdGdyZXNfZmR3LS0xLjItLTEuMy5zcWwKIAogUkVHUkVTUyA9 IHBvc3RncmVzX2ZkdyBxdWVyeV9jYW5jZWwKIElTT0xBVElPTiA9IGV2YWxfcGxhbl9xdWFsCmRp ZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9jb25uZWN0aW9uLmMKaW5kZXggMzExOTM2NDA2ZjIuLjdlMmI4MjJkMTYxIDEw MDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMKKysrIGIvY29udHJp Yi9wb3N0Z3Jlc19mZHcvY29ubmVjdGlvbi5jCkBAIC0xMzIsNiArMTMyLDcgQEAgUEdfRlVOQ1RJ T05fSU5GT19WMShwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zKTsKIFBHX0ZVTkNUSU9OX0lO Rk9fVjEocG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9uc18xXzIpOwogUEdfRlVOQ1RJT05fSU5G T19WMShwb3N0Z3Jlc19mZHdfZGlzY29ubmVjdCk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHBvc3Rn cmVzX2Zkd19kaXNjb25uZWN0X2FsbCk7CitQR19GVU5DVElPTl9JTkZPX1YxKHBvc3RncmVzX2Zk d19jb25uZWN0aW9uKTsKIAogLyogcHJvdG90eXBlcyBvZiBwcml2YXRlIGZ1bmN0aW9ucyAqLwog c3RhdGljIHZvaWQgbWFrZV9uZXdfY29ubmVjdGlvbihDb25uQ2FjaGVFbnRyeSAqZW50cnksIFVz ZXJNYXBwaW5nICp1c2VyKTsKQEAgLTQ3NywxNDEgKzQ3OCwxNTkgQEAgcGdmZHdfc2VjdXJpdHlf Y2hlY2soY29uc3QgY2hhciAqKmtleXdvcmRzLCBjb25zdCBjaGFyICoqdmFsdWVzLCBVc2VyTWFw cGluZyAqdXMKIH0KIAogLyoKLSAqIENvbm5lY3QgdG8gcmVtb3RlIHNlcnZlciB1c2luZyBzcGVj aWZpZWQgc2VydmVyIGFuZCB1c2VyIG1hcHBpbmcgcHJvcGVydGllcy4KKyAqIENvbnN0cnVjdCBj b25uZWN0aW9uIHBhcmFtcyBmcm9tIGdlbmVyaWMgb3B0aW9ucyBvZiBGb3JlaWduU2VydmVyIGFu ZAorICogVXNlck1hcHBpbmcuICAoU29tZSBvZiB0aGVtIG1pZ2h0IG5vdCBiZSBsaWJwcSBvcHRp b25zLCBpbiB3aGljaCBjYXNlIHdlJ2xsCisgKiBqdXN0IHdhc3RlIGEgZmV3IGFycmF5IHNsb3Rz LikKICAqLwotc3RhdGljIFBHY29ubiAqCi1jb25uZWN0X3BnX3NlcnZlcihGb3JlaWduU2VydmVy ICpzZXJ2ZXIsIFVzZXJNYXBwaW5nICp1c2VyKQorc3RhdGljIHZvaWQKK2NvbnN0cnVjdF9jb25u ZWN0aW9uX3BhcmFtcyhGb3JlaWduU2VydmVyICpzZXJ2ZXIsIFVzZXJNYXBwaW5nICp1c2VyLAor CQkJCQkJCWNvbnN0IGNoYXIgKioqcF9rZXl3b3JkcywgY29uc3QgY2hhciAqKipwX3ZhbHVlcywK KwkJCQkJCQljaGFyICoqcF9hcHBuYW1lKQogewotCVBHY29ubgkgICAqdm9sYXRpbGUgY29ubiA9 IE5VTEw7CisJY29uc3QgY2hhciAqKmtleXdvcmRzOworCWNvbnN0IGNoYXIgKip2YWx1ZXM7CisJ Y2hhcgkgICAqYXBwbmFtZSA9IE5VTEw7CisJaW50CQkJbjsKIAogCS8qCi0JICogVXNlIFBHX1RS WSBibG9jayB0byBlbnN1cmUgY2xvc2luZyBjb25uZWN0aW9uIG9uIGVycm9yLgorCSAqIEFkZCA0 IGV4dHJhIHNsb3RzIGZvciBhcHBsaWNhdGlvbl9uYW1lLCBmYWxsYmFja19hcHBsaWNhdGlvbl9u YW1lLAorCSAqIGNsaWVudF9lbmNvZGluZywgZW5kIG1hcmtlciwgYW5kIDMgZXh0cmEgc2xvdHMg Zm9yIHNjcmFtIGtleXMgYW5kCisJICogcmVxdWlyZWQgc2NyYW0gcGFzcy10aHJvdWdoIG9wdGlv bnMuCiAJICovCi0JUEdfVFJZKCk7Ci0JewotCQljb25zdCBjaGFyICoqa2V5d29yZHM7Ci0JCWNv bnN0IGNoYXIgKip2YWx1ZXM7Ci0JCWNoYXIJICAgKmFwcG5hbWUgPSBOVUxMOwotCQlpbnQJCQlu OworCW4gPSBsaXN0X2xlbmd0aChzZXJ2ZXItPm9wdGlvbnMpICsgbGlzdF9sZW5ndGgodXNlci0+ b3B0aW9ucykgKyA0ICsgMzsKKwlrZXl3b3JkcyA9IChjb25zdCBjaGFyICoqKSBwYWxsb2MobiAq IHNpemVvZihjaGFyICopKTsKKwl2YWx1ZXMgPSAoY29uc3QgY2hhciAqKikgcGFsbG9jKG4gKiBz aXplb2YoY2hhciAqKSk7CiAKLQkJLyoKLQkJICogQ29uc3RydWN0IGNvbm5lY3Rpb24gcGFyYW1z IGZyb20gZ2VuZXJpYyBvcHRpb25zIG9mIEZvcmVpZ25TZXJ2ZXIKLQkJICogYW5kIFVzZXJNYXBw aW5nLiAgKFNvbWUgb2YgdGhlbSBtaWdodCBub3QgYmUgbGlicHEgb3B0aW9ucywgaW4KLQkJICog d2hpY2ggY2FzZSB3ZSdsbCBqdXN0IHdhc3RlIGEgZmV3IGFycmF5IHNsb3RzLikgIEFkZCA0IGV4 dHJhIHNsb3RzCi0JCSAqIGZvciBhcHBsaWNhdGlvbl9uYW1lLCBmYWxsYmFja19hcHBsaWNhdGlv bl9uYW1lLCBjbGllbnRfZW5jb2RpbmcsCi0JCSAqIGVuZCBtYXJrZXIsIGFuZCAzIGV4dHJhIHNs b3RzIGZvciBzY3JhbSBrZXlzIGFuZCByZXF1aXJlZCBzY3JhbQotCQkgKiBwYXNzLXRocm91Z2gg b3B0aW9ucy4KLQkJICovCi0JCW4gPSBsaXN0X2xlbmd0aChzZXJ2ZXItPm9wdGlvbnMpICsgbGlz dF9sZW5ndGgodXNlci0+b3B0aW9ucykgKyA0ICsgMzsKLQkJa2V5d29yZHMgPSAoY29uc3QgY2hh ciAqKikgcGFsbG9jKG4gKiBzaXplb2YoY2hhciAqKSk7Ci0JCXZhbHVlcyA9IChjb25zdCBjaGFy ICoqKSBwYWxsb2MobiAqIHNpemVvZihjaGFyICopKTsKKwluID0gMDsKKwluICs9IEV4dHJhY3RD b25uZWN0aW9uT3B0aW9ucyhzZXJ2ZXItPm9wdGlvbnMsCisJCQkJCQkJCSAga2V5d29yZHMgKyBu LCB2YWx1ZXMgKyBuKTsKKwluICs9IEV4dHJhY3RDb25uZWN0aW9uT3B0aW9ucyh1c2VyLT5vcHRp b25zLAorCQkJCQkJCQkgIGtleXdvcmRzICsgbiwgdmFsdWVzICsgbik7CiAKLQkJbiA9IDA7Ci0J CW4gKz0gRXh0cmFjdENvbm5lY3Rpb25PcHRpb25zKHNlcnZlci0+b3B0aW9ucywKLQkJCQkJCQkJ CSAga2V5d29yZHMgKyBuLCB2YWx1ZXMgKyBuKTsKLQkJbiArPSBFeHRyYWN0Q29ubmVjdGlvbk9w dGlvbnModXNlci0+b3B0aW9ucywKLQkJCQkJCQkJCSAga2V5d29yZHMgKyBuLCB2YWx1ZXMgKyBu KTsKLQotCQkvKgotCQkgKiBVc2UgcGdmZHdfYXBwbGljYXRpb25fbmFtZSBhcyBhcHBsaWNhdGlv bl9uYW1lIGlmIHNldC4KLQkJICoKLQkJICogUFFjb25uZWN0ZGJQYXJhbXMoKSBwcm9jZXNzZXMg dGhlIHBhcmFtZXRlciBhcnJheXMgZnJvbSBzdGFydCB0bwotCQkgKiBlbmQuIElmIGFueSBrZXkg d29yZCBpcyByZXBlYXRlZCwgdGhlIGxhc3QgdmFsdWUgaXMgdXNlZC4gVGhlcmVmb3JlCi0JCSAq IG5vdGUgdGhhdCBwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lIG11c3QgYmUgYWRkZWQgdG8gdGhlIGFy cmF5cyBhZnRlcgotCQkgKiBvcHRpb25zIG9mIEZvcmVpZ25TZXJ2ZXIgYXJlLCBzbyB0aGF0IGl0 IGNhbiBvdmVycmlkZQotCQkgKiBhcHBsaWNhdGlvbl9uYW1lIHNldCBpbiBGb3JlaWduU2VydmVy LgotCQkgKi8KLQkJaWYgKHBnZmR3X2FwcGxpY2F0aW9uX25hbWUgJiYgKnBnZmR3X2FwcGxpY2F0 aW9uX25hbWUgIT0gJ1wwJykKLQkJewotCQkJa2V5d29yZHNbbl0gPSAiYXBwbGljYXRpb25fbmFt ZSI7Ci0JCQl2YWx1ZXNbbl0gPSBwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lOwotCQkJbisrOwotCQl9 CisJLyoKKwkgKiBVc2UgcGdmZHdfYXBwbGljYXRpb25fbmFtZSBhcyBhcHBsaWNhdGlvbl9uYW1l IGlmIHNldC4KKwkgKgorCSAqIFBRY29ubmVjdGRiUGFyYW1zKCkgcHJvY2Vzc2VzIHRoZSBwYXJh bWV0ZXIgYXJyYXlzIGZyb20gc3RhcnQgdG8gZW5kLgorCSAqIElmIGFueSBrZXkgd29yZCBpcyBy ZXBlYXRlZCwgdGhlIGxhc3QgdmFsdWUgaXMgdXNlZC4gVGhlcmVmb3JlIG5vdGUKKwkgKiB0aGF0 IHBnZmR3X2FwcGxpY2F0aW9uX25hbWUgbXVzdCBiZSBhZGRlZCB0byB0aGUgYXJyYXlzIGFmdGVy IG9wdGlvbnMKKwkgKiBvZiBGb3JlaWduU2VydmVyIGFyZSwgc28gdGhhdCBpdCBjYW4gb3ZlcnJp ZGUgYXBwbGljYXRpb25fbmFtZSBzZXQgaW4KKwkgKiBGb3JlaWduU2VydmVyLgorCSAqLworCWlm IChwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lICYmICpwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lICE9ICdc MCcpCisJeworCQlrZXl3b3Jkc1tuXSA9ICJhcHBsaWNhdGlvbl9uYW1lIjsKKwkJdmFsdWVzW25d ID0gcGdmZHdfYXBwbGljYXRpb25fbmFtZTsKKwkJbisrOworCX0KIAotCQkvKgotCQkgKiBTZWFy Y2ggdGhlIHBhcmFtZXRlciBhcnJheXMgdG8gZmluZCBhcHBsaWNhdGlvbl9uYW1lIHNldHRpbmcs IGFuZAotCQkgKiByZXBsYWNlIGVzY2FwZSBzZXF1ZW5jZXMgaW4gaXQgd2l0aCBzdGF0dXMgaW5m b3JtYXRpb24gaWYgZm91bmQuCi0JCSAqIFRoZSBhcnJheXMgYXJlIHNlYXJjaGVkIGJhY2t3YXJk cyBiZWNhdXNlIHRoZSBsYXN0IHZhbHVlIGlzIHVzZWQgaWYKLQkJICogYXBwbGljYXRpb25fbmFt ZSBpcyByZXBlYXRlZGx5IHNldC4KLQkJICovCi0JCWZvciAoaW50IGkgPSBuIC0gMTsgaSA+PSAw OyBpLS0pCisJLyoKKwkgKiBTZWFyY2ggdGhlIHBhcmFtZXRlciBhcnJheXMgdG8gZmluZCBhcHBs aWNhdGlvbl9uYW1lIHNldHRpbmcsIGFuZAorCSAqIHJlcGxhY2UgZXNjYXBlIHNlcXVlbmNlcyBp biBpdCB3aXRoIHN0YXR1cyBpbmZvcm1hdGlvbiBpZiBmb3VuZC4gIFRoZQorCSAqIGFycmF5cyBh cmUgc2VhcmNoZWQgYmFja3dhcmRzIGJlY2F1c2UgdGhlIGxhc3QgdmFsdWUgaXMgdXNlZCBpZgor CSAqIGFwcGxpY2F0aW9uX25hbWUgaXMgcmVwZWF0ZWRseSBzZXQuCisJICovCisJZm9yIChpbnQg aSA9IG4gLSAxOyBpID49IDA7IGktLSkKKwl7CisJCWlmIChzdHJjbXAoa2V5d29yZHNbaV0sICJh cHBsaWNhdGlvbl9uYW1lIikgPT0gMCAmJgorCQkJKih2YWx1ZXNbaV0pICE9ICdcMCcpCiAJCXsK LQkJCWlmIChzdHJjbXAoa2V5d29yZHNbaV0sICJhcHBsaWNhdGlvbl9uYW1lIikgPT0gMCAmJgot CQkJCSoodmFsdWVzW2ldKSAhPSAnXDAnKQorCQkJLyoKKwkJCSAqIFVzZSB0aGlzIGFwcGxpY2F0 aW9uX25hbWUgc2V0dGluZyBpZiBpdCdzIG5vdCBlbXB0eSBzdHJpbmcgZXZlbgorCQkJICogYWZ0 ZXIgYW55IGVzY2FwZSBzZXF1ZW5jZXMgaW4gaXQgYXJlIHJlcGxhY2VkLgorCQkJICovCisJCQlh cHBuYW1lID0gcHJvY2Vzc19wZ2Zkd19hcHBuYW1lKHZhbHVlc1tpXSk7CisJCQlpZiAoYXBwbmFt ZVswXSAhPSAnXDAnKQogCQkJewotCQkJCS8qCi0JCQkJICogVXNlIHRoaXMgYXBwbGljYXRpb25f bmFtZSBzZXR0aW5nIGlmIGl0J3Mgbm90IGVtcHR5IHN0cmluZwotCQkJCSAqIGV2ZW4gYWZ0ZXIg YW55IGVzY2FwZSBzZXF1ZW5jZXMgaW4gaXQgYXJlIHJlcGxhY2VkLgotCQkJCSAqLwotCQkJCWFw cG5hbWUgPSBwcm9jZXNzX3BnZmR3X2FwcG5hbWUodmFsdWVzW2ldKTsKLQkJCQlpZiAoYXBwbmFt ZVswXSAhPSAnXDAnKQotCQkJCXsKLQkJCQkJdmFsdWVzW2ldID0gYXBwbmFtZTsKLQkJCQkJYnJl YWs7Ci0JCQkJfQotCi0JCQkJLyoKLQkJCQkgKiBUaGlzIGVtcHR5IGFwcGxpY2F0aW9uX25hbWUg aXMgbm90IHVzZWQsIHNvIHdlIHNldAotCQkJCSAqIHZhbHVlc1tpXSB0byBOVUxMIGFuZCBrZWVw IHNlYXJjaGluZyB0aGUgYXJyYXkgdG8gZmluZCB0aGUKLQkJCQkgKiBuZXh0IG9uZS4KLQkJCQkg Ki8KLQkJCQl2YWx1ZXNbaV0gPSBOVUxMOwotCQkJCXBmcmVlKGFwcG5hbWUpOwotCQkJCWFwcG5h bWUgPSBOVUxMOworCQkJCXZhbHVlc1tpXSA9IGFwcG5hbWU7CisJCQkJYnJlYWs7CiAJCQl9CisK KwkJCS8qCisJCQkgKiBUaGlzIGVtcHR5IGFwcGxpY2F0aW9uX25hbWUgaXMgbm90IHVzZWQsIHNv IHdlIHNldCB2YWx1ZXNbaV0gdG8KKwkJCSAqIE5VTEwgYW5kIGtlZXAgc2VhcmNoaW5nIHRoZSBh cnJheSB0byBmaW5kIHRoZSBuZXh0IG9uZS4KKwkJCSAqLworCQkJdmFsdWVzW2ldID0gTlVMTDsK KwkJCXBmcmVlKGFwcG5hbWUpOworCQkJYXBwbmFtZSA9IE5VTEw7CiAJCX0KKwl9CisKKwkqcF9h cHBuYW1lID0gYXBwbmFtZTsKIAotCQkvKiBVc2UgInBvc3RncmVzX2ZkdyIgYXMgZmFsbGJhY2tf YXBwbGljYXRpb25fbmFtZSAqLwotCQlrZXl3b3Jkc1tuXSA9ICJmYWxsYmFja19hcHBsaWNhdGlv bl9uYW1lIjsKLQkJdmFsdWVzW25dID0gInBvc3RncmVzX2ZkdyI7CisJLyogVXNlICJwb3N0Z3Jl c19mZHciIGFzIGZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUgKi8KKwlrZXl3b3Jkc1tuXSA9ICJm YWxsYmFja19hcHBsaWNhdGlvbl9uYW1lIjsKKwl2YWx1ZXNbbl0gPSAicG9zdGdyZXNfZmR3IjsK KwluKys7CisKKwkvKiBTZXQgY2xpZW50X2VuY29kaW5nIHNvIHRoYXQgbGlicHEgY2FuIGNvbnZl cnQgZW5jb2RpbmcgcHJvcGVybHkuICovCisJa2V5d29yZHNbbl0gPSAiY2xpZW50X2VuY29kaW5n IjsKKwl2YWx1ZXNbbl0gPSBHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpOworCW4rKzsKKworCS8q IEFkZCByZXF1aXJlZCBTQ1JBTSBwYXNzLXRocm91Z2ggY29ubmVjdGlvbiBvcHRpb25zIGlmIGl0 J3MgZW5hYmxlZC4gKi8KKwlpZiAoTXlQcm9jUG9ydCAhPSBOVUxMICYmIE15UHJvY1BvcnQtPmhh c19zY3JhbV9rZXlzICYmIFVzZVNjcmFtUGFzc3Rocm91Z2goc2VydmVyLCB1c2VyKSkKKwl7CisJ CWludAkJCWxlbjsKKwkJaW50CQkJZW5jb2RlZF9sZW47CisKKwkJa2V5d29yZHNbbl0gPSAic2Ny YW1fY2xpZW50X2tleSI7CisJCWxlbiA9IHBnX2I2NF9lbmNfbGVuKHNpemVvZihNeVByb2NQb3J0 LT5zY3JhbV9DbGllbnRLZXkpKTsKKwkJLyogZG9uJ3QgZm9yZ2V0IHRoZSB6ZXJvLXRlcm1pbmF0 b3IgKi8KKwkJdmFsdWVzW25dID0gcGFsbG9jMChsZW4gKyAxKTsKKwkJZW5jb2RlZF9sZW4gPSBw Z19iNjRfZW5jb2RlKE15UHJvY1BvcnQtPnNjcmFtX0NsaWVudEtleSwKKwkJCQkJCQkJCXNpemVv ZihNeVByb2NQb3J0LT5zY3JhbV9DbGllbnRLZXkpLAorCQkJCQkJCQkJKGNoYXIgKikgdmFsdWVz W25dLCBsZW4pOworCQlpZiAoZW5jb2RlZF9sZW4gPCAwKQorCQkJZWxvZyhFUlJPUiwgImNvdWxk IG5vdCBlbmNvZGUgU0NSQU0gY2xpZW50IGtleSIpOwogCQluKys7CiAKLQkJLyogU2V0IGNsaWVu dF9lbmNvZGluZyBzbyB0aGF0IGxpYnBxIGNhbiBjb252ZXJ0IGVuY29kaW5nIHByb3Blcmx5LiAq LwotCQlrZXl3b3Jkc1tuXSA9ICJjbGllbnRfZW5jb2RpbmciOwotCQl2YWx1ZXNbbl0gPSBHZXRE YXRhYmFzZUVuY29kaW5nTmFtZSgpOworCQlrZXl3b3Jkc1tuXSA9ICJzY3JhbV9zZXJ2ZXJfa2V5 IjsKKwkJbGVuID0gcGdfYjY0X2VuY19sZW4oc2l6ZW9mKE15UHJvY1BvcnQtPnNjcmFtX1NlcnZl cktleSkpOworCQkvKiBkb24ndCBmb3JnZXQgdGhlIHplcm8tdGVybWluYXRvciAqLworCQl2YWx1 ZXNbbl0gPSBwYWxsb2MwKGxlbiArIDEpOworCQllbmNvZGVkX2xlbiA9IHBnX2I2NF9lbmNvZGUo TXlQcm9jUG9ydC0+c2NyYW1fU2VydmVyS2V5LAorCQkJCQkJCQkJc2l6ZW9mKE15UHJvY1BvcnQt PnNjcmFtX1NlcnZlcktleSksCisJCQkJCQkJCQkoY2hhciAqKSB2YWx1ZXNbbl0sIGxlbik7CisJ CWlmIChlbmNvZGVkX2xlbiA8IDApCisJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGVuY29kZSBT Q1JBTSBzZXJ2ZXIga2V5Iik7CiAJCW4rKzsKIAotCQkvKiBBZGQgcmVxdWlyZWQgU0NSQU0gcGFz cy10aHJvdWdoIGNvbm5lY3Rpb24gb3B0aW9ucyBpZiBpdCdzIGVuYWJsZWQuICovCi0JCWlmIChN eVByb2NQb3J0ICE9IE5VTEwgJiYgTXlQcm9jUG9ydC0+aGFzX3NjcmFtX2tleXMgJiYgVXNlU2Ny YW1QYXNzdGhyb3VnaChzZXJ2ZXIsIHVzZXIpKQotCQl7Ci0JCQlpbnQJCQlsZW47Ci0JCQlpbnQJ CQllbmNvZGVkX2xlbjsKLQotCQkJa2V5d29yZHNbbl0gPSAic2NyYW1fY2xpZW50X2tleSI7Ci0J CQlsZW4gPSBwZ19iNjRfZW5jX2xlbihzaXplb2YoTXlQcm9jUG9ydC0+c2NyYW1fQ2xpZW50S2V5 KSk7Ci0JCQkvKiBkb24ndCBmb3JnZXQgdGhlIHplcm8tdGVybWluYXRvciAqLwotCQkJdmFsdWVz W25dID0gcGFsbG9jMChsZW4gKyAxKTsKLQkJCWVuY29kZWRfbGVuID0gcGdfYjY0X2VuY29kZShN eVByb2NQb3J0LT5zY3JhbV9DbGllbnRLZXksCi0JCQkJCQkJCQkJc2l6ZW9mKE15UHJvY1BvcnQt PnNjcmFtX0NsaWVudEtleSksCi0JCQkJCQkJCQkJKGNoYXIgKikgdmFsdWVzW25dLCBsZW4pOwot CQkJaWYgKGVuY29kZWRfbGVuIDwgMCkKLQkJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGVuY29k ZSBTQ1JBTSBjbGllbnQga2V5Iik7Ci0JCQluKys7Ci0KLQkJCWtleXdvcmRzW25dID0gInNjcmFt X3NlcnZlcl9rZXkiOwotCQkJbGVuID0gcGdfYjY0X2VuY19sZW4oc2l6ZW9mKE15UHJvY1BvcnQt PnNjcmFtX1NlcnZlcktleSkpOwotCQkJLyogZG9uJ3QgZm9yZ2V0IHRoZSB6ZXJvLXRlcm1pbmF0 b3IgKi8KLQkJCXZhbHVlc1tuXSA9IHBhbGxvYzAobGVuICsgMSk7Ci0JCQllbmNvZGVkX2xlbiA9 IHBnX2I2NF9lbmNvZGUoTXlQcm9jUG9ydC0+c2NyYW1fU2VydmVyS2V5LAotCQkJCQkJCQkJCXNp emVvZihNeVByb2NQb3J0LT5zY3JhbV9TZXJ2ZXJLZXkpLAotCQkJCQkJCQkJCShjaGFyICopIHZh bHVlc1tuXSwgbGVuKTsKLQkJCWlmIChlbmNvZGVkX2xlbiA8IDApCi0JCQkJZWxvZyhFUlJPUiwg ImNvdWxkIG5vdCBlbmNvZGUgU0NSQU0gc2VydmVyIGtleSIpOwotCQkJbisrOworCQkvKgorCQkg KiBSZXF1aXJlIHNjcmFtLXNoYS0yNTYgdG8gZW5zdXJlIHRoYXQgbm8gb3RoZXIgYXV0aCBtZXRo b2QgaXMgdXNlZAorCQkgKiB3aGVuIGNvbm5lY3Rpbmcgd2l0aCBmb3JlaWduIHNlcnZlci4KKwkJ ICovCisJCWtleXdvcmRzW25dID0gInJlcXVpcmVfYXV0aCI7CisJCXZhbHVlc1tuXSA9ICJzY3Jh bS1zaGEtMjU2IjsKKwkJbisrOworCX0KIAotCQkJLyoKLQkJCSAqIFJlcXVpcmUgc2NyYW0tc2hh LTI1NiB0byBlbnN1cmUgdGhhdCBubyBvdGhlciBhdXRoIG1ldGhvZCBpcwotCQkJICogdXNlZCB3 aGVuIGNvbm5lY3Rpbmcgd2l0aCBmb3JlaWduIHNlcnZlci4KLQkJCSAqLwotCQkJa2V5d29yZHNb bl0gPSAicmVxdWlyZV9hdXRoIjsKLQkJCXZhbHVlc1tuXSA9ICJzY3JhbS1zaGEtMjU2IjsKLQkJ CW4rKzsKLQkJfQorCWtleXdvcmRzW25dID0gdmFsdWVzW25dID0gTlVMTDsKKworCS8qIFZlcmlm eSB0aGUgc2V0IG9mIGNvbm5lY3Rpb24gcGFyYW1ldGVycy4gKi8KKwljaGVja19jb25uX3BhcmFt cyhrZXl3b3JkcywgdmFsdWVzLCB1c2VyKTsKIAotCQlrZXl3b3Jkc1tuXSA9IHZhbHVlc1tuXSA9 IE5VTEw7CisJKnBfa2V5d29yZHMgPSBrZXl3b3JkczsKKwkqcF92YWx1ZXMgPSB2YWx1ZXM7Cit9 CisKKy8qCisgKiBDb25uZWN0IHRvIHJlbW90ZSBzZXJ2ZXIgdXNpbmcgc3BlY2lmaWVkIHNlcnZl ciBhbmQgdXNlciBtYXBwaW5nIHByb3BlcnRpZXMuCisgKi8KK3N0YXRpYyBQR2Nvbm4gKgorY29u bmVjdF9wZ19zZXJ2ZXIoRm9yZWlnblNlcnZlciAqc2VydmVyLCBVc2VyTWFwcGluZyAqdXNlcikK K3sKKwlQR2Nvbm4JICAgKnZvbGF0aWxlIGNvbm4gPSBOVUxMOworCisJLyoKKwkgKiBVc2UgUEdf VFJZIGJsb2NrIHRvIGVuc3VyZSBjbG9zaW5nIGNvbm5lY3Rpb24gb24gZXJyb3IuCisJICovCisJ UEdfVFJZKCk7CisJeworCQljb25zdCBjaGFyICoqa2V5d29yZHM7CisJCWNvbnN0IGNoYXIgKip2 YWx1ZXM7CisJCWNoYXIJICAgKmFwcG5hbWU7CiAKLQkJLyogVmVyaWZ5IHRoZSBzZXQgb2YgY29u bmVjdGlvbiBwYXJhbWV0ZXJzLiAqLwotCQljaGVja19jb25uX3BhcmFtcyhrZXl3b3JkcywgdmFs dWVzLCB1c2VyKTsKKwkJY29uc3RydWN0X2Nvbm5lY3Rpb25fcGFyYW1zKHNlcnZlciwgdXNlciwg JmtleXdvcmRzLCAmdmFsdWVzLCAmYXBwbmFtZSk7CiAKIAkJLyogZmlyc3QgdGltZSwgYWxsb2Nh dGUgb3IgZ2V0IHRoZSBjdXN0b20gd2FpdCBldmVudCAqLwogCQlpZiAocGdmZHdfd2VfY29ubmVj dCA9PSAwKQpAQCAtMjMxMCw2ICsyMzI5LDU2IEBAIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlv bnNfaW50ZXJuYWwoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sCiAJfQogfQogCisvKgorICogVmFs dWVzIGluIGNvbm5lY3Rpb24gc3RyaW5ncyBtdXN0IGJlIGVuY2xvc2VkIGluIHNpbmdsZSBxdW90 ZXMuIFNpbmdsZQorICogcXVvdGVzIGFuZCBiYWNrc2xhc2hlcyBtdXN0IGJlIGVzY2FwZWQgd2l0 aCBiYWNrc2xhc2guIE5COiB0aGVzZSBydWxlcyBhcmUKKyAqIGRpZmZlcmVudCBmcm9tIHRoZSBy dWxlcyBmb3IgZXNjYXBpbmcgYSBTUUwgbGl0ZXJhbC4KKyAqLworc3RhdGljIHZvaWQKK2FwcGVu ZEVzY2FwZWRWYWx1ZShTdHJpbmdJbmZvIHN0ciwgY29uc3QgY2hhciAqdmFsKQoreworCWFwcGVu ZFN0cmluZ0luZm9DaGFyKHN0ciwgJ1wnJyk7CisJZm9yIChpbnQgaSA9IDA7IHZhbFtpXSAhPSAn XDAnOyBpKyspCisJeworCQlpZiAodmFsW2ldID09ICdcXCcgfHwgdmFsW2ldID09ICdcJycpCisJ CQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihzdHIsICdcXCcpOworCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihzdHIsIHZhbFtpXSk7CisJfQorCWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgJ1wnJyk7Cit9 CisKK0RhdHVtCitwb3N0Z3Jlc19mZHdfY29ubmVjdGlvbihQR19GVU5DVElPTl9BUkdTKQorewor CU9pZAkJCXVzZXJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJT2lkCQkJc2VydmVyaWQgPSBQR19H RVRBUkdfT0lEKDEpOworCUZvcmVpZ25TZXJ2ZXIgKnNlcnZlciA9IEdldEZvcmVpZ25TZXJ2ZXIo c2VydmVyaWQpOworCVVzZXJNYXBwaW5nICp1c2VyID0gR2V0VXNlck1hcHBpbmcodXNlcmlkLCBz ZXJ2ZXJpZCk7CisJU3RyaW5nSW5mb0RhdGEgc3RyOworCWNvbnN0IGNoYXIgKiprZXl3b3JkczsK Kwljb25zdCBjaGFyICoqdmFsdWVzOworCWNoYXIJICAgKmFwcG5hbWU7CisJY2hhcgkgICAqc2Vw ID0gIiI7CisKKwljb25zdHJ1Y3RfY29ubmVjdGlvbl9wYXJhbXMoc2VydmVyLCB1c2VyLCAma2V5 d29yZHMsICZ2YWx1ZXMsICZhcHBuYW1lKTsKKworCWluaXRTdHJpbmdJbmZvKCZzdHIpOworCWZv ciAoaW50IGkgPSAwOyBrZXl3b3Jkc1tpXSAhPSBOVUxMOyBpKyspCisJeworCQlpZiAodmFsdWVz W2ldID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJYXBwZW5kU3RyaW5nSW5mbygmc3RyLCAiJXMl cyA9ICIsIHNlcCwga2V5d29yZHNbaV0pOworCQlhcHBlbmRFc2NhcGVkVmFsdWUoJnN0ciwgdmFs dWVzW2ldKTsKKwkJc2VwID0gIiAiOworCX0KKworCWlmIChhcHBuYW1lICE9IE5VTEwpCisJCXBm cmVlKGFwcG5hbWUpOworCXBmcmVlKGtleXdvcmRzKTsKKwlwZnJlZSh2YWx1ZXMpOworCVBHX1JF VFVSTl9URVhUX1AoY3N0cmluZ190b190ZXh0KHN0ci5kYXRhKSk7Cit9CisKIC8qCiAgKiBMaXN0 IGFjdGl2ZSBmb3JlaWduIHNlcnZlciBjb25uZWN0aW9ucy4KICAqCmRpZmYgLS1naXQgYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0 Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRleCAyY2NiNzJjNTM5YS4uMGY1 MjcxZDQ3NmUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dApAQCAtMjU1LDYgKzI1NSwxNCBAQCBTRUxFQ1QgYzMsIGM0IEZST00gZnQxIE9SREVS IEJZIGMzLCBjMSBMSU1JVCAxOyAgLS0gc2hvdWxkIHdvcmsgYWdhaW4KIEFOQUxZWkUgZnQxOwog QUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAodXNlX3JlbW90ZV9lc3RpbWF0ZSAndHJ1 ZScpOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gdGVzdCBzdWJzY3JpcHRpb24KKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K K0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19wZ2Zkd19zdWJzY3JpcHRpb24gU0VSVkVSIHRl c3RzZXJ2ZXIxCisgIFBVQkxJQ0FUSU9OIHB1YjEgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29u bmVjdCA9IGZhbHNlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBp cyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0 IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3Jp cHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25z LgorRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19wZ2Zkd19zdWJzY3JpcHRpb247CistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSB0ZXN0IGVycm9yIGNhc2UgZm9yIGNyZWF0ZSBwdWJsaWNhdGlvbiBvbiBmb3Jl aWduIHRhYmxlCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mdGJs IEZPUiBUQUJMRSBmdDE7ICAtLSBzaG91bGQgZmFpbApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0 Z3Jlc19mZHcvbWVzb24uYnVpbGQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZApp bmRleCBlYTRjZDlmY2Q0Ni4uM2UyZWQwNmI3NjYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L21lc29uLmJ1aWxkCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L21lc29uLmJ1aWxk CkBAIC0yNyw2ICsyNyw3IEBAIGluc3RhbGxfZGF0YSgKICAgJ3Bvc3RncmVzX2Zkdy0tMS4wLnNx bCcsCiAgICdwb3N0Z3Jlc19mZHctLTEuMC0tMS4xLnNxbCcsCiAgICdwb3N0Z3Jlc19mZHctLTEu MS0tMS4yLnNxbCcsCisgICdwb3N0Z3Jlc19mZHctLTEuMi0tMS4zLnNxbCcsCiAgIGt3YXJnczog Y29udHJpYl9kYXRhX2FyZ3MsCiApCiAKQEAgLTUwLDYgKzUxLDcgQEAgdGVzdHMgKz0gewogICAn dGFwJzogewogICAgICd0ZXN0cyc6IFsKICAgICAgICd0LzAwMV9hdXRoX3NjcmFtLnBsJywKKyAg ICAgICd0LzAxMF9zdWJzY3JpcHRpb24ucGwnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQg YS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMi0tMS4zLnNxbCBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmNmMGJhMmUwOQotLS0gL2Rldi9udWxsCisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMuc3FsCkBAIC0wLDAg KzEsMTIgQEAKKy8qIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMu c3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlwdCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhl ciB0aGFuIHZpYSBBTFRFUiBFWFRFTlNJT04KK1xlY2hvIFVzZSAiQUxURVIgRVhURU5TSU9OIHBv c3RncmVzX2ZkdyBVUERBVEUgVE8gJzEuMyciIHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAorCist LSB0YWtlcyBpbnRlcm5hbCBwYXJhbWV0ZXIgdG8gcHJldmVudCBjYWxsaW5nIGZyb20gU1FMCitD UkVBVEUgRlVOQ1RJT04gcG9zdGdyZXNfZmR3X2Nvbm5lY3Rpb24ob2lkLCBvaWQsIGludGVybmFs KQorUkVUVVJOUyB0ZXh0CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBTVFJJQ1Qg UEFSQUxMRUwgUkVTVFJJQ1RFRDsKKworQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdy ZXNfZmR3IENPTk5FQ1RJT04gcG9zdGdyZXNfZmR3X2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9j b250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuY29udHJvbCBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3Bvc3RncmVzX2Zkdy5jb250cm9sCmluZGV4IGE0YjgwMGJlNGZjLi5hZTI5NjNkNDgw ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmNvbnRyb2wK KysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmNvbnRyb2wKQEAgLTEsNSAr MSw1IEBACiAjIHBvc3RncmVzX2ZkdyBleHRlbnNpb24KIGNvbW1lbnQgPSAnZm9yZWlnbi1kYXRh IHdyYXBwZXIgZm9yIHJlbW90ZSBQb3N0Z3JlU1FMIHNlcnZlcnMnCi1kZWZhdWx0X3ZlcnNpb24g PSAnMS4yJworZGVmYXVsdF92ZXJzaW9uID0gJzEuMycKIG1vZHVsZV9wYXRobmFtZSA9ICckbGli ZGlyL3Bvc3RncmVzX2ZkdycKIHJlbG9jYXRhYmxlID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zk dy9zcWwvcG9zdGdyZXNfZmR3LnNxbAppbmRleCA3MmQyZDljMzExYi4uNDllZDc5N2U4ZWYgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0yNDQsNiArMjQ0 LDEzIEBAIFNFTEVDVCBjMywgYzQgRlJPTSBmdDEgT1JERVIgQlkgYzMsIGMxIExJTUlUIDE7ICAt LSBzaG91bGQgd29yayBhZ2FpbgogQU5BTFlaRSBmdDE7CiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0 MiBPUFRJT05TICh1c2VfcmVtb3RlX2VzdGltYXRlICd0cnVlJyk7CiAKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIHRlc3Qgc3Vic2NyaXB0aW9uCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfcGdmZHdfc3Vic2NyaXB0aW9uIFNFUlZFUiB0ZXN0c2VydmVyMQorICBQVUJMSUNB VElPTiBwdWIxIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX3BnZmR3X3N1YnNjcmlwdGlvbjsKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gdGVzdCBlcnJvciBjYXNlIGZvciBjcmVhdGUgcHVibGljYXRpb24gb24gZm9yZWlnbiB0 YWJsZQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvdC8w MTBfc3Vic2NyaXB0aW9uLnBsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2NyaXB0 aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMzllOGZkYmJh NAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlw dGlvbi5wbApAQCAtMCwwICsxLDcxIEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjQsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgQmFzaWMgbG9naWNhbCByZXBs aWNhdGlvbiB0ZXN0Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwor dXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAk bm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hl cicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwn KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQor bXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vi c2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdDsKKyRub2RlX3N1YnNjcmliZXItPnN0 YXJ0OworCisjIENyZWF0ZSBzb21lIHByZWV4aXN0aW5nIGNvbnRlbnQgb24gcHVibGlzaGVyCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFi X2lucyBBUyBTRUxFQ1QgYSwgYSArIDEgYXMgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDIp IEFTIGEiKTsKKworIyBSZXBsaWNhdGUgdGhlIGNoYW5nZXMgd2l0aG91dCBjb2x1bW5zCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9ub19j b2woKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJU IElOVE8gdGFiX25vX2NvbCBkZWZhdWx0IFZBTFVFUyIpOworCisjIFNldHVwIHN0cnVjdHVyZSBv biBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNS RUFURSBFWFRFTlNJT04gcG9zdGdyZXNfZmR3Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfaW5zIChhIGludCwgYiBpbnQpIik7CisK KyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5v ZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViIEZP UiBUQUJMRSB0YWJfaW5zIik7CisKK215ICRwdWJsaXNoZXJfaG9zdCA9ICRub2RlX3B1Ymxpc2hl ci0+aG9zdDsKK215ICRwdWJsaXNoZXJfcG9ydCA9ICRub2RlX3B1Ymxpc2hlci0+cG9ydDsKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU0VSVkVSIHRh cF9zZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3IE9QVElPTlMgKGhvc3Qg JyRwdWJsaXNoZXJfaG9zdCcsIHBvcnQgJyRwdWJsaXNoZXJfcG9ydCcsIGRibmFtZSAncG9zdGdy ZXMnKSIKKyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHRhcF9zZXJ2ZXIiCispOworCisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIEZPUkVJR04g VEFCTEUgZl90YWJfaW5zIChhIGludCwgYiBpbnQpIFNFUlZFUiB0YXBfc2VydmVyIE9QVElPTlMo dGFibGVfbmFtZSAndGFiX2lucycpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWIgU0VSVkVSIHRhcF9zZXJ2 ZXIgUFVCTElDQVRJT04gdGFwX3B1YiBXSVRIIChwYXNzd29yZF9yZXF1aXJlZD1mYWxzZSkiCisp OworCisjIFdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKKyRub2RlX3N1YnNj cmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9z dWInKTsKKworbXkgJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gKFNFTEVDVCBmLmIgPSBsLmIgYXMgbWF0Y2gg RlJPTSB0YWJfaW5zIGwsIGZfdGFiX2lucyBmIFdIRVJFIGwuYSA9IGYuYSkgV0hFUkUgbWF0Y2gi KTsKK2lzKCRyZXN1bHQsIHFxKDEwMDIpLCAnY2hlY2sgaW5pdGlhbCBkYXRhIHdhcyBjb3BpZWQg dG8gc3Vic2NyaWJlcicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJJTlNFUlQgSU5UTyB0YWJfaW5zIFNFTEVDVCBhLCBhICsgMSBGUk9NIGdlbmVyYXRlX3Nl cmllcygxMDAzLDEwNTApIGEiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVw KCd0YXBfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIChTRUxFQ1QgZi5iID0gbC5iIGFzIG1h dGNoIEZST00gdGFiX2lucyBsLCBmX3RhYl9pbnMgZiBXSEVSRSBsLmEgPSBmLmEpIFdIRVJFIG1h dGNoIik7CitpcygkcmVzdWx0LCBxcSgxMDUwKSwgJ2NoZWNrIGluaXRpYWwgZGF0YSB3YXMgY29w aWVkIHRvIHN1YnNjcmliZXInKTsKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbAppbmRleCA1MDI4ZmU5YWYwOS4uYjRlNmQ1YWUzZjkgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjU3Myw3ICsyNTczLDkgQEAgQ09OVEVY VDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYz OTUiIGR1cmluZyAiSU5TRVIKICAgPHBhcmE+CiAgICBUbyBjcmVhdGUgYSBzdWJzY3JpcHRpb24s IHRoZSB1c2VyIG11c3QgaGF2ZSB0aGUgcHJpdmlsZWdlcyBvZgogICAgdGhlIDxsaXRlcmFsPnBn X2NyZWF0ZV9zdWJzY3JpcHRpb248L2xpdGVyYWw+IHJvbGUsIGFzIHdlbGwgYXMKLSAgIDxsaXRl cmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlcyBvbiB0aGUgZGF0YWJhc2UuCisgICA8bGl0 ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZXMgb24gdGhlIGRhdGFiYXNlLiAgSWYKKyAg IDxsaXRlcmFsPlNFUlZFUjwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgdXNlciBhbHNvIG11 c3QgaGF2ZQorICAgPGxpdGVyYWw+VVNBR0U8L2xpdGVyYWw+IHByaXZpbGVnZXMgb24gdGhlIHNl cnZlci4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Bv c3RncmVzLWZkdy5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sCmluZGV4IGZj ZjEwZTQzMTdlLi5kZTY5ZGRjZGViYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Bvc3RncmVz LWZkdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbApAQCAtMTA0OSw2 ICsxMDQ5LDMyIEBAIHBvc3RncmVzPSMgU0VMRUNUIHBvc3RncmVzX2Zkd19kaXNjb25uZWN0X2Fs bCgpOwogICA8L3BhcmE+CiAgPC9zZWN0Mj4KIAorIDxzZWN0MiBpZD0icG9zdGdyZXMtZmR3LXNl cnZlci1zdWJzY3JpcHRpb24iPgorICA8dGl0bGU+U3Vic2NyaXB0aW9uIE1hbmFnZW1lbnQ8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgPGZpbGVuYW1lPnBvc3RncmVzX2ZkdzwvZmlsZW5hbWU+IHN1 cHBvcnRzIHN1YnNjcmlwdGlvbiBjb25uZWN0aW9ucyB1c2luZworICAgdGhlIHNhbWUgb3B0aW9u cyBkZXNjcmliZWQgaW4gPHhyZWYKKyAgIGxpbmtlbmQ9InBvc3RncmVzLWZkdy1vcHRpb25zLWNv bm5lY3Rpb24iLz4uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEZvciBleGFtcGxlLCBhc3N1 bWluZyB0aGUgcmVtb3RlIHNlcnZlciA8bGl0ZXJhbD5mb3JlaWduLWhvc3Q8L2xpdGVyYWw+IGhh cworICAgYSBwdWJsaWNhdGlvbiA8bGl0ZXJhbD50ZXN0cHViPC9saXRlcmFsPjoKKzxwcm9ncmFt bGlzdGluZz4KK0NSRUFURSBTRVJWRVIgc3Vic2NyaXB0aW9uX3NlcnZlciBGT1JFSUdOIERBVEEg V1JBUFBFUiBwb3N0Z3Jlc19mZHcgT1BUSU9OUyAoaG9zdCAnZm9yZWlnbi1ob3N0JywgZGJuYW1l ICdmb3JlaWduX2RiJyk7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBsb2NhbF91c2VyIFNFUlZF UiBzdWJzY3JpcHRpb25fc2VydmVyIE9QVElPTlMgKHVzZXIgJ2ZvcmVpZ25fdXNlcicsIHBhc3N3 b3JkICdwYXNzd29yZCcpOworQ1JFQVRFIFNVQlNDUklQVElPTiBteV9zdWJzY3JpcHRpb24gU0VS VkVSIHN1YnNjcmlwdGlvbl9zZXJ2ZXIgUFVCTElDQVRJT04gdGVzdHB1YjsKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNyZWF0ZSBhIHN1YnNjcmlwdGlv biwgdGhlIHVzZXIgbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgPHhyZWYKKyAgIGxpbmtlbmQ9InBy ZWRlZmluZWQtcm9sZS1wZy1jcmVhdGUtc3Vic2NyaXB0aW9uIi8+IHJvbGUgYW5kIGhhdmUKKyAg IDxsaXRlcmFsPlVTQUdFPC9saXRlcmFsPiBwcml2aWxlZ2VzIG9uIHRoZSBzZXJ2ZXIuCisgIDwv cGFyYT4KKyA8L3NlY3QyPgorCiAgPHNlY3QyIGlkPSJwb3N0Z3Jlcy1mZHctdHJhbnNhY3Rpb24t bWFuYWdlbWVudCI+CiAgIDx0aXRsZT5UcmFuc2FjdGlvbiBNYW5hZ2VtZW50PC90aXRsZT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sCmlu ZGV4IGRjMDk1N2Q5NjVhLi42NDBjMDI4OTNjZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfZm9yZWlnbl9kYXRhX3dyYXBwZXIuc2dtbApAQCAtMjQsNiArMjQsNyBAQCBQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBbIEhBTkRMRVIgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmhhbmRsZXJfZnVuY3Rpb248L3JlcGxhY2VhYmxl PiB8IE5PIEhBTkRMRVIgXQogICAgIFsgVkFMSURBVE9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWxpZGF0b3JfZnVuY3Rpb248L3JlcGxhY2VhYmxlPiB8IE5PIFZBTElEQVRPUiBd CisgICAgWyBDT05ORUNUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uZWN0 aW9uX2Z1bmN0aW9uPC9yZXBsYWNlYWJsZT4gfCBOTyBDT05ORUNUSU9OIF0KICAgICBbIE9QVElP TlMgKCBbIEFERCB8IFNFVCB8IERST1AgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b3B0aW9uPC9yZXBsYWNlYWJsZT4gWyc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFs dWU8L3JlcGxhY2VhYmxlPiddIFssIC4uLiBdKSBdCiBBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBF UiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVS IFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xF IHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQ UEVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVO QU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC0xMTIsNiArMTEz LDI1IEBAIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNPTk5F Q1RJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbm5lY3Rpb25fZnVuY3Rpb248 L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFNwZWNpZmllcyBhIG5ldyBjb25uZWN0aW9uIGZ1bmN0aW9uIGZvciB0aGUgZm9y ZWlnbi1kYXRhIHdyYXBwZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+Tk8g Q09OTkVDVElPTjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgaXMgdXNlZCB0byBzcGVjaWZ5IHRoYXQgdGhlIGZvcmVpZ24tZGF0YSB3cmFw cGVyIHNob3VsZCBubworICAgICAgbG9uZ2VyIGhhdmUgYSBjb25uZWN0aW9uIGZ1bmN0aW9uLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8 dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPk9QVElPTlMgKCBbIEFERCB8IFNFVCB8 IERST1AgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJs ZT4gWyc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPidd IFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDUzMTg5OThlODBjLi5mMjE1ZmIwZTVh MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yMSw2ICsy MSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5 bm9wc2lzPgorQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gU0VSVkVSIDxyZXBsYWNlYWJsZT5zZXJ2ZXJuYW1lPC9yZXBs YWNlYWJsZT4KIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IENPTk5FQ1RJT04gJzxyZXBsYWNlYWJsZT5jb25uaW5mbzwv cmVwbGFjZWFibGU+JwogQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBb IFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb3B0aW9u PC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9y ZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9uYW1lPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fb3B0aW9uPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQpAQCAtMTAyLDEzICsxMDMsMjQg QEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJh bXMtc2VydmVyIj4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVJWRVIgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgY2xhdXNlIHJlcGxhY2VzIHRo ZSBmb3JlaWduIHNlcnZlciBvciBjb25uZWN0aW9uIHN0cmluZyBvcmlnaW5hbGx5CisgICAgICBz ZXQgYnkgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPiB3aXRoIHRoZSBm b3JlaWduIHNlcnZlcgorICAgICAgPHJlcGxhY2VhYmxlPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxl Pi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1jb25uZWN0 aW9uIj4KICAgICA8dGVybT48bGl0ZXJhbD5DT05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPic8L2xpdGVyYWw+PC90ZXJtPgogICAg IDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBUaGlzIGNsYXVzZSByZXBsYWNlcyB0aGUg Y29ubmVjdGlvbiBzdHJpbmcgb3JpZ2luYWxseSBzZXQgYnkKLSAgICAgIDx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iLz4uICBTZWUgdGhlcmUgZm9yIG1vcmUKLSAgICAgIGlu Zm9ybWF0aW9uLgorICAgICAgVGhpcyBjbGF1c2UgcmVwbGFjZXMgdGhlIGZvcmVpZ24gc2VydmVy IG9yIGNvbm5lY3Rpb24gc3RyaW5nIG9yaWdpbmFsbHkKKyAgICAgIHNldCBieSA8eHJlZiBsaW5r ZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uIi8+IHdpdGggdGhlIGNvbm5lY3Rpb24KKyAgICAg IHN0cmluZyA8cmVwbGFjZWFibGU+Y29ubmluZm88L3JlcGxhY2VhYmxlPi4KICAgICAgPC9wYXJh PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fZGF0YV93cmFwcGVyLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sCmluZGV4IDBmY2JhMThhMzQ3 Li43YjgzZjUwMGIyNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWln bl9kYXRhX3dyYXBwZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWdu X2RhdGFfd3JhcHBlci5zZ21sCkBAIC0yNCw2ICsyNCw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBbIEhBTkRMRVIgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmhhbmRsZXJfZnVuY3Rpb248L3JlcGxhY2VhYmxlPiB8IE5PIEhBTkRM RVIgXQogICAgIFsgVkFMSURBVE9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWxp ZGF0b3JfZnVuY3Rpb248L3JlcGxhY2VhYmxlPiB8IE5PIFZBTElEQVRPUiBdCisgICAgWyBDT05O RUNUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uZWN0aW9uX2Z1bmN0aW9u PC9yZXBsYWNlYWJsZT4gfCBOTyBDT05ORUNUSU9OIF0KICAgICBbIE9QVElPTlMgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gJzxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+JyBbLCAuLi4gXSApIF0KIDwv c3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTk5LDYgKzEwMCwyNSBAQCBDUkVBVEUg Rk9SRUlHTiBEQVRBIFdSQVBQRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5DT05ORUNUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uZWN0aW9uX2Z1bmN0aW9uPC9yZXBsYWNlYWJsZT48L2xp dGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmVjdGlvbl9mdW5jdGlvbjwvcmVwbGFjZWFibGU+ IGlzIHRoZQorICAgICAgbmFtZSBvZiBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBmdW5jdGlvbiB0 aGF0IHdpbGwgYmUgY2FsbGVkIHRvIGdlbmVyYXRlCisgICAgICB0aGUgcG9zdGdyZXMgY29ubmVj dGlvbiBzdHJpbmcgd2hlbiBhIGZvcmVpZ24gc2VydmVyIGlzIHVzZWQgYXMgcGFydCBvZgorICAg ICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPi4gIElmIG5vIGNvbm5l Y3Rpb24gZnVuY3Rpb24gb3IKKyAgICAgIDxsaXRlcmFsPk5PIENPTk5FQ1RJT048L2xpdGVyYWw+ IGlzIHNwZWNpZmllZCwgdGhlbiBzZXJ2ZXJzIHVzaW5nIHRoaXMKKyAgICAgIGZvcmVpZ24gZGF0 YSB3cmFwcGVyIGNhbm5vdCBiZSB1c2VkIGZvciA8bGl0ZXJhbD5DUkVBVEUKKyAgICAgIFNVQlND UklQVElPTjwvbGl0ZXJhbD4uICBUaGUgY29ubmVjdGlvbiBmdW5jdGlvbiBtdXN0IHRha2UgdGhy ZWUKKyAgICAgIGFyZ3VtZW50czogb25lIG9mIHR5cGUgPHR5cGU+b2lkPC90eXBlPiBmb3IgdGhl IHVzZXIsIG9uZSBvZiB0eXBlCisgICAgICA8dHlwZT5vaWQ8L3R5cGU+IGZvciB0aGUgc2VydmVy LCBhbmQgYW4gdW51c2VkIHRoaXJkIGFyZ3VtZW50IG9mIHR5cGUKKyAgICAgIDx0eXBlPmludGVy bmFsPC90eXBlPiAod2hpY2ggcHJldmVudHMgY2FsbGluZyB0aGUgZnVuY3Rpb24gaW4gb3RoZXIK KyAgICAgIGNvbnRleHRzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5PUFRJ T05TICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+ ICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPicgWywg Li4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfc2VydmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zZXJ2ZXIuc2dtbAppbmRleCAwNWY0MDE5NDUzYi4uY2U0YTA2NGVhYmIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NlcnZlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3NlcnZlci5zZ21sCkBAIC00Miw2ICs0MiwxMyBAQCBDUkVBVEUgU0VSVkVSIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXJ2ZXJfbmFt ZTwvcmVwbAogICAgbWVhbnMgb2YgdXNlciBtYXBwaW5ncy4KICAgPC9wYXJhPgogCisgIDxwYXJh PgorICAgSWYgdGhlIGZvcmVpZ24gZGF0YSB3cmFwcGVyIDxyZXBsYWNlYWJsZT5mZHdfbmFtZTwv cmVwbGFjZWFibGU+IGlzCisgICBzcGVjaWZpZWQgd2l0aCBhIDxsaXRlcmFsPkNPTk5FQ1RJT048 L2xpdGVyYWw+IGNsYXVzZSwgdGhlbiA8eHJlZgorICAgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNj cmlwdGlvbiIvPiBtYXkgdXNlIHRoaXMgZm9yZWlnbiBzZXJ2ZXIgZm9yCisgICBjb25uZWN0aW9u IGluZm9ybWF0aW9uLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgc2VydmVyIG5hbWUg bXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBkYXRhYmFzZS4KICAgPC9wYXJhPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBlYjBjYzY0NWQ4Zi4uMmNhN2Uw ZTY4MjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y Miw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4K IDxzeW5vcHNpcz4KIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4KLSAgICBDT05ORUNUSU9OICc8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPicKKyAg ICB7IFNFUlZFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2VydmVybmFtZTwvcmVw bGFjZWFibGU+IHwgQ09OTkVDVElPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bm5pbmZvPC9yZXBsYWNlYWJsZT4nIH0KICAgICBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KICAg ICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX3Bh cmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52 YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KIDwvc3lub3BzaXM+CkBAIC03Nyw2ICs3 NywxNSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlv bi1wYXJhbXMtc2VydmVyIj4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVJWRVIgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgZm9yZWlnbiBzZXJ2ZXIg dG8gdXNlIGZvciB0aGUgY29ubmVjdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1 YnNjcmlwdGlvbi1wYXJhbXMtY29ubmVjdGlvbiI+CiAgICAgPHRlcm0+PGxpdGVyYWw+Q09OTkVD VElPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbm5pbmZvPC9yZXBsYWNlYWJs ZT4nPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z dWJzY3JpcHRpb24uYwppbmRleCBhY2Y0MmI4NTNlZC4uMzY3M2Q0ZjBiYzEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtMTksMTEgKzE5LDE0IEBACiAjaW5jbHVkZSAi YWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9z ZXJ2ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2lu Y2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNs dWRlICJ1dGlscy9mbWdyb2lkcy5oIgpAQCAtNjksNyArNzIsNyBAQCBHZXRQdWJsaWNhdGlvbnNT dHIoTGlzdCAqcHVibGljYXRpb25zLCBTdHJpbmdJbmZvIGRlc3QsIGJvb2wgcXVvdGVfbGl0ZXJh bCkKICAqIEZldGNoIHRoZSBzdWJzY3JpcHRpb24gZnJvbSB0aGUgc3lzY2FjaGUuCiAgKi8KIFN1 YnNjcmlwdGlvbiAqCi1HZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2sp CitHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2ssIGJvb2wgYWNsY2hl Y2spCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlTdWJzY3JpcHRpb24gKnN1YjsKQEAgLTEwOCwxMCAr MTExLDM1IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAlz dWItPnJldGVudGlvbmFjdGl2ZSA9IHN1YmZvcm0tPnN1YnJldGVudGlvbmFjdGl2ZTsKIAogCS8q IEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJ UFRJT05PSUQsCi0JCQkJCQkJCSAgIHR1cCwKLQkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRp b25fc3ViY29ubmluZm8pOwotCXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRh dHVtKTsKKwlpZiAoT2lkSXNWYWxpZChzdWJmb3JtLT5zdWJzZXJ2ZXIpKQorCXsKKwkJQWNsUmVz dWx0CWFjbHJlc3VsdDsKKworCQkvKiByZWNoZWNrIEFDTCBpZiByZXF1ZXN0ZWQgKi8KKwkJaWYg KGFjbGNoZWNrKQorCQl7CisJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soRm9yZWlnblNl cnZlclJlbGF0aW9uSWQsCisJCQkJCQkJCQkJc3ViZm9ybS0+c3Vic2VydmVyLAorCQkJCQkJCQkJ CXN1YmZvcm0tPnN1Ym93bmVyLCBBQ0xfVVNBR0UpOworCisJCQlpZiAoYWNscmVzdWx0ICE9IEFD TENIRUNLX09LKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lO U1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJIGVycm1zZygic3Vic2NyaXB0aW9uIG93bmVy IFwiJXNcIiBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gb24gZm9yZWlnbiBzZXJ2ZXIgXCIlc1wi IiwKKwkJCQkJCQkJR2V0VXNlck5hbWVGcm9tSWQoc3ViZm9ybS0+c3Vib3duZXIsIGZhbHNlKSwK KwkJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUoc3ViZm9ybS0+c3Vic2VydmVyKSkpKTsKKwkJfQor CisJCXN1Yi0+Y29ubmluZm8gPSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhzdWJmb3Jt LT5zdWJvd25lciwKKwkJCQkJCQkJCQkJCQkgIHN1YmZvcm0tPnN1YnNlcnZlcik7CisJfQorCWVs c2UKKwl7CisJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQs CisJCQkJCQkJCQkgICB0dXAsCisJCQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJj b25uaW5mbyk7CisJCXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsK Kwl9CiAKIAkvKiBHZXQgc2xvdG5hbWUgKi8KIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihTVUJT Q1JJUFRJT05PSUQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9mb3JlaWduY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwppbmRleCBiNTZkMWFkNjc4 NS4uNDU2ODEyMzU3ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2ZvcmVpZ25j bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwpAQCAtNTIyLDIx ICs1MjIsNTMgQEAgbG9va3VwX2Zkd192YWxpZGF0b3JfZnVuYyhEZWZFbGVtICp2YWxpZGF0b3Ip CiAJLyogdmFsaWRhdG9yJ3MgcmV0dXJuIHZhbHVlIGlzIGlnbm9yZWQsIHNvIHdlIGRvbid0IGNo ZWNrIHRoZSB0eXBlICovCiB9CiAKKy8qCisgKiBDb252ZXJ0IGEgY29ubmVjdGlvbiBzdHJpbmcg ZnVuY3Rpb24gbmFtZSBwYXNzZWQgZnJvbSB0aGUgcGFyc2VyIHRvIGFuIE9pZC4KKyAqLworc3Rh dGljIE9pZAorbG9va3VwX2Zkd19jb25uZWN0aW9uX2Z1bmMoRGVmRWxlbSAqY29ubmVjdGlvbikK K3sKKwlPaWQJCQljb25uZWN0aW9uT2lkOworCU9pZAkJCWZ1bmNhcmd0eXBlc1szXTsKKworCWlm IChjb25uZWN0aW9uID09IE5VTEwgfHwgY29ubmVjdGlvbi0+YXJnID09IE5VTEwpCisJCXJldHVy biBJbnZhbGlkT2lkOworCisJLyogY29ubmVjdGlvbiBzdHJpbmcgZnVuY3Rpb25zIHRha2UgdXNl ciBvaWQsIHNlcnZlciBvaWQgKi8KKwlmdW5jYXJndHlwZXNbMF0gPSBPSURPSUQ7CisJZnVuY2Fy Z3R5cGVzWzFdID0gT0lET0lEOworCWZ1bmNhcmd0eXBlc1syXSA9IElOVEVSTkFMT0lEOworCisJ Y29ubmVjdGlvbk9pZCA9IExvb2t1cEZ1bmNOYW1lKChMaXN0ICopIGNvbm5lY3Rpb24tPmFyZywg MywgZnVuY2FyZ3R5cGVzLCBmYWxzZSk7CisKKwkvKiBjaGVjayB0aGF0IGNvbm5lY3Rpb24gc3Ry aW5nIGZ1bmN0aW9uIGhhcyBjb3JyZWN0IHJldHVybiB0eXBlICovCisJaWYgKGdldF9mdW5jX3Jl dHR5cGUoY29ubmVjdGlvbk9pZCkgIT0gVEVYVE9JRCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJmdW5jdGlv biAlcyBtdXN0IHJldHVybiB0eXBlICVzIiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoKExpc3Qg KikgY29ubmVjdGlvbi0+YXJnKSwgInRleHQiKSkpOworCisJcmV0dXJuIGNvbm5lY3Rpb25PaWQ7 Cit9CisKIC8qCiAgKiBQcm9jZXNzIGZ1bmN0aW9uIG9wdGlvbnMgb2YgQ1JFQVRFL0FMVEVSIEZE VwogICovCiBzdGF0aWMgdm9pZAogcGFyc2VfZnVuY19vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTGlzdCAqZnVuY19vcHRpb25zLAogCQkJCSAgIGJvb2wgKmhhbmRsZXJfZ2l2ZW4sIE9pZCAq ZmR3aGFuZGxlciwKLQkJCQkgICBib29sICp2YWxpZGF0b3JfZ2l2ZW4sIE9pZCAqZmR3dmFsaWRh dG9yKQorCQkJCSAgIGJvb2wgKnZhbGlkYXRvcl9naXZlbiwgT2lkICpmZHd2YWxpZGF0b3IsCisJ CQkJICAgYm9vbCAqY29ubmVjdGlvbl9naXZlbiwgT2lkICpmZHdjb25uZWN0aW9uKQogewogCUxp c3RDZWxsICAgKmNlbGw7CiAKIAkqaGFuZGxlcl9naXZlbiA9IGZhbHNlOwogCSp2YWxpZGF0b3Jf Z2l2ZW4gPSBmYWxzZTsKKwkqY29ubmVjdGlvbl9naXZlbiA9IGZhbHNlOwogCS8qIHJldHVybiBJ bnZhbGlkT2lkIGlmIG5vdCBnaXZlbiAqLwogCSpmZHdoYW5kbGVyID0gSW52YWxpZE9pZDsKIAkq ZmR3dmFsaWRhdG9yID0gSW52YWxpZE9pZDsKKwkqZmR3Y29ubmVjdGlvbiA9IEludmFsaWRPaWQ7 CiAKIAlmb3JlYWNoKGNlbGwsIGZ1bmNfb3B0aW9ucykKIAl7CkBAIC01NTYsNiArNTg4LDEzIEBA IHBhcnNlX2Z1bmNfb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNfb3B0aW9u cywKIAkJCSp2YWxpZGF0b3JfZ2l2ZW4gPSB0cnVlOwogCQkJKmZkd3ZhbGlkYXRvciA9IGxvb2t1 cF9mZHdfdmFsaWRhdG9yX2Z1bmMoZGVmKTsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmLT5k ZWZuYW1lLCAiY29ubmVjdGlvbiIpID09IDApCisJCXsKKwkJCWlmICgqY29ubmVjdGlvbl9naXZl bikKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWYsIHBzdGF0ZSk7CisJCQkqY29ubmVj dGlvbl9naXZlbiA9IHRydWU7CisJCQkqZmR3Y29ubmVjdGlvbiA9IGxvb2t1cF9mZHdfY29ubmVj dGlvbl9mdW5jKGRlZik7CisJCX0KIAkJZWxzZQogCQkJZWxvZyhFUlJPUiwgIm9wdGlvbiBcIiVz XCIgbm90IHJlY29nbml6ZWQiLAogCQkJCSBkZWYtPmRlZm5hbWUpOwpAQCAtNTc1LDggKzYxNCwx MCBAQCBDcmVhdGVGb3JlaWduRGF0YVdyYXBwZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVG ZHdTdG10ICpzdG10KQogCU9pZAkJCWZkd0lkOwogCWJvb2wJCWhhbmRsZXJfZ2l2ZW47CiAJYm9v bAkJdmFsaWRhdG9yX2dpdmVuOworCWJvb2wJCWNvbm5lY3Rpb25fZ2l2ZW47CiAJT2lkCQkJZmR3 aGFuZGxlcjsKIAlPaWQJCQlmZHd2YWxpZGF0b3I7CisJT2lkCQkJZmR3Y29ubmVjdGlvbjsKIAlE YXR1bQkJZmR3b3B0aW9uczsKIAlPaWQJCQlvd25lcklkOwogCU9iamVjdEFkZHJlc3MgbXlzZWxm OwpAQCAtNjIwLDEwICs2NjEsMTIgQEAgQ3JlYXRlRm9yZWlnbkRhdGFXcmFwcGVyKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ3JlYXRlRmR3U3RtdCAqc3RtdCkKIAkvKiBMb29rdXAgaGFuZGxlciBhbmQg dmFsaWRhdG9yIGZ1bmN0aW9ucywgaWYgZ2l2ZW4gKi8KIAlwYXJzZV9mdW5jX29wdGlvbnMocHN0 YXRlLCBzdG10LT5mdW5jX29wdGlvbnMsCiAJCQkJCSAgICZoYW5kbGVyX2dpdmVuLCAmZmR3aGFu ZGxlciwKLQkJCQkJICAgJnZhbGlkYXRvcl9naXZlbiwgJmZkd3ZhbGlkYXRvcik7CisJCQkJCSAg ICZ2YWxpZGF0b3JfZ2l2ZW4sICZmZHd2YWxpZGF0b3IsCisJCQkJCSAgICZjb25uZWN0aW9uX2dp dmVuLCAmZmR3Y29ubmVjdGlvbik7CiAKIAl2YWx1ZXNbQW51bV9wZ19mb3JlaWduX2RhdGFfd3Jh cHBlcl9mZHdoYW5kbGVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZkd2hhbmRsZXIpOwogCXZh bHVlc1tBbnVtX3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyX2Zkd3ZhbGlkYXRvciAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bShmZHd2YWxpZGF0b3IpOworCXZhbHVlc1tBbnVtX3BnX2ZvcmVpZ25fZGF0 YV93cmFwcGVyX2Zkd2Nvbm5lY3Rpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oZmR3Y29ubmVj dGlvbik7CiAKIAludWxsc1tBbnVtX3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyX2Zkd2FjbCAtIDFd ID0gdHJ1ZTsKIApAQCAtNjk1LDggKzczOCwxMCBAQCBBbHRlckZvcmVpZ25EYXRhV3JhcHBlcihQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRmR3U3RtdCAqc3RtdCkKIAlEYXR1bQkJZGF0dW07CiAJ Ym9vbAkJaGFuZGxlcl9naXZlbjsKIAlib29sCQl2YWxpZGF0b3JfZ2l2ZW47CisJYm9vbAkJY29u bmVjdGlvbl9naXZlbjsKIAlPaWQJCQlmZHdoYW5kbGVyOwogCU9pZAkJCWZkd3ZhbGlkYXRvcjsK KwlPaWQJCQlmZHdjb25uZWN0aW9uOwogCU9iamVjdEFkZHJlc3MgbXlzZWxmOwogCiAJcmVsID0g dGFibGVfb3BlbihGb3JlaWduRGF0YVdyYXBwZXJSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2Nr KTsKQEAgLTcyNiw3ICs3NzEsOCBAQCBBbHRlckZvcmVpZ25EYXRhV3JhcHBlcihQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyRmR3U3RtdCAqc3RtdCkKIAogCXBhcnNlX2Z1bmNfb3B0aW9ucyhwc3Rh dGUsIHN0bXQtPmZ1bmNfb3B0aW9ucywKIAkJCQkJICAgJmhhbmRsZXJfZ2l2ZW4sICZmZHdoYW5k bGVyLAotCQkJCQkgICAmdmFsaWRhdG9yX2dpdmVuLCAmZmR3dmFsaWRhdG9yKTsKKwkJCQkJICAg JnZhbGlkYXRvcl9naXZlbiwgJmZkd3ZhbGlkYXRvciwKKwkJCQkJICAgJmNvbm5lY3Rpb25fZ2l2 ZW4sICZmZHdjb25uZWN0aW9uKTsKIAogCWlmIChoYW5kbGVyX2dpdmVuKQogCXsKQEAgLTc2NCw2 ICs4MTAsMTIgQEAgQWx0ZXJGb3JlaWduRGF0YVdyYXBwZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB bHRlckZkd1N0bXQgKnN0bXQpCiAJCWZkd3ZhbGlkYXRvciA9IGZkd0Zvcm0tPmZkd3ZhbGlkYXRv cjsKIAl9CiAKKwlpZiAoY29ubmVjdGlvbl9naXZlbikKKwl7CisJCXJlcGxfdmFsW0FudW1fcGdf Zm9yZWlnbl9kYXRhX3dyYXBwZXJfZmR3Y29ubmVjdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1 bShmZHdjb25uZWN0aW9uKTsKKwkJcmVwbF9yZXBsW0FudW1fcGdfZm9yZWlnbl9kYXRhX3dyYXBw ZXJfZmR3Y29ubmVjdGlvbiAtIDFdID0gdHJ1ZTsKKwl9CisKIAkvKgogCSAqIElmIG9wdGlvbnMg c3BlY2lmaWVkLCB2YWxpZGF0ZSBhbmQgdXBkYXRlLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDVlM2MwOTY0ZDM4Li4wOTFlN2I3MzcyZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMjcsMTMgKzI3LDE2IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19h dXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBw aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIK ICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWln bi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5o IgogI2luY2x1ZGUgInBnc3RhdC5oIgpAQCAtNjE5LDYgKzYyMiw3IEBAIENyZWF0ZVN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ19zdWJzY3JpcHRpb25dOwogCU9pZAkJCW93bmVyID0gR2V0 VXNlcklkKCk7CiAJSGVhcFR1cGxlCXR1cDsKKwlPaWQJCQlzZXJ2ZXJpZDsKIAljaGFyCSAgICpj b25uaW5mbzsKIAljaGFyCQlvcmlnaW5uYW1lW05BTUVEQVRBTEVOXTsKIAlMaXN0CSAgICpwdWJs aWNhdGlvbnM7CkBAIC03MzAsMTUgKzczNCw0MCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCWlmIChvcHRzLndh bF9yZWNlaXZlcl90aW1lb3V0ID09IE5VTEwpCiAJCW9wdHMud2FsX3JlY2VpdmVyX3RpbWVvdXQg PSAiLTEiOwogCi0JY29ubmluZm8gPSBzdG10LT5jb25uaW5mbzsKLQlwdWJsaWNhdGlvbnMgPSBz dG10LT5wdWJsaWNhdGlvbjsKLQogCS8qIExvYWQgdGhlIGxpYnJhcnkgcHJvdmlkaW5nIHVzIGxp YnBxIGNhbGxzLiAqLwogCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAor CWlmIChzdG10LT5zZXJ2ZXJuYW1lKQorCXsKKwkJRm9yZWlnblNlcnZlciAqc2VydmVyOworCisJ CUFzc2VydCghc3RtdC0+Y29ubmluZm8pOworCQljb25uaW5mbyA9IE5VTEw7CisKKwkJc2VydmVy ID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJuYW1lLCBmYWxzZSk7CisJCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVy LT5zZXJ2ZXJpZCwgb3duZXIsIEFDTF9VU0FHRSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9GT1JFSUdOX1NFUlZF Uiwgc2VydmVyLT5zZXJ2ZXJuYW1lKTsKKworCQkvKiBtYWtlIHN1cmUgYSB1c2VyIG1hcHBpbmcg ZXhpc3RzICovCisJCUdldFVzZXJNYXBwaW5nKG93bmVyLCBzZXJ2ZXItPnNlcnZlcmlkKTsKKwor CQlzZXJ2ZXJpZCA9IHNlcnZlci0+c2VydmVyaWQ7CisJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZl ckNvbm5lY3Rpb25TdHJpbmcob3duZXIsIHNlcnZlcmlkKTsKKwl9CisJZWxzZQorCXsKKwkJQXNz ZXJ0KHN0bXQtPmNvbm5pbmZvKTsKKworCQlzZXJ2ZXJpZCA9IEludmFsaWRPaWQ7CisJCWNvbm5p bmZvID0gc3RtdC0+Y29ubmluZm87CisJfQorCiAJLyogQ2hlY2sgdGhlIGNvbm5lY3Rpb24gaW5m byBzdHJpbmcuICovCiAJd2FscmN2X2NoZWNrX2Nvbm5pbmZvKGNvbm5pbmZvLCBvcHRzLnBhc3N3 b3JkcmVxdWlyZWQgJiYgIXN1cGVydXNlcigpKTsKIAorCXB1YmxpY2F0aW9ucyA9IHN0bXQtPnB1 YmxpY2F0aW9uOworCiAJLyogRXZlcnl0aGluZyBvaywgZm9ybSBhIG5ldyB0dXBsZS4gKi8KIAlt ZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CiAJbWVtc2V0KG51bGxzLCBmYWxzZSwg c2l6ZW9mKG51bGxzKSk7CkBAIC03NjgsOCArNzk3LDEyIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCUludDMy R2V0RGF0dW0ob3B0cy5tYXhyZXRlbnRpb24pOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJyZXRlbnRpb25hY3RpdmUgLSAxXSA9CiAJCUludDMyR2V0RGF0dW0ob3B0cy5yZXRhaW5k ZWFkdHVwbGVzKTsKLQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAx XSA9Ci0JCUNTdHJpbmdHZXRUZXh0RGF0dW0oY29ubmluZm8pOworCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IHNlcnZlcmlkOworCWlmICghT2lkSXNWYWxpZChz ZXJ2ZXJpZCkpCisJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAtIDFd ID0KKwkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oY29ubmluZm8pOworCWVsc2UKKwkJbnVsbHNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9IHRydWU7CiAJaWYgKG9wdHMuc2xv dF9uYW1lKQogCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2xvdG5hbWUgLSAxXSA9 CiAJCQlEaXJlY3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKG9wdHMuc2xv dF9uYW1lKSk7CkBAIC03OTIsNiArODI1LDE4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAlyZWNvcmREZXBl bmRlbmN5T25Pd25lcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgb3duZXIpOwogCisJ T2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsK KworCWlmIChzdG10LT5zZXJ2ZXJuYW1lKQorCXsKKwkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2Vk OworCisJCUFzc2VydChPaWRJc1ZhbGlkKHNlcnZlcmlkKSk7CisKKwkJT2JqZWN0QWRkcmVzc1Nl dChyZWZlcmVuY2VkLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVyaWQpOworCQlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsK Kwl9CisKIAkvKgogCSAqIEEgcmVwbGljYXRpb24gb3JpZ2luIGlzIGN1cnJlbnRseSBjcmVhdGVk IGZvciBhbGwgc3Vic2NyaXB0aW9ucywKIAkgKiBpbmNsdWRpbmcgdGhvc2UgdGhhdCBvbmx5IGNv bnRhaW4gc2VxdWVuY2VzIG9yIGFyZSBvdGhlcndpc2UgZW1wdHkuCkBAIC05NDUsOCArOTkwLDYg QEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0 aW9uU3RtdCAqc3RtdCwKIAlpZiAob3B0cy5lbmFibGVkIHx8IG9wdHMucmV0YWluZGVhZHR1cGxl cykKIAkJQXBwbHlMYXVuY2hlcldha2V1cEF0Q29tbWl0KCk7CiAKLQlPYmplY3RBZGRyZXNzU2V0 KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOwotCiAJSW52b2tlT2JqZWN0 UG9zdENyZWF0ZUhvb2soU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJcmV0 dXJuIG15c2VsZjsKQEAgLTE0MTAsNyArMTQ1MywxNCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJYWNsY2hlY2tf ZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfU1VCU0NSSVBUSU9OLAogCQkJCQkgICBz dG10LT5zdWJuYW1lKTsKIAotCXN1YiA9IEdldFN1YnNjcmlwdGlvbihzdWJpZCwgZmFsc2UpOwor CS8qCisJICogU2tpcCBBQ0wgY2hlY2tzIG9uIHRoZSBzdWJzY3JpcHRpb24ncyBmb3JlaWduIHNl cnZlciwgaWYgYW55LiBJZgorCSAqIGNoYW5naW5nIHRoZSBzZXJ2ZXIgKG9yIHJlcGxhY2luZyBp dCB3aXRoIGEgcmF3IGNvbm5lY3Rpb24pLCB0aGVuIHRoZQorCSAqIG9sZCBvbmUgd2lsbCBiZSBy ZW1vdmVkIGFueXdheS4gSWYgY2hhbmdpbmcgc29tZXRoaW5nIHVucmVsYXRlZCwKKwkgKiB0aGVy ZSdzIG5vIG5lZWQgdG8gZG8gYW4gYWRkaXRpb25hbCBBQ0wgY2hlY2sgaGVyZTsgdGhhdCB3aWxs IGJlIGRvbmUKKwkgKiBieSB0aGUgc3Vic2NyaXB0aW9uIHdvcmtlciBhbnl3YXkuCisJICovCisJ c3ViID0gR2V0U3Vic2NyaXB0aW9uKHN1YmlkLCBmYWxzZSwgZmFsc2UpOwogCiAJcmV0YWluX2Rl YWRfdHVwbGVzID0gc3ViLT5yZXRhaW5kZWFkdHVwbGVzOwogCW9yaWdpbiA9IHN1Yi0+b3JpZ2lu OwpAQCAtMTQzNSw2ICsxNDg1LDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJbWVtc2V0KG51bGxzLCBmYWxzZSwg c2l6ZW9mKG51bGxzKSk7CiAJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2Vz KSk7CiAKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwg c3ViaWQpOworCiAJc3dpdGNoIChzdG10LT5raW5kKQogCXsKIAkJY2FzZSBBTFRFUl9TVUJTQ1JJ UFRJT05fT1BUSU9OUzoKQEAgLTE3NTMsNyArMTgwNSw3OSBAQCBBbHRlclN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlicmVh azsKIAkJCX0KIAorCQljYXNlIEFMVEVSX1NVQlNDUklQVElPTl9TRVJWRVI6CisJCQl7CisJCQkJ Rm9yZWlnblNlcnZlciAqbmV3X3NlcnZlcjsKKwkJCQlPYmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7 CisJCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwkJCQljaGFyCSAgICpjb25uaW5mbzsKKworCQkJ CS8qCisJCQkJICogUmVtb3ZlIHdoYXQgd2FzIHRoZXJlIGJlZm9yZSwgZWl0aGVyIGFub3RoZXIg Zm9yZWlnbiBzZXJ2ZXIKKwkJCQkgKiBvciBhIGNvbm5lY3Rpb24gc3RyaW5nLgorCQkJCSAqLwor CQkJCWlmIChmb3JtLT5zdWJzZXJ2ZXIpCisJCQkJeworCQkJCQlkZWxldGVEZXBlbmRlbmN5UmVj b3Jkc0ZvclNwZWNpZmljKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIGZvcm0tPm9pZCwKKwkJCQkJ CQkJCQkJCQkgICBERVBFTkRFTkNZX05PUk1BTCwKKwkJCQkJCQkJCQkJCQkgICBGb3JlaWduU2Vy dmVyUmVsYXRpb25JZCwgZm9ybS0+c3Vic2VydmVyKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsK KwkJCQkJbnVsbHNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9IHRydWU7 CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0gPSB0 cnVlOworCQkJCX0KKworCQkJCS8qCisJCQkJICogRmluZCB0aGUgbmV3IHNlcnZlciBhbmQgdXNl ciBtYXBwaW5nLiBDaGVjayBBQ0wgb2Ygc2VydmVyCisJCQkJICogYmFzZWQgb24gY3VycmVudCB1 c2VyIElELCBidXQgZmluZCB0aGUgdXNlciBtYXBwaW5nIGJhc2VkCisJCQkJICogb24gdGhlIHN1 YnNjcmlwdGlvbiBvd25lci4KKwkJCQkgKi8KKwkJCQluZXdfc2VydmVyID0gR2V0Rm9yZWlnblNl cnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJuYW1lLCBmYWxzZSk7CisJCQkJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrKEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLAorCQkJCQkJCQkJCQluZXdfc2Vy dmVyLT5zZXJ2ZXJpZCwKKwkJCQkJCQkJCQkJZm9ybS0+c3Vib3duZXIsIEFDTF9VU0FHRSk7CisJ CQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJCSBl cnJtc2coInN1YnNjcmlwdGlvbiBvd25lciBcIiVzXCIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9u IG9uIGZvcmVpZ24gc2VydmVyIFwiJXNcIiIsCisJCQkJCQkJCQlHZXRVc2VyTmFtZUZyb21JZChm b3JtLT5zdWJvd25lciwgZmFsc2UpLAorCQkJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUobmV3X3Nl cnZlci0+c2VydmVyaWQpKSkpOworCisJCQkJLyogbWFrZSBzdXJlIGEgdXNlciBtYXBwaW5nIGV4 aXN0cyAqLworCQkJCUdldFVzZXJNYXBwaW5nKGZvcm0tPnN1Ym93bmVyLCBuZXdfc2VydmVyLT5z ZXJ2ZXJpZCk7CisKKwkJCQljb25uaW5mbyA9IEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5n KGZvcm0tPnN1Ym93bmVyLAorCQkJCQkJCQkJCQkJCQkgbmV3X3NlcnZlci0+c2VydmVyaWQpOwor CisJCQkJLyogTG9hZCB0aGUgbGlicmFyeSBwcm92aWRpbmcgdXMgbGlicHEgY2FsbHMuICovCisJ CQkJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCQkJCS8qIENoZWNrIHRo ZSBjb25uZWN0aW9uIGluZm8gc3RyaW5nLiAqLworCQkJCXdhbHJjdl9jaGVja19jb25uaW5mbyhj b25uaW5mbywKKwkJCQkJCQkJCSAgc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVy c3VwZXJ1c2VyKTsKKworCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIg LSAxXSA9IG5ld19zZXJ2ZXItPnNlcnZlcmlkOworCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2Ny aXB0aW9uX3N1YnNlcnZlciAtIDFdID0gdHJ1ZTsKKworCQkJCU9iamVjdEFkZHJlc3NTZXQocmVm ZXJlbmNlZCwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIG5ld19zZXJ2ZXItPnNlcnZlcmlkKTsK KwkJCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lf Tk9STUFMKTsKKworCQkJCXVwZGF0ZV90dXBsZSA9IHRydWU7CisJCQl9CisJCQlicmVhazsKKwog CQljYXNlIEFMVEVSX1NVQlNDUklQVElPTl9DT05ORUNUSU9OOgorCQkJLyogcmVtb3ZlIHJlZmVy ZW5jZSB0byBmb3JlaWduIHNlcnZlciBhbmQgZGVwZW5kZW5jaWVzLCBpZiBwcmVzZW50ICovCisJ CQlpZiAoZm9ybS0+c3Vic2VydmVyKQorCQkJeworCQkJCWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRz Rm9yU3BlY2lmaWMoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgZm9ybS0+b2lkLAorCQkJCQkJCQkJ CQkJICAgREVQRU5ERU5DWV9OT1JNQUwsCisJCQkJCQkJCQkJCQkgICBGb3JlaWduU2VydmVyUmVs YXRpb25JZCwgZm9ybS0+c3Vic2VydmVyKTsKKworCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlw dGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IEludmFsaWRPaWQ7CisJCQkJcmVwbGFjZXNbQW51bV9wZ19z dWJzY3JpcHRpb25fc3Vic2VydmVyIC0gMV0gPSB0cnVlOworCQkJfQorCiAJCQkvKiBMb2FkIHRo ZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KIAkJCWxvYWRfZmlsZSgibGli cHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAkJCS8qIENoZWNrIHRoZSBjb25uZWN0aW9uIGluZm8g c3RyaW5nLiAqLwpAQCAtMjAzOCw4ICsyMTYyLDYgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAl0YWJsZV9jbG9z ZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCi0JT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1 YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKLQogCUludm9rZU9iamVjdFBvc3RBbHRlckhv b2soU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJLyogV2FrZSB1cCByZWxh dGVkIHJlcGxpY2F0aW9uIHdvcmtlcnMgdG8gaGFuZGxlIHRoaXMgY2hhbmdlIHF1aWNrbHkuICov CkBAIC0yMTI2LDkgKzIyNDgsMjggQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCXN1Ym5hbWUgPSBwc3RyZHVwKE5hbWVTdHIo KkRhdHVtR2V0TmFtZShkYXR1bSkpKTsKIAogCS8qIEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsIHR1cCwKLQkJCQkJCQkJICAg QW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8pOwotCWNvbm5pbmZvID0gVGV4dERhdHVt R2V0Q1N0cmluZyhkYXR1bSk7CisJaWYgKE9pZElzVmFsaWQoZm9ybS0+c3Vic2VydmVyKSkKKwl7 CisJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNr KEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBmb3JtLT5zdWJzZXJ2ZXIsCisJCQkJCQkJCQlmb3Jt LT5zdWJvd25lciwgQUNMX1VTQUdFKTsKKwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCisJCQkJCSBlcnJtc2coInN1YnNjcmlwdGlvbiBvd25lciBcIiVzXCIgZG9lcyBu b3QgaGF2ZSBwZXJtaXNzaW9uIG9uIGZvcmVpZ24gc2VydmVyIFwiJXNcIiIsCisJCQkJCQkJR2V0 VXNlck5hbWVGcm9tSWQoZm9ybS0+c3Vib3duZXIsIGZhbHNlKSwKKwkJCQkJCQlGb3JlaWduU2Vy dmVyTmFtZShmb3JtLT5zdWJzZXJ2ZXIpKSkpOworCisJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZl ckNvbm5lY3Rpb25TdHJpbmcoZm9ybS0+c3Vib3duZXIsCisJCQkJCQkJCQkJCQkgZm9ybS0+c3Vi c2VydmVyKTsKKwl9CisJZWxzZQorCXsKKwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxs KFNVQlNDUklQVElPTk9JRCwgdHVwLAorCQkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViY29ubmluZm8pOworCQljb25uaW5mbyA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwor CX0KIAogCS8qIEdldCBzbG90bmFtZSAqLwogCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFNVQlND UklQVElPTk9JRCwgdHVwLApAQCAtMjIyNyw2ICsyMzY4LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihE cm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCX0KIAogCS8qIENs ZWFuIHVwIGRlcGVuZGVuY2llcyAqLworCWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRzRm9yKFN1YnNj cmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCBmYWxzZSk7CiAJZGVsZXRlU2hhcmVkRGVwZW5kZW5j eVJlY29yZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJLyogUmVt b3ZlIGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNocm9uaXphdGlvbiBzdGF0ZXMuICovCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYyBiL3NyYy9iYWNrZW5kL2Zv cmVpZ24vZm9yZWlnbi5jCmluZGV4IGI5MTJhMDZkZDE1Li5jNTM2OTk5NTllYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKKysrIGIvc3JjL2JhY2tlbmQvZm9yZWln bi9mb3JlaWduLmMKQEAgLTcyLDYgKzcyLDcgQEAgR2V0Rm9yZWlnbkRhdGFXcmFwcGVyRXh0ZW5k ZWQoT2lkIGZkd2lkLCBiaXRzMTYgZmxhZ3MpCiAJZmR3LT5mZHduYW1lID0gcHN0cmR1cChOYW1l U3RyKGZkd2Zvcm0tPmZkd25hbWUpKTsKIAlmZHctPmZkd2hhbmRsZXIgPSBmZHdmb3JtLT5mZHdo YW5kbGVyOwogCWZkdy0+ZmR3dmFsaWRhdG9yID0gZmR3Zm9ybS0+ZmR3dmFsaWRhdG9yOworCWZk dy0+ZmR3Y29ubmVjdGlvbiA9IGZkd2Zvcm0tPmZkd2Nvbm5lY3Rpb247CiAKIAkvKiBFeHRyYWN0 IHRoZSBmZHdvcHRpb25zICovCiAJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoRk9SRUlHTkRBVEFX UkFQUEVST0lELApAQCAtMTc2LDYgKzE3NywzMSBAQCBHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQo T2lkIHNlcnZlcmlkLCBiaXRzMTYgZmxhZ3MpCiB9CiAKIAorLyoKKyAqIEZvcmVpZ25TZXJ2ZXJO YW1lIC0gZ2V0IG5hbWUgb2YgZm9yZWlnbiBzZXJ2ZXIuCisgKi8KK2NoYXIgKgorRm9yZWlnblNl cnZlck5hbWUoT2lkIHNlcnZlcmlkKQoreworCUZvcm1fcGdfZm9yZWlnbl9zZXJ2ZXIgc2VydmVy Zm9ybTsKKwljaGFyCSAgICpzZXJ2ZXJuYW1lOworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2Vh cmNoU3lzQ2FjaGUxKEZPUkVJR05TRVJWRVJPSUQsIE9iamVjdElkR2V0RGF0dW0oc2VydmVyaWQp KTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBmb3JlaWduIHNlcnZlciAldSIsIHNlcnZlcmlkKTsKKworCXNlcnZl cmZvcm0gPSAoRm9ybV9wZ19mb3JlaWduX3NlcnZlcikgR0VUU1RSVUNUKHRwKTsKKworCXNlcnZl cm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoc2VydmVyZm9ybS0+c3J2bmFtZSkpOworCisJUmVsZWFz ZVN5c0NhY2hlKHRwKTsKKworCXJldHVybiBzZXJ2ZXJuYW1lOworfQorCisKIC8qCiAgKiBHZXRG b3JlaWduU2VydmVyQnlOYW1lIC0gbG9vayB1cCB0aGUgZm9yZWlnbiBzZXJ2ZXIgZGVmaW5pdGlv biBieSBuYW1lLgogICovCkBAIC0xOTEsNiArMjE3LDY2IEBAIEdldEZvcmVpZ25TZXJ2ZXJCeU5h bWUoY29uc3QgY2hhciAqc3J2bmFtZSwgYm9vbCBtaXNzaW5nX29rKQogfQogCiAKKy8qCisgKiBS ZXRyaWV2ZSBjb25uZWN0aW9uIHN0cmluZyBmcm9tIHNlcnZlcidzIEZEVy4KKyAqLworY2hhciAq CitGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhPaWQgdXNlcmlkLCBPaWQgc2VydmVyaWQp Cit7CisJTWVtb3J5Q29udGV4dCB0ZW1wQ29udGV4dDsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsK Kwl2b2xhdGlsZSB0ZXh0ICpjb25uZWN0aW9uX3RleHQgPSBOVUxMOworCWNoYXIJICAgKnJlc3Vs dCA9IE5VTEw7CisKKwkvKgorCSAqIEdldEZvcmVpZ25TZXJ2ZXIsIEdldEZvcmVpZ25EYXRhV3Jh cHBlciwgYW5kIHRoZSBjb25uZWN0aW9uIGZ1bmN0aW9uCisJICogaXRzZWxmIGFsbCBsZWFrIG1l bW9yeSBpbnRvIEN1cnJlbnRNZW1vcnlDb250ZXh0LiBTd2l0Y2ggdG8gYSB0ZW1wb3JhcnkKKwkg KiBjb250ZXh0IGZvciBlYXN5IGNsZWFudXAuCisJICovCisJdGVtcENvbnRleHQgPSBBbGxvY1Nl dENvbnRleHRDcmVhdGUoQ3VycmVudE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCQkJIkZEV0Nvbm5l Y3Rpb25Db250ZXh0IiwKKwkJCQkJCQkJCQlBTExPQ1NFVF9TTUFMTF9TSVpFUyk7CisKKwlvbGRj eHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8odGVtcENvbnRleHQpOworCisJUEdfVFJZKCk7CisJ eworCQlGb3JlaWduU2VydmVyICpzZXJ2ZXI7CisJCUZvcmVpZ25EYXRhV3JhcHBlciAqZmR3Owor CQlEYXR1bQkJY29ubmVjdGlvbl9kYXR1bTsKKworCQlzZXJ2ZXIgPSBHZXRGb3JlaWduU2VydmVy KHNlcnZlcmlkKTsKKwkJZmR3ID0gR2V0Rm9yZWlnbkRhdGFXcmFwcGVyKHNlcnZlci0+ZmR3aWQp OworCisJCWlmICghT2lkSXNWYWxpZChmZHctPmZkd2Nvbm5lY3Rpb24pKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycm1zZygiZm9yZWlnbiBkYXRhIHdyYXBwZXIgXCIlc1wiIGRvZXMgbm90 IHN1cHBvcnQgc3Vic2NyaXB0aW9uIGNvbm5lY3Rpb25zIiwKKwkJCQkJCQlmZHctPmZkd25hbWUp LAorCQkJCQkgZXJyZGV0YWlsKCJGb3JlaWduIGRhdGEgd3JhcHBlciBtdXN0IGJlIGRlZmluZWQg d2l0aCBDT05ORUNUSU9OIHNwZWNpZmllZC4iKSkpOworCisKKwkJY29ubmVjdGlvbl9kYXR1bSA9 IE9pZEZ1bmN0aW9uQ2FsbDMoZmR3LT5mZHdjb25uZWN0aW9uLAorCQkJCQkJCQkJCQlPYmplY3RJ ZEdldERhdHVtKHVzZXJpZCksCisJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oc2VydmVyaWQp LAorCQkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oTlVMTCkpOworCisJCWNvbm5lY3Rpb25fdGV4 dCA9IERhdHVtR2V0VGV4dFBQKGNvbm5lY3Rpb25fZGF0dW0pOworCX0KKwlQR19GSU5BTExZKCk7 CisJeworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoY29ubmVjdGlv bl90ZXh0KQorCQkJcmVzdWx0ID0gdGV4dF90b19jc3RyaW5nKCh0ZXh0ICopIGNvbm5lY3Rpb25f dGV4dCk7CisKKwkJTWVtb3J5Q29udGV4dERlbGV0ZSh0ZW1wQ29udGV4dCk7CisJfQorCVBHX0VO RF9UUlkoKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKwogLyoKICAqIEdldFVzZXJNYXBwaW5n IC0gbG9vayB1cCB0aGUgdXNlciBtYXBwaW5nLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGM1NjcyNTJh Y2M0Li4wMTRhM2VjMzc4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01NTgwLDYgKzU1ODAsOCBAQCBmZHdf b3B0aW9uOgogCQkJfCBOTyBIQU5ETEVSCQkJCQkJeyAkJCA9IG1ha2VEZWZFbGVtKCJoYW5kbGVy IiwgTlVMTCwgQDEpOyB9CiAJCQl8IFZBTElEQVRPUiBoYW5kbGVyX25hbWUJCQl7ICQkID0gbWFr ZURlZkVsZW0oInZhbGlkYXRvciIsIChOb2RlICopICQyLCBAMSk7IH0KIAkJCXwgTk8gVkFMSURB VE9SCQkJCQkJeyAkJCA9IG1ha2VEZWZFbGVtKCJ2YWxpZGF0b3IiLCBOVUxMLCBAMSk7IH0KKwkJ CXwgQ09OTkVDVElPTiBoYW5kbGVyX25hbWUJCQl7ICQkID0gbWFrZURlZkVsZW0oImNvbm5lY3Rp b24iLCAoTm9kZSAqKSAkMiwgQDEpOyB9CisJCQl8IE5PIENPTk5FQ1RJT04JCQkJCQl7ICQkID0g bWFrZURlZkVsZW0oImNvbm5lY3Rpb24iLCBOVUxMLCBAMSk7IH0KIAkJOwogCiBmZHdfb3B0aW9u czoKQEAgLTExMDMwLDYgKzExMDMyLDE2IEBAIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQ6CiAJCQkJ CW4tPm9wdGlvbnMgPSAkODsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQ1JF QVRFIFNVQlNDUklQVElPTiBuYW1lIFNFUlZFUiBuYW1lIFBVQkxJQ0FUSU9OIG5hbWVfbGlzdCBv cHRfZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqbiA9CisJ CQkJCQltYWtlTm9kZShDcmVhdGVTdWJzY3JpcHRpb25TdG10KTsKKwkJCQkJbi0+c3VibmFtZSA9 ICQzOworCQkJCQluLT5zZXJ2ZXJuYW1lID0gJDU7CisJCQkJCW4tPnB1YmxpY2F0aW9uID0gJDc7 CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJ OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExMDU5LDYgKzExMDcxLDE2IEBAIEFsdGVy U3Vic2NyaXB0aW9uU3RtdDoKIAkJCQkJbi0+Y29ubmluZm8gPSAkNTsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgU1VCU0NSSVBUSU9OIG5hbWUgU0VSVkVSIG5hbWUK KwkJCQl7CisJCQkJCUFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqbiA9CisJCQkJCQltYWtlTm9kZShB bHRlclN1YnNjcmlwdGlvblN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBBTFRFUl9TVUJTQ1JJUFRJ T05fU0VSVkVSOworCQkJCQluLT5zdWJuYW1lID0gJDM7CisJCQkJCW4tPnNlcnZlcm5hbWUgPSAk NTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJCXwgQUxURVIgU1VCU0NSSVBUSU9O IG5hbWUgUkVGUkVTSCBQVUJMSUNBVElPTiBvcHRfZGVmaW5pdGlvbgogCQkJCXsKIAkJCQkJQWx0 ZXJTdWJzY3JpcHRpb25TdG10ICpuID0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dv cmtlci5jCmluZGV4IGY5YzRiNDg0NzU0Li43YWM5ODZlYjA3YSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC01MDU4LDcgKzUwNTgsNyBAQCBtYXliZV9yZXJl YWRfc3Vic2NyaXB0aW9uKHZvaWQpCiAJLyogRW5zdXJlIGFsbG9jYXRpb25zIGluIHBlcm1hbmVu dCBjb250ZXh0LiAqLwogCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhBcHBseUNvbnRl eHQpOwogCi0JbmV3c3ViID0gR2V0U3Vic2NyaXB0aW9uKE15TG9naWNhbFJlcFdvcmtlci0+c3Vi aWQsIHRydWUpOworCW5ld3N1YiA9IEdldFN1YnNjcmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXIt PnN1YmlkLCB0cnVlLCB0cnVlKTsKIAogCS8qCiAJICogRXhpdCBpZiB0aGUgc3Vic2NyaXB0aW9u IHdhcyByZW1vdmVkLiBUaGlzIG5vcm1hbGx5IHNob3VsZCBub3QgaGFwcGVuCkBAIC01MjAwLDcg KzUyMDAsOSBAQCBzZXRfd2FsX3JlY2VpdmVyX3RpbWVvdXQodm9pZCkKIH0KIAogLyoKLSAqIENh bGxiYWNrIGZyb20gc3Vic2NyaXB0aW9uIHN5c2NhY2hlIGludmFsaWRhdGlvbi4KKyAqIENhbGxi YWNrIGZyb20gc3Vic2NyaXB0aW9uIHN5c2NhY2hlIGludmFsaWRhdGlvbi4gQWxzbyBuZWVkZWQg Zm9yIHNlcnZlciBvcgorICogdXNlciBtYXBwaW5nIGludmFsaWRhdGlvbiwgd2hpY2ggY2FuIGNo YW5nZSB0aGUgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBmb3IKKyAqIHN1YnNjcmlwdGlvbnMgdGhh dCBjb25uZWN0IHVzaW5nIGEgc2VydmVyIG9iamVjdC4KICAqLwogc3RhdGljIHZvaWQKIHN1YnNj cmlwdGlvbl9jaGFuZ2VfY2IoRGF0dW0gYXJnLCBTeXNDYWNoZUlkZW50aWZpZXIgY2FjaGVpZCwg dWludDMyIGhhc2h2YWx1ZSkKQEAgLTU4MDUsNyArNTgwNyw3IEBAIEluaXRpYWxpemVMb2dSZXBX b3JrZXIodm9pZCkKIAkgKi8KIAlMb2NrU2hhcmVkT2JqZWN0KFN1YnNjcmlwdGlvblJlbGF0aW9u SWQsIE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQsIDAsCiAJCQkJCSBBY2Nlc3NTaGFyZUxvY2sp OwotCU15U3Vic2NyaXB0aW9uID0gR2V0U3Vic2NyaXB0aW9uKE15TG9naWNhbFJlcFdvcmtlci0+ c3ViaWQsIHRydWUpOworCU15U3Vic2NyaXB0aW9uID0gR2V0U3Vic2NyaXB0aW9uKE15TG9naWNh bFJlcFdvcmtlci0+c3ViaWQsIHRydWUsIHRydWUpOwogCWlmICghTXlTdWJzY3JpcHRpb24pCiAJ ewogCQllcmVwb3J0KExPRywKQEAgLTU4NzAsNiArNTg3MiwxNCBAQCBJbml0aWFsaXplTG9nUmVw V29ya2VyKHZvaWQpCiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soU1VCU0NSSVBUSU9O T0lELAogCQkJCQkJCQkgIHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IsCiAJCQkJCQkJCSAgKERhdHVt KSAwKTsKKwkvKiBLZWVwIHVzIGluZm9ybWVkIGFib3V0IHN1YnNjcmlwdGlvbiBjaGFuZ2VzLiAq LworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05TRVJWRVJPSUQsCisJCQkJ CQkJCSAgc3Vic2NyaXB0aW9uX2NoYW5nZV9jYiwKKwkJCQkJCQkJICAoRGF0dW0pIDApOworCS8q IEtlZXAgdXMgaW5mb3JtZWQgYWJvdXQgc3Vic2NyaXB0aW9uIGNoYW5nZXMuICovCisJQ2FjaGVS ZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soVVNFUk1BUFBJTkdPSUQsCisJCQkJCQkJCSAgc3Vic2Ny aXB0aW9uX2NoYW5nZV9jYiwKKwkJCQkJCQkJICAoRGF0dW0pIDApOwogCiAJQ2FjaGVSZWdpc3Rl clN5c2NhY2hlQ2FsbGJhY2soQVVUSE9JRCwKIAkJCQkJCQkJICBzdWJzY3JpcHRpb25fY2hhbmdl X2NiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKaW5kZXggZGQ4YWRlZjBhM2UuLjBlOTRlZGVlYzIwIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKQEAgLTUxMDksNiArNTEwOSw3IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkK IAlpbnQJCQlpX3N1YmRpc2FibGVvbmVycjsKIAlpbnQJCQlpX3N1YnBhc3N3b3JkcmVxdWlyZWQ7 CiAJaW50CQkJaV9zdWJydW5hc293bmVyOworCWludAkJCWlfc3Vic2VydmVybmFtZTsKIAlpbnQJ CQlpX3N1YmNvbm5pbmZvOwogCWludAkJCWlfc3Vic2xvdG5hbWU7CiAJaW50CQkJaV9zdWJzeW5j Y29tbWl0OwpAQCAtNTIxMywxNCArNTIxNCwyNCBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUg KmZvdXQpCiAKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAwMDApCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiIHMuc3Vid2FscmN2dGltZW91dFxuIik7CisJ CQkJCQkJICIgcy5zdWJ3YWxyY3Z0aW1lb3V0LFxuIik7CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwKLQkJCQkJCQkgIiAnLTEnIEFTIHN1YndhbHJjdnRpbWVvdXRcbiIpOwor CQkJCQkJCSAiICctMScgQVMgc3Vid2FscmN2dGltZW91dCxcbiIpOworCisJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTkwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBm cy5zcnZuYW1lIEFTIHN1YnNlcnZlcm5hbWVcbiIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksICIgTlVMTCBBUyBzdWJzZXJ2ZXJuYW1lXG4iKTsKIAogCWFwcGVuZFBRRXhw QnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iKTsKIAor CWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE5MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksCisJCQkJCQkJICJMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19mb3JlaWduX3NlcnZl ciBmcyBcbiIKKwkJCQkJCQkgIiAgICBPTiBmcy5vaWQgPSBzLnN1YnNlcnZlciBcbiIpOworCiAJ aWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlICYmIGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAw KQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgIkxFRlQgSk9JTiBwZ19j YXRhbG9nLnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXMgbyBcbiIKQEAgLTUyNTIsNiArNTI2 Myw3IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpX3N1YmZhaWxvdmVyID0g UFFmbnVtYmVyKHJlcywgInN1YmZhaWxvdmVyIik7CiAJaV9zdWJyZXRhaW5kZWFkdHVwbGVzID0g UFFmbnVtYmVyKHJlcywgInN1YnJldGFpbmRlYWR0dXBsZXMiKTsKIAlpX3N1Ym1heHJldGVudGlv biA9IFBRZm51bWJlcihyZXMsICJzdWJtYXhyZXRlbnRpb24iKTsKKwlpX3N1YnNlcnZlcm5hbWUg PSBQUWZudW1iZXIocmVzLCAic3Vic2VydmVybmFtZSIpOwogCWlfc3ViY29ubmluZm8gPSBQUWZu dW1iZXIocmVzLCAic3ViY29ubmluZm8iKTsKIAlpX3N1YnNsb3RuYW1lID0gUFFmbnVtYmVyKHJl cywgInN1YnNsb3RuYW1lIik7CiAJaV9zdWJzeW5jY29tbWl0ID0gUFFmbnVtYmVyKHJlcywgInN1 YnN5bmNjb21taXQiKTsKQEAgLTUyNzQsNiArNTI4NiwxMCBAQCBnZXRTdWJzY3JpcHRpb25zKEFy Y2hpdmUgKmZvdXQpCiAKIAkJc3ViaW5mb1tpXS5zdWJlbmFibGVkID0KIAkJCShzdHJjbXAoUFFn ZXR2YWx1ZShyZXMsIGksIGlfc3ViZW5hYmxlZCksICJ0IikgPT0gMCk7CisJCWlmIChQUWdldGlz bnVsbChyZXMsIGksIGlfc3Vic2VydmVybmFtZSkpCisJCQlzdWJpbmZvW2ldLnN1YnNlcnZlcm5h bWUgPSBOVUxMOworCQllbHNlCisJCQlzdWJpbmZvW2ldLnN1YnNlcnZlcm5hbWUgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vic2VydmVybmFtZSkpOwogCQlzdWJpbmZvW2ldLnN1 YmJpbmFyeSA9CiAJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmJpbmFyeSksICJ0 IikgPT0gMCk7CiAJCXN1YmluZm9baV0uc3Vic3RyZWFtID0gKihQUWdldHZhbHVlKHJlcywgaSwg aV9zdWJzdHJlYW0pKTsKQEAgLTUyOTAsOCArNTMwNiwxMSBAQCBnZXRTdWJzY3JpcHRpb25zKEFy Y2hpdmUgKmZvdXQpCiAJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YnJldGFpbmRl YWR0dXBsZXMpLCAidCIpID09IDApOwogCQlzdWJpbmZvW2ldLnN1Ym1heHJldGVudGlvbiA9CiAJ CQlhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1Ym1heHJldGVudGlvbikpOwotCQlzdWJpbmZv W2ldLnN1YmNvbm5pbmZvID0KLQkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJj b25uaW5mbykpOworCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3N1YmNvbm5pbmZvKSkKKwkJ CXN1YmluZm9baV0uc3ViY29ubmluZm8gPSBOVUxMOworCQllbHNlCisJCQlzdWJpbmZvW2ldLnN1 YmNvbm5pbmZvID0KKwkJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViY29ubmlu Zm8pKTsKIAkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9zdWJzbG90bmFtZSkpCiAJCQlzdWJp bmZvW2ldLnN1YnNsb3RuYW1lID0gTlVMTDsKIAkJZWxzZQpAQCAtNTUwMiw5ICs1NTIxLDE3IEBA IGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAq c3ViaW5mbykKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBTVUJTQ1JJUFRJT04gJXM7 XG4iLAogCQkJCQkgIHFzdWJuYW1lKTsKIAotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JF QVRFIFNVQlNDUklQVElPTiAlcyBDT05ORUNUSU9OICIsCisJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksICJDUkVBVEUgU1VCU0NSSVBUSU9OICVzICIsCiAJCQkJCSAgcXN1Ym5hbWUpOwotCWFwcGVu ZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgc3ViaW5mby0+c3ViY29ubmluZm8sIGZvdXQpOworCWlm IChzdWJpbmZvLT5zdWJzZXJ2ZXJuYW1lKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks ICJTRVJWRVIgJXMiLCBmbXRJZChzdWJpbmZvLT5zdWJzZXJ2ZXJuYW1lKSk7CisJfQorCWVsc2UK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ09OTkVDVElPTiAiKTsKKwkJYXBwZW5k U3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBzdWJpbmZvLT5zdWJjb25uaW5mbywgZm91dCk7CisJfQog CiAJLyogQnVpbGQgbGlzdCBvZiBxdW90ZWQgcHVibGljYXRpb25zIGFuZCBhcHBlbmQgdGhlbSB0 byBxdWVyeS4gKi8KIAlpZiAoIXBhcnNlUEdBcnJheShzdWJpbmZvLT5zdWJwdWJsaWNhdGlvbnMs ICZwdWJuYW1lcywgJm5wdWJuYW1lcykpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA2ZGVjZWVmMjNmMy4uNDFl ZDQ3MDk2OWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzE5LDYgKzcxOSw3IEBAIHR5cGVkZWYgc3RydWN0 IF9TdWJzY3JpcHRpb25JbmZvCiAJYm9vbAkJc3ViZmFpbG92ZXI7CiAJYm9vbAkJc3VicmV0YWlu ZGVhZHR1cGxlczsKIAlpbnQJCQlzdWJtYXhyZXRlbnRpb247CisJY2hhcgkgICAqc3Vic2VydmVy bmFtZTsKIAljaGFyCSAgICpzdWJjb25uaW5mbzsKIAljaGFyCSAgICpzdWJzbG90bmFtZTsKIAlj aGFyCSAgICpzdWJzeW5jY29tbWl0OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBhYjEzYzkwZWQzMy4uY2FkYTcwOWI5 OTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCkBAIC02ODE2LDcgKzY4MTYsNyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCXByaW50UXVlcnlPcHQgbXlvcHQg PSBwc2V0LnBvcHQ7CiAJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKIAkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxMDAwMDAp CiAJewpAQCAtNjg4Niw2ICs2ODg2LDEwIEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBj aGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxv dmVyIikpOwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCiAJCXsKKwkJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCisJCQkJCQkJICAiLCAoc2VsZWN0IHNydm5hbWUgZnJvbSBwZ19mb3Jl aWduX3NlcnZlciB3aGVyZSBvaWQ9c3Vic2VydmVyKSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBn ZXR0ZXh0X25vb3AoIlNlcnZlciIpKTsKKwogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJ CQkJCQkgICIsIHN1YnJldGFpbmRlYWR0dXBsZXMgQVMgXCIlc1wiXG4iLAogCQkJCQkJCSAgZ2V0 dGV4dF9ub29wKCJSZXRhaW4gZGVhZCB0dXBsZXMiKSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5k ZXggOTg3Y2NlODIwYjkuLmUzNjk3YzE3NTAyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0y MzMyLDcgKzIzMzIsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkpCiAJCUNP TVBMRVRFX1dJVEgoIkNPTk5FQ1RJT04iLCAiRU5BQkxFIiwgIkRJU0FCTEUiLCAiT1dORVIgVE8i LAogCQkJCQkgICJSRU5BTUUgVE8iLCAiUkVGUkVTSCBQVUJMSUNBVElPTiIsICJSRUZSRVNIIFNF UVVFTkNFUyIsCi0JCQkJCSAgIlNFVCIsICJTS0lQICgiLCAiQUREIFBVQkxJQ0FUSU9OIiwgIkRS T1AgUFVCTElDQVRJT04iKTsKKwkJCQkJICAiU0VSVkVSIiwgIlNFVCIsICJTS0lQICgiLCAiQURE IFBVQkxJQ0FUSU9OIiwgIkRST1AgUFVCTElDQVRJT04iKTsKIAkvKiBBTFRFUiBTVUJTQ1JJUFRJ T04gPG5hbWU+IFJFRlJFU0ggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJ UFRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiUkVGUkVTSCIpKQogCQlDT01QTEVURV9XSVRI KCJQVUJMSUNBVElPTiIsICJTRVFVRU5DRVMiKTsKQEAgLTM4NjAsOSArMzg2MCwxNiBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAogLyogQ1JFQVRFIFNVQlNDUklQVElP TiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFu eSkpCi0JCUNPTVBMRVRFX1dJVEgoIkNPTk5FQ1RJT04iKTsKKwkJQ09NUExFVEVfV0lUSCgiU0VS VkVSIiwgIkNPTk5FQ1RJT04iKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NS SVBUSU9OIiwgTWF0Y2hBbnksICJTRVJWRVIiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgo IlBVQkxJQ0FUSU9OIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElP TiIsIE1hdGNoQW55LCAiQ09OTkVDVElPTiIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgi UFVCTElDQVRJT04iKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9O IiwgTWF0Y2hBbnksICJTRVJWRVIiLAorCQkJCQkgTWF0Y2hBbnksICJQVUJMSUNBVElPTiIpKQor CXsKKwkJLyogY29tcGxldGUgd2l0aCBub3RoaW5nIGhlcmUgYXMgdGhpcyByZWZlcnMgdG8gcmVt b3RlIHB1YmxpY2F0aW9ucyAqLworCX0KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VC U0NSSVBUSU9OIiwgTWF0Y2hBbnksICJDT05ORUNUSU9OIiwKIAkJCQkJIE1hdGNoQW55LCAiUFVC TElDQVRJT04iKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVp Z25fZGF0YV93cmFwcGVyLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93 cmFwcGVyLmgKaW5kZXggZTYwMDkwNjllODIuLjNkODM4OWRlNjVlIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyLmgKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3JhcHBlci5oCkBAIC0zOCw2ICszOCw5IEBAIENB VEFMT0cocGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIsMjMyOCxGb3JlaWduRGF0YVdyYXBwZXJSZWxh dGlvbklkKQogCU9pZAkJCWZkd3ZhbGlkYXRvciBCS0lfTE9PS1VQX09QVChwZ19wcm9jKTsJLyog b3B0aW9uIHZhbGlkYXRpb24KIAkJCQkJCQkJCQkJCQkJICogZnVuY3Rpb24sIG9yIDAgaWYKIAkJ CQkJCQkJCQkJCQkJICogbm9uZSAqLworCU9pZAkJCWZkd2Nvbm5lY3Rpb24gQktJX0xPT0tVUF9P UFQocGdfcHJvYyk7CS8qIGNvbm5lY3Rpb24gc3RyaW5nCisJCQkJCQkJCQkJCQkJCSAqIGZ1bmN0 aW9uLCBvciAwIGlmCisJCQkJCQkJCQkJCQkJCSAqIG5vbmUgKi8KIAogI2lmZGVmIENBVEFMT0df VkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCiAJYWNsaXRl bQkJZmR3YWNsWzFdOwkJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19zdWJzY3JpcHRpb24uaAppbmRleCBjMzY5YjVhYmZiMy4uYmJhN2EwYjY4YTYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtOTIsOSArOTIsMTEgQEAgQ0FUQUxPRyhw Z19zdWJzY3JpcHRpb24sNjEwMCxTdWJzY3JpcHRpb25SZWxhdGlvbklkKSBCS0lfU0hBUkVEX1JF TEFUSU9OIEJLSV9ST1cKIAkJCQkJCQkJCSAqIGV4Y2VlZGVkIG1heF9yZXRlbnRpb25fZHVyYXRp b24sIHdoZW4KIAkJCQkJCQkJCSAqIGRlZmluZWQgKi8KIAorCU9pZAkJCXN1YnNlcnZlcjsJCS8q IFNldCBpZiBjb25uZWN0aW5nIHdpdGggc2VydmVyICovCisKICNpZmRlZiBDQVRBTE9HX1ZBUkxF TgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENvbm5lY3Rp b24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KLQl0ZXh0CQlzdWJjb25uaW5mbyBCS0lfRk9S Q0VfTk9UX05VTEw7CisJdGV4dAkJc3ViY29ubmluZm87CS8qIFNldCBpZiBjb25uZWN0aW5nIHdp dGggY29ubmVjdGlvbiBzdHJpbmcgKi8KIAogCS8qIFNsb3QgbmFtZSBvbiBwdWJsaXNoZXIgKi8K IAlOYW1lRGF0YQlzdWJzbG90bmFtZSBCS0lfRk9SQ0VfTlVMTDsKQEAgLTIwNyw3ICsyMDksOCBA QCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAogI2VuZGlmCQkJCQkJCS8qIEVYUE9TRV9U T19DTElFTlRfQ09ERSAqLwogCi1leHRlcm4gU3Vic2NyaXB0aW9uICpHZXRTdWJzY3JpcHRpb24o T2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIFN1YnNjcmlwdGlvbiAqR2V0U3Vi c2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLAorCQkJCQkJCQkJIGJvb2wgYWNs Y2hlY2spOwogZXh0ZXJuIHZvaWQgRnJlZVN1YnNjcmlwdGlvbihTdWJzY3JpcHRpb24gKnN1Yik7 CiBleHRlcm4gdm9pZCBEaXNhYmxlU3Vic2NyaXB0aW9uKE9pZCBzdWJpZCk7CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oIGIvc3JjL2luY2x1ZGUvZm9yZWlnbi9m b3JlaWduLmgKaW5kZXggYzE4NWQxNDU4YTIuLjY1ZWQ5YTdmOTg3IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaAorKysgYi9zcmMvaW5jbHVkZS9mb3JlaWduL2ZvcmVp Z24uaApAQCAtMjgsNiArMjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBGb3JlaWduRGF0YVdyYXBwZXIK IAljaGFyCSAgICpmZHduYW1lOwkJLyogTmFtZSBvZiB0aGUgRkRXICovCiAJT2lkCQkJZmR3aGFu ZGxlcjsJCS8qIE9pZCBvZiBoYW5kbGVyIGZ1bmN0aW9uLCBvciAwICovCiAJT2lkCQkJZmR3dmFs aWRhdG9yOwkvKiBPaWQgb2YgdmFsaWRhdG9yIGZ1bmN0aW9uLCBvciAwICovCisJT2lkCQkJZmR3 Y29ubmVjdGlvbjsJLyogT2lkIG9mIGNvbm5lY3Rpb24gc3RyaW5nIGZ1bmN0aW9uLCBvciAwICov CiAJTGlzdAkgICAqb3B0aW9uczsJCS8qIGZkd29wdGlvbnMgYXMgRGVmRWxlbSBsaXN0ICovCiB9 IEZvcmVpZ25EYXRhV3JhcHBlcjsKIApAQCAtNjUsMTAgKzY2LDEyIEBAIHR5cGVkZWYgc3RydWN0 IEZvcmVpZ25UYWJsZQogCiAKIGV4dGVybiBGb3JlaWduU2VydmVyICpHZXRGb3JlaWduU2VydmVy KE9pZCBzZXJ2ZXJpZCk7CitleHRlcm4gY2hhciAqRm9yZWlnblNlcnZlck5hbWUoT2lkIHNlcnZl cmlkKTsKIGV4dGVybiBGb3JlaWduU2VydmVyICpHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQoT2lk IHNlcnZlcmlkLAogCQkJCQkJCQkJCQkgICBiaXRzMTYgZmxhZ3MpOwogZXh0ZXJuIEZvcmVpZ25T ZXJ2ZXIgKkdldEZvcmVpZ25TZXJ2ZXJCeU5hbWUoY29uc3QgY2hhciAqc3J2bmFtZSwKIAkJCQkJ CQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gY2hhciAqRm9yZWlnblNlcnZlckNvbm5l Y3Rpb25TdHJpbmcoT2lkIHVzZXJpZCwgT2lkIHNlcnZlcmlkKTsKIGV4dGVybiBVc2VyTWFwcGlu ZyAqR2V0VXNlck1hcHBpbmcoT2lkIHVzZXJpZCwgT2lkIHNlcnZlcmlkKTsKIGV4dGVybiBGb3Jl aWduRGF0YVdyYXBwZXIgKkdldEZvcmVpZ25EYXRhV3JhcHBlcihPaWQgZmR3aWQpOwogZXh0ZXJu IEZvcmVpZ25EYXRhV3JhcHBlciAqR2V0Rm9yZWlnbkRhdGFXcmFwcGVyRXh0ZW5kZWQoT2lkIGZk d2lkLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGYzNzEzMTgzNWJlLi4xMmUzNTdlODMxNiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDM4MCw2ICs0MzgwLDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdAogewogCU5vZGVUYWcJCXR5cGU7CiAJY2hhcgkgICAq c3VibmFtZTsJCS8qIE5hbWUgb2YgdGhlIHN1YnNjcmlwdGlvbiAqLworCWNoYXIJICAgKnNlcnZl cm5hbWU7CQkvKiBTZXJ2ZXIgbmFtZSBvZiBwdWJsaXNoZXIgKi8KIAljaGFyCSAgICpjb25uaW5m bzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHB1Ymxpc2hlciAqLwogCUxpc3QJICAgKnB1Ymxp Y2F0aW9uOwkvKiBPbmUgb3IgbW9yZSBwdWJsaWNhdGlvbiB0byBzdWJzY3JpYmUgdG8gKi8KIAlM aXN0CSAgICpvcHRpb25zOwkJLyogTGlzdCBvZiBEZWZFbGVtIG5vZGVzICovCkBAIC00Mzg4LDYg KzQzODksNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CiB0eXBlZGVm IGVudW0gQWx0ZXJTdWJzY3JpcHRpb25UeXBlCiB7CiAJQUxURVJfU1VCU0NSSVBUSU9OX09QVElP TlMsCisJQUxURVJfU1VCU0NSSVBUSU9OX1NFUlZFUiwKIAlBTFRFUl9TVUJTQ1JJUFRJT05fQ09O TkVDVElPTiwKIAlBTFRFUl9TVUJTQ1JJUFRJT05fU0VUX1BVQkxJQ0FUSU9OLAogCUFMVEVSX1NV QlNDUklQVElPTl9BRERfUFVCTElDQVRJT04sCkBAIC00NDAzLDYgKzQ0MDUsNyBAQCB0eXBlZGVm IHN0cnVjdCBBbHRlclN1YnNjcmlwdGlvblN0bXQKIAlOb2RlVGFnCQl0eXBlOwogCUFsdGVyU3Vi c2NyaXB0aW9uVHlwZSBraW5kOyAvKiBBTFRFUl9TVUJTQ1JJUFRJT05fT1BUSU9OUywgZXRjICov CiAJY2hhcgkgICAqc3VibmFtZTsJCS8qIE5hbWUgb2YgdGhlIHN1YnNjcmlwdGlvbiAqLworCWNo YXIJICAgKnNlcnZlcm5hbWU7CQkvKiBTZXJ2ZXIgbmFtZSBvZiBwdWJsaXNoZXIgKi8KIAljaGFy CSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHB1Ymxpc2hlciAqLwogCUxp c3QJICAgKnB1YmxpY2F0aW9uOwkvKiBPbmUgb3IgbW9yZSBwdWJsaWNhdGlvbiB0byBzdWJzY3Jp YmUgdG8gKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogTGlzdCBvZiBEZWZFbGVtIG5vZGVzICov CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDI1YWFhZThkMDVhLi44 NzY4Y2UzMGI2YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lu cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTIy NCw2ICsyMjQsNyBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ19leHRlbnNpb24ge2V4dGNvbmZpZ30g PT4gcGdfY2xhc3Mge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2ZvcmVpZ25fZGF0YV93cmFw cGVyIHtmZHdvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19m b3JlaWduX2RhdGFfd3JhcHBlciB7ZmR3aGFuZGxlcn0gPT4gcGdfcHJvYyB7b2lkfQogTk9USUNF OiAgY2hlY2tpbmcgcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIge2Zkd3ZhbGlkYXRvcn0gPT4gcGdf cHJvYyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIge2Zk d2Nvbm5lY3Rpb259ID0+IHBnX3Byb2Mge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2ZvcmVp Z25fc2VydmVyIHtzcnZvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2lu ZyBwZ19mb3JlaWduX3NlcnZlciB7c3J2ZmR3fSA9PiBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciB7 b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfdXNlcl9tYXBwaW5nIHt1bXVzZXJ9ID0+IHBnX2F1 dGhpZCB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3Jp cHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0Cmlu ZGV4IGE1ZmRmZTY4YTBlLi4zZmQ4YTE4YjczYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMSw2ICsxLDE0IEBACiAtLQogLS0gU1VCU0NSSVBUSU9O CiAtLQorLS0gZGlyZWN0b3J5IHBhdGhzIGFuZCBkbHN1ZmZpeCBhcmUgcGFzc2VkIHRvIHVzIGlu IGVudmlyb25tZW50IHZhcmlhYmxlcworXGdldGVudiBsaWJkaXIgUEdfTElCRElSCitcZ2V0ZW52 IGRsc3VmZml4IFBHX0RMU1VGRklYCitcc2V0IHJlZ3Jlc3NsaWIgOmxpYmRpciAnL3JlZ3Jlc3Mn IDpkbHN1ZmZpeAorQ1JFQVRFIEZVTkNUSU9OIHRlc3RfZmR3X2Nvbm5lY3Rpb24ob2lkLCBvaWQs IGludGVybmFsKQorICAgIFJFVFVSTlMgdGV4dAorICAgIEFTIDoncmVncmVzc2xpYicsICd0ZXN0 X2Zkd19jb25uZWN0aW9uJworICAgIExBTkdVQUdFIEM7CiBDUkVBVEUgUk9MRSByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIExPR0lOIFNVUEVSVVNFUjsKIENSRUFURSBST0xFIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIyOwogQ1JFQVRFIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMg SU4gUk9MRSBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uOwpAQCAtMTE2LDE4ICsxMjQsMTggQEAgQ1JF QVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQs IGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlv dSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBz dWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGlj YXRpb25zLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRp bWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4g PSBhbnkpOwogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRp bWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKICgx IHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViMzsKQEAgLTE0MCwxNSAr MTQ4LDMwIEBAIEVSUk9SOiAgaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6IGludmFs aWQgY29ubmVjdGlvbiBvcHRpb24gImlfZG9udF9leGlzCiAtLSBjb25uZWN0aW5nLCBzbyB0aGlz IGlzIHJlbGlhYmxlIGFuZCBzYWZlKQogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI1IENPTk5FQ1RJT04gJ3BvcnQ9LTEnIFBVQkxJQ0FUSU9OIHRlc3RwdWI7CiBFUlJPUjogIHN1 YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViNSIgY291bGQgbm90IGNvbm5lY3QgdG8gdGhlIHB1 Ymxpc2hlcjogaW52YWxpZCBwb3J0IG51bWJlcjogIi0xIgorQ1JFQVRFIEZPUkVJR04gREFUQSBX UkFQUEVSIHRlc3RfZmR3OworQ1JFQVRFIFNFUlZFUiB0ZXN0X3NlcnZlciBGT1JFSUdOIERBVEEg V1JBUFBFUiB0ZXN0X2ZkdzsKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgU0VSVkVSIHRlc3Rfc2VydmVyOworLS0gZmFpbCwgbmVlZCBDT05ORUNUSU9O IGNsYXVzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiB0ZXN0 X3NlcnZlciBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5l Y3QgPSBmYWxzZSk7CitFUlJPUjogIGZvcmVpZ24gZGF0YSB3cmFwcGVyICJ0ZXN0X2ZkdyIgZG9l cyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpb24gY29ubmVjdGlvbnMKK0RFVEFJTDogIEZvcmVpZ24g ZGF0YSB3cmFwcGVyIG11c3QgYmUgZGVmaW5lZCB3aXRoIENPTk5FQ1RJT04gc3BlY2lmaWVkLgor QUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHcgQ09OTkVDVElPTiB0ZXN0X2Zkd19j b25uZWN0aW9uOworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiB0 ZXN0X3NlcnZlciBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNv bm5lY3QgPSBmYWxzZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQg aXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVz dCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2Ny aXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9u cy4KK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjY7CitEUk9QIFVTRVIgTUFQUElO RyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciBTRVJWRVIgdGVzdF9zZXJ2ZXI7CitEUk9Q IFNFUlZFUiB0ZXN0X3NlcnZlcjsKK0RST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHc7 CiAtLSBmYWlsIC0gaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBkdXJpbmcgQUxURVIKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9S OiAgaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJm b29iYXIiIGluIGNvbm5lY3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERl c2NyaXB0aW9uICAgIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNO ICB8ICAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8 IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2Ny aXB0aW9uCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IFBVQkxJQ0FUSU9OIHRlc3RwdWIyLCB0ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpA QCAtMTU3LDEwICsxODAsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHNsb3RfbmFtZSA9ICduZXduYW1lJyk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNFVCAocGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAocnVuX2FzX293bmVyID0gdHJ1ZSk7CiBcZFJzKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGlt ZW91dCB8ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwg dCAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAw MDAgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVi bGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04g IHwgICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAw MDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gdHJ1ZSk7CkBAIC0xNzYsMTAg KzE5OSwxMCBAQCBFUlJPUjogIHVucmVjb2duaXplZCBzdWJzY3JpcHRpb24gcGFyYW1ldGVyOiAi Y3JlYXRlX3Nsb3QiCiAtLSBvawogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT S0lQIChsc24gPSAnMC8xMjM0NScpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAg UHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAg RGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9 IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDEyMzQ1IHwgdGVzdCBzdWJzY3JpcHRpb24K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAor LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAg ICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAxMjM0NSB8IHRlc3Qgc3Vic2NyaXB0aW9u CiAoMSByb3cpCiAKIC0tIG9rIC0gd2l0aCBsc24gPSBOT05FCkBAIC0xODgsMTAgKzIxMSwxMCBA QCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9IE5PTkUpOwog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8wJyk7CiBF UlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9uIChMU04pOiAwLzAKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQotIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IHRl c3Qgc3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlv biAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCAgICBE ZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0 ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCB0 ZXN0IHN1YnNjcmlwdGlvbgogKDEgcm93KQogCiBCRUdJTjsKQEAgLTIyNywxMCArMjUwLDEwIEBA IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAod2FsX3JlY2VpdmVy X3RpbWVvdXQgPSAnODBzJyk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2Zv byBTRVQgKHdhbF9yZWNlaXZlcl90aW1lb3V0ID0gJ2Zvb2JhcicpOwogRVJST1I6ICBpbnZhbGlk IHZhbHVlIGZvciBwYXJhbWV0ZXIgIndhbF9yZWNlaXZlcl90aW1lb3V0IjogImZvb2JhciIKIFxk UnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgIE5hbWUgICAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwg bG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDgwcyAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCisgICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRh aW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2 ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0MiB8IDgwcyAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRp b24KICgxIHJvdykKIAogLS0gcmVuYW1lIGJhY2sgdG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKQEAg LTI1OSwxOSArMjgyLDE5IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vi c2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGlu aXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0 aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlw dGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRp bWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yn0gICB8IHQgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCiAoMSBy b3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChiaW5hcnkgPSBm YWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1l ID0gTk9ORSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVy IHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0yODMsMjcgKzMwNiwyNyBAQCBDUkVBVEUgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5v dCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFu dWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlv biwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9u ICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAg ICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9u IAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gcGFyYWxsZWwpOwogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAw MDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVj ZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0 cmVhbWluZyA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAg ICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCiAoMSByb3cpCiAKIC0t IGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMzE4LDEwICszNDEsMTAgQEAg QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1 YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFs c2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2Ny aXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1 YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2 ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50 aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKICgxIHJvdykKIAog LS0gZmFpbCAtIHB1YmxpY2F0aW9uIHVzZWQgbW9yZSB0aGFuIG9uY2UKQEAgLTMzNiwxMCArMzU5 LDEwIEBAIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIzIiBpcyBub3QgaW4gc3Vic2NyaXB0 aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiAtLSBvayAtIGRlbGV0ZSBwdWJsaWNhdGlvbnMKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMSwg dGVzdHB1YjIgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlv biAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVy IHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCiAo MSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTM3NSwxOSAr Mzk4LDE5IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9u IHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJl cGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3Qs IGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byBy ZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAg ICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCiAoMSByb3cpCiAKIC0t IHdlIGNhbiBhbHRlciBzdHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJl dGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAg TFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAg ICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNl cnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8 IDAvMDAwMDAwMDAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtMzk3LDEwICs0MjAsMTAgQEAgQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1 dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBt dXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJz Y3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRp b25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1l b3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAg IHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNDEzLDE4ICs0MzYs MTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2Fz IGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGlj YXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5h YmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJl c2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKICgxIHJvdykKIAogQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVl KTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91 dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEg ICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3Jp cHRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAg ICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQzNywxMCArNDYwLDEw IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBj cmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0 aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJs ZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNo IHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVj ZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ1 NCwxOSArNDc3LDE5IEBAIE5PVElDRTogIG1heF9yZXRlbnRpb25fZHVyYXRpb24gaXMgaW5lZmZl Y3RpdmUgd2hlbiByZXRhaW5fZGVhZF90dXBsZXMgaXMgZGlzYWJsCiBXQVJOSU5HOiAgc3Vic2Ny aXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRp YXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9u IHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlv biB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IDEwMDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAxMDAw IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCiAoMSByb3cp CiAKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAobWF4X3Jl dGVudGlvbl9kdXJhdGlvbiA9IDApOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8 IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8 ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKICgxIHJvdykKIAog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUp OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMgYi9zcmMvdGVzdC9yZWdy ZXNzL3JlZ3Jlc3MuYwppbmRleCBhMDJmNDFjOTcyNy4uMTU4YzdiN2E0YzAgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVzcy5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVz cy5jCkBAIC03MjksNiArNzI5LDEzIEBAIHRlc3RfZmR3X2hhbmRsZXIoUEdfRlVOQ1RJT05fQVJH UykKIAlQR19SRVRVUk5fTlVMTCgpOwogfQogCitQR19GVU5DVElPTl9JTkZPX1YxKHRlc3RfZmR3 X2Nvbm5lY3Rpb24pOworRGF0dW0KK3Rlc3RfZmR3X2Nvbm5lY3Rpb24oUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlQR19SRVRVUk5fVEVYVF9QKGNzdHJpbmdfdG9fdGV4dCgiZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IikpOworfQorCiBQR19GVU5DVElPTl9JTkZPX1YxKGlzX2NhdGFsb2dfdGV4 dF91bmlxdWVfaW5kZXhfb2lkKTsKIERhdHVtCiBpc19jYXRhbG9nX3RleHRfdW5pcXVlX2luZGV4 X29pZChQR19GVU5DVElPTl9BUkdTKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwK aW5kZXggZDkzY2JjMjc5ZDkuLjk5MGQ3NWYxNzQ5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNj cmlwdGlvbi5zcWwKQEAgLTIsNiArMiwxNyBAQAogLS0gU1VCU0NSSVBUSU9OCiAtLQogCistLSBk aXJlY3RvcnkgcGF0aHMgYW5kIGRsc3VmZml4IGFyZSBwYXNzZWQgdG8gdXMgaW4gZW52aXJvbm1l bnQgdmFyaWFibGVzCitcZ2V0ZW52IGxpYmRpciBQR19MSUJESVIKK1xnZXRlbnYgZGxzdWZmaXgg UEdfRExTVUZGSVgKKworXHNldCByZWdyZXNzbGliIDpsaWJkaXIgJy9yZWdyZXNzJyA6ZGxzdWZm aXgKKworQ1JFQVRFIEZVTkNUSU9OIHRlc3RfZmR3X2Nvbm5lY3Rpb24ob2lkLCBvaWQsIGludGVy bmFsKQorICAgIFJFVFVSTlMgdGV4dAorICAgIEFTIDoncmVncmVzc2xpYicsICd0ZXN0X2Zkd19j b25uZWN0aW9uJworICAgIExBTkdVQUdFIEM7CisKIENSRUFURSBST0xFIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgTE9HSU4gU1VQRVJVU0VSOwogQ1JFQVRFIFJPTEUgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcjI7CiBDUkVBVEUgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMyBJTiBS T0xFIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb247CkBAIC04NSw2ICs5NiwyMSBAQCBDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjUgQ09OTkVDVElPTiAnaV9kb250X2V4aXN0PXBhcmFt JyBQVUJMSUNBVElPTgogLS0gY29ubmVjdGluZywgc28gdGhpcyBpcyByZWxpYWJsZSBhbmQgc2Fm ZSkKIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNSBDT05ORUNUSU9OICdwb3J0 PS0xJyBQVUJMSUNBVElPTiB0ZXN0cHViOwogCitDUkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIg dGVzdF9mZHc7CitDUkVBVEUgU0VSVkVSIHRlc3Rfc2VydmVyIEZPUkVJR04gREFUQSBXUkFQUEVS IHRlc3RfZmR3OworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciBTRVJWRVIgdGVzdF9zZXJ2ZXI7CisKKy0tIGZhaWwsIG5lZWQgQ09OTkVDVElPTiBjbGF1 c2UKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIgdGVzdF9zZXJ2 ZXIgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0g ZmFsc2UpOworCitBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdyBDT05ORUNUSU9O IHRlc3RfZmR3X2Nvbm5lY3Rpb247CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YjYgU0VSVkVSIHRlc3Rfc2VydmVyIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoc2xvdF9uYW1l ID0gTk9ORSwgY29ubmVjdCA9IGZhbHNlKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YjY7CisKK0RST1AgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IFNFUlZFUiB0ZXN0X3NlcnZlcjsKK0RST1AgU0VSVkVSIHRlc3Rfc2VydmVyOworRFJPUCBGT1JF SUdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdzsKKwogLS0gZmFpbCAtIGludmFsaWQgY29ubmVjdGlv biBzdHJpbmcgZHVyaW5nIEFMVEVSCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiAKLS0gCjIuNDMuMAoK --=-CfJat9Udqck+gWSsjhHG Content-Disposition: attachment; filename*0=v18-0002-dblink-support-foreign-data-wrapper-CONNECTION-c.pat; filename*1=ch Content-Type: text/x-patch; name="v18-0002-dblink-support-foreign-data-wrapper-CONNECTION-c.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmNDljMWQ1N2RkMjZmMGM3Yzc2Yjc5NGRmMTQ5NjNhYWU1MjI2MTgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDI2IEZlYiAyMDI2IDEwOjQyOjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTggMi8yXSBk Ymxpbms6IHN1cHBvcnQgZm9yZWlnbiBkYXRhIHdyYXBwZXIgQ09OTkVDVElPTgogY2xhdXNlLgoK LS0tCiBjb250cmliL2RibGluay9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIGNvbnRyaWIvZGJsaW5rL2RibGluay0tMS4yLS0xLjMuc3FsICAgICAgICAgICB8ICAxMiAr KwogLi4uL3tkYmxpbmstLTEuMi5zcWwgPT4gZGJsaW5rLS0xLjMuc3FsfSAgICAgIHwgIDExICst CiBjb250cmliL2RibGluay9kYmxpbmsuYyAgICAgICAgICAgICAgICAgICAgICAgfCAxNjMgKysr KysrKysrLS0tLS0tLS0tCiBjb250cmliL2RibGluay9kYmxpbmsuY29udHJvbCAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGNvbnRyaWIvZGJsaW5rL21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICAgICB8ICAgMyArLQogNiBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgODQgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjIt LTEuMy5zcWwKIHJlbmFtZSBjb250cmliL2RibGluay97ZGJsaW5rLS0xLjIuc3FsID0+IGRibGlu ay0tMS4zLnNxbH0gKDk2JSkKCmRpZmYgLS1naXQgYS9jb250cmliL2RibGluay9NYWtlZmlsZSBi L2NvbnRyaWIvZGJsaW5rL01ha2VmaWxlCmluZGV4IGZkZTBiNDlkZGJiLi5jYWE3NmM5Y2IyNyAx MDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsvTWFrZWZpbGUKKysrIGIvY29udHJpYi9kYmxpbmsv TWFrZWZpbGUKQEAgLTgsNyArOCw3IEBAIFBHX0NQUEZMQUdTID0gLUkkKGxpYnBxX3NyY2RpcikK IFNITElCX0xJTktfSU5URVJOQUwgPSAkKGxpYnBxKQogCiBFWFRFTlNJT04gPSBkYmxpbmsKLURB VEEgPSBkYmxpbmstLTEuMi5zcWwgZGJsaW5rLS0xLjEtLTEuMi5zcWwgZGJsaW5rLS0xLjAtLTEu MS5zcWwKK0RBVEEgPSBkYmxpbmstLTEuMy5zcWwgZGJsaW5rLS0xLjItLTEuMy5zcWwgZGJsaW5r LS0xLjEtLTEuMi5zcWwgZGJsaW5rLS0xLjAtLTEuMS5zcWwKIFBHRklMRURFU0MgPSAiZGJsaW5r IC0gY29ubmVjdCB0byBvdGhlciBQb3N0Z3JlU1FMIGRhdGFiYXNlcyIKIAogUkVHUkVTUyA9IGRi bGluawpkaWZmIC0tZ2l0IGEvY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjItLTEuMy5zcWwgYi9j b250cmliL2RibGluay9kYmxpbmstLTEuMi0tMS4zLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNzc5MjhhOWU2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmli L2RibGluay9kYmxpbmstLTEuMi0tMS4zLnNxbApAQCAtMCwwICsxLDEyIEBACisvKiBjb250cmli L2RibGluay9kYmxpbmstLTEuMi0tMS4zLnNxbCAqLworCistLSBjb21wbGFpbiBpZiBzY3JpcHQg aXMgc291cmNlZCBpbiBwc3FsLCByYXRoZXIgdGhhbiB2aWEgQUxURVIgRVhURU5TSU9OCitcZWNo byBVc2UgIkFMVEVSIEVYVEVOU0lPTiBkYmxpbmsgVVBEQVRFIFRPICcxLjMnIiB0byBsb2FkIHRo aXMgZmlsZS4gXHF1aXQKKworLS0gdGFrZXMgaW50ZXJuYWwgcGFyYW1ldGVyIHRvIHByZXZlbnQg Y2FsbGluZyBmcm9tIFNRTAorQ1JFQVRFIEZVTkNUSU9OIGRibGlua19mZHdfY29ubmVjdGlvbihv aWQsIG9pZCwgaW50ZXJuYWwpCitSRVRVUk5TIHRleHQKK0FTICdNT0RVTEVfUEFUSE5BTUUnCitM QU5HVUFHRSBDIFNUUklDVCBQQVJBTExFTCBSRVNUUklDVEVEOworCitBTFRFUiBGT1JFSUdOIERB VEEgV1JBUFBFUiBkYmxpbmtfZmR3IENPTk5FQ1RJT04gZGJsaW5rX2Zkd19jb25uZWN0aW9uOwpk aWZmIC0tZ2l0IGEvY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjIuc3FsIGIvY29udHJpYi9kYmxp bmsvZGJsaW5rLS0xLjMuc3FsCnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFtZSBmcm9tIGNvbnRy aWIvZGJsaW5rL2RibGluay0tMS4yLnNxbApyZW5hbWUgdG8gY29udHJpYi9kYmxpbmsvZGJsaW5r LS0xLjMuc3FsCmluZGV4IDQwNWVjY2IwZmY5Li4yMmU0ZWEyMDYxZSAxMDA2NDQKLS0tIGEvY29u dHJpYi9kYmxpbmsvZGJsaW5rLS0xLjIuc3FsCisrKyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay0t MS4zLnNxbApAQCAtMSw0ICsxLDQgQEAKLS8qIGNvbnRyaWIvZGJsaW5rL2RibGluay0tMS4yLnNx bCAqLworLyogY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjMuc3FsICovCiAKIC0tIGNvbXBsYWlu IGlmIHNjcmlwdCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhU RU5TSU9OCiBcZWNobyBVc2UgIkNSRUFURSBFWFRFTlNJT04gZGJsaW5rIiB0byBsb2FkIHRoaXMg ZmlsZS4gXHF1aXQKQEAgLTIzMiw0ICsyMzIsMTEgQEAgUkVUVVJOUyB2b2lkCiBBUyAnTU9EVUxF X1BBVEhOQU1FJywgJ2RibGlua19mZHdfdmFsaWRhdG9yJwogTEFOR1VBR0UgQyBTVFJJQ1QgUEFS QUxMRUwgU0FGRTsKIAotQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIGRibGlua19mZHcgVkFM SURBVE9SIGRibGlua19mZHdfdmFsaWRhdG9yOworLS0gdGFrZXMgaW50ZXJuYWwgcGFyYW1ldGVy IHRvIHByZXZlbnQgY2FsbGluZyBmcm9tIFNRTAorQ1JFQVRFIEZVTkNUSU9OIGRibGlua19mZHdf Y29ubmVjdGlvbihvaWQsIG9pZCwgaW50ZXJuYWwpCitSRVRVUk5TIHRleHQKK0FTICdNT0RVTEVf UEFUSE5BTUUnCitMQU5HVUFHRSBDIFNUUklDVCBQQVJBTExFTCBSRVNUUklDVEVEOworCitDUkVB VEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIgZGJsaW5rX2ZkdyBWQUxJREFUT1IgZGJsaW5rX2Zkd192 YWxpZGF0b3IKKyAgQ09OTkVDVElPTiBkYmxpbmtfZmR3X2Nvbm5lY3Rpb247CmRpZmYgLS1naXQg YS9jb250cmliL2RibGluay9kYmxpbmsuYyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay5jCmluZGV4 IDI0OThkODBjOGU3Li4zYTRiMzA3ZmY2NCAxMDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsvZGJs aW5rLmMKKysrIGIvY29udHJpYi9kYmxpbmsvZGJsaW5rLmMKQEAgLTE5OTMsNiArMTk5Myw4NyBA QCBkYmxpbmtfZmR3X3ZhbGlkYXRvcihQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9WT0lE KCk7CiB9CiAKKy8qCisgKiBJbXBsZW1lbnQgRkRXIENPTk5FQ1RJT04gY2xhdXNlLgorICovCitQ R19GVU5DVElPTl9JTkZPX1YxKGRibGlua19mZHdfY29ubmVjdGlvbik7CitEYXR1bQorZGJsaW5r X2Zkd19jb25uZWN0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJdXNlcmlkID0gUEdf R0VUQVJHX09JRCgwKTsKKwlPaWQJCQlzZXJ2ZXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJRm9y ZWlnblNlcnZlciAqZm9yZWlnbl9zZXJ2ZXIgPSBHZXRGb3JlaWduU2VydmVyKHNlcnZlcmlkKTsK KwlVc2VyTWFwcGluZyAqdXNlcl9tYXBwaW5nID0gR2V0VXNlck1hcHBpbmcodXNlcmlkLCBzZXJ2 ZXJpZCk7CisJRm9yZWlnbkRhdGFXcmFwcGVyICpmZHcgPSBHZXRGb3JlaWduRGF0YVdyYXBwZXIo Zm9yZWlnbl9zZXJ2ZXItPmZkd2lkKTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCUxpc3RDZWxs ICAgKmNlbGw7CisJU3RyaW5nSW5mb0RhdGEgYnVmOworCisJc3RhdGljIGNvbnN0IFBRY29ubmlu Zm9PcHRpb24gKm9wdGlvbnMgPSBOVUxMOworCisJaW5pdFN0cmluZ0luZm8oJmJ1Zik7CisKKwkv KgorCSAqIEdldCBsaXN0IG9mIHZhbGlkIGxpYnBxIG9wdGlvbnMuCisJICoKKwkgKiBUbyBhdm9p ZCB1bm5lY2Vzc2FyeSB3b3JrLCB3ZSBnZXQgdGhlIGxpc3Qgb25jZSBhbmQgdXNlIGl0IHRocm91 Z2hvdXQKKwkgKiB0aGUgbGlmZXRpbWUgb2YgdGhpcyBiYWNrZW5kIHByb2Nlc3MuICBXZSBkb24n dCBuZWVkIHRvIGNhcmUgYWJvdXQKKwkgKiBtZW1vcnkgY29udGV4dCBpc3N1ZXMsIGJlY2F1c2Ug UFFjb25uZGVmYXVsdHMgYWxsb2NhdGVzIHdpdGggbWFsbG9jLgorCSAqLworCWlmICghb3B0aW9u cykKKwl7CisJCW9wdGlvbnMgPSBQUWNvbm5kZWZhdWx0cygpOworCQlpZiAoIW9wdGlvbnMpCQkJ LyogYXNzdW1lIHJlYXNvbiBmb3IgZmFpbHVyZSBpcyBPT00gKi8KKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkRXX09VVF9PRl9NRU1PUlkpLAorCQkJCQkgZXJybXNn KCJvdXQgb2YgbWVtb3J5IiksCisJCQkJCSBlcnJkZXRhaWwoIkNvdWxkIG5vdCBnZXQgbGlicHEn cyBkZWZhdWx0IGNvbm5lY3Rpb24gb3B0aW9ucy4iKSkpOworCX0KKworCS8qIENoZWNrIHBlcm1p c3Npb25zLCB1c2VyIG11c3QgaGF2ZSB1c2FnZSBvbiB0aGUgc2VydmVyLiAqLworCWFjbHJlc3Vs dCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVyaWQsIHVz ZXJpZCwgQUNMX1VTQUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xj aGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9GT1JFSUdOX1NFUlZFUiwgZm9yZWlnbl9zZXJ2 ZXItPnNlcnZlcm5hbWUpOworCisJLyoKKwkgKiBGaXJzdCBhcHBlbmQgaGFyZGNvZGVkIG9wdGlv bnMgbmVlZGVkIGZvciBTQ1JBTSBwYXNzLXRocm91Z2gsIHNvIGlmIHRoZQorCSAqIHVzZXIgb3Zl cndyaXRlcyB0aGVzZSBvcHRpb25zIHdlIGNhbiBlcmVwb3J0IG9uIGRibGlua19jb25uc3RyX2No ZWNrCisJICogYW5kIGRibGlua19zZWN1cml0eV9jaGVjay4KKwkgKi8KKwlpZiAoTXlQcm9jUG9y dCAhPSBOVUxMICYmIE15UHJvY1BvcnQtPmhhc19zY3JhbV9rZXlzICYmIFVzZVNjcmFtUGFzc3Ro cm91Z2goZm9yZWlnbl9zZXJ2ZXIsIHVzZXJfbWFwcGluZykpCisJCWFwcGVuZFNDUkFNS2V5c0lu Zm8oJmJ1Zik7CisKKwlmb3JlYWNoKGNlbGwsIGZkdy0+b3B0aW9ucykKKwl7CisJCURlZkVsZW0g ICAgKmRlZiA9IGxmaXJzdChjZWxsKTsKKworCQlpZiAoaXNfdmFsaWRfZGJsaW5rX29wdGlvbihv cHRpb25zLCBkZWYtPmRlZm5hbWUsIEZvcmVpZ25EYXRhV3JhcHBlclJlbGF0aW9uSWQpKQorCQkJ YXBwZW5kU3RyaW5nSW5mbygmYnVmLCAiJXM9JyVzJyAiLCBkZWYtPmRlZm5hbWUsCisJCQkJCQkJ IGVzY2FwZV9wYXJhbV9zdHIoc3RyVmFsKGRlZi0+YXJnKSkpOworCX0KKworCWZvcmVhY2goY2Vs bCwgZm9yZWlnbl9zZXJ2ZXItPm9wdGlvbnMpCisJeworCQlEZWZFbGVtICAgICpkZWYgPSBsZmly c3QoY2VsbCk7CisKKwkJaWYgKGlzX3ZhbGlkX2RibGlua19vcHRpb24ob3B0aW9ucywgZGVmLT5k ZWZuYW1lLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCkpCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZi dWYsICIlcz0nJXMnICIsIGRlZi0+ZGVmbmFtZSwKKwkJCQkJCQkgZXNjYXBlX3BhcmFtX3N0cihz dHJWYWwoZGVmLT5hcmcpKSk7CisJfQorCisJZm9yZWFjaChjZWxsLCB1c2VyX21hcHBpbmctPm9w dGlvbnMpCisJeworCisJCURlZkVsZW0gICAgKmRlZiA9IGxmaXJzdChjZWxsKTsKKworCQlpZiAo aXNfdmFsaWRfZGJsaW5rX29wdGlvbihvcHRpb25zLCBkZWYtPmRlZm5hbWUsIFVzZXJNYXBwaW5n UmVsYXRpb25JZCkpCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIlcz0nJXMnICIsIGRlZi0+ ZGVmbmFtZSwKKwkJCQkJCQkgZXNjYXBlX3BhcmFtX3N0cihzdHJWYWwoZGVmLT5hcmcpKSk7CisJ fQorCisJUEdfUkVUVVJOX1RFWFRfUChjc3RyaW5nX3RvX3RleHQoYnVmLmRhdGEpKTsKK30KKwog CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgogICogaW50ZXJuYWwgZnVuY3Rpb25zCkBAIC0yODU1LDkzICsyOTM2LDE3IEBAIHN0 YXRpYyBjaGFyICoKIGdldF9jb25uZWN0X3N0cmluZyhjb25zdCBjaGFyICpzZXJ2ZXJuYW1lKQog ewogCUZvcmVpZ25TZXJ2ZXIgKmZvcmVpZ25fc2VydmVyID0gTlVMTDsKLQlVc2VyTWFwcGluZyAq dXNlcl9tYXBwaW5nOwotCUxpc3RDZWxsICAgKmNlbGw7Ci0JU3RyaW5nSW5mb0RhdGEgYnVmOwot CUZvcmVpZ25EYXRhV3JhcHBlciAqZmR3OwotCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CiAJY2hhcgkg ICAqc3J2bmFtZTsKIAotCXN0YXRpYyBjb25zdCBQUWNvbm5pbmZvT3B0aW9uICpvcHRpb25zID0g TlVMTDsKLQotCWluaXRTdHJpbmdJbmZvKCZidWYpOwotCi0JLyoKLQkgKiBHZXQgbGlzdCBvZiB2 YWxpZCBsaWJwcSBvcHRpb25zLgotCSAqCi0JICogVG8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yaywg d2UgZ2V0IHRoZSBsaXN0IG9uY2UgYW5kIHVzZSBpdCB0aHJvdWdob3V0Ci0JICogdGhlIGxpZmV0 aW1lIG9mIHRoaXMgYmFja2VuZCBwcm9jZXNzLiAgV2UgZG9uJ3QgbmVlZCB0byBjYXJlIGFib3V0 Ci0JICogbWVtb3J5IGNvbnRleHQgaXNzdWVzLCBiZWNhdXNlIFBRY29ubmRlZmF1bHRzIGFsbG9j YXRlcyB3aXRoIG1hbGxvYy4KLQkgKi8KLQlpZiAoIW9wdGlvbnMpCi0JewotCQlvcHRpb25zID0g UFFjb25uZGVmYXVsdHMoKTsKLQkJaWYgKCFvcHRpb25zKQkJCS8qIGFzc3VtZSByZWFzb24gZm9y IGZhaWx1cmUgaXMgT09NICovCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJD T0RFX0ZEV19PVVRfT0ZfTUVNT1JZKSwKLQkJCQkJIGVycm1zZygib3V0IG9mIG1lbW9yeSIpLAot CQkJCQkgZXJyZGV0YWlsKCJDb3VsZCBub3QgZ2V0IGxpYnBxJ3MgZGVmYXVsdCBjb25uZWN0aW9u IG9wdGlvbnMuIikpKTsKLQl9Ci0KIAkvKiBmaXJzdCBnYXRoZXIgdGhlIHNlcnZlciBjb25uc3Ry IG9wdGlvbnMgKi8KIAlzcnZuYW1lID0gcHN0cmR1cChzZXJ2ZXJuYW1lKTsKIAl0cnVuY2F0ZV9p ZGVudGlmaWVyKHNydm5hbWUsIHN0cmxlbihzcnZuYW1lKSwgZmFsc2UpOwogCWZvcmVpZ25fc2Vy dmVyID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShzcnZuYW1lLCB0cnVlKTsKIAotCWlmIChmb3Jl aWduX3NlcnZlcikKLQl7Ci0JCU9pZAkJCXNlcnZlcmlkID0gZm9yZWlnbl9zZXJ2ZXItPnNlcnZl cmlkOwotCQlPaWQJCQlmZHdpZCA9IGZvcmVpZ25fc2VydmVyLT5mZHdpZDsKLQkJT2lkCQkJdXNl cmlkID0gR2V0VXNlcklkKCk7Ci0KLQkJdXNlcl9tYXBwaW5nID0gR2V0VXNlck1hcHBpbmcodXNl cmlkLCBzZXJ2ZXJpZCk7Ci0JCWZkdyA9IEdldEZvcmVpZ25EYXRhV3JhcHBlcihmZHdpZCk7Ci0K LQkJLyogQ2hlY2sgcGVybWlzc2lvbnMsIHVzZXIgbXVzdCBoYXZlIHVzYWdlIG9uIHRoZSBzZXJ2 ZXIuICovCi0JCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRp b25JZCwgc2VydmVyaWQsIHVzZXJpZCwgQUNMX1VTQUdFKTsKLQkJaWYgKGFjbHJlc3VsdCAhPSBB Q0xDSEVDS19PSykKLQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0ZPUkVJR05f U0VSVkVSLCBmb3JlaWduX3NlcnZlci0+c2VydmVybmFtZSk7Ci0KLQkJLyoKLQkJICogRmlyc3Qg YXBwZW5kIGhhcmRjb2RlZCBvcHRpb25zIG5lZWRlZCBmb3IgU0NSQU0gcGFzcy10aHJvdWdoLCBz byBpZgotCQkgKiB0aGUgdXNlciBvdmVyd3JpdGVzIHRoZXNlIG9wdGlvbnMgd2UgY2FuIGVyZXBv cnQgb24KLQkJICogZGJsaW5rX2Nvbm5zdHJfY2hlY2sgYW5kIGRibGlua19zZWN1cml0eV9jaGVj ay4KLQkJICovCi0JCWlmIChNeVByb2NQb3J0ICE9IE5VTEwgJiYgTXlQcm9jUG9ydC0+aGFzX3Nj cmFtX2tleXMgJiYgVXNlU2NyYW1QYXNzdGhyb3VnaChmb3JlaWduX3NlcnZlciwgdXNlcl9tYXBw aW5nKSkKLQkJCWFwcGVuZFNDUkFNS2V5c0luZm8oJmJ1Zik7Ci0KLQkJZm9yZWFjaChjZWxsLCBm ZHctPm9wdGlvbnMpCi0JCXsKLQkJCURlZkVsZW0gICAgKmRlZiA9IGxmaXJzdChjZWxsKTsKLQot CQkJaWYgKGlzX3ZhbGlkX2RibGlua19vcHRpb24ob3B0aW9ucywgZGVmLT5kZWZuYW1lLCBGb3Jl aWduRGF0YVdyYXBwZXJSZWxhdGlvbklkKSkKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIl cz0nJXMnICIsIGRlZi0+ZGVmbmFtZSwKLQkJCQkJCQkJIGVzY2FwZV9wYXJhbV9zdHIoc3RyVmFs KGRlZi0+YXJnKSkpOwotCQl9Ci0KLQkJZm9yZWFjaChjZWxsLCBmb3JlaWduX3NlcnZlci0+b3B0 aW9ucykKLQkJewotCQkJRGVmRWxlbSAgICAqZGVmID0gbGZpcnN0KGNlbGwpOwotCi0JCQlpZiAo aXNfdmFsaWRfZGJsaW5rX29wdGlvbihvcHRpb25zLCBkZWYtPmRlZm5hbWUsIEZvcmVpZ25TZXJ2 ZXJSZWxhdGlvbklkKSkKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIlcz0nJXMnICIsIGRl Zi0+ZGVmbmFtZSwKLQkJCQkJCQkJIGVzY2FwZV9wYXJhbV9zdHIoc3RyVmFsKGRlZi0+YXJnKSkp OwotCQl9Ci0KLQkJZm9yZWFjaChjZWxsLCB1c2VyX21hcHBpbmctPm9wdGlvbnMpCi0JCXsKLQot CQkJRGVmRWxlbSAgICAqZGVmID0gbGZpcnN0KGNlbGwpOwotCi0JCQlpZiAoaXNfdmFsaWRfZGJs aW5rX29wdGlvbihvcHRpb25zLCBkZWYtPmRlZm5hbWUsIFVzZXJNYXBwaW5nUmVsYXRpb25JZCkp Ci0JCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAiJXM9JyVzJyAiLCBkZWYtPmRlZm5hbWUsCi0J CQkJCQkJCSBlc2NhcGVfcGFyYW1fc3RyKHN0clZhbChkZWYtPmFyZykpKTsKLQkJfQotCi0JCXJl dHVybiBidWYuZGF0YTsKLQl9Ci0JZWxzZQorCWlmICghZm9yZWlnbl9zZXJ2ZXIpCiAJCXJldHVy biBOVUxMOworCisJcmV0dXJuIEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKEdldFVzZXJJ ZCgpLCBmb3JlaWduX3NlcnZlci0+c2VydmVyaWQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvY29u dHJpYi9kYmxpbmsvZGJsaW5rLmNvbnRyb2wgYi9jb250cmliL2RibGluay9kYmxpbmsuY29udHJv bAppbmRleCBiZGQxN2QyOGE0Yi4uODE2ZDE5ZjQ0ODMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZGJs aW5rL2RibGluay5jb250cm9sCisrKyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay5jb250cm9sCkBA IC0xLDUgKzEsNSBAQAogIyBkYmxpbmsgZXh0ZW5zaW9uCiBjb21tZW50ID0gJ2Nvbm5lY3QgdG8g b3RoZXIgUG9zdGdyZVNRTCBkYXRhYmFzZXMgZnJvbSB3aXRoaW4gYSBkYXRhYmFzZScKLWRlZmF1 bHRfdmVyc2lvbiA9ICcxLjInCitkZWZhdWx0X3ZlcnNpb24gPSAnMS4zJwogbW9kdWxlX3BhdGhu YW1lID0gJyRsaWJkaXIvZGJsaW5rJwogcmVsb2NhdGFibGUgPSB0cnVlCmRpZmYgLS1naXQgYS9j b250cmliL2RibGluay9tZXNvbi5idWlsZCBiL2NvbnRyaWIvZGJsaW5rL21lc29uLmJ1aWxkCmlu ZGV4IGUyNDg5ZjQxMjI5Li5mYzkxYjRhOTE4ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsv bWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9kYmxpbmsvbWVzb24uYnVpbGQKQEAgLTIyLDcgKzIy LDggQEAgaW5zdGFsbF9kYXRhKAogICAnZGJsaW5rLmNvbnRyb2wnLAogICAnZGJsaW5rLS0xLjAt LTEuMS5zcWwnLAogICAnZGJsaW5rLS0xLjEtLTEuMi5zcWwnLAotICAnZGJsaW5rLS0xLjIuc3Fs JywKKyAgJ2RibGluay0tMS4yLS0xLjMuc3FsJywKKyAgJ2RibGluay0tMS4zLnNxbCcsCiAgIGt3 YXJnczogY29udHJpYl9kYXRhX2FyZ3MsCiApCiAKLS0gCjIuNDMuMAoK --=-CfJat9Udqck+gWSsjhHG--