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 1wZ5X2-000lQl-1R for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Jun 2026 11:31:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wZ5X1-00BgRk-1N for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Jun 2026 11:31:07 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wZ5X0-00BgNj-39 for pgsql-hackers@lists.postgresql.org; Mon, 15 Jun 2026 11:31:07 +0000 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wZ5Wy-00000000VLP-2Vya for pgsql-hackers@lists.postgresql.org; Mon, 15 Jun 2026 11:31:06 +0000 Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-39664fe2dd8so24385271fa.3 for ; Mon, 15 Jun 2026 04:31:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781523064; cv=none; d=google.com; s=arc-20240605; b=jEoOmdsKK9M1wbF2esvPpSZEfPUzBsZldl17zaA04SlaLGKlL9Ea224qCT2b+kUCDC AjVwYbO+BEDmZdegCEaFkIO4mI6Ab9XhkPOQ0SApVy+0fIYal2TuPEVH4i6A351BedGM 3kYPURJ4HgemX6JHLXoiFAg8nM/jyvNK5wPOQW1QYacCtBUSAM4oZHAX9/SR3vl7Kurs l+FjRnS89F5ec3eJXHu+yRe+7vHp4JLkKpqNdgwvw4jTcPuL1/51oGo5nGruTcLcUm/r CMgb1U5TB9e/XADOFT9I8TIf1H1LCTQR5IU7qHvPQ35vJvl5lcitxxNaNwE4WhR3BfiL BYqw== 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=tB6857ZVtVWUajTLEAhq3LwEq8uQ8H6eUfMdSqQ4Z38=; fh=cMTInVsWNp1ix0LCiJ3lCVlQnkcTM9qWCR1ALorQIok=; b=G5kz4bKP0kGSm79/kiCWY+88oYuIDaDHG/L5owm/yOoN76Jb5D2rvzGd0Q1NLkywHW 12suoc3VSZdLynJCdnElLFtPCzrvOLdzr+ziCmTOYlKHQNZ+c1Wdw4G85p2dm1wNqBA/ ANya+JffyIF/YYmc4g3ZEae9ICQ5mVqKF6lZWVpuz+TXY2XhtPJH7JrQjAIc7YyixjJT nGZjc8yvBHxXg0O9gi/PDTTxdCUAxaGMP4fDjm6JUciOypLVy1GRNaRCBk3p6YyX0yxN F8gMGnbakqxfYJxRtyDn0UaB8zShKMco/YtgJ67OfuGHeZpgbJFSDaU4muBoRlNm+O8f LlxQ==; 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=20251104; t=1781523064; x=1782127864; 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=tB6857ZVtVWUajTLEAhq3LwEq8uQ8H6eUfMdSqQ4Z38=; b=Gg7B1amOmzekxS8BbiF9VDkm8CLd5no4sUATeKaeUjcv9z3BvVB8i7FeHp+T1Eq/Zy cwdAZ5fWfLkYEuFqLnSsbl/+p06Zgs9DaeGaxGgVSt4L01ZlN/2riRj4m5ErjjNlL19j O9KvpDGDdnkbJEviWsMmDZ25q/+n7YI0QjNedAeE3iUYaU+IIlarZMd6f+SoEQ87armS Yld7AYzAnadSDsAvR0H0XBCKSrkZMzq9mNS62cyRPVY2ju7xlpSsbI19wb9rMvcSNf+k xIZNMoBTH0fI6w9euUt9YYUSEldJ3YuojZkFbgaF/b2URgjOm0sobv7N2A5sV+WTzMuo d13Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781523064; x=1782127864; 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=tB6857ZVtVWUajTLEAhq3LwEq8uQ8H6eUfMdSqQ4Z38=; b=qod7WCloqoJOmJY7F6lrMqTf4hgAQbfU1iIzCVL0NJ/JiCjU6qFmSf6zaNM8nokRmq kErAr9AmDO0VVJclu3dIHkX2uluRfupg4jrr3Ii4nNLh/S+OowhsllB8hhyHtj3VdsTS +TWOhApZY5hNoL+uSlPbZXQFnB7nMGPlptAZ4NNbRI9IytNiT7GpGePKMLTPCmMOcedi 4OEcbYcUZ4xAWLe8xrbIjuHRI5PO3u+/ARPSMIZ6ramLTZ5k7hcGq0JLTLL6jcAClRq5 cggr6topQy000PktttftDlDiusyPrk5M/nqgPGXFt9QLBi2QJlqE9kxidWd2fzl/m4a5 pn3Q== X-Forwarded-Encrypted: i=1; AFNElJ9qlbDLnK5hddNbp0N3x+o85A/7BSwhsn680vUd/RNMZ3+9UAEyhOq9q6NbySPfYXESe+Aw1XeQTEf6IDmF@lists.postgresql.org X-Gm-Message-State: AOJu0YyrXTMv+qUJ1GXtpmJMN1VUs/XYrNX04x/kgNhAqJNgSJsi0hvR CANfKBtE98FimpfO60KCu/MYw/q7NUlh9WP7ThC6hiHbQqZoWbM3hmktHK4yW2N6cidn/brUI/v nllomV04o4gGc8xViAJOIWGmVMOCzk4inh+Y= X-Gm-Gg: Acq92OHEbdVUZKZT4GpMnwmDaEmhQzKm14zuJQSCeYtWFfWGahl8dj5I6/b1uzenNPD Y+TlAJrxYXsvYywzWjkWzRdO9VlMSWSq3O8sJ8Q64q75y1LRFSniY6u/OogZA2DtKZC/GBOYRsy 5tjKhimKZM4UsCpeKXV7nMr9JYfGLExqTwV2i2kxySUtUTwxiOYMAVHiqPTvCZz4CpBoRmtbdfe 8ZJW8Kj62x8AJaJ3s5Rb3Zg6mvGoAFDlD53FgF7gFpgXEfDOWy3bTwUDWLvHn9K8tbziQBxjUrl vA0/kf9XcXAJkoHPjeM= X-Received: by 2002:ac2:4bc1:0:b0:5ad:3035:c2bf with SMTP id 2adb3069b0e04-5ad3035c325mr3305279e87.52.1781523063281; Mon, 15 Jun 2026 04:31:03 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Mon, 15 Jun 2026 17:00:50 +0530 X-Gm-Features: AVVi8Cf2P4XHbis-BaYVUIhndFNR2ZAC49VkXonncRXDrtOdV1KMsDNq7oSW2kg Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: Amit Kapila Cc: Peter Smith , Zsolt Parragi , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000058e5ae0654492956" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000058e5ae0654492956 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jun 15, 2026 at 11:50=E2=80=AFAM Amit Kapila wrote: > > On Thu, Jun 11, 2026 at 12:17=E2=80=AFPM Peter Smith wrote: > > > > ////////// > > v12-0002 > > > > =3D=3D=3D=3D=3D=3D > > doc/src/sgml/ref/alter_publication.sgml > > > > 1. > > + > > + For FOR TABLES IN SCHEMA publications, the > > + EXCEPT clause is schema-scoped. If a table l= isted in > > + the EXCEPT clause is later moved to a differe= nt schema > > + using ALTER TABLE ... SET SCHEMA, the exclusi= on is > > + removed; the table will then be published if its new schema is p= art of a > > + publication. If the table is subsequently moved back to the ori= ginal > > + schema, the exclusion is not restored, and must be re-establishe= d > > + explicitly using ALTER PUBLICATION. Dropping= a table > > + always removes it from the EXCEPT clause, > > regardless of > > + publication type. > > + > > > > > > I think the sentence "If the table is subsequently moved back..." is > > overkill, and does not need to be said. The prior info "the exclusion > > is removed" already tells me the exclusion is gone, and I think is > > reasonable to assume "removed" means that it is gone for good, with no > > ambiguity that it might magically come back. > > > > YMMV. Leave it as-is if you prefer. > > > > I feel it is okay to keep the proposed sentence to avoid any ambiguity > by the user to consider the schema-scope state is symmetric. > Okay, I have kept this para as-it-is. The other comments on v12-0001 from [1] have also been addressed. Please find the updated v13 patches attached. [1] https://www.postgresql.org/message-id/CAHut%2BPv-GA1oGa6%2Bnwn_5AVhBg8N= uJThQVUzqhQPXJge49jnew%40mail.gmail.com -- Thanks, Nisha --00000000000058e5ae0654492956 Content-Type: application/octet-stream; name="v13-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Disposition: attachment; filename="v13-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqf4q8nn0 RnJvbSBiZTQ5ZjI1N2FhNWU5MTU4MmQ1NDhjMzU4MTViZTZkNTEyYmM0MDNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBNb24sIDE1IEp1biAyMDI2IDE2OjQ0OjQ3ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTMgMS8zXSBTdXBwb3J0IEVYQ0VQVCBjbGF1c2UgZm9yIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlv bnMKCkV4dGVuZCB0YWJsZSBleGNsdXNpb24gc3VwcG9ydCBpbiBwdWJsaWNhdGlvbnMgdG8gYWxs b3cgc3BlY2lmaWMKdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gc2NoZW1hLWxldmVsIHB1Ymxp Y2F0aW9ucyB1c2luZyBhbgpFWENFUFQgY2xhdXNlIGluIENSRUFURSBQVUJMSUNBVElPTi4KClN1 cHBvcnRlZCBzeW50YXg6CkNSRUFURSBQVUJMSUNBVElPTiA8cHViPiBGT1IgVEFCTEVTIElOIFND SEVNQSBzIEVYQ0VQVCAoVEFCTEUgdDEsLi4uKTsKLS0tCiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1y ZXBsaWNhdGlvbi5zZ21sICAgICAgIHwgICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9w dWJsaWNhdGlvbi5zZ21sICAgIHwgIDI0ICsrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jICAgICAgICB8IDE2MSArKysrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICB8IDE0NiArKysrKysrKysrKysrKysrLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgfCAgMTEgKysKIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgfCAgNTQgKysrKysrLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyB8ICAzMCArKystCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICB8ICAzNSArKysrLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICB8ICAgMyArLQogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggICAgICB8ICAgMiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgfCAxNDQgKysrKysrKysrKysrKysrKy0KIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgfCAgODggKysrKysrKysr Ky0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgICAgICAgfCAxMzMgKysr KysrKysrKysrKysrLQogMTUgZmlsZXMgY2hhbmdlZCwgNzk3IGluc2VydGlvbnMoKyksIDU3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9u LnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDllNzg2 ODQ4N2RlLi4xNDMzZDI2NjBmZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s CkBAIC0xMTcsNyArMTE3LDggQEAKICAgIG9yIDxsaXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9s aXRlcmFsPi4gVW5saWtlIHRhYmxlcywgc2VxdWVuY2VzIGNhbiBiZQogICAgc3luY2hyb25pemVk IGF0IGFueSB0aW1lLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCiAgICA8eHJlZiBsaW5rZW5k PSJsb2dpY2FsLXJlcGxpY2F0aW9uLXNlcXVlbmNlcyIvPi4gV2hlbiBhIHB1YmxpY2F0aW9uIGlz Ci0gICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LCBhIHRh YmxlIG9yIHNldCBvZiB0YWJsZXMgY2FuCisgICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFM TCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwv bGl0ZXJhbD4sIGEgdGFibGUgb3Igc2V0IG9mIHRhYmxlcyBjYW4KICAgIGJlIGV4cGxpY2l0bHkg ZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbiB1c2luZyB0aGUKICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4Y2VwdC10YWJsZSI+PGxpdGVyYWw+RVhD RVBUPC9saXRlcmFsPjwvbGluaz4KICAgIGNsYXVzZS4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9w dWJsaWNhdGlvbi5zZ21sCmluZGV4IGY4MmQ2NDBlNmNhLi4xMDE3Mzk2ZjQ3NiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yOCw3ICsyOCw3IEBAIENSRUFU RSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+CiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJs aWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKICAgICBU QUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfYW5kX2NvbHVtbnM8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXQotICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NI RU1BIH0gWywgLi4uIF0KKyAgICBUQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZXNfaW5fc2NoZW1hPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0KIAogPHBo cmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX2FsbF9v YmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAgLTM5LDYgKzM5LDEw IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+CiAKICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0KIAor PHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hl bWE8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAgIHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9 IFsgRVhDRVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9v YmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKwogPHBocmFzZT5hbmQgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBp czo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQpAQCAtMTQyLDYgKzE0Niw4IEBAIENS RUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgogICAgICAgdGhlIHNw ZWNpZmllZCBsaXN0IG9mIHNjaGVtYXMsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUg ZnV0dXJlLgorICAgICAgVGFibGVzIGxpc3RlZCBpbiB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRl cmFsPiBjbGF1c2UgZm9yIGEgZ2l2ZW4gc2NoZW1hCisgICAgICBhcmUgZXhjbHVkZWQgZnJvbSB0 aGUgcHVibGljYXRpb24uCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTE3Myw3ICsx NzksNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICA8cGFyYT4KICAgICAgIE1hcmtzIHRoZSBwdWJsaWNh dGlvbiBhcyBvbmUgdGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMgaW4KICAg ICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUu IFRhYmxlcyBsaXN0ZWQgaW4KLSAgICAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNl IGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKyAgICAgIHRoZSA8bGl0ZXJhbD5F WENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24u CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0x OTgsNyArMjA0LDEwIEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4K ICAgICAgIFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1 ZGVkIGZyb20gdGhlCi0gICAgICBwdWJsaWNhdGlvbi4KKyAgICAgIHB1YmxpY2F0aW9uLiBJdCBj YW4gYmUgdXNlZCB3aXRoIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBvcgorICAg ICAgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LiBGb3IgPGxpdGVyYWw+ Rk9SIFRBQkxFUyBJTgorICAgICAgU0NIRU1BPC9saXRlcmFsPiwgdGhlIGV4Y2x1c2lvbiBhcHBs aWVzIG9ubHkgdG8gdGFibGVzIGluIHRoZSBzY2hlbWEKKyAgICAgIGFzc29jaWF0ZWQgd2l0aCB0 aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4K ICAgICAgIEZvciBpbmhlcml0ZWQgdGFibGVzLCBpZiA8bGl0ZXJhbD5PTkxZPC9saXRlcmFsPiBp cyBzcGVjaWZpZWQgYmVmb3JlIHRoZQpAQCAtNTE1LDYgKzUyNCwxNSBAQCBDUkVBVEUgUFVCTElD QVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBGT1IgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRz LCBUQUJMRVMgSQogQ1JFQVRFIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9uIEZPUiBUQUJM RVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4K IAorICA8cGFyYT4KKyAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBj aGFuZ2VzIGZvciBhbGwgdGhlIHRhYmxlcyBwcmVzZW50IGluCisgICB0aGUgc2NoZW1hIDxzdHJ1 Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPiwgZXhjZXB0CisgICA8c3RydWN0bmFtZT5pbnRlcm5h bDwvc3RydWN0bmFtZT4gYW5kIDxzdHJ1Y3RuYW1lPmRyYWZ0czwvc3RydWN0bmFtZT46Cis8cHJv Z3JhbWxpc3Rpbmc+CitDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfZmlsdGVyZWQgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBUIChUQUJMRSBpbnRlcm5hbCwgZHJhZnRzKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0 aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vy czwvc3RydWN0bmFtZT4sCiAgICBidXQgcmVwbGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5h bWU+dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5kCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmMKaW5kZXggNWM0NTdkOWFjYTguLjQwODliNTA1Zjg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jCkBAIC00NDQsMTMgKzQ0NCwxOSBAQCBHZXRQdWJQYXJ0aXRpb25PcHRpb25S ZWxhdGlvbnMoTGlzdCAqcmVzdWx0LCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAg KgogICogTm90ZSB0aGF0IHRoZSBsaXN0IG9mIGFuY2VzdG9ycyBzaG91bGQgYmUgb3JkZXJlZCBz dWNoIHRoYXQgdGhlIHRvcG1vc3QKICAqIGFuY2VzdG9yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxp c3QuCisgKgorICogZXhjZXB0X3B1YmlkcyBpcyBhIGxpc3Qgb2YgcHVibGljYXRpb24gT0lEcyB3 aG9zZSBzY2hlbWEgbWVtYmVyc2hpcAorICogc2hvdWxkIGJlIGlnbm9yZWQgZm9yIHRoZSBhbmNl c3RvciAoYmVjYXVzZSB0aGUgYW5jZXN0b3IgaXMgaW4gdGhlaXIKKyAqIEVYQ0VQVCBjbGF1c2Up LgogICovCiBPaWQKLUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwg TGlzdCAqYW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsKQorR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCisJCQkJCQkJCWludCAq YW5jZXN0b3JfbGV2ZWwsIExpc3QgKmV4Y2VwdF9wdWJpZHMpCiB7CiAJTGlzdENlbGwgICAqbGM7 CiAJT2lkCQkJdG9wbW9zdF9yZWxpZCA9IEludmFsaWRPaWQ7CiAJaW50CQkJbGV2ZWwgPSAwOwor CWJvb2wJCWNoZWNrX3NjaGVtYXMgPSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9wdWJpZHMsIHB1 Ym9pZCk7CiAKIAkvKgogCSAqIEZpbmQgdGhlICJ0b3Btb3N0IiBhbmNlc3RvciB0aGF0IGlzIGlu IHRoaXMgcHVibGljYXRpb24uCkBAIC00NzAsNyArNDc2LDcgQEAgR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3Jf bGV2ZWwKIAkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKIAkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZl bDsKIAkJfQotCQllbHNlCisJCWVsc2UgaWYgKGNoZWNrX3NjaGVtYXMpCiAJCXsKIAkJCWFzY2hl bWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpKTsKIAkJCWlmIChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVib2lkKSkKQEAg LTU0NSwxOCArNTUxLDMwIEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1 YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCSAqIGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRv IHByb3ZpZGUgbmljZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KIAkgKiBjYXNlLiBUaGUgcmVh bCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRhbG9nLgogCSAqLwotCWlm IChTZWFyY2hTeXNDYWNoZUV4aXN0czIoUFVCTElDQVRJT05SRUxNQVAsIE9iamVjdElkR2V0RGF0 dW0ocmVsaWQpLAotCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpKQorCXR1cCA9IFNl YXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCks CisJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsKKworCWlmIChIZWFwVHVwbGVJc1Zh bGlkKHR1cCkpCiAJeworCQlib29sCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25f cmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCisJCVJlbGVhc2VTeXNDYWNoZSh0dXAp OwogCQl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJCWlmIChpZl9ub3Rf ZXhpc3RzKQogCQkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOwogCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKLQkJCQkgZXJybXNn KCJyZWxhdGlvbiBcIiVzXCIgaXMgYWxyZWFkeSBtZW1iZXIgb2YgcHVibGljYXRpb24gXCIlc1wi IiwKLQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkp KTsKKwkJaWYgKGlzX2V4Y2VwdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInRhYmxlIFwiJXNcIiBjYW5u b3QgYmUgYWRkZWQgYmVjYXVzZSBpdCBpcyBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uIFwiJXNc IiIsCisJCQkJCQkJUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSwK KwkJCQkJCQlwdWItPm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInJlbGF0aW9u IFwiJXNcIiBpcyBhbHJlYWR5IG1lbWJlciBvZiBwdWJsaWNhdGlvbiBcIiVzXCIiLAorCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkpKTsKIAl9CiAK IAljaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24ocHJpKTsKQEAgLTk4MiwxMiArMTAwMCwx MyBAQCBHZXRJbmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRp b25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogICogR2V0cyBsaXN0IG9mIHRhYmxlIG9pZHMgdGhhdCB3 ZXJlIHNwZWNpZmllZCBpbiB0aGUgRVhDRVBUIGNsYXVzZSBmb3IgYQogICogcHVibGljYXRpb24u CiAgKgotICogVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0 aW9ucy4KKyAqIFRoaXMgaXMgdXNlZCBmb3IgRk9SIEFMTCBUQUJMRVMgYW5kIEZPUiBUQUJMRVMg SU4gU0NIRU1BIHB1YmxpY2F0aW9ucywKKyAqIGJvdGggb2Ygd2hpY2ggc3VwcG9ydCBFWENFUFQg VEFCTEUuCiAgKi8KIExpc3QgKgogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhPaWQgcHVi aWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIHsKLQlBc3NlcnQoR2V0UHVibGlj YXRpb24ocHViaWQpLT5hbGx0YWJsZXMpOworCUFzc2VydChHZXRQdWJsaWNhdGlvbihwdWJpZCkt PmFsbHRhYmxlcyB8fCBpc19zY2hlbWFfcHVibGljYXRpb24ocHViaWQpKTsKIAogCXJldHVybiBn ZXRfcHVibGljYXRpb25fcmVsYXRpb25zKHB1YmlkLCBwdWJfcGFydG9wdCwgdHJ1ZSk7CiB9CkBA IC0xMDQ5LDE1ICsxMDY4LDE1IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJp ZCwgY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAJVGFibGVTY2FuRGVzYyBzY2FuOwog CUhlYXBUdXBsZQl0dXBsZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7Ci0JTGlzdAkgICAqZXhj ZXB0bGlzdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRfcmVsaWRzID0gTklMOwogCiAJQXNzZXJ0 KCEocmVsa2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFICYmIHB1YnZpYXJvb3QpKTsKIAogCS8qIEVY Q0VQVCBmaWx0ZXJpbmcgYXBwbGllcyBvbmx5IHRvIHJlbGF0aW9ucywgbm90IHNlcXVlbmNlcyAq LwogCWlmIChyZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04pCi0JCWV4Y2VwdGxpc3QgPSBHZXRF eGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLCBwdWJ2aWFyb290ID8KLQkJCQkJCQkJCQkJ CSAgUFVCTElDQVRJT05fUEFSVF9ST09UIDoKLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05fUEFS VF9MRUFGKTsKKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMo cHViaWQsIHB1YnZpYXJvb3QgPworCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1Qg OgorCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYpOwogCiAJY2xhc3NSZWwgPSB0 YWJsZV9vcGVuKFJlbGF0aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKIApAQCAtMTA3 NSw3ICsxMDk0LDcgQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBjaGFy IHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3Mo cmVsaWQsIHJlbEZvcm0pICYmCiAJCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZp YXJvb3QpICYmCi0JCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKKwkJCSFs aXN0X21lbWJlcl9vaWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpKQogCQkJcmVzdWx0ID0gbGFwcGVu ZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC0xMDk3LDcgKzExMTYsNyBAQCBHZXRBbGxQ dWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFy b290KQogCiAJCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYmCiAJ CQkJIXJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmCi0JCQkJIWxpc3RfbWVtYmVyX29pZChleGNl cHRsaXN0LCByZWxpZCkpCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVsaWRzLCByZWxp ZCkpCiAJCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0KIApAQCAt MTIzMiwyMiArMTI1MSw2NyBAQCBHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2No ZW1haWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAogLyoKICAqIEdldHMgdGhl IGxpc3Qgb2YgYWxsIHJlbGF0aW9ucyBwdWJsaXNoZWQgYnkgRk9SIFRBQkxFUyBJTiBTQ0hFTUEK LSAqIHB1YmxpY2F0aW9uLgorICogcHVibGljYXRpb24sIGV4Y2x1ZGluZyBhbnkgdGFibGVzIGxp c3RlZCBpbiB0aGUgRVhDRVBUIGNsYXVzZS4KICAqLwogTGlzdCAqCiBHZXRBbGxTY2hlbWFQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9w dCkKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJTGlzdAkgICAqcHVic2NoZW1hbGlzdCA9 IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJTGlzdAkgICAqZXhjZXB0X3JlbGlkcyA9 IE5JTDsKIAlMaXN0Q2VsbCAgICpjZWxsOwogCisJLyogZ2V0IHRoZSBsaXN0IG9mIHRhYmxlcyBl eGNsdWRlZCB2aWEgRVhDRVBUIFRBQkxFIGZvciB0aGlzIHB1YmxpY2F0aW9uICovCisJaWYgKHB1 YnNjaGVtYWxpc3QgIT0gTklMKQorCQlleGNlcHRfcmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNh dGlvblRhYmxlcyhwdWJpZCwgcHViX3BhcnRvcHQpOworCiAJZm9yZWFjaChjZWxsLCBwdWJzY2hl bWFsaXN0KQogCXsKIAkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGNlbGwpOwogCQlMaXN0 CSAgICpzY2hlbWFSZWxzID0gTklMOwogCiAJCXNjaGVtYVJlbHMgPSBHZXRTY2hlbWFQdWJsaWNh dGlvblJlbGF0aW9ucyhzY2hlbWFpZCwgcHViX3BhcnRvcHQpOwotCQlyZXN1bHQgPSBsaXN0X2Nv bmNhdChyZXN1bHQsIHNjaGVtYVJlbHMpOworCisJCWlmIChleGNlcHRfcmVsaWRzICE9IE5JTCkK KwkJeworCQkJLyogZmlsdGVyIG91dCBhbnkgdGFibGVzIHRoYXQgYXBwZWFyIGluIHRoZSBFWENF UFQgbGlzdCAqLworCQkJTGlzdENlbGwgICAqcmxjOworCisJCQlmb3JlYWNoKHJsYywgc2NoZW1h UmVscykKKwkJCXsKKwkJCQlPaWQJCQlyZWxpZCA9IGxmaXJzdF9vaWQocmxjKTsKKwkJCQlib29s CQlleGNsdWRlZCA9IGxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVsaWRzLCByZWxpZCk7CisKKwkJ CQkvKgorCQkJCSAqIEFsc28gZXhjbHVkZSBhbnkgcmVsYXRpb24gd2hvc2UgcGFydGl0aW9uIGFu Y2VzdG9yIGlzIGluCisJCQkJICogdGhlIEVYQ0VQVCBsaXN0LiAgVGhpcyBtYXR0ZXJzIHdoZW4g cHViX3BhcnRvcHQgaXMKKwkJCQkgKiBQVUJMSUNBVElPTl9QQVJUX1JPT1Q6IHRoZSBleGNlcHQg bGlzdCBob2xkcyBvbmx5IHRoZSByb290CisJCQkJICogT0lELCBidXQgdGhlIHNjaGVtYSBzY2Fu IG1heSBhbHNvIHJldHVybiBpbmRpdmlkdWFsCisJCQkJICogcGFydGl0aW9uIHJlbGF0aW9ucyB0 aGF0IGxpdmUgaW4gdGhlIHNhbWUgc2NoZW1hLgorCQkJCSAqLworCQkJCWlmICghZXhjbHVkZWQg JiYgZ2V0X3JlbF9yZWxpc3BhcnRpdGlvbihyZWxpZCkpCisJCQkJeworCQkJCQlMaXN0CSAgICph bmNlc3RvcnMgPSBnZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7CisJCQkJCUxpc3RDZWxs ICAgKmFsYzsKKworCQkJCQlmb3JlYWNoKGFsYywgYW5jZXN0b3JzKQorCQkJCQl7CisJCQkJCQlp ZiAobGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9yZWxpZHMsIGxmaXJzdF9vaWQoYWxjKSkpCisJCQkJ CQl7CisJCQkJCQkJZXhjbHVkZWQgPSB0cnVlOworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJ CQl9CisJCQkJCWxpc3RfZnJlZShhbmNlc3RvcnMpOworCQkJCX0KKworCQkJCWlmICghZXhjbHVk ZWQpCisJCQkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOworCQkJfQorCQkJ bGlzdF9mcmVlKHNjaGVtYVJlbHMpOworCQl9CisJCWVsc2UKKwkJCXJlc3VsdCA9IGxpc3RfY29u Y2F0KHJlc3VsdCwgc2NoZW1hUmVscyk7CiAJfQogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTEzMjQs NiArMTM4OCw3IEBAIGlzX3RhYmxlX3B1Ymxpc2hhYmxlX2luX3B1YmxpY2F0aW9uKE9pZCByZWxp ZCwgUHVibGljYXRpb24gKnB1YikKIHsKIAlib29sCQlyZWxpc3BhcnRpdGlvbjsKIAlMaXN0CSAg ICphbmNlc3RvcnMgPSBOSUw7CisJSGVhcFR1cGxlCXR1cDsKIAogCS8qCiAJICogRm9yIG5vbi1w dWJ2aWFyb290IHB1YmxpY2F0aW9ucywgYSBwYXJ0aXRpb25lZCB0YWJsZSBpcyBuZXZlciB0aGUK QEAgLTEzODAsMjAgKzE0NDUsNjIgQEAgaXNfdGFibGVfcHVibGlzaGFibGVfaW5fcHVibGljYXRp b24oT2lkIHJlbGlkLCBQdWJsaWNhdGlvbiAqcHViKQogCSAqIElmIGl0J3MgZmFsc2UsIHRoZSBw YXJ0aXRpb24gaXMgY292ZXJlZCBieSBpdHMgYW5jZXN0b3IncyBwcmVzZW5jZSBpbgogCSAqIHRo ZSBwdWJsaWNhdGlvbiwgaXQgc2hvdWxkIGJlIGluY2x1ZGVkIChyZXR1cm4gdHJ1ZSkuCiAJICov Ci0JaWYgKHJlbGlzcGFydGl0aW9uICYmCi0JCU9pZElzVmFsaWQoR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihwdWItPm9pZCwgYW5jZXN0b3JzLCBOVUxMKSkpCi0JCXJldHVybiAhcHVi LT5wdWJ2aWFyb290OworCWlmIChyZWxpc3BhcnRpdGlvbikKKwl7CisJCU9pZAkJCWFuY2VzdG9y X29pZDsKKworCQlhbmNlc3Rvcl9vaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9u KHB1Yi0+b2lkLCBhbmNlc3RvcnMsIE5VTEwsIE5JTCk7CisJCWlmIChPaWRJc1ZhbGlkKGFuY2Vz dG9yX29pZCkpCisJCXsKKwkJCS8qCisJCQkgKiBUaGUgYW5jZXN0b3Igd2FzIGZvdW5kIGluIHRo ZSBwdWJsaWNhdGlvbiAodmlhIGV4cGxpY2l0CisJCQkgKiBtZW1iZXJzaGlwIG9yIHNjaGVtYSBt ZW1iZXJzaGlwKSwgYnV0IGl0IG1heSBiZSBleGNsdWRlZC4gQ2hlY2sKKwkJCSAqIGZvciBhIHBy ZXhjZXB0IHJvdyBiZWZvcmUgY29uY2x1ZGluZyB0aGUgcGFydGl0aW9uIGlzCisJCQkgKiBwdWJs aXNoZWQuCisJCQkgKi8KKwkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1B UCwKKwkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKGFuY2VzdG9yX29pZCksCisJCQkJCQkJCSAg T2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpOworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwkJCXsKKwkJCQlib29sCQlpc19leGNlcHQ7CisKKwkJCQlpc19leGNlcHQgPSAoKEZvcm1f cGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCQkJCVJlbGVh c2VTeXNDYWNoZSh0dXApOworCQkJCWlmIChpc19leGNlcHQpCisJCQkJCXJldHVybiBmYWxzZTsK KwkJCX0KKwkJCXJldHVybiAhcHViLT5wdWJ2aWFyb290OworCQl9CisJfQogCiAJLyoKIAkgKiBD aGVjayB3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBsaWNpdGx5IHB1Ymxpc2hlZCB2aWEgcGdfcHVi bGljYXRpb25fcmVsCiAJICogb3IgcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLgorCSAqCisJICog QSBwZ19wdWJsaWNhdGlvbl9yZWwgcm93IHdpdGggcHJleGNlcHQ9dHJ1ZSBtZWFucyB0aGUgdGFi bGUgaXMKKwkgKiBleHBsaWNpdGx5IGV4Y2x1ZGVkIHZpYSBFWENFUFQgYW5kIG11c3Qgbm90IGJl IHJlcG9ydGVkIGFzIHB1Ymxpc2hlZCwKKwkgKiBldmVuIGlmIGl0cyBzY2hlbWEgaXMgb3RoZXJ3 aXNlIGluY2x1ZGVkLiAgQSByb3cgd2l0aCBwcmV4Y2VwdD1mYWxzZQorCSAqIG1lYW5zIGl0IGlz IGV4cGxpY2l0bHkgaW5jbHVkZWQuICBJZiBubyBwZ19wdWJsaWNhdGlvbl9yZWwgcm93IGV4aXN0 cywKKwkgKiB0aGUgdGFibGUgaXMgcHVibGlzaGVkIGlmZiBpdHMgc2NoZW1hIGFwcGVhcnMgaW4K KwkgKiBwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuCiAJICovCi0JcmV0dXJuIChTZWFyY2hTeXND YWNoZUV4aXN0czIoUFVCTElDQVRJT05SRUxNQVAsCi0JCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1 bShyZWxpZCksCi0JCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpIHx8Ci0JCQlT ZWFyY2hTeXNDYWNoZUV4aXN0czIoUFVCTElDQVRJT05OQU1FU1BBQ0VNQVAsCi0JCQkJCQkJCSAg T2JqZWN0SWRHZXREYXR1bShnZXRfcmVsX25hbWVzcGFjZShyZWxpZCkpLAotCQkJCQkJCQkgIE9i amVjdElkR2V0RGF0dW0ocHViLT5vaWQpKSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFVC TElDQVRJT05SRUxNQVAsCisJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJ ICBPYmplY3RJZEdldERhdHVtKHB1Yi0+b2lkKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwl7CisJCWJvb2wJCWlzX2V4Y2VwdDsKKworCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVi bGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCQlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKKwkJcmV0dXJuICFpc19leGNlcHQ7CisJfQorCisJcmV0dXJuIFNlYXJjaFN5c0Nh Y2hlRXhpc3RzMihQVUJMSUNBVElPTk5BTUVTUEFDRU1BUCwKKwkJCQkJCQkJIE9iamVjdElkR2V0 RGF0dW0oZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpKSwKKwkJCQkJCQkJIE9iamVjdElkR2V0RGF0 dW0ocHViLT5vaWQpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMKaW5kZXggNDQwYWRiMzU2YWQuLmMyNGMwOGE1N2I1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYwpAQCAtMTgxLDcgKzE4MSw3IEBAIHBhcnNlX3B1YmxpY2F0aW9uX29w dGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogICovCiBzdGF0aWMgdm9pZAogT2JqZWN0c0luUHVi bGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUs Ci0JCQkJCQkgICBMaXN0ICoqcmVscywgTGlzdCAqKmV4Y2VwdHJlbHMsIExpc3QgKipzY2hlbWFz KQorCQkJCQkJICAgTGlzdCAqKnJlbHMsIExpc3QgKipleGNlcHRfcHVidGFibGVzLCBMaXN0ICoq c2NoZW1hcykKIHsKIAlMaXN0Q2VsbCAgICpjZWxsOwogCVB1YmxpY2F0aW9uT2JqU3BlYyAqcHVi b2JqOwpAQCAtMjAwLDcgKzIwMCw3IEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3Qg KnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQl7CiAJCQljYXNlIFBVQkxJ Q0FUSU9OT0JKX0VYQ0VQVF9UQUJMRToKIAkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSB0 cnVlOwotCQkJCSpleGNlcHRyZWxzID0gbGFwcGVuZCgqZXhjZXB0cmVscywgcHVib2JqLT5wdWJ0 YWJsZSk7CisJCQkJKmV4Y2VwdF9wdWJ0YWJsZXMgPSBsYXBwZW5kKCpleGNlcHRfcHVidGFibGVz LCBwdWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpf VEFCTEU6CiAJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CkBAIC0yMjQsNiAr MjI0LDM4IEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlz dCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJCQkJLyogRmlsdGVyIG91dCBkdXBsaWNhdGVzIGlm IHVzZXIgc3BlY2lmaWVzICJzY2gxLCBzY2gxIiAqLwogCQkJCSpzY2hlbWFzID0gbGlzdF9hcHBl bmRfdW5pcXVlX29pZCgqc2NoZW1hcywgc2NoZW1haWQpOworCisJCQkJLyoKKwkJCQkgKiBRdWFs aWZ5IHVucXVhbGlmaWVkIEVYQ0VQVCB0YWJsZSBuYW1lcyB3aXRoIHRoZSByZXNvbHZlZAorCQkJ CSAqIGN1cnJlbnQgc2NoZW1hIGFuZCByZWplY3QgYW55IGV4cGxpY2l0bHkgY3Jvc3Mtc2NoZW1h CisJCQkJICogZW50cmllcy4gIFRoaXMgbWlycm9ycyB0aGUgcGFyc2UtdGltZSBoYW5kbGluZyBk b25lIGZvcgorCQkJCSAqIFRBQkxFU19JTl9TQ0hFTUEgaW4gcHJlcHJvY2Vzc19wdWJvYmpfbGlz dCgpLCBkZWZlcnJlZCBoZXJlCisJCQkJICogYmVjYXVzZSBDVVJSRU5UX1NDSEVNQSBpcyBub3Qg a25vd24gdW50aWwgZXhlY3V0aW9uIHRpbWUuCisJCQkJICovCisJCQkJaWYgKHB1Ym9iai0+ZXhj ZXB0X3RhYmxlcyAhPSBOSUwpCisJCQkJeworCQkJCQljaGFyCSAgICpjdXJfc2NoZW1hX25hbWUg PSBnZXRfbmFtZXNwYWNlX25hbWUoc2NoZW1haWQpOworCisJCQkJCWZvcmVhY2hfcHRyKFB1Ymxp Y2F0aW9uT2JqU3BlYywgZW9iaiwgcHVib2JqLT5leGNlcHRfdGFibGVzKQorCQkJCQl7CisJCQkJ CQljb25zdCBjaGFyICplb2JqX3NjaGVtYW5hbWUgPQorCQkJCQkJCWVvYmotPnB1YnRhYmxlLT5y ZWxhdGlvbi0+c2NoZW1hbmFtZTsKKwkJCQkJCWNvbnN0IGNoYXIgKmVvYmpfcmVsbmFtZSA9CisJ CQkJCQkJZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5yZWxuYW1lOworCisJCQkJCQlpZiAoZW9i al9zY2hlbWFuYW1lID09IE5VTEwpCisJCQkJCQkJZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5z Y2hlbWFuYW1lID0gY3VyX3NjaGVtYV9uYW1lOworCQkJCQkJZWxzZSBpZiAoc3RyY21wKGVvYmpf c2NoZW1hbmFtZSwgY3VyX3NjaGVtYV9uYW1lKSAhPSAwKQorCQkJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJ CQkJCQkJCQllcnJtc2coInRhYmxlIFwiJXNcIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJl bG9uZyB0byBzY2hlbWEgXCIlc1wiIiwKKwkJCQkJCQkJCQkgICBxdW90ZV9xdWFsaWZpZWRfaWRl bnRpZmllcihlb2JqX3NjaGVtYW5hbWUsIGVvYmpfcmVsbmFtZSksCisJCQkJCQkJCQkJICAgY3Vy X3NjaGVtYV9uYW1lKSk7CisKKwkJCQkJCSpleGNlcHRfcHVidGFibGVzID0gbGFwcGVuZCgqZXhj ZXB0X3B1YnRhYmxlcywKKwkJCQkJCQkJCQkJCQllb2JqLT5wdWJ0YWJsZSk7CisJCQkJCX0KKwkJ CQl9CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8K QEAgLTMwNSw3ICszMzcsNyBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1 YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290 ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19y ZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3Rv cnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBh bmNlc3RvcnMsIE5VTEwsIE5JTCk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVs aWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtMzg5LDcgKzQyMSw3IEBAIHB1 Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBM aXN0ICphbmNlc3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3Jl bC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFu Y2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9h c19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9y cywgTlVMTCwgTklMKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJ CQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC04NDksNyArODgxLDcgQEAgQ3JlYXRlUHVi bGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQp CiAJY2hhcgkJcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczsKIAlBY2xSZXN1bHQJYWNscmVzdWx0 OwogCUxpc3QJICAgKnJlbGF0aW9ucyA9IE5JTDsKLQlMaXN0CSAgICpleGNlcHRyZWxhdGlvbnMg PSBOSUw7CisJTGlzdAkgICAqZXhjZXB0X3B1YnRhYmxlcyA9IE5JTDsKIAlMaXN0CSAgICpzY2hl bWFpZGxpc3QgPSBOSUw7CiAKIAkvKiBtdXN0IGhhdmUgQ1JFQVRFIHByaXZpbGVnZSBvbiBkYXRh YmFzZSAqLwpAQCAtOTM2LDE2ICs5NjgsMTYgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAKIAkvKiBBc3NvY2lhdGUg b2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KIAlPYmplY3RzSW5QdWJsaWNhdGlvblRv T2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJICAgJmV4 Y2VwdHJlbGF0aW9ucywgJnNjaGVtYWlkbGlzdCk7CisJCQkJCQkJICAgJmV4Y2VwdF9wdWJ0YWJs ZXMsICZzY2hlbWFpZGxpc3QpOwogCiAJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQogCXsKIAkJ LyogUHJvY2VzcyBFWENFUFQgdGFibGUgbGlzdCAqLwotCQlpZiAoZXhjZXB0cmVsYXRpb25zICE9 IE5JTCkKKwkJaWYgKGV4Y2VwdF9wdWJ0YWJsZXMgIT0gTklMKQogCQl7CiAJCQlMaXN0CSAgICpy ZWxzOwogCi0JCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRyZWxhdGlvbnMpOworCQkJcmVs cyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CiAJCQlQdWJsaWNhdGlvbkFkZFRh YmxlcyhwdWJvaWQsIHJlbHMsIHRydWUsIE5VTEwpOwogCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7 CiAJCX0KQEAgLTk1OSw2ICs5OTEsOCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAl9CiAJZWxzZSBpZiAoIXN0bXQt PmZvcl9hbGxfc2VxdWVuY2VzKQogCXsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHMgPSBOSUw7 CisKIAkJLyogRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCiAJCWlm IChzY2hlbWFpZGxpc3QgIT0gTklMICYmICFzdXBlcnVzZXIoKSkKIAkJCWVyZXBvcnQoRVJST1Is CkBAIC05NzcsNiArMTAxMSwxOSBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJCQkJCQkJCSAgIHNjaGVtYWlkbGlz dCAhPSBOSUwsCiAJCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKKwkJ CS8qCisJCQkgKiBDb2xsZWN0IGV4cGxpY2l0IHRhYmxlIE9JRHMgbm93LCBiZWZvcmUgd2UgY2xv c2UgdGhlIHJlbGF0aW9uCisJCQkgKiBsaXN0LCBzbyB0aGF0IGV4Y2VwdC10YWJsZSB2YWxpZGF0 aW9uIGJlbG93IGNhbiBjaGVjayBmb3IKKwkJCSAqIGNvbnRyYWRpY3Rpb25zIHdpdGhvdXQgcmVs eWluZyBvbiBhIGNhdGFsb2cgc2NhbiB0aGF0IG1pZ2h0IG5vdAorCQkJICogeWV0IHNlZSB0aGUg anVzdC1pbnNlcnRlZCByb3dzLgorCQkJICovCisJCQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAhPSBO SUwpCisJCQl7CisJCQkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25SZWxJbmZvLCBwcmksIHJlbHMp CisJCQkJCWV4cGxpY2l0cmVsaWRzID0gbGFwcGVuZF9vaWQoZXhwbGljaXRyZWxpZHMsCisJCQkJ CQkJCQkJCQkgUmVsYXRpb25HZXRSZWxpZChwcmktPnJlbGF0aW9uKSk7CisJCQl9CisKIAkJCVB1 YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CiAJCQlDbG9zZVRh YmxlTGlzdChyZWxzKTsKIAkJfQpAQCAtOTg5LDYgKzEwMzYsMzQgQEAgQ3JlYXRlUHVibGljYXRp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkg Ki8KIAkJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CiAJCQlQdWJsaWNhdGlvbkFkZFNj aGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOworCisJCQlpZiAoZXhjZXB0 X3B1YnRhYmxlcyAhPSBOSUwpCisJCQl7CisJCQkJTGlzdAkgICAqZXhjZXB0X3JlbHM7CisKKwkJ CQlleGNlcHRfcmVscyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJCQkv KgorCQkJCSAqIFZhbGlkYXRlIHRoYXQgZWFjaCBleGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBp biB0aGUKKwkJCQkgKiBleHBsaWNpdCB0YWJsZSBsaXN0ICh3aGljaCB3b3VsZCBiZSBjb250cmFk aWN0b3J5KS4gVXNlIHRoZQorCQkJCSAqIGluLW1lbW9yeSBleHBsaWNpdHJlbGlkcyBjb2xsZWN0 ZWQgYWJvdmUgcmF0aGVyIHRoYW4KKwkJCQkgKiByZS1yZWFkaW5nIHRoZSBjYXRhbG9nLCB3aGlj aCBtYXkgbm90IHlldCBzZWUgdGhlCisJCQkJICoganVzdC1pbnNlcnRlZCByb3dzLgorCQkJCSAq LworCQkJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5mbywgcHJpLCBleGNlcHRfcmVscykK KwkJCQl7CisJCQkJCU9pZAkJCWV4Y2VwdF9yZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJpLT5y ZWxhdGlvbik7CisKKwkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChleHBsaWNpdHJlbGlkcywgZXhj ZXB0X3JlbGlkKSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJCWVycm1zZygidGFibGUgXCIlc1wi IGNhbm5vdCBhcHBlYXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1 c2UiLAorCQkJCQkJCQkJICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUocHJpLT5y ZWxhdGlvbikpKTsKKwkJCQl9CisKKwkJCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIGV4 Y2VwdF9yZWxzLCB0cnVlLCBOVUxMKTsKKwkJCQlDbG9zZVRhYmxlTGlzdChleGNlcHRfcmVscyk7 CisJCQl9CiAJCX0KIAl9CiAKQEAgLTE2ODMsMTIgKzE3NTgsMTIgQEAgQWx0ZXJQdWJsaWNhdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCWVsc2UK IAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9IE5JTDsKLQkJTGlzdAkgICAqZXhjZXB0cmVsYXRp b25zID0gTklMOworCQlMaXN0CSAgICpleGNlcHRfcHVidGFibGVzID0gTklMOwogCQlMaXN0CSAg ICpzY2hlbWFpZGxpc3QgPSBOSUw7CiAJCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwogCiAJ CU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJl bGF0aW9ucywKLQkJCQkJCQkJICAgJmV4Y2VwdHJlbGF0aW9ucywgJnNjaGVtYWlkbGlzdCk7CisJ CQkJCQkJCSAgICZleGNlcHRfcHVidGFibGVzLCAmc2NoZW1haWRsaXN0KTsKIAogCQlDaGVja0Fs dGVyUHVibGljYXRpb24oc3RtdCwgdHVwLCByZWxhdGlvbnMsIHNjaGVtYWlkbGlzdCk7CiAKQEAg LTE3MTEsNyArMTc4Niw3IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBB bHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJCQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVz XCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJICAgc3RtdC0+cHVibmFtZSkpOwogCi0JCXJlbGF0 aW9ucyA9IGxpc3RfY29uY2F0KHJlbGF0aW9ucywgZXhjZXB0cmVsYXRpb25zKTsKKwkJcmVsYXRp b25zID0gbGlzdF9jb25jYXQocmVsYXRpb25zLCBleGNlcHRfcHVidGFibGVzKTsKIAkJQWx0ZXJQ dWJsaWNhdGlvblRhYmxlcyhzdG10LCB0dXAsIHJlbGF0aW9ucywgcHN0YXRlLT5wX3NvdXJjZXRl eHQsCiAJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCk7CiAJCUFsdGVyUHVibGljYXRpb25T Y2hlbWFzKHN0bXQsIHR1cCwgc2NoZW1haWRsaXN0KTsKQEAgLTE4MjksNiArMTkwNCw1NSBAQCBS ZW1vdmVQdWJsaWNhdGlvblNjaGVtYUJ5SWQoT2lkIHBzb2lkKQogCXRhYmxlX2Nsb3NlKHJlbCwg Um93RXhjbHVzaXZlTG9jayk7CiB9CiAKKy8qCisgKiBSZW1vdmUgYW55IEVYQ0VQVCBjbGF1c2Ug ZW50cmllcyBmb3IgYSByZWxhdGlvbiBmcm9tIHNjaGVtYSBwdWJsaWNhdGlvbnMuCisgKiBDYWxs ZWQgd2hlbiBhIHRhYmxlIGNoYW5nZXMgc2NoZW1hIChBTFRFUiBUQUJMRSAuLi4gU0VUIFNDSEVN QSksIHNvIHRoYXQKKyAqIGEgc2NoZW1hLXNjb3BlZCBleGNsdXNpb24gZG9lcyBub3Qgc2lsZW50 bHkgZm9sbG93IHRoZSB0YWJsZSB0byBpdHMgbmV3CisgKiBzY2hlbWEuCisgKi8KK3ZvaWQKK1Jl bW92ZVB1YmxpY2F0aW9uRXhjZXB0Rm9yUmVsYXRpb24oT2lkIHJlbGlkLCBPaWQgb2xkTnNwT2lk LCBPaWQgbmV3TnNwT2lkKQoreworCUxpc3QJICAgKnB1YmlkczsKKworCXB1YmlkcyA9IEdldFJl bGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocmVsaWQpOworCisJZm9yZWFjaF9vaWQocHViaWQs IHB1YmlkcykKKwl7CisJCU9pZAkJCXByb2lkOworCisJCS8qCisJCSAqIFRoaXMgcHJvYmxlbSBk b2VzIG5vdCBhcHBseSB0byBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMsIGJlY2F1c2UKKwkJ ICogdGhlaXIgRVhDRVBUIGNsYXVzZSBpcyBwdWJsaWNhdGlvbi1zY29wZWQsIG5vdCBzY2hlbWEt c2NvcGVkOiB0aGUKKwkJICogZXhjbHVzaW9uIHNob3VsZCBwZXJzaXN0IHJlZ2FyZGxlc3Mgb2Yg d2hhdCBzY2hlbWEgdGhlIHRhYmxlIGlzIGluLgorCQkgKi8KKwkJaWYgKCFpc19zY2hlbWFfcHVi bGljYXRpb24ocHViaWQpKQorCQkJY29udGludWU7CisKKwkJcHJvaWQgPSBHZXRTeXNDYWNoZU9p ZDIoUFVCTElDQVRJT05SRUxNQVAsCisJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX29p ZCwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkJCU9iamVjdElkR2V0 RGF0dW0ocHViaWQpKTsKKwkJaWYgKE9pZElzVmFsaWQocHJvaWQpKQorCQl7CisJCQlPYmplY3RB ZGRyZXNzIG9iajsKKworCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVs YXRpb25JZCwgcHJvaWQpOworCisJCQllcmVwb3J0KERFQlVHMiwKKwkJCQkJZXJybXNnX2ludGVy bmFsKCJhdXRvLWRyb3AgZXhjbHVzaW9uIG9mIHRhYmxlICVzIGZyb20gcHVibGljYXRpb24gJXM6 IHRhYmxlIG1vdmVkIHRvIHNjaGVtYSAlcyIsCisJCQkJCQkJCQlxdW90ZV9xdWFsaWZpZWRfaWRl bnRpZmllcihnZXRfbmFtZXNwYWNlX25hbWUob2xkTnNwT2lkKSwKKwkJCQkJCQkJCQkJCQkJCSAg IGdldF9yZWxfbmFtZShyZWxpZCkpLAorCQkJCQkJCQkJZ2V0X3B1YmxpY2F0aW9uX25hbWUocHVi aWQsIGZhbHNlKSwKKwkJCQkJCQkJCXF1b3RlX2lkZW50aWZpZXIoZ2V0X25hbWVzcGFjZV9uYW1l KG5ld05zcE9pZCkpKSk7CisKKwkJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUs IDApOworCQl9CisJfQorCisJbGlzdF9mcmVlKHB1Ymlkcyk7Cit9CisKIC8qCiAgKiBPcGVuIHJl bGF0aW9ucyBzcGVjaWZpZWQgYnkgYSBQdWJsaWNhdGlvblRhYmxlIGxpc3QuCiAgKiBUaGUgcmV0 dXJuZWQgdGFibGVzIGFyZSBsb2NrZWQgaW4gU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrIG1vZGUg aW4gb3JkZXIgdG8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMzhmOWZmY2QwNGYuLmM4 M2I2NTcyYWJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNjMsNiArNjMsNyBAQAog I2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9l eHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9yZXBhY2suaCIKKyNpbmNsdWRlICJjb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxl c3BhY2UuaCIKQEAgLTE5MjkwLDYgKzE5MjkxLDE2IEBAIEFsdGVyVGFibGVOYW1lc3BhY2VJbnRl cm5hbChSZWxhdGlvbiByZWwsIE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQsCiAJQWx0ZXJDb25z dHJhaW50TmFtZXNwYWNlcyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIG9sZE5zcE9pZCwgbnNwT2lk LAogCQkJCQkJCSAgZmFsc2UsIG9ianNNb3ZlZCk7CiAKKwkvKgorCSAqIFJlbW92ZSBhbnkgRVhD RVBUIGNsYXVzZSBlbnRyaWVzIGZvciB0aGlzIHJlbGF0aW9uIGZyb20gc2NoZW1hCisJICogcHVi bGljYXRpb25zLiAgQSBzY2hlbWEtc2NvcGVkIGV4Y2x1c2lvbiBpcyBubyBsb25nZXIgbWVhbmlu Z2Z1bCBvbmNlCisJICogdGhlIHRhYmxlIG1vdmVzIHRvIGEgZGlmZmVyZW50IHNjaGVtYS4KKwkg Ki8KKwlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQly ZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQlSZW1v dmVQdWJsaWNhdGlvbkV4Y2VwdEZvclJlbGF0aW9uKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgb2xk TnNwT2lkLAorCQkJCQkJCQkJCSAgIG5zcE9pZCk7CisKIAl0YWJsZV9jbG9zZShjbGFzc1JlbCwg Um93RXhjbHVzaXZlTG9jayk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGZmNGUxMzg4YzU1Li42YTdh MWJjNWY4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAibm9kZXMv bWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlci5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRp bHMvZGF0ZXRpbWUuaCIKICNpbmNsdWRlICJ1dGlscy94bWwuaCIKIApAQCAtMTEyNzIsNyArMTEy NzMsNyBAQCBBbHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2Fy Z3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAgKiBwdWJfb2JqIGlzIG9uZSBvZjoKICAqCiAgKgkJ VEFCTEUgdGFibGUgWywgLi4uXQotICoJCVRBQkxFUyBJTiBTQ0hFTUEgc2NoZW1hIFssIC4uLl0K KyAqCQlUQUJMRVMgSU4gU0NIRU1BIHNjaGVtYSBbRVhDRVBUIChUQUJMRSB0YWJsZSBbLCAuLi5d ICldIFssIC4uLl0KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTExMzMyLDIzICsx MTMzMywyNiBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1u cyA9ICQzOwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJfQotCQkJ fCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKKwkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElk IG9wdF9wdWJfZXhjZXB0X2NsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNh dGlvbk9ialNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxF U19JTl9TQ0hFTUE7CiAJCQkJCSQkLT5uYW1lID0gJDQ7CisJCQkJCSQkLT5leGNlcHRfdGFibGVz ID0gJDU7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEA0OwogCQkJCX0KLQkJCXwgVEFCTEVTIElOX1Ag U0NIRU1BIENVUlJFTlRfU0NIRU1BCisJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDVVJSRU5UX1ND SEVNQSBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVi bGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9U QUJMRVNfSU5fQ1VSX1NDSEVNQTsKKwkJCQkJJCQtPmV4Y2VwdF90YWJsZXMgPSAkNTsKIAkJCQkJ JCQtPmxvY2F0aW9uID0gQDQ7CiAJCQkJfQotCQkJfCBDb2xJZCBvcHRfY29sdW1uX2xpc3QgT3B0 V2hlcmVDbGF1c2UKKwkJCXwgQ29sSWQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlIG9w dF9wdWJfZXhjZXB0X2NsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlv bk9ialNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVB VElPTjsKKwkJCQkJJCQtPmV4Y2VwdF90YWJsZXMgPSAkNDsKIAkJCQkJLyoKIAkJCQkJICogSWYg ZWl0aGVyIGEgcm93IGZpbHRlciBvciBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsIGNyZWF0ZQog CQkJCQkgKiBhIFB1YmxpY2F0aW9uVGFibGUgb2JqZWN0LgpAQCAtMTEzOTIsMTAgKzExMzk2LDEx IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDI7 CiAJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkMzsKIAkJCQl9Ci0JCQl8IENVUlJF TlRfU0NIRU1BCisJCQl8IENVUlJFTlRfU0NIRU1BIG9wdF9wdWJfZXhjZXB0X2NsYXVzZQogCQkJ CXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+cHVi b2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKKwkJCQkJJCQtPmV4Y2VwdF90 YWJsZXMgPSAkMjsKIAkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CiAJCQkJfQogCQkJCTsKQEAgLTIw Nzg0LDYgKzIwNzg5LDggQEAgcHJlcHJvY2Vzc19wdWJfYWxsX29ianR5cGVfbGlzdChMaXN0ICph bGxfb2JqZWN0c19saXN0LCBMaXN0ICoqcHVib2JqZWN0cywKIC8qCiAgKiBQcm9jZXNzIHB1Ym9i anNwZWNfbGlzdCB0byBjaGVjayBmb3IgZXJyb3JzIGluIGFueSBvZiB0aGUgb2JqZWN0cyBhbmQK ICAqIGNvbnZlcnQgUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OIGludG8gYXBwcm9wcmlhdGUg UHVibGljYXRpb25PYmpTcGVjVHlwZS4KKyAqIEFsc28gZmxhdHRlbnMgZXhjZXB0X3RhYmxlcyBm cm9tIFRBQkxFUyBJTiBTQ0hFTUEgbm9kZXMgaW50byB0aGUgbGlzdCBzbworICogdGhhdCBPYmpl Y3RzSW5QdWJsaWNhdGlvblRvT2lkcygpIHNlZXMgdGhlbSBhcyB0b3AtbGV2ZWwgRVhDRVBUX1RB QkxFIGVudHJpZXMuCiAgKi8KIHN0YXRpYyB2b2lkCiBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExp c3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCkBAIC0yMDgxMiw2 ICsyMDgxOSwxMyBAQCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlz dCwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAKIAkJaWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9 PSBQVUJMSUNBVElPTk9CSl9UQUJMRSkKIAkJeworCQkJLyogRVhDRVBUIGlzIG5vdCB2YWxpZCBm b3IgdGFibGUgb2JqZWN0cyAqLworCQkJaWYgKHB1Ym9iai0+ZXhjZXB0X3RhYmxlcyAhPSBOSUwp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkJZXJybXNnKCJFWENFUFQgaXMgbm90IGFsbG93ZWQgZm9yIFRBQkxFIHB1YmxpY2F0 aW9uIG9iamVjdHMiKSwKKwkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9u KSk7CisKIAkJCS8qIHJlbGF0aW9uIG5hbWUgb3IgcHVidGFibGUgbXVzdCBiZSBzZXQgZm9yIHRo aXMgdHlwZSBvZiBvYmplY3QgKi8KIAkJCWlmICghcHVib2JqLT5uYW1lICYmICFwdWJvYmotPnB1 YnRhYmxlKQogCQkJCWVyZXBvcnQoRVJST1IsCkBAIC0yMDg2MCw2ICsyMDg3NCwzNiBAQCBwcmVw cm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNjYW5fdCB5 eXNjYW5uZXIpCiAJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkJCWVy cm1zZygiaW52YWxpZCBzY2hlbWEgbmFtZSIpLAogCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHB1 Ym9iai0+bG9jYXRpb24pKTsKKworCQkJLyoKKwkJCSAqIEZvciBUQUJMRVNfSU5fU0NIRU1BLCBx dWFsaWZ5IHVucXVhbGlmaWVkIEVYQ0VQVCB0YWJsZSBuYW1lcworCQkJICogd2l0aCB0aGUgcGFy ZW50IHNjaGVtYSBhbmQgcmVqZWN0IGNyb3NzLXNjaGVtYSBlbnRyaWVzIGF0IHBhcnNlCisJCQkg KiB0aW1lLCB0aGVuIGZsYXR0ZW4gaW50byB0aGUgdG9wLWxldmVsIGxpc3QuCisJCQkgKgorCQkJ ICogRm9yIFRBQkxFU19JTl9DVVJfU0NIRU1BIHRoZSBzY2hlbWEgbmFtZSBpcyBub3QgeWV0IGtu b3duLCBzbworCQkJICogc2tpcCBib3RoIHN0ZXBzIGhlcmU7IE9iamVjdHNJblB1YmxpY2F0aW9u VG9PaWRzKCkgd2lsbAorCQkJICogcXVhbGlmeSBuYW1lcyBhbmQgdmFsaWRhdGUgc2NoZW1hIG1l bWJlcnNoaXAgYXQgZXhlY3V0aW9uIHRpbWUuCisJCQkgKi8KKwkJCWlmIChwdWJvYmotPnB1Ym9i anR5cGUgPT0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQSkKKwkJCXsKKwkJCQlmb3Jl YWNoX3B0cihQdWJsaWNhdGlvbk9ialNwZWMsIGVvYmosIHB1Ym9iai0+ZXhjZXB0X3RhYmxlcykK KwkJCQl7CisJCQkJCWNvbnN0IGNoYXIgKmVvYmpfc2NoZW1hbmFtZSA9IGVvYmotPnB1YnRhYmxl LT5yZWxhdGlvbi0+c2NoZW1hbmFtZTsKKwkJCQkJY29uc3QgY2hhciAqZW9ial9yZWxuYW1lID0g ZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5yZWxuYW1lOworCisJCQkJCWlmIChlb2JqX3NjaGVt YW5hbWUgPT0gTlVMTCkKKwkJCQkJCWVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+c2NoZW1hbmFt ZSA9IHB1Ym9iai0+bmFtZTsKKwkJCQkJZWxzZSBpZiAoc3RyY21wKGVvYmpfc2NoZW1hbmFtZSwg cHVib2JqLT5uYW1lKSAhPSAwKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCQllcnJtc2coInRh YmxlIFwiJXNcIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEgXCIl c1wiIiwKKwkJCQkJCQkJCSAgIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKGVvYmpfc2NoZW1h bmFtZSwgZW9ial9yZWxuYW1lKSwKKwkJCQkJCQkJCSAgIHB1Ym9iai0+bmFtZSksCisJCQkJCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihlb2JqLT5sb2NhdGlvbikpOworCQkJCX0KKwkJCQlwdWJvYmpz cGVjX2xpc3QgPSBsaXN0X2NvbmNhdChwdWJvYmpzcGVjX2xpc3QsIHB1Ym9iai0+ZXhjZXB0X3Rh Ymxlcyk7CisJCQkJcHVib2JqLT5leGNlcHRfdGFibGVzID0gTklMOworCQkJfQogCQl9CiAKIAkJ cHJldm9ianR5cGUgPSBwdWJvYmotPnB1Ym9ianR5cGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCA0ZWNmY2JmZjdhYi4uN2VlODRlYzFjODMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMjA5Nyw2 ICsyMDk3LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRp b24gcmVsYXRpb24pCiAJCSAqIGFyZSBhYnNvcmJlZCB3aGlsZSBkZWNvZGluZyBXQUwuCiAJCSAq LwogCQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1h SWQpOworCQlMaXN0CSAgICpleGNlcHRfcHViaWRzOwogCQlMaXN0Q2VsbCAgICpsYzsKIAkJT2lk CQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwogCQlpbnQJCQlwdWJsaXNoX2FuY2VzdG9yX2xl dmVsID0gMDsKQEAgLTIxMDQsNiArMjEwNSwyOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRw dXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJY2hhcgkJcmVsa2luZCA9IGdldF9y ZWxfcmVsa2luZChyZWxpZCk7CiAJCUxpc3QJICAgKnJlbF9wdWJsaWNhdGlvbnMgPSBOSUw7CiAK KwkJLyoKKwkJICogRm9yIHRoZSBzY2hlbWEgRVhDRVBUIGNoZWNrLCB3ZSBtdXN0IGxvb2sgdXAg dGhlIHRvcC1tb3N0IGFuY2VzdG9yCisJCSAqIHJhdGhlciB0aGFuIHRoZSByZWxhdGlvbiBpdHNl bGYuICBjaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oKQorCQkgKiBwcmV2ZW50cyBpbmRp dmlkdWFsIHBhcnRpdGlvbnMgZnJvbSBhcHBlYXJpbmcgaW4gdGhlIEVYQ0VQVCBjbGF1c2UsCisJ CSAqIHNvIG9ubHkgYSByb290IChub24tcGFydGl0aW9uKSB0YWJsZSBjYW4gaGF2ZSBwcmV4Y2Vw dCA9IHRydWUuCisJCSAqIFVzaW5nIHRoZSBwYXJ0aXRpb24ncyBvd24gT0lEIHdvdWxkIGFsd2F5 cyByZXR1cm4gTklMIGFuZCBtaXNzIHRoZQorCQkgKiBleGNsdXNpb24uCisJCSAqLworCQlPaWQJ CQlyb290X3JlbGlkOworCisJCWlmIChhbV9wYXJ0aXRpb24pCisJCXsKKwkJCUxpc3QJICAgKmFu Y2VzdG9ycyA9IGdldF9wYXJ0aXRpb25fYW5jZXN0b3JzKHJlbGlkKTsKKworCQkJcm9vdF9yZWxp ZCA9IGxsYXN0X29pZChhbmNlc3RvcnMpOworCQkJbGlzdF9mcmVlKGFuY2VzdG9ycyk7CisJCX0K KwkJZWxzZQorCQkJcm9vdF9yZWxpZCA9IHJlbGlkOworCisJCWV4Y2VwdF9wdWJpZHMgPSBHZXRS ZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKHJvb3RfcmVsaWQpOworCiAJCS8qIFJlbG9hZCBw dWJsaWNhdGlvbnMgaWYgbmVlZGVkIGJlZm9yZSB1c2UuICovCiAJCWlmICghcHVibGljYXRpb25z X3ZhbGlkKQogCQl7CkBAIC0yMjY3LDcgKzIyOTAsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdl dFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkg ICBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJ ICAgJmxldmVsLAorCQkJCQkJCQkJCQkJCQkJICAgZXhjZXB0X3B1Ymlkcyk7CiAKIAkJCQkJaWYg KGFuY2VzdG9yICE9IEludmFsaWRPaWQpCiAJCQkJCXsKQEAgLTIyODEsNyArMjMwNSw4IEBAIGdl dF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQog CQkJCX0KIAogCQkJCWlmIChsaXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKLQkJ CQkJbGlzdF9tZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShsaXN0 X21lbWJlcl9vaWQoc2NoZW1hUHViaWRzLCBwdWItPm9pZCkgJiYKKwkJCQkJICFsaXN0X21lbWJl cl9vaWQoZXhjZXB0X3B1YmlkcywgcHViLT5vaWQpKSB8fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNo ZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCQkJfQpAQCAtMjM2MCw2ICsyMzg1LDcgQEAgZ2V0 X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAK IAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxpc3RfZnJlZShzY2hlbWFQdWJpZHMpOworCQlsaXN0 X2ZyZWUoZXhjZXB0X3B1Ymlkcyk7CiAJCWxpc3RfZnJlZShyZWxfcHVibGljYXRpb25zKTsKIAog CQllbnRyeS0+cmVwbGljYXRlX3ZhbGlkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggYWYzOTM1YjAwNzgu Ljk0NzBhMGJiZjVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNzAzOCw2ICs3MDM4LDI0IEBAIGRlc2NyaWJlUHVi bGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJaWYgKCFhZGRGb290ZXJUb1B1Ymxp Y2F0aW9uRGVzYygmYnVmLCBfKCJUYWJsZXMgZnJvbSBzY2hlbWFzOiIpLAogCQkJCQkJCQkJCQkJ dHJ1ZSwgJmNvbnQpKQogCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKworCQkJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE5MDAwMCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIEdldCB0YWJsZXMgaW4g dGhlIEVYQ0VQVCBjbGF1c2UgZm9yIHRoaXMgc2NoZW1hCisJCQkJCSAqIHB1YmxpY2F0aW9uLgor CQkJCQkgKi8KKwkJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIlNFTEVD VCBjb25jYXQoYy5yZWxuYW1lc3BhY2U6OnJlZ25hbWVzcGFjZSwgJy4nLCBjLnJlbG5hbWUpXG4i CisJCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkJICAi ICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIGMub2lkID0gcHIu cHJyZWxpZFxuIgorCQkJCQkJCQkJICAiV0hFUkUgcHIucHJwdWJpZCA9ICclcydcbiIKKwkJCQkJ CQkJCSAgIiAgQU5EIHByLnByZXhjZXB0XG4iCisJCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHVi aWQpOworCQkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIkV4Y2Vw dCB0YWJsZXM6IiksCisJCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCQkJZ290byBlcnJv cl9yZXR1cm47CisJCQkJfQogCQkJfQogCQl9CiAJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpp bmRleCBkZTU0N2E4Y2IzNy4uNTNiYjdjODY3OWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTEwNjUsNiArMTA2NSwyNCBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3Ry aWdnZXJfb2ZfdGFibGUgPSB7CiAiU0VMRUNUIG5zcG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX25h bWVzcGFjZSAiXAogIiBXSEVSRSBuc3BuYW1lIExJS0UgJyVzJyIKIAorI2RlZmluZSBRdWVyeV9m b3JfbGlzdF9vZl90YWJsZXNfaW5fc2NoZW1hIFwKKyJTRUxFQ1Qgbi5uc3BuYW1lIHx8ICcuJyB8 fCBjLnJlbG5hbWUgIlwKKyIgIEZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjICJcCisiICAgICAg IEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNl ICJcCisiIFdIRVJFIGMucmVsa2luZCBJTiAoIiBDcHBBc1N0cmluZzIoUkVMS0lORF9SRUxBVElP TikgIiwgIiBcCisJCQkJCQlDcHBBc1N0cmluZzIoUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkg IikgIlwKKyIgICBBTkQgKG4ubnNwbmFtZSB8fCAnLicgfHwgYy5yZWxuYW1lKSBMSUtFICclcycg IlwKKyIgICBBTkQgbi5uc3BuYW1lID0gJyVzJyIKKworI2RlZmluZSBRdWVyeV9mb3JfbGlzdF9v Zl90YWJsZXNfaW5fY3VycmVudF9zY2hlbWEgXAorIlNFTEVDVCBjLnJlbG5hbWUgIlwKKyIgIEZS T00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjICJcCisiICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19u YW1lc3BhY2UgbiBPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlICJcCisiIFdIRVJFIGMucmVsa2lu ZCBJTiAoIiBDcHBBc1N0cmluZzIoUkVMS0lORF9SRUxBVElPTikgIiwgIiBcCisJCQkJCQlDcHBB c1N0cmluZzIoUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkgIikgIlwKKyIgICBBTkQgYy5yZWxu YW1lIExJS0UgJyVzJyAiXAorIiAgIEFORCBuLm5zcG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRf c2NoZW1hKCkiCisKIC8qIFVzZSBDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElNIHdpdGggdGhl c2UgcXVlcmllcyBmb3IgR1VDIG5hbWVzOiAqLwogI2RlZmluZSBRdWVyeV9mb3JfbGlzdF9vZl9h bHRlcl9zeXN0ZW1fc2V0X3ZhcnMgXAogIlNFTEVDVCBwZ19jYXRhbG9nLmxvd2VyKG5hbWUpIEZS T00gcGdfY2F0YWxvZy5wZ19zZXR0aW5ncyAiXApAQCAtMzc4Nyw4ICszODA1LDIxIEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZX1BM VVMoUXVlcnlfZm9yX2xpc3Rfb2Zfc2NoZW1hcwogCQkJCQkJCQkgIiBBTkQgbnNwbmFtZSBOT1Qg TElLRSBFJ3BnXFxcXF8lJSciLAogCQkJCQkJCQkgIkNVUlJFTlRfU0NIRU1BIik7Ci0JZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFC TEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55KSAmJiAoIWVuZHNfd2l0aChwcmV2X3dkLCAn LCcpKSkKLQkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JF QVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwgIlND SEVNQSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRF X1dJVEgoIkVYQ0VQVCAoIFRBQkxFIiwgIldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNS RUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJT Q0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIpKQorCQlDT01QTEVURV9XSVRIKCIoIFRBQkxFIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJG T1IiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiKSkK KwkJQ09NUExFVEVfV0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAi UFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwg IkNVUlJFTlRfU0NIRU1BIiwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJ VEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJlbnRfc2No ZW1hKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAi KCIsICJUQUJMRSIpKQorCXsKKwkJc2V0X2NvbXBsZXRpb25fcmVmZXJlbmNlKHByZXY0X3dkKTsK KwkJQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNf aW5fc2NoZW1hKTsKKwl9CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAi RVhDRVBUIiwgIigiLCAiVEFCTEUiLCBNYXRjaEFueU4pICYmICFlbmRzX3dpdGgocHJldl93ZCwg JywnKSkKKwkJQ09NUExFVEVfV0lUSCgiKSIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgUFVCTElD QVRJT04gPG5hbWU+IFsuLi5dIFdJVEgiICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnlOLCAiV0lUSCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgo InB1Ymxpc2giLCAicHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyIsICJwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdCIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDg5YjRi YjE0ZjYyLi41M2UzZDdjNmYzZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApA QCAtMTkxLDcgKzE5MSw4IEBAIGV4dGVybiBMaXN0ICpHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxh dGlvbnMoTGlzdCAqcmVzdWx0LAogCQkJCQkJCQkJCQlQdWJsaWNhdGlvblBhcnRPcHQgcHViX3Bh cnRvcHQsCiAJCQkJCQkJCQkJCU9pZCByZWxpZCk7CiBleHRlcm4gT2lkCUdldFRvcE1vc3RBbmNl c3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCQkJ CQlpbnQgKmFuY2VzdG9yX2xldmVsKTsKKwkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwK KwkJCQkJCQkJCQkJTGlzdCAqZXhjZXB0X3B1Ymlkcyk7CiAKIGV4dGVybiBib29sIGlzX3B1Ymxp c2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVi bGljYXRpb24oT2lkIHB1YmlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgK aW5kZXggNGNmNDVjMTdjYzUuLjU5YWU1MmNhN2M4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuaApAQCAtMjcsNiArMjcsOCBAQCBleHRlcm4gdm9pZCBBbHRlclB1YmxpY2F0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpOwogZXh0 ZXJuIHZvaWQgUmVtb3ZlUHVibGljYXRpb25CeUlkKE9pZCBwdWJpZCk7CiBleHRlcm4gdm9pZCBS ZW1vdmVQdWJsaWNhdGlvblJlbEJ5SWQoT2lkIHByb2lkKTsKIGV4dGVybiB2b2lkIFJlbW92ZVB1 YmxpY2F0aW9uU2NoZW1hQnlJZChPaWQgcHNvaWQpOworZXh0ZXJuIHZvaWQgUmVtb3ZlUHVibGlj YXRpb25FeGNlcHRGb3JSZWxhdGlvbihPaWQgcmVsaWQsIE9pZCBvbGROc3BPaWQsCisJCQkJCQkJ CQkJCSAgIE9pZCBuZXdOc3BPaWQpOwogCiBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclB1Ymxp Y2F0aW9uT3duZXIoY29uc3QgY2hhciAqbmFtZSwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZv aWQgQWx0ZXJQdWJsaWNhdGlvbk93bmVyX29pZChPaWQgcHViaWQsIE9pZCBuZXdPd25lcklkKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA5MTM3N2E2Y2RlMy4uOThhMDNjMGVlZGEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQ0OTMsNiArNDQ5Myw4IEBAIHR5cGVkZWYgc3RydWN0IFB1 YmxpY2F0aW9uT2JqU3BlYwogCVB1YmxpY2F0aW9uT2JqU3BlY1R5cGUgcHVib2JqdHlwZTsJLyog dHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9uIG9iamVjdCAqLwogCWNoYXIJICAgKm5hbWU7CiAJUHVi bGljYXRpb25UYWJsZSAqcHVidGFibGU7CisJTGlzdAkgICAqZXhjZXB0X3RhYmxlczsJLyogdGFi bGVzIHNwZWNpZmllZCBpbiB0aGUgRVhDRVBUIGNsYXVzZSAoZm9yCisJCQkJCQkJCSAqIFRBQkxF UyBJTiBTQ0hFTUEpICovCiAJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwg b3IgLTEgaWYgdW5rbm93biAqLwogfSBQdWJsaWNhdGlvbk9ialNwZWM7CiAKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggMjllNTRiMjE0YTAuLmJhMDFjNzIw ZDRlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMjcw LDYgKzI3MCwxMiBAQCBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhj ZXB0dGFibGUyIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAodGVzdAogRVJST1I6ICBzeW50YXggZXJy b3IgYXQgb3IgbmVhciAidGVzdHB1Yl90YmwxIgogTElORSAxOiAuLi5fZm9yYWxsdGFibGVzX2V4 Y2VwdHRhYmxlMiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHRlc3RwdWJfdGIuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCist LSBmYWlsIC0gRVhDRVBUIGlzIG5vdCBhbGxvd2VkIGZvciBGT1IgVEFCTEUgcHVibGljYXRpb25z CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfZXJyCisgICAgRk9SIFRBQkxFIHRl c3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwzKTsKK0VS Uk9SOiAgRVhDRVBUIGlzIG5vdCBhbGxvd2VkIGZvciBUQUJMRSBwdWJsaWNhdGlvbiBvYmplY3Rz CitMSU5FIDI6ICAgICBGT1IgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIgRVhDRVBU IChUQUJMRSB0ZXN0cC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBTRVQgQUxM IFRBQkxFUy9TRVFVRU5DRVMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpAQCAtNDcwLDcgKzQ3NiwxMDMgQEAgSElOVDogIENoYW5nZSB0aGUgcHVibGljYXRp b24ncyBFWENFUFQgY2xhdXNlIHVzaW5nIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgQUwKIFJF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcm9vdCwgdGVzdHB1 Yl9wYXJ0MSwgdGFiX21haW47CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OwotLS0tIFRlc3Rz IGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBUQUJMRVMgSU4gU0NI RU1BCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1NFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKKy0tIENyZWF0ZSB0YWJsZXMgaW4gcHViX3Rl c3QgZm9yIHRoZXNlIHRlc3RzCitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEg KGEgaW50IHByaW1hcnkga2V5LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3Rw dWJfdGJsX3MyICh4IGludCBwcmltYXJ5IGtleSwgeSB0ZXh0KTsKKy0tIENyZWF0ZSBzYW1lLW5h bWVkIHRhYmxlcyBpbiBwdWJsaWMgdG8gdmVyaWZ5IHVucXVhbGlmaWVkIEVYQ0VQVCBlbnRyaWVz CistLSBhcmUgcXVhbGlmaWVkIHdpdGggdGhlIG5hbWVkIHNjaGVtYSwgbm90IHB1YmxpYworQ1JF QVRFIFRBQkxFIHRlc3RwdWJfbm9wayAoZm9vIGludCwgYmFyIGludCk7CitDUkVBVEUgVEFCTEUg dGVzdHB1Yl90YmxfczEgKGEgaW50IHByaW1hcnkga2V5LCBiIHRleHQpOworLS0gQmFzaWM6IGV4 Y2x1ZGUgb25lIHRhYmxlIGZyb20gYSBzY2hlbWEgcHVibGljYXRpb24KK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0 cHViX3NjaGVtYV9leGNlcHQxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4 Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorCistLSBFeGNsdWRl IG11bHRpcGxlIHRhYmxlcyB1c2luZyB1bnF1YWxpZmllZCBuYW1lczsgc2FtZS1uYW1lZCB0YWJs ZXMgZXhpc3QgaW4KKy0tIHB1YmxpYyB0byBjb25maXJtIHVucXVhbGlmaWVkIG5hbWVzIHJlc29s dmUgdG8gcHViX3Rlc3QsIG5vdCBwdWJsaWMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Nj aGVtYV9leGNlcHQyCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChU QUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1h X2V4Y2VwdDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKyAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAg ICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxl czoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl9ub3BrIgorICAgICJwdWJfdGVzdC50ZXN0cHViX3Ri bF9zMSIKKworLS0gZmFpbDogRVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgc2No ZW1hCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfd3JvbmdzY2hlbWEKKyAgICBG T1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHVi X3RibDEpOworRVJST1I6ICB0YWJsZSAicHVibGljLnRlc3RwdWJfdGJsMSIgaW4gRVhDRVBUIGNs YXVzZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hICJwdWJfdGVzdCIKK0xJTkUgMjogICAgIEZP UiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KKy0tIGZhaWw6IGNyb3NzLXNjaGVtYSBFWENFUFQgbm90IGFsbG93ZWQ7IGVhY2ggRVhDRVBU IGlzIGJvdW5kIHRvIGl0cyBpbW1lZGlhdGUgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHRfY3Jvc3NzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCwgcHVibGljIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1YmxpYy50 ZXN0cHViX3RibDEpOworRVJST1I6ICB0YWJsZSAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiIGlu IEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHVibGljIgorTElORSAy OiAuLi5SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QsIHB1YmxpYyBFWENFUFQgKFRBQkxFIHB1 Yl90ZXN0LnQuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCistLSBNdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBv d24gRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dF9tdWx0aQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUg cHViX3Rlc3QudGVzdHB1Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQ VCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0 aQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVz Y3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwg CitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKKyAgICAicHVibGljIgorRXhj ZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCisgICAgInB1YmxpYy50 ZXN0cHViX3RibDEiCisKKy0tIGZhaWw6IHRhYmxlIGFwcGVhcnMgaW4gYm90aCB0aGUgZXhwbGlj aXQgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdF9jb25mbGljdAorICAgIEZPUiBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3Ri bF9zMSwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfdGJsX3MxKTsKK0VSUk9SOiAgdGFibGUgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIiBj YW5ub3QgYXBwZWFyIGluIGJvdGggdGhlIHRhYmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xhdXNl CistLSBmYWlsOiBub25leGlzdGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHRfbm9yZWwKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKK0VSUk9S OiAgcmVsYXRpb24gInB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlIiBkb2VzIG5vdCBleGlzdAor LS0gZmFpbDogcGFydGl0aW9uIGNhbm5vdCBhcHBlYXIgaW4gRVhDRVBUIGNsYXVzZTsgb25seSBy b290IHRhYmxlcyBhcmUgYWxsb3dlZAorQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFy dGVkX3MgKGEgaW50KSBQQVJUSVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl9wYXJ0X3MgUEFSVElUSU9OIE9GIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3Mg Rk9SIFZBTFVFUyBJTiAoMSk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfcGFy dGl0aW9uCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBw dWJfdGVzdC50ZXN0cHViX3BhcnRfcyk7CitFUlJPUjogIGNhbm5vdCBzcGVjaWZ5IHJlbGF0aW9u ICJwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyIgaW4gdGhlIHB1YmxpY2F0aW9uIEVYQ0VQVCBjbGF1 c2UKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGl2aWR1 YWwgcGFydGl0aW9ucy4KKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRo ZSBmaXJzdCBlbnRyeSBpbiB0aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZXhjZXB0X25va3cKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKHRlc3RwdWJfbm9wayk7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJ0ZXN0 cHViX25vcGsiCitMSU5FIDI6ICAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKHRlc3RwdWJfbm9wayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKy0tIENsZWFudXAKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitE Uk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9z MjsKK0RST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOworRFJPUCBU QUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVt YV9leGNlcHRfbXVsdGk7CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKy0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogQ1JFQVRFIFNFUVVFTkNFIHJl Z3Jlc3NfcHViX3NlcTA7CiBDUkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19wdWJfc2Vx MTsKIC0tIEZPUiBBTEwgU0VRVUVOQ0VTCkBAIC0xOTUzLDYgKzIwNTUsMjcgQEAgQUxURVIgUFVC TElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NIRU1BIGZvbywgYmFy IChhLCBiKTsKIEVSUk9SOiAgY29sdW1uIHNwZWNpZmljYXRpb24gbm90IGFsbG93ZWQgZm9yIHNj aGVtYQogTElORSAxOiAuLi5USU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBBREQgVEFCTEVTIElOIFND SEVNQSBmb28sIGJhciAoYSwgYikuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFWENFUFQgY2xhdXNlIHdpdGggQ1VS UkVOVF9TQ0hFTUE6IGNyb3NzLXNjaGVtYSBlbnRyeSBtdXN0IGJlIHJlamVjdGVkCitTRVQgc2Vh cmNoX3BhdGggPSBwdWJfdGVzdDE7CistLSBxdWFsaWZpZWQgbmFtZSBmcm9tIHdyb25nIHNjaGVt YSAtPiBlcnJvcgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1Ig VEFCTEVTIElOIFNDSEVNQSBDVVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Mi50 YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1Yl90ZXN0Mi50YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRv ZXMgbm90IGJlbG9uZyB0byBzY2hlbWEgInB1Yl90ZXN0MSIKKy0tIHVucXVhbGlmaWVkIG5hbWUg aW1wbGljaXRseSBxdWFsaWZpZWQgd2l0aCBjdXJyZW50IHNjaGVtYSAocHViX3Rlc3QxLnRibCkK K1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2N1cnNjaF9leGNlcHQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEg RVhDRVBUIChUQUJMRSB0YmwpOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xkUnArIHRl c3RwdWJfY3Vyc2NoX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0CisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdDEiCitF eGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdDEudGJsIgorCitEUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWJfY3Vyc2NoX2V4Y2VwdDsKK1JFU0VUIHNlYXJjaF9wYXRoOwogLS0gY2xlYW51cCBwdWJf dGVzdDEgc2NoZW1hIGZvciBpbnZhbGlkYXRpb24gdGVzdHMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWIyX2ZvcnNjaGVtYSBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOwogRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViM19mb3JzY2hlbWEsIHRlc3RwdWI0X2ZvcnNjaGVtYSwgdGVzdHB1 YjVfZm9yc2NoZW1hLCB0ZXN0cHViNl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9ydGFibGU7CkBAIC0y MzA0LDYgKzI0MjcsNyBAQCBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15 OwogLS0gVGVzdCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKHRleHRbXSwgb2lkKSBmdW5jdGlv bgogQ1JFQVRFIFNDSEVNQSBncHRfdGVzdF9zY2g7CiBDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2No LnRibF9zY2ggKGlkIGludCk7CitDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gyIChp ZCBpbnQpOwogQ1JFQVRFIFRBQkxFIHRibF9ub3JtYWwgKGlkIGludCk7CiBDUkVBVEUgVEFCTEUg dGJsX3BhcmVudCAoaWQxIGludCwgaWQyIGludCwgaWQzIGludCkgUEFSVElUSU9OIEJZIFJBTkdF IChpZDEpOwogQ1JFQVRFIFRBQkxFIHRibF9wYXJ0MSBQQVJUSVRJT04gT0YgdGJsX3BhcmVudCBG T1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CkBAIC0yMzE0LDYgKzI0MzgsNyBAQCBDUkVBVEUg UFVCTElDQVRJT04gcHViX2FsbF9ub192aWFyb290IEZPUiBBTEwgVEFCTEVTIFdJVEggKHB1Ymxp c2hfdmlhX3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gp IFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSk7CiBDUkVBVEUgUFVCTElD QVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRB QkxFIHRibF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxfc2NoKSBXSVRIIChwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfc2NoZW1hIEZP UiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaDsKK0NSRUFURSBQVUJMSUNBVElPTiBwdWJf c2NoZW1hX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBncHRfdGVzdF9zY2ggRVhDRVBUIChU QUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaCk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX25vcm1h bCBGT1IgVEFCTEUgdGJsX25vcm1hbCBXSEVSRSAoaWQgPCAxMCk7CiBDUkVBVEUgUFVCTElDQVRJ T04gcHViX3BhcnRfbGVhZiBGT1IgVEFCTEUgdGJsX3BhcnQxIFdJVEggKHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X3BhcmVu dCBGT1IgVEFCTEUgdGJsX3BhcmVudCAoaWQxLCBpZDIpIFdIRVJFIChpZDEgPSAxMCkgV0lUSCAo cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKQEAgLTI0NjUsNiArMjU5MCwxOCBA QCBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290 J10sICd0YmxfcGFydDEnKTsgLS0gbm8gcgogLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLQogKDAgcm93cykKIAorLS0gdGVzdCBmb3IgRVhDRVBUIGNsYXVzZSB3aXRoIHNjaGVtYSBw dWJsaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX3NjaGVtYV9leGNl cHQnXSwgJ2dwdF90ZXN0X3NjaC50Ymxfc2NoJyk7IC0tIG5vIHJlc3VsdCAoZXhjbHVkZWQpCisg cHVibmFtZSB8IHJlbG5hbWUgfCBhdHRycyB8IHF1YWwgCistLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydw dWJfc2NoZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rfc2NoLnRibF9zY2gyJyk7IC0tIG9uZSByb3cg KGluY2x1ZGVkIHZpYSBzY2hlbWEpCisgICAgICBwdWJuYW1lICAgICAgfCByZWxuYW1lICB8IGF0 dHJzIHwgcXVhbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LQorIHB1Yl9zY2hlbWFfZXhjZXB0IHwgdGJsX3NjaDIgfCAxICAgICB8IAorKDEgcm93KQorCiAt LSB0d28gcm93cyB3aXRoIGRpZmZlcmVudCByb3cgZmlsdGVyCiBTRUxFQ1QgKiBGUk9NIHRlc3Rf Z3B0KEFSUkFZWydwdWJfYWxsJywgJ3B1Yl9ub3JtYWwnXSwgJ3RibF9ub3JtYWwnKTsKICAgcHVi bmFtZSAgIHwgIHJlbG5hbWUgICB8IGF0dHJzIHwgICBxdWFsICAgIApAQCAtMjUxNyw2ICsyNjU0 LDcgQEAgRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX25vX3ZpYXJvb3Q7CiBEUk9QIFBVQkxJQ0FU SU9OIHB1Yl9hbGxfZXhjZXB0OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdF9ub192 aWFyb290OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiBw dWJfc2NoZW1hX2V4Y2VwdDsKIERST1AgUFVCTElDQVRJT04gcHViX25vcm1hbDsKIERST1AgUFVC TElDQVRJT04gcHViX3BhcnRfbGVhZjsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRfcGFyZW50 OwpAQCAtMjUyNSw3ICsyNjYzLDkgQEAgRFJPUCBQVUJMSUNBVElPTiBwdWJfcGFydF9wYXJlbnRf Y2hpbGQ7CiBEUk9QIFZJRVcgZ3B0X3Rlc3RfdmlldzsKIERST1AgVEFCTEUgdGJsX25vcm1hbCwg dGJsX3BhcmVudCwgdGJsX3BhcnQxOwogRFJPUCBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoIENBU0NBREU7 Ci1OT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGdwdF90ZXN0X3NjaC50Ymxfc2NoCitO T1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBj YXNjYWRlcyB0byB0YWJsZSBncHRfdGVzdF9zY2gudGJsX3NjaAorZHJvcCBjYXNjYWRlcyB0byB0 YWJsZSBncHRfdGVzdF9zY2gudGJsX3NjaDIKIC0tIHN0YWdlIG9iamVjdHMgZm9yIHBnX2R1bXAg dGVzdHMKIENSRUFURSBTQ0hFTUEgcHVibWUgQ1JFQVRFIFRBQkxFIHQwIChjIGludCwgZCBpbnQp IENSRUFURSBUQUJMRSB0MSAoYyBpbnQpOwogQ1JFQVRFIFNDSEVNQSBwdWJtZTIgQ1JFQVRFIFRB QkxFIHQwIChjIGludCwgZCBpbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmlu ZGV4IDA0MWUxNGE0ZGU2Li40YmMwZTJmZjIzZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbApAQCAtMTIzLDYgKzEyMyw5IEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMCiBcZCB0 ZXN0cHViX3RibDEKIC0tIGZhaWwgLSBmaXJzdCB0YWJsZSBpbiB0aGUgRVhDRVBUIGxpc3Qgc2hv dWxkIHVzZSBUQUJMRSBrZXl3b3JkCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0 YWJsZXNfZXhjZXB0dGFibGUyIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90YmwxLCB0 ZXN0cHViX3RibDIpOworLS0gZmFpbCAtIEVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgRk9SIFRB QkxFIHB1YmxpY2F0aW9ucworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2Vycgor ICAgIEZPUiBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMiBFWENFUFQgKFRBQkxFIHRl c3RwdWJfdGJsMyk7CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogLS0gU0VUIEFMTCBUQUJMRVMvU0VRVUVOQ0VTCkBAIC0yMjAsNyArMjIzLDcxIEBAIFJF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcm9vdCwgdGVzdHB1 Yl9wYXJ0MSwgdGFiX21haW47CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OwogCi0tLS0gVGVz dHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLSBFWENFUFQgdGVzdHMgZm9yIFRBQkxFUyBJTiBT Q0hFTUEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU0VU IGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworLS0gQ3JlYXRlIHRhYmxlcyBpbiBwdWJf dGVzdCBmb3IgdGhlc2UgdGVzdHMKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9z MSAoYSBpbnQgcHJpbWFyeSBrZXksIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl90YmxfczIgKHggaW50IHByaW1hcnkga2V5LCB5IHRleHQpOworLS0gQ3JlYXRlIHNhbWUt bmFtZWQgdGFibGVzIGluIHB1YmxpYyB0byB2ZXJpZnkgdW5xdWFsaWZpZWQgRVhDRVBUIGVudHJp ZXMKKy0tIGFyZSBxdWFsaWZpZWQgd2l0aCB0aGUgbmFtZWQgc2NoZW1hLCBub3QgcHVibGljCitD UkVBVEUgVEFCTEUgdGVzdHB1Yl9ub3BrIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFURSBUQUJM RSB0ZXN0cHViX3RibF9zMSAoYSBpbnQgcHJpbWFyeSBrZXksIGIgdGV4dCk7CisKKy0tIEJhc2lj OiBleGNsdWRlIG9uZSB0YWJsZSBmcm9tIGEgc2NoZW1hIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1B IHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworXGRScCsg dGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQorCistLSBFeGNsdWRlIG11bHRpcGxlIHRhYmxlcyB1c2lu ZyB1bnF1YWxpZmllZCBuYW1lczsgc2FtZS1uYW1lZCB0YWJsZXMgZXhpc3QgaW4KKy0tIHB1Ymxp YyB0byBjb25maXJtIHVucXVhbGlmaWVkIG5hbWVzIHJlc29sdmUgdG8gcHViX3Rlc3QsIG5vdCBw dWJsaWMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQyCisgICAgRk9S IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX25vcGssIHRl c3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKworLS0gZmFpbDog RVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgc2NoZW1hCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHRfd3JvbmdzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHViX3RibDEpOworCistLSBmYWls OiBjcm9zcy1zY2hlbWEgRVhDRVBUIG5vdCBhbGxvd2VkOyBlYWNoIEVYQ0VQVCBpcyBib3VuZCB0 byBpdHMgaW1tZWRpYXRlIHNjaGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 X2Nyb3Nzc2NoZW1hCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QsIHB1YmxpYyBF WENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJsaWMudGVzdHB1Yl90Ymwx KTsKKworLS0gTXVsdGlwbGUgc2NoZW1hcyBlYWNoIHdpdGggdGhlaXIgb3duIEVYQ0VQVCBjbGF1 c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGkKKyAgICBG T1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3Rw dWJfdGJsX3MxKSwKKyAgICAgICAgICAgICAgICAgIHB1YmxpYyBFWENFUFQgKFRBQkxFIHRlc3Rw dWJfdGJsMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGkKKworLS0gZmFpbDog dGFibGUgYXBwZWFycyBpbiBib3RoIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0IGFuZCB0aGUgRVhD RVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2NvbmZsaWN0Cisg ICAgRk9SIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworCistLSBmYWls OiBub25leGlzdGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHRfbm9yZWwKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDogcGFy dGl0aW9uIGNhbm5vdCBhcHBlYXIgaW4gRVhDRVBUIGNsYXVzZTsgb25seSByb290IHRhYmxlcyBh cmUgYWxsb3dlZAorQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgKGEgaW50 KSBQQVJUSVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9w YXJ0X3MgUEFSVElUSU9OIE9GIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgRk9SIFZBTFVFUyBJ TiAoMSk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfcGFydGl0aW9uCisgICAg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0 cHViX3BhcnRfcyk7CisKKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRo ZSBmaXJzdCBlbnRyeSBpbiB0aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZXhjZXB0X25va3cKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKHRlc3RwdWJfbm9wayk7CisKKy0tIENsZWFudXAKK1JFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CitEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMjsKK0RST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOwor RFJPUCBUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOworRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHVi X3NjaGVtYV9leGNlcHRfbXVsdGk7CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUwor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBDUkVBVEUgU0VR VUVOQ0UgcmVncmVzc19wdWJfc2VxMDsKIENSRUFURSBTRVFVRU5DRSBwdWJfdGVzdC5yZWdyZXNz X3B1Yl9zZXExOwogCkBAIC0xMTg5LDYgKzEyNTYsMTggQEAgQUxURVIgUFVCTElDQVRJT04gdGVz dHB1YjFfZm9yc2NoZW1hIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MSwgcHViX3Rlc3Qx OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NI RU1BIGZvbyAoYSwgYik7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQURE IFRBQkxFUyBJTiBTQ0hFTUEgZm9vLCBiYXIgKGEsIGIpOwogCistLSBFWENFUFQgY2xhdXNlIHdp dGggQ1VSUkVOVF9TQ0hFTUE6IGNyb3NzLXNjaGVtYSBlbnRyeSBtdXN0IGJlIHJlamVjdGVkCitT RVQgc2VhcmNoX3BhdGggPSBwdWJfdGVzdDE7CistLSBxdWFsaWZpZWQgbmFtZSBmcm9tIHdyb25n IHNjaGVtYSAtPiBlcnJvcgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2Vw dCBGT1IgVEFCTEVTIElOIFNDSEVNQSBDVVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHB1Yl90 ZXN0Mi50YmwxKTsKKy0tIHVucXVhbGlmaWVkIG5hbWUgaW1wbGljaXRseSBxdWFsaWZpZWQgd2l0 aCBjdXJyZW50IHNjaGVtYSAocHViX3Rlc3QxLnRibCkKK1NFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQgRk9S IFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0YmwpOworUkVT RVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xkUnArIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdAorRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQ7CitSRVNFVCBzZWFyY2hfcGF0aDsK KwogLS0gY2xlYW51cCBwdWJfdGVzdDEgc2NoZW1hIGZvciBpbnZhbGlkYXRpb24gdGVzdHMKIEFM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIyX2ZvcnNjaGVtYSBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QxOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViM19mb3JzY2hlbWEsIHRlc3RwdWI0 X2ZvcnNjaGVtYSwgdGVzdHB1YjVfZm9yc2NoZW1hLCB0ZXN0cHViNl9mb3JzY2hlbWEsIHRlc3Rw dWJfZm9ydGFibGU7CkBAIC0xNDQzLDYgKzE1MjIsNyBAQCBEUk9QIFJPTEUgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyX2R1bW15OwogLS0gVGVzdCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKHRl eHRbXSwgb2lkKSBmdW5jdGlvbgogQ1JFQVRFIFNDSEVNQSBncHRfdGVzdF9zY2g7CiBDUkVBVEUg VEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2ggKGlkIGludCk7CitDUkVBVEUgVEFCTEUgZ3B0X3Rl c3Rfc2NoLnRibF9zY2gyIChpZCBpbnQpOwogQ1JFQVRFIFRBQkxFIHRibF9ub3JtYWwgKGlkIGlu dCk7CiBDUkVBVEUgVEFCTEUgdGJsX3BhcmVudCAoaWQxIGludCwgaWQyIGludCwgaWQzIGludCkg UEFSVElUSU9OIEJZIFJBTkdFIChpZDEpOwogQ1JFQVRFIFRBQkxFIHRibF9wYXJ0MSBQQVJUSVRJ T04gT0YgdGJsX3BhcmVudCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CkBAIC0xNDU0LDYg KzE1MzQsNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9ub192aWFyb290IEZPUiBBTEwg VEFCTEVTIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 Yl9hbGxfZXhjZXB0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwgZ3B0 X3Rlc3Rfc2NoLnRibF9zY2gpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1 ZSk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCBGT1IgQUxM IFRBQkxFUyBFWENFUFQgKFRBQkxFIHRibF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxfc2NoKSBX SVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJMSUNB VElPTiBwdWJfc2NoZW1hIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaDsKK0NSRUFU RSBQVUJMSUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBncHRf dGVzdF9zY2ggRVhDRVBUIChUQUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaCk7CiBDUkVBVEUgUFVC TElDQVRJT04gcHViX25vcm1hbCBGT1IgVEFCTEUgdGJsX25vcm1hbCBXSEVSRSAoaWQgPCAxMCk7 CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX3BhcnRfbGVhZiBGT1IgVEFCTEUgdGJsX3BhcnQxIFdJ VEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1Yl9wYXJ0X3BhcmVudCBGT1IgVEFCTEUgdGJsX3BhcmVudCAoaWQxLCBpZDIpIFdIRVJF IChpZDEgPSAxMCkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKQEAg LTE1MTAsNiArMTU5MSwxMCBAQCBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxs X2V4Y2VwdF9ub192aWFyb290J10sICdncHRfdGVzdF9zY2gudGJsX3NjaAogU0VMRUNUICogRlJP TSB0ZXN0X2dwdChBUlJBWVsncHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCddLCAndGJsX3BhcmVu dCcpOyAtLSBubyByZXN1bHQgKGV4Y2x1ZGVkKQogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJB WVsncHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCddLCAndGJsX3BhcnQxJyk7IC0tIG5vIHJlc3Vs dAogCistLSB0ZXN0IGZvciBFWENFUFQgY2xhdXNlIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9uCitT RUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfc2NoZW1hX2V4Y2VwdCddLCAnZ3B0X3Rl c3Rfc2NoLnRibF9zY2gnKTsgLS0gbm8gcmVzdWx0IChleGNsdWRlZCkKK1NFTEVDVCAqIEZST00g dGVzdF9ncHQoQVJSQVlbJ3B1Yl9zY2hlbWFfZXhjZXB0J10sICdncHRfdGVzdF9zY2gudGJsX3Nj aDInKTsgLS0gb25lIHJvdyAoaW5jbHVkZWQgdmlhIHNjaGVtYSkKKwogLS0gdHdvIHJvd3Mgd2l0 aCBkaWZmZXJlbnQgcm93IGZpbHRlcgogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHVi X2FsbCcsICdwdWJfbm9ybWFsJ10sICd0Ymxfbm9ybWFsJyk7CiAKQEAgLTE1MzgsNiArMTYyMyw3 IEBAIERST1AgUFVCTElDQVRJT04gcHViX2FsbF9ub192aWFyb290OwogRFJPUCBQVUJMSUNBVElP TiBwdWJfYWxsX2V4Y2VwdDsKIERST1AgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlh cm9vdDsKIERST1AgUFVCTElDQVRJT04gcHViX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gcHVi X3NjaGVtYV9leGNlcHQ7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9ub3JtYWw7CiBEUk9QIFBVQkxJ Q0FUSU9OIHB1Yl9wYXJ0X2xlYWY7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X3BhcmVudDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCmluZGV4IDhjNThkMjgyZWVlLi4xOGM3 YjJjMWZjYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5w bAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCkBAIC0yNCwxNCAr MjQsMTcgQEAgbXkgJHJlc3VsdDsKIAogc3ViIHRlc3RfZXhjZXB0X3Jvb3RfcGFydGl0aW9uCiB7 Ci0JbXkgKCRwdWJ2aWFyb290KSA9IEBfOworCW15ICgkcHVidmlhcm9vdCwgJHB1YnNxbCkgPSBA XzsKKwkkcHVic3FsIC8vPQorCSAgIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9S IEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSByb290MSkiOworCSRwdWJzcWwgLj0gIiBXSVRIIChw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9ICRwdWJ2aWFyb290KSI7CiAKIAkjIElmIHRoZSBy b290IHBhcnRpdGlvbmVkIHRhYmxlIGlzIGluIHRoZSBFWENFUFQgY2xhdXNlLCBhbGwgaXRzCiAJ IyBwYXJ0aXRpb25zIGFyZSBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uLCByZWdhcmRsZXNzIG9m IHRoZQogCSMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qgc2V0dGluZy4KIAkkbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgKIAkJJ3Bvc3RncmVzJywgcXEoCi0JCUNSRUFURSBQVUJMSUNBVElP TiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSByb290MSkgV0lUSCAo cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSAkcHVidmlhcm9vdCk7CisJCSRwdWJzcWw7CiAJ CUlOU0VSVCBJTlRPIHJvb3QxIFZBTFVFUyAoMSksICgxMDEpOwogCSkpOwogCSRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLApAQCAtMjIzLDYgKzIyNiwxMzEgQEAgJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKAogdGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24oJ2ZhbHNl Jyk7CiB0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlvbigndHJ1ZScpOwogCisjIFNhbWUgdmFsaWRh dGlvbiB1c2luZyBUQUJMRVMgSU4gU0NIRU1BIGluc3RlYWQgb2YgRk9SIEFMTCBUQUJMRVMuCitt eSAkc2NoZW1hX3B1YiA9CisgICJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBU QUJMRVMgSU4gU0NIRU1BIHB1YmxpYyBFWENFUFQgKFRBQkxFIHB1YmxpYy5yb290MSkiOwordGVz dF9leGNlcHRfcm9vdF9wYXJ0aXRpb24oJ2ZhbHNlJywgJHNjaGVtYV9wdWIpOwordGVzdF9leGNl cHRfcm9vdF9wYXJ0aXRpb24oJ3RydWUnLCAkc2NoZW1hX3B1Yik7CisKKyMgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgRVhDRVBUIHRlc3QgY2FzZXMgZm9y IFRBQkxFUyBJTiBTQ0hFTUEKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKworIyBDcmVhdGUgYSBkZWRpY2F0ZWQgc2NoZW1hIHdpdGggdHdvIHRhYmxlczog b25lIHRvIGJlIHB1Ymxpc2hlZCBhbmQgb25lIHRvIGJlCisjIGV4Y2x1ZGVkLiAgQWxzbyBjcmVh dGUgaW5oZXJpdGVkIHRhYmxlcyB0byB2ZXJpZnkgT05MWSBzZW1hbnRpY3MuCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7 CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiX3B1Ymxpc2hlZCBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2Vy aWVzKDEsNSkgQVMgYTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWJfZXhjbHVkZWQgQVMgU0VMRUNU IGdlbmVyYXRlX3NlcmllcygxLDUpIEFTIGE7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFyZW50IChh IGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEuY2hpbGQgKGIgaW50KSBJTkhFUklUUyAoc2NoMS5w YXJlbnQpOworKSk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMn LCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiX3B1Ymxp c2hlZCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnRhYl9leGNsdWRlZCAoYSBpbnQpOwor CUNSRUFURSBUQUJMRSBzY2gxLnBhcmVudCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLmNo aWxkIChiIGludCkgSU5IRVJJVFMgKHNjaDEucGFyZW50KTsKKykpOworCisjIEJhc2ljIHRlc3Q6 IGluaXRpYWwgc3luYyByZXNwZWN0cyBFWENFUFQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gc2NoX3B1YiBGT1IgVEFCTEVTIElO IFNDSEVNQSBzY2gxIEVYQ0VQVCAoVEFCTEUgc2NoMS50YWJfZXhjbHVkZWQpIgorKTsKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9O IHNjaF9zdWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBzY2hf cHViIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRu b2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRh Yl9wdWJsaXNoZWQiKTsKK2lzKCRyZXN1bHQsIHFxKDUpLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVY Q0VQVDogaW5pdGlhbCBzeW5jIGNvcGllcyBpbmNsdWRlZCB0YWJsZScpOworJHJlc3VsdCA9Cisg ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQo KikgRlJPTSBzY2gxLnRhYl9leGNsdWRlZCIpOworaXMoJHJlc3VsdCwgcXEoMCksCisJJ1RBQkxF UyBJTiBTQ0hFTUEgRVhDRVBUOiBpbml0aWFsIHN5bmMgc2tpcHMgZXhjbHVkZWQgdGFibGUnKTsK KworIyBETUw6IG9ubHkgdGhlIGluY2x1ZGVkIHRhYmxlIHNob3VsZCBiZSByZXBsaWNhdGVkLgor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElO VE8gc2NoMS50YWJfcHVibGlzaGVkIFZBTFVFUyAoNik7CisJSU5TRVJUIElOVE8gc2NoMS50YWJf ZXhjbHVkZWQgVkFMVUVTICg2KTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVk Iik7CitpcygkcmVzdWx0LCBxcSg2KSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IERNTCBv biBpbmNsdWRlZCB0YWJsZSBpcyByZXBsaWNhdGVkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNj aDEudGFiX2V4Y2x1ZGVkIik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknVEFCTEVTIElOIFNDSEVN QSBFWENFUFQ6IERNTCBvbiBleGNsdWRlZCB0YWJsZSBpcyBub3QgcmVwbGljYXRlZCcpOworCisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9O IHNjaF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9Q IFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsKKworIyBJbmhlcml0ZWQgdGFibGVzOiBleGNsdWRpbmcg dGhlIHBhcmVudCAod2l0aG91dCBPTkxZKSBhbHNvIGV4Y2x1ZGVzIHRoZSBjaGlsZC4KKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiBz Y2hfcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhDRVBUIChUQUJMRSBzY2gxLnBhcmVu dCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFU RSBTVUJTQ1JJUFRJT04gc2NoX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBV QkxJQ0FUSU9OIHNjaF9wdWIiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2Ny aXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAnc2NoX3N1YicpOworCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLmNoaWxkIFZBTFVF UyAoZ2VuZXJhdGVfc2VyaWVzKDEsNSksIGdlbmVyYXRlX3NlcmllcygxLDUpKSIKKyk7Ciskbm9k ZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9Cisg ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCop IEZST00gc2NoMS5jaGlsZCIpOworaXMoJHJlc3VsdCwgcXEoMCksCisJJ1RBQkxFUyBJTiBTQ0hF TUEgRVhDRVBUOiBleGNsdWRpbmcgcGFyZW50ICh3aXRob3V0IE9OTFkpIGFsc28gZXhjbHVkZXMg Y2hpbGQnCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RS T1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsKKworIyBUZXN0IHRoYXQgRVhD RVBUIChUQUJMRSBPTkxZIHBhcmVudCkgZXhjbHVkZXMgb25seSB0aGUgcGFyZW50IGl0c2VsZiwg bm90IGl0cworIyBjaGlsZC4gIFRydW5jYXRlIGNoaWxkIGZpcnN0IHNvIHJvd3MgZnJvbSB0aGUg cHJldmlvdXMgdGVzdCBhcmUgbm90IGNvcGllZCBieQorIyB0aGUgaW5pdGlhbCB0YWJsZSBzeW5j IG9mIHRoZSBuZXh0IHN1YnNjcmlwdGlvbi4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICdUUlVOQ0FURSBzY2gxLmNoaWxkJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ1RSVU5DQVRFIHNjaDEuY2hpbGQnKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZP UiBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhDRVBUIChUQUJMRSBPTkxZIHNjaDEucGFyZW50KSIK Kyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNV QlNDUklQVElPTiBzY2hfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElD QVRJT04gc2NoX3B1YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRp b25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEuY2hpbGQgVkFMVUVTIChn ZW5lcmF0ZV9zZXJpZXMoMSw1KSwgZ2VuZXJhdGVfc2VyaWVzKDEsNSkpIgorKTsKKyRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJP TSBzY2gxLmNoaWxkIik7CitpcygkcmVzdWx0LCBxcSg1KSwKKwknVEFCTEVTIElOIFNDSEVNQSBF WENFUFQ6IE9OTFkgcGFyZW50IGluIEVYQ0VQVCBkb2VzIG5vdCBleGNsdWRlIGNoaWxkJyk7CisK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJ T04gc2NoX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RS T1AgUFVCTElDQVRJT04gc2NoX3B1YicpOworCisjIENsZWFudXAgc2NoZW1hIHRhYmxlcyBiZWZv cmUgdGhlIG11bHRpLXB1YmxpY2F0aW9uIHNlY3Rpb24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTQ0hFTUEgc2NoMSBDQVNDQURFJyk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU0NIRU1BIHNjaDEgQ0FTQ0FERScp OworCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIFRl c3Qgd2hlbiBhIHN1YnNjcmlwdGlvbiBpcyBzdWJzY3JpYmluZyB0byBtdWx0aXBsZSBwdWJsaWNh dGlvbnMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAg LTI1NCw2ICszODIsNyBAQCAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAlEUk9QIFBVQkxJ Q0FUSU9OIHRhcF9wdWIyOwogCVRSVU5DQVRFIHRhYjE7CiApKTsKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1YicpOwogJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKFRSVU5DQVRFIHRhYjEpKTsK IAogIyBPSyB3aGVuIGEgdGFibGUgaXMgZXhjbHVkZWQgYnkgcHViMSBFWENFUFQgY2xhdXNlLCBi dXQgaXQgaXMgaW5jbHVkZWQgYnkgcHViMgotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000058e5ae0654492956 Content-Type: application/octet-stream; name="v13-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Disposition: attachment; filename="v13-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqf4qapp1 RnJvbSA0YjViYTNhMWRlYjZiYTNhZjNlN2YwOGQwNDdhMzdhYjgwMjI2OGIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBNb24sIDE1IEp1biAyMDI2IDE2OjQ1OjU1ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTMgMi8zXSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gQUREIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgdGhlIEVYQ0VQVCBjbGF1c2Ugc3VwcG9ydCB0byBhbGxvdyB0 YWJsZXMgdG8gYmUgZXhjbHVkZWQgd2hlbgphZGRpbmcgYSBzY2hlbWEgdG8gYSBwdWJsaWNhdGlv biB2aWEgQUxURVIgUFVCTElDQVRJT04gLi4uIEFERC4KClN5bnRheDoKICBBTFRFUiBQVUJMSUNB VElPTiBwdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHMudDEpOwoKU2lu Y2UgcGdfZHVtcCB1c2VzIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQsIHN1cHBvcnQgZm9yIGl0 IGlzCmluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sICAgfCAgNTIgKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcHVibGljYXRpb24uYyAgICAgIHwgIDE5ICsrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgIHwgIDMwICsrKysrLQogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgfCAgMjQgKysrKysKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgIHwgIDE3ICsrKysKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IHwgIDMyICsrKysrKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgIHwgIDIwICsrKy0KIHNyYy90ZXN0L3N1YnNjcmlw dGlvbi90LzAzN19leGNlcHQucGwgICAgIHwgIDMyICsrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwg MzE4IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbAppbmRleCA1MjExNGExNmEzOS4uOGQ5ZDM1NzNiZDcgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMxLDcgKzMxLDcgQEAgQUxURVIg UFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFz ZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRf Y29sdW1uczwvcmVwbGFjZWFibGU+IFssIC4uLiBdCi0gICAgVEFCTEVTIElOIFNDSEVNQSB7IDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwg Q1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorICAgIFRBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hlbWE8L3JlcGxhY2VhYmxlPiBbLCAu Li4gXQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fYWxsX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAt NDcsNiArNDcsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIAogICAgIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4u IF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lv bjwvcmVwbGFjZWFibGU+ICkgXQogCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisg ICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2Vh YmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWyBFWENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQor CiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxl X29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCiAgICAgVEFCTEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBd CkBAIC0xMTAsNiArMTE0LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICA8bGl0ZXJh bD5BREQgVEFCTEU8L2xpdGVyYWw+LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgd2l0aAorICAgPGxpdGVy YWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFi bGVzIGZyb20gdGhlCisgICBwdWJsaWNhdGlvbi4gVXNpbmcgPGxpdGVyYWw+RFJPUCBUQUJMRVMg SU4gU0NIRU1BPC9saXRlcmFsPiBvbiBhIHB1YmxpY2F0aW9uCisgICB3aWxsIGF1dG9tYXRpY2Fs bHkgYWxzbyByZW1vdmUgYW55IGFzc29jaWF0ZWQgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPgor ICAgZW50cmllcy4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIGZvdXJ0aCB2YXJpYW50 IG9mIHRoaXMgY29tbWFuZCBsaXN0ZWQgaW4gdGhlIHN5bm9wc2lzIGNhbiBjaGFuZ2UKICAgIGFs bCBvZiB0aGUgcHVibGljYXRpb24gcHJvcGVydGllcyBzcGVjaWZpZWQgaW4KQEAgLTE5OCw2ICsy MTAsMzQgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+RVhD RVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8 L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgV2hlbiB1c2VkIHdpdGggPGxpdGVyYWw+QUREIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZpZXMKKyAgICAgIHRhYmxlcyB0byBiZSBleGNsdWRl ZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4gIEVhY2ggbmFtZWQKKyAgICAgIHRhYmxlIG11c3QgYmVs b25nIHRvIHRoZSBzY2hlbWEgc3BlY2lmaWVkIGluIHRoZSBzYW1lCisgICAgICA8bGl0ZXJhbD5U QUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBjbGF1c2UuICBUYWJsZSBuYW1lcyBtYXkgYmUKKyAg ICAgIHNjaGVtYS1xdWFsaWZpZWQgb3IgdW5xdWFsaWZpZWQ7IHVucXVhbGlmaWVkIG5hbWVzIGFy ZSBpbXBsaWNpdGx5CisgICAgICBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hIG5hbWVkIGluIHRo ZSBzYW1lIGNsYXVzZS4gIFNlZQorICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXB1Ymxp Y2F0aW9uIi8+IGZvciBmdXJ0aGVyIGRldGFpbHMgb24gdGhlCisgICAgICBzZW1hbnRpY3Mgb2Yg PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAg ICAgIEZvciA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGljYXRp b25zLCB0aGUKKyAgICAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGlzIHNjaGVt YS1zY29wZWQuICBJZiBhIHRhYmxlIGxpc3RlZCBpbgorICAgICAgdGhlIDxsaXRlcmFsPkVYQ0VQ VDwvbGl0ZXJhbD4gY2xhdXNlIGlzIGxhdGVyIG1vdmVkIHRvIGEgZGlmZmVyZW50IHNjaGVtYQor ICAgICAgdXNpbmcgPGNvbW1hbmQ+QUxURVIgVEFCTEUgLi4uIFNFVCBTQ0hFTUE8L2NvbW1hbmQ+ LCB0aGUgZXhjbHVzaW9uIGlzCisgICAgICByZW1vdmVkOyB0aGUgdGFibGUgd2lsbCB0aGVuIGJl IHB1Ymxpc2hlZCBpZiBpdHMgbmV3IHNjaGVtYSBpcyBwYXJ0IG9mIGEKKyAgICAgIHB1YmxpY2F0 aW9uLiAgSWYgdGhlIHRhYmxlIGlzIHN1YnNlcXVlbnRseSBtb3ZlZCBiYWNrIHRvIHRoZSBvcmln aW5hbAorICAgICAgc2NoZW1hLCB0aGUgZXhjbHVzaW9uIGlzIG5vdCByZXN0b3JlZCwgYW5kIG11 c3QgYmUgcmUtZXN0YWJsaXNoZWQKKyAgICAgIGV4cGxpY2l0bHkgdXNpbmcgPGNvbW1hbmQ+QUxU RVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LiAgRHJvcHBpbmcgYSB0YWJsZQorICAgICAgYWx3YXlz IHJlbW92ZXMgaXQgZnJvbSB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UsIHJl Z2FyZGxlc3Mgb2YKKyAgICAgIHB1YmxpY2F0aW9uIHR5cGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg PHRlcm0+PGxpdGVyYWw+U0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1Ymxp Y2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4K ICAgICA8bGlzdGl0ZW0+CkBAIC0yODgsNiArMzI4LDE2IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNh bGVzX3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8 L3Byb2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBBZGQgc2NoZW1hIDxz dHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPiB0byB0aGUgcHVibGljYXRpb24KKyAgIDxzdHJ1 Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiwgZXhjbHVkaW5nIHRoZQorICAg PHN0cnVjdG5hbWU+c2FsZXMuaW50ZXJuYWw8L3N0cnVjdG5hbWU+IGFuZAorICAgPHN0cnVjdG5h bWU+c2FsZXMuZHJhZnRzPC9zdHJ1Y3RuYW1lPiB0YWJsZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitB TFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgVEFCTEVTIElOIFNDSEVNQSBz YWxlcyBFWENFUFQgKFRBQkxFIGludGVybmFsLCBkcmFmdHMpOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxlcyA8c3RydWN0bmFtZT51c2Vyczwv c3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT4gYW5k IHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDQwODliNTA1Zjg5 Li5kMWZmODgzOTAzNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtNjQ5 LDE1ICs2NDksMTggQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGlj YXRpb25SZWxJbmZvICpwcmksCiAJICogaGVyZSwgYXMgQ3JlYXRlUHVibGljYXRpb24oKSBmdW5j dGlvbiBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIGFzIHBhcnQKIAkgKiBvZiBkZWZpbmluZyBh IEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLgogCSAqCi0JICogRm9yIEFMVEVSIFBVQkxJQ0FU SU9OLCBpbnZhbGlkYXRpb24gaXMgbmVlZGVkIG9ubHkgd2hlbiBhZGRpbmcgYW4KLQkgKiBFWENF UFQgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhbHJlYWR5IG1hcmtlZCBhcyBBTEwgVEFCTEVTLiBG b3IKLQkgKiBwdWJsaWNhdGlvbnMgdGhhdCB3ZXJlIG9yaWdpbmFsbHkgZW1wdHkgb3IgZGVmaW5l ZCBhcyBBTEwgU0VRVUVOQ0VTIGFuZAotCSAqIGFyZSBiZWluZyBjb252ZXJ0ZWQgdG8gQUxMIFRB QkxFUywgaW52YWxpZGF0aW9uIGlzIHNraXBwZWQgaGVyZSwgYXMKLQkgKiBBbHRlclB1YmxpY2F0 aW9uQWxsRmxhZ3MoKSBmdW5jdGlvbiBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIHdoaWxlCi0J ICogbWFya2luZyB0aGUgcHVibGljYXRpb24gYXMgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbi4KKwkg KiBGb3IgQUxURVIgUFVCTElDQVRJT04sIGludmFsaWRhdGlvbiBpcyBuZWVkZWQgd2hlbiBhZGRp bmcgYW4gRVhDRVBUCisJICogdGFibGUgdG8gZWl0aGVyIGEgRk9SIEFMTCBUQUJMRVMgcHVibGlj YXRpb24gKHB1Yi0+YWxsdGFibGVzIGlzIHRydWUpCisJICogb3IgYSBGT1IgVEFCTEVTIElOIFND SEVNQSBwdWJsaWNhdGlvbiAoaXNfc2NoZW1hX3B1YmxpY2F0aW9uIGlzIHRydWUpLgorCSAqIFRo ZSBleGNlcHRpb246IHdoZW4gYSBwdWJsaWNhdGlvbiBpcyBiZWluZyBjb252ZXJ0ZWQgdG8gRk9S IEFMTCBUQUJMRVMKKwkgKiAocHViLT5hbGx0YWJsZXMgaXMgc3RpbGwgZmFsc2UgYXQgdGhpcyBw b2ludCksCisJICogQWx0ZXJQdWJsaWNhdGlvbkFsbEZsYWdzKCkgd2lsbCBwZXJmb3JtIGEgZnVs bCBpbnZhbGlkYXRpb24sIHNvIHdlIHNraXAKKwkgKiBpdCBoZXJlLgogCSAqLwotCWludmFsX2V4 Y2VwdF90YWJsZSA9IChhbHRlcl9zdG10ICE9IE5VTEwpICYmIHB1Yi0+YWxsdGFibGVzICYmCi0J CShhbHRlcl9zdG10LT5mb3JfYWxsX3RhYmxlcyAmJiBwcmktPmV4Y2VwdCk7CisJaW52YWxfZXhj ZXB0X3RhYmxlID0gKGFsdGVyX3N0bXQgIT0gTlVMTCkgJiYgcHJpLT5leGNlcHQgJiYKKwkJKHB1 Yi0+YWxsdGFibGVzCisJCSA/IGFsdGVyX3N0bXQtPmZvcl9hbGxfdGFibGVzCisJCSA6IGlzX3Nj aGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpOwogCiAJaWYgKCFwcmktPmV4Y2VwdCB8fCBpbnZhbF9l eGNlcHRfdGFibGUpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRl eCBjMjRjMDhhNTdiNS4uNjkzYTBlM2UwNjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5jCkBAIC03MCw2ICs3MCwxMyBAQCBzdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BU YWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIHZv aWQgUHVibGljYXRpb25BZGRTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBp Zl9ub3RfZXhpc3RzLAogCQkJCQkJCQkgIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KTsKIHN0 YXRpYyB2b2lkIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFz LCBib29sIG1pc3Npbmdfb2spOworc3RhdGljIHZvaWQgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMo QWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0 ICpzY2hlbWFpZGxpc3QsCisJCQkJCQkJCQlMaXN0ICpleGNlcHRfcHVidGFibGVzKTsKK3N0YXRp YyB2b2lkIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsCisJCQkJCQkJCQkJCSAgIEhlYXBUdXBsZSB0dXAsCisJCQkJCQkJCQkJCSAg IExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJCQkJCSAgIExpc3QgKnNjaGVtYWlkbGlz dCk7CiBzdGF0aWMgY2hhciBkZWZHZXRHZW5lcmF0ZWRDb2xzT3B0aW9uKERlZkVsZW0gKmRlZik7 CiAKIApAQCAtMTUwMCw3ICsxNTA3LDggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKICAqLwogc3RhdGljIHZvaWQKIEFs dGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAotCQkJCQkJ SGVhcFR1cGxlIHR1cCwgTGlzdCAqc2NoZW1haWRsaXN0KQorCQkJCQkJSGVhcFR1cGxlIHR1cCwg TGlzdCAqc2NoZW1haWRsaXN0LAorCQkJCQkJTGlzdCAqZXhjZXB0X3B1YnRhYmxlcykKIHsKIAlG b3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CiAKQEAgLTE1NzcsNiArMTU4NSw5NyBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1h cyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJICovCiAJCVB1YmxpY2F0aW9uQWRkU2No ZW1hcyhwdWJmb3JtLT5vaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgc3RtdCk7CiAJfQorCisJLyoK KwkgKiBJbmNyZW1lbnQgdGhlIGNvbW1hbmQgY291bnRlciBzbyB0aGF0IGlzX3NjaGVtYV9wdWJs aWNhdGlvbigpIGluCisJICogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcygpIGNhbiBzZWUg dGhlIGp1c3QtaW5zZXJ0ZWQgc2NoZW1hCisJICogcm93cyB3aGVuIEFsdGVyUHVibGljYXRpb25T Y2hlbWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0LgorCSAqLworCWlmIChzdG10LT5hY3Rpb24gPT0g QVBfQWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rpb24gPT0gQVBfU2V0T2JqZWN0cykKKwkJQ29tbWFu ZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCUFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJs ZXMoc3RtdCwgdHVwLCBleGNlcHRfcHVidGFibGVzLCBzY2hlbWFpZGxpc3QpOworfQorCisvKgor ICogQWx0ZXIgdGhlIEVYQ0VQVCBsaXN0IG9mIGEgc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9uLgor ICoKKyAqIEFkZHMsIHJlbW92ZXMsIG9yIHJlcGxhY2VzIGV4Y2VwdC10YWJsZSBlbnRyaWVzIGlu IHBnX3B1YmxpY2F0aW9uX3JlbAorICogKHJvd3Mgd2l0aCBwcmV4Y2VwdCA9IHRydWUpLiAgVGhl c2UgZW50cmllcyBzdXBwcmVzcyBwdWJsaWNhdGlvbiBvZiB0aGUKKyAqIG5hbWVkIHRhYmxlcyB0 aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBjb3ZlcmVkIGJ5IGEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEK KyAqIGNsYXVzZS4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUHVibGljYXRpb25TY2hlbWFFeGNl cHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCQkJIEhlYXBUdXBsZSB0 dXAsIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJIExpc3QgKnNjaGVtYWlkbGlzdCkK K3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikg R0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisKKwkvKgorCSAq IE5vdGhpbmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVudHJpZXMuCisJICovCisJaWYgKCFleGNlcHRf cHVidGFibGVzKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBF WENFUFQgZW50cmllcyBmb3Igc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9ucworCSAqIG9ubHkuICBG b3IgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLCBFWENFUFQgZW50cmllcyBhcmUgYWxyZWFk eQorCSAqIHByb2Nlc3NlZCBieSBBbHRlclB1YmxpY2F0aW9uVGFibGVzKCkuCisJICovCisJaWYg KHNjaGVtYWlkbGlzdCA9PSBOSUwgJiYgIWlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJ CXJldHVybjsKKworCS8qCisJICogRHJvcHBpbmcgYSBzY2hlbWEgZnJvbSBhIHB1YmxpY2F0aW9u IHJlbW92ZXMgYWxsIGl0cyBFWENFUFQgZW50cmllcyB2aWEKKwkgKiBjYXNjYWRlLiBUaGUgY29u Y2VwdCBvZiAiZHJvcCBhbGwgc2NoZW1hIHRhYmxlcyBmcm9tIHRoZSBwdWJsaWNhdGlvbgorCSAq IEVYQ0VQVCB0aGVzZSBvbmVzIiBpcyBub3Qgc3VwcG9ydGVkLgorCSAqLworCWlmIChzdG10LT5h Y3Rpb24gPT0gQVBfRHJvcE9iamVjdHMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1 c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVCTElDQVRJT04iKSkpOwor CisJLyoKKwkgKiBYWFggRVhDRVBUIHdpdGggU0VUIGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50 ZWQuICBXb3JrYXJvdW5kOiBEUk9QIGFuZAorCSAqIHJlLUFERCB0aGUgc2NoZW1hIHdpdGggdGhl IGRlc2lyZWQgRVhDRVBUIGxpc3QuCisJICovCisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRP YmplY3RzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0 ZWQgd2l0aCBTRVQgaW4gQUxURVIgUFVCTElDQVRJT04iKSwKKwkJCQkgZXJyaGludCgiRHJvcCBh bmQgcmUtYWRkIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENFUFQgbGlzdC4iKSkpOwor CisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQorCXsKKwkJTGlzdAkgICAqcmVs czsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHM7CisKKwkJcmVscyA9IE9wZW5UYWJsZUxpc3Qo ZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJZXhwbGljaXRyZWxpZHMgPSBHZXRJbmNsdWRlZFB1Ymxp Y2F0aW9uUmVsYXRpb25zKHB1YmlkLAorCQkJCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9S T09UKTsKKworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGF0IGVhY2ggZXhjbHVkZWQgdGFibGUgaXMg bm90IGFsc28gaW4gdGhlIGV4cGxpY2l0IHRhYmxlCisJCSAqIGxpc3QgKHdoaWNoIHdvdWxkIGJl IGNvbnRyYWRpY3RvcnkpLgorCQkgKi8KKwkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25SZWxJbmZv LCBwcmksIHJlbHMpCisJCXsKKwkJCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChwcmkt PnJlbGF0aW9uKTsKKworCQkJaWYgKGxpc3RfbWVtYmVyX29pZChleHBsaWNpdHJlbGlkcywgcmVs aWQpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgY2Fubm90IGFwcGVh ciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZSIsCisJCQkJCQkJ ICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUocHJpLT5yZWxhdGlvbikpKTsKKwkJ fQorCisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1YmlkLCByZWxzLCBmYWxzZSwgc3RtdCk7CisK KwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJfQogfQogCiAvKgpAQCAtMTc4NiwxMCArMTg4NSwx MiBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQpCiAJCQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwKIAkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsKIAotCQlyZWxhdGlvbnMgPSBsaXN0X2Nv bmNhdChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0YWJsZXMpOworCQlpZiAoc3RtdC0+Zm9yX2FsbF90 YWJsZXMpCisJCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0 YWJsZXMpOworCiAJCUFsdGVyUHVibGljYXRpb25UYWJsZXMoc3RtdCwgdHVwLCByZWxhdGlvbnMs IHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwpOwot CQlBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0dXAsIHNjaGVtYWlkbGlzdCk7CisJCUFs dGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQsIHR1cCwgc2NoZW1haWRsaXN0LCBleGNlcHRfcHVi dGFibGVzKTsKIAkJQWx0ZXJQdWJsaWNhdGlvbkFsbEZsYWdzKHN0bXQsIHJlbCwgdHVwKTsKIAl9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IGEwZjdmOGUyMTY4Li44NWFiM2IwMDg3NSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j CkBAIC01MDE5LDYgKzUwMTksNyBAQCBkdW1wUHVibGljYXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAq Zm91dCwgY29uc3QgUHVibGljYXRpb25TY2hlbWFJbmZvICpwdWJzaW5mbykKIAlQdWJsaWNhdGlv bkluZm8gKnB1YmluZm8gPSBwdWJzaW5mby0+cHVibGljYXRpb247CiAJUFFFeHBCdWZmZXIgcXVl cnk7CiAJY2hhcgkgICAqdGFnOworCWJvb2wJCWhhc19leGNlcHQgPSBmYWxzZTsKIAogCS8qIERv IG5vdGhpbmcgaWYgbm90IGR1bXBpbmcgc2NoZW1hICovCiAJaWYgKCFkb3B0LT5kdW1wU2NoZW1h KQpAQCAtNTAyOSw3ICs1MDMwLDM0IEBAIGR1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShBcmNoaXZl ICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblNjaGVtYUluZm8gKnB1YnNpbmZvKQogCXF1ZXJ5ID0g Y3JlYXRlUFFFeHBCdWZmZXIoKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIg UFVCTElDQVRJT04gJXMgIiwgZm10SWQocHViaW5mby0+ZG9iai5uYW1lKSk7Ci0JYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICJBREQgVEFCTEVTIElOIFNDSEVNQSAlcztcbiIsIGZtdElkKHNjaGVt YWluZm8tPmRvYmoubmFtZSkpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUREIFRBQkxF UyBJTiBTQ0hFTUEgJXMiLCBmbXRJZChzY2hlbWFpbmZvLT5kb2JqLm5hbWUpKTsKKworCS8qCisJ ICogQXBwZW5kIEVYQ0VQVCBjbGF1c2UgZm9yIGFueSB0YWJsZXMgdGhhdCBiZWxvbmcgdG8gdGhp cyBzY2hlbWEKKwkgKiBhbmQgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLgorCSAq LworCWZvciAoU2ltcGxlUHRyTGlzdENlbGwgKmNlbGwgPSBwdWJpbmZvLT5leGNlcHRfdGFibGVz LmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCXsKKwkJVGFibGVJbmZvICAqdGJpbmZv ID0gKFRhYmxlSW5mbyAqKSBjZWxsLT5wdHI7CisKKwkJaWYgKHN0cmNtcCh0YmluZm8tPmRvYmou bmFtZXNwYWNlLT5kb2JqLm5hbWUsIHNjaGVtYWluZm8tPmRvYmoubmFtZSkgPT0gMCkKKwkJewor CQkJaWYgKCFoYXNfZXhjZXB0KQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiIEVYQ0VQVCAoIik7CisJCQkJaGFzX2V4Y2VwdCA9IHRydWU7CisJCQl9CisJCQllbHNlCisJ CQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsICIpOworCisJCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIlRBQkxFIE9OTFkgJXMiLCBmbXRJZCh0YmluZm8tPmRvYmoubmFtZSkpOwor CQl9CisJfQorCisJaWYgKGhhc19leGNlcHQpCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiKSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICI7XG4iKTsKIAogCS8qCiAJ ICogVGhlcmUgaXMgbm8gcG9pbnQgaW4gY3JlYXRpbmcgZHJvcCBxdWVyeSBhcyB0aGUgZHJvcCBp cyBkb25lIGJ5IHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCAzZWU5ZmRhNTBl NC4uYjhmNGFhNzY5ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0zMjQyLDYgKzMy NDIsMzAgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9w b3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxMScgPT4g eworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBV QkxJQ0FUSU9OIHB1YjExIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRB QkxFIHRlc3RfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNB VElPTiBwdWIxMSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5j YXRlJyk7XEUKKwkJCS4qPworCQkJXFFBTFRFUiBQVUJMSUNBVElPTiBwdWIxMSBBREQgVEFCTEVT IElOIFNDSEVNQSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJMRSBPTkxZIHRlc3RfdGFibGUpO1xFCisJ CQkveG1zLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwg fSwKKwl9LAorCisJJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxMicgPT4geworCQljcmVhdGVfb3Jk ZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEy IEZPUiBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RfdGFibGUs IGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSk7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxR Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUs IGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJLio/CisJCQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1 YjEyIEFERCBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIE9OTFkgdGVz dF90YWJsZSwgVEFCTEUgT05MWSB0ZXN0X3NlY29uZF90YWJsZSk7XEUKKwkJCS94bXMsCisJCWxp a2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKIAkn Q1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJ Y3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxCmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMKaW5kZXggNTNiYjdjODY3OWIuLmEyOTA5MDJkNjFlIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CkBAIC0yMzczLDYgKzIzNzMsMjMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5f aWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhRdWVyeV9mb3JfbGlzdF9vZl9zY2hlbWFz CiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtFIEUncGdcXFxcXyUlJyIsCiAJCQkJCQkJ CSAiQ1VSUkVOVF9TQ0hFTUEiKTsKKwkvKiBBZnRlciBhIHNpbmdsZSBzY2hlbWEgbmFtZSBpbiBB REQgY29udGV4dCwgb2ZmZXIgRVhDRVBUICggVEFCTEUgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJT Q0hFTUEiLCBNYXRjaEFueSkgJiYKKwkJCSAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNP TVBMRVRFX1dJVEgoIkVYQ0VQVCAoIFRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1B IiwgTWF0Y2hBbnksICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCBUQUJMRSIpOworCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAi VEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiKSkKKwkJQ09N UExFVEVfV0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCAiQ1VSUkVO VF9TQ0hFTUEiLCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9RVUVS WV9WRVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNfaW5fY3VycmVudF9zY2hlbWEpOwor CWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQi LCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFC TEUiKSkKKwl7CisJCXNldF9jb21wbGV0aW9uX3JlZmVyZW5jZShwcmV2NF93ZCk7CisJCUNPTVBM RVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVt YSk7CisJfQorCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwg IigiLCAiVEFCTEUiLCBNYXRjaEFueU4pICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJ Q09NUExFVEVfV0lUSCgiKSIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBTRVQgKCAq LwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksIE1h dGNoQW55TiwgIlNFVCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoInB1Ymxpc2giLCAicHVibGlz aF9nZW5lcmF0ZWRfY29sdW1ucyIsICJwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCIpOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBiYTAxYzcyMGQ0ZS4u M2M0NTIxMzliZjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 CkBAIC01NjQsMTIgKzU2NCw0MiBAQCBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRf bm9rdwogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9ub3BrIgogTElO RSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25v cGspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQ VCB0ZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhj ZXB0OworLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworRVJST1I6 ICByZWxhdGlvbiAicHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUiIGRvZXMgbm90IGV4aXN0Cist LSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBhIGRpZmZlcmVudCBzY2hlbWEKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CitFUlJPUjogIHRhYmxl ICJwdWJsaWMudGVzdHB1Yl90YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0 byBzY2hlbWEgInB1Yl90ZXN0IgorTElORSAxOiAuLi54Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXMuLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBmYWlsOiBU QUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUgZmlyc3QgZW50cnkgaW4gRVhDRVBUIGNs YXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGspOworRVJST1I6ICBzeW50YXgg ZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9ub3BrIgorTElORSAxOiAuLi5sdGVyX2V4Y2VwdCBB REQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm8uLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZpZWQgbmFtZXM7IHVucXVhbGlmaWVkIGlz IGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90YmxfczIpOworXGRScCsg dGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMg fCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAg ICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCitF eGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKyAgICAicHViX3Rl c3QudGVzdHB1Yl90YmxfczIiCisKIC0tIENsZWFudXAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CiBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMjsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOwog RFJPUCBUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOwotRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHVi X3NjaGVtYV9leGNlcHRfbXVsdGk7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4 Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0 aSwgdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIC0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDRiYzBlMmZmMjNkLi4yNDAxOTBhYTQxZiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMjc4LDEyICsyNzgsMzAgQEAgQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZXhjZXB0X25va3cKICAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTgor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CisKKy0tIGZhaWw6IG5vbi1leGlzdGluZyB0 YWJsZSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4 Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0 Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDogRVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8g YSBkaWZmZXJlbnQgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0 cHViX3RibDEpOworCistLSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUg Zmlyc3QgZW50cnkgaW4gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHVi X25vcGspOworCistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZpZWQgbmFtZXM7IHVucXVh bGlmaWVkIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90YmxfczIp OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MyOwogRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9z IENBU0NBREU7CiBEUk9QIFRBQkxFIHRlc3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczE7Ci1EUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9zY2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFf ZXhjZXB0X211bHRpLCB0ZXN0cHViX2FsdGVyX2V4Y2VwdDsKIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdp dGggU0VRVUVOQ0VTCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhj ZXB0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAppbmRleCAxOGM3 YjJjMWZjYS4uMGJhNmQ2ZjhiYjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzN19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5w bApAQCAtMzQ3LDYgKzM0NywzOCBAQCBpcygkcmVzdWx0LCBxcSg1KSwKICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOwog JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04g c2NoX3B1YicpOwogCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisjIEFMVEVSIFBVQkxJQ0FUSU9OIEVYQ0VQVCBmb3IgVEFCTEVTIElOIFNDSEVNQQorIyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFRydW5jYXRl IHN1YnNjcmliZXIgdGFibGVzIHRvIHJlbW92ZSBkYXRhIGFjY3VtdWxhdGVkIGZyb20gcHJldmlv dXMgdGVzdHMuCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwknVFJV TkNBVEUgc2NoMS50YWJfcHVibGlzaGVkLCBzY2gxLnRhYl9leGNsdWRlZCwgc2NoMS5wYXJlbnQs IHNjaDEuY2hpbGQnKTsKKworIyBBREQ6IGFkZCBhIHNjaGVtYSB3aXRoIGFuIGV4Y2VwdGVkIHRh YmxlOyB2ZXJpZnkgdGhlIGV4Y2VwdCBlbnRyeSB0YWtlcyBlZmZlY3QuCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFBVQkxJQ0FUSU9OIHNjaF9wdWIiKTsK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FU SU9OIHNjaF9wdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSBFWENFUFQgKFRBQkxFIHNjaDEu dGFiX2V4Y2x1ZGVkKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0 X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRy ZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIik7CitpcygkcmVzdWx0LCBxcSg2 KSwKKwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogaW5jbHVkZWQgdGFi bGUgc3luY2VkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIik7Citp cygkcmVzdWx0LCBxcSgwKSwKKwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQ VDogZXhjbHVkZWQgdGFibGUgbm90IHN5bmNlZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWIn KTsKKwogIyBDbGVhbnVwIHNjaGVtYSB0YWJsZXMgYmVmb3JlIHRoZSBtdWx0aS1wdWJsaWNhdGlv biBzZWN0aW9uLgogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag U0NIRU1BIHNjaDEgQ0FTQ0FERScpOwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUnKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0 LTE1NSkKCg== --00000000000058e5ae0654492956 Content-Type: application/octet-stream; name="v13-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Disposition: attachment; filename="v13-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqf4qd5o2 RnJvbSA2OTQ5Y2Y3NzMyM2MzMzE5Y2RkMTM0MDc0YjQ3MWQ4Njc1YjdkOWNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBNb24sIDE1IEp1biAyMDI2IDE2OjQ2OjEyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTMgMy8zXSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gU0VUIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgQWx0ZXJQdWJsaWNhdGlvbkV4Y2VwdFRhYmxlcygpIHdpdGgg dGhlIEFQX1NldE9iamVjdHMgY2FzZSwKd2hpY2ggcmVkZWZpbmVzIHRoZSBwdWJsaWNhdGlvbiBh bmQgcmVwbGFjZXMgdGhlIGVudGlyZSBFWENFUFQgbGlzdC4KClN5bnRheDoKQUxURVIgUFVCTElD QVRJT04gcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHMgRVhDRVBUIChUQUJMRSB0MSk7CgpUaGlz IHBhdGNoIGFsc28gY2xlYW5zIHVwIEVYQ0VQVCBlbnRyaWVzIHdoZW4gYSBzY2hlbWEgaXMgZHJv cHBlZApmcm9tIHRoZSBwdWJsaWNhdGlvbi4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwgICAgIHwgIDI3ICsrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jICAgICAgfCAxMzUgKysrKysrKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgfCAgMTAgKy0KIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgfCAgMTcgKysrCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgIHwgIDg2ICsrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgfCAgMzggKysrKysrCiBzcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsICAgICAgIHwgIDg1ICsrKysrKysrKysrKwog NyBmaWxlcyBjaGFuZ2VkLCAzNzEgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDhkOWQzNTczYmQ3Li40YmUw ODVlZjFiMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtOTcs NyArOTcsMTEgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgIHVzZWQgd2l0aCBhIHB1Ymxp Y2F0aW9uIGRlZmluZWQgd2l0aCA8bGl0ZXJhbD5GT1IgVEFCTEU8L2xpdGVyYWw+IG9yCiAgICA8 bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIHJlcGxhY2VzIHRoZSBsaXN0 IG9mIHRhYmxlcy9zY2hlbWFzCiAgICBpbiB0aGUgcHVibGljYXRpb24gd2l0aCB0aGUgc3BlY2lm aWVkIGxpc3Q7IHRoZSBleGlzdGluZyB0YWJsZXMgb3Igc2NoZW1hcwotICAgdGhhdCB3ZXJlIHBy ZXNlbnQgaW4gdGhlIHB1YmxpY2F0aW9uIHdpbGwgYmUgcmVtb3ZlZC4KKyAgIHRoYXQgd2VyZSBw cmVzZW50IGluIHRoZSBwdWJsaWNhdGlvbiB3aWxsIGJlIHJlbW92ZWQuICBXaGVuCisgICA8bGl0 ZXJhbD5TRVQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gaXMgdXNlZCB3aXRoIGFuCisgICA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSwgdGhlIGV4Y2x1ZGVkIHRhYmxlcyBmb3Ig ZWFjaCBzY2hlbWEgYXJlCisgICByZXBsYWNlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbGlzdDsgaWYg PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBpcyBvbWl0dGVkCisgICBmb3IgYSBzY2hlbWEsIGFu eSBleGlzdGluZyBleGNsdXNpb25zIGZvciB0aGF0IHNjaGVtYSBhcmUgY2xlYXJlZC4KICAgPC9w YXJhPgogCiAgIDxwYXJhPgpAQCAtMTE2LDEwICsxMjAsOCBAQCBBTFRFUiBQVUJMSUNBVElPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBU TyA8cgogCiAgIDxwYXJhPgogICAgVGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNl IGNhbiBiZSB1c2VkIHdpdGgKLSAgIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9saXRl cmFsPiB0byBleGNsdWRlIHNwZWNpZmljIHRhYmxlcyBmcm9tIHRoZQotICAgcHVibGljYXRpb24u IFVzaW5nIDxsaXRlcmFsPkRST1AgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gb24gYSBwdWJs aWNhdGlvbgotICAgd2lsbCBhdXRvbWF0aWNhbGx5IGFsc28gcmVtb3ZlIGFueSBhc3NvY2lhdGVk IDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4KLSAgIGVudHJpZXMuCisgICA8bGl0ZXJhbD5BREQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gZXhjbHVkZSBzcGVjaWZpYyB0YWJsZXMgZnJv bSBhCisgICBzY2hlbWEtbGV2ZWwgcHVibGljYXRpb24uCiAgIDwvcGFyYT4KIAogICA8cGFyYT4K QEAgLTIxNCw3ICsyMTYsOCBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICAgIDx0ZXJtPjxs aXRlcmFsPkVYQ0VQVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNlcHRfdGFi bGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAg PGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFdoZW4gdXNlZCB3aXRoIDxsaXRlcmFsPkFE RCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwgc3BlY2lmaWVzCisgICAgICBXaGVuIHVzZWQg d2l0aCA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4KKyAgICAgIG9yIDxs aXRlcmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwgc3BlY2lmaWVzCiAgICAgICB0 YWJsZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24uICBFYWNoIG5hbWVkCiAg ICAgICB0YWJsZSBtdXN0IGJlbG9uZyB0byB0aGUgc2NoZW1hIHNwZWNpZmllZCBpbiB0aGUgc2Ft ZQogICAgICAgPGxpdGVyYWw+VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gY2xhdXNlLiAgVGFi bGUgbmFtZXMgbWF5IGJlCkBAIC0zMzgsNiArMzQxLDE4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNh bGVzX3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQVCAoVEFCTEUg aW50CiA8L3Byb2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBSZXBsYWNl IHRoZSBzY2hlbWEgbGlzdCBvZiA8c3RydWN0bmFtZT5zYWxlc19wdWJsaWNhdGlvbjwvc3RydWN0 bmFtZT4gd2l0aAorICAgPHN0cnVjdG5hbWU+c2FsZXM8L3N0cnVjdG5hbWU+LCBleGNsdWRpbmcg b25seQorICAgPHN0cnVjdG5hbWU+c2FsZXMuZHJhZnRzPC9zdHJ1Y3RuYW1lPi4gT3RoZXIgdGhh bgorICAgPHN0cnVjdG5hbWU+c2FsZXMuZHJhZnRzPC9zdHJ1Y3RuYW1lPiwgYW55IHByZXZpb3Vz bHkgZXhjbHVkZWQgdGFibGVzIGZvciBzY2hlbWEKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1 Y3RuYW1lPiBhcmUgbm8gbG9uZ2VyIGV4Y2x1ZGVkLiBBbnkgc2NoZW1hcyBwcmV2aW91c2x5IGlu CisgICA8c3RydWN0bmFtZT5zYWxlc19wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT4gYXJlIHJlbW92 ZWQ6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlv biBTRVQgVEFCTEVTIElOIFNDSEVNQSBzYWxlcyBFWENFUFQgKFRBQkxFIGRyYWZ0cyk7Cis8L3By b2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBBZGQgdGFibGVzIDxzdHJ1 Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiwKICAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9z dHJ1Y3RuYW1lPiBhbmQgc2NoZW1hCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5j CmluZGV4IDY5M2EwZTNlMDYwLi41MzE0OTNhMTUxNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMKQEAgLTE1ODgsOCArMTU4OCw4IEBAIEFsdGVyUHVibGljYXRpb25TY2hl bWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCiAJLyoKIAkgKiBJbmNyZW1lbnQgdGhl IGNvbW1hbmQgY291bnRlciBzbyB0aGF0IGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIGluCi0JICog R2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcygpIGNhbiBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQg c2NoZW1hCi0JICogcm93cyB3aGVuIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMg cnVucyBuZXh0LgorCSAqIEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMoKSBjYW4gc2VlIHRo ZSBqdXN0LWluc2VydGVkIHNjaGVtYSByb3dzCisJICogd2hlbiBBbHRlclB1YmxpY2F0aW9uU2No ZW1hRXhjZXB0VGFibGVzIHJ1bnMgbmV4dC4KIAkgKi8KIAlpZiAoc3RtdC0+YWN0aW9uID09IEFQ X0FkZE9iamVjdHMgfHwgc3RtdC0+YWN0aW9uID09IEFQX1NldE9iamVjdHMpCiAJCUNvbW1hbmRD b3VudGVySW5jcmVtZW50KCk7CkBAIC0xNjA3LDE2ICsxNjA3LDE4IEBAIEFsdGVyUHVibGljYXRp b25TY2hlbWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogICovCiBzdGF0aWMgdm9pZAog QWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAq c3RtdCwKLQkJCQkJCQkgSGVhcFR1cGxlIHR1cCwgTGlzdCAqZXhjZXB0X3B1YnRhYmxlcywKLQkJ CQkJCQkgTGlzdCAqc2NoZW1haWRsaXN0KQorCQkJCQkJCQkgICBIZWFwVHVwbGUgdHVwLCBMaXN0 ICpleGNlcHRfcHVidGFibGVzLAorCQkJCQkJCQkgICBMaXN0ICpzY2hlbWFpZGxpc3QpCiB7CiAJ Rm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNU UlVDVCh0dXApOwogCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwogCiAJLyoKLQkgKiBOb3Ro aW5nIHRvIGRvIGlmIG5vIEVYQ0VQVCBlbnRyaWVzLgorCSAqIE5vdGhpbmcgdG8gZG8gaWYgdGhl cmUgYXJlIG5vIEVYQ0VQVCBlbnRyaWVzLCB1bmxlc3MgaGFuZGxpbmcgdGhlIFNFVAorCSAqIGNv bW1hbmQsIGJlY2F1c2UgaWYgdGhlIHVzZXIgaGFzIHJlbW92ZWQgYWxsIGV4Y2VwdGlvbnMgd2Ug bmVlZCB0byBkcm9wCisJICogYW55IGV4aXN0aW5nIG9uZXMuCiAJICovCi0JaWYgKCFleGNlcHRf cHVidGFibGVzKQorCWlmICghZXhjZXB0X3B1YnRhYmxlcyAmJiBzdG10LT5hY3Rpb24gIT0gQVBf U2V0T2JqZWN0cykKIAkJcmV0dXJuOwogCiAJLyoKQEAgLTE2MzcsMTYgKzE2MzksNiBAQCBBbHRl clB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10 LAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJy bXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBEUk9QIGluIEFMVEVSIFBV QkxJQ0FUSU9OIikpKTsKIAotCS8qCi0JICogWFhYIEVYQ0VQVCB3aXRoIFNFVCBpcyBub3QgY3Vy cmVudGx5IGltcGxlbWVudGVkLiAgV29ya2Fyb3VuZDogRFJPUCBhbmQKLQkgKiByZS1BREQgdGhl IHNjaGVtYSB3aXRoIHRoZSBkZXNpcmVkIEVYQ0VQVCBsaXN0LgotCSAqLwotCWlmIChzdG10LT5h Y3Rpb24gPT0gQVBfU2V0T2JqZWN0cykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygiRVhDRVBUIGNsYXVz ZSBpcyBub3Qgc3VwcG9ydGVkIHdpdGggU0VUIGluIEFMVEVSIFBVQkxJQ0FUSU9OIiksCi0JCQkJ IGVycmhpbnQoIkRyb3AgYW5kIHJlLWFkZCB0aGUgc2NoZW1hIHdpdGggdGhlIGRlc2lyZWQgRVhD RVBUIGxpc3QuIikpKTsKLQogCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cykKIAl7 CiAJCUxpc3QJICAgKnJlbHM7CkBAIC0xNjc0LDYgKzE2NjYsODQgQEAgQWx0ZXJQdWJsaWNhdGlv blNjaGVtYUV4Y2VwdFRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAogCQlQdWJs aWNhdGlvbkFkZFRhYmxlcyhwdWJpZCwgcmVscywgZmFsc2UsIHN0bXQpOwogCisJCUNsb3NlVGFi bGVMaXN0KHJlbHMpOworCX0KKwllbHNlCQkJCQkJLyogQVBfU2V0T2JqZWN0cyAqLworCXsKKwkJ TGlzdAkgICAqb2xkZXhjZXB0cmVsaWRzID0gTklMOworCQlMaXN0CSAgICpuZXdleGNlcHRyZWxp ZHMgPSBOSUw7CisJCUxpc3QJICAgKmRlbHJlbGlkcyA9IE5JTDsKKwkJTGlzdAkgICAqcmVsczsK KwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHM7CisKKwkJcmVscyA9IE9wZW5UYWJsZUxpc3QoZXhj ZXB0X3B1YnRhYmxlcyk7CisKKwkJLyogQ29sbGVjdCBPSURzIG9mIHRoZSBkZXNpcmVkIG5ldyBF WENFUFQgbGlzdC4gKi8KKwkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25SZWxJbmZvLCBwcmksIHJl bHMpCisJCQluZXdleGNlcHRyZWxpZHMgPSBsYXBwZW5kX29pZChuZXdleGNlcHRyZWxpZHMsCisJ CQkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGlkKHByaS0+cmVsYXRpb24pKTsKKworCQlleHBsaWNp dHJlbGlkcyA9IEdldEluY2x1ZGVkUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCisJCQkJCQkJ CQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJCS8qCisJCSAqIFZhbGlkYXRlIHRo YXQgZWFjaCBleGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBpbiB0aGUgZXhwbGljaXQgdGFibGUK KwkJICogbGlzdCAod2hpY2ggd291bGQgYmUgY29udHJhZGljdG9yeSkuCisJCSAqLworCQlmb3Jl YWNoX3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVscykKKwkJeworCQkJT2lkCQkJcmVs aWQgPSBSZWxhdGlvbkdldFJlbGlkKHByaS0+cmVsYXRpb24pOworCisJCQlpZiAobGlzdF9tZW1i ZXJfb2lkKGV4cGxpY2l0cmVsaWRzLCByZWxpZCkpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQllcnJtc2co InRhYmxlIFwiJXNcIiBjYW5ub3QgYXBwZWFyIGluIGJvdGggdGhlIHRhYmxlIGxpc3QgYW5kIHRo ZSBFWENFUFQgY2xhdXNlIiwKKwkJCQkJCQkgICBSZWxhdGlvbkdldFF1YWxpZmllZFJlbGF0aW9u TmFtZShwcmktPnJlbGF0aW9uKSkpOworCQl9CisKKwkJLyoKKwkJICogR2V0IHRoZSBjdXJyZW50 IHNldCBvZiBFWENFUFQgZW50cmllcy4gIE9ubHkgRk9SIEFMTCBUQUJMRVMgYW5kCisJCSAqIHNj aGVtYS1sZXZlbCBwdWJsaWNhdGlvbnMgY2FuIGhhdmUgRVhDRVBUIGVudHJpZXM7IGZvciBhbnkg b3RoZXIKKwkJICogcHVibGljYXRpb24gdHlwZSBvbGRleGNlcHRyZWxpZHMgc3RheXMgTklMLgor CQkgKgorCQkgKiBOb3RlOiB3ZSBjaGVjayBpc19zY2hlbWFfcHVibGljYXRpb24oKSBhZ2FpbnN0 IHRoZSBjdXJyZW50IGNhdGFsb2cKKwkJICogc3RhdGUgKGJlZm9yZSBBbHRlclB1YmxpY2F0aW9u U2NoZW1hcyBoYXMgcnVuKSwgc28gaWYgdGhlIGNhbGxlciBpcworCQkgKiBkb2luZyBTRVQgVEFC TEUgdDEgdG8gY29udmVydCBhIHNjaGVtYSBwdWJsaWNhdGlvbiBpbnRvIGEgcGxhaW4KKwkJICog dGFibGUgcHVibGljYXRpb24sIGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIHN0aWxsIHJldHVybnMg dHJ1ZSBoZXJlLgorCQkgKiBUaGF0IGlzIGludGVudGlvbmFsOiBpdCBsZXRzIHVzIGRpc2NvdmVy IGFuZCBjbGVhbiB1cCBhbnkgc3RhbGUKKwkJICogRVhDRVBUIGVudHJpZXMgdGhhdCBiZWxvbmcg dG8gdGhlIG9sZCBzY2hlbWEgZGVmaW5pdGlvbi4KKwkJICovCisJCWlmIChHZXRQdWJsaWNhdGlv bihwdWJpZCktPmFsbHRhYmxlcyB8fCBpc19zY2hlbWFfcHVibGljYXRpb24ocHViaWQpKQorCQkJ b2xkZXhjZXB0cmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhwdWJpZCwKKwkJ CQkJCQkJCQkJCQkJICAgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKworCQkvKiBCdWlsZCBhIGxp c3Qgb2Ygb2xkIEVYQ0VQVCBlbnRyaWVzIG5vdCBwcmVzZW50IGluIHRoZSBuZXcgbGlzdC4gKi8K KwkJZm9yZWFjaF9vaWQob2xkcmVsaWQsIG9sZGV4Y2VwdHJlbGlkcykKKwkJeworCQkJaWYgKCFs aXN0X21lbWJlcl9vaWQobmV3ZXhjZXB0cmVsaWRzLCBvbGRyZWxpZCkpCisJCQkJZGVscmVsaWRz ID0gbGFwcGVuZF9vaWQoZGVscmVsaWRzLCBvbGRyZWxpZCk7CisJCX0KKworCQkvKiBEcm9wIG9s ZCBFWENFUFQgZW50cmllcyBub3QgcHJlc2VudCBpbiB0aGUgbmV3IGxpc3QuICovCisJCWZvcmVh Y2hfb2lkKHJlbGlkLCBkZWxyZWxpZHMpCisJCXsKKwkJCU9pZAkJCXByb2lkOworCQkJT2JqZWN0 QWRkcmVzcyBvYmo7CisKKwkJCXByb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVM TUFQLAorCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJCQkJCQkJT2Jq ZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7 CisJCQlpZiAoT2lkSXNWYWxpZChwcm9pZCkpCisJCQl7CisJCQkJT2JqZWN0QWRkcmVzc1NldChv YmosIFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCwgcHJvaWQpOworCQkJCXBlcmZvcm1EZWxldGlv bigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCQkJfQorCQl9CisKKwkJLyogQWRkIG5ldyBFWENF UFQgZW50cmllcywgc2tpcHBpbmcgYW55IGFscmVhZHkgcHJlc2VudC4gKi8KKwkJUHVibGljYXRp b25BZGRUYWJsZXMocHViaWQsIHJlbHMsIHRydWUsIHN0bXQpOworCiAJCUNsb3NlVGFibGVMaXN0 KHJlbHMpOwogCX0KIH0KQEAgLTIzNzIsNiArMjQ0Miw3IEBAIFB1YmxpY2F0aW9uRHJvcFNjaGVt YXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIG1pc3Npbmdfb2spCiAJZm9yZWFjaChs Yywgc2NoZW1hcykKIAl7CiAJCU9pZAkJCXNjaGVtYWlkID0gbGZpcnN0X29pZChsYyk7CisJCUxp c3QJICAgKmV4Y2VwdF9yZWxpZHM7CiAKIAkJcHNpZCA9IEdldFN5c0NhY2hlT2lkMihQVUJMSUNB VElPTk5BTUVTUEFDRU1BUCwKIAkJCQkJCQkgICBBbnVtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFj ZV9vaWQsCkBAIC0yMzg4LDggKzI0NTksNDAgQEAgUHVibGljYXRpb25Ecm9wU2NoZW1hcyhPaWQg cHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQlnZXRfbmFtZXNw YWNlX25hbWUoc2NoZW1haWQpKSkpOwogCQl9CiAKKwkJLyoKKwkJICogQ29sbGVjdCBFWENFUFQg ZW50cmllcyBmb3IgdGFibGVzIGJlbG9uZ2luZyB0byB0aGlzIHNjaGVtYSBiZWZvcmUKKwkJICog cmVtb3ZpbmcgdGhlIHNjaGVtYSBlbnRyeS4KKwkJICovCisJCWV4Y2VwdF9yZWxpZHMgPSBHZXRF eGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOwor CiAJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvbk5hbWVzcGFjZVJlbGF0aW9uSWQs IHBzaWQpOwogCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKworCQkv KgorCQkgKiBEcm9wIGFueSBwcmV4Y2VwdCByb3dzIGZvciB0YWJsZXMgYmVsb25naW5nIHRvIHRo aXMgc2NoZW1hLiBUaGVzZQorCQkgKiByb3dzIGhhdmUgbm8gcGdfZGVwZW5kIGVudHJ5IHBvaW50 aW5nIGF0IHRoZQorCQkgKiBwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Ugcm93LCBzbyB0aGV5IGFy ZSBub3QgY2FzY2FkZWQgYnkgdGhlCisJCSAqIHBlcmZvcm1EZWxldGlvbigpIGNhbGwgYWJvdmUg YW5kIG11c3QgYmUgY2xlYW5lZCB1cCBleHBsaWNpdGx5LgorCQkgKi8KKwkJZm9yZWFjaF9vaWQo cmVsaWQsIGV4Y2VwdF9yZWxpZHMpCisJCXsKKwkJCU9pZAkJCXByb2lkOworCisJCQlpZiAoZ2V0 X3JlbF9uYW1lc3BhY2UocmVsaWQpICE9IHNjaGVtYWlkKQorCQkJCWNvbnRpbnVlOworCisJCQlw cm9pZCA9IEdldFN5c0NhY2hlT2lkMihQVUJMSUNBVElPTlJFTE1BUCwKKwkJCQkJCQkJCUFudW1f cGdfcHVibGljYXRpb25fcmVsX29pZCwKKwkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQp LAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQkJaWYgKE9pZElzVmFsaWQo cHJvaWQpKQorCQkJeworCQkJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJl bGF0aW9uSWQsIHByb2lkKTsKKwkJCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURF LCAwKTsKKwkJCX0KKwkJfQorCisJCWxpc3RfZnJlZShleGNlcHRfcmVsaWRzKTsKIAl9CiB9CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDdlZTg0 ZWMxYzgzLi45ODMxYmU1NGI0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1 dC9wZ291dHB1dC5jCkBAIC0yMjI5LDcgKzIyMjksNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCSAqLwogCQkJaWYgKHB1Yi0+ YWxsdGFibGVzKQogCQkJewotCQkJCUxpc3QJICAgKmV4Y2VwdHB1YmlkcyA9IE5JTDsKKwkJCQlM aXN0CSAgICpleGNlcHRfcHViaWRzID0gTklMOwogCiAJCQkJaWYgKGFtX3BhcnRpdGlvbikKIAkJ CQl7CkBAIC0yMjUyLDcgKzIyNTIsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRh ICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCQkJICogY2xhdXNlLiBUaGVyZWZvcmUsIGZv ciBhIHBhcnRpdGlvbiwgZXhjbHVzaW9uIG11c3QgYmUKIAkJCQkJICogZXZhbHVhdGVkIGF0IHRo ZSB0b3AtbW9zdCBhbmNlc3Rvci4KIAkJCQkJICovCi0JCQkJCWV4Y2VwdHB1YmlkcyA9IEdldFJl bGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMobGFzdF9hbmNlc3Rvcl9yZWxpZCk7CisJCQkJCWV4 Y2VwdF9wdWJpZHMgPSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKGxhc3RfYW5jZXN0 b3JfcmVsaWQpOwogCQkJCX0KIAkJCQllbHNlCiAJCQkJewpAQCAtMjI2MCwxMyArMjI2MCwxMyBA QCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlv bikKIAkJCQkJICogRm9yIGEgcmVndWxhciB0YWJsZSBvciBhIHJvb3QgcGFydGl0aW9uZWQgdGFi bGUsIGNoZWNrCiAJCQkJCSAqIGV4Y2x1c2lvbiBvbiB0YWJsZSBpdHNlbGYuCiAJCQkJCSAqLwot CQkJCQlleGNlcHRwdWJpZHMgPSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKHB1Yl9y ZWxpZCk7CisJCQkJCWV4Y2VwdF9wdWJpZHMgPSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRp b25zKHB1Yl9yZWxpZCk7CiAJCQkJfQogCi0JCQkJaWYgKCFsaXN0X21lbWJlcl9vaWQoZXhjZXB0 cHViaWRzLCBwdWItPm9pZCkpCisJCQkJaWYgKCFsaXN0X21lbWJlcl9vaWQoZXhjZXB0X3B1Ymlk cywgcHViLT5vaWQpKQogCQkJCQlwdWJsaXNoID0gdHJ1ZTsKIAotCQkJCWxpc3RfZnJlZShleGNl cHRwdWJpZHMpOworCQkJCWxpc3RfZnJlZShleGNlcHRfcHViaWRzKTsKIAogCQkJCWlmICghcHVi bGlzaCkKIAkJCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggYTI5MDkwMmQ2 MWUuLmU4YmZiMzZjYjFjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzkwLDYgKzIzOTAs MjMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJfQogCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVT IiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiLCBNYXRj aEFueU4pICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVfV0lUSCgiKSIp OworCS8qIEFmdGVyIGEgc2luZ2xlIHNjaGVtYSBuYW1lIGluIFNFVCBjb250ZXh0LCBvZmZlciBF WENFUFQgKCBUQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJTRVQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55KSAm JgorCQkJICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBU ICggVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQ VCIpKQorCQlDT01QTEVURV9XSVRIKCIoIFRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAiU0NI RU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIpKQorCQlDT01QTEVURV9XSVRIKCJUQUJMRSIp OworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJT RVQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsICJDVVJSRU5UX1NDSEVNQSIsICJFWENFUFQi LCAiKCIsICJUQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElNKFF1ZXJ5X2Zv cl9saXN0X29mX3RhYmxlc19pbl9jdXJyZW50X3NjaGVtYSk7CisJZWxzZSBpZiAoTWF0Y2hlcygi QUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAi U0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIpKQorCXsKKwkJc2V0X2Nv bXBsZXRpb25fcmVmZXJlbmNlKHByZXY0X3dkKTsKKwkJQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJC QVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNfaW5fc2NoZW1hKTsKKwl9CisJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMi LCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1hdGNo QW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCIpIik7 CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IFNFVCAoICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwgIigi KSkKIAkJQ09NUExFVEVfV0lUSCgicHVibGlzaCIsICJwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z IiwgInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290Iik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDNjNDUyMTM5YmY5Li5mN2YzOTRhMzViZiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTU5NCw2ICs1OTQsOTIg QEAgRXhjZXB0IHRhYmxlczoKICAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCiAgICAgInB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIgogCistLSBTRVQ6IHJlcGxhY2UgdGhlIGV4Y2VwdCBsaXN0 IChrZWVwIHNhbWUgc2NoZW1hLCBkaWZmZXJlbnQgZXhjZXB0IHRhYmxlKQorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qg RVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMik7CitcZFJwKyB0ZXN0cHViX2Fs dGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290 IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAg ICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0YWJs ZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIgorCistLSBmYWlsOiB0YWJsZSBpbiBF WENFUFQgY2xhdXNlIGFsc28gYXBwZWFycyBpbiB0aGUgZXhwbGljaXQgdGFibGUgbGlzdAorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl90YmxfczEpOworRVJST1I6ICB0YWJsZSAicHViX3Rlc3QudGVzdHB1Yl90 YmxfczEiIGNhbm5vdCBhcHBlYXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQ VCBjbGF1c2UKKy0tIGVycm9yOiBleGNlcHQgdGFibGUncyBzY2hlbWEgKHB1YmxpYykgbm90IGlu IHRoZSBwdWJsaWNhdGlvbidzIHNjaGVtYSBsaXN0IChwdWJfdGVzdCkKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVY Q0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CitFUlJPUjogIHRhYmxlICJwdWJsaWMu dGVzdHB1Yl90YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEg InB1Yl90ZXN0IgorTElORSAxOiAuLi54Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXMuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBTRVQ6IHVucXVhbGlmaWVk IG5hbWUgaW4gRVhDRVBUIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHVi X2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSBy b290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYg ICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0 YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorCistLSBTRVQgd2l0aG91dCBF WENFUFQgY2xlYXJzIHRoZSBleGlzdGluZyBleGNlcHQgbGlzdAorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJw KyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0ZXJfZXhjZXB0Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAg ICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIK KworLS0gU0VUIHRvIGEgZGlmZmVyZW50IHNjaGVtYSByZW1vdmVzIG9sZCBzY2hlbWEncyBFWENF UFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibF9zMSk7CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVN QSBwdWJsaWM7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFs bCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBH ZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgor ICAgICJwdWJsaWMiCisKKy0tIGZhaWw6IG5vbmV4aXN0ZW50IHRhYmxlIGluIEVYQ0VQVCBjbGF1 c2UgKFNFVCBwYXRoKQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VU IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5ub25leGlz dGVudF90YWJsZSk7CitFUlJPUjogIHJlbGF0aW9uICJwdWJfdGVzdC5ub25leGlzdGVudF90YWJs ZSIgZG9lcyBub3QgZXhpc3QKKy0tIFNFVDogbXVsdGlwbGUgc2NoZW1hcyBlYWNoIHdpdGggdGhl aXIgb3duIEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhj ZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBFWENFUFQgKFRBQkxFIHRlc3Rw dWJfdGJsMSk7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFs bCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBH ZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgor ICAgICJwdWJfdGVzdCIKKyAgICAicHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rl c3QudGVzdHB1Yl90YmxfczEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKKy0tIGVycm9y OiBFWENFUFQgaXMgbm90IGFsbG93ZWQgd2l0aCBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMik7CitFUlJPUjogIEVYQ0VQVCBjbGF1c2UgaXMg bm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVCTElDQVRJT04KKy0tIERST1AgVEFC TEVTIElOIFNDSEVNQSByZW1vdmVzIGFzc29jaWF0ZWQgRVhDRVBUIGVudHJpZXMKK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdDsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRl cl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNl cXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVy YXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5v bmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAg InB1YmxpYyIKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKIC0t IENsZWFudXAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHB1Yl90ZXN0 LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9zMjsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3B1YmxpY2F0aW9uLnNxbAppbmRleCAyNDAxOTBhYTQxZi4uMzY3NDQzN2VkNTAgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTI5Niw2ICsyOTYsNDQgQEAgQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QgRVhDRVBUICh0ZXMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFE RCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1 Yl90YmxfczEsIHRlc3RwdWJfdGJsX3MyKTsKIFxkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CiAK Ky0tIFNFVDogcmVwbGFjZSB0aGUgZXhjZXB0IGxpc3QgKGtlZXAgc2FtZSBzY2hlbWEsIGRpZmZl cmVudCBleGNlcHQgdGFibGUpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisKKy0tIGZhaWw6IHRh YmxlIGluIEVYQ0VQVCBjbGF1c2UgYWxzbyBhcHBlYXJzIGluIHRoZSBleHBsaWNpdCB0YWJsZSBs aXN0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl90YmxfczEsIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CisKKy0tIGVycm9yOiBleGNlcHQgdGFibGUn cyBzY2hlbWEgKHB1YmxpYykgbm90IGluIHRoZSBwdWJsaWNhdGlvbidzIHNjaGVtYSBsaXN0IChw dWJfdGVzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7 CisKKy0tIFNFVDogdW5xdWFsaWZpZWQgbmFtZSBpbiBFWENFUFQgaXMgaW1wbGljaXRseSBxdWFs aWZpZWQgd2l0aCB0aGUgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4 Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJf dGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisKKy0tIFNFVCB3aXRob3V0IEVY Q0VQVCBjbGVhcnMgdGhlIGV4aXN0aW5nIGV4Y2VwdCBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnAr IHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisKKy0tIFNFVCB0byBhIGRpZmZlcmVudCBzY2hlbWEgcmVt b3ZlcyBvbGQgc2NoZW1hJ3MgRVhDRVBUIGVudHJpZXMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFC TEUgdGVzdHB1Yl90YmxfczEpOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNl cHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNl cHQKKworLS0gZmFpbDogbm9uZXhpc3RlbnQgdGFibGUgaW4gRVhDRVBUIGNsYXVzZSAoU0VUIHBh dGgpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElO IFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxl KTsKKworLS0gU0VUOiBtdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhDRVBU IGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9z MSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsKK1xk UnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisKKy0tIGVycm9yOiBFWENFUFQgaXMgbm90IGFsbG93 ZWQgd2l0aCBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBEUk9Q IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMik7CisKKy0tIERST1AgVEFCTEVTIElOIFNDSEVNQSByZW1vdmVzIGFzc29jaWF0ZWQg RVhDRVBUIGVudHJpZXMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERS T1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 CisKIC0tIENsZWFudXAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9zMjsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgYi9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCmluZGV4IDBiYTZkNmY4YmIyLi4wMWVhZmI1YjdjOCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAorKysgYi9z cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCkBAIC0zNzYsNiArMzc2LDYxIEBA ICRyZXN1bHQgPQogaXMoJHJlc3VsdCwgcXEoMCksCiAJJ0FMVEVSIC4uLiBBREQgVEFCTEVTIElO IFNDSEVNQSBFWENFUFQ6IGV4Y2x1ZGVkIHRhYmxlIG5vdCBzeW5jZWQnKTsKIAorIyBTRVQ6IHJl cGxhY2UgdGhlIGV4Y2VwdCBsaXN0OyB0YWJfZXhjbHVkZWQgaXMgbm93IGluY2x1ZGVkIGFuZCB0 YWJfcHVibGlzaGVkIGlzIGV4Y2x1ZGVkLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gc2NoX3B1YiBTRVQgVEFCTEVTIElOIFNDSEVN QSBzY2gxIEVYQ0VQVCAoVEFCTEUgc2NoMS50YWJfcHVibGlzaGVkKSIKKyk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHNjaF9z dWIgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vi c2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAnc2NoX3N1YicpOworCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlJTlNFUlQgSU5UTyBzY2gxLnRh Yl9wdWJsaXNoZWQgVkFMVUVTICg3KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9leGNsdWRlZCBW QUxVRVMgKDcpOworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3NjaF9z dWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9leGNsdWRlZCBXSEVSRSBhID0g NyIpOworaXMoJHJlc3VsdCwgcXEoMSksCisJJ0FMVEVSIC4uLiBTRVQgVEFCTEVTIElOIFNDSEVN QSBFWENFUFQ6IG5ld2x5IGluY2x1ZGVkIHRhYmxlIGlzIHJlcGxpY2F0ZWQnCispOworJHJlc3Vs dCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qg Y291bnQoKikgRlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQgV0hFUkUgYSA9IDciKTsKK2lzKCRyZXN1 bHQsIHFxKDApLAorCSdBTFRFUiAuLi4gU0VUIFRBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBub3ct ZXhjbHVkZWQgdGFibGUgaXMgbm90IHJlcGxpY2F0ZWQnCispOworCisjIFNFVCB3aXRob3V0IEVY Q0VQVDogY2xlYXJzIHRoZSBleGNlcHQgbGlzdDsgYm90aCB0YWJsZXMgYXJlIG5vdyBwdWJsaXNo ZWQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJM SUNBVElPTiBzY2hfcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc2NoX3N1 YiBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJz Y3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHNjaDEudGFi X3B1Ymxpc2hlZCBWQUxVRVMgKDgpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiX2V4Y2x1ZGVkIFZB TFVFUyAoOCk7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1 YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX3B1Ymxpc2hlZCBXSEVSRSBhID0g OCIpOworaXMoJHJlc3VsdCwgcXEoMSksCisJJ0FMVEVSIC4uLiBTRVQgVEFCTEVTIElOIFNDSEVN QSAobm8gRVhDRVBUKTogdGFiX3B1Ymxpc2hlZCByZXBsaWNhdGVkIGFmdGVyIGV4Y2VwdCBsaXN0 IGNsZWFyZWQnCispOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9leGNsdWRlZCBXSEVS RSBhID0gOCIpOworaXMoJHJlc3VsdCwgcXEoMSksCisJJ0FMVEVSIC4uLiBTRVQgVEFCTEVTIElO IFNDSEVNQSAobm8gRVhDRVBUKTogdGFiX2V4Y2x1ZGVkIHJlcGxpY2F0ZWQgYWZ0ZXIgZXhjZXB0 IGxpc3QgY2xlYXJlZCcKKyk7CisKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2NoX3B1YicpOwogCkBAIC00NDMs NiArNDk4LDM2IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJP UCBTVUJTQ1JJUFRJT04gdGFwX3N1YicpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gdGFwX3B1YjEnKTsKICRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIyJyk7CiAKKyMg T0sgd2hlbiBhIHRhYmxlIGlzIGV4Y2x1ZGVkIGJ5IGEgVEFCTEVTIElOIFNDSEVNQSBFWENFUFQg cHVibGljYXRpb24sCisjIGJ1dCBpcyBpbmNsdWRlZCBieSBhbm90aGVyIHB1YmxpY2F0aW9uLgor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1RSVU5DQVRFIHRhYjEnKTsK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnVFJVTkNBVEUgdGFiMScp OworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVB VEUgUFVCTElDQVRJT04gdGFwX3B1YjEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljIEVYQ0VQ VCAoVEFCTEUgcHVibGljLnRhYjEpOworCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViMiBGT1Ig VEFCTEUgdGFiMTsKKwlJTlNFUlQgSU5UTyB0YWIxIFZBTFVFUygxKTsKKykpOworJG5vZGVfc3Vi c2NyaWJlci0+cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWIg Q09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0YXBfcHViMSwgdGFw X3B1YjIiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMo JG5vZGVfcHVibGlzaGVyLCAndGFwX3N1YicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCBxcShJTlNFUlQgSU5UTyB0YWIxIFZBTFVFUygyKSkpOworJG5vZGVfcHVi bGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSBP UkRFUiBCWSBhIik7CitpcyggJHJlc3VsdCwgcXEoMQorMiksCisJIlRBQkxFUyBJTiBTQ0hFTUEg RVhDRVBUOiB0YWJsZSBleGNsdWRlZCBpbiBzY2hlbWEgcHViIGJ1dCBpbmNsdWRlZCBieSBhbm90 aGVyIHB1YiBpcyByZXBsaWNhdGVkIgorKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViJyk7Ciskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMScpOwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04g dGFwX3B1YjInKTsKKwogJG5vZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7CiAKIGRvbmVfdGVz dGluZygpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --00000000000058e5ae0654492956--