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 1vjEoA-00BeBY-3B for pgsql-hackers@arkaria.postgresql.org; Fri, 23 Jan 2026 10:54:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vjEo9-00HFF9-2d for pgsql-hackers@arkaria.postgresql.org; Fri, 23 Jan 2026 10:54:30 +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 1vjEo8-00HFF0-2E for pgsql-hackers@lists.postgresql.org; Fri, 23 Jan 2026 10:54:29 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vjEo5-001u8S-1S for pgsql-hackers@lists.postgresql.org; Fri, 23 Jan 2026 10:54:27 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-59b76844f89so2023604e87.1 for ; Fri, 23 Jan 2026 02:54:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769165664; cv=none; d=google.com; s=arc-20240605; b=TVPZsyXP9NCwAOTEv7t3NK0P9Fk56K7MDnusOIXp2euU7ODu/CSGBQvc2YNrjiL4xQ bD3X/zbHYH5ps2CvgWVG5onjvmQhCCkl1CWAqXGRICQPsm/3I4bGa+jFzdQW/hh+L4Up 8SDgNTZIPyxQG9gdqFSSYfNc4JANx+kA2akBL4t3Sp3r5TaKw9CwAPvqLy1KdiI1e1Tp cOS2QEp4kjukFN+YYp2YlE7aUpYsQhihjYULy+ARxYWBzX9IFtT4ZAmZhCF5XCakHDTL jGDQthr2qbubO3Kcoj/pP8m0VW9dISiB+XL6NtvHKqSgVVsYaJVcrJYDWV2VL8D6iC6E fVwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=B9vuuwp8jEci8hrta7ORN7xJa3KsAMuX4UMbvKRRKvk=; fh=E3oLE1GHaBY6TwNIlGBCtI964yEE+BN1R15ZSpq3Mrk=; b=C8h1zLMpl0+EdcvWp16+4U8F1qeGIdGXaO4IrY6vI7M3S7WHgDu8fwanXmzfI+LuaW sybp32ZoD05lWqZrPdakjtguyuey+WvvcxSVht97iHlP7pbxvvTrhWJnFFemMh7RVc0P xVHrQvxxE1VkojzCtC8bD8pj1IgPOH8LRrbZfCw7qx5GAJzdsWywSgwdSzWXOiZpzfM5 B2+pfThyqn9QWMfLsaYDBxlX6KJ/u6ATojqoWtKwrv1TnfCDGXNFf2Tb2txwjdxDTEKH KtjmZedwdRdFZgOrWoCCqyK6uhv0rwBFzZeSUzQ82T4YzuGLtmEESbgOB/WYhTH+OrHY ZSoQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769165664; x=1769770464; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=B9vuuwp8jEci8hrta7ORN7xJa3KsAMuX4UMbvKRRKvk=; b=BmlzYgvtJ/Lde0rw5gnNllCVa/RvBXk8HWgEWAB+n7UmHoWJhTe2udisYg+9TzOVuJ YpH+urcuRCDI4x3q1rzkcibD8UBV068gv1QHUBaxJFQwk0n/1qW1YVjNLALt3DTeuccz tPWdccJvewbyNDtf8+KJRsyY3m/7yV6RVmG2+pU4a3pNRMmDeB20NsqeZJ9xtljxjJJV OoRf9o9LwuxzCvnkveMtmeoyNREEiN7a9+ciY44JSXuA+z5ZcXS7DC9/X7BiNgchfvf8 bBDNnXw8gd0LXWWoe5D7p/VBU/ZKXeYfScRnlCF7S7kxfBeaF2mzMwtSnLvdT5CaIMiP 8s1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769165664; x=1769770464; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=B9vuuwp8jEci8hrta7ORN7xJa3KsAMuX4UMbvKRRKvk=; b=Th5GjU+uJoIxJC/d8Jk4TMrB8Zj+A2EswIxYS1KmpEynwT8MaWQ24iU7zpSbwbSwp7 j4+A+DseyTmZB9//AG77elGL5o3NARwcaaJL+9vdR4wU+nzO5HIraeycd2f1PhVdig4i sm3ghWuBCYYXCvCAhl3BLDeCOPRC0nb0bKKc8Ax56+L8nVe3g2a+x2xdb4kkbmSY+3YN nelrBcXEPLfx1I5geSuALzBqkKfg83GCWOpBVFP97BG0yqzWPtaxTW6/ztFJfFOD5Tpa qtIM6PHxR75B2t7HRqA1G2lcdT4SCS2BNQNX+zT1KcU5TxWxqSsAvU8j1DV8Cy0urCWz DbUA== X-Forwarded-Encrypted: i=1; AJvYcCUi6bd4ii7BOJ2RlBwPjLj9rZuPZw16GKdYSFxz1IyZs7NU3+s6MYUOsH46weOhPAMdO/1R31USBsNr1kUH@lists.postgresql.org X-Gm-Message-State: AOJu0YzSEE6jSHNSb542sZy9IKzR/9FRofiz5CxF97FBrLQpVejIurcQ 5kTEIYIzEKfTOqArOX6fqiNltyDnb5X/65BRQEJogiI0Mig0AxMwTBNu+sfFWDrgoLW8/lW3PwQ ipA3yyS1SoGsQ3hiClYpcgvYJWKFhUQs= X-Gm-Gg: AZuq6aJF+OcXjTrNZdp+HnY8HXT2fM1nhBKph68tRJ8kaJciXtBCsPDF2Ie0OJwnmMR A5jTYEhFex3X5/FY6x4Mr4U7xkclA7oLP5AnoqrHH4wcQcfjHtreLkn49AKkj6AGuGZLPLVxVHL AI13aUdmVXi1fNij5IbNDt2XNjZEPOPF+9JQwfSi0YJcOG4vJWGlpAwSEbKibx/gbUQ9qe/xJdA a3sio4uZ5w00KbQTcILjI1PAvxWx73GdhU3MOH8Qxki6mBfhjhZ8Ozagi2SyYhnOIYoDQE= X-Received: by 2002:a05:6512:138c:b0:598:efb0:b81b with SMTP id 2adb3069b0e04-59de48fb025mr856138e87.14.1769165663829; Fri, 23 Jan 2026 02:54:23 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Fri, 23 Jan 2026 16:24:05 +0530 X-Gm-Features: AZwV_QjwLZkTTVUJ55g4Cmw09y87gCaNkCZMD6GyvuSNPbKz-CZocHTFuybteic Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: vignesh C Cc: Peter Smith , Amit Kapila , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000f1181b06490bfa93" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f1181b06490bfa93 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jan 20, 2026 at 6:48=E2=80=AFPM vignesh C wro= te: > > On Mon, 19 Jan 2026 at 10:57, Dilip Kumar wrote: > > > > On Mon, Jan 19, 2026 at 9:42=E2=80=AFAM Peter Smith wrote: > > > > > > Some review comments for v22-0003. > > > > > > =3D=3D=3D=3D=3D=3D > > > > > > 1. > > > It looks like none of my previous v20-0003 review comments [1] have > > > been addressed. Maybe accidentally overlooked? > > > > > > =3D=3D=3D=3D=3D=3D > > > > > > 2. > > > + > > > + > > > + The internal conflict logging table is strictly tied to > > > the lifecycle of the > > > + subscription or the > > > conflict_log_destination setting. If > > > + the subscription is dropped, or if the destination is cha= nged to > > > + log, the table and all its recorded > > > conflict data are > > > + permanently deleted. To perform a > > > post-mortem analysis > > > + after removing a subscription, users must manually back u= p > > > or rename the > > > + conflict table before the deletion occurs. > > > + > > > + > > > > > > 2a. > > > Let's consistently call this the "Conflict log table", same as > > > everywhere else, not "logging table". > > > > > > ~ > > > > > > 2b. > > > This is only a caution for the CLT, so I felt it's better to put this > > > in the scope of the 'table' param value. > > > > > > ~~~ > > > > > > 3. > > > + analysis of conflicts. This table is automatically > > > dropped when the > > > + subscription is removed. > > > > > > If you move the to this scope, as suggested above in #2b, > > > then you can remove the sentence "This table is automatically dropped > > > when the subscription is removed", because that is duplicate > > > information you already wrote in the caution. > > > > The attached patch fixes above comments and other comments reported in > > v22-0001 and v22-0002 > > The tests are failing randomly at the following places > +# Wait for the conflict to be logged in the CLT > +my $log_check =3D $node_subscriber->poll_query_until( > + 'postgres', > + "SELECT count(*) > 0 FROM $clt;" > +); > + > +my $conflict_check =3D $node_subscriber->safe_psql('postgres', > + "SELECT count(*) FROM $clt WHERE conflict_type =3D > 'multiple_unique_conflicts';"); > +is($conflict_check, 1, 'Verified multiple_unique_conflicts logged > into conflict log table'); > > > +# Wait for the conflict to be logged in the CLT > +$log_check =3D $node_subscriber->poll_query_until( > + 'postgres', > + "SELECT count(*) > 0 FROM $clt;" > +); > + > +$conflict_check =3D $node_subscriber->safe_psql('postgres', > + "SELECT count(*) FROM $clt WHERE conflict_type =3D > 'multiple_unique_conflicts';"); > +is($conflict_check, 1, 'Verified multiple_unique_conflicts logged > into conflict log table'); > > > In both places it fails because the number of conflict records > inserted can be more than 1 like below: > [18:35:58.342](1.786s) not ok 1 - Verified multiple_unique_conflicts > logged into conflict log table > [18:35:58.346](0.004s) > [18:35:58.347](0.002s) # Failed test 'Verified > multiple_unique_conflicts logged into conflict log table' > # at t/035_conflicts.pl line 104. > [18:35:58.348](0.000s) # got: '2' > # expected: '1' > > How about we check that the record count >=3D 1 and check for 't'. Yeah that makes sense, fixed that and also fixed Shveta's comments, now only doc changes suggestions from Peter are pending. --=20 Regards, Dilip Kumar Google --000000000000f1181b06490bfa93 Content-Type: application/octet-stream; name="v24-0003-Doccumentation-patch.patch" Content-Disposition: attachment; filename="v24-0003-Doccumentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkqrjkmn2 RnJvbSAzZDI1NjllM2U4ZTU2ZjkwYTczZGI2MDkzNTMwMTgzYjdjODFkNjUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyMSBKYW4gMjAyNiAxODozNzoyNSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI0 IDMvM10gRG9jY3VtZW50YXRpb24gcGF0Y2gKCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgfCAgMTQgKystCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCB8ICA0NCArKysrKysrKwogMyBmaWxlcyBjaGFu Z2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbAppbmRleCA1MDI4ZmU5YWYwOS4uNWMxZjhkYTYzZTQgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjg5LDYgKzI4OSwxOSBAQAogICAgb3B0 aW9uIG9mIDxjb21tYW5kPkNSRUFURSBTVUJTQ1JJUFRJT048L2NvbW1hbmQ+IGZvciBkZXRhaWxz LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDb25mbGljdHMgdGhhdCBvY2N1ciBkdXJpbmcg cmVwbGljYXRpb24gYXJlLCBieSBkZWZhdWx0LCBsb2dnZWQgYXMgcGxhaW4gdGV4dAorICAgaW4g dGhlIHNlcnZlciBsb2csIHdoaWNoIGNhbiBtYWtlIGF1dG9tYXRlZCBtb25pdG9yaW5nIGFuZCBh bmFseXNpcyBkaWZmaWN1bHQuCisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElPTjwv Y29tbWFuZD4gY29tbWFuZCBwcm92aWRlcyB0aGUKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVh dGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3RpbmF0aW9uIj4KKyAg IDxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+IG9wdGlv biB0byByZWNvcmQgZGV0YWlsZWQKKyAgIGNvbmZsaWN0IGluZm9ybWF0aW9uIGluIGEgc3RydWN0 dXJlZCwgcXVlcnlhYmxlIGZvcm1hdC4gV2hlbiB0aGlzIHBhcmFtZXRlcgorICAgaXMgc2V0IHRv IDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+LCB0aGUg c3lzdGVtCisgICBhdXRvbWF0aWNhbGx5IG1hbmFnZXMgYSBkZWRpY2F0ZWQgY29uZmxpY3QgbG9n IHRhYmxlLCB3aGljaCBpcyBjcmVhdGVkIGFuZAorICAgZHJvcHBlZCBhbG9uZyB3aXRoIHRoZSBz dWJzY3JpcHRpb24uIFRoaXMgc2lnbmlmaWNhbnRseSBpbXByb3ZlcyBwb3N0LW1vcnRlbQorICAg YW5hbHlzaXMgYW5kIG9wZXJhdGlvbmFsIHZpc2liaWxpdHkgb2YgdGhlIHJlcGxpY2F0aW9uIHNl dHVwLgorICA8L3BhcmE+CisKICAgPHNlY3QyIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLXN1YnNj cmlwdGlvbi1zbG90Ij4KICAgIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIFNsb3QgTWFuYWdl bWVudDwvdGl0bGU+CiAKQEAgLTIxMTgsNyArMjEzMSw5OCBAQCBQdWJsaWNhdGlvbnM6CiAgIDwv cGFyYT4KIAogICA8cGFyYT4KLSAgIFRoZSBsb2cgZm9ybWF0IGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0cyBpcyBhcyBmb2xsb3dzOgorICAgV2hlbiB0aGUgPGxpbmsgbGlua2VuZD0i c3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRp b24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+Cisg ICBwYXJhbWV0ZXIgaXMgc2V0IHRvIDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJh bD5hbGw8L2xpdGVyYWw+LCB0aGUgc3lzdGVtCisgICBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBu ZXcgdGFibGUgd2l0aCBhIHByZWRlZmluZWQgc2NoZW1hIHRvIGxvZyBjb25mbGljdAorICAgZGV0 YWlscy4gVGhpcyB0YWJsZSBpcyBjcmVhdGVkIGluIHRoZSBkZWRpY2F0ZWQKKyAgIDxsaXRlcmFs PnBnX2NvbmZsaWN0PC9saXRlcmFsPiBuYW1lc3BhY2UuICBUaGUgbmFtZSBvZiB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlCisgICBpcyA8bGl0ZXJhbD5wZ19jb25mbGljdF8mbHQ7c3ViaWQmZ3Q7PC9s aXRlcmFsPi4gVGhlIHNjaGVtYSBvZiB0aGlzCisgICB0YWJsZSBpcyBkZXRhaWxlZCBpbgorICAg PHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1sb2ctc2NoZW1hIi8+ LgorICA8L3BhcmE+CisKKyAgPHRhYmxlIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0 LWxvZy1zY2hlbWEiPgorICAgPHRpdGxlPkNvbmZsaWN0IExvZyBUYWJsZSBTY2hlbWE8L3RpdGxl PgorICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+Q29sdW1uPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgIDxl bnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisgICAg PHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFs PjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+b2lkPC90eXBlPjwvZW50cnk+CisgICAgICA8 ZW50cnk+VGhlIE9JRCBvZiB0aGUgbG9jYWwgdGFibGUgd2hlcmUgdGhlIGNvbmZsaWN0IG9jY3Vy cmVkLjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRl cmFsPnNjaGVtYW5hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT50ZXh0 PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHNjaGVtYSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5yZWxuYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5 cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50 cnk+PHR5cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSB0eXBlIG9mIGNv bmZsaWN0IHRoYXQgb2NjdXJyZWQgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVy YWw+KS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0 ZXJhbD5yZW1vdGVfeGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+eGlk PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSB0cmFuc2FjdGlvbiBJRCB0 aGF0IGNhdXNlZCB0aGUgY29uZmxpY3QuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+ CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF9sc248L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT48dHlwZT5wZ19sc248L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF90 czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnRpbWVzdGFtcHR6PC90eXBl PjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSBjb21taXQgdGltZXN0YW1wIG9mIHRo ZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX29yaWdpbjwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUgb3Jp Z2luIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX3R1cGxlPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5 PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWluZyByZW1vdGUgcm93IHRoYXQg Y2F1c2VkIHRoZSBjb25mbGljdC48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT48dHlwZT5qc29uW108L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT4KKyAg ICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCBzdGF0 ZSBmb3IgZWFjaCBjb25mbGljdCBhdHRlbXB0LgorICAgICAgIEVhY2ggb2JqZWN0IGluY2x1ZGVz IHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJRCAoPGxpdGVyYWw+eGlkPC9saXRlcmFsPiksIGNvbW1p dAorICAgICAgIHRpbWVzdGFtcCAoPGxpdGVyYWw+Y29tbWl0X3RzPC9saXRlcmFsPiksIG9yaWdp biAoPGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPiksCisgICAgICAgY29uZmxpY3Rpbmcga2V5IGRh dGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAg ICAgaW1hZ2UgKDxsaXRlcmFsPnR1cGxlPC9saXRlcmFsPikuCisgICAgICA8L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisKKyAgPHBh cmE+CisgICBUaGUgY29uZmxpY3Rpbmcgcm93IGRhdGEsIGluY2x1ZGluZyB0aGUgaW5jb21pbmcg cmVtb3RlIHJvdyBhbmQgdGhlIGFzc29jaWF0ZWQKKyAgIGxvY2FsIGNvbmZsaWN0IGRldGFpbHMs IGlzIHN0b3JlZCBpbiA8dHlwZT5KU09OPC90eXBlPiBmb3JtYXRzICg8bGl0ZXJhbD5yZW1vdGVf dHVwbGU8L2xpdGVyYWw+CisgICBhbmQgPGxpdGVyYWw+bG9jYWxfY29uZmxpY3RzPC9saXRlcmFs PikgZm9yIGZsZXhpYmxlIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcy4KKyAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICBpcyBsZWZ0IGF0IHRoZSBkZWZhdWx0IHNldHRp bmcgb3IgZXhwbGljaXRseSBjb25maWd1cmVkIGFzIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4KKyAg IG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3Rz IGFyZSBsb2dnZWQgaW4gdGhlCisgICBmb2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9H OiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1l PC9yZXBsYWNlYWJsZT4uPHJlcGxhY2VhYmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29u ZmxpY3Q9PHJlcGxhY2VhYmxlPmNvbmZsaWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBs YWNlYWJsZT5bOiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwv cmVwbGFjZWFibGU+IFssIC4uLiBdXS4KQEAgLTI0MTEsNiArMjUxNSwxNiBAQCBDT05URVhUOiAg cHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIg ZHVyaW5nICJJTlNFUgogICAgICBrZXkgb3IgcmVwbGljYSBpZGVudGl0eSBkZWZpbmVkIGZvciBp dC4KICAgICA8L3BhcmE+CiAgICA8L2xpc3RpdGVtPgorCisgICA8bGlzdGl0ZW0+CisgICAgPHBh cmE+CisgICAgIFRoZSBpbnRlcm5hbCB0YWJsZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgd2hlbgor ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNv bmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u PC9saXRlcmFsPjwvbGluaz4KKyAgICAgaXMgc2V0IHRvIDxsaXRlcmFsPnRhYmxlPC9saXRlcmFs PiBvciA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+IGlzIGV4Y2x1ZGVkIGZyb20KKyAgICAgbG9naWNh bCByZXBsaWNhdGlvbi4gSXQgd2lsbCBub3QgYmUgcHVibGlzaGVkLCBldmVuIGlmIGEgcHVibGlj YXRpb24gb24gdGhlCisgICAgIHN1YnNjcmliZXIgaXMgZGVmaW5lZCB1c2luZyA8bGl0ZXJhbD5G T1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4uCisgICAgPC9wYXJhPgorICAgPC9saXN0aXRlbT4KICAg PC9pdGVtaXplZGxpc3Q+CiAgPC9zZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2Ny aXB0aW9uLnNnbWwKaW5kZXggMjdjMDY0MzlmNGYuLjJkZTJjM2M1MmZiIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTI4MCw4ICsyODAsOSBAQCBBTFRFUiBT VUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1vcmlnaW4iPjxsaXRlcmFsPm9yaWdpbjwvbGl0ZXJhbD48L2xpbms+ LAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9saW5rPiwKICAgICAgIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtdHdvLXBoYXNl Ij48bGl0ZXJhbD50d29fcGhhc2U8L2xpdGVyYWw+PC9saW5rPiwKLSAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcmV0YWluLWRlYWQtdHVwbGVz Ij48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+PC9saW5rPiwgYW5kCi0gICAg ICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1y ZXRlbnRpb24tZHVyYXRpb24iPjxsaXRlcmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVy YWw+PC9saW5rPi4KKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtcmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBs ZXM8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJz Y3JpcHRpb24tcGFyYW1zLXdpdGgtbWF4LXJldGVudGlvbi1kdXJhdGlvbiI+PGxpdGVyYWw+bWF4 X3JldGVudGlvbl9kdXJhdGlvbjwvbGl0ZXJhbD48L2xpbms+IGFuZCwKKyAgICAgIDxsaW5rIGxp bmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRl c3RpbmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9s aW5rPi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0ZXJhbD5wYXNzd29yZF9y ZXF1aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogCkBAIC0zMzksNiArMzQw LDE1IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+cGdf Y29uZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+LCBjcmVhdGVkIHRvIHJldGFpbgog ICAgICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiwgd2lsbCBiZSBkcm9wcGVk LgogICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIHRoZSA8bGluayBsaW5r ZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0 aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGlu az4KKyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9y IDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgICAgIGF1dG9tYXRpY2FsbHkg Y3JlYXRlcyB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlIGlmIGl0IGRvZXMgbm90IGFs cmVhZHkKKyAgICAgIGV4aXN0LiBDb252ZXJzZWx5LCBpZiB0aGUgZGVzdGluYXRpb24gaXMgY2hh bmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPiwgbG9nZ2luZyB0byB0aGUgdGFi bGUgc3RvcHMgYW5kIHRoZSBpbnRlcm5hbAorICAgICAgdGFibGUgaXMgYXV0b21hdGljYWxseSBk cm9wcGVkLgorICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGI3ZGQz NjEyOTRiLi41NjFkOGYxMTk5NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf c3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0 aW9uLnNnbWwKQEAgLTI0Nyw2ICsyNDcsNTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAg ICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgIDx2YXJs aXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3Qt bG9nLWRlc3RpbmF0aW9uIj4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uPC9saXRlcmFsPiAoPHR5cGU+ZW51bTwvdHlwZT4pPC90ZXJtPgorICAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTcGVjaWZpZXMgdGhlIGRlc3Rp bmF0aW9uIGZvciByZWNvcmRpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCisgICAg ICAgICA8L3BhcmE+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgYXZhaWxhYmxlIGRl c3RpbmF0aW9ucyBhcmU6CisgICAgICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICAgICAgPGxp c3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgPGxpdGVyYWw+bG9nPC9s aXRlcmFsPjogQ29uZmxpY3QgZGV0YWlscyBhcmUgcmVjb3JkZWQgaW4gdGhlIHNlcnZlciBsb2cu CisgICAgICAgICAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvci4KKyAgICAgICAgICAg IDwvcGFyYT4KKyAgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+ OiBUaGUgc3lzdGVtIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIHN0cnVjdHVyZWQgdGFibGUKKyAg ICAgICAgICAgICBuYW1lZCA8bGl0ZXJhbD5wZ19jb25mbGljdF8mbHQ7c3ViaWQmZ3Q7PC9saXRl cmFsPiBpbiB0aGUKKyAgICAgICAgICAgICA8bGl0ZXJhbD5wZ19jb25mbGljdDwvbGl0ZXJhbD4g c2NoZW1hLiBUaGlzIGFsbG93cyBmb3IgZWFzeSBxdWVyeWluZyBhbmQKKyAgICAgICAgICAgICBh bmFseXNpcyBvZiBjb25mbGljdHMuCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgICA8 Y2F1dGlvbj4KKyAgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgVGhlIGludGVybmFs IGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBzdHJpY3RseSB0aWVkIHRvIHRoZSBsaWZlY3ljbGUgb2Yg dGhlCisgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiBvciB0aGUgPGxpdGVyYWw+Y29uZmxpY3Rf bG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPiBzZXR0aW5nLiBJZgorICAgICAgICAgICAgICB0aGUg c3Vic2NyaXB0aW9uIGlzIGRyb3BwZWQsIG9yIGlmIHRoZSBkZXN0aW5hdGlvbiBpcyBjaGFuZ2Vk IHRvCisgICAgICAgICAgICAgIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4sIHRoZSB0YWJsZSBhbmQg YWxsIGl0cyByZWNvcmRlZCBjb25mbGljdCBkYXRhIGFyZQorICAgICAgICAgICAgICA8ZW1waGFz aXM+cGVybWFuZW50bHkgZGVsZXRlZDwvZW1waGFzaXM+LiBUbyBwZXJmb3JtIGEgcG9zdC1tb3J0 ZW0gYW5hbHlzaXMKKyAgICAgICAgICAgICAgYWZ0ZXIgcmVtb3ZpbmcgYSBzdWJzY3JpcHRpb24s IHVzZXJzIG11c3QgbWFudWFsbHkgYmFjayB1cCB0aGUgY29uZmxpY3QgbG9nCisgICAgICAgICAg ICAgIHRhYmxlIGJlZm9yZSB0aGUgZGVsZXRpb24gb2NjdXJzLgorICAgICAgICAgICAgIDwvcGFy YT4KKyAgICAgICAgICAgIDwvY2F1dGlvbj4KKyAgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgPGxpdGVy YWw+YWxsPC9saXRlcmFsPjogUmVjb3JkcyB0byBib3RoIHRoZSBzZXJ2ZXIgbG9nIGFuZCB0aGUg dGFibGUuCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0 ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvcHktZGF0YSI+CiAgICAgICAgIDx0 ZXJtPjxsaXRlcmFsPmNvcHlfZGF0YTwvbGl0ZXJhbD4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KTwv dGVybT4KICAgICAgICAgPGxpc3RpdGVtPgotLSAKMi40OS4wCgo= --000000000000f1181b06490bfa93 Content-Type: application/octet-stream; name="v24-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v24-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkqrjkm90 RnJvbSBiZjFlOTRkNDFiZDViOTIxOTY3OTYyZmQ0MjA0Y2M0ZGFkMjQ0MTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxNyBEZWMgMjAyNSAxMTo1Mzo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI0 IDEvM10gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCgpUaGlzIHBhdGNoIGFkZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9mIGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2ggb2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4 dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFrZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXpl LCBhbmQKdXNlIGZvciBleHRlcm5hbCBtb25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBw YXRjaCBhZGRyZXNzZXMgdGhlc2UgbGltaXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1 cmFibGUKY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRp b24gaW4gdGhlIENSRUFURSBTVUJTQ1JJUFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29z ZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8gYSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3Ig J2FsbCcpLAphbiBpbnRlcm5hbCBsb2dnaW5nIHRhYmxlIG5hbWVkIGNvbmZsaWN0X2xvZ190YWJs ZV88c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkKY3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5 c3RlbS1tYW5hZ2VkIG5hbWVzcGFjZSBuYW1lZCBwZ19jb25mbGljdC4gVGhpcyB0YWJsZQppcyBs aW5rZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5z dXJpbmcgaXQgaXMKYXV0b21hdGljYWxseSBkcm9wcGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgoKVGhlIGNvbmZsaWN0IGRldGFpbHMsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg YW5kIHJlbW90ZSB0dXBsZXMsIGFyZSBzdG9yZWQgaW4gSlNPTgpjb2x1bW5zLCBwcm92aWRpbmcg YSBmbGV4aWJsZSBmb3JtYXQgdG8gYWNjb21tb2RhdGUgZGlmZmVyZW50IHRhYmxlIHNjaGVtYXMu CgpUaGUgbG9nIHRhYmxlIGNhcHR1cmVzIGVzc2VudGlhbCBhdHRyaWJ1dGVzIHN1Y2ggYXMgbG9j YWwgYW5kIHJlbW90ZSB0cmFuc2FjdGlvbiBJRHMsCkxTTnMsIGNvbW1pdCB0aW1lc3RhbXBzLCBh bmQgY29uZmxpY3QgdHlwZSwgcHJvdmlkaW5nIGEgY29tcGxldGUgcmVjb3JkIGZvciBwb3N0LW1v cnRlbQphbmFseXNpcy4KClRoaXMgZmVhdHVyZSB3aWxsIG1ha2UgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdHMgZWFzaWVyIHRvIG1vbml0b3IgYW5kIG1hbmFnZSwKc2lnbmlmaWNhbnRseSBp bXByb3ZpbmcgdGhlIG92ZXJhbGwgcmVzaWxpZW5jZSBhbmQgb3BlcmFiaWxpdHkgb2YgcmVwbGlj YXRpb24gc2V0dXBzLgoKVGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMgd2lsbCBub3QgYmUgaW5jbHVk ZWQgaW4gYSBwdWJsaWNhdGlvbiwgZXZlbiBpZiB0aGUgcHVibGljYXRpb24KaXMgY29uZmlndXJl ZCB0byBpbmNsdWRlIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEuCi0tLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgICAgICAgICAgICAgIHwgIDI3ICstCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgIHwgMjM5ICsrKysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgICAgICAgICAgICB8ICAyNiArKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAg ICAgICAgICAgICAgICAgIHwgIDE2ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oICAgICAg ICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQgICAg ICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAgIHwg IDExICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oICAgICAgICAgfCAgNTUgKysrCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCA0NDQgKysrKysrKysr KysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAg fCAyMTcgKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAg ICAgIHwgICAyICsKIDE4IGZpbGVzIGNoYW5nZWQsIDk4OSBpbnNlcnRpb25zKCspLCAxMDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwppbmRleCA3YmU0OTAzMjkzNC4uZDQzOGRjNjgy ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCkBAIC04Niw3ICs4Niw4IEBAIGJvb2wKIElzU3lzdGVt Q2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCS8qIElzQ2F0YWxv Z1JlbGF0aW9uT2lkIGlzIGEgYml0IGZhc3Rlciwgc28gdGVzdCB0aGF0IGZpcnN0ICovCi0JcmV0 dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNzKHJlbHR1cGxl KSk7CisJcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNz KHJlbHR1cGxlKQorCQkJfHwgSXNDb25mbGljdENsYXNzKHJlbHR1cGxlKSk7CiB9CiAKIC8qCkBA IC0yMzAsNiArMjMxLDE4IEBAIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQog CXJldHVybiBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7CiB9CiAKKy8qCisgKiBJc0Nv bmZsaWN0Q2xhc3MgLSBDaGVjayBpZiB0aGUgZ2l2ZW4gcGdfY2xhc3MgdHVwbGUgYmVsb25ncyB0 byB0aGUgY29uZmxpY3QKKyAqCQkJCQkgbmFtZXNwYWNlLgorICovCitib29sCitJc0NvbmZsaWN0 Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKK3sKKwlPaWQJCQlyZWxuYW1lc3BhY2UgPSBy ZWx0dXBsZS0+cmVsbmFtZXNwYWNlOworCisJcmV0dXJuIElzQ29uZmxpY3ROYW1lc3BhY2UocmVs bmFtZXNwYWNlKTsKK30KKwogLyoKICAqIElzQ2F0YWxvZ05hbWVzcGFjZQogICoJCVRydWUgaWZm IG5hbWVzcGFjZSBpcyBwZ19jYXRhbG9nLgpAQCAtMjY0LDYgKzI3NywxOCBAQCBJc1RvYXN0TmFt ZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKIAkJaXNUZW1wVG9hc3ROYW1lc3BhY2UobmFtZXNwYWNl SWQpOwogfQogCisvKgorICogSXNDb25mbGljdE5hbWVzcGFjZQorICoJCVRydWUgaWZmIG5hbWVz cGFjZSBpcyBwZ19jb25mbGljdC4KKyAqCisgKgkJRG9lcyBub3QgcGVyZm9ybSBhbnkgY2F0YWxv ZyBhY2Nlc3Nlcy4KKyAqLworYm9vbAorSXNDb25mbGljdE5hbWVzcGFjZShPaWQgbmFtZXNwYWNl SWQpCit7CisJcmV0dXJuIG5hbWVzcGFjZUlkID09IFBHX0NPTkZMSUNUX05BTUVTUEFDRTsKK30K KwogCiAvKgogICogSXNSZXNlcnZlZE5hbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggNjA2NDM0ODIzY2Yu LjEwZGFkZjM3OGE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzE0LDcgKzMxNCw4IEBAIGhlYXBfY3Jl YXRlKGNvbnN0IGNoYXIgKnJlbG5hbWUsCiAJICovCiAJaWYgKCFhbGxvd19zeXN0ZW1fdGFibGVf bW9kcyAmJgogCQkoKElzQ2F0YWxvZ05hbWVzcGFjZShyZWxuYW1lc3BhY2UpICYmIHJlbGtpbmQg IT0gUkVMS0lORF9JTkRFWCkgfHwKLQkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKSkg JiYKKwkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKSB8fAorCQkgSXNDb25mbGljdE5h bWVzcGFjZShyZWxuYW1lc3BhY2UpKSAmJgogCQlJc05vcm1hbFByb2Nlc3NpbmdNb2RlKCkpCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklM RUdFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGMzYjc5YTJiYTQ4Li40MDAyOTJmZDA2 YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNTIzLDcgKzM1MjMsNyBAQCBMb29rdXBD cmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKQogICoKICAqIFdlIGNvbXBsYWlu IGlmIGVpdGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9yYXJ5IHNjaGVt YQogICogKG9yIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEpLCBvciBpZiBlaXRoZXIgdGhlIG9sZCBv ciBuZXcgbmFtZXNwYWNlcyBpcyB0aGUKLSAqIFRPQVNUIHNjaGVtYS4KKyAqIFRPQVNUIHNjaGVt YSBvciB0aGUgQ09ORkxJQ1Qgc2NoZW1hLgogICovCiB2b2lkCiBDaGVja1NldE5hbWVzcGFjZShP aWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKQpAQCAtMzUzOSw2ICszNTM5LDEyIEBAIENoZWNrU2V0 TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpCiAJCWVyZXBvcnQoRVJST1IsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2co ImNhbm5vdCBtb3ZlIG9iamVjdHMgaW50byBvciBvdXQgb2YgVE9BU1Qgc2NoZW1hIikpKTsKKwor CS8qIHNpbWlsYXJseSBmb3IgQ09ORkxJQ1Qgc2NoZW1hICovCisJaWYgKG5zcE9pZCA9PSBQR19D T05GTElDVF9OQU1FU1BBQ0UgfHwgb2xkTnNwT2lkID09IFBHX0NPTkZMSUNUX05BTUVTUEFDRSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJIGVycm1zZygiY2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9yIG91dCBvZiBD T05GTElDVCBzY2hlbWEiKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bi5jCmluZGV4IDlhNDc5MWM1NzNlLi5hMzNjMzNlZmUwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cHVibGljYXRpb24uYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJheS5o IgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC04NSw2ICs4NiwxNSBAQCBjaGVja19w dWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oUmVsYXRpb24gdGFyZ2V0cmVsKQogCQkJCSBlcnJtc2co ImNhbm5vdCBhZGQgcmVsYXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKIAkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAogCQkJCSBlcnJkZXRhaWwoIlRoaXMgb3Bl cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHVubG9nZ2VkIHRhYmxlcy4iKSkpOworCisJLyog Q2FuJ3QgYmUgY29uZmxpY3QgbG9nIHRhYmxlICovCisJaWYgKElzQ29uZmxpY3ROYW1lc3BhY2Uo UmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygi Y2Fubm90IGFkZCByZWxhdGlvbiBcIiVzLiVzXCIgdG8gcHVibGljYXRpb24iLAorCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHRhcmdldHJlbCkpLAorCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSksCisJCQkJIGVycmRldGFpbCgiVGhp cyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4iKSkp OwogfQogCiAvKgpAQCAtOTUsNyArMTA1LDggQEAgc3RhdGljIHZvaWQKIGNoZWNrX3B1YmxpY2F0 aW9uX2FkZF9zY2hlbWEoT2lkIHNjaGVtYWlkKQogewogCS8qIENhbid0IGJlIHN5c3RlbSBuYW1l c3BhY2UgKi8KLQlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVtYWlkKSB8fCBJc1RvYXN0TmFt ZXNwYWNlKHNjaGVtYWlkKSkKKwlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVtYWlkKSB8fCBJ c1RvYXN0TmFtZXNwYWNlKHNjaGVtYWlkKSB8fAorCQlJc0NvbmZsaWN0TmFtZXNwYWNlKHNjaGVt YWlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWRkIHNjaGVtYSBcIiVzXCIgdG8g cHVibGljYXRpb24iLApAQCAtMTM5LDYgKzE1MCw3IEBAIGlzX3B1Ymxpc2hhYmxlX2NsYXNzKE9p ZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkJCXJlbHR1cGxlLT5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgfHwKIAkJCXJlbHR1cGxlLT5yZWxraW5kID09IFJF TEtJTkRfU0VRVUVOQ0UpICYmCiAJCSFJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgJiYKKwkJ IUlzQ29uZmxpY3RDbGFzcyhyZWx0dXBsZSkgJiYKIAkJcmVsdHVwbGUtPnJlbHBlcnNpc3RlbmNl ID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVCAmJgogCQlyZWxpZCA+PSBGaXJzdE5vcm1hbE9i amVjdElkOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggMmIxMDMy NDUyOTAuLjI4NWE1OTg0OTdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1 YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMK QEAgLTEwNiw2ICsxMDYsNyBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Np bmdfb2spCiAJc3ViLT5yZXRhaW5kZWFkdHVwbGVzID0gc3ViZm9ybS0+c3VicmV0YWluZGVhZHR1 cGxlczsKIAlzdWItPm1heHJldGVudGlvbiA9IHN1YmZvcm0tPnN1Ym1heHJldGVudGlvbjsKIAlz dWItPnJldGVudGlvbmFjdGl2ZSA9IHN1YmZvcm0tPnN1YnJldGVudGlvbmFjdGl2ZTsKKwlzdWIt PmNvbmZsaWN0bG9ncmVsaWQgPSBzdWJmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkOwogCiAJLyog R2V0IGNvbm5pbmZvICovCiAJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQ VElPTk9JRCwKQEAgLTE0MSw2ICsxNDIsMTIgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwg Ym9vbCBtaXNzaW5nX29rKQogCQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmln aW4pOwogCXN1Yi0+b3JpZ2luID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CiAKKwkvKiBH ZXQgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uICovCisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJO b3ROdWxsKFNVQlNDUklQVElPTk9JRCwKKwkJCQkJCQkJICAgdHVwLAorCQkJCQkJCQkgICBBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QpOworCXN1Yi0+Y29uZmxpY3Rsb2dk ZXN0ID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisKIAkvKiBJcyB0aGUgc3Vic2NyaXB0 aW9uIG93bmVyIGEgc3VwZXJ1c2VyPyAqLwogCXN1Yi0+b3duZXJzdXBlcnVzZXIgPSBzdXBlcnVz ZXJfYXJnKHN1Yi0+b3duZXIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmMKaW5kZXggZDY2NzRmMjBmYzIuLmRlMTk3N2Y4MWVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jCkBAIC0xNSwyNSArMTUsMzEgQEAKICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2NvbW1pdF90cy5oIgorI2luY2x1ZGUgImFjY2Vzcy9o ZWFwYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3R3b3BoYXNlLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRh bG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKICNpbmNsdWRlICJj YXRhbG9nL2luZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRk cmVzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1fZC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlX2QuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2Ny aXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3Ry aWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAicGdz dGF0LmgiCkBAIC01MSw2ICs1Nyw3IEBACiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKKyNp bmNsdWRlICJ1dGlscy9yZWdwcm9jLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAog LyoKQEAgLTc1LDYgKzgyLDcgQEAKICNkZWZpbmUgU1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJ T04JMHgwMDAwODAwMAogI2RlZmluZSBTVUJPUFRfTFNOCQkJCQkweDAwMDEwMDAwCiAjZGVmaW5l IFNVQk9QVF9PUklHSU4JCQkJMHgwMDAyMDAwMAorI2RlZmluZSBTVUJPUFRfQ09ORkxJQ1RfTE9H X0RFU1QJMHgwMDA0MDAwMAogCiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQg Ki8KICNkZWZpbmUgSXNTZXQodmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMp KQpAQCAtMTAzLDYgKzExMSw3IEBAIHR5cGVkZWYgc3RydWN0IFN1Yk9wdHMKIAlib29sCQlyZXRh aW5kZWFkdHVwbGVzOwogCWludDMyCQltYXhyZXRlbnRpb247CiAJY2hhcgkgICAqb3JpZ2luOwor CUNvbmZsaWN0TG9nRGVzdCBjb25mbGljdGxvZ2Rlc3Q7CiAJWExvZ1JlY1B0cglsc247CiB9IFN1 Yk9wdHM7CiAKQEAgLTEzNSw3ICsxNDQsNyBAQCBzdGF0aWMgTGlzdCAqbWVyZ2VfcHVibGljYXRp b25zKExpc3QgKm9sZHB1Ymxpc3QsIExpc3QgKm5ld3B1Ymxpc3QsIGJvb2wgYWRkcHViLAogc3Rh dGljIHZvaWQgUmVwb3J0U2xvdENvbm5lY3Rpb25FcnJvcihMaXN0ICpyc3RhdGVzLCBPaWQgc3Vi aWQsIGNoYXIgKnNsb3RuYW1lLCBjaGFyICplcnIpOwogc3RhdGljIHZvaWQgQ2hlY2tBbHRlclN1 Yk9wdGlvbihTdWJzY3JpcHRpb24gKnN1YiwgY29uc3QgY2hhciAqb3B0aW9uLAogCQkJCQkJCQli b29sIHNsb3RfbmVlZHNfdXBkYXRlLCBib29sIGlzVG9wTGV2ZWwpOwotCitzdGF0aWMgT2lkIGNy ZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lKTsKIAogLyoK ICAqIENvbW1vbiBvcHRpb24gcGFyc2luZyBmdW5jdGlvbiBmb3IgQ1JFQVRFIGFuZCBBTFRFUiBT VUJTQ1JJUFRJT04gY29tbWFuZHMuCkBAIC0xOTEsNiArMjAwLDggQEAgcGFyc2Vfc3Vic2NyaXB0 aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCW9w dHMtPm1heHJldGVudGlvbiA9IDA7CiAJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRf T1JJR0lOKSkKIAkJb3B0cy0+b3JpZ2luID0gcHN0cmR1cChMT0dJQ0FMUkVQX09SSUdJTl9BTlkp OworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKSkK KwkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0ID0gQ09ORkxJQ1RfTE9HX0RFU1RfTE9HOwogCiAJLyog UGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIHN0bXRfb3B0aW9ucykKQEAgLTQwMiw2ICs0 MTMsMTggQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM aXN0ICpzdG10X29wdGlvbnMsCiAJCQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfTFNO OwogCQkJb3B0cy0+bHNuID0gbHNuOwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9v cHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVm bmFtZSwgImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiIpID09IDApCisJCXsKKwkJCWNoYXIgKnZh bDsKKworCQkJaWYgKElzU2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1Rf TE9HX0RFU1QpKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOwor CisJCQl2YWwgPSBkZWZHZXRTdHJpbmcoZGVmZWwpOworCQkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0 ID0gR2V0TG9nRGVzdGluYXRpb24odmFsKTsKKwkJCW9wdHMtPnNwZWNpZmllZF9vcHRzIHw9IFNV Qk9QVF9DT05GTElDVF9MT0dfREVTVDsKKwkJfQogCQllbHNlCiAJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCkBAIC01OTksNiArNjIyLDcgQEAg Q3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAliaXRzMzIJCXN1cHBvcnRlZF9vcHRzOwogCVN1Yk9wdHMJCW9wdHMgPSB7 MH07CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQlsb2dyZWxpZCA9IEludmFsaWRPaWQ7 CiAKIAkvKgogCSAqIFBhcnNlIGFuZCBjaGVjayBvcHRpb25zLgpAQCAtNjEyLDcgKzYzNiw4IEBA IENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwgU1VCT1BUX1BBU1NX T1JEX1JFUVVJUkVEIHwKIAkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX0ZBSUxP VkVSIHwKIAkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKLQkJCQkJICBTVUJPUFRf TUFYX1JFVEVOVElPTl9EVVJBVElPTiB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkgIFNVQk9QVF9N QVhfUkVURU5USU9OX0RVUkFUSU9OIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCSAgU1VCT1BUX0NP TkZMSUNUX0xPR19ERVNUKTsKIAlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0 bXQtPm9wdGlvbnMsIHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CiAKIAkvKgpAQCAtNzQ3LDYgKzc3 MiwxOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmln aW4gLSAxXSA9CiAJCUNTdHJpbmdHZXRUZXh0RGF0dW0ob3B0cy5vcmlnaW4pOwogCisJLyogQWx3 YXlzIHNldCB0aGUgZGVzdGluYXRpb24sIGRlZmF1bHQgd2lsbCBiZSAnbG9nJy4gKi8KKwl2YWx1 ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQlDU3Ry aW5nR2V0VGV4dERhdHVtKENvbmZsaWN0TG9nRGVzdE5hbWVzW29wdHMuY29uZmxpY3Rsb2dkZXN0 XSk7CisKKwkvKiBJZiBsb2dnaW5nIHRvIGEgdGFibGUgaXMgcmVxdWlyZWQsIHBoeXNpY2FsbHkg Y3JlYXRlIHRoZSB0YWJsZS4gKi8KKwlpZiAoSXNTZXQob3B0cy5jb25mbGljdGxvZ2Rlc3QsIENP TkZMSUNUX0xPR19ERVNUX1RBQkxFKSkKKwkJbG9ncmVsaWQgPSBjcmVhdGVfY29uZmxpY3RfbG9n X3RhYmxlKHN1YmlkLCBzdG10LT5zdWJuYW1lKTsKKworCS8qIFN0b3JlIHRhYmxlIE9JRCBpbiB0 aGUgY2F0YWxvZy4gKi8KKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rs b2dyZWxpZCAtIDFdID0KKwkJCQkJCU9iamVjdElkR2V0RGF0dW0obG9ncmVsaWQpOworCiAJdHVw ID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7 CiAKIAkvKiBJbnNlcnQgdHVwbGUgaW50byBjYXRhbG9nLiAqLwpAQCAtMTQxMCw3ICsxNDQ3LDgg QEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJCQkJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNVQk9QVF9GQUlM T1ZFUiB8CiAJCQkJCQkJCSAgU1VCT1BUX1JFVEFJTl9ERUFEX1RVUExFUyB8CiAJCQkJCQkJCSAg U1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJT04gfAotCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4p OworCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4gfAorCQkJCQkJCQkgIFNVQk9QVF9DT05GTElDVF9M T0dfREVTVCk7CiAKIAkJCQlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQt Pm9wdGlvbnMsCiAJCQkJCQkJCQkJICAgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKQEAgLTE2NjUs NiArMTcwMyw2MyBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy U3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJb3JpZ2luID0gb3B0cy5vcmlnaW47CiAJCQkJ fQogCisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9M T0dfREVTVCkpCisJCQkJeworCQkJCQlDb25mbGljdExvZ0Rlc3Qgb2xkX2Rlc3QgPQorCQkJCQkJ CUdldExvZ0Rlc3RpbmF0aW9uKHN1Yi0+Y29uZmxpY3Rsb2dkZXN0KTsKKworCQkJCQlpZiAob3B0 cy5jb25mbGljdGxvZ2Rlc3QgIT0gb2xkX2Rlc3QpCisJCQkJCXsKKwkJCQkJCWJvb2wgd2FudF90 YWJsZSA9IElzU2V0KG9wdHMuY29uZmxpY3Rsb2dkZXN0LAorCQkJCQkJCQkJCQkJQ09ORkxJQ1Rf TE9HX0RFU1RfVEFCTEUpOworCQkJCQkJYm9vbCBoYXNfb2xkdGFibGUgPQorCQkJCQkJCQlJc1Nl dChvbGRfZGVzdCwgQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUpOworCisJCQkJCQl2YWx1ZXNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQkJCQkJCUNTdHJp bmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5jb25mbGljdGxvZ2Rlc3Rd KTsKKwkJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9nZGVz dCAtIDFdID0gdHJ1ZTsKKworCQkJCQkJaWYgKHdhbnRfdGFibGUgJiYgIWhhc19vbGR0YWJsZSkK KwkJCQkJCXsKKwkJCQkJCQlPaWQJCXJlbGlkOworCisJCQkJCQkJcmVsaWQgPSBjcmVhdGVfY29u ZmxpY3RfbG9nX3RhYmxlKHN1YmlkLCBzdWItPm5hbWUpOworCisJCQkJCQkJdmFsdWVzW0FudW1f cGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJCQkJCQkJCQkJCQkJ CU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCQkJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2Ny aXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJCQkJCQkJCQkJCQkJCXRydWU7CisJ CQkJCQl9CisJCQkJCQllbHNlIGlmICghd2FudF90YWJsZSAmJiBoYXNfb2xkdGFibGUpCisJCQkJ CQl7CisJCQkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJCQkvKgorCQkJCQkJCSAq IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHJlY29yZGVkIGFzIGludGVybmFsCisJCQkJCQkJICog ZGVwZW5kZW5jaWVzIG9mIHRoZSBzdWJzY3JpcHRpb24uICBEcm9wIHRoZQorCQkJCQkJCSAqIHRh YmxlIGlmIGl0IGlzIG5vdCByZXF1aXJlZCBhbnltb3JlIHRvIGF2b2lkCisJCQkJCQkJICogc3Rh bGUgb3Igb3JwaGFuZWQgcmVsYXRpb25zLgorCQkJCQkJCSAqCisJCQkJCQkJICogWFhYOiBBdCBw cmVzZW50LCBvbmx5IGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlCisJCQkJCQkJICogbWFuYWdlZCB0 aGlzIHdheS4gIEluIGZ1dHVyZSBpZiB3ZSBpbnRyb2R1Y2UKKwkJCQkJCQkgKiBhZGRpdGlvbmFs IGludGVybmFsIGRlcGVuZGVuY2llcywgd2UgbWF5IG5lZWQKKwkJCQkJCQkgKiBhIHRhcmdldGVk IGRlbGV0aW9uIHRvIGF2b2lkIGRlbGV0aW9uIG9mIGFueQorCQkJCQkJCSAqIG90aGVyIG9iamVj dHMuCisJCQkJCQkJICovCisJCQkJCQkJT2JqZWN0QWRkcmVzc1NldChvYmplY3QsIFN1YnNjcmlw dGlvblJlbGF0aW9uSWQsCisJCQkJCQkJCQkJCSBzdWJpZCk7CisJCQkJCQkJcGVyZm9ybURlbGV0 aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9J TlRFUk5BTCB8CisJCQkJCQkJCQkJCVBFUkZPUk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCk7CisK KwkJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAt IDFdID0KKwkJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oSW52YWxpZE9pZCk7CisJCQkJCQkJ cmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0K KwkJCQkJCQkJCQkJCXRydWU7CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9CisKIAkJCQl1cGRhdGVf dHVwbGUgPSB0cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMjAyNyw2ICsyMTIyLDcgQEAgRHJv cFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVs KQogCUZvcm1fcGdfc3Vic2NyaXB0aW9uIGZvcm07CiAJTGlzdAkgICAqcnN0YXRlczsKIAlib29s CQltdXN0X3VzZV9wYXNzd29yZDsKKwlPYmplY3RBZGRyZXNzCW9iamVjdDsKIAogCS8qCiAJICog VGhlIGxhdW5jaGVyIG1heSBjb25jdXJyZW50bHkgc3RhcnQgYSBuZXcgd29ya2VyIGZvciB0aGlz IHN1YnNjcmlwdGlvbi4KQEAgLTIxODQsNiArMjI4MCwxOSBAQCBEcm9wU3Vic2NyaXB0aW9uKERy b3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJLyogQ2xlYW4gdXAg ZGVwZW5kZW5jaWVzICovCiAJZGVsZXRlU2hhcmVkRGVwZW5kZW5jeVJlY29yZHNGb3IoU3Vic2Ny aXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFi bGVzIGFyZSByZWNvcmRlZCBhcyBpbnRlcm5hbCBkZXBlbmRlbmNpZXMgb2YgdGhlCisJICogc3Vi c2NyaXB0aW9uLiAgV2UgbXVzdCBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyBiZWZvcmUgdGhl CisJICogc3Vic2NyaXB0aW9uIGl0c2VsZiBpcyByZW1vdmVkLiAgQnkgdXNpbmcKKwkgKiBQRVJG T1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwsIHdlIGVuc3VyZSB0aGF0IG9ubHkgdGhlIGNvbmZs aWN0IGxvZworCSAqIHRhYmxlIGlzIHJlYXBlZCB3aGlsZSB0aGUgc3Vic2NyaXB0aW9uIHJlbWFp bnMgZm9yIHRoZSBmaW5hbCBkZWxldGlvbgorCSAqIHN0ZXAuCisJICovCisJT2JqZWN0QWRkcmVz c1NldChvYmplY3QsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKwlwZXJmb3JtRGVs ZXRpb24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQlQRVJGT1JNX0RFTEVUSU9OX0lOVEVS TkFMIHwKKwkJCQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMKTsKKwogCS8qIFJlbW92 ZSBhbnkgYXNzb2NpYXRlZCByZWxhdGlvbiBzeW5jaHJvbml6YXRpb24gc3RhdGVzLiAqLwogCVJl bW92ZVN1YnNjcmlwdGlvblJlbChzdWJpZCwgSW52YWxpZE9pZCk7CiAKQEAgLTMxOTAsMyArMzI5 OSwxMjcgQEAgZGVmR2V0U3RyZWFtaW5nTW9kZShEZWZFbGVtICpkZWYpCiAJCQkJCWRlZi0+ZGVm bmFtZSkpKTsKIAlyZXR1cm4gTE9HSUNBTFJFUF9TVFJFQU1fT0ZGOwkvKiBrZWVwIGNvbXBpbGVy IHF1aWV0ICovCiB9CisKKy8qCisgKiBCdWlsZHMgdGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZs aWN0IGxvZyB0YWJsZS4KKyAqLworc3RhdGljIFR1cGxlRGVzYworY3JlYXRlX2NvbmZsaWN0X2xv Z190YWJsZV90dXBkZXNjKHZvaWQpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisKKwl0dXBkZXNj ID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoTUFYX0NPTkZMSUNUX0FUVFJfTlVNKTsKKworCWZv ciAoaW50IGkgPSAwOyBpIDwgTUFYX0NPTkZMSUNUX0FUVFJfTlVNOyBpKyspCisJeworCQlPaWQg dHlwZV9vaWQgPSBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHR0eXBpZDsKKworCQkvKgorCQkgKiBT cGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgSlNPTiBhcnJheSB0eXBlIGZvciBwcm9wZXIKKwkJICog VHVwbGVEZXNjSW5pdEVudHJ5IGNhbGwuCisJCSAqLworCQlpZiAodHlwZV9vaWQgPT0gSlNPTkFS UkFZT0lEKQorCQkJdHlwZV9vaWQgPSBnZXRfYXJyYXlfdHlwZShKU09OT0lEKTsKKworCQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgaSArIDEsCisJCQkJCQkgICBDb25mbGljdExvZ1NjaGVt YVtpXS5hdHRuYW1lLAorCQkJCQkJICAgdHlwZV9vaWQsCisJCQkJCQkgICAtMSwgMCk7CisJfQor CisJcmV0dXJuIEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOworfQorCisvKgorICogQ3JlYXRlIGEg c3RydWN0dXJlZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLgorICoKKyAq IFRoZSB0YWJsZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVtLW1hbmFnZWQgJ3BnX2NvbmZs aWN0JyBuYW1lc3BhY2UuCisgKiBUaGUgdGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0b21hdGlj YWxseSB1c2luZyB0aGUgc3Vic2NyaXB0aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2NvbmZsaWN0 XzxzdWJpZD4iKSB0byBlbnN1cmUgdW5pcXVlbmVzcyB3aXRoaW4gdGhlIGNsdXN0ZXIgYW5kCisg KiB0byBhdm9pZCBjb2xsaXNpb25zIGR1cmluZyBzdWJzY3JpcHRpb24gcmVuYW1lcy4KKyAqLwor c3RhdGljIE9pZAorY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1 Ym5hbWUpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJT2lkCQkJcmVsaWQ7CisJT2JqZWN0QWRk cmVzcwlteXNlbGY7CisJT2JqZWN0QWRkcmVzcwlzdWJhZGRyOworCWNoYXIgICAgCXJlbG5hbWVb TkFNRURBVEFMRU5dOworCisJc25wcmludGYocmVsbmFtZSwgTkFNRURBVEFMRU4sICJwZ19jb25m bGljdF8ldSIsIHN1YmlkKTsKKworCS8qIFRoZXJlIGNhbiBub3QgYmUgYW4gZXhpc3RpbmcgdGFi bGUgd2l0aCB0aGUgc2FtZSBuYW1lLiAqLworCUFzc2VydCghT2lkSXNWYWxpZChnZXRfcmVsbmFt ZV9yZWxpZChyZWxuYW1lLCBQR19DT05GTElDVF9OQU1FU1BBQ0UpKSk7CisKKwkvKiBCdWlsZCB0 aGUgdHVwbGUgZGVzY3JpcHRvciBmb3IgdGhlIG5ldyB0YWJsZS4gKi8KKwl0dXBkZXNjID0gY3Jl YXRlX2NvbmZsaWN0X2xvZ190YWJsZV90dXBkZXNjKCk7CisKKwkvKiBDcmVhdGUgY29uZmxpY3Qg bG9nIHRhYmxlLiAqLworCXJlbGlkID0gaGVhcF9jcmVhdGVfd2l0aF9jYXRhbG9nKHJlbG5hbWUs CisJCQkJCQkJCQkgUEdfQ09ORkxJQ1RfTkFNRVNQQUNFLAorCQkJCQkJCQkJIDAsCS8qIHRhYmxl c3BhY2UgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxpZCAqLworCQkJCQkJCQkJIElu dmFsaWRPaWQsIC8qIHJlbHR5cGVpZCAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbG9m dHlwZWlkICovCisJCQkJCQkJCQkgR2V0VXNlcklkKCksCisJCQkJCQkJCQkgSEVBUF9UQUJMRV9B TV9PSUQsCisJCQkJCQkJCQkgdHVwZGVzYywKKwkJCQkJCQkJCSBOSUwsCisJCQkJCQkJCQkgUkVM S0lORF9SRUxBVElPTiwKKwkJCQkJCQkJCSBSRUxQRVJTSVNURU5DRV9QRVJNQU5FTlQsCisJCQkJ CQkJCQkgZmFsc2UsIC8qIHNoYXJlZF9yZWxhdGlvbiAqLworCQkJCQkJCQkJIGZhbHNlLCAvKiBt YXBwZWRfcmVsYXRpb24gKi8KKwkJCQkJCQkJCSBPTkNPTU1JVF9OT09QLAorCQkJCQkJCQkJIChE YXR1bSkgMCwgLyogcmVsb3B0aW9ucyAqLworCQkJCQkJCQkJIGZhbHNlLCAvKiB1c2VfdXNlcl9h Y2wgKi8KKwkJCQkJCQkJCSB0cnVlLCAvKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyAqLworCQkJ CQkJCQkJIHRydWUsIC8qIGlzX2ludGVybmFsICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyog cmVscmV3cml0ZSAqLworCQkJCQkJCQkJIE5VTEwpOyAvKiB0eXBhZGRyZXNzICovCisKKwkvKgor CSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGNvbmZsaWN0 IGxvZyB0YWJsZSBhbmQKKwkgKiB0aGUgc3Vic2NyaXB0aW9uLgorCSAqCisJICogV2UgdXNlIERF UEVOREVOQ1lfSU5URVJOQUwgdG8gc2lnbmlmeSB0aGF0IHRoZSB0YWJsZSdzIGxpZmVjeWNsZSBp cworCSAqIHN0cmljdGx5IHRpZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiwgc2ltaWxhciB0byBob3cg YSBUT0FTVCB0YWJsZSByZWxhdGVzCisJICogdG8gaXRzIG1haW4gdGFibGUgb3IgYSBzZXF1ZW5j ZSByZWxhdGVzIHRvIGFuIGlkZW50aXR5IGNvbHVtbi4KKwkgKgorCSAqIFRoaXMgZW5zdXJlcyB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGF1dG9tYXRpY2FsbHkgcmVhcGVkIGR1cmluZyBhCisJ ICogRFJPUCBTVUJTQ1JJUFRJT04gdmlhIHBlcmZvcm1EZWxldGlvbigpLgorCSAqLworCU9iamVj dEFkZHJlc3NTZXQobXlzZWxmLCBSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGlkKTsKKwlPYmplY3RB ZGRyZXNzU2V0KHN1YmFkZHIsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKwlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnN1YmFkZHIsIERFUEVOREVOQ1lfSU5URVJOQUwpOwor CisJLyogUmVsZWFzZSB0dXBsZSBkZXNjcmlwdG9yIG1lbW9yeS4gKi8KKwlGcmVlVHVwbGVEZXNj KHR1cGRlc2MpOworCisJcmV0dXJuIHJlbGlkOworfQorCisvKgorICogR2V0TG9nRGVzdGluYXRp b24KKyAqCisgKiBDb252ZXJ0IHN0cmluZyB0byBlbnVtIGJ5IGNvbXBhcmluZyBhZ2FpbnN0IHN0 YW5kYXJkaXplZCBsYWJlbHMuCisgKi8KK0NvbmZsaWN0TG9nRGVzdAorR2V0TG9nRGVzdGluYXRp b24oY29uc3QgY2hhciAqZGVzdCkKK3sKKwkvKiBFbXB0eSBzdHJpbmcgb3IgTlVMTCBkZWZhdWx0 cyB0byBMT0cuICovCisJaWYgKGRlc3QgPT0gTlVMTCB8fCBkZXN0WzBdID09ICdcMCcgfHwgcGdf c3RyY2FzZWNtcChkZXN0LCAibG9nIikgPT0gMCkKKwkJcmV0dXJuIENPTkZMSUNUX0xPR19ERVNU X0xPRzsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJ0YWJsZSIpID09IDApCisJCXJldHVy biBDT05GTElDVF9MT0dfREVTVF9UQUJMRTsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJh bGwiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMOworCisJLyogVW5yZWNv Z25pemVkIHN0cmluZy4gKi8KKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgY29uZmxp Y3RfbG9nX2Rlc3RpbmF0aW9uIHZhbHVlOiBcIiVzXCIiLCBkZXN0KSwKKwkJCSBlcnJoaW50KCJW YWxpZCB2YWx1ZXMgYXJlIFwibG9nXCIsIFwidGFibGVcIiwgYW5kIFwiYWxsXCIuIikpKTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZjk3NmMwZTVjN2UuLjRiZjM5ZjM1OWQ3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjM5OCw5ICsyMzk4LDExIEBAIHRydW5jYXRl X2NoZWNrX3JlbChPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCiAJICogcGdfbGFy Z2VvYmplY3QgYW5kIHBnX2xhcmdlb2JqZWN0X21ldGFkYXRhIHRvIGJlIHRydW5jYXRlZCBhcyBw YXJ0IG9mCiAJICogcGdfdXBncmFkZSwgYmVjYXVzZSB3ZSBuZWVkIHRvIGNoYW5nZSBpdHMgcmVs ZmlsZW5vZGUgdG8gbWF0Y2ggdGhlIG9sZAogCSAqIGNsdXN0ZXIsIGFuZCBhbGxvd2luZyBhIFRS VU5DQVRFIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgaXMgdGhlIGVhc2llc3QKLQkgKiB3YXkgb2Yg ZG9pbmcgdGhhdC4KKwkgKiB3YXkgb2YgZG9pbmcgdGhhdC4gIFdlIGFsc28gYWxsb3cgVFJVTkNB VEUgb24gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMsCisJICogdG8gcGVybWl0IHVzZXJzIHRvIG1h bnVhbGx5IHBydW5lIHRoZXNlIGxvZ3MgdG8gbWFuYWdlIGRpc2sgc3BhY2UuCiAJICovCi0JaWYg KCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkK KwlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIHJlbHR1 cGxlKSAmJgorCQkhSXNDb25mbGljdENsYXNzKHJlbHR1cGxlKQogCQkmJiAoIUlzQmluYXJ5VXBn cmFkZSB8fAogCQkJKHJlbGlkICE9IExhcmdlT2JqZWN0UmVsYXRpb25JZCAmJgogCQkJIHJlbGlk ICE9IExhcmdlT2JqZWN0TWV0YWRhdGFSZWxhdGlvbklkKSkpCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCBiZmQzZWJjNjAxZS4uZTQxOWEyZmNmZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwpAQCAtMTE3MCw2ICsxMTcwLDIxIEBAIENoZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVsSW5m byAqcmVzdWx0UmVsSW5mbywgQ21kVHlwZSBvcGVyYXRpb24sCiAJCQkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVzdWx0UmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJICogQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dp Y2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLiAgV2UgYWxsb3cgREVMRVRFIHRvIHBlcm1p dCB1c2VycyB0byBtYW51YWxseQorCSAqIHBydW5lIG9yIHRydW5jYXRlIHRoZXNlIGxvZ3MsIGJ1 dCBtYW51YWwgZGF0YSBpbnNlcnRpb24gb3IgbW9kaWZpY2F0aW9uCisJICogKElOU0VSVCwgVVBE QVRFLCBNRVJHRSkgaXMgcHJvaGliaXRlZCB0byBtYWludGFpbiB0aGUgaW50ZWdyaXR5IG9mIHRo ZQorCSAqIHN5c3RlbS1nZW5lcmF0ZWQgbG9ncy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdE5hbWVz cGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwpKSAmJgorCQlvcGVyYXRpb24gIT0g Q01EX0RFTEVURSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VG RklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coImNhbm5vdCBtb2RpZnkgb3IgaW5zZXJ0 IGRhdGEgaW50byBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlc3VsdFJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0 YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIGFuZCBvbmx5IHN1cHBvcnQgY2xlYW51cCB2aWEgREVM RVRFIG9yIFRSVU5DQVRFLiIpKSk7CiB9CiAKIC8qCkBAIC0xMjM0LDYgKzEyNDksMTcgQEAgQ2hl Y2tWYWxpZFJvd01hcmtSZWwoUmVsYXRpb24gcmVsLCBSb3dNYXJrVHlwZSBtYXJrVHlwZSkKIAkJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogCQkJYnJlYWs7CiAJfQorCisJ LyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0gdG8g cmVjb3JkIGxvZ2ljYWwKKwkgKiByZXBsaWNhdGlvbiBjb25mbGljdHMuICBXZSBkbyBub3QgYWxs b3cgbG9ja2luZyByb3dzIGluIENPTkZMSUNUCisJICogcmVsYXRpb25zLgorCSAqLworCWlmIChJ c0NvbmZsaWN0TmFtZXNwYWNlKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBl cnJtc2coImNhbm5vdCBsb2NrIHJvd3MgaW4gQ09ORkxJQ1QgcmVsYXRpb24gXCIlc1wiIiwKKwkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQg YS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4 IDM1ODRjNGUxNDI4Li4yMWNmZTM5MDQzMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTY4MDYsNyArNjgwNiw3IEBA IGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2Up CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKIAlzdGF0aWMgY29uc3QgYm9vbCB0 cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAogCQlmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwKLQlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDEwMDAw MCkKIAl7CkBAIC02OTAwLDYgKzY5MDAsMjAgQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs CiAJCQkJCQkJICAiLCBzdWJza2lwbHNuIEFTIFwiJXNcIlxuIiwKIAkJCQkJCQkgIGdldHRleHRf bm9vcCgiU2tpcCBMU04iKSk7CisKKwkJLyogQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIGlzIHN1 cHBvcnRlZCBpbiB2MTkgYW5kIGhpZ2hlciAqLworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAw MDApCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJICAiLCBzdWJjb25m bGljdGxvZ2Rlc3QgQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGlj dCBsb2cgZGVzdGluYXRpb24iKSk7CisKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJ CQkJICAiLCAoQ0FTRSBXSEVOIHN1YmNvbmZsaWN0bG9nZGVzdCBJTiAoJ3RhYmxlJywgJ2FsbCcp ICIKKwkJCQkJCQkgICIgVEhFTiAncGdfY29uZmxpY3RfJyB8fCBvaWQgIgorCQkJCQkJCSAgIiBF TFNFICctJyBFTkQpIEFTIFwiJXNcIlxuIiwKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgiQ29uZmxp Y3QgbG9nIHRhYmxlIikpOworCQl9CiAJfQogCiAJLyogT25seSBkaXNwbGF5IHN1YnNjcmlwdGlv bnMgaW4gY3VycmVudCBkYXRhYmFzZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA4Yjkx YmMwMDA2Mi4uMTJlZWU4YTBkNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzNDQsOCAr MjM0NCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVU RV9XSVRIKCIoIiwgIlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1l PiBTRVQgKCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNVQlNDUklQVElPTiIsIE1h dGNoQW55LCBNYXRjaEFueU4sICJTRVQiLCAiKCIpKQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnki LCAiZGlzYWJsZV9vbl9lcnJvciIsICJmYWlsb3ZlciIsCi0JCQkJCSAgIm1heF9yZXRlbnRpb25f ZHVyYXRpb24iLCAib3JpZ2luIiwKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiIsICJkaXNhYmxlX29uX2Vycm9yIiwKKwkJCQkJICAiZmFpbG92ZXIi LCAibWF4X3JldGVudGlvbl9kdXJhdGlvbiIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9y ZXF1aXJlZCIsICJyZXRhaW5fZGVhZF90dXBsZXMiLAogCQkJCQkgICJydW5fYXNfb3duZXIiLCAi c2xvdF9uYW1lIiwgInN0cmVhbWluZyIsCiAJCQkJCSAgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0 d29fcGhhc2UiKTsKQEAgLTM4NjAsOCArMzg2MCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFNVQlNDUklQVElPTiA8bmFtZT4gLi4uICBXSVRIICggPG9wdD4iICovCiAJZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIsIE1hdGNoQW55TiwgIldJVEgiLCAi KCIpKQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLCAi Y3JlYXRlX3Nsb3QiLAotCQkJCQkgICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAiZmFp bG92ZXIiLAorCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uIiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwKKwkJCQkJICAiY3JlYXRlX3Nsb3QiLCAiZGlz YWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZhaWxvdmVyIiwKIAkJCQkJICAibWF4X3JldGVu dGlvbl9kdXJhdGlvbiIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9yZXF1aXJlZCIsICJy ZXRhaW5fZGVhZF90dXBsZXMiLAogCQkJCQkgICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwg InN0cmVhbWluZyIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCmluZGV4IGE5ZDZlOGVhOTg2Li44MTkzMjI5 ZjJlMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKQEAgLTI1LDYgKzI1LDcgQEAgZXh0ZXJuIGJvb2wg SXNJbnBsYWNlVXBkYXRlUmVsYXRpb24oUmVsYXRpb24gcmVsYXRpb24pOwogCiBleHRlcm4gYm9v bCBJc1N5c3RlbUNsYXNzKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CiBleHRl cm4gYm9vbCBJc1RvYXN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CitleHRlcm4gYm9v bCBJc0NvbmZsaWN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CiAKIGV4dGVybiBib29s IElzQ2F0YWxvZ1JlbGF0aW9uT2lkKE9pZCByZWxpZCk7CiBleHRlcm4gYm9vbCBJc0NhdGFsb2dU ZXh0VW5pcXVlSW5kZXhPaWQoT2lkIHJlbGlkKTsKQEAgLTMyLDYgKzMzLDcgQEAgZXh0ZXJuIGJv b2wgSXNJbnBsYWNlVXBkYXRlT2lkKE9pZCByZWxpZCk7CiAKIGV4dGVybiBib29sIElzQ2F0YWxv Z05hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOwogZXh0ZXJuIGJvb2wgSXNUb2FzdE5hbWVzcGFj ZShPaWQgbmFtZXNwYWNlSWQpOworZXh0ZXJuIGJvb2wgSXNDb25mbGljdE5hbWVzcGFjZShPaWQg bmFtZXNwYWNlSWQpOwogCiBleHRlcm4gYm9vbCBJc1Jlc2VydmVkTmFtZShjb25zdCBjaGFyICpu YW1lKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0CmluZGV4IDMwNzVlMTQyYzcz Li5iNDVjYjkzODNhOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3Bh Y2UuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdApAQCAtMTgs NiArMTgsOSBAQAogeyBvaWQgPT4gJzk5Jywgb2lkX3N5bWJvbCA9PiAnUEdfVE9BU1RfTkFNRVNQ QUNFJywKICAgZGVzY3IgPT4gJ3Jlc2VydmVkIHNjaGVtYSBmb3IgVE9BU1QgdGFibGVzJywKICAg bnNwbmFtZSA9PiAncGdfdG9hc3QnLCBuc3BhY2wgPT4gJ19udWxsXycgfSwKK3sgb2lkID0+ICcx MzgyJywgb2lkX3N5bWJvbCA9PiAnUEdfQ09ORkxJQ1RfTkFNRVNQQUNFJywKKyAgZGVzY3IgPT4g J3Jlc2VydmVkIHNjaGVtYSBmb3Igc3Vic2NyaXB0aW9uLXNwZWNpZmljIGNvbmZsaWN0IGxvZyB0 YWJsZXMnLAorICBuc3BuYW1lID0+ICdwZ19jb25mbGljdCcsIG5zcGFjbCA9PiAnX251bGxfJyB9 LAogIyB1cGRhdGUgZHVtcE5hbWVzcGFjZSgpIGlmIGNoYW5naW5nIHRoaXMgZGVzY3IKIHsgb2lk ID0+ICcyMjAwJywgb2lkX3N5bWJvbCA9PiAnUEdfUFVCTElDX05BTUVTUEFDRScsCiAgIGRlc2Ny ID0+ICdzdGFuZGFyZCBwdWJsaWMgc2NoZW1hJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5oCmluZGV4IGYzNTcxZDJiZmNmLi43NmE0NjM4YjM4OSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05MCw2ICs5MCw3IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0 aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lf Uk9XCiAJCQkJCQkJCQkgKiBleGNlZWRlZCBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uLCB3aGVuCiAJ CQkJCQkJCQkgKiBkZWZpbmVkICovCiAKKwlPaWQgICAgICAgICBzdWJjb25mbGljdGxvZ3JlbGlk OyAvKiBSZWxpZCBvZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiAqLwogI2lmZGVmIENBVEFMT0df VkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCiAJLyogQ29u bmVjdGlvbiBzdHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwogCXRleHQJCXN1YmNvbm5pbmZvIEJL SV9GT1JDRV9OT1RfTlVMTDsKQEAgLTEwMyw2ICsxMDQsMTQgQEAgQ0FUQUxPRyhwZ19zdWJzY3Jp cHRpb24sNjEwMCxTdWJzY3JpcHRpb25SZWxhdGlvbklkKSBCS0lfU0hBUkVEX1JFTEFUSU9OIEJL SV9ST1cKIAkvKiBMaXN0IG9mIHB1YmxpY2F0aW9ucyBzdWJzY3JpYmVkIHRvICovCiAJdGV4dAkJ c3VicHVibGljYXRpb25zWzFdIEJLSV9GT1JDRV9OT1RfTlVMTDsKIAorCS8qCisJICogU3RyYXRl Z3kgZm9yIGxvZ2dpbmcgcmVwbGljYXRpb24gY29uZmxpY3RzOgorCSAqICdsb2cnIC0gc2VydmVy IGxvZyBvbmx5LAorCSAqICd0YWJsZScgLSBjb25mbGljdCBsb2cgdGFibGUgb25seSwKKwkgKiAn YWxsJyAtIGJvdGggbG9nIGFuZCB0YWJsZS4KKwkgKi8KKwl0ZXh0CQlzdWJjb25mbGljdGxvZ2Rl c3Q7CisKIAkvKiBPbmx5IHB1Ymxpc2ggZGF0YSBvcmlnaW5hdGluZyBmcm9tIHRoZSBzcGVjaWZp ZWQgb3JpZ2luICovCiAJdGV4dAkJc3Vib3JpZ2luIEJLSV9ERUZBVUxUKExPR0lDQUxSRVBfT1JJ R0lOX0FOWSk7CiAjZW5kaWYKQEAgLTE1MiwxMiArMTYxLDE0IEBAIHR5cGVkZWYgc3RydWN0IFN1 YnNjcmlwdGlvbgogCQkJCQkJCQkJICogYW5kIHRoZSByZXRlbnRpb24gZHVyYXRpb24gaGFzIG5v dAogCQkJCQkJCQkJICogZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgogCQkJ CQkJCQkJICogZGVmaW5lZCAqLworCU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CS8qIGNvbmZsaWN0 IGxvZyB0YWJsZSBPaWQgKi8KIAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3Ry aW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAljaGFyCSAgICpzbG90bmFtZTsJCS8qIE5hbWUgb2Yg dGhlIHJlcGxpY2F0aW9uIHNsb3QgKi8KIAljaGFyCSAgICpzeW5jY29tbWl0OwkJLyogU3luY2hy b25vdXMgY29tbWl0IHNldHRpbmcgZm9yIHdvcmtlciAqLwogCUxpc3QJICAgKnB1YmxpY2F0aW9u czsJLyogTGlzdCBvZiBwdWJsaWNhdGlvbiBuYW1lcyB0byBzdWJzY3JpYmUgdG8gKi8KIAljaGFy CSAgICpvcmlnaW47CQkJLyogT25seSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUK IAkJCQkJCQkJICogc3BlY2lmaWVkIG9yaWdpbiAqLworCWNoYXIJICAgKmNvbmZsaWN0bG9nZGVz dDsJLyogQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uICovCiB9IFN1YnNjcmlwdGlvbjsKIAogI2lm ZGVmIEVYUE9TRV9UT19DTElFTlRfQ09ERQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc3Vic2NyaXB0aW9u Y21kcy5oCmluZGV4IDYzNTA0MjMyYTE0Li5hODk1MTI3ZjhmZSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuaApAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiY2F0 YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNp bmNsdWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgogCiBleHRlcm4gT2JqZWN0QWRkcmVzcyBD cmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25T dG10ICpzdG10LAogCQkJCQkJCQkJCWJvb2wgaXNUb3BMZXZlbCk7CkBAIC0zNiw0ICszNyw2IEBA IGV4dGVybiB2b2lkIENoZWNrU3ViRGVhZFR1cGxlUmV0ZW50aW9uKGJvb2wgY2hlY2tfZ3VjLCBi b29sIHN1Yl9kaXNhYmxlZCwKIAkJCQkJCQkJCSAgIGJvb2wgcmV0ZW50aW9uX2FjdGl2ZSwKIAkJ CQkJCQkJCSAgIGJvb2wgbWF4X3JldGVudGlvbl9zZXQpOwogCitleHRlcm4gQ29uZmxpY3RMb2dE ZXN0IEdldExvZ0Rlc3RpbmF0aW9uKGNvbnN0IGNoYXIgKmRlc3QpOworCiAjZW5kaWYJCQkJCQkJ LyogU1VCU0NSSVBUSU9OQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9jb25mbGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAppbmRl eCAyZGU3YjYyNGViMi4uMzFmYWNjMWVjN2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL2NvbmZsaWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3Qu aApAQCAtMTAsNiArMTAsNyBAQAogI2RlZmluZSBDT05GTElDVF9ICiAKICNpbmNsdWRlICJhY2Nl c3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJu b2Rlcy9wZ19saXN0LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCiAKQEAgLTc5LDYg KzgwLDYwIEBAIHR5cGVkZWYgc3RydWN0IENvbmZsaWN0VHVwbGVJbmZvCiAJCQkJCQkJCSAqIGNv bmZsaWN0aW5nIGxvY2FsIHJvdyBvY2N1cnJlZCAqLwogfSBDb25mbGljdFR1cGxlSW5mbzsKIAor LyoKKyAqIENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB0eXBlcy4KKyAqCisgKiBUaGVzZSB2YWx1 ZXMgYXJlIGRlZmluZWQgYXMgYml0bWFzayBmbGFncyB0byBhbGxvdyBmb3IgbXVsdGlwbGUgc2lt dWx0YW5lb3VzCisgKiBsb2dnaW5nIGRlc3RpbmF0aW9ucyAoZS5nLiwgbG9nZ2luZyB0byBib3Ro IHN5c3RlbSBsb2dzIGFuZCBhIHRhYmxlKS4KKyAqIEludGVybmFsbHksIHdlIHVzZSB0aGVzZSBm b3IgYml0d2lzZSBjb21wYXJpc29ucyAoSXNTZXQpLCBidXQgdGhlIHN0cmluZworICogcmVwcmVz ZW50YXRpb24gaXMgc3RvcmVkIGluIHBnX3N1YnNjcmlwdGlvbi5zdWJjb25mbGljdGxvZ2Rlc3Qu CisgKi8KK3R5cGVkZWYgZW51bSBDb25mbGljdExvZ0Rlc3QKK3sKKwkvKiBMb2cgY29uZmxpY3Rz IHRvIHRoZSBzZXJ2ZXIgbG9ncyAqLworCUNPTkZMSUNUX0xPR19ERVNUX0xPRyAgID0gMSA8PCAw LCAgIC8qIDB4MDEgKi8KKworCS8qIExvZyBjb25mbGljdHMgdG8gYW4gaW50ZXJuYWxseSBtYW5h Z2VkIGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCUNPTkZMSUNUX0xPR19ERVNUX1RBQkxFID0gMSA8 PCAxLCAgIC8qIDB4MDIgKi8KKworCS8qIENvbnZlbmllbmNlIGJpdG1hc2sgZm9yIGFsbCBzdXBw b3J0ZWQgZGVzdGluYXRpb25zICovCisJQ09ORkxJQ1RfTE9HX0RFU1RfQUxMICAgPSAoQ09ORkxJ Q1RfTE9HX0RFU1RfTE9HIHwgQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUpCit9IENvbmZsaWN0TG9n RGVzdDsKKworLyoKKyAqIEFycmF5IG1hcHBpbmcgZm9yIGNvbnZlcnRpbmcgaW50ZXJuYWwgZW51 bSB0byBzdHJpbmcuCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdExvZ0Rl c3ROYW1lc1tdID0geworCVtDT05GTElDVF9MT0dfREVTVF9MT0ddID0gImxvZyIsCisJW0NPTkZM SUNUX0xPR19ERVNUX1RBQkxFXSA9ICJ0YWJsZSIsCisJW0NPTkZMSUNUX0xPR19ERVNUX0FMTF0g PSAiYWxsIgorfTsKKworLyogU3RydWN0dXJlIHRvIGhvbGQgbWV0YWRhdGEgZm9yIG9uZSBjb2x1 bW4gb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLwordHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RM b2dDb2x1bW5EZWYKK3sKKwljb25zdCBjaGFyICphdHRuYW1lOyAgICAvKiBDb2x1bW4gbmFtZSAq LworCU9pZCAgICAgICAgIGF0dHR5cGlkOyAgIC8qIERhdGEgdHlwZSBPSUQgKi8KK30gQ29uZmxp Y3RMb2dDb2x1bW5EZWY7CisKKy8qIFRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlIHNjaGVtYSAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29s dW1uRGVmIENvbmZsaWN0TG9nU2NoZW1hW10gPQoreworCXsgLmF0dG5hbWUgPSAicmVsaWQiLCAg ICAgICAgICAgIC5hdHR0eXBpZCA9IE9JRE9JRCB9LAorCXsgLmF0dG5hbWUgPSAic2NoZW1hbmFt ZSIsICAgICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbG5hbWUi LCAgICAgICAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJjb25mbGlj dF90eXBlIiwgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3Rl X3hpZCIsICAgICAgIC5hdHR0eXBpZCA9IFhJRE9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3Rl X2NvbW1pdF9sc24iLC5hdHR0eXBpZCA9IExTTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3Rl X2NvbW1pdF90cyIsIC5hdHR0eXBpZCA9IFRJTUVTVEFNUFRaT0lEIH0sCisJeyAuYXR0bmFtZSA9 ICJyZW1vdGVfb3JpZ2luIiwgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUg PSAicmVwbGljYV9pZGVudGl0eSIsIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1l ID0gInJlbW90ZV90dXBsZSIsICAgICAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFt ZSA9ICJsb2NhbF9jb25mbGljdHMiLCAgLmF0dHR5cGlkID0gSlNPTkFSUkFZT0lEIH0KK307CisK KyNkZWZpbmUgTUFYX0NPTkZMSUNUX0FUVFJfTlVNIGxlbmd0aG9mKENvbmZsaWN0TG9nU2NoZW1h KQorCiBleHRlcm4gYm9vbCBHZXRUdXBsZVRyYW5zYWN0aW9uSW5mbyhUdXBsZVRhYmxlU2xvdCAq bG9jYWxzbG90LAogCQkJCQkJCQkJVHJhbnNhY3Rpb25JZCAqeG1pbiwKIAkJCQkJCQkJCVJlcE9y aWdpbklkICpsb2NhbG9yaWdpbiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0 aW9uLm91dAppbmRleCBiM2VjY2Q4YWZlMy4uYjk0YmNjM2NjMjMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKQEAgLTExNiwxOCArMTE2LDE4IEBAIENSRUFU RSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QnIFBVCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBi dXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3Ug bXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vi c2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0 aW9ucy4KIFxkUnMrIHJlZ3Jlc3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04g IAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAw MDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04g IHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWI0IFNFVCAob3JpZ2luID0gYW55KTsKIFxkUnMrIHJlZ3Jlc3NfdGVzdHN1YjQKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29u ZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0 IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIERS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjM7CkBAIC0xNDUsMTAgKzE0NSwxMCBAQCBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiBF UlJPUjogIGludmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3ludGF4OiBtaXNzaW5nICI9IiBhZnRl ciAiZm9vYmFyIiBpbiBjb25uZWN0aW9uIGluZm8gc3RyaW5nCiAKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg UmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBh Y3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRh YmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwg bG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCBQVUJMSUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lU SCAocmVmcmVzaCA9IGZhbHNlKTsKQEAgLTE1NywxMCArMTU3LDEwIEBAIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFs c2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25l ciA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04g IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3Rw dWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAg ICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdDIgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJs aWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8 IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQg KHBhc3N3b3JkX3JlcXVpcmVkID0gdHJ1ZSk7CkBAIC0xNzYsMTAgKzE3NiwxMCBAQCBFUlJPUjog IHVucmVjb2duaXplZCBzdWJzY3JpcHRpb24gcGFyYW1ldGVyOiAiY3JlYXRlX3Nsb3QiCiAtLSBv awogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8xMjM0 NScpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8 IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dDIgfCAwLzAwMDEyMzQ1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlv biAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZs aWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0 ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8 IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QyIHwgMC8wMDAxMjM0NSB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0K ICgxIHJvdykKIAogLS0gb2sgLSB3aXRoIGxzbiA9IE5PTkUKQEAgLTE4OCwxMCArMTg4LDEwIEBA IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gTk9ORSk7CiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzAnKTsKIEVS Uk9SOiAgaW52YWxpZCBXQUwgbG9jYXRpb24gKExTTik6IDAvMAogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1Ymxp Y2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAwMDAwMDAwCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8 IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQkVHSU47CkBAIC0y MjMsMTAgKzIyMywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2ZvbyBT RVQgKHN5bmNocm9ub3VzX2NvbW1pdCA9IGZvb2Jhcik7CiBFUlJPUjogIGludmFsaWQgdmFsdWUg Zm9yIHBhcmFtZXRlciAic3luY2hyb25vdXNfY29tbWl0IjogImZvb2JhciIKIEhJTlQ6ICBBdmFp bGFibGUgdmFsdWVzOiBsb2NhbCwgcmVtb3RlX3dyaXRlLCByZW1vdGVfYXBwbHksIG9uLCBvZmYu CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKLSAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0 ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8 IGYgICAgICAgICAgICAgICAgfCBsb2NhbCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVz dGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2NhbCAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMCB8IGxvZyAg ICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogLS0gcmVuYW1lIGJhY2sgdG8ga2Vl cCB0aGUgcmVzdCBzaW1wbGUKQEAgLTI1NSwxOSArMjU1LDE5IEBAIENSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNv bm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxs eSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBh bmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29u ZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoYmluYXJ5ID0gZmFsc2UpOwogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwog XGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1 cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24g fCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAK IERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTI3OSwyNyArMjc5LDI3IEBA IENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVh dGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9u LCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0 aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1 YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJl dGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9n IGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwg LQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3Ry ZWFtaW5nID0gcGFyYWxsZWwpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAg ICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzdHJlYW1pbmcgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAg TFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w MDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFk IHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAg ICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogLS0gZmFpbCAtIHB1YmxpY2F0aW9uIGFscmVh ZHkgZXhpc3RzCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVmcgog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1 YjEsIHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBFUlJPUjogIHB1YmxpY2F0aW9u ICJ0ZXN0cHViMSIgaXMgYWxyZWFkeSBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIK IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCAgICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04g IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi LHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBD b25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAog LS0gZmFpbCAtIHB1YmxpY2F0aW9uIHVzZWQgbW9yZSB0aGFuIG9uY2UKQEAgLTMzMiwxMCArMzMy LDEwIEBAIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIzIiBpcyBub3QgaW4gc3Vic2NyaXB0 aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiAtLSBvayAtIGRlbGV0ZSBwdWJsaWNhdGlvbnMKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMSwg dGVzdHB1YjIgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAg U2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tp cCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAor LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAg ICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWI7CkBAIC0zNzEsMTkgKzM3MSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBV QgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0 ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3Jl YXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFs dGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0 IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAw MDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogLS0gd2UgY2Fu IGFsdGVyIHN0cmVhbWluZyB3aGVuIHR3b19waGFzZSBlbmFibGVkCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gdHJ1ZSk7CiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxv ZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24g ICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtMzkzLDEw ICszOTMsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElP TiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRv IHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAg Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9u ICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAw MDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBD b25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAg ICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQwOSwxOCArNDA5LDE4IEBAIENSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQg aXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVz dCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2Ny aXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9u cy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBk dXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9vbl9l cnJvciA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBs b2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCB0 ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAg fCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz bG90X25hbWUgPSBOT05FKTsKQEAgLTQzMywxMCArNDMzLDEwIEBAIENSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNv bm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxs eSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBh bmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29u ZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBA IC00NTAsMTkgKzQ1MCwxOSBAQCBOT1RJQ0U6ICBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIGlzIGlu ZWZmZWN0aXZlIHdoZW4gcmV0YWluX2RlYWRfdHVwbGVzIGlzIGRpc2FibAogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3Jp cHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIDEwMDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAg TFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIDEwMDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAg ICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChtYXhfcmV0ZW50aW9uX2R1cmF0aW9uID0gMCk7CiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENv bmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpA QCAtNTE3LDYgKzUxNywyNzQgQEAgQ09NTUlUOwogLS0gb2ssIG93bmluZyBpdCBpcyBlbm91Z2gg Zm9yIHRoaXMgc3R1ZmYKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz bG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0t CistLSBDT05GTElDVCBMT0cgREVTVElOQVRJT04gVEVTVFMKKy0tCitTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyJzsKKy0tIGZhaWwgLSB1bnJlY29n bml6ZWQgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfZmFpbCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FU SU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRp b24gPSAnaW52YWxpZCcpOworRVJST1I6ICB1bnJlY29nbml6ZWQgY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uIHZhbHVlOiAiaW52YWxpZCIKK0hJTlQ6ICBWYWxpZCB2YWx1ZXMgYXJlICJsb2ciLCAi dGFibGUiLCBhbmQgImFsbCIuCistLSB2ZXJpZnkgc3ViY29uZmxpY3Rsb2dkZXN0IGlzICdsb2cn IGFuZCByZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVmYXVsdCBjYXNlCitDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3Qg PSBmYWxzZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90 IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51 YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9u LCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KK1NF TEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZS T00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9sb2df ZGVmYXVsdCc7CisgICAgICAgICAgIHN1Ym5hbWUgICAgICAgICAgICB8IHN1YmNvbmZsaWN0bG9n ZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19j b25mbGljdF9sb2dfZGVmYXVsdCB8IGxvZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgIDAKKygxIHJvdykKKworLS0gdmVyaWZ5IGVtcHR5IHN0cmluZyBkZWZhdWx0cyB0byAnbG9n JworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBDT05ORUNU SU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lU SCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnJyk7CitXQVJO SU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElO VDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhl IHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KK1NFTEVDVCBzdWJuYW1lLCBz dWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0 aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9lbXB0eV9zdHInOworICAgICAg ICAgIHN1Ym5hbWUgICAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgc3ViY29uZmxpY3Rs b2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgfCBs b2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKKy0tIHRo aXMgc2hvdWxkIGdlbmVyYXRlIGFuIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSBuYW1lZCBw Z19jb25mbGljdF8kc3ViaWQkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElP TiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ3RhYmxlJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K Ky0tIGNoZWNrIG1ldGFkYXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVzdGluYXRpb24gc2hvdWxk IGJlICd0YWJsZScgYW5kIHJlbGlkIHZhbGlkCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rs b2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vi c2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICAg ICAgIHN1Ym5hbWUgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IGhhc19yZWxpZCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgfCB0YWJsZSAgICAgICAgICAgICAgfCB0CisoMSByb3cp CisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgZXhpc3RzLCBpdHMgT0lEIG1hdGNoZXMg c3ViY29uZmxpY3Rsb2dyZWxpZCwKKy0tIGFuZCBpdCBpcyBsb2NhdGVkIGluIHRoZSAncGdfY29u ZmxpY3QnIG5hbWVzcGFjZQorU0VMRUNUIG4ubnNwbmFtZSwgKGMub2lkID0gcy5zdWJjb25mbGlj dGxvZ3JlbGlkKSBBUyAib2lkX21hdGNoZXMiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vi c2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKK0pPSU4g cGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAorV0hFUkUgcy5zdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgbnNwbmFtZSAgIHwgb2lkX21hdGNoZXMg CistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwZ19jb25mbGljdCB8IHQKKygxIHJvdykK KworLS0gY2hlY2sgaWYgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBoYXMgdGhlIGNvcnJlY3Qgc2No ZW1hCitTRUxFQ1QgYS5hdHRudW0sIGEuYXR0bmFtZQorRlJPTSBwZ19hdHRyaWJ1dGUgYQorSk9J TiBwZ19jbGFzcyBjIE9OIGEuYXR0cmVsaWQgPSBjLm9pZAorSk9JTiBwZ19zdWJzY3JpcHRpb24g cyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRFUiBC WSBhLmF0dG51bTsKKyBhdHRudW0gfCAgICAgIGF0dG5hbWUgICAgICAKKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgIDEgfCByZWxpZAorICAgICAgMiB8IHNjaGVtYW5hbWUKKyAg ICAgIDMgfCByZWxuYW1lCisgICAgICA0IHwgY29uZmxpY3RfdHlwZQorICAgICAgNSB8IHJlbW90 ZV94aWQKKyAgICAgIDYgfCByZW1vdGVfY29tbWl0X2xzbgorICAgICAgNyB8IHJlbW90ZV9jb21t aXRfdHMKKyAgICAgIDggfCByZW1vdGVfb3JpZ2luCisgICAgICA5IHwgcmVwbGljYV9pZGVudGl0 eQorICAgICAxMCB8IHJlbW90ZV90dXBsZQorICAgICAxMSB8IGxvY2FsX2NvbmZsaWN0cworKDEx IHJvd3MpCisKKy0tCistLSBBTFRFUiBTVUJTQ1JJUFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGlu YXRpb24gc3RhdGUgdHJhbnNpdGlvbnMKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRy YW5zaXRpb24gbG9naWMgYmV0d2VlbiBkaWZmZXJlbnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25z LCBlbnN1cmluZyBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMK Ky0tIGV4cGVjdGVkCistLQorLS0gdHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCistLSBh IG5ldyBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgc2hvdWxkIGJlIGNyZWF0ZWQKK0NSRUFU RSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9 IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitXQVJOSU5HOiAgc3Vi c2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGlu aXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0 aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlw dGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcpOwor LS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ2Fs bCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3Jl bGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisgICAgICAgIHN1Ym5hbWUgICAgICAgICB8IHN1 YmNvbmZsaWN0bG9nZGVzdCB8IGhhc19yZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIg fCBhbGwgICAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHRyYW5zaXRpb24gZnJvbSAn YWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9UIGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNoYW5n ZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBzdWJjb25mbGljdGxvZ3JlbGlkIEFTIG9sZF9y ZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworU0VMRUNUIHN1YmNv bmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVsaWRf dW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDInOworIHN1YmNvbmZsaWN0bG9nZGVzdCB8IHJlbGlkX3VuY2hhbmdlZCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgdGFibGUgICAgICAgICAg ICAgIHwgdAorKDEgcm93KQorCistLSB0cmFuc2l0aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9nJwor LS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBjbGVhciByZWxpZAorQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24g PSAnbG9nJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlk CitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf dGVzdDInOworIHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsb2cgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKKy0tIHZlcmlmeSB0aGUgcGh5c2lj YWwgdGFibGUgaXMgZ29uZQorU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQK K1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLQorLS0gUFVCTElDQVRJT046IFZlcmlmeSBjb25m bGljdCBsb2cgdGFibGVzIGFyZSBub3QgcHVibGlzaGFibGUKKy0tCistLSBwZ19yZWxhdGlvbl9p c19wdWJsaXNoYWJsZSBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBpbnRlcm5hbCBjb25mbGljdCBs b2cKKy0tIHRhYmxlcyB0byBwcmV2ZW50IHRoZW0gZnJvbSBiZWluZyBhY2NpZGVudGFsbHkgaW5j bHVkZWQgaW4gcHVibGljYXRpb25zCistLQorU0VMRUNUIG4ubnNwbmFtZSwgcGdfcmVsYXRpb25f aXNfcHVibGlzaGFibGUoYy5vaWQpCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfbmFtZXNwYWNl IG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAorSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBz LnN1YmNvbmZsaWN0bG9ncmVsaWQgPSBjLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDEnOworICAgbnNwbmFtZSAgIHwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFi bGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBwZ19jb25m bGljdCB8IGYKKygxIHJvdykKKworLS0KKy0tIFRhYmxlIFByb3RlY3Rpb24gYW5kIExpZmVjeWNs ZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQ6CistLSBNYW51YWwg RFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkCistLSBEUk9QIFNVQlNDUklQVElPTiBhdXRvbWF0aWNh bGx5IHJlYXBzIHRoZSB0YWJsZQorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBsb2dnaW5nIGZvciB2 ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNF VCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CistLSBXZSB1c2UgYSBETyBi bG9jayB3aXRoIGR5bmFtaWMgU1FMIGJlY2F1c2UgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0 YWJsZQorLS0gbmFtZSBjb250YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9u LWRldGVybWluaXN0aWMuIFRoaXMKKy0tIGFwcHJvYWNoIGFsbG93cyB1cyB0byBhdHRlbXB0IHRo ZSBEUk9QIGFuZCBjYXB0dXJlIHRoZSBleHBlY3RlZCBlcnJvcgorLS0gd2l0aG91dCBoYXJkLWNv ZGluZyBhIHNwZWNpZmljIE9JRCBpbiB0aGUgZXhwZWN0ZWQgb3V0cHV0CistLSBmYWlsIC0gZHJv cCB0YWJsZSBub3QgYWxsb3dlZCBkdWUgdG8gaW50ZXJuYWwgZGVwZW5kZW5jeQorRE8gJCQKK0JF R0lOCisgICAgRVhFQ1VURSAnRFJPUCBUQUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBn X2NvbmZsaWN0XycgfHwgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0MScpOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3By aXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjog aW5zdWZmaWNpZW50X3ByaXZpbGVnZSc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBleHBl Y3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZQorLS0gQ0xFQU5VUDogRFJPUCBTVUJT Q1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKy0tIFZlcmlmeSB0aGUgdGFibGUgT0lEIGZv ciByZWFwIGNoZWNrCitTRUxFQ1QgJ3BnX2NvbmZsaWN0XycgfHwgb2lkIEFTIGludGVybmFsX3Rh YmxlbmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfdGVzdDEnIFxnc2V0CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rl c3QxOworLS0gc2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5nIHRoZSBjb25mbGljdCBsb2cgdGFi bGUgd2FzIHJlYXBlZCB2aWEgZGVwZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNzKDonaW50ZXJu YWxfdGFibGVuYW1lJyk7CisgdG9fcmVnY2xhc3MgCistLS0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKKy0tCistLSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBhbmQgVGFibGUgUHJvdGVjdGlvbiBUZXN0 cworLS0KKy0tIFNldHVwOiBFbnN1cmUgd2UgaGF2ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29u ZmxpY3QgbG9nIHRhYmxlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcKKyAg ICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVh dGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9u LCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0 aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1 YmxpY2F0aW9ucy4KKy0tIFRyeWluZyB0byBBTFRFUiB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9n IHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1t YW5hZ2VkCistLSBBcyBtZW50aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEg RE8gYmxvY2sgdG8gaGlkZSBkeW5hbWljIE9JRHMKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25h bWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5U TyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9O IGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIFJBSVNFIE5PVElD RSAnQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUn OworICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUgfHwgJyBBREQgQ09MVU1O IGV4dHJhX2luZm8gdGV4dCc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdl IFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRFUic7CitFTkQgJCQ7CitOT1RJQ0U6ICBBdHRlbXB0 aW5nIEFMVEVSIFRBQkxFIG9uIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZQorTk9USUNFOiAg Y2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFM VEVSCistLSBUZXN0IE1hbnVhbCBJTlNFUlQgb24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlz IHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRp bmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9u CitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAn cGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNz IGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8 fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rp b25fdGVzdCc7CisKKyAgICBFWEVDVVRFICdJTlNFUlQgSU5UTyAnIHx8IHRhYl9uYW1lIHx8ICcg KHJlbG5hbWUpIFZBTFVFUyAoJydteXRlc3QnJyknOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNp ZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBl cnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgSU5TRVJUJzsKK0VORCAkJDsKK05P VElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1 cmluZyBJTlNFUlQKKy0tIFRlc3QgTWFudWFsIFVQREFURSBvbiBjb25mbGljdCBsb2cgdGFibGUK Ky0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQK Ky0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBl eGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAg U0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00g cGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25m bGljdF8nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf cHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8IHRhYl9uYW1lIHx8 ICcgU0VUIHJlbG5hbWUgPSAnJ215dGVzdCcnICc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2ll bnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVy cm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBVUERBVEUnOworRU5EICQkOworTk9U SUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVy aW5nIFVQREFURQorLS0gVHJ5aW5nIHRvIHBlcmZvcm0gVFJVTkNBVEUvREVMRVRFIG9uIHRoZSBp bnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGJlIGFsbG93ZWQgc28g dGhhdCB1c2VyIGNhbiBwZXJmb3JtIGNsZWFudXAKK1NFTEVDVCAncGdfY29uZmxpY3QuJyB8fCBy ZWxuYW1lIEFTIGNvbmZsaWN0X3RhYgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnIFxnc2V0CitUUlVOQ0FU RSA6Y29uZmxpY3RfdGFiOworREVMRVRFIEZST00gOmNvbmZsaWN0X3RhYjsKKy0tIFRyeWluZyB0 byBjcmVhdGUgYSBuZXcgdGFibGUgbWFudWFsbHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFj ZQorLS0gVGhpcyBzaG91bGQgZmFpbCBhcyB0aGUgbmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBj b25mbGljdCBsb2dzIHRhYmxlcworQ1JFQVRFIFRBQkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJs ZSAoaWQgaW50KTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgdG8gY3JlYXRlICJwZ19jb25m bGljdC5tYW51YWxfdGFibGUiCitERVRBSUw6ICBTeXN0ZW0gY2F0YWxvZyBtb2RpZmljYXRpb25z IGFyZSBjdXJyZW50bHkgZGlzYWxsb3dlZC4KKy0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBp bnRvIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJs ZSB0byBtb3ZlIHRoZWlyIG93biB0YWJsZXMgd2l0aGluIHRoaXMgbmFtZXNwYWNlCitDUkVBVEUg VEFCTEUgcHVibGljLnRlc3RfbW92ZSAoaWQgaW50KTsKK0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0 X21vdmUgU0VUIFNDSEVNQSBwZ19jb25mbGljdDsKK0VSUk9SOiAgY2Fubm90IG1vdmUgb2JqZWN0 cyBpbnRvIG9yIG91dCBvZiBDT05GTElDVCBzY2hlbWEKK0RST1AgVEFCTEUgcHVibGljLnRlc3Rf bW92ZTsKKy0tIENsZWFuIHVwIHJlbWFpbmluZyB0ZXN0IHN1YnNjcmlwdGlvbgorQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgRElTQUJMRTsKK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0Owor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgU0VUIChzbG90X25h bWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3Ry OworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgU0VUIChz bG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0OwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xFIHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAppbmRleCBlZjBjMjk4ZDJk Zi4uZDI5MzQ0NzgzOTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlw dGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbApAQCAt MzY1LDYgKzM2NSwyMjMgQEAgQ09NTUlUOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViOwogCistLQorLS0gQ09ORkxJQ1QgTE9HIERFU1RJTkFUSU9OIFRFU1RTCistLQorCitT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyJzsKKwor LS0gZmFpbCAtIHVucmVjb2duaXplZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9mYWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZs aWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdpbnZhbGlkJyk7CisKKy0tIHZlcmlmeSBzdWJjb25mbGlj dGxvZ2Rlc3QgaXMgJ2xvZycgYW5kIHJlbGlkIGlzIDAgKEludmFsaWRPaWQpIGZvciBkZWZhdWx0 IGNhc2UKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3Rw dWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlKTsKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxv Z2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCc7CisKKy0tIHZlcmlmeSBlbXB0 eSBzdHJpbmcgZGVmYXVsdHMgdG8gJ2xvZycKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF9lbXB0eV9zdHIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uID0gJycpOworU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwg c3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9 ICdyZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cic7CisKKy0tIHRoaXMgc2hvdWxkIGdlbmVyYXRl IGFuIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSBuYW1lZCBwZ19jb25mbGljdF8kc3ViaWQk CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgQ09OTkVDVElPTiAn ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNv bm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0t IGNoZWNrIG1ldGFkYXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVzdGluYXRpb24gc2hvdWxkIGJl ICd0YWJsZScgYW5kIHJlbGlkIHZhbGlkCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dk ZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2Ny aXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0tIHZl cmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgZXhpc3RzLCBpdHMgT0lEIG1hdGNoZXMgc3ViY29uZmxp Y3Rsb2dyZWxpZCwKKy0tIGFuZCBpdCBpcyBsb2NhdGVkIGluIHRoZSAncGdfY29uZmxpY3QnIG5h bWVzcGFjZQorU0VMRUNUIG4ubnNwbmFtZSwgKGMub2lkID0gcy5zdWJjb25mbGljdGxvZ3JlbGlk KSBBUyAib2lkX21hdGNoZXMiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9u IHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKK0pPSU4gcGdfbmFtZXNw YWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfdGVzdDEnOworCistLSBjaGVjayBpZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxl IGhhcyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBhLmF0dG51bSwgYS5hdHRuYW1lCitGUk9N IHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRyZWxpZCA9IGMub2lkCitK T0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMu b2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5EIGEuYXR0 bnVtID4gMAorICAgIE9SREVSIEJZIGEuYXR0bnVtOworCistLQorLS0gQUxURVIgU1VCU0NSSVBU SU9OIC0gY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHN0YXRlIHRyYW5zaXRpb25zCistLQorLS0g VGhlc2UgdGVzdHMgdmVyaWZ5IHRoZSB0cmFuc2l0aW9uIGxvZ2ljIGJldHdlZW4gZGlmZmVyZW50 IGxvZ2dpbmcKKy0tIGRlc3RpbmF0aW9ucywgZW5zdXJpbmcgY29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgY3JlYXRlZCBvciBkcm9wcGVkIGFzCistLSBleHBlY3RlZAorLS0KKy0tIHRyYW5zaXRpb24g ZnJvbSAnbG9nJyB0byAnYWxsJworLS0gYSBuZXcgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxl IHNob3VsZCBiZSBjcmVhdGVkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElP TiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ2xvZycpOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VU IChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnYWxsJyk7CisKKy0tIHZlcmlmeSBtZXRhZGF0 YSBhZnRlciBBTFRFUiAoZGVzdGluYXRpb24gc2hvdWxkIGJlICdhbGwnKQorU0VMRUNUIHN1Ym5h bWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3Jl bGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDInOworCistLSB0cmFuc2l0aW9uIGZyb20gJ2FsbCcgdG8gJ3RhYmxlJworLS0gc2hv dWxkIE5PVCBkcm9wIHRoZSB0YWJsZSwgb25seSBjaGFuZ2UgZGVzdGluYXRpb24gc3RyaW5nCitT RUxFQ1Qgc3ViY29uZmxpY3Rsb2dyZWxpZCBBUyBvbGRfcmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRp b24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJyBcZ3NldAorQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVz dGluYXRpb24gPSAndGFibGUnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZs aWN0bG9ncmVsaWQgPSA6b2xkX3JlbGlkIEFTIHJlbGlkX3VuY2hhbmdlZAorRlJPTSBwZ19zdWJz Y3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0g dHJhbnNpdGlvbiBmcm9tICd0YWJsZScgdG8gJ2xvZycKKy0tIHNob3VsZCBkcm9wIHRoZSB0YWJs ZSBhbmQgY2xlYXIgcmVsaWQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rl c3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworU0VMRUNUIHN1YmNv bmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24g V0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdmVyaWZ5IHRo ZSBwaHlzaWNhbCB0YWJsZSBpcyBnb25lCitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfY2xhc3Mg YworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8 fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworCist LQorLS0gUFVCTElDQVRJT046IFZlcmlmeSBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBub3QgcHVi bGlzaGFibGUKKy0tCistLSBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSBzaG91bGQgcmV0dXJu IGZhbHNlIGZvciBpbnRlcm5hbCBjb25mbGljdCBsb2cKKy0tIHRhYmxlcyB0byBwcmV2ZW50IHRo ZW0gZnJvbSBiZWluZyBhY2NpZGVudGFsbHkgaW5jbHVkZWQgaW4gcHVibGljYXRpb25zCistLQor U0VMRUNUIG4ubnNwbmFtZSwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoYy5vaWQpCitGUk9N IHBnX2NsYXNzIGMKK0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9p ZAorSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBzLnN1YmNvbmZsaWN0bG9ncmVsaWQgPSBjLm9p ZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLQorLS0g VGFibGUgUHJvdGVjdGlvbiBhbmQgTGlmZWN5Y2xlIE1hbmFnZW1lbnQKKy0tCistLSBUaGVzZSB0 ZXN0cyB2ZXJpZnkgdGhhdDoKKy0tIE1hbnVhbCBEUk9QIFRBQkxFIGlzIGRpc2FsbG93ZWQKKy0t IERST1AgU1VCU0NSSVBUSU9OIGF1dG9tYXRpY2FsbHkgcmVhcHMgdGhlIHRhYmxlCistLQorLS0g cmUtZW5hYmxlIHRhYmxlIGxvZ2dpbmcgZm9yIHZlcmlmaWNhdGlvbgorQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24g PSAndGFibGUnKTsKKworLS0gV2UgdXNlIGEgRE8gYmxvY2sgd2l0aCBkeW5hbWljIFNRTCBiZWNh dXNlIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKy0tIG5hbWUgY29udGFpbnMgdGhl IHN1YnNjcmlwdGlvbiBPSUQsIHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlzdGljLiBUaGlzCistLSBh cHByb2FjaCBhbGxvd3MgdXMgdG8gYXR0ZW1wdCB0aGUgRFJPUCBhbmQgY2FwdHVyZSB0aGUgZXhw ZWN0ZWQgZXJyb3IKKy0tIHdpdGhvdXQgaGFyZC1jb2RpbmcgYSBzcGVjaWZpYyBPSUQgaW4gdGhl IGV4cGVjdGVkIG91dHB1dAorCistLSBmYWlsIC0gZHJvcCB0YWJsZSBub3QgYWxsb3dlZCBkdWUg dG8gaW50ZXJuYWwgZGVwZW5kZW5jeQorRE8gJCQKK0JFR0lOCisgICAgRVhFQ1VURSAnRFJPUCBU QUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0XycgfHwgb2lkIEZST00g cGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScp OworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0Ug Tk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSc7 CitFTkQgJCQ7CisKKy0tIENMRUFOVVA6IERST1AgU1VCU0NSSVBUSU9OIHJlYXBzIHRoZSB0YWJs ZQorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgRElTQUJMRTsKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CisKKy0tIFZlcmlmeSB0aGUgdGFibGUgT0lEIGZvciByZWFwIGNoZWNrCitTRUxFQ1Qg J3BnX2NvbmZsaWN0XycgfHwgb2lkIEFTIGludGVybmFsX3RhYmxlbmFtZSBGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIFxnc2V0CisK K0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDE7CisKKy0tIHNob3VsZCBy ZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdhcyByZWFwZWQgdmlh IGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFzcyg6J2ludGVybmFsX3RhYmxlbmFtZScpOwor CistLQorLS0gQWRkaXRpb25hbCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3RlY3Rpb24gVGVzdHMK Ky0tCisKKy0tIFNldHVwOiBFbnN1cmUgd2UgaGF2ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29u ZmxpY3QgbG9nIHRhYmxlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcKKyAg ICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIFRyeWluZyB0byBBTFRFUiB0aGUgaW50ZXJu YWwgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRh YmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBBcyBtZW50aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBj YXNlcywgd2UgdXNlIGEgRE8gYmxvY2sgdG8gaGlkZSBkeW5hbWljIE9JRHMKK0RPICQkCitERUNM QVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4n IHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1 YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCisgICAg V0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKwor ICAgIFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBpbnRlcm5hbCBjb25m bGljdCBsb2cgdGFibGUnOworICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUg fHwgJyBBREQgQ09MVU1OIGV4dHJhX2luZm8gdGV4dCc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVk IGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRFUic7CitFTkQgJCQ7CisK Ky0tIFRlc3QgTWFudWFsIElOU0VSVCBvbiBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hv dWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0 aGUgT0lEIGluIHRoZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RP ICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19j b25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBK T0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMu b2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90 ZXN0JzsKKworICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUgfHwgJyAocmVs bmFtZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRf cHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9y OiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBJTlNFUlQnOworRU5EICQkOworCistLSBU ZXN0IE1hbnVhbCBVUERBVEUgb24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBm YWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRpbmcgdGhlIE9J RCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9uCitETyAkJAor REVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxp Y3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBw Z19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAor ICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7 CisKKyAgICBFWEVDVVRFICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8fCAnIFNFVCByZWxuYW1lID0g JydteXRlc3QnJyAnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVO CisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50 X3ByaXZpbGVnZSBkdXJpbmcgVVBEQVRFJzsKK0VORCAkJDsKKworLS0gVHJ5aW5nIHRvIHBlcmZv cm0gVFJVTkNBVEUvREVMRVRFIG9uIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKy0t IFRoaXMgc2hvdWxkIGJlIGFsbG93ZWQgc28gdGhhdCB1c2VyIGNhbiBwZXJmb3JtIGNsZWFudXAK K1NFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIEFTIGNvbmZsaWN0X3RhYgorRlJPTSBw Z19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25m bGljdF8nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3QnIFxnc2V0CitUUlVOQ0FURSA6Y29uZmxpY3RfdGFiOworREVMRVRFIEZST00g OmNvbmZsaWN0X3RhYjsKKworLS0gVHJ5aW5nIHRvIGNyZWF0ZSBhIG5ldyB0YWJsZSBtYW51YWxs eSBpbiB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBUaGlzIHNob3VsZCBmYWlsIGFzIHRo ZSBuYW1lc3BhY2UgaXMgcmVzZXJ2ZWQgZm9yIGNvbmZsaWN0IGxvZ3MgdGFibGVzCitDUkVBVEUg VEFCTEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworCistLSBNb3ZpbmcgYW4g ZXhpc3RpbmcgdGFibGUgaW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBVc2VycyBz aG91bGQgbm90IGJlIGFibGUgdG8gbW92ZSB0aGVpciBvd24gdGFibGVzIHdpdGhpbiB0aGlzIG5h bWVzcGFjZQorQ1JFQVRFIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CitBTFRFUiBU QUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitEUk9QIFRBQkxF IHB1YmxpYy50ZXN0X21vdmU7CisKKy0tIENsZWFuIHVwIHJlbWFpbmluZyB0ZXN0IHN1YnNjcmlw dGlvbgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgRElT QUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IFNF VCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X2xvZ19kZWZhdWx0OworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0 eV9zdHIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5 X3N0ciBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF9lbXB0eV9zdHI7CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MjsKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3QgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0OworCiBSRVNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIERST1AgUk9M RSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggM2YzYTg4OGZkMGUuLmUxMTg3M2FiOTMxIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtNTAyLDYgKzUwMiw4IEBAIENvbmRpdGlvblZhcmlhYmxlTWluaW1hbGx5UGFkZGVkCiBDb25k aXRpb25hbFN0YWNrCiBDb25maWdEYXRhCiBDb25maWdWYXJpYWJsZQorQ29uZmxpY3RMb2dDb2x1 bW5EZWYKK0NvbmZsaWN0TG9nRGVzdAogQ29uZmxpY3RUdXBsZUluZm8KIENvbmZsaWN0VHlwZQog Q29ubkNhY2hlRW50cnkKLS0gCjIuNDkuMAoK --000000000000f1181b06490bfa93 Content-Type: application/octet-stream; name="v24-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v24-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkqrjkmi1 RnJvbSBlMGM0Yjk4YmI2N2EyNDY3YmU5OWNmNmIzNmM2MDYyYTI4MmVkZTc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyMSBKYW4gMjAyNiAxODozNTowMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI0 IDIvM10gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y IAogdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBjb3Jl IGxvZ2ljIHRvIHBvcHVsYXRlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgd2hlbmV2ZXIKYSBsb2dp Y2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0IGlzIGRldGVjdGVkLiBJdCBjYXB0dXJlcyB0aGUgcmVt b3RlIHRyYW5zYWN0aW9uCmRldGFpbHMgYWxvbmcgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBsb2Nh bCBzdGF0ZSBhdCB0aGUgdGltZSBvZiB0aGUgY29uZmxpY3QuCgpIYW5kbGluZyBNdWx0aS1yb3cg Q29uZmxpY3RzOiBBIHNpbmdsZSByZW1vdGUgdHVwbGUgbWF5IGNvbmZsaWN0IHdpdGggbXVsdGlw bGUKbG9jYWwgdHVwbGVzIChlLmcuLCBpbiB0aGUgY2FzZSBvZiBtdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzKS4gVG8gaGFuZGxlIHRoaXMsCnRoZSBpbmZyYXN0cnVjdHVyZSBjcmVhdGVzIGEgc2lu Z2xlIHJvdyBpbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGZvciBlYWNoCnJlbW90ZSB0dXBsZS4g VGhlIGRldGFpbHMgb2YgYWxsIGNvbmZsaWN0aW5nIGxvY2FsIHJvd3MgYXJlIGFnZ3JlZ2F0ZWQg aW50byBhCnNpbmdsZSBKU09OIGFycmF5IGluIHRoZSBsb2NhbF9jb25mbGljdHMgY29sdW1uLgoK VGhlIEpTT04gYXJyYXkgdXNlcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZWQgZm9ybWF0OgpbIHsg InhpZCI6ICIxMDAxIiwgImNvbW1pdF90cyI6ICIyMDI1LTEyLTI1IDEwOjAwOjAwKzA1OjMwIiwg Im9yaWdpbiI6ICJub2RlXzEiLAoia2V5IjogeyJpZCI6IDF9LCAidHVwbGUiOiB7ImlkIjogMSwg InZhbCI6ICJvbGRfZGF0YSJ9IH0sIC4uLiBdCgpFeGFtcGxlIG9mIHF1ZXJ5aW5nIHRoZSBzdHJ1 Y3R1cmVkIGNvbmZsaWN0IGRhdGE6CgpTRUxFQ1QgcmVtb3RlX3hpZCwgcmVsbmFtZSwgcmVtb3Rl X29yaWdpbiwgbG9jYWxfY29uZmxpY3RzWzFdIC0+PiAneGlkJyBBUyBsb2NhbF94aWQsCiAgICAg ICBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd0dXBsZScgQVMgbG9jYWxfdHVwbGUKRlJPTSBteXNj aGVtYS5jb25mbGljdF9sb2dfaGlzdG9yeTI7CgogcmVtb3RlX3hpZCB8IHJlbG5hbWUgIHwgcmVt b3RlX29yaWdpbiB8IGxvY2FsX3hpZCB8ICAgICBsb2NhbF90dXBsZQotLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgICAgNzYwIHwgdGVzdCAgICAgfCBwZ18xNjQwNiAgICAgIHwgNzcxICAgICAgIHwgeyJh IjoxLCJiIjoxMH0KICAgICAgICA3NjUgfCBjb25mX3RhYiB8IHBnXzE2NDA2ICAgICAgfCA3NzUg ICAgICAgfCB7ImEiOjIsImIiOjIsImMiOjJ9Ci0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9jb25mbGljdC5jIHwgNTYzICsrKysrKysrKysrKysrKysrKystLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jIHwgICAxICsKIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICB8ICAzMSArLQogc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vY29uZmxpY3QuaCAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oICB8ICAgNyArCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVf Y29uZmxpY3RzLnBsICAgfCAgNDcgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNjA3IGluc2VydGlvbnMo KyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29u ZmxpY3QuYwppbmRleCA3MjI1MTQxNDlmZS4uYjMwNTQ5NGIyM2QgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYworKysgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKQEAgLTE1LDEzICsxNSwyMSBAQAogI2luY2x1 ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCisjaW5jbHVk ZSAiYWNjZXNzL2hlYXBhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCisjaW5jbHVk ZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1 dG9yLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAidXRpbHMv YXJyYXkuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2Zt Z3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMv cGdfbHNuLmgiCisjaW5jbHVkZSAidXRpbHMvanNvbi5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQ29uZmxpY3RUeXBlTmFtZXNbXSA9IHsKIAlbQ1RfSU5TRVJUX0VYSVNUU10gPSAiaW5z ZXJ0X2V4aXN0cyIsCkBAIC0zNCw2ICs0MiwxOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg Q29uZmxpY3RUeXBlTmFtZXNbXSA9IHsKIAlbQ1RfTVVMVElQTEVfVU5JUVVFX0NPTkZMSUNUU10g PSAibXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyIKIH07CiAKKy8qIFNjaGVtYSBmb3IgdGhlIGVs ZW1lbnRzIHdpdGhpbiB0aGUgJ2xvY2FsX2NvbmZsaWN0cycgSlNPTiBhcnJheSAqLworc3RhdGlj IGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIExvY2FsQ29uZmxpY3RTY2hlbWFbXSA9Cit7CisJ eyAuYXR0bmFtZSA9ICJ4aWQiLCAgICAgICAuYXR0dHlwaWQgPSBYSURPSUQgfSwKKwl7IC5hdHRu YW1lID0gImNvbW1pdF90cyIsIC5hdHR0eXBpZCA9IFRJTUVTVEFNUFRaT0lEIH0sCisJeyAuYXR0 bmFtZSA9ICJvcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9 ICJrZXkiLCAgICAgICAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJ0dXBs ZSIsICAgICAuYXR0dHlwaWQgPSBKU09OT0lEIH0KK307CisKKyNkZWZpbmUgTUFYX0xPQ0FMX0NP TkZMSUNUX0lORk9fQVRUUlMgbGVuZ3Rob2YoTG9jYWxDb25mbGljdFNjaGVtYSkKKwogc3RhdGlj IGludAllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KENvbmZsaWN0VHlwZSB0eXBlKTsKIHN0YXRpYyB2 b2lkIGVycmRldGFpbF9hcHBseV9jb25mbGljdChFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCSBS ZXN1bHRSZWxJbmZvICpyZWxpbmZvLApAQCAtNTIsNiArNzIsMjcgQEAgc3RhdGljIHZvaWQgZ2V0 X3R1cGxlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJ CQkgICBPaWQgaW5kZXhvaWQpOwogc3RhdGljIGNoYXIgKmJ1aWxkX2luZGV4X3ZhbHVlX2Rlc2Mo RVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAogCQkJCQkJCQkJVHVwbGVUYWJsZVNs b3QgKnNsb3QsIE9pZCBpbmRleG9pZCk7CitzdGF0aWMgdm9pZCBidWlsZF9pbmRleF9kYXR1bXNf ZnJvbV9zbG90KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkg VHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4RGVzYywgRGF0 dW0gKnZhbHVlcywKKwkJCQkJCQkJCQkgYm9vbCAqaXNudWxsKTsKK3N0YXRpYyBjaGFyICpidWls ZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJ CQkJCQkJCVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhvaWQpOworc3RhdGljIERhdHVt IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShUdXBsZVRhYmxlU2xvdCAqc2xvdCk7Citz dGF0aWMgRGF0dW0gdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKEVTdGF0ZSAqZXN0 YXRlLAorCQkJCQkJCQkJCQkgICBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkJICAgT2lk IHJlcGxpY2FfaW5kZXgsCisJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0 YXRpYyBUdXBsZURlc2MgYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjKHZvaWQpOworc3RhdGljIERh dHVtIGJ1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2FycmF5KEVTdGF0ZSAqZXN0YXRlLCBSZWxh dGlvbiByZWwsCisJCQkJCQkJCQkJCSAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJ CQkJCQkJCSAgTGlzdCAqY29uZmxpY3R0dXBsZXMpOworc3RhdGljIHZvaWQgcHJlcGFyZV9jb25m bGljdF9sb2dfdHVwbGUoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJCSAg IFJlbGF0aW9uIGNvbmZsaWN0bG9ncmVsLAorCQkJCQkJCQkJICAgQ29uZmxpY3RUeXBlIGNvbmZs aWN0X3R5cGUsCisJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqc2VhcmNoc2xvdCwKKwkJCQkJ CQkJCSAgIExpc3QgKmNvbmZsaWN0dHVwbGVzLAorCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3Qg KnJlbW90ZXNsb3QpOwogCiAvKgogICogR2V0IHRoZSB4bWluIGFuZCBjb21taXQgdGltZXN0YW1w IGRhdGEgKG9yaWdpbiBhbmQgdGltZXN0YW1wKSBhc3NvY2lhdGVkCkBAIC0xMDUsMzAgKzE0Niw5 MCBAQCBSZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpy ZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJCQlDb25mbGljdFR5cGUgdHlwZSwgVHVwbGVUYWJsZVNs b3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LCBMaXN0ICpj b25mbGljdHR1cGxlcykKIHsKLQlSZWxhdGlvbglsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0 aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0YSBlcnJfZGV0YWlsOworCVJlbGF0aW9uCQlsb2NhbHJl bCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlDb25mbGljdExvZ0Rlc3QJZGVzdDsKKwlS ZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7CisJYm9vbAkJCWxvZ19kZXN0X2NsdDsKKwlib29sIAkJ CWxvZ19kZXN0X2xvZ2ZpbGU7CiAKLQlpbml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisJcGdz dGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fY29uZmxpY3QoTXlTdWJzY3JpcHRpb24tPm9pZCwgdHlw ZSk7CiAKLQkvKiBGb3JtIGVycmRldGFpbCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGlu ZyB0dXBsZXMgaW5mb3JtYXRpb24uICovCi0JZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUluZm8s IGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0dHVwbGVzKQotCQllcnJkZXRhaWxfYXBwbHlfY29uZmxp Y3QoZXN0YXRlLCByZWxpbmZvLCB0eXBlLCBzZWFyY2hzbG90LAotCQkJCQkJCQkgY29uZmxpY3R0 dXBsZS0+c2xvdCwgcmVtb3Rlc2xvdCwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPmluZGV4b2lk LAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+eG1pbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUt Pm9yaWdpbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPnRzLAotCQkJCQkJCQkgJmVycl9kZXRh aWwpOworCS8qCisJICogR2V0IHRoZSBjb25mbGljdCBsb2cgZGVzdGluYXRpb24uIEFsc28sIChp ZiB0aGVyZSBpcyBvbmUpIHJldHVybiB0aGUKKwkgKiBDTFQgcmVsYXRpb24gYWxyZWFkeSBvcGVu ZWQgYW5kIHJlYWR5IGZvciBpbnNlcnRpb24uCisJICovCisJY29uZmxpY3Rsb2dyZWwgPSBHZXRD b25mbGljdExvZ0Rlc3RBbmRUYWJsZSgmZGVzdCk7CiAKLQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlw dGlvbl9jb25mbGljdChNeVN1YnNjcmlwdGlvbi0+b2lkLCB0eXBlKTsKKwlsb2dfZGVzdF9jbHQg PSAoKGRlc3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkgIT0gMCk7CisJbG9nX2Rlc3RfbG9n ZmlsZSA9ICgoZGVzdCAmIENPTkZMSUNUX0xPR19ERVNUX0xPRykgIT0gMCk7CisKKwkvKiBJbnNl cnQgdG8gdGFibGUgaWYgcmVxdWVzdGVkLiAqLworCWlmIChsb2dfZGVzdF9jbHQpCisJeworCQlB c3NlcnQoY29uZmxpY3Rsb2dyZWwgIT0gTlVMTCk7CisKKwkJLyoKKwkJICogUHJlcGFyZSB0aGUg Y29uZmxpY3QgbG9nIHR1cGxlLiBJZiB0aGUgZXJyb3IgbGV2ZWwgaXMgYmVsb3cgRVJST1IsCisJ CSAqIGluc2VydCBpdCBpbW1lZGlhdGVseS4gT3RoZXJ3aXNlLCBkZWZlciB0aGUgaW5zZXJ0aW9u IHRvIGEgbmV3CisJCSAqIHRyYW5zYWN0aW9uIGFmdGVyIHRoZSBjdXJyZW50IG9uZSBhYm9ydHMs IGVuc3VyaW5nIHRoZSBpbnNlcnRpb24gb2YKKwkJICogdGhlIGxvZyB0dXBsZSBpcyBub3Qgcm9s bGVkIGJhY2suCisJCSAqLworCQlwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShlc3RhdGUsCisJ CQkJCQkJCSAgIHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJICAgY29uZmxpY3Rs b2dyZWwsCisJCQkJCQkJCSAgIHR5cGUsCisJCQkJCQkJCSAgIHNlYXJjaHNsb3QsCisJCQkJCQkJ CSAgIGNvbmZsaWN0dHVwbGVzLAorCQkJCQkJCQkgICByZW1vdGVzbG90KTsKKwkJaWYgKGVsZXZl bCA8IEVSUk9SKQorCQkJSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisK KwkJaWYgKCFsb2dfZGVzdF9sb2dmaWxlKQorCQl7CisJCQkvKgorCQkJICogTm90IGxvZ2dpbmcg Y29uZmxpY3QgZGV0YWlscyB0byB0aGUgc2VydmVyIGxvZzsgUmVwb3J0IHRoZSBlcnJvcgorCQkJ ICogbXNnIGJ1dCBvbWl0IHJhdyB0dXBsZSBkYXRhIGZyb20gc2VydmVyIGxvZ3Mgc2luY2UgaXQn cyBhbHJlYWR5CisJCQkgKiBjYXB0dXJlZCBpbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLgorCQkJ ICovCisJCQllcmVwb3J0KGVsZXZlbCwKKwkJCQkJZXJyY29kZV9hcHBseV9jb25mbGljdCh0eXBl KSwKKwkJCQkJZXJybXNnKCJjb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzLiVzXCI6 IGNvbmZsaWN0PSVzIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVz cGFjZShsb2NhbHJlbCkpLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUobG9jYWxyZWwp LAorCQkJCQkJQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCQllcnJkZXRhaWwoIkNvbmZs aWN0IGRldGFpbHMgYXJlIGxvZ2dlZCB0byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlOiAlcyIsCisJ CQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShjb25mbGljdGxvZ3JlbCkpKTsKKwkJfQor CisJCXRhYmxlX2Nsb3NlKGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl9CiAK LQllcmVwb3J0KGVsZXZlbCwKLQkJCWVycmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCi0JCQll cnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9 JXMiLAotCQkJCSAgIGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2Nh bHJlbCkpLAotCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSwKLQkJCQkg ICBDb25mbGljdFR5cGVOYW1lc1t0eXBlXSksCi0JCQllcnJkZXRhaWxfaW50ZXJuYWwoIiVzIiwg ZXJyX2RldGFpbC5kYXRhKSk7CisJLyogTG9nIGludG8gdGhlIHNlcnZlciBsb2cgaWYgcmVxdWVz dGVkLiAqLworCWlmIChsb2dfZGVzdF9sb2dmaWxlKQorCXsKKwkJU3RyaW5nSW5mb0RhdGEJZXJy X2RldGFpbDsKKworCQlpbml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisKKwkJLyogRm9ybSBl cnJkZXRhaWwgbWVzc2FnZSBieSBjb21iaW5pbmcgY29uZmxpY3RpbmcgdHVwbGVzIGluZm9ybWF0 aW9uLiAqLworCQlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwg Y29uZmxpY3R0dXBsZXMpCisJCQllcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0YXRlLCByZWxp bmZvLCB0eXBlLCBzZWFyY2hzbG90LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+c2xvdCwgcmVt b3Rlc2xvdCwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPmluZGV4b2lkLAorCQkJCQkJCQkJY29u ZmxpY3R0dXBsZS0+eG1pbiwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPm9yaWdpbiwKKwkJCQkJ CQkJCWNvbmZsaWN0dHVwbGUtPnRzLAorCQkJCQkJCQkJJmVycl9kZXRhaWwpOworCisJCS8qIFN0 YW5kYXJkIHJlcG9ydGluZyB3aXRoIGZ1bGwgaW50ZXJuYWwgZGV0YWlscy4gKi8KKwkJZXJlcG9y dChlbGV2ZWwsCisJCQkJZXJyY29kZV9hcHBseV9jb25mbGljdCh0eXBlKSwKKwkJCQllcnJtc2co ImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAor CQkJCQkgICBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UobG9jYWxyZWwp KSwKKwkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQkgICBD b25mbGljdFR5cGVOYW1lc1t0eXBlXSksCisJCQkJZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVy cl9kZXRhaWwuZGF0YSkpOworCX0KIH0KIAogLyoKQEAgLTE2Miw2ICsyNjMsNjQgQEAgSW5pdENv bmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZvKQogCXJlbEluZm8tPnJpX29uQ29u ZmxpY3RBcmJpdGVySW5kZXhlcyA9IHVuaXF1ZUluZGV4ZXM7CiB9CiAKKy8qCisgKiBHZXRDb25m bGljdExvZ0Rlc3RBbmRUYWJsZQorICoKKyAqIEZldGNoZXMgY29uZmxpY3QgbG9nZ2luZyBtZXRh ZGF0YSBmcm9tIHRoZSBjYWNoZWQgTXlTdWJzY3JpcHRpb24gcG9pbnRlci4KKyAqIFNldHMgdGhl IGRlc3RpbmF0aW9uIGVudW0gaW4gKmxvZ19kZXN0IGFuZCwgaWYgYXBwbGljYWJsZSwgb3BlbnMg YW5kCisgKiByZXR1cm5zIHRoZSByZWxhdGlvbiBoYW5kbGUgZm9yIHRoZSBjb25mbGljdCBsb2cg dGFibGUuCisgKi8KK1JlbGF0aW9uCitHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGlj dExvZ0Rlc3QgKmxvZ19kZXN0KQoreworCU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CisJUmVsYXRp b24JY29uZmxpY3Rsb2dyZWwgPSBOVUxMOworCisJLyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxv ZyBkZXN0aW5hdGlvbiB0byB0aGUgaW50ZXJuYWwgZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICog YWxyZWFkeSBjb250YWlucyB0aGUgZGF0YSBmcm9tIHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkq bG9nX2Rlc3QgPSBHZXRMb2dEZXN0aW5hdGlvbihNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dk ZXN0KTsKKworCS8qIFF1aWNrIGV4aXQgaWYgYSBjb25mbGljdCBsb2cgdGFibGUgd2FzIG5vdCBy ZXF1ZXN0ZWQuICovCisJaWYgKCgqbG9nX2Rlc3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkg PT0gMCkKKwkJcmV0dXJuIE5VTEw7CisKKwljb25mbGljdGxvZ3JlbGlkID0gTXlTdWJzY3JpcHRp b24tPmNvbmZsaWN0bG9ncmVsaWQ7CisKKwlBc3NlcnQoT2lkSXNWYWxpZChjb25mbGljdGxvZ3Jl bGlkKSk7CisKKwljb25mbGljdGxvZ3JlbCA9IHRhYmxlX29wZW4oY29uZmxpY3Rsb2dyZWxpZCwg Um93RXhjbHVzaXZlTG9jayk7CisJaWYgKGNvbmZsaWN0bG9ncmVsID09IE5VTEwpCisJCWVsb2co RVJST1IsICJjb3VsZCBub3Qgb3BlbiBjb25mbGljdCBsb2cgdGFibGUgKE9JRCAldSkiLAorCQkJ IGNvbmZsaWN0bG9ncmVsaWQpOworCisJcmV0dXJuIGNvbmZsaWN0bG9ncmVsOworfQorCisvKgor ICogSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZQorICoKKyAqIEluc2VydCBjb25mbGljdCBsb2cgdHVw bGUgaW50byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBJdCB1c2VzCisgKiBIRUFQX0lOU0VSVF9O T19MT0dJQ0FMIHRvIGV4cGxpY2l0bHkgYmxvY2sgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgdHVw bGUKKyAqIGluc2VydGVkIGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9pZAor SW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwlpbnQJ CQlvcHRpb25zID0gSEVBUF9JTlNFUlRfTk9fTE9HSUNBTDsKKworCS8qIEEgdmFsaWQgdHVwbGUg bXVzdCBiZSBwcmVwYXJlZCBhbmQgc3RvcmVkIGluIE15TG9naWNhbFJlcFdvcmtlci4gKi8KKwlB c3NlcnQoTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUgIT0gTlVMTCk7CisK KwloZWFwX2luc2VydChjb25mbGljdGxvZ3JlbCwgTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGlj dF9sb2dfdHVwbGUsCisJCQkJR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKSwgb3B0aW9ucywgTlVM TCk7CisKKwkvKiBGcmVlIGNvbmZsaWN0IGxvZyB0dXBsZS4gKi8KKwloZWFwX2ZyZWV0dXBsZShN eUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSk7CisJTXlMb2dpY2FsUmVwV29y a2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPSBOVUxMOworfQorCiAvKgogICogQWRkIFNRTFNUQVRF IGVycm9yIGNvZGUgdG8gdGhlIGN1cnJlbnQgY29uZmxpY3QgcmVwb3J0LgogICovCkBAIC01MjIs NiArNjgxLDQwIEBAIGdldF90dXBsZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZv ICpyZWxpbmZvLCBDb25mbGljdFR5cGUgdHlwZSwKIAl9CiB9CiAKKy8qCisgKiBIZWxwZXIgZnVu Y3Rpb24gdG8gZXh0cmFjdCB0aGUgInJhdyIgaW5kZXgga2V5IERhdHVtcyBhbmQgdGhlaXIgbnVs bCBmbGFncworICogZnJvbSBhIFR1cGxlVGFibGVTbG90LCBnaXZlbiBhbiBhbHJlYWR5IG9wZW4g aW5kZXggZGVzY3JpcHRvci4KKyAqIFRoaXMgaXMgdGhlIHJldXNhYmxlIGNvcmUgbG9naWMuCisg Ki8KK3N0YXRpYyB2b2lkCitidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KEVTdGF0ZSAqZXN0 YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJ CQkJCQkJIFJlbGF0aW9uIGluZGV4RGVzYywgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQkgYm9vbCAq aXNudWxsKQoreworCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OworCisJLyoKKwkg KiBJZiB0aGUgc2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBpdCBpbnRvIGEgaGVhcCB0dXBs ZSBzbG90IGFzCisJICogRm9ybUluZGV4RGF0dW0gb25seSB3b3JrcyB3aXRoIGhlYXAgdHVwbGUg c2xvdHMuCisJICovCisJaWYgKFRUU19JU19WSVJUVUFMKHNsb3QpKQorCXsKKwkJLyogU2xvdCBp cyBjcmVhdGVkIHdpdGhpbiB0aGUgRVN0YXRlJ3MgdHVwbGUgdGFibGUgKi8KKwkJdGFibGVzbG90 ID0gdGFibGVfc2xvdF9jcmVhdGUobG9jYWxyZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOwor CQl0YWJsZXNsb3QgPSBFeGVjQ29weVNsb3QodGFibGVzbG90LCBzbG90KTsKKwl9CisKKwkvKgor CSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVwbGUgZm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUlu ZGV4RGF0dW0KKwkgKi8KKwlHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVjeHRfc2Nh bnR1cGxlID0gdGFibGVzbG90OworCisJLyogRm9ybSB0aGUgaW5kZXggZGF0dW1zICovCisJRm9y bUluZGV4RGF0dW0oQnVpbGRJbmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90LCBlc3RhdGUs IHZhbHVlcywKKwkJCQkgICBpc251bGwpOworfQorCiAvKgogICogSGVscGVyIGZ1bmN0aW9ucyB0 byBjb25zdHJ1Y3QgYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY29udGVudHMgb2YgYW4gaW5kZXgK ICAqIGVudHJ5LiBTZWUgQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24gZm9yIGRldGFpbHMuCkBA IC01MzcsNDEgKzczMCwzMjUgQEAgYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0 ZSwgUmVsYXRpb24gbG9jYWxyZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCVJlbGF0aW9uCWlu ZGV4RGVzYzsKIAlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAlib29sCQlpc251bGxb SU5ERVhfTUFYX0tFWVNdOwotCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OwogCi0J aWYgKCF0YWJsZXNsb3QpCisJaWYgKCFzbG90KQogCQlyZXR1cm4gTlVMTDsKIAogCUFzc2VydChD aGVja1JlbGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1 ZSkpOwogCiAJaW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleG9pZCwgTm9Mb2NrKTsKIAotCS8q Ci0JICogSWYgdGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAg dHVwbGUgc2xvdCBhcwotCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1 cGxlIHNsb3RzLgotCSAqLwotCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwlidWlsZF9pbmRl eF9kYXR1bXNfZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4RGVzYywgdmFs dWVzLAorCQkJCQkJCQkgaXNudWxsKTsKKworCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVl RGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwlpbmRleF9jbG9zZShp bmRleERlc2MsIE5vTG9jayk7CisKKwlyZXR1cm4gaW5kZXhfdmFsdWU7Cit9CisKKy8qCisgKiB0 dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0KKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8g Y29udmVydCBhIFR1cGxlVGFibGVTbG90IHRvIEpTT04uCisgKi8KK3N0YXRpYyBEYXR1bQordHVw bGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCUhl YXBUdXBsZQl0dXBsZTsKKwlEYXR1bQkJZGF0dW07CisJRGF0dW0JCWpzb247CisKKwlBc3NlcnQo c2xvdCAhPSBOVUxMKTsKKworCXR1cGxlID0gRXhlY0NvcHlTbG90SGVhcFR1cGxlKHNsb3QpOwor CWRhdHVtID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCBzbG90LT50dHNfdHVwbGVE ZXNjcmlwdG9yKTsKKworCWpzb24gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBk YXR1bSk7CisJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJcmV0dXJuIGpzb247Cit9CisKKy8q CisgKiB0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24KKyAqCisgKiBGZXRjaCByZXBs aWNhIGlkZW50aXR5IGtleSBmcm9tIHRoZSB0dXBsZSB0YWJsZSBzbG90IGFuZCBjb252ZXJ0IGlu dG8gYQorICogSlNPTiBkYXR1bS4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90 X3RvX2luZGV4dHVwX2pzb24oRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJ CQkJCQkgIE9pZCBpbmRleGlkLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlSZWxhdGlvbglp bmRleERlc2M7CisJRGF0dW0JCXZhbHVlc1tJTkRFWF9NQVhfS0VZU107CisJYm9vbAkJaXNudWxs W0lOREVYX01BWF9LRVlTXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJVHVwbGVEZXNjCXR1cGRlc2M7 CisJRGF0dW0JCWRhdHVtOworCisJQXNzZXJ0KHNsb3QgIT0gTlVMTCk7CisKKwlBc3NlcnQoQ2hl Y2tSZWxhdGlvbk9pZExvY2tlZEJ5TWUoaW5kZXhpZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkp OworCisJaW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleGlkLCBOb0xvY2spOworCisJYnVpbGRf aW5kZXhfZGF0dW1zX2Zyb21fc2xvdChlc3RhdGUsIGxvY2FscmVsLCBzbG90LCBpbmRleERlc2Ms IHZhbHVlcywKKwkJCQkJCQkJIGlzbnVsbCk7CisJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3Io aW5kZXhEZXNjKTsKKworCS8qIEJsZXNzIHRoZSB0dXBkZXNjIHNvIGl0IGNhbiBiZSBsb29rZWQg dXAgYnkgcm93X3RvX2pzb24uICovCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKiBG b3JtIHRoZSByZXBsaWNhIGlkZW50aXR5IHR1cGxlLiAqLworCXR1cGxlID0gaGVhcF9mb3JtX3R1 cGxlKHR1cGRlc2MsIHZhbHVlcywgaXNudWxsKTsKKwlkYXR1bSA9IGhlYXBfY29weV90dXBsZV9h c19kYXR1bSh0dXBsZSwgdHVwZGVzYyk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5vTG9j ayk7CisJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJLyogQ29udmVydCB0byBhIEpTT04gZGF0 dW0uICovCisJcmV0dXJuIERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGRhdHVtKTsK K30KKworLyoKKyAqIGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYworICoKKyAqIEJ1aWxkIGFuZCBi bGVzcyBhIHR1cGxlIGRlc2NyaXB0b3IgZm9yIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFi bGUKKyAqIGJhc2VkIG9uIHRoZSBwcmVkZWZpbmVkIExvY2FsQ29uZmxpY3RTY2hlbWEuCisgKi8K K3N0YXRpYyBUdXBsZURlc2MKK2J1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYyh2b2lkKQoreworCVR1 cGxlRGVzYyAgIHR1cGRlc2M7CisKKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2Mo TUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlMpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBN QVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSUzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpIChpICsgMSksCisJCQkJCQkgICBMb2NhbENvbmZsaWN0U2No ZW1hW2ldLmF0dG5hbWUsCisJCQkJCQkgICBMb2NhbENvbmZsaWN0U2NoZW1hW2ldLmF0dHR5cGlk LAorCQkJCQkJICAgLTEsIDApOworCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwlyZXR1 cm4gdHVwZGVzYzsKK30KKworLyoKKyAqIEJ1aWxkcyB0aGUgbG9jYWwgY29uZmxpY3RzIEpTT04g YXJyYXkgY29sdW1uIGZyb20gdGhlIGxpc3Qgb2YKKyAqIENvbmZsaWN0VHVwbGVJbmZvIG9iamVj dHMuCisgKgorICogRXhhbXBsZSBvdXRwdXQgc3RydWN0dXJlOgorICogWyB7ICJ4aWQiOiAiMTAw MSIsICJjb21taXRfdHMiOiAiLi4uIiwgIm9yaWdpbiI6ICIuLi4iLCAidHVwbGUiOiB7Li4ufSB9 LCAuLi4gXQorICovCitzdGF0aWMgRGF0dW0KK2J1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2Fy cmF5KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCSBDb25mbGljdFR5cGUg Y29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJIExpc3QgKmNvbmZsaWN0dHVwbGVzKQoreworCUxpc3RD ZWxsICAgKmxjOworCUxpc3QJICAgKmpzb25fZGF0dW1zID0gTklMOworCURhdHVtCSAgICpqc29u X2RhdHVtX2FycmF5OworCWJvb2wJICAgKmpzb25fbnVsbF9hcnJheTsKKwlEYXR1bQkJanNvbl9h cnJheV9kYXR1bTsKKwlpbnQJCQludW1fY29uZmxpY3RzOworCWludAkJCWk7CisJaW50MTYJCXR5 cGxlbjsKKwlib29sCQl0eXBieXZhbDsKKwljaGFyCQl0eXBhbGlnbjsKKwlUdXBsZURlc2MJdHVw ZGVzYzsKKworCS8qIEJ1aWxkIGxvY2FsIGNvbmZsaWN0cyB0dXBsZSBkZXNjcmlwdG9yLiAqLwor CXR1cGRlc2MgPSBidWlsZF9jb25mbGljdF90dXBsZWRlc2MoKTsKKworCS8qIFByb2Nlc3MgbG9j YWwgY29uZmxpY3QgdHVwbGUgbGlzdCBhbmQgcHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAqLwor CWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1 cGxlcykKIAl7Ci0JCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0 YXRlLT5lc190dXBsZVRhYmxlKTsKLQkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xv dCwgc2xvdCk7CisJCURhdHVtCQl2YWx1ZXNbTUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlNd ID0gezB9OworCQlib29sCQludWxsc1tNQVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSU10gPSB7 MH07CisJCWNoYXIJICAgKm9yaWdpbl9uYW1lID0gTlVMTDsKKwkJSGVhcFR1cGxlCXR1cGxlOwor CQlEYXR1bQkJanNvbl9kYXR1bTsKKwkJaW50CQkJYXR0bm87CisKKwkJYXR0bm8gPSAwOworCQl2 YWx1ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0oY29uZmxpY3R0dXBsZS0+eG1p bik7CisKKwkJaWYgKGNvbmZsaWN0dHVwbGUtPnRzKQorCQkJdmFsdWVzW2F0dG5vKytdID0gVGlt ZXN0YW1wVHpHZXREYXR1bShjb25mbGljdHR1cGxlLT50cyk7CisJCWVsc2UKKwkJCW51bGxzW2F0 dG5vKytdID0gdHJ1ZTsKKworCQlpZiAoY29uZmxpY3R0dXBsZS0+b3JpZ2luICE9IEludmFsaWRS ZXBPcmlnaW5JZCkKKwkJCXJlcGxvcmlnaW5fYnlfb2lkKGNvbmZsaWN0dHVwbGUtPm9yaWdpbiwg dHJ1ZSwgJm9yaWdpbl9uYW1lKTsKKworCQkvKiBTdG9yZSBlbXB0eSBzdHJpbmcgaWYgb3JpZ2lu IG5hbWUgZm9yIHRoZSB0dXBsZSBpcyBOVUxMLiAqLworCQlpZiAob3JpZ2luX25hbWUgIT0gTlVM TCkKKwkJCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ob3JpZ2luX25hbWUp OworCQllbHNlCisJCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwkJLyoKKwkJICogQWRkIHRo ZSBjb25mbGljdGluZyBrZXkgdmFsdWVzIGluIHRoZSBjYXNlIG9mIGEgdW5pcXVlIGNvbnN0cmFp bnQKKwkJICogdmlvbGF0aW9uLgorCQkgKi8KKwkJaWYgKGNvbmZsaWN0X3R5cGUgPT0gQ1RfSU5T RVJUX0VYSVNUUyB8fAorCQkJY29uZmxpY3RfdHlwZSA9PSBDVF9VUERBVEVfRVhJU1RTIHx8CisJ CQljb25mbGljdF90eXBlID09IENUX01VTFRJUExFX1VOSVFVRV9DT05GTElDVFMpCisJCXsKKwkJ CU9pZAlpbmRleG9pZCA9IGNvbmZsaWN0dHVwbGUtPmluZGV4b2lkOworCisJCQlBc3NlcnQoT2lk SXNWYWxpZChpbmRleG9pZCkgJiYgY29uZmxpY3R0dXBsZS0+c2xvdCAmJgorCQkJCSAgIENoZWNr UmVsYXRpb25PaWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNsdXNpdmVMb2NrLAorCQkJCQkJ CQkJCQkgIHRydWUpKTsKKwkJCXZhbHVlc1thdHRubysrXSA9CisJCQkJCXR1cGxlX3RhYmxlX3Ns b3RfdG9faW5kZXh0dXBfanNvbihlc3RhdGUsIHJlbCwKKwkJCQkJCQkJCQkJCQkgIGluZGV4b2lk LAorCQkJCQkJCQkJCQkJCSAgY29uZmxpY3R0dXBsZS0+c2xvdCk7CisJCX0KKwkJZWxzZQorCQkJ bnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJCS8qIENvbnZlcnQgY29uZmxpY3RpbmcgdHVwbGUg dG8gSlNPTiBkYXR1bS4gKi8KKwkJaWYgKGNvbmZsaWN0dHVwbGUtPnNsb3QpCisJCQl2YWx1ZXNb YXR0bm9dID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKGNvbmZsaWN0dHVwbGUtPnNs b3QpOworCQllbHNlCisJCQludWxsc1thdHRub10gPSB0cnVlOworCisJCUFzc2VydChhdHRubyAr IDEgPT0gTUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlMpOworCisJCXR1cGxlID0gaGVhcF9m b3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCisJCWpzb25fZGF0dW0gPSBoZWFw X2NvcHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHR1cGRlc2MpOworCisJCS8qCisJCSAqIEJ1aWxk IHRoZSBoaWdoZXIgbGV2ZWwgSlNPTiBkYXR1bSBpbiBmb3JtYXQgZGVzY3JpYmVkIGluIGZ1bmN0 aW9uCisJCSAqIGhlYWRlci4KKwkJICovCisJCWpzb25fZGF0dW0gPSBEaXJlY3RGdW5jdGlvbkNh bGwxKHJvd190b19qc29uLCBqc29uX2RhdHVtKTsKKworCQkvKiBEb25lIHdpdGggdGhlIHRlbXBv cmFyeSB0dXBsZS4gKi8KKwkJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJCS8qIEFkZCB0byB0 aGUgYXJyYXkgZWxlbWVudC4gKi8KKwkJanNvbl9kYXR1bXMgPSBsYXBwZW5kKGpzb25fZGF0dW1z LCAodm9pZCAqKSBqc29uX2RhdHVtKTsKIAl9CiAKLQkvKgotCSAqIEluaXRpYWxpemUgZWN4dF9z Y2FudHVwbGUgZm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0gd2hlbgotCSAqIGlu ZGV4IGV4cHJlc3Npb25zIGFyZSBwcmVzZW50LgotCSAqLwotCUdldFBlclR1cGxlRXhwckNvbnRl eHQoZXN0YXRlKS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisJbnVtX2NvbmZsaWN0cyA9 IGxpc3RfbGVuZ3RoKGpzb25fZGF0dW1zKTsKIAotCS8qCi0JICogVGhlIHZhbHVlcy9udWxscyBh cnJheXMgcGFzc2VkIHRvIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIHNob3VsZCBiZQotCSAq IHRoZSByZXN1bHRzIG9mIEZvcm1JbmRleERhdHVtLCB3aGljaCBhcmUgdGhlICJyYXciIGlucHV0 IHRvIHRoZSBpbmRleAotCSAqIEFNLgotCSAqLwotCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJ bmZvKGluZGV4RGVzYyksIHRhYmxlc2xvdCwgZXN0YXRlLCB2YWx1ZXMsIGlzbnVsbCk7CisJanNv bl9kYXR1bV9hcnJheSA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtX2NvbmZsaWN0cyk7CisJanNv bl9udWxsX2FycmF5ID0gcGFsbG9jMF9hcnJheShib29sLCBudW1fY29uZmxpY3RzKTsKIAotCWlu ZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMs IGlzbnVsbCk7CisJaSA9IDA7CisJZm9yZWFjaChsYywganNvbl9kYXR1bXMpCisJeworCQlqc29u X2RhdHVtX2FycmF5W2ldID0gKERhdHVtKSBsZmlyc3QobGMpOworCQlpKys7CisJfQogCi0JaW5k ZXhfY2xvc2UoaW5kZXhEZXNjLCBOb0xvY2spOworCS8qIENvbnN0cnVjdCB0aGUgSlNPTiBhcnJh eSBEYXR1bS4gKi8KKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihKU09OT0lELCAmdHlwbGVuLCAmdHlw Ynl2YWwsICZ0eXBhbGlnbik7CisJanNvbl9hcnJheV9kYXR1bSA9IFBvaW50ZXJHZXREYXR1bShj b25zdHJ1Y3RfYXJyYXkoanNvbl9kYXR1bV9hcnJheSwKKwkJCQkJCQkJCQkJCQkgICBudW1fY29u ZmxpY3RzLAorCQkJCQkJCQkJCQkJCSAgIEpTT05PSUQsCisJCQkJCQkJCQkJCQkJICAgdHlwbGVu LAorCQkJCQkJCQkJCQkJCSAgIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJCSAgIHR5cGFsaWduKSk7 CisJcGZyZWUoanNvbl9kYXR1bV9hcnJheSk7CisJcGZyZWUoanNvbl9udWxsX2FycmF5KTsKKwor CXJldHVybiBqc29uX2FycmF5X2RhdHVtOworfQogCi0JcmV0dXJuIGluZGV4X3ZhbHVlOworLyoK KyAqIHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlCisgKgorICogVGhpcyByb3V0aW5lIHByZXBh cmVzIGEgdHVwbGUgZGV0YWlsaW5nIGEgY29uZmxpY3QgZW5jb3VudGVyZWQgZHVyaW5nCisgKiBs b2dpY2FsIHJlcGxpY2F0aW9uLiBUaGUgcHJlcGFyZWQgdHVwbGUgd2lsbCBiZSBzdG9yZWQgaW4K KyAqIE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlIHdoaWNoIHNob3VsZCBi ZSBpbnNlcnRlZCBpbnRvIHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGJ5IGNhbGxpbmcgSW5z ZXJ0Q29uZmxpY3RMb2dUdXBsZS4KKyAqLworc3RhdGljIHZvaWQKK3ByZXBhcmVfY29uZmxpY3Rf bG9nX3R1cGxlKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkgICBSZWxhdGlv biBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCSAgIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAor CQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCisJCQkJCQkgICBMaXN0ICpjb25m bGljdHR1cGxlcywKKwkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90KQoreworCURh dHVtCQl2YWx1ZXNbTUFYX0NPTkZMSUNUX0FUVFJfTlVNXSA9IHswfTsKKwlib29sCQludWxsc1tN QVhfQ09ORkxJQ1RfQVRUUl9OVU1dID0gezB9OworCWludAkJCWF0dG5vOworCWNoYXIJICAgKnJl bW90ZV9vcmlnaW4gPSBOVUxMOworCU1lbW9yeUNvbnRleHQJb2xkY3R4OworCisJQXNzZXJ0KE15 TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID09IE5VTEwpOworCisJLyogUG9w dWxhdGUgdGhlIHZhbHVlcyBhbmQgbnVsbHMgYXJyYXlzLiAqLworCWF0dG5vID0gMDsKKwl2YWx1 ZXNbYXR0bm8rK10gPSBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisK Kwl2YWx1ZXNbYXR0bm8rK10gPQorCQkJQ1N0cmluZ0dldFRleHREYXR1bShnZXRfbmFtZXNwYWNl X25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkpOworCisJdmFsdWVzW2F0dG5vKytdID0g Q1N0cmluZ0dldFRleHREYXR1bShSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKKworCXZh bHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RUeXBlTmFtZXNbY29u ZmxpY3RfdHlwZV0pOworCisJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHJlbW90ZV94aWQpKQor CQl2YWx1ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0ocmVtb3RlX3hpZCk7CisJ ZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwl2YWx1ZXNbYXR0bm8rK10gPSBMU05H ZXREYXR1bShyZW1vdGVfZmluYWxfbHNuKTsKKworCWlmIChyZW1vdGVfY29tbWl0X3RzID4gMCkK KwkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1bShyZW1vdGVfY29tbWl0X3Rz KTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCWlmIChyZXBsb3JpZ2luX3Nl c3Npb25fb3JpZ2luICE9IEludmFsaWRSZXBPcmlnaW5JZCkKKwkJcmVwbG9yaWdpbl9ieV9vaWQo cmVwbG9yaWdpbl9zZXNzaW9uX29yaWdpbiwgdHJ1ZSwgJnJlbW90ZV9vcmlnaW4pOworCisJaWYg KHJlbW90ZV9vcmlnaW4gIT0gTlVMTCkKKwkJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRl eHREYXR1bShyZW1vdGVfb3JpZ2luKTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsK KworCWlmICghVHVwSXNOdWxsKHNlYXJjaHNsb3QpKQorCXsKKwkJT2lkCQlyZXBsaWNhX2luZGV4 ID0gR2V0UmVsYXRpb25JZGVudGl0eU9yUEsocmVsKTsKKworCQkvKgorCQkgKiBJZiB0aGUgdGFi bGUgaGFzIGEgdmFsaWQgcmVwbGljYSBpZGVudGl0eSBpbmRleCwgYnVpbGQgdGhlIGluZGV4CisJ CSAqIEpTT04gZGF0dW0gZnJvbSBrZXkgdmFsdWUuIE90aGVyd2lzZSwgY29uc3RydWN0IGl0IGZy b20gdGhlIGNvbXBsZXRlCisJCSAqIHR1cGxlIGluIFJFUExJQ0EgSURFTlRJVFkgRlVMTCBjYXNl cy4KKwkJICovCisJCWlmIChPaWRJc1ZhbGlkKHJlcGxpY2FfaW5kZXgpKQorCQkJdmFsdWVzW2F0 dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKGVzdGF0ZSwgcmVsLAor CQkJCQkJCQkJCQkJCQkJCXJlcGxpY2FfaW5kZXgsCisJCQkJCQkJCQkJCQkJCQkJc2VhcmNoc2xv dCk7CisJCWVsc2UKKwkJCXZhbHVlc1thdHRubysrXSA9IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNv bl9kYXR1bShzZWFyY2hzbG90KTsKKwl9CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7 CisKKwlpZiAoIVR1cElzTnVsbChyZW1vdGVzbG90KSkKKwkJdmFsdWVzW2F0dG5vKytdID0gdHVw bGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHJlbW90ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNb YXR0bm8rK10gPSB0cnVlOworCisJdmFsdWVzW2F0dG5vXSA9IGJ1aWxkX2xvY2FsX2NvbmZsaWN0 c19qc29uX2FycmF5KGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJCQkJCSBjb25mbGljdF90eXBlLAor CQkJCQkJCQkJCQkJCSBjb25mbGljdHR1cGxlcyk7CisKKwlBc3NlcnQoYXR0bm8gKyAxID09IE1B WF9DT05GTElDVF9BVFRSX05VTSk7CisKKwlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o QXBwbHlDb250ZXh0KTsKKwlNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9 CisJCWhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKGNvbmZsaWN0bG9ncmVsKSwgdmFs dWVzLCBudWxscyk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CiB9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMKaW5kZXggM2VkODY0ODBiZTIuLjJk ZGE1YTQ0MjE4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xh dW5jaGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5j CkBAIC00NzcsNiArNDc3LDcgQEAgcmV0cnk6CiAJd29ya2VyLT5vbGRlc3Rfbm9ucmVtb3ZhYmxl X3hpZCA9IHJldGFpbl9kZWFkX3R1cGxlcwogCQk/IE15UmVwbGljYXRpb25TbG90LT5kYXRhLnht aW4KIAkJOiBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwl3b3JrZXItPmNvbmZsaWN0X2xvZ190dXBs ZSA9IE5VTEw7CiAJd29ya2VyLT5sYXN0X2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCVRJTUVT VEFNUF9OT0JFR0lOKHdvcmtlci0+bGFzdF9zZW5kX3RpbWUpOwogCVRJTUVTVEFNUF9OT0JFR0lO KHdvcmtlci0+bGFzdF9yZWN2X3RpbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv d29ya2VyLmMKaW5kZXggYWQyODFlNzA2OWIuLmQ0YmUxMTIyNjAzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTQ4Miw3ICs0ODIsOSBAQCBzdGF0aWMgYm9v bCBNeVN1YnNjcmlwdGlvblZhbGlkID0gZmFsc2U7CiBzdGF0aWMgTGlzdCAqb25fY29tbWl0X3dh a2V1cF93b3JrZXJzX3N1YmlkcyA9IE5JTDsKIAogYm9vbAkJaW5fcmVtb3RlX3RyYW5zYWN0aW9u ID0gZmFsc2U7Ci1zdGF0aWMgWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhM b2dSZWNQdHI7CitYTG9nUmVjUHRyIHJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0 cjsKK1RyYW5zYWN0aW9uSWQJcmVtb3RlX3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworVGlt ZXN0YW1wVHoJcmVtb3RlX2NvbW1pdF90cyA9IDA7CiAKIC8qIGZpZWxkcyB2YWxpZCBvbmx5IHdo ZW4gcHJvY2Vzc2luZyBzdHJlYW1lZCB0cmFuc2FjdGlvbiAqLwogc3RhdGljIGJvb2wgaW5fc3Ry ZWFtZWRfdHJhbnNhY3Rpb24gPSBmYWxzZTsKQEAgLTEyMTksNiArMTIyMSw4IEBAIGFwcGx5X2hh bmRsZV9iZWdpbihTdHJpbmdJbmZvIHMpCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChi ZWdpbl9kYXRhLnhpZCwgYmVnaW5fZGF0YS5maW5hbF9sc24pOwogCiAJcmVtb3RlX2ZpbmFsX2xz biA9IGJlZ2luX2RhdGEuZmluYWxfbHNuOworCXJlbW90ZV9jb21taXRfdHMgPSBiZWdpbl9kYXRh LmNvbW1pdHRpbWU7CisJcmVtb3RlX3hpZCA9IGJlZ2luX2RhdGEueGlkOwogCiAJbWF5YmVfc3Rh cnRfc2tpcHBpbmdfY2hhbmdlcyhiZWdpbl9kYXRhLmZpbmFsX2xzbik7CiAKQEAgLTE3NDUsNiAr MTc0OSwxMCBAQCBhcHBseV9oYW5kbGVfc3RyZWFtX3N0YXJ0KFN0cmluZ0luZm8gcykKIAkvKiBl eHRyYWN0IFhJRCBvZiB0aGUgdG9wLWxldmVsIHRyYW5zYWN0aW9uICovCiAJc3RyZWFtX3hpZCA9 IGxvZ2ljYWxyZXBfcmVhZF9zdHJlYW1fc3RhcnQocywgJmZpcnN0X3NlZ21lbnQpOwogCisJcmVt b3RlX3hpZCA9IHN0cmVhbV94aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVj UHRyOworCXJlbW90ZV9jb21taXRfdHMgPSAwOworCiAJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxp ZChzdHJlYW1feGlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1BS T1RPQ09MX1ZJT0xBVElPTiksCkBAIC01NjA5LDYgKzU2MTcsMjcgQEAgc3RhcnRfYXBwbHkoWExv Z1JlY1B0ciBvcmlnaW5fc3RhcnRwb3MpCiAJCQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9l cnJvcihNeVN1YnNjcmlwdGlvbi0+b2lkLAogCQkJCQkJCQkJCQkgTXlMb2dpY2FsUmVwV29ya2Vy LT50eXBlKTsKIAorCQkJLyoKKwkJCSAqIEluc2VydCBhbnkgcGVuZGluZyBjb25mbGljdCBsb2cg dHVwbGUgdW5kZXIgYSBuZXcgdHJhbnNhY3Rpb24uCisJCQkgKi8KKwkJCWlmIChNeUxvZ2ljYWxS ZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSAhPSBOVUxMKQorCQkJeworCQkJCVJlbGF0aW9u CWNvbmZsaWN0bG9ncmVsOworCQkJCUNvbmZsaWN0TG9nRGVzdAlkZXN0OworCisJCQkJU3RhcnRU cmFuc2FjdGlvbkNvbW1hbmQoKTsKKwkJCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rp b25TbmFwc2hvdCgpKTsKKworCQkJCS8qIE9wZW4gY29uZmxpY3QgbG9nIHRhYmxlIGFuZCBpbnNl cnQgdGhlIHR1cGxlLiAqLworCQkJCWNvbmZsaWN0bG9ncmVsID0gR2V0Q29uZmxpY3RMb2dEZXN0 QW5kVGFibGUoJmRlc3QpOworCQkJCUFzc2VydCgoZGVzdCAmIENPTkZMSUNUX0xPR19ERVNUX1RB QkxFKSAhPSAwKTsKKwkJCQlJbnNlcnRDb25mbGljdExvZ1R1cGxlKGNvbmZsaWN0bG9ncmVsKTsK KwkJCQl0YWJsZV9jbG9zZShjb25mbGljdGxvZ3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJ CQlQb3BBY3RpdmVTbmFwc2hvdCgpOworCQkJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwor CQkJfQorCiAJCQlQR19SRV9USFJPVygpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZs aWN0LmgKaW5kZXggMzFmYWNjMWVjN2UuLmRiZjI1OWI4ZDAxIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L2NvbmZsaWN0LmgKQEAgLTE0NCw0ICsxNDQsNyBAQCBleHRlcm4gdm9pZCBSZXBvcnRBcHBseUNv bmZsaWN0KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJCQlU dXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJTGlzdCAqY29uZmxpY3R0dXBsZXMp OwogZXh0ZXJuIHZvaWQgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZv KTsKK2V4dGVybiBSZWxhdGlvbiBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExv Z0Rlc3QgKmxvZ19kZXN0KTsKK2V4dGVybiB2b2lkIEluc2VydENvbmZsaWN0TG9nVHVwbGUoUmVs YXRpb24gY29uZmxpY3Rsb2dyZWwpOworZXh0ZXJuIGJvb2wgVmFsaWRhdGVDb25mbGljdExvZ1Rh YmxlKFJlbGF0aW9uIHJlbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgKaW5kZXggYzEyODVmZGQxYmMuLjViZWRmYzU0NTBmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMTAxLDYgKzEwMSw5IEBAIHR5cGVk ZWYgc3RydWN0IExvZ2ljYWxSZXBXb3JrZXIKIAkgKi8KIAlUcmFuc2FjdGlvbklkIG9sZGVzdF9u b25yZW1vdmFibGVfeGlkOwogCisJLyogQSBjb25mbGljdCBsb2cgdHVwbGUgdGhhdCBpcyBwcmVw YXJlZCBidXQgbm90IHlldCBpbnNlcnRlZC4gKi8KKwlIZWFwVHVwbGUJY29uZmxpY3RfbG9nX3R1 cGxlOworCiAJLyogU3RhdHMuICovCiAJWExvZ1JlY1B0cglsYXN0X2xzbjsKIAlUaW1lc3RhbXBU eiBsYXN0X3NlbmRfdGltZTsKQEAgLTI1Niw2ICsyNTksMTAgQEAgZXh0ZXJuIFBHRExMSU1QT1JU IGJvb2wgSW5pdGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBMaXN0 ICp0YWJsZV9zdGF0ZXNfbm90X3JlYWR5OwogCitleHRlcm4gWExvZ1JlY1B0ciByZW1vdGVfZmlu YWxfbHNuOworZXh0ZXJuIFRpbWVzdGFtcFR6IHJlbW90ZV9jb21taXRfdHM7CitleHRlcm4gVHJh bnNhY3Rpb25JZAlyZW1vdGVfeGlkOworCiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dvcmtlcl9h dHRhY2goaW50IHNsb3QpOwogZXh0ZXJuIExvZ2ljYWxSZXBXb3JrZXIgKmxvZ2ljYWxyZXBfd29y a2VyX2ZpbmQoTG9naWNhbFJlcFdvcmtlclR5cGUgd3R5cGUsCiAJCQkJCQkJCQkJCQlPaWQgc3Vi aWQsIE9pZCByZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9j b25mbGljdHMucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmlu ZGV4IDQyNmFkNzRjZjMzLi4zMjkyNWJkNDljYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MzVfY29uZmxpY3RzLnBsCkBAIC01MCw3ICs1MCw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgKIAkncG9zdGdyZXMnLAogCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1Yl90YWIKIAkgQ09O TkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JGFwcG5hbWUnCi0J IFBVQkxJQ0FUSU9OIHB1Yl90YWI7Iik7CisJIFBVQkxJQ0FUSU9OIHB1Yl90YWIgV0lUSCAoY29u ZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPWFsbCkiKTsKIAogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxl IHN5bmMgdG8gZmluaXNoCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25f c3luYygkbm9kZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKQEAgLTg0LDEwICs4NCwzNSBAQCAkbm9k ZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlx dWUgaW5kZXggXCJjb25mX3RhYl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjog a2V5IFwoY1wpPVwoNFwpLCBsb2NhbCByb3cgXCg0LCA0LCA0XCkuLywKIAkkbG9nX29mZnNldCk7 CiAKKyMgVmVyaWZ5IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQp CisjIFRoaXMgc2VjdGlvbiBlbnN1cmVzIHRoYXQgdGhlIGNsdCBjb250YWlucyB0aGUgZXhwZWN0 ZWQKKyMgdHlwZSBhbmQgc3BlY2lmaWMga2V5IGRhdGEuCitteSAkc3ViaWQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3N1Yl90YWInOyIpOworbXkgJGNsdCA9ICJwZ19jb25m bGljdC5wZ19jb25mbGljdF8kc3ViaWQiOworCisjIFdhaXQgZm9yIHRoZSBjb25mbGljdCB0byBi ZSBsb2dnZWQgaW4gdGhlIENMVAorbXkgJGxvZ19jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnBv bGxfcXVlcnlfdW50aWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID4g MCBGUk9NICRjbHQ7IgorKTsKKworbXkgJGNvbmZsaWN0X2NoZWNrID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+PSAxIEZST00g JGNsdCBXSEVSRSBjb25mbGljdF90eXBlID0gJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMnOyIp OworaXMoJGNvbmZsaWN0X2NoZWNrLCAndCcsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzIGxvZ2dlZCBpbnRvIGNvbmZsaWN0IGxvZyB0YWJsZScpOworCitteSAkanNvbl9xdWVy eSA9ICJTRUxFQ1QgbG9jYWxfY29uZmxpY3RzIEZST00gJGNsdDsiOworbXkgJHJhd19qc29uID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKwor IyBWZXJpZnkgdGhhdCAnMicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVz aW5nIGEgcmVnZXgKKyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEi OiAyCitsaWtlKCRyYXdfanNvbiwgcXIvXFwiYVxcIjoyLywgJ1ZlcmlmaWVkIHRoYXQga2V5IDIg ZXhpc3RzIGluIHRoZSBsb2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVl X2NvbmZsaWN0cyBkZXRlY3RlZCBkdXJpbmcgaW5zZXJ0Jyk7CiAKICMgVHJ1bmNhdGUgdGFibGUg dG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiVFJVTkNBVEUgY29uZl90YWI7Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIkRFTEVURSBGUk9NICRjbHQiKTsKIAogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgVGVzdCBtdWx0aXBsZV91bmlxdWVf Y29uZmxpY3RzIGR1ZSB0byBVUERBVEUKQEAgLTExNCw2ICsxMzksMjYgQEAgJG5vZGVfc3Vic2Ny aWJlci0+d2FpdF9mb3JfbG9nKAogLipLZXkgYWxyZWFkeSBleGlzdHMgaW4gdW5pcXVlIGluZGV4 IFwiY29uZl90YWJfY19rZXlcIiwgbW9kaWZpZWQgaW4gdHJhbnNhY3Rpb24gLio6IGtleSBcKGNc KT1cKDhcKSwgbG9jYWwgcm93IFwoOCwgOCwgOFwpLi8sCiAJJGxvZ19vZmZzZXQpOwogCisjIFZl cmlmeSB0aGUgY29udGVudHMgb2YgdGhlIENvbmZsaWN0IExvZyBUYWJsZSAoQ0xUKQorIyBUaGlz IHNlY3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBDTFQgY29udGFpbnMgdGhlIGV4cGVjdGVkCisjIHR5 cGUgYW5kIHNwZWNpZmljIGtleSBkYXRhLgorCisjIFdhaXQgZm9yIHRoZSBjb25mbGljdCB0byBi ZSBsb2dnZWQgaW4gdGhlIENMVAorJGxvZ19jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnBvbGxf cXVlcnlfdW50aWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID4gMCBG Uk9NICRjbHQ7IgorKTsKKworJGNvbmZsaWN0X2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+PSAxIEZST00gJGNsdCBX SEVSRSBjb25mbGljdF90eXBlID0gJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMnOyIpOworaXMo JGNvbmZsaWN0X2NoZWNrLCAndCcsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3Rz IGxvZ2dlZCBpbnRvIGNvbmZsaWN0IGxvZyB0YWJsZScpOworCiskcmF3X2pzb24gPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlm eSB0aGF0ICc2JyBpcyBwcmVzZW50IGluc2lkZSB0aGUgSlNPTiBzdHJ1Y3R1cmUgdXNpbmcgYSBy ZWdleAorIyBUaGlzIG1hdGNoZXMgdGhlIGtleS92YWx1ZSBwYXR0ZXJuIGZvciAiYSI6IDYKK2xp a2UoJHJhd19qc29uLCBxci9cXCJhXFwiOjYvLCAnVmVyaWZpZWQgdGhhdCBrZXkgNiBleGlzdHMg aW4gdGhlIGxvY2FsX2NvbmZsaWN0cycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxp Y3RzIGRldGVjdGVkIGR1cmluZyB1cGRhdGUnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQg cmlkIG9mIHRoZSBlcnJvcgotLSAKMi40OS4wCgo= --000000000000f1181b06490bfa93--