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 1wSYuv-003GEL-0V for pgsql-hackers@arkaria.postgresql.org; Thu, 28 May 2026 11:28:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSYut-00BkCG-0L for pgsql-hackers@arkaria.postgresql.org; Thu, 28 May 2026 11:28:48 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wSYus-00BkC0-26 for pgsql-hackers@lists.postgresql.org; Thu, 28 May 2026 11:28:47 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wSYur-00000001qZN-1Ku6 for pgsql-hackers@lists.postgresql.org; Thu, 28 May 2026 11:28:47 +0000 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-5a88de2b52eso15369823e87.2 for ; Thu, 28 May 2026 04:28:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779967724; cv=none; d=google.com; s=arc-20240605; b=CIXm7ehy96i0l82aJxws/UzVgE4bXzTEVez8GMbQ1PlZqT7gYERhoZ8f1tubEnsCLh hIsnjS7x0O+zsJmUg32/18eF5pnbuaBQco+RP8ywwxSmYZhfqDlz9SZ7WA1xdwAwCsX3 dkcFcYXFMxVDxX73ZZ0c68vBVcbr7anS0iuQmNp3vx3HOR8ykkjiRPOITK4LUqmqvvyE MGloXKE1sxN0A65P4LCZmCQQXEuIVqpFD7zFj3L8nQsBEzUAzIW/KWin/pOlJrjM/PFj tDz6eURTF5HjdCjt+qD5xO2jC4Q/QpQsqqsnMrqCnN6NhjoDAe52QiO1KyBBbw0cvLU8 97hA== 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=8VfuvqO+30diazriPESJ+uPe3jY6MHmalhpsnz8zDQ0=; fh=CQfp2gOBa+i/bmfJMxZxIEW0nU/JrSrGnha9pgfjpVw=; b=WLHBCz41/TrTPgHOK9+zMxdAy9WIxcLJFVxMKwhu3hTmln5kHPwYCWNn8b124q7iq5 8VD9kYxPlh+LflJ3duwYGdRIRajQZwQflXELNbXRYszkeomLElitqIbyj+uG+n7+G2y+ SBZVmi4e9oQQNdqllipoJyF311dTd5Sv9u8u6Ad19aDkGRU7aXNt6rEmUK7/1biNFee4 IVyPK+PiIKbXPzl2+1onTprjzDKYplIgjqO5z7ZBxoMiKypzCzA5wVYFHzCY3qEAw33c C+/BF0RxN+U+lafTV84NlUhr/6e2RlH/K9OngrGnN95FNaEabGjcZuvqLrA/Ss6zf1JZ 3pYw==; 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=1779967724; x=1780572524; 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=8VfuvqO+30diazriPESJ+uPe3jY6MHmalhpsnz8zDQ0=; b=o5toT4y0EqkhpJxhIrwiaQG3Q1ZxmYXwhY/vrJ2Lso6JCbR3YPBIDOYXpgzPxYRM5u 7QS4m6I1FBB5RZpAVJyB6p1/XjcwqiDoVpV6hLhHAc38X5plNZWaYEAug5IXWCRlJZSU UBB6tm5pcQwI0U8uPWLXdOPx9VyhOLhFo96gOwaBK0qTKA+ARUJWbLUFy/9vpFSggvBf g7FRZpE2PW7mnqY9KeSZTsCWHd6qpfg7GSccpJ8BTh45sKL86Sthx4AN4+37S4LiRN15 Hrnji2zeMjaTC2fVr8l6Kq2v8OMj0qCDRR5xH1JLUvEHAsLYujGvTmoP6oBKb5FhuxRD JojQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779967724; x=1780572524; 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=8VfuvqO+30diazriPESJ+uPe3jY6MHmalhpsnz8zDQ0=; b=kQYg0fOnXvCzWc6pVIpbtlfaGv4BCQXunQ5L4MYiHYm/p/2JDC5P5OhGStFk+d1Mkm i1kf3SYQ8ptIdDk3titjUb2Yc8Jj8/ngGcpdcIZzr/aHtFCqZZpgKAZNptmhHVlGYWqk ATP5PCAJanmgvM1Gn2qO6+gtLJCDv0lE0gAySBEaKWu4y9xQXprJxP6GBcF5QRVd3l/U Zm+3tgVWyPj4HxhSVvt4wPVK3C5vXowLw4IixbuNsOewTFFUtsyPsNqG5YzH28rKJ84t XIceWJcg9b9iLRIJsyGUuJQRP95L81cFZS4vT2L+DGfjyadfF7u8EPEci49V2wN7bRXF OZ4g== X-Forwarded-Encrypted: i=1; AFNElJ8oG0b5+1gquDWSqD8DLtg9y7qQ28xAvNTxL8nGgDQlzQCNb9o+NZlp/bPBTXX9W677A6jQg3NDE8OU3Zzq@lists.postgresql.org X-Gm-Message-State: AOJu0YzcghvxetU3mDZRsQsT46+KtgzDvun/n8lV3IIZKScFJPUYHUl6 DScUztX8pS6plnW5FhlZNDYpUDdNnnRfHh5tm6iolzYYeIY/1KK6SUf5X2yPii+P2GeqcmlsyDb Q2CZUZScHGPqa+7sFllNAA1T1XHebOLra X-Gm-Gg: Acq92OHzxAlHDBMxkhFLmxswTtpvHSlJtPmxxFSqxY+CRHorApOCpLpgGznjKCuRxhX zfyu2DzeLD2OOlssqEVNUXcVOgfdhm1zNsV3bdlenalC4ALc23pfE0z/P0EbtxtV4Jr11ItyTVv gMmOPdUHu45tCkRVkqGrSDLdf+5C6urkg3xFphSLtMe/29rw+i1R9m9B8brBFN8Q3qlmdw57QS2 wqJsDSr36QTFjDxgwFxOah+2pVyk8Q0f+sT3DfMeHZF6Pqij1VhB19eUMUdwNvZYnunSC10n2x3 5SE2hq1ZxJN/JToXw0FGOO5jbqdCMrkQ/sf7RBUlYhxZVN3QTg== X-Received: by 2002:a05:651c:1595:b0:395:c810:a61e with SMTP id 38308e7fff4ca-395d8bbc310mr99628341fa.6.1779967723993; Thu, 28 May 2026 04:28:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Thu, 28 May 2026 16:58:31 +0530 X-Gm-Features: AVHnY4LjcIqgVXadqKQy91cLjiyCHhFl03ZPG1SeOVamxCHHcn7b8tCXTs3TRTc Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: Peter Smith Cc: shveta malik , Amit Kapila , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000e6a2a70652df07fb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e6a2a70652df07fb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, May 26, 2026 at 11:27=E2=80=AFAM Peter Smith wrote: > > Hi Nisha. > > Some review comments for patch v6-0003. > Thanks for the review. All comments are addressed in v7. Please find responses below for a few of the comments. > > 3. > The EXCEPT clause can be used with > - ADD TABLES IN SCHEMA to exclude specific tables fr= om a > + ADD TABLES IN SCHEMA and > + SET TABLES IN SCHEMA to exclude specific tables fr= om a > schema-level publication. EXCEPT is not supported = with > DROP TABLES IN SCHEMA; instead, dropping a schema = from > the publication automatically removes all of its associated > > 3a. > This whole description section seems arranged in a confusing way IMO. > Anyway, it is not all the fault of the current patch. But I don't > think it should be talking about "SET TABLES IN SCHEMA" here because > that was all mentioned already in the earlier "third variant" > paragraph. > Right. it seems repeating. Removed "SET TABLES IN SCHEMA" related info. > ~ > > 3b. > That last sentence all about EXCEPT with DROP TABLES IN SCHEMA seems > redundant to me. It is not allowed by the synopsis, so there is no > possible confusion about it being supported. Isn't it better to just > say nothing? > Okay, that makes sense. Fixed. > ~~~ > > 4b. > This description about EXCEPT is missing talking about FOR ALL TABLES > EXCEPT, but IIRC I already reported that in a previous review. > Yes, we can handle this in a separate patch. > ~~~ > > PublicationDropSchemas: > > 12. > + /* > + * Collect prexcept rows for tables belonging to this schema before > + * removing the schema entry. GetExcludedPublicationTables relies on > + * is_schema_publication(), which scans pg_publication_namespace; if > + * this is the last schema in the publication, performDeletion() below > + * would remove that row and make is_schema_publication() return > + * false, tripping the assertion. > + */ > > What assertion? > The assertion is Assert(GetPublication(pubid)->alltables || is_schema_publication(pubid)) in GetExcludedPublicationTables(). I=E2=80=99ve trimmed the comment a bit, as it felt slightly over-explained. ~~~~ Please find the updated patch-set v7 attached. -- Thanks, Nisha --000000000000e6a2a70652df07fb Content-Type: application/x-patch; name="v7-0001-Support-EXCEPT-clause-for-schema-level-publicatio.patch" Content-Disposition: attachment; filename="v7-0001-Support-EXCEPT-clause-for-schema-level-publicatio.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mppelpjy0 RnJvbSBiNDZiZWE5MjZkZmIyMDEwMDUyMDFiYmVmZGEzNzE2YmE3YThiZWVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBNb24sIDQgTWF5IDIwMjYgMTI6NDk6MjcgKzA1MzAKU3ViamVjdDogW1BBVENIIHY3 IDEvM10gU3VwcG9ydCBFWENFUFQgY2xhdXNlIGZvciBzY2hlbWEtbGV2ZWwgcHVibGljYXRpb25z CgpFeHRlbmQgdGFibGUgZXhjbHVzaW9uIHN1cHBvcnQgaW4gcHVibGljYXRpb25zIHRvIGFsbG93 IHNwZWNpZmljCnRhYmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHNjaGVtYS1sZXZlbCBwdWJsaWNh dGlvbnMgdXNpbmcgYW4KRVhDRVBUIGNsYXVzZSBpbiBDUkVBVEUgUFVCTElDQVRJT04uCgpTdXBw b3J0ZWQgc3ludGF4OgpDUkVBVEUgUFVCTElDQVRJT04gPHB1Yj4gRk9SIFRBQkxFUyBJTiBTQ0hF TUEgcyBFWENFUFQgKFRBQkxFIHQxLC4uLik7Ci0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgICB8ICAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCAgICB8ICAyMiArKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmMgICAgICAgIHwgIDk3ICsrKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgIHwgIDY1ICsrKysrKysrLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgfCAgNTIgKysrKysrKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgfCAgMzAgKysrKy0KIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgIHwgIDI0ICsrKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQgICB8IDEwNiArKysrKysrKysrKysrKystCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgIHwgIDY5ICsrKysrKysrKy0KIHNyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgICAgICAgfCAxMzMgKysrKysrKysrKysr KysrKysrKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDU3NyBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s IGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCA5ZTc4Njg0ODdk ZS4uMTQzM2QyNjYwZmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAt MTE3LDcgKzExNyw4IEBACiAgICBvciA8bGl0ZXJhbD5GT1IgQUxMIFNFUVVFTkNFUzwvbGl0ZXJh bD4uIFVubGlrZSB0YWJsZXMsIHNlcXVlbmNlcyBjYW4gYmUKICAgIHN5bmNocm9uaXplZCBhdCBh bnkgdGltZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZQogICAgPHhyZWYgbGlua2VuZD0ibG9n aWNhbC1yZXBsaWNhdGlvbi1zZXF1ZW5jZXMiLz4uIFdoZW4gYSBwdWJsaWNhdGlvbiBpcwotICAg Y3JlYXRlZCB3aXRoIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiwgYSB0YWJsZSBv ciBzZXQgb2YgdGFibGVzIGNhbgorICAgY3JlYXRlZCB3aXRoIDxsaXRlcmFsPkZPUiBBTEwgVEFC TEVTPC9saXRlcmFsPiBvcgorICAgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVy YWw+LCBhIHRhYmxlIG9yIHNldCBvZiB0YWJsZXMgY2FuCiAgICBiZSBleHBsaWNpdGx5IGV4Y2x1 ZGVkIGZyb20gcHVibGljYXRpb24gdXNpbmcgdGhlCiAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlcHVibGljYXRpb24tcGFyYW1zLWZvci1leGNlcHQtdGFibGUiPjxsaXRlcmFsPkVYQ0VQVDwv bGl0ZXJhbD48L2xpbms+CiAgICBjbGF1c2UuCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAppbmRleCBmODJkNjQwZTZjYS4uN2ZhMGJkMTFmN2IgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbApAQCAtMjgsNyArMjgsNyBAQCBDUkVBVEUgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PgogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRp b25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCiAgICAgVEFCTEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2FuZF9jb2x1bW5zPC9yZXBsYWNl YWJsZT4gWywgLi4uIF0KLSAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9 IFssIC4uLiBdCisgICAgVEFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFjZWFibGU+IFssIC4uLiBdCiAKIDxwaHJhc2U+ YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9hbGxfb2JqZWN0 PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC0zOSw2ICszOSwxMCBAQCBD UkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPgogCiAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29i amVjdDwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29s dW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdCiAKKzxwaHJh c2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZXNfaW5fc2NoZW1hPC9y ZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbIEVY Q0VQVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNlcHRfdGFibGVfb2JqZWN0 PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdCisKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leGNlcHRfdGFibGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9w aHJhc2U+CiAKICAgICBUQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVf b2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0KQEAgLTE0Miw2ICsxNDYsOCBAQCBDUkVBVEUg UFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPgogICAgICA8cGFyYT4KICAgICAgIE1hcmtzIHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUgdGhh dCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMgaW4KICAgICAgIHRoZSBzcGVjaWZp ZWQgbGlzdCBvZiBzY2hlbWFzLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVy ZS4KKyAgICAgIFRhYmxlcyBsaXN0ZWQgaW4gdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4g Y2xhdXNlIGZvciBhIGdpdmVuIHNjaGVtYQorICAgICAgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1 YmxpY2F0aW9uLgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+CkBAIC0xNzMsNyArMTc5LDcg QEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4KICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24g YXMgb25lIHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzIGluCiAgICAgICB0 aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLiBUYWJs ZXMgbGlzdGVkIGluCi0gICAgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUg ZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24uCisgICAgICB0aGUgPGxpdGVyYWw+RVhDRVBU PC9saXRlcmFsPiBjbGF1c2UgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLgogICAg ICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMTk4LDcg KzIwNCw4IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAg IFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZy b20gdGhlCi0gICAgICBwdWJsaWNhdGlvbi4KKyAgICAgIHB1YmxpY2F0aW9uLiBJdCBjYW4gYmUg dXNlZCB3aXRoIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBvcgorICAgICAgPGxp dGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CiAgICAg IDxwYXJhPgogICAgICAgRm9yIGluaGVyaXRlZCB0YWJsZXMsIGlmIDxsaXRlcmFsPk9OTFk8L2xp dGVyYWw+IGlzIHNwZWNpZmllZCBiZWZvcmUgdGhlCkBAIC01MTUsNiArNTIyLDE1IEBAIENSRUFU RSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZPUiBUQUJMRSB1c2VycywgZGVw YXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24g Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+ PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNo ZXMgYWxsIGNoYW5nZXMgZm9yIGFsbCB0aGUgdGFibGVzIHByZXNlbnQgaW4KKyAgIHRoZSBzY2hl bWEgPHN0cnVjdG5hbWU+c2FsZXM8L3N0cnVjdG5hbWU+LCBleGNlcHQKKyAgIDxzdHJ1Y3RuYW1l PmludGVybmFsPC9zdHJ1Y3RuYW1lPiBhbmQgPHN0cnVjdG5hbWU+ZHJhZnRzPC9zdHJ1Y3RuYW1l PjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiBzYWxlc19maWx0ZXJlZCBG T1IgVEFCTEVTIElOIFNDSEVNQSBzYWxlcyBFWENFUFQgKFRBQkxFIGludGVybmFsLCBkcmFmdHMp OworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQ3JlYXRlIGEg cHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlIDxzdHJ1Y3Ru YW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiwKICAgIGJ1dCByZXBsaWNhdGVzIG9ubHkgY29sdW1ucyA8 c3RydWN0bmFtZT51c2VyX2lkPC9zdHJ1Y3RuYW1lPiBhbmQKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uYwppbmRleCA1YzQ1N2Q5YWNhOC4uYjRjNWEzMTc4NjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTQ0NCw5ICs0NDQsMTQgQEAgR2V0UHViUGFydGl0aW9u T3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0 b3B0LAogICoKICAqIE5vdGUgdGhhdCB0aGUgbGlzdCBvZiBhbmNlc3RvcnMgc2hvdWxkIGJlIG9y ZGVyZWQgc3VjaCB0aGF0IHRoZSB0b3Btb3N0CiAgKiBhbmNlc3RvciBpcyBhdCB0aGUgZW5kIG9m IHRoZSBsaXN0LgorICoKKyAqIGV4Y2VwdF9wdWJpZHMgaXMgYSBsaXN0IG9mIHB1YmxpY2F0aW9u IE9JRHMgd2hvc2Ugc2NoZW1hIG1lbWJlcnNoaXAKKyAqIHNob3VsZCBiZSBpZ25vcmVkIGZvciB0 aGUgYW5jZXN0b3IgKGJlY2F1c2UgdGhlIGFuY2VzdG9yIGlzIGluIHRoZWlyCisgKiBFWENFUFQg Y2xhdXNlKS4KICAqLwogT2lkCi1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBw dWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RB bmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJ CQlpbnQgKmFuY2VzdG9yX2xldmVsLCBMaXN0ICpleGNlcHRfcHViaWRzKQogewogCUxpc3RDZWxs ICAgKmxjOwogCU9pZAkJCXRvcG1vc3RfcmVsaWQgPSBJbnZhbGlkT2lkOwpAQCAtNDcwLDcgKzQ3 NSw3IEBAIEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAq YW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsCiAJCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCiAJ CQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CiAJCX0KLQkJZWxzZQorCQllbHNlIGlmICghbGlz dF9tZW1iZXJfb2lkKGV4Y2VwdF9wdWJpZHMsIHB1Ym9pZCkpCiAJCXsKIAkJCWFzY2hlbWFQdWJp ZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsK IAkJCWlmIChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVib2lkKSkKQEAgLTU0NSwx OCArNTUwLDMwIEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0 aW9uUmVsSW5mbyAqcHJpLAogCSAqIGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3Zp ZGUgbmljZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KIAkgKiBjYXNlLiBUaGUgcmVhbCBwcm90 ZWN0aW9uIGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRhbG9nLgogCSAqLwotCWlmIChTZWFy Y2hTeXNDYWNoZUV4aXN0czIoUFVCTElDQVRJT05SRUxNQVAsIE9iamVjdElkR2V0RGF0dW0ocmVs aWQpLAotCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpKQorCXR1cCA9IFNlYXJjaFN5 c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJ CQkgIE9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1 cCkpCiAJeworCQlib29sCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBH RVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCisJCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCQl0 YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJCWlmIChpZl9ub3RfZXhpc3Rz KQogCQkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOwogCi0JCWVyZXBvcnQoRVJST1IsCi0J CQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKLQkJCQkgZXJybXNnKCJyZWxh dGlvbiBcIiVzXCIgaXMgYWxyZWFkeSBtZW1iZXIgb2YgcHVibGljYXRpb24gXCIlc1wiIiwKLQkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkpKTsKKwkJ aWYgKGlzX2V4Y2VwdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf RFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBjYW5ub3Qg YmUgYWRkZWQgYmVjYXVzZSBpdCBpcyBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uIFwiJXNcIiIs CisJCQkJCQkJUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSwKKwkJ CQkJCQlwdWItPm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwi JXNcIiBpcyBhbHJlYWR5IG1lbWJlciBvZiBwdWJsaWNhdGlvbiBcIiVzXCIiLAorCQkJCQkJCVJl bGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkpKTsK IAl9CiAKIAljaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24ocHJpKTsKQEAgLTk4MiwxMiAr OTk5LDEzIEBAIEdldEluY2x1ZGVkUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJs aWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiAgKiBHZXRzIGxpc3Qgb2YgdGFibGUgb2lkcyB0 aGF0IHdlcmUgc3BlY2lmaWVkIGluIHRoZSBFWENFUFQgY2xhdXNlIGZvciBhCiAgKiBwdWJsaWNh dGlvbi4KICAqCi0gKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgRk9SIEFMTCBUQUJMRVMgcHVi bGljYXRpb25zLgorICogVGhpcyBpcyB1c2VkIGZvciBGT1IgQUxMIFRBQkxFUyBhbmQgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb25zLAorICogYm90aCBvZiB3aGljaCBzdXBwb3J0IEVY Q0VQVCBUQUJMRS4KICAqLwogTGlzdCAqCiBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKE9p ZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogewotCUFzc2VydChHZXRQ dWJsaWNhdGlvbihwdWJpZCktPmFsbHRhYmxlcyk7CisJQXNzZXJ0KEdldFB1YmxpY2F0aW9uKHB1 YmlkKS0+YWxsdGFibGVzIHx8IGlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpOwogCiAJcmV0 dXJuIGdldF9wdWJsaWNhdGlvbl9yZWxhdGlvbnMocHViaWQsIHB1Yl9wYXJ0b3B0LCB0cnVlKTsK IH0KQEAgLTEwNDksMTMgKzEwNjcsMTMgQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoT2lk IHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIAlUYWJsZVNjYW5EZXNjIHNj YW47CiAJSGVhcFR1cGxlCXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKLQlMaXN0CSAg ICpleGNlcHRsaXN0ID0gTklMOworCUxpc3QJICAgKmV4Y2VwdF9yZWxpZHMgPSBOSUw7CiAKIAlB c3NlcnQoIShyZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UgJiYgcHVidmlhcm9vdCkpOwogCiAJ LyogRVhDRVBUIGZpbHRlcmluZyBhcHBsaWVzIG9ubHkgdG8gcmVsYXRpb25zLCBub3Qgc2VxdWVu Y2VzICovCiAJaWYgKHJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTikKLQkJZXhjZXB0bGlzdCA9 IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsIHB1YnZpYXJvb3QgPworCQlleGNl cHRfcmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhwdWJpZCwgcHVidmlhcm9v dCA/CiAJCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6CiAJCQkJCQkJCQkJCQkg IFBVQkxJQ0FUSU9OX1BBUlRfTEVBRik7CiAKQEAgLTEwNzUsNyArMTA5Myw3IEBAIEdldEFsbFB1 YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJv b3QpCiAKIAkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgogCQkJ IShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgotCQkJIWxpc3RfbWVt YmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCisJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9y ZWxpZHMsIHJlbGlkKSkKIAkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwog CX0KIApAQCAtMTA5Nyw3ICsxMTE1LDcgQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoT2lk IHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIAogCQkJaWYgKGlzX3B1Ymxp c2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgogCQkJCSFyZWxGb3JtLT5yZWxpc3BhcnRp dGlvbiAmJgotCQkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQpKQorCQkJCSFs aXN0X21lbWJlcl9vaWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpKQogCQkJCXJlc3VsdCA9IGxhcHBl bmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCQl9CiAKQEAgLTEyMzIsMjIgKzEyNTAsNjcgQEAgR2V0 U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLCBQdWJsaWNhdGlvblBhcnRP cHQgcHViX3BhcnRvcHQpCiAKIC8qCiAgKiBHZXRzIHRoZSBsaXN0IG9mIGFsbCByZWxhdGlvbnMg cHVibGlzaGVkIGJ5IEZPUiBUQUJMRVMgSU4gU0NIRU1BCi0gKiBwdWJsaWNhdGlvbi4KKyAqIHB1 YmxpY2F0aW9uLCBleGNsdWRpbmcgYW55IHRhYmxlcyBsaXN0ZWQgaW4gdGhlIEVYQ0VQVCBjbGF1 c2UuCiAgKi8KIExpc3QgKgogR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1 YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiB7CiAJTGlzdAkgICAqcmVzdWx0 ID0gTklMOwogCUxpc3QJICAgKnB1YnNjaGVtYWxpc3QgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMo cHViaWQpOworCUxpc3QJICAgKmV4Y2VwdF9yZWxpZHMgPSBOSUw7CiAJTGlzdENlbGwgICAqY2Vs bDsKIAorCS8qIGdldCB0aGUgbGlzdCBvZiB0YWJsZXMgZXhjbHVkZWQgdmlhIEVYQ0VQVCBUQUJM RSBmb3IgdGhpcyBwdWJsaWNhdGlvbiAqLworCWlmIChwdWJzY2hlbWFsaXN0ICE9IE5JTCkKKwkJ ZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsIHB1Yl9w YXJ0b3B0KTsKKwogCWZvcmVhY2goY2VsbCwgcHVic2NoZW1hbGlzdCkKIAl7CiAJCU9pZAkJCXNj aGVtYWlkID0gbGZpcnN0X29pZChjZWxsKTsKIAkJTGlzdAkgICAqc2NoZW1hUmVscyA9IE5JTDsK IAogCQlzY2hlbWFSZWxzID0gR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoc2NoZW1haWQs IHB1Yl9wYXJ0b3B0KTsKLQkJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBzY2hlbWFSZWxz KTsKKworCQlpZiAoZXhjZXB0X3JlbGlkcyAhPSBOSUwpCisJCXsKKwkJCS8qIGZpbHRlciBvdXQg YW55IHRhYmxlcyB0aGF0IGFwcGVhciBpbiB0aGUgRVhDRVBUIGxpc3QgKi8KKwkJCUxpc3RDZWxs ICAgKnJsYzsKKworCQkJZm9yZWFjaChybGMsIHNjaGVtYVJlbHMpCisJCQl7CisJCQkJT2lkCQkJ cmVsaWQgPSBsZmlyc3Rfb2lkKHJsYyk7CisJCQkJYm9vbAkJZXhjbHVkZWQgPSBsaXN0X21lbWJl cl9vaWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpOworCisJCQkJLyoKKwkJCQkgKiBBbHNvIGV4Y2x1 ZGUgYW55IHJlbGF0aW9uIHdob3NlIHBhcnRpdGlvbiBhbmNlc3RvciBpcyBpbgorCQkJCSAqIHRo ZSBFWENFUFQgbGlzdC4gIFRoaXMgbWF0dGVycyB3aGVuIHB1Yl9wYXJ0b3B0IGlzCisJCQkJICog UFVCTElDQVRJT05fUEFSVF9ST09UOiB0aGUgZXhjZXB0IGxpc3QgaG9sZHMgb25seSB0aGUgcm9v dAorCQkJCSAqIE9JRCwgYnV0IHRoZSBzY2hlbWEgc2NhbiBtYXkgYWxzbyByZXR1cm4gaW5kaXZp ZHVhbAorCQkJCSAqIHBhcnRpdGlvbiByZWxhdGlvbnMgdGhhdCBsaXZlIGluIHRoZSBzYW1lIHNj aGVtYS4KKwkJCQkgKi8KKwkJCQlpZiAoIWV4Y2x1ZGVkICYmIGdldF9yZWxfcmVsaXNwYXJ0aXRp b24ocmVsaWQpKQorCQkJCXsKKwkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlv bl9hbmNlc3RvcnMocmVsaWQpOworCQkJCQlMaXN0Q2VsbCAgICphbGM7CisKKwkJCQkJZm9yZWFj aChhbGMsIGFuY2VzdG9ycykKKwkJCQkJeworCQkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChleGNl cHRfcmVsaWRzLCBsZmlyc3Rfb2lkKGFsYykpKQorCQkJCQkJeworCQkJCQkJCWV4Y2x1ZGVkID0g dHJ1ZTsKKwkJCQkJCQlicmVhazsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCQlsaXN0X2ZyZWUoYW5j ZXN0b3JzKTsKKwkJCQl9CisKKwkJCQlpZiAoIWV4Y2x1ZGVkKQorCQkJCQlyZXN1bHQgPSBsYXBw ZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKKwkJCX0KKwkJCWxpc3RfZnJlZShzY2hlbWFSZWxzKTsK KwkJfQorCQllbHNlCisJCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIHNjaGVtYVJlbHMp OwogCX0KIAogCXJldHVybiByZXN1bHQ7CkBAIC0xMzgxLDcgKzE0NDQsNyBAQCBpc190YWJsZV9w dWJsaXNoYWJsZV9pbl9wdWJsaWNhdGlvbihPaWQgcmVsaWQsIFB1YmxpY2F0aW9uICpwdWIpCiAJ ICogdGhlIHB1YmxpY2F0aW9uLCBpdCBzaG91bGQgYmUgaW5jbHVkZWQgKHJldHVybiB0cnVlKS4K IAkgKi8KIAlpZiAocmVsaXNwYXJ0aXRpb24gJiYKLQkJT2lkSXNWYWxpZChHZXRUb3BNb3N0QW5j ZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lkLCBhbmNlc3RvcnMsIE5VTEwpKSkKKwkJT2lkSXNW YWxpZChHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lkLCBhbmNlc3RvcnMs IE5VTEwsIE5JTCkpKQogCQlyZXR1cm4gIXB1Yi0+cHVidmlhcm9vdDsKIAogCS8qCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDQ0MGFkYjM1NmFkLi42NWFlNDAyMTBk YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTE4MSw3ICsxODEs NyBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKICAqLwog c3RhdGljIHZvaWQKIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNf bGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJICAgTGlzdCAqKnJlbHMsIExpc3QgKipl eGNlcHRyZWxzLCBMaXN0ICoqc2NoZW1hcykKKwkJCQkJCSAgIExpc3QgKipyZWxzLCBMaXN0ICoq ZXhjZXB0X3JlbF9uYW1lcywgTGlzdCAqKnNjaGVtYXMpCiB7CiAJTGlzdENlbGwgICAqY2VsbDsK IAlQdWJsaWNhdGlvbk9ialNwZWMgKnB1Ym9iajsKQEAgLTIwMCw3ICsyMDAsNyBAQCBPYmplY3Rz SW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJewogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU6CiAJCQkJcHVi b2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKLQkJCQkqZXhjZXB0cmVscyA9IGxhcHBlbmQo KmV4Y2VwdHJlbHMsIHB1Ym9iai0+cHVidGFibGUpOworCQkJCSpleGNlcHRfcmVsX25hbWVzID0g bGFwcGVuZCgqZXhjZXB0X3JlbF9uYW1lcywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7 CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgogCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4 Y2VwdCA9IGZhbHNlOwpAQCAtMzA1LDcgKzMwNSw3IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlk X2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJ aWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewog CQlwdWJsaXNoX2FzX3JlbGlkCi0JCQk9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24o cHViaWQsIGFuY2VzdG9ycywgTlVMTCk7CisJCQk9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGlj YXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCwgTklMKTsKIAogCQlpZiAoIU9pZElzVmFsaWQo cHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zODks NyArMzg5LDcgQEAgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRp b24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAkgKi8KIAlpZiAocHVidmlhcm9vdCAmJiBy ZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7Ci0JCXB1Ymxpc2hfYXNfcmVsaWQg PSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwp OworCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihw dWJpZCwgYW5jZXN0b3JzLCBOVUxMLCBOSUwpOwogCiAJCWlmICghT2lkSXNWYWxpZChwdWJsaXNo X2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsKQEAgLTg0OSw3ICs4NDks NyBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0 aW9uU3RtdCAqc3RtdCkKIAljaGFyCQlwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zOwogCUFjbFJl c3VsdAlhY2xyZXN1bHQ7CiAJTGlzdAkgICAqcmVsYXRpb25zID0gTklMOwotCUxpc3QJICAgKmV4 Y2VwdHJlbGF0aW9ucyA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRfcmVsX25hbWVzID0gTklMOwog CUxpc3QJICAgKnNjaGVtYWlkbGlzdCA9IE5JTDsKIAogCS8qIG11c3QgaGF2ZSBDUkVBVEUgcHJp dmlsZWdlIG9uIGRhdGFiYXNlICovCkBAIC05MzYsMTYgKzkzNiwxNiBAQCBDcmVhdGVQdWJsaWNh dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAog CS8qIEFzc29jaWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLwogCU9iamVjdHNJ blB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywK LQkJCQkJCQkgICAmZXhjZXB0cmVsYXRpb25zLCAmc2NoZW1haWRsaXN0KTsKKwkJCQkJCQkgICAm ZXhjZXB0X3JlbF9uYW1lcywgJnNjaGVtYWlkbGlzdCk7CiAKIAlpZiAoc3RtdC0+Zm9yX2FsbF90 YWJsZXMpCiAJewogCQkvKiBQcm9jZXNzIEVYQ0VQVCB0YWJsZSBsaXN0ICovCi0JCWlmIChleGNl cHRyZWxhdGlvbnMgIT0gTklMKQorCQlpZiAoZXhjZXB0X3JlbF9uYW1lcyAhPSBOSUwpCiAJCXsK IAkJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBPcGVuVGFibGVMaXN0KGV4Y2VwdHJlbGF0 aW9ucyk7CisJCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRfcmVsX25hbWVzKTsKIAkJCVB1 YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CiAJCQlDbG9zZVRh YmxlTGlzdChyZWxzKTsKIAkJfQpAQCAtOTU5LDYgKzk1OSw4IEBAIENyZWF0ZVB1YmxpY2F0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCX0KIAll bHNlIGlmICghc3RtdC0+Zm9yX2FsbF9zZXF1ZW5jZXMpCiAJeworCQlMaXN0CSAgICpleHBsaWNp dHJlbGlkcyA9IE5JTDsKKwogCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBl cnVzZXIgKi8KIAkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQogCQkJ ZXJlcG9ydChFUlJPUiwKQEAgLTk3Nyw2ICs5NzksMTkgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCQkJCQkg ICBzY2hlbWFpZGxpc3QgIT0gTklMLAogCQkJCQkJCQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QpOwogCisJCQkvKgorCQkJICogQ29sbGVjdCBleHBsaWNpdCB0YWJsZSBPSURzIG5vdywg YmVmb3JlIHdlIGNsb3NlIHRoZSByZWxhdGlvbgorCQkJICogbGlzdCwgc28gdGhhdCBleGNlcHQt dGFibGUgdmFsaWRhdGlvbiBiZWxvdyBjYW4gY2hlY2sgZm9yCisJCQkgKiBjb250cmFkaWN0aW9u cyB3aXRob3V0IHJlbHlpbmcgb24gYSBjYXRhbG9nIHNjYW4gdGhhdCBtaWdodCBub3QKKwkJCSAq IHlldCBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgcm93cy4KKwkJCSAqLworCQkJaWYgKGV4Y2VwdF9y ZWxfbmFtZXMgIT0gTklMKQorCQkJeworCQkJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5m bywgcHJpLCByZWxzKQorCQkJCQlleHBsaWNpdHJlbGlkcyA9IGxhcHBlbmRfb2lkKGV4cGxpY2l0 cmVsaWRzLAorCQkJCQkJCQkJCQkJIFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbikpOwor CQkJfQorCiAJCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIHJlbHMsIHRydWUsIE5VTEwp OwogCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiAJCX0KQEAgLTk4OSw2ICsxMDA0LDM0IEBAIENy ZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10 ICpzdG10KQogCQkJICovCiAJCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOwogCQkJUHVi bGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKKwor CQkJaWYgKGV4Y2VwdF9yZWxfbmFtZXMgIT0gTklMKQorCQkJeworCQkJCUxpc3QJICAgKmV4Y2Vw dF9yZWxzOworCisJCQkJZXhjZXB0X3JlbHMgPSBPcGVuVGFibGVMaXN0KGV4Y2VwdF9yZWxfbmFt ZXMpOworCisJCQkJLyoKKwkJCQkgKiBWYWxpZGF0ZSB0aGF0IGVhY2ggZXhjbHVkZWQgdGFibGUg aXMgbm90IGFsc28gaW4gdGhlCisJCQkJICogZXhwbGljaXQgdGFibGUgbGlzdCAod2hpY2ggd291 bGQgYmUgY29udHJhZGljdG9yeSkuIFVzZSB0aGUKKwkJCQkgKiBpbi1tZW1vcnkgZXhwbGljaXRy ZWxpZHMgY29sbGVjdGVkIGFib3ZlIHJhdGhlciB0aGFuCisJCQkJICogcmUtcmVhZGluZyB0aGUg Y2F0YWxvZywgd2hpY2ggbWF5IG5vdCB5ZXQgc2VlIHRoZQorCQkJCSAqIGp1c3QtaW5zZXJ0ZWQg cm93cy4KKwkJCQkgKi8KKwkJCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwg ZXhjZXB0X3JlbHMpCisJCQkJeworCQkJCQlPaWQJCQlleGNlcHRfcmVsaWQgPSBSZWxhdGlvbkdl dFJlbGlkKHByaS0+cmVsYXRpb24pOworCisJCQkJCWlmIChsaXN0X21lbWJlcl9vaWQoZXhwbGlj aXRyZWxpZHMsIGV4Y2VwdF9yZWxpZCkpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCQllcnJtc2co InRhYmxlIFwiJXNcIiBjYW5ub3QgYXBwZWFyIGluIGJvdGggdGhlIHRhYmxlIGxpc3QgYW5kIHRo ZSBFWENFUFQgY2xhdXNlIiwKKwkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRp b25OYW1lKHByaS0+cmVsYXRpb24pKSk7CisJCQkJfQorCisJCQkJUHVibGljYXRpb25BZGRUYWJs ZXMocHVib2lkLCBleGNlcHRfcmVscywgdHJ1ZSwgTlVMTCk7CisJCQkJQ2xvc2VUYWJsZUxpc3Qo ZXhjZXB0X3JlbHMpOworCQkJfQogCQl9CiAJfQogCkBAIC0xNjgzLDEyICsxNzI2LDEyIEBAIEFs dGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAq c3RtdCkKIAllbHNlCiAJewogCQlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7Ci0JCUxpc3QJICAg KmV4Y2VwdHJlbGF0aW9ucyA9IE5JTDsKKwkJTGlzdAkgICAqZXhjZXB0X3JlbF9uYW1lcyA9IE5J TDsKIAkJTGlzdAkgICAqc2NoZW1haWRsaXN0ID0gTklMOwogCQlPaWQJCQlwdWJpZCA9IHB1YmZv cm0tPm9pZDsKIAogCQlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3Rz LCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJCSAgICZleGNlcHRyZWxhdGlvbnMsICZzY2hl bWFpZGxpc3QpOworCQkJCQkJCQkgICAmZXhjZXB0X3JlbF9uYW1lcywgJnNjaGVtYWlkbGlzdCk7 CiAKIAkJQ2hlY2tBbHRlclB1YmxpY2F0aW9uKHN0bXQsIHR1cCwgcmVsYXRpb25zLCBzY2hlbWFp ZGxpc3QpOwogCkBAIC0xNzExLDcgKzE3NTQsNyBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCWVycm1zZygicHVi bGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUp KTsKIAotCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4Y2VwdHJlbGF0aW9u cyk7CisJCXJlbGF0aW9ucyA9IGxpc3RfY29uY2F0KHJlbGF0aW9ucywgZXhjZXB0X3JlbF9uYW1l cyk7CiAJCUFsdGVyUHVibGljYXRpb25UYWJsZXMoc3RtdCwgdHVwLCByZWxhdGlvbnMsIHBzdGF0 ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwpOwogCQlBbHRl clB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0dXAsIHNjaGVtYWlkbGlzdCk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpp bmRleCBmZjRlMTM4OGM1NS4uNDUxNGVmN2Y5YzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTgsNiArNTgs NyBAQAogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVG dW5jcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGV0aW1lLmgiCiAjaW5jbHVkZSAidXRpbHMveG1s LmgiCiAKQEAgLTExMjcyLDcgKzExMjczLDcgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JF R0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogICogcHViX29i aiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxlIFssIC4uLl0KLSAqCQlUQUJMRVMgSU4g U0NIRU1BIHNjaGVtYSBbLCAuLi5dCisgKgkJVEFCTEVTIElOIFNDSEVNQSBzY2hlbWEgW0VYQ0VQ VCAoVEFCTEUgdGFibGUgWywgLi4uXSApXSBbLCAuLi5dCiAgKgogICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLwogCkBAIC0xMTMzMiwyMyArMTEzMzMsMjYgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQ0OwogCQkJCX0KLQkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCisJCQl8IFRB QkxFUyBJTl9QIFNDSEVNQSBDb2xJZCBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJ CSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BOwogCQkJCQkkJC0+bmFtZSA9ICQ0Owor CQkJCQkkJC0+ZXhjZXB0X3RhYmxlcyA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBANDsKIAkJ CQl9Ci0JCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDVVJSRU5UX1NDSEVNQQorCQkJfCBUQUJMRVMg SU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJewog CQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0 eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUE7CisJCQkJCSQkLT5leGNl cHRfdGFibGVzID0gJDU7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEA0OwogCQkJCX0KLQkJCXwgQ29s SWQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQl8IENvbElkIG9wdF9jb2x1bW5f bGlzdCBPcHRXaGVyZUNsYXVzZSBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQk ID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQ VUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDQ7 CiAJCQkJCS8qCiAJCQkJCSAqIElmIGVpdGhlciBhIHJvdyBmaWx0ZXIgb3IgY29sdW1uIGxpc3Qg aXMgc3BlY2lmaWVkLCBjcmVhdGUKIAkJCQkJICogYSBQdWJsaWNhdGlvblRhYmxlIG9iamVjdC4K QEAgLTExMzkyLDEwICsxMTM5NiwxMSBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5w dWJ0YWJsZS0+Y29sdW1ucyA9ICQyOwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0g JDM7CiAJCQkJfQotCQkJfCBDVVJSRU5UX1NDSEVNQQorCQkJfCBDVVJSRU5UX1NDSEVNQSBvcHRf cHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25P YmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJ T047CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDI7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAx OwogCQkJCX0KIAkJCQk7CkBAIC0yMDc4NCw2ICsyMDc4OSw4IEBAIHByZXByb2Nlc3NfcHViX2Fs bF9vYmp0eXBlX2xpc3QoTGlzdCAqYWxsX29iamVjdHNfbGlzdCwgTGlzdCAqKnB1Ym9iamVjdHMs CiAvKgogICogUHJvY2VzcyBwdWJvYmpzcGVjX2xpc3QgdG8gY2hlY2sgZm9yIGVycm9ycyBpbiBh bnkgb2YgdGhlIG9iamVjdHMgYW5kCiAgKiBjb252ZXJ0IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVB VElPTiBpbnRvIGFwcHJvcHJpYXRlIFB1YmxpY2F0aW9uT2JqU3BlY1R5cGUuCisgKiBBbHNvIGZs YXR0ZW5zIGV4Y2VwdF90YWJsZXMgZnJvbSBUQUJMRVMgSU4gU0NIRU1BIG5vZGVzIGludG8gdGhl IGxpc3Qgc28KKyAqIHRoYXQgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoKSBzZWVzIHRoZW0g YXMgdG9wLWxldmVsIEVYQ0VQVF9UQUJMRSBlbnRyaWVzLgogICovCiBzdGF0aWMgdm9pZAogcHJl cHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3Qg eXlzY2FubmVyKQpAQCAtMjA4MTIsNiArMjA4MTksMTMgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlz dChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCiAJCWlm IChwdWJvYmotPnB1Ym9ianR5cGUgPT0gUFVCTElDQVRJT05PQkpfVEFCTEUpCiAJCXsKKwkJCS8q IEVYQ0VQVCBpcyBub3QgdmFsaWQgZm9yIHRhYmxlIG9iamVjdHMgKi8KKwkJCWlmIChwdWJvYmot PmV4Y2VwdF90YWJsZXMgIT0gTklMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCWVycm1zZygiRVhDRVBUIGlzIG5vdCBhbGxv d2VkIGZvciBUQUJMRSBwdWJsaWNhdGlvbiBvYmplY3RzIiksCisJCQkJCQlwYXJzZXJfZXJycG9z aXRpb24ocHVib2JqLT5sb2NhdGlvbikpOworCiAJCQkvKiByZWxhdGlvbiBuYW1lIG9yIHB1YnRh YmxlIG11c3QgYmUgc2V0IGZvciB0aGlzIHR5cGUgb2Ygb2JqZWN0ICovCiAJCQlpZiAoIXB1Ym9i ai0+bmFtZSAmJiAhcHVib2JqLT5wdWJ0YWJsZSkKIAkJCQllcmVwb3J0KEVSUk9SLApAQCAtMjA4 NjAsNiArMjA4NzQsMzQgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVj X2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCiAJCQkJCQllcnJtc2coImludmFsaWQgc2NoZW1hIG5hbWUiKSwKIAkJCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9uKSk7CisKKwkJCS8qIEZsYXR0ZW4g RVhDRVBUIGVudHJpZXMgaW50byB0aGUgdG9wLWxldmVsIGxpc3QgKi8KKwkJCWZvcmVhY2hfcHRy KFB1YmxpY2F0aW9uT2JqU3BlYywgZW9iaiwgcHVib2JqLT5leGNlcHRfdGFibGVzKQorCQkJewor CQkJCS8qCisJCQkJICogVW5xdWFsaWZpZWQgbmFtZXMgYXJlIGltcGxpY2l0bHkgcXVhbGlmaWVk IHdpdGggdGhlIHBhcmVudAorCQkJCSAqIHNjaGVtYS4gIFF1YWxpZmllZCBuYW1lcyBtdXN0IG1h dGNoIHRoZSBwYXJlbnQgc2NoZW1hIOKAlAorCQkJCSAqIGVhY2ggRVhDRVBUIGNsYXVzZSBpcyBi b3VuZCB0byBleGFjdGx5IG9uZSBzY2hlbWEsIHNvCisJCQkJICogY3Jvc3Mtc2NoZW1hIGVudHJp ZXMgYXJlIHJlamVjdGVkIGF0IHBhcnNlIHRpbWUuCisJCQkJICovCisJCQkJaWYgKHB1Ym9iai0+ cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BKQorCQkJCXsKKwkJ CQkJY29uc3QgY2hhciAqZW9ial9zY2hlbWFuYW1lID0gZW9iai0+cHVidGFibGUtPnJlbGF0aW9u LT5zY2hlbWFuYW1lOworCQkJCQljb25zdCBjaGFyICplb2JqX3JlbG5hbWUgPSBlb2JqLT5wdWJ0 YWJsZS0+cmVsYXRpb24tPnJlbG5hbWU7CisKKwkJCQkJaWYgKGVvYmpfc2NoZW1hbmFtZSA9PSBO VUxMKQorCQkJCQkJZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5zY2hlbWFuYW1lID0gcHVib2Jq LT5uYW1lOworCQkJCQllbHNlIGlmIChzdHJjbXAoZW9ial9zY2hlbWFuYW1lLCBwdWJvYmotPm5h bWUpICE9IDApCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgaW4gRVhDRVBUIGNs YXVzZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNcIiIsCisJCQkJCQkJCQkgICBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihlb2JqX3NjaGVtYW5hbWUsIGVvYmpfcmVsbmFtZSksCisJ CQkJCQkJCQkgICBwdWJvYmotPm5hbWUpLAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oZW9i ai0+bG9jYXRpb24pKTsKKwkJCQl9CisJCQl9CisJCQlwdWJvYmpzcGVjX2xpc3QgPSBsaXN0X2Nv bmNhdChwdWJvYmpzcGVjX2xpc3QsIHB1Ym9iai0+ZXhjZXB0X3RhYmxlcyk7CisJCQlwdWJvYmot PmV4Y2VwdF90YWJsZXMgPSBOSUw7CiAJCX0KIAogCQlwcmV2b2JqdHlwZSA9IHB1Ym9iai0+cHVi b2JqdHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bn b3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmlu ZGV4IDRlY2ZjYmZmN2FiLi5jNWYxN2JmMjMzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9wZ291dHB1dC9wZ291dHB1dC5jCkBAIC0yMDk3LDYgKzIwOTcsNyBAQCBnZXRfcmVsX3N5bmNf ZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJICogYXJlIGFi c29yYmVkIHdoaWxlIGRlY29kaW5nIFdBTC4KIAkJICovCiAJCUxpc3QJICAgKnNjaGVtYVB1Ymlk cyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFJZCk7CisJCUxpc3QJICAgKmV4Y2VwdF9w dWJpZHM7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlPaWQJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVs aWQ7CiAJCWludAkJCXB1Ymxpc2hfYW5jZXN0b3JfbGV2ZWwgPSAwOwpAQCAtMjEwNCw2ICsyMTA1 LDI4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJl bGF0aW9uKQogCQljaGFyCQlyZWxraW5kID0gZ2V0X3JlbF9yZWxraW5kKHJlbGlkKTsKIAkJTGlz dAkgICAqcmVsX3B1YmxpY2F0aW9ucyA9IE5JTDsKIAorCQkvKgorCQkgKiBGb3IgdGhlIHNjaGVt YSBFWENFUFQgY2hlY2ssIHdlIG11c3QgbG9vayB1cCB0aGUgdG9wLW1vc3QgYW5jZXN0b3IKKwkJ ICogcmF0aGVyIHRoYW4gdGhlIHJlbGF0aW9uIGl0c2VsZi4gIGNoZWNrX3B1YmxpY2F0aW9uX2Fk ZF9yZWxhdGlvbigpCisJCSAqIHByZXZlbnRzIGluZGl2aWR1YWwgcGFydGl0aW9ucyBmcm9tIGFw cGVhcmluZyBpbiB0aGUgRVhDRVBUIGNsYXVzZSwKKwkJICogc28gb25seSBhIHJvb3QgKG5vbi1w YXJ0aXRpb24pIHRhYmxlIGNhbiBoYXZlIHByZXhjZXB0ID0gdHJ1ZS4KKwkJICogVXNpbmcgdGhl IHBhcnRpdGlvbidzIG93biBPSUQgd291bGQgYWx3YXlzIHJldHVybiBOSUwgYW5kIG1pc3MgdGhl CisJCSAqIGV4Y2x1c2lvbi4KKwkJICovCisJCU9pZAkJCXJvb3RfcmVsaWQ7CisKKwkJaWYgKGFt X3BhcnRpdGlvbikKKwkJeworCQkJTGlzdAkgICAqcGFydF9hbmNlc3RvcnMgPSBnZXRfcGFydGl0 aW9uX2FuY2VzdG9ycyhyZWxpZCk7CisKKwkJCXJvb3RfcmVsaWQgPSBsbGFzdF9vaWQocGFydF9h bmNlc3RvcnMpOworCQkJbGlzdF9mcmVlKHBhcnRfYW5jZXN0b3JzKTsKKwkJfQorCQllbHNlCisJ CQlyb290X3JlbGlkID0gcmVsaWQ7CisKKwkJZXhjZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9uRXhj bHVkZWRQdWJsaWNhdGlvbnMocm9vdF9yZWxpZCk7CisKIAkJLyogUmVsb2FkIHB1YmxpY2F0aW9u cyBpZiBuZWVkZWQgYmVmb3JlIHVzZS4gKi8KIAkJaWYgKCFwdWJsaWNhdGlvbnNfdmFsaWQpCiAJ CXsKQEAgLTIyNjcsNyArMjI5MCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEg KmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9wTW9zdEFu Y2VzdG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFuY2VzdG9y cywKLQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWws CisJCQkJCQkJCQkJCQkJCQkgICBleGNlcHRfcHViaWRzKTsKIAogCQkJCQlpZiAoYW5jZXN0b3Ig IT0gSW52YWxpZE9pZCkKIAkJCQkJewpAQCAtMjI4MSw3ICsyMzA1LDggQEAgZ2V0X3JlbF9zeW5j X2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQkJfQogCiAJ CQkJaWYgKGxpc3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAotCQkJCQlsaXN0X21l bWJlcl9vaWQoc2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKGxpc3RfbWVtYmVyX29p ZChzY2hlbWFQdWJpZHMsIHB1Yi0+b2lkKSAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNl cHRfcHViaWRzLCBwdWItPm9pZCkpIHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJ cHVibGlzaCA9IHRydWU7CiAJCQl9CkBAIC0yMzYwLDYgKzIzODUsNyBAQCBnZXRfcmVsX3N5bmNf ZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2Zy ZWUocHViaWRzKTsKIAkJbGlzdF9mcmVlKHNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNl cHRfcHViaWRzKTsKIAkJbGlzdF9mcmVlKHJlbF9wdWJsaWNhdGlvbnMpOwogCiAJCWVudHJ5LT5y ZXBsaWNhdGVfdmFsaWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBlMTQ0OTY1NGY5Ni4uZTViMWE3MGUw NWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCkBAIC03MDM4LDYgKzcwMzgsMjQgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMo Y29uc3QgY2hhciAqcGF0dGVybikKIAkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNj KCZidWYsIF8oIlRhYmxlcyBmcm9tIHNjaGVtYXM6IiksCiAJCQkJCQkJCQkJCQl0cnVlLCAmY29u dCkpCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0g MTkwMDAwKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogR2V0IHRhYmxlcyBpbiB0aGUgRVhDRVBU IGNsYXVzZSBmb3IgdGhpcyBzY2hlbWEKKwkJCQkJICogcHVibGljYXRpb24uCisJCQkJCSAqLwor CQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChj LnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJ CSAgIkZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjXG4iCisJCQkJCQkJCQkgICIgICAgIEpPSU4g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4i CisJCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkJICAiICBB TkQgcHIucHJleGNlcHRcbiIKKwkJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJ CWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoi KSwKKwkJCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCisJCQkJCQlnb3RvIGVycm9yX3JldHVybjsK KwkJCQl9CiAJCQl9CiAJCX0KIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGRlNTQ3 YThjYjM3Li5mZTExZGM2MTlhYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTA2NSw2ICsx MDY1LDE1IEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfdHJpZ2dlcl9vZl90 YWJsZSA9IHsKICJTRUxFQ1QgbnNwbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlICJc CiAiIFdIRVJFIG5zcG5hbWUgTElLRSAnJXMnIgogCisjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29m X3RhYmxlc19pbl9zY2hlbWEgXAorIlNFTEVDVCBuLm5zcG5hbWUgfHwgJy4nIHx8IGMucmVsbmFt ZSAiXAorIiAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgIlwKKyIgICAgICAgSk9JTiBwZ19j YXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UgIlwKKyIgV0hF UkUgYy5yZWxraW5kIElOICgiIENwcEFzU3RyaW5nMihSRUxLSU5EX1JFTEFUSU9OKSAiLCAiIFwK KwkJCQkJCUNwcEFzU3RyaW5nMihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKSAiXAorIiAg IEFORCAobi5uc3BuYW1lIHx8ICcuJyB8fCBjLnJlbG5hbWUpIExJS0UgJyVzJyAiXAorIiAgIEFO RCBuLm5zcG5hbWUgPSAnJXMnIgorCiAvKiBVc2UgQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJCQVRJ TSB3aXRoIHRoZXNlIHF1ZXJpZXMgZm9yIEdVQyBuYW1lczogKi8KICNkZWZpbmUgUXVlcnlfZm9y X2xpc3Rfb2ZfYWx0ZXJfc3lzdGVtX3NldF92YXJzIFwKICJTRUxFQ1QgcGdfY2F0YWxvZy5sb3dl cihuYW1lKSBGUk9NIHBnX2NhdGFsb2cucGdfc2V0dGluZ3MgIlwKQEAgLTM3ODcsOCArMzc5Niwx OSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lU SF9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX3NjaGVtYXMKIAkJCQkJCQkJICIgQU5EIG5z cG5hbWUgTk9UIExJS0UgRSdwZ1xcXFxfJSUnIiwKIAkJCQkJCQkJICJDVVJSRU5UX1NDSEVNQSIp OwotCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi Rk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSkgJiYgKCFlbmRzX3dpdGgo cHJldl93ZCwgJywnKSkpCi0JCUNPTVBMRVRFX1dJVEgoIldJVEggKCIpOworCWVsc2UgaWYgKE1h dGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIs ICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQor CQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCBUQUJMRSIsICJXSVRIICgiKTsKKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMi LCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgi KCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQ VCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwg IlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwl7CisJCXNldF9j b21wbGV0aW9uX3JlZmVyZW5jZShwcmV2NF93ZCk7CisJCUNPTVBMRVRFX1dJVEhfUVVFUllfVkVS QkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVtYSk7CisJfQorCWVsc2UgaWYg KE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxF UyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIiwgTWF0 Y2hBbnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIiki KTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1lPiBbLi4uXSBXSVRIIiAq LwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55Tiwg IldJVEgiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJwdWJsaXNoIiwgInB1Ymxpc2hfZ2VuZXJh dGVkX2NvbHVtbnMiLCAicHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QiKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb24uaAppbmRleCA4OWI0YmIxNGY2Mi4uNTNlM2Q3YzZmM2QgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTE5MSw3ICsxOTEsOCBAQCBleHRlcm4g TGlzdCAqR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwKIAkJCQkJ CQkJCQkJUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQlPaWQgcmVs aWQpOwogZXh0ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJv aWQsIExpc3QgKmFuY2VzdG9ycywKLQkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCk7CisJ CQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwsCisJCQkJCQkJCQkJCUxpc3QgKmV4Y2VwdF9w dWJpZHMpOwogCiBleHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiBy ZWwpOwogZXh0ZXJuIGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKaW5kZXggOTEzNzdhNmNkZTMuLjk4YTAzYzBlZWRhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCkBAIC00NDkzLDYgKzQ0OTMsOCBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNh dGlvbk9ialNwZWMKIAlQdWJsaWNhdGlvbk9ialNwZWNUeXBlIHB1Ym9ianR5cGU7CS8qIHR5cGUg b2YgdGhpcyBwdWJsaWNhdGlvbiBvYmplY3QgKi8KIAljaGFyCSAgICpuYW1lOwogCVB1YmxpY2F0 aW9uVGFibGUgKnB1YnRhYmxlOworCUxpc3QJICAgKmV4Y2VwdF90YWJsZXM7CS8qIHRhYmxlcyBz cGVjaWZpZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgKGZvcgorCQkJCQkJCQkgKiBUQUJMRVMgSU4g U0NIRU1BKSAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KIH0gUHVibGljYXRpb25PYmpTcGVjOwogCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDI5ZTU0YjIxNGEwLi4xNjFkYjQ1OGY0OSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTI3MCw2ICsy NzAsMTIgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRh YmxlMiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHRlc3QKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgInRlc3RwdWJfdGJsMSIKIExJTkUgMTogLi4uX2ZvcmFsbHRhYmxlc19leGNlcHR0 YWJsZTIgRk9SIEFMTCBUQUJMRVMgRVhDRVBUICh0ZXN0cHViX3RiLi4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gZmFp bCAtIEVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucworQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2VycgorICAgIEZPUiBUQUJMRSB0ZXN0cHVi X3RibDEsIHRlc3RwdWJfdGJsMiBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsMyk7CitFUlJPUjog IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgVEFCTEUgcHVibGljYXRpb24gb2JqZWN0cworTElO RSAyOiAgICAgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyIEVYQ0VQVCAoVEFC TEUgdGVzdHAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLS0gU0VUIEFMTCBUQUJM RVMvU0VRVUVOQ0VTCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KQEAgLTQ3MCw3ICs0NzYsMTAzIEBAIEhJTlQ6ICBDaGFuZ2UgdGhlIHB1YmxpY2F0aW9uJ3Mg RVhDRVBUIGNsYXVzZSB1c2luZyBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIEFMCiBSRVNFVCBj bGllbnRfbWluX21lc3NhZ2VzOwogRFJPUCBUQUJMRSB0ZXN0cHViX3Jvb3QsIHRlc3RwdWJfcGFy dDEsIHRhYl9tYWluOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViODsKLS0tLSBUZXN0cyBmb3Ig cHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCB0ZXN0cyBmb3IgVEFCTEVTIElOIFNDSEVNQQor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CistLSBDcmVhdGUgdGFibGVzIGluIHB1Yl90ZXN0IGZv ciB0aGVzZSB0ZXN0cworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIChhIGlu dCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3Ri bF9zMiAoeCBpbnQgcHJpbWFyeSBrZXksIHkgdGV4dCk7CistLSBDcmVhdGUgc2FtZS1uYW1lZCB0 YWJsZXMgaW4gcHVibGljIHRvIHZlcmlmeSB1bnF1YWxpZmllZCBFWENFUFQgZW50cmllcworLS0g YXJlIHF1YWxpZmllZCB3aXRoIHRoZSBuYW1lZCBzY2hlbWEsIG5vdCBwdWJsaWMKK0NSRUFURSBU QUJMRSB0ZXN0cHViX25vcGsgKGZvbyBpbnQsIGJhciBpbnQpOworQ1JFQVRFIFRBQkxFIHRlc3Rw dWJfdGJsX3MxIChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKKy0tIEJhc2ljOiBleGNsdWRl IG9uZSB0YWJsZSBmcm9tIGEgc2NoZW1hIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBm ICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKworLS0gRXhjbHVkZSBtdWx0 aXBsZSB0YWJsZXMgdXNpbmcgdW5xdWFsaWZpZWQgbmFtZXM7IHNhbWUtbmFtZWQgdGFibGVzIGV4 aXN0IGluCistLSBwdWJsaWMgdG8gY29uZmlybSB1bnF1YWxpZmllZCBuYW1lcyByZXNvbHZlIHRv IHB1Yl90ZXN0LCBub3QgcHVibGljCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFf ZXhjZXB0MgorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUg dGVzdHB1Yl9ub3BrLCB0ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNl cHQyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3NjaGVtYV9leGNlcHQyCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVz Y3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwg CitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0YWJsZXM6Cisg ICAgInB1Yl90ZXN0LnRlc3RwdWJfbm9wayIKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEi CisKKy0tIGZhaWw6IEVYQ0VQVCB0YWJsZSBiZWxvbmdzIHRvIGEgZGlmZmVyZW50IHNjaGVtYQor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3dyb25nc2NoZW1hCisgICAgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90Ymwx KTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50ZXN0cHViX3RibDEiIGluIEVYQ0VQVCBjbGF1c2Ug ZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QiCitMSU5FIDI6ICAgICBGT1IgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cC4uLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCist LSBmYWlsOiBjcm9zcy1zY2hlbWEgRVhDRVBUIG5vdCBhbGxvd2VkOyBlYWNoIEVYQ0VQVCBpcyBi b3VuZCB0byBpdHMgaW1tZWRpYXRlIHNjaGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJf ZXhjZXB0X2Nyb3Nzc2NoZW1hCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QsIHB1 YmxpYyBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJsaWMudGVzdHB1 Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIiBpbiBFWENF UFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEgInB1YmxpYyIKK0xJTkUgMjogLi4u UiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBwdWJsaWMgRVhDRVBUIChUQUJMRSBwdWJfdGVz dC50Li4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorLS0gTXVsdGlwbGUgc2NoZW1hcyBlYWNoIHdpdGggdGhlaXIgb3duIEVY Q0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVs dGkKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxKSwKKyAgICAgICAgICAgICAgICAgIHB1YmxpYyBFWENFUFQgKFRB QkxFIHRlc3RwdWJfdGJsMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0 aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFi bGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCisgICAgInB1YmxpYyIKK0V4Y2VwdCB0 YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorICAgICJwdWJsaWMudGVzdHB1 Yl90YmwxIgorCistLSBmYWlsOiB0YWJsZSBhcHBlYXJzIGluIGJvdGggdGhlIGV4cGxpY2l0IHRh YmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9leGNlcHRfY29uZmxpY3QKKyAgICBGT1IgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEs IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMSk7CitFUlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIgY2Fubm90 IGFwcGVhciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZQorLS0g ZmFpbDogbm9uZXhpc3RlbnQgdGFibGUgaW4gRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZXhjZXB0X25vcmVsCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5ub25leGlzdGVudF90YWJsZSk7CitFUlJPUjogIHJl bGF0aW9uICJwdWJfdGVzdC5ub25leGlzdGVudF90YWJsZSIgZG9lcyBub3QgZXhpc3QKKy0tIGZh aWw6IHBhcnRpdGlvbiBjYW5ub3QgYXBwZWFyIGluIEVYQ0VQVCBjbGF1c2U7IG9ubHkgcm9vdCB0 YWJsZXMgYXJlIGFsbG93ZWQKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9z IChhIGludCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfcGFydF9zIFBBUlRJVElPTiBPRiBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIEZPUiBW QUxVRVMgSU4gKDEpOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3BhcnRpdGlv bgorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl9wYXJ0X3MpOworRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSByZWxhdGlvbiAicHVi X3Rlc3QudGVzdHB1Yl9wYXJ0X3MiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgY2xhdXNlCitE RVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBpbmRpdmlkdWFsIHBh cnRpdGlvbnMuCistLSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUgZmly c3QgZW50cnkgaW4gdGhlIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2V4Y2VwdF9ub2t3CisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0 ZXN0cHViX25vcGspOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9u b3BrIgorTElORSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0 ZXN0cHViX25vcGspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCistLSBDbGVhbnVwCitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworRFJPUCBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgcHViX3Rlc3QudGVzdHB1Yl90YmxfczI7CitE Uk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgQ0FTQ0FERTsKK0RST1AgVEFCTEUg dGVzdHB1Yl9ub3BrLCB0ZXN0cHViX3RibF9zMTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFfZXhj ZXB0X211bHRpOworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CistLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIENSRUFURSBTRVFVRU5DRSByZWdyZXNz X3B1Yl9zZXEwOwogQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0LnJlZ3Jlc3NfcHViX3NlcTE7CiAt LSBGT1IgQUxMIFNFUVVFTkNFUwpAQCAtMTUyMiw3ICsxNjI0LDcgQEAgQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZm9ydGJsIEZPUiBUQUJMRSB0ZXN0cHViX3RibDEsIHB1Yl90ZXN0LnRlc3Rw dWJfbm9wazsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAtLSBmYWlsIC0gYWxyZWFkeSBh ZGRlZAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YmwgQUREIFRBQkxFIHRlc3RwdWJf dGJsMTsKLUVSUk9SOiAgcmVsYXRpb24gInRlc3RwdWJfdGJsMSIgaXMgYWxyZWFkeSBtZW1iZXIg b2YgcHVibGljYXRpb24gInRlc3RwdWJfZm9ydGJsIgorRVJST1I6ICByZWxhdGlvbiAicHVibGlj LnRlc3RwdWJfdGJsMSIgaXMgYWxyZWFkeSBtZW1iZXIgb2YgcHVibGljYXRpb24gInRlc3RwdWJf Zm9ydGJsIgogLS0gZmFpbCAtIGFscmVhZHkgYWRkZWQKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcnRibCBGT1IgVEFCTEUgdGVzdHB1Yl90YmwxOwogRVJST1I6ICBwdWJsaWNhdGlvbiAi dGVzdHB1Yl9mb3J0YmwiIGFscmVhZHkgZXhpc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlv bi5zcWwKaW5kZXggMDQxZTE0YTRkZTYuLjkxNjJkNGQxNWE1IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsCkBAIC0xMjMsNiArMTIzLDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRB QkwKIFxkIHRlc3RwdWJfdGJsMQogLS0gZmFpbCAtIGZpcnN0IHRhYmxlIGluIHRoZSBFWENFUFQg bGlzdCBzaG91bGQgdXNlIFRBQkxFIGtleXdvcmQKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTIgRk9SIEFMTCBUQUJMRVMgRVhDRVBUICh0ZXN0cHVi X3RibDEsIHRlc3RwdWJfdGJsMik7CistLSBmYWlsIC0gRVhDRVBUIGlzIG5vdCBhbGxvd2VkIGZv ciBGT1IgVEFCTEUgcHVibGljYXRpb25zCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNl cHRfZXJyCisgICAgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyIEVYQ0VQVCAo VEFCTEUgdGVzdHB1Yl90YmwzKTsKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAtLSBTRVQgQUxMIFRBQkxFUy9TRVFVRU5DRVMKQEAgLTIyMCw3ICsyMjMs NzEgQEAgUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgdGVzdHB1Yl9yb290 LCB0ZXN0cHViX3BhcnQxLCB0YWJfbWFpbjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yjg7CiAK LS0tLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCB0ZXN0cyBmb3IgVEFC TEVTIElOIFNDSEVNQQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CistLSBDcmVhdGUgdGFibGVz IGluIHB1Yl90ZXN0IGZvciB0aGVzZSB0ZXN0cworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3Rw dWJfdGJsX3MxIChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKK0NSRUFURSBUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3RibF9zMiAoeCBpbnQgcHJpbWFyeSBrZXksIHkgdGV4dCk7CistLSBDcmVh dGUgc2FtZS1uYW1lZCB0YWJsZXMgaW4gcHVibGljIHRvIHZlcmlmeSB1bnF1YWxpZmllZCBFWENF UFQgZW50cmllcworLS0gYXJlIHF1YWxpZmllZCB3aXRoIHRoZSBuYW1lZCBzY2hlbWEsIG5vdCBw dWJsaWMKK0NSRUFURSBUQUJMRSB0ZXN0cHViX25vcGsgKGZvbyBpbnQsIGJhciBpbnQpOworQ1JF QVRFIFRBQkxFIHRlc3RwdWJfdGJsX3MxIChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKKwor LS0gQmFzaWM6IGV4Y2x1ZGUgb25lIHRhYmxlIGZyb20gYSBzY2hlbWEgcHVibGljYXRpb24KK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisgICAgRk9SIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7 CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisKKy0tIEV4Y2x1ZGUgbXVsdGlwbGUgdGFi bGVzIHVzaW5nIHVucXVhbGlmaWVkIG5hbWVzOyBzYW1lLW5hbWVkIHRhYmxlcyBleGlzdCBpbgor LS0gcHVibGljIHRvIGNvbmZpcm0gdW5xdWFsaWZpZWQgbmFtZXMgcmVzb2x2ZSB0byBwdWJfdGVz dCwgbm90IHB1YmxpYworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIK KyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJf bm9waywgdGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MgorCist LSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBhIGRpZmZlcmVudCBzY2hlbWEKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF93cm9uZ3NjaGVtYQorICAgIEZPUiBUQUJMRVMg SU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CisK Ky0tIGZhaWw6IGNyb3NzLXNjaGVtYSBFWENFUFQgbm90IGFsbG93ZWQ7IGVhY2ggRVhDRVBUIGlz IGJvdW5kIHRvIGl0cyBpbW1lZGlhdGUgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9leGNlcHRfY3Jvc3NzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCwg cHVibGljIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1YmxpYy50ZXN0 cHViX3RibDEpOworCistLSBNdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhD RVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0 aQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQVCAoVEFC TEUgdGVzdHB1Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorCist LSBmYWlsOiB0YWJsZSBhcHBlYXJzIGluIGJvdGggdGhlIGV4cGxpY2l0IHRhYmxlIGxpc3QgYW5k IHRoZSBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfY29u ZmxpY3QKKyAgICBGT1IgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIFRBQkxFUyBJTiBT Q0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CisK Ky0tIGZhaWw6IG5vbmV4aXN0ZW50IHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9ub3JlbAorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworCistLSBm YWlsOiBwYXJ0aXRpb24gY2Fubm90IGFwcGVhciBpbiBFWENFUFQgY2xhdXNlOyBvbmx5IHJvb3Qg dGFibGVzIGFyZSBhbGxvd2VkCitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRf cyAoYSBpbnQpIFBBUlRJVElPTiBCWSBMSVNUIChhKTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX3BhcnRfcyBQQVJUSVRJT04gT0YgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBGT1Ig VkFMVUVTIElOICgxKTsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9wYXJ0aXRp b24KKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfcGFydF9zKTsKKworLS0gZmFpbDogVEFCTEUga2V5d29yZCBpcyByZXF1aXJl ZCBmb3IgdGhlIGZpcnN0IGVudHJ5IGluIHRoZSBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHRfbm9rdworICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0IEVYQ0VQVCAodGVzdHB1Yl9ub3BrKTsKKworLS0gQ2xlYW51cAorUkVTRVQgY2xpZW50X21p bl9tZXNzYWdlczsKK0RST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0 LnRlc3RwdWJfdGJsX3MyOworRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIENB U0NBREU7CitEUk9QIFRBQkxFIHRlc3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczE7CitEUk9QIFBV QkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIs IHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VR VUVOQ0VTCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIENS RUFURSBTRVFVRU5DRSByZWdyZXNzX3B1Yl9zZXEwOwogQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0 LnJlZ3Jlc3NfcHViX3NlcTE7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzN19leGNlcHQucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCmlu ZGV4IDhjNThkMjgyZWVlLi4xOGM3YjJjMWZjYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdf ZXhjZXB0LnBsCkBAIC0yNCwxNCArMjQsMTcgQEAgbXkgJHJlc3VsdDsKIAogc3ViIHRlc3RfZXhj ZXB0X3Jvb3RfcGFydGl0aW9uCiB7Ci0JbXkgKCRwdWJ2aWFyb290KSA9IEBfOworCW15ICgkcHVi dmlhcm9vdCwgJHB1YnNxbCkgPSBAXzsKKwkkcHVic3FsIC8vPQorCSAgIkNSRUFURSBQVUJMSUNB VElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSByb290MSkiOwor CSRwdWJzcWwgLj0gIiBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9ICRwdWJ2aWFy b290KSI7CiAKIAkjIElmIHRoZSByb290IHBhcnRpdGlvbmVkIHRhYmxlIGlzIGluIHRoZSBFWENF UFQgY2xhdXNlLCBhbGwgaXRzCiAJIyBwYXJ0aXRpb25zIGFyZSBleGNsdWRlZCBmcm9tIHB1Ymxp Y2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZQogCSMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qg c2V0dGluZy4KIAkkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAkJJ3Bvc3RncmVzJywgcXEo Ci0JCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IChUQUJMRSByb290MSkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSAkcHVidmlh cm9vdCk7CisJCSRwdWJzcWw7CiAJCUlOU0VSVCBJTlRPIHJvb3QxIFZBTFVFUyAoMSksICgxMDEp OwogCSkpOwogCSRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLApAQCAtMjIz LDYgKzIyNiwxMzEgQEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAogdGVzdF9leGNlcHRf cm9vdF9wYXJ0aXRpb24oJ2ZhbHNlJyk7CiB0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlvbigndHJ1 ZScpOwogCisjIFNhbWUgdmFsaWRhdGlvbiB1c2luZyBUQUJMRVMgSU4gU0NIRU1BIGluc3RlYWQg b2YgRk9SIEFMTCBUQUJMRVMuCitteSAkc2NoZW1hX3B1YiA9CisgICJDUkVBVEUgUFVCTElDQVRJ T04gdGFwX3B1Yl9wYXJ0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYyBFWENFUFQgKFRBQkxF IHB1YmxpYy5yb290MSkiOwordGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24oJ2ZhbHNlJywgJHNj aGVtYV9wdWIpOwordGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24oJ3RydWUnLCAkc2NoZW1hX3B1 Yik7CisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMg RVhDRVBUIHRlc3QgY2FzZXMgZm9yIFRBQkxFUyBJTiBTQ0hFTUEKKyMgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBDcmVhdGUgYSBkZWRpY2F0ZWQgc2No ZW1hIHdpdGggdHdvIHRhYmxlczogb25lIHRvIGJlIHB1Ymxpc2hlZCBhbmQgb25lIHRvIGJlCisj IGV4Y2x1ZGVkLiAgQWxzbyBjcmVhdGUgaW5oZXJpdGVkIHRhYmxlcyB0byB2ZXJpZnkgT05MWSBz ZW1hbnRpY3MuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgK KwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiX3B1Ymxpc2hlZCBB UyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsNSkgQVMgYTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50 YWJfZXhjbHVkZWQgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDUpIEFTIGE7CisJQ1JFQVRF IFRBQkxFIHNjaDEucGFyZW50IChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEuY2hpbGQgKGIg aW50KSBJTkhFUklUUyAoc2NoMS5wYXJlbnQpOworKSk7CisKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRF IFRBQkxFIHNjaDEudGFiX3B1Ymxpc2hlZCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnRh Yl9leGNsdWRlZCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcmVudCAoYSBpbnQpOwor CUNSRUFURSBUQUJMRSBzY2gxLmNoaWxkIChiIGludCkgSU5IRVJJVFMgKHNjaDEucGFyZW50KTsK KykpOworCisjIEJhc2ljIHRlc3Q6IGluaXRpYWwgc3luYyByZXNwZWN0cyBFWENFUFQuCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04g c2NoX3B1YiBGT1IgVEFCTEVTIElOIFNDSEVNQSBzY2gxIEVYQ0VQVCAoVEFCTEUgc2NoMS50YWJf ZXhjbHVkZWQpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJDUkVBVEUgU1VCU0NSSVBUSU9OIHNjaF9zdWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25u c3RyJyBQVUJMSUNBVElPTiBzY2hfcHViIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9y X3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJHJlc3Vs dCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qg Y291bnQoKikgRlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQiKTsKK2lzKCRyZXN1bHQsIHFxKDUpLAor CSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogaW5pdGlhbCBzeW5jIGNvcGllcyBpbmNsdWRlZCB0 YWJsZScpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9leGNsdWRlZCIpOworaXMoJHJl c3VsdCwgcXEoMCksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBpbml0aWFsIHN5bmMgc2tp cHMgZXhjbHVkZWQgdGFibGUnKTsKKworIyBETUw6IG9ubHkgdGhlIGluY2x1ZGVkIHRhYmxlIHNo b3VsZCBiZSByZXBsaWNhdGVkLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJfcHVibGlzaGVkIFZBTFVFUyAoNik7CisJ SU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFMVUVTICg2KTsKKykpOworJG5vZGVfcHVi bGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZS T00gc2NoMS50YWJfcHVibGlzaGVkIik7CitpcygkcmVzdWx0LCBxcSg2KSwKKwknVEFCTEVTIElO IFNDSEVNQSBFWENFUFQ6IERNTCBvbiBpbmNsdWRlZCB0YWJsZSBpcyByZXBsaWNhdGVkJyk7Cisk cmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIik7CitpcygkcmVzdWx0LCBxcSgw KSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IERNTCBvbiBleGNsdWRlZCB0YWJsZSBpcyBu b3QgcmVwbGljYXRlZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsKKworIyBJbmhlcml0 ZWQgdGFibGVzOiBleGNsdWRpbmcgdGhlIHBhcmVudCAod2l0aG91dCBPTkxZKSBhbHNvIGV4Y2x1 ZGVzIHRoZSBjaGlsZC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhD RVBUIChUQUJMRSBzY2gxLnBhcmVudCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gc2NoX3N1YiBDT05ORUNUSU9OICck cHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHNjaF9wdWIiCispOworJG5vZGVfc3Vic2Ny aWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAnc2NoX3N1 YicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQg SU5UTyBzY2gxLmNoaWxkIFZBTFVFUyAoZ2VuZXJhdGVfc2VyaWVzKDEsNSksIGdlbmVyYXRlX3Nl cmllcygxLDUpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3NjaF9z dWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS5jaGlsZCIpOworaXMoJHJlc3VsdCwgcXEo MCksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBleGNsdWRpbmcgcGFyZW50ICh3aXRob3V0 IE9OTFkpIGFsc28gZXhjbHVkZXMgY2hpbGQnCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWIn KTsKKworIyBUZXN0IHRoYXQgRVhDRVBUIChUQUJMRSBPTkxZIHBhcmVudCkgZXhjbHVkZXMgb25s eSB0aGUgcGFyZW50IGl0c2VsZiwgbm90IGl0cworIyBjaGlsZC4gIFRydW5jYXRlIGNoaWxkIGZp cnN0IHNvIHJvd3MgZnJvbSB0aGUgcHJldmlvdXMgdGVzdCBhcmUgbm90IGNvcGllZCBieQorIyB0 aGUgaW5pdGlhbCB0YWJsZSBzeW5jIG9mIHRoZSBuZXh0IHN1YnNjcmlwdGlvbi4KKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdUUlVOQ0FURSBzY2gxLmNoaWxkJyk7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1RSVU5DQVRFIHNjaDEuY2hp bGQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQ VUJMSUNBVElPTiBzY2hfcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhDRVBUIChUQUJM RSBPTkxZIHNjaDEucGFyZW50KSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3ViIENPTk5FQ1RJT04gJyRwdWJs aXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVy LT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7 CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRP IHNjaDEuY2hpbGQgVkFMVUVTIChnZW5lcmF0ZV9zZXJpZXMoMSw1KSwgZ2VuZXJhdGVfc2VyaWVz KDEsNSkpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1Yicp OworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLmNoaWxkIik7CitpcygkcmVzdWx0LCBxcSg1KSwK KwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IE9OTFkgcGFyZW50IGluIEVYQ0VQVCBkb2VzIG5v dCBleGNsdWRlIGNoaWxkJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2NoX3B1YicpOworCisjIENsZWFu dXAgc2NoZW1hIHRhYmxlcyBiZWZvcmUgdGhlIG11bHRpLXB1YmxpY2F0aW9uIHNlY3Rpb24uCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTQ0hFTUEgc2NoMSBD QVNDQURFJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag U0NIRU1BIHNjaDEgQ0FTQ0FERScpOworCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAjIFRlc3Qgd2hlbiBhIHN1YnNjcmlwdGlvbiBpcyBzdWJzY3JpYmlu ZyB0byBtdWx0aXBsZSBwdWJsaWNhdGlvbnMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KQEAgLTI1NCw2ICszODIsNyBAQCAkbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgKIAlEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIyOwogCVRSVU5DQVRFIHRhYjE7CiAp KTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJ UFRJT04gdGFwX3N1YicpOwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxKFRSVU5DQVRFIHRhYjEpKTsKIAogIyBPSyB3aGVuIGEgdGFibGUgaXMgZXhjbHVkZWQgYnkg cHViMSBFWENFUFQgY2xhdXNlLCBidXQgaXQgaXMgaW5jbHVkZWQgYnkgcHViMgotLSAKMi41MC4x IChBcHBsZSBHaXQtMTU1KQoK --000000000000e6a2a70652df07fb Content-Type: application/x-patch; name="v7-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABLE.patch" Content-Disposition: attachment; filename="v7-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mppelrn21 RnJvbSBlZjI0MmUzNDkyNmRkZDMxMGMzNWQ4ZTcwMjhiMzc2ZjQ5M2Q0NzcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDI2IE1heSAyMDI2IDE1OjM2OjA3ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 NyAyLzNdIEFkZCBFWENFUFQgc3VwcG9ydCB0byBBTFRFUiBQVUJMSUNBVElPTiBBREQgVEFCTEVT IElOCiBTQ0hFTUEKCkV4dGVuZCB0aGUgRVhDRVBUIGNsYXVzZSBzdXBwb3J0IHRvIGFsbG93IHRh YmxlcyB0byBiZSBleGNsdWRlZCB3aGVuCmFkZGluZyBhIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9u IHZpYSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gQURELgoKU3ludGF4OgogIEFMVEVSIFBVQkxJQ0FU SU9OIHB1YiBBREQgVEFCTEVTIElOIFNDSEVNQSBzIEVYQ0VQVCAoVEFCTEUgcy50MSk7CgpTaW5j ZSBwZ19kdW1wIHVzZXMgQUxURVIgUFVCTElDQVRJT04gLi4uIEFERCwgc3VwcG9ydCBmb3IgaXQg aXMKaW5jbHVkZWQgaW4gdGhpcyBwYXRjaC4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwgICB8ICA0MCArKysrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jICAgICAgfCAgMTkgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgfCAxMDggKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgfCAgMzAgKysrKystCiBzcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICB8ICAzNiArKysrKysrKwogc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgfCAgMTUgKysrCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCB8ICA2OSArKysrKysrKysrKysrLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgfCAgMzQgKysrKysrLQogc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCAgICAgfCAgMzIgKysrKysrKwogOSBmaWxlcyBj aGFuZ2VkLCAzNjggaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGFhMzJiYjE2OWU5Li43M2Y2Mzc1YTY2ZiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzEsNyArMzEsNyBA QCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9m OjwvcGhyYXNlPgogCiAgICAgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX2FuZF9jb2x1bW5zPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0KLSAgICBUQUJMRVMgSU4gU0NI RU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNl YWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCisgICAgVEFCTEVTIElOIFNDSEVNQSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFjZWFi bGU+IFssIC4uLiBdCiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wdWJsaWNhdGlvbl9hbGxfb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNl PgogCkBAIC00Nyw2ICs0NywxMCBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogCiAgICAgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IFsg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l eHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdCiAKKzxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZXNfaW5fc2NoZW1hPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJh c2U+CisKKyAgICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbIEVYQ0VQVCAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leGNlcHRfdGFibGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4u IF0gKSBdCisKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNl cHRfdGFibGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKICAgICBUQUJMRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4g WywgLi4uIF0KQEAgLTExMCw2ICsxMTQsMTQgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAg IDxsaXRlcmFsPkFERCBUQUJMRTwvbGl0ZXJhbD4uCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAg IFRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB3aXRoCisg ICA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gZXhjbHVkZSBzcGVj aWZpYyB0YWJsZXMgZnJvbSB0aGUKKyAgIHB1YmxpY2F0aW9uLiBVc2luZyA8bGl0ZXJhbD5EUk9Q IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IG9uIGEgcHVibGljYXRpb24KKyAgIHdpbGwgYXV0 b21hdGljYWxseSBhbHNvIHJlbW92ZSBhbnkgYXNzb2NpYXRlZCA8bGl0ZXJhbD5FWENFUFQ8L2xp dGVyYWw+CisgICBlbnRyaWVzLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgZm91cnRo IHZhcmlhbnQgb2YgdGhpcyBjb21tYW5kIGxpc3RlZCBpbiB0aGUgc3lub3BzaXMgY2FuIGNoYW5n ZQogICAgYWxsIG9mIHRoZSBwdWJsaWNhdGlvbiBwcm9wZXJ0aWVzIHNwZWNpZmllZCBpbgpAQCAt MTk4LDYgKzIxMCwyMiBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5FWENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxl X29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBXaGVuIHVzZWQgd2l0aCA8bGl0ZXJhbD5BREQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIHNwZWNpZmllcworICAgICAgdGFibGVzIHRvIGJl IGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLiAgRWFjaCBuYW1lZAorICAgICAgdGFibGUg bXVzdCBiZWxvbmcgdG8gdGhlIHNjaGVtYSBzcGVjaWZpZWQgaW4gdGhlIHNhbWUKKyAgICAgIDxs aXRlcmFsPlRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGNsYXVzZS4gIFRhYmxlIG5hbWVzIG1h eSBiZQorICAgICAgc2NoZW1hLXF1YWxpZmllZCBvciB1bnF1YWxpZmllZDsgdW5xdWFsaWZpZWQg bmFtZXMgYXJlIGltcGxpY2l0bHkKKyAgICAgIHF1YWxpZmllZCB3aXRoIHRoZSBzY2hlbWEgbmFt ZWQgaW4gdGhlIHNhbWUgY2xhdXNlLiAgU2VlCisgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3Jl YXRlcHVibGljYXRpb24iLz4gZm9yIGZ1cnRoZXIgZGV0YWlscyBvbiB0aGUKKyAgICAgIHNlbWFu dGljcyBvZiA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0 ZXJtPjxsaXRlcmFsPlNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNh dGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpAQCAtMjg4LDYgKzMxNiwxNiBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxl c19wdWJsaWNhdGlvbiBBREQgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9w cm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgQWRkIHNjaGVtYSA8c3Ry dWN0bmFtZT5zYWxlczwvc3RydWN0bmFtZT4gdG8gdGhlIHB1YmxpY2F0aW9uCisgICA8c3RydWN0 bmFtZT5zYWxlc19wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT4sIGV4Y2x1ZGluZyB0aGUKKyAgIDxz dHJ1Y3RuYW1lPnNhbGVzLmludGVybmFsPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1l PnNhbGVzLmRyYWZ0czwvc3RydWN0bmFtZT4gdGFibGVzOgorPHByb2dyYW1saXN0aW5nPgorQUxU RVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2Fs ZXMgRVhDRVBUIChUQUJMRSBpbnRlcm5hbCwgZHJhZnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg IDwvcGFyYT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0 cnVjdG5hbWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBz Y2hlbWEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCBiNGM1YTMxNzg2OS4u YzdmYTgxYmZjMzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTY0OCwx NSArNjQ4LDE4IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0 aW9uUmVsSW5mbyAqcHJpLAogCSAqIGhlcmUsIGFzIENyZWF0ZVB1YmxpY2F0aW9uKCkgZnVuY3Rp b24gaW52YWxpZGF0ZXMgYWxsIHJlbGF0aW9ucyBhcyBwYXJ0CiAJICogb2YgZGVmaW5pbmcgYSBG T1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbi4KIAkgKgotCSAqIEZvciBBTFRFUiBQVUJMSUNBVElP TiwgaW52YWxpZGF0aW9uIGlzIG5lZWRlZCBvbmx5IHdoZW4gYWRkaW5nIGFuCi0JICogRVhDRVBU IHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWxyZWFkeSBtYXJrZWQgYXMgQUxMIFRBQkxFUy4gRm9y Ci0JICogcHVibGljYXRpb25zIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGVtcHR5IG9yIGRlZmluZWQg YXMgQUxMIFNFUVVFTkNFUyBhbmQKLQkgKiBhcmUgYmVpbmcgY29udmVydGVkIHRvIEFMTCBUQUJM RVMsIGludmFsaWRhdGlvbiBpcyBza2lwcGVkIGhlcmUsIGFzCi0JICogQWx0ZXJQdWJsaWNhdGlv bkFsbEZsYWdzKCkgZnVuY3Rpb24gaW52YWxpZGF0ZXMgYWxsIHJlbGF0aW9ucyB3aGlsZQotCSAq IG1hcmtpbmcgdGhlIHB1YmxpY2F0aW9uIGFzIEFMTCBUQUJMRVMgcHVibGljYXRpb24uCisJICog Rm9yIEFMVEVSIFBVQkxJQ0FUSU9OLCBpbnZhbGlkYXRpb24gaXMgbmVlZGVkIHdoZW4gYWRkaW5n IGFuIEVYQ0VQVAorCSAqIHRhYmxlIHRvIGVpdGhlciBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0 aW9uIChwdWItPmFsbHRhYmxlcyBpcyB0cnVlKQorCSAqIG9yIGEgRk9SIFRBQkxFUyBJTiBTQ0hF TUEgcHVibGljYXRpb24gKGlzX3NjaGVtYV9wdWJsaWNhdGlvbiBpcyB0cnVlKS4KKwkgKiBUaGUg ZXhjZXB0aW9uOiB3aGVuIGEgcHVibGljYXRpb24gaXMgYmVpbmcgY29udmVydGVkIHRvIEZPUiBB TEwgVEFCTEVTCisJICogKHB1Yi0+YWxsdGFibGVzIGlzIHN0aWxsIGZhbHNlIGF0IHRoaXMgcG9p bnQpLAorCSAqIEFsdGVyUHVibGljYXRpb25BbGxGbGFncygpIHdpbGwgcGVyZm9ybSBhIGZ1bGwg aW52YWxpZGF0aW9uLCBzbyB3ZQorCSAqIHNraXAgaXQgaGVyZS4KIAkgKi8KLQlpbnZhbF9leGNl cHRfdGFibGUgPSAoYWx0ZXJfc3RtdCAhPSBOVUxMKSAmJiBwdWItPmFsbHRhYmxlcyAmJgotCQko YWx0ZXJfc3RtdC0+Zm9yX2FsbF90YWJsZXMgJiYgcHJpLT5leGNlcHQpOworCWludmFsX2V4Y2Vw dF90YWJsZSA9IChhbHRlcl9zdG10ICE9IE5VTEwpICYmIHByaS0+ZXhjZXB0ICYmCisJCShwdWIt PmFsbHRhYmxlcworCQkgPyBhbHRlcl9zdG10LT5mb3JfYWxsX3RhYmxlcworCQkgOiBpc19zY2hl bWFfcHVibGljYXRpb24ocHViaWQpKTsKIAogCWlmICghcHJpLT5leGNlcHQgfHwgaW52YWxfZXhj ZXB0X3RhYmxlKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXgg NjVhZTQwMjEwZGIuLmYyMzg5M2JiZDEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlv bmNtZHMuYwpAQCAtNzAsNiArNzAsMTMgQEAgc3RhdGljIHZvaWQgUHVibGljYXRpb25Ecm9wVGFi bGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyB2b2lk IFB1YmxpY2F0aW9uQWRkU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgaWZf bm90X2V4aXN0cywKIAkJCQkJCQkJICBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCk7CiBzdGF0 aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywg Ym9vbCBtaXNzaW5nX29rKTsKK3N0YXRpYyB2b2lkIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10LAorCQkJCQkJCQkJSGVhcFR1cGxlIHR1cCwgTGlzdCAq c2NoZW1haWRsaXN0LAorCQkJCQkJCQkJTGlzdCAqZXhjZXB0X3JlbF9uYW1lcyk7CitzdGF0aWMg dm9pZCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LAorCQkJCQkJCQkJCQkgICBIZWFwVHVwbGUgdHVwLAorCQkJCQkJCQkJCQkgICBM aXN0ICpleGNlcHRfcmVsX25hbWVzLAorCQkJCQkJCQkJCQkgICBMaXN0ICpzY2hlbWFpZGxpc3Qp Owogc3RhdGljIGNoYXIgZGVmR2V0R2VuZXJhdGVkQ29sc09wdGlvbihEZWZFbGVtICpkZWYpOwog CiAKQEAgLTE0NjgsNyArMTQ3NSw4IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAgKi8KIHN0YXRpYyB2b2lkCiBBbHRl clB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKLQkJCQkJCUhl YXBUdXBsZSB0dXAsIExpc3QgKnNjaGVtYWlkbGlzdCkKKwkJCQkJCUhlYXBUdXBsZSB0dXAsIExp c3QgKnNjaGVtYWlkbGlzdCwKKwkJCQkJCUxpc3QgKmV4Y2VwdF9yZWxfbmFtZXMpCiB7CiAJRm9y bV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVD VCh0dXApOwogCkBAIC0xNTQ1LDYgKzE1NTMsOTggQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMo QWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCSAqLwogCQlQdWJsaWNhdGlvbkFkZFNjaGVt YXMocHViZm9ybS0+b2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIHN0bXQpOwogCX0KKworCS8qCisJ ICogSW5jcmVtZW50IHRoZSBjb21tYW5kIGNvdW50ZXIgc28gdGhhdCBpc19zY2hlbWFfcHVibGlj YXRpb24oKSBpbgorCSAqIEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMoKSBjYW4gc2VlIHRo ZSBqdXN0LWluc2VydGVkIHNjaGVtYQorCSAqIHJvd3Mgd2hlbiBBbHRlclB1YmxpY2F0aW9uU2No ZW1hRXhjZXB0VGFibGVzIHJ1bnMgbmV4dC4KKwkgKi8KKwlpZiAoc3RtdC0+YWN0aW9uID09IEFQ X0FkZE9iamVjdHMgfHwgc3RtdC0+YWN0aW9uID09IEFQX1NldE9iamVjdHMpCisJCUNvbW1hbmRD b3VudGVySW5jcmVtZW50KCk7CisKKwlBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVz KHN0bXQsIHR1cCwgZXhjZXB0X3JlbF9uYW1lcywgc2NoZW1haWRsaXN0KTsKK30KKworLyoKKyAq IEFsdGVyIHRoZSBFWENFUFQgbGlzdCBvZiBhIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlvbi4KKyAq CisgKiBBZGRzLCByZW1vdmVzLCBvciByZXBsYWNlcyBleGNlcHQtdGFibGUgZW50cmllcyBpbiBw Z19wdWJsaWNhdGlvbl9yZWwKKyAqIChyb3dzIHdpdGggcHJleGNlcHQgPSB0cnVlKS4gIFRoZXNl IGVudHJpZXMgc3VwcHJlc3MgcHVibGljYXRpb24gb2YgdGhlCisgKiBuYW1lZCB0YWJsZXMgdGhh dCB3b3VsZCBvdGhlcndpc2UgYmUgY292ZXJlZCBieSBhIEZPUiBUQUJMRVMgSU4gU0NIRU1BCisg KiBjbGF1c2UuCisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0 VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAorCQkJCQkJCSBIZWFwVHVwbGUgdHVw LCBMaXN0ICpleGNlcHRfcmVsX25hbWVzLAorCQkJCQkJCSBMaXN0ICpzY2hlbWFpZGxpc3QpCit7 CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdF VFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCisJLyoKKwkgKiBO b3RoaW5nIHRvIGRvIGlmIG5vIEVYQ0VQVCBlbnRyaWVzLgorCSAqLworCWlmICghZXhjZXB0X3Jl bF9uYW1lcykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgRVhD RVBUIGVudHJpZXMgZm9yIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlvbnMKKwkgKiBvbmx5LiAgRm9y IEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucywgRVhDRVBUIGVudHJpZXMgYXJlIGFscmVhZHkK KwkgKiBwcm9jZXNzZWQgYnkgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcygpLgorCSAqLworCWlmIChz Y2hlbWFpZGxpc3QgPT0gTklMICYmICFpc19zY2hlbWFfcHVibGljYXRpb24ocHViaWQpKQorCQly ZXR1cm47CisKKwkvKgorCSAqIEVYQ0VQVCBpcyBub3QgbWVhbmluZ2Z1bCB3aXRoIERST1A6IGRy b3BwaW5nIGEgc2NoZW1hIGZyb20gYQorCSAqIHB1YmxpY2F0aW9uIGFscmVhZHkgcmVtb3ZlcyBh bGwgaXRzIGV4Y2VwdCBlbnRyaWVzIHZpYSBjYXNjYWRlLCBhbmQKKwkgKiB0aGVyZSBpcyBubyBz ZW5zaWJsZSBpbnRlcnByZXRhdGlvbiBvZiAiZHJvcCBvbmx5IHRoZSBleGNlcHQgZW50cnkgYnV0 CisJICoga2VlcCB0aGUgc2NoZW1hIi4KKwkgKi8KKwlpZiAoc3RtdC0+YWN0aW9uID09IEFQX0Ry b3BPYmplY3RzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBzdXBw b3J0ZWQgd2l0aCBEUk9QIGluIEFMVEVSIFBVQkxJQ0FUSU9OIikpKTsKKworCS8qCisJICogWFhY IEVYQ0VQVCB3aXRoIFNFVCBpcyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkLiAgV29ya2Fyb3Vu ZDogRFJPUCBhbmQKKwkgKiByZS1BREQgdGhlIHNjaGVtYSB3aXRoIHRoZSBkZXNpcmVkIEVYQ0VQ VCBsaXN0LgorCSAqLworCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfU2V0T2JqZWN0cykKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJIGVycm1zZygiRVhDRVBUIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkIHdpdGggU0VUIGlu IEFMVEVSIFBVQkxJQ0FUSU9OIiksCisJCQkJIGVycmhpbnQoIkRyb3AgYW5kIHJlLWFkZCB0aGUg c2NoZW1hIHdpdGggdGhlIGRlc2lyZWQgRVhDRVBUIGxpc3QuIikpKTsKKworCWlmIChzdG10LT5h Y3Rpb24gPT0gQVBfQWRkT2JqZWN0cykKKwl7CisJCUxpc3QJICAgKnJlbHM7CisJCUxpc3QJICAg KmV4cGxpY2l0cmVsaWRzOworCisJCXJlbHMgPSBPcGVuVGFibGVMaXN0KGV4Y2VwdF9yZWxfbmFt ZXMpOworCisJCWV4cGxpY2l0cmVsaWRzID0gR2V0SW5jbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9u cyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKKwkJLyoK KwkJICogVmFsaWRhdGUgdGhhdCBlYWNoIGV4Y2x1ZGVkIHRhYmxlIGlzIG5vdCBhbHNvIGluIHRo ZSBleHBsaWNpdCB0YWJsZQorCQkgKiBsaXN0ICh3aGljaCB3b3VsZCBiZSBjb250cmFkaWN0b3J5 KS4KKwkJICovCisJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5mbywgcHJpLCByZWxzKQor CQl7CisJCQlPaWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbik7CisK KwkJCWlmIChsaXN0X21lbWJlcl9vaWQoZXhwbGljaXRyZWxpZHMsIHJlbGlkKSkKKwkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKKwkJCQkJCWVycm1zZygidGFibGUgXCIlc1wiIGNhbm5vdCBhcHBlYXIgaW4gYm90aCB0aGUg dGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJCSAgIFJlbGF0aW9uR2V0 UXVhbGlmaWVkUmVsYXRpb25OYW1lKHByaS0+cmVsYXRpb24pKSk7CisJCX0KKworCQlQdWJsaWNh dGlvbkFkZFRhYmxlcyhwdWJpZCwgcmVscywgZmFsc2UsIHN0bXQpOworCisJCUNsb3NlVGFibGVM aXN0KHJlbHMpOworCX0KIH0KIAogLyoKQEAgLTE3NTQsMTAgKzE4NTQsMTIgQEAgQWx0ZXJQdWJs aWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQog CQkJCQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJCQkJCQkg ICBzdG10LT5wdWJuYW1lKSk7CiAKLQkJcmVsYXRpb25zID0gbGlzdF9jb25jYXQocmVsYXRpb25z LCBleGNlcHRfcmVsX25hbWVzKTsKKwkJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCQkJcmVs YXRpb25zID0gbGlzdF9jb25jYXQocmVsYXRpb25zLCBleGNlcHRfcmVsX25hbWVzKTsKKwogCQlB bHRlclB1YmxpY2F0aW9uVGFibGVzKHN0bXQsIHR1cCwgcmVsYXRpb25zLCBwc3RhdGUtPnBfc291 cmNldGV4dCwKIAkJCQkJCQkgICBzY2hlbWFpZGxpc3QgIT0gTklMKTsKLQkJQWx0ZXJQdWJsaWNh dGlvblNjaGVtYXMoc3RtdCwgdHVwLCBzY2hlbWFpZGxpc3QpOworCQlBbHRlclB1YmxpY2F0aW9u U2NoZW1hcyhzdG10LCB0dXAsIHNjaGVtYWlkbGlzdCwgZXhjZXB0X3JlbF9uYW1lcyk7CiAJCUFs dGVyUHVibGljYXRpb25BbGxGbGFncyhzdG10LCByZWwsIHR1cCk7CiAJfQogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpp bmRleCBkNTZkY2M3MDFjZS4uZTYyZDc0YzhjYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTAxOSw2ICs1 MDE5LDcgQEAgZHVtcFB1YmxpY2F0aW9uTmFtZXNwYWNlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1 YmxpY2F0aW9uU2NoZW1hSW5mbyAqcHVic2luZm8pCiAJUHVibGljYXRpb25JbmZvICpwdWJpbmZv ID0gcHVic2luZm8tPnB1YmxpY2F0aW9uOwogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCWNoYXIJICAg KnRhZzsKKwlib29sCQloYXNfZXhjZXB0ID0gZmFsc2U7CiAKIAkvKiBEbyBub3RoaW5nIGlmIG5v dCBkdW1waW5nIHNjaGVtYSAqLwogCWlmICghZG9wdC0+ZHVtcFNjaGVtYSkKQEAgLTUwMjksNyAr NTAzMCwzNCBAQCBkdW1wUHVibGljYXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAqZm91dCwgY29uc3Qg UHVibGljYXRpb25TY2hlbWFJbmZvICpwdWJzaW5mbykKIAlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVm ZmVyKCk7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkFMVEVSIFBVQkxJQ0FUSU9OICVz ICIsIGZtdElkKHB1YmluZm8tPmRvYmoubmFtZSkpOwotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiQUREIFRBQkxFUyBJTiBTQ0hFTUEgJXM7XG4iLCBmbXRJZChzY2hlbWFpbmZvLT5kb2JqLm5h bWUpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkFERCBUQUJMRVMgSU4gU0NIRU1BICVz IiwgZm10SWQoc2NoZW1haW5mby0+ZG9iai5uYW1lKSk7CisKKwkvKgorCSAqIEFwcGVuZCBFWENF UFQgY2xhdXNlIGZvciBhbnkgdGFibGVzIHRoYXQgYmVsb25nIHRvIHRoaXMgc2NoZW1hCisJICog YW5kIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlmb3IgKFNpbXBs ZVB0ckxpc3RDZWxsICpjZWxsID0gcHViaW5mby0+ZXhjZXB0X3RhYmxlcy5oZWFkOyBjZWxsOyBj ZWxsID0gY2VsbC0+bmV4dCkKKwl7CisJCVRhYmxlSW5mbyAgKnRiaW5mbyA9IChUYWJsZUluZm8g KikgY2VsbC0+cHRyOworCisJCWlmIChzdHJjbXAodGJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9i ai5uYW1lLCBzY2hlbWFpbmZvLT5kb2JqLm5hbWUpID09IDApCisJCXsKKwkJCWlmICghaGFzX2V4 Y2VwdCkKKwkJCXsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENFUFQgKCIp OworCQkJCWhhc19leGNlcHQgPSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKHF1ZXJ5LCAiLCAiKTsKKworCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJU QUJMRSBPTkxZICVzIiwgZm10SWQodGJpbmZvLT5kb2JqLm5hbWUpKTsKKwkJfQorCX0KKworCWlm IChoYXNfZXhjZXB0KQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIikiKTsKKworCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiO1xuIik7CiAKIAkvKgogCSAqIFRoZXJlIGlzIG5v IHBvaW50IGluIGNyZWF0aW5nIGRyb3AgcXVlcnkgYXMgdGhlIGRyb3AgaXMgZG9uZSBieSBzY2hl bWEKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggM2VlOWZkYTUwZTQuLmRlNTU0NDM2MjA1 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzI0Miw2ICszMjQyLDQyIEBAIG15ICV0 ZXN0cyA9ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEs IH0sCiAJfSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04gcHViMTEnID0+IHsKKwkJY3JlYXRlX29y ZGVyID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIx MSBGT1IgVEFCTEVTIElOIFNDSEVNQSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0X3RhYmxl KTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViMTEgV0lU SCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkv eG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAor CX0sCisKKwknQUxURVIgUFVCTElDQVRJT04gcHViMTEgQUREIFRBQkxFUyBJTiBTQ0hFTUEgZHVt cF90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdF90YWJsZSknCisJICA9PiB7CisJCXJlZ2V4cCA9PiBx ci9eCisJCQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1YjExIEFERCBUQUJMRVMgSU4gU0NIRU1BIGR1 bXBfdGVzdCBFWENFUFQgKFRBQkxFIE9OTFkgdGVzdF90YWJsZSk7XEUKKwkJCS94bSwKKwkJbGlr ZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJICB9LAorCisJ J0NSRUFURSBQVUJMSUNBVElPTiBwdWIxMicgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJ CWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIEZPUiBUQUJMRVMg SU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RfdGFibGUsIGR1bXBfdGVzdC50 ZXN0X3NlY29uZF90YWJsZSk7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1YjEyIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1 bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0 X2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0FMVEVSIFBVQkxJQ0FUSU9OIHB1YjEyIEFERCBUQUJM RVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RfdGFibGUsIGR1bXBfdGVz dC50ZXN0X3NlY29uZF90YWJsZSknCisJICA9PiB7CisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFM VEVSIFBVQkxJQ0FUSU9OIHB1YjEyIEFERCBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBFWENF UFQgKFRBQkxFIE9OTFkgdGVzdF90YWJsZSwgVEFCTEUgT05MWSB0ZXN0X3NlY29uZF90YWJsZSk7 XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+ IDEsIH0sCisJICB9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMScgPT4gewogCQljcmVh dGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3Vi MQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGZlMTFkYzYxOWFjLi44ZGIzZTEyOTkyOCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYwpAQCAtMjM2NCw2ICsyMzY0LDIxIEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZX1BMVVMoUXVlcnlf Zm9yX2xpc3Rfb2Zfc2NoZW1hcwogCQkJCQkJCQkgIiBBTkQgbnNwbmFtZSBOT1QgTElLRSBFJ3Bn XFxcXF8lJSciLAogCQkJCQkJCQkgIkNVUlJFTlRfU0NIRU1BIik7CisJLyogQWZ0ZXIgYSBzaW5n bGUgc2NoZW1hIG5hbWUgaW4gQUREIGNvbnRleHQsIG9mZmVyIEVYQ0VQVCAoIFRBQkxFICovCisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYmCisJCQkgIWVuZHNfd2l0aChw cmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCBUQUJMRSIpOworCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFC TEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJ VEgoIiggVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVY Q0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4i LCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIpKQorCXsKKwkJc2V0 X2NvbXBsZXRpb25fcmVmZXJlbmNlKHByZXY0X3dkKTsKKwkJQ09NUExFVEVfV0lUSF9RVUVSWV9W RVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNfaW5fc2NoZW1hKTsKKwl9CisJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJM RVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1h dGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCIp Iik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IFNFVCAoICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwg IigiKSkKIAkJQ09NUExFVEVfV0lUSCgicHVibGlzaCIsICJwdWJsaXNoX2dlbmVyYXRlZF9jb2x1 bW5zIiwgInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290Iik7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDE2MWRiNDU4ZjQ5Li5jOTEyY2ZjZWEwMCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTU2NCwxMiArNTY0 LDc5IEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9ub2t3CiBFUlJPUjogIHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICJ0ZXN0cHViX25vcGsiCiBMSU5FIDI6ICAgICBGT1IgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBBTFRF UiBQVUJMSUNBVElPTgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CistLSBBREQ6IHNj aGVtYS1xdWFsaWZpZWQgbmFtZSBpbiBFWENFUFQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf YWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUg cHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9u IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVz IGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJf dGVzdC50ZXN0cHViX3RibF9zMSIKKworLS0gRFJPUCBUQUJMRVMgSU4gU0NIRU1BIGFsc28gcmVt b3ZlcyBhc3NvY2lhdGVkIEVYQ0VQVCBlbnRyaWVzCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0ZXN0 cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRz IHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZp YSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8 IGYgICAgICAgIHwgCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9z MSIKKworLS0gQUREOiB1bnF1YWxpZmllZCBuYW1lIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdp dGggdGhlIHNjaGVtYSwgbm90IHB1YmxpYworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRl cl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0 cHViX3RibF9zMik7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFz OgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJf dGJsX3MxIgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMiIKKworLS0gQUREOiBtdWx0aXBs ZSBleGNlcHRlZCB0YWJsZXMgdXNpbmcgdW5xdWFsaWZpZWQgbmFtZXMKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmxfczEsIHRlc3RwdWJfdGJsX3My KTsKK0VSUk9SOiAgcmVsYXRpb24gInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIiBjYW5ub3QgYmUg YWRkZWQgYmVjYXVzZSBpdCBpcyBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2Fs dGVyX2V4Y2VwdCIKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK0V4Y2VwdCB0YWJsZXM6CisgICAg InB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMiIK KworLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdDsKK0VSUk9SOiAgdGFibGVzIGZyb20gc2NoZW1hICJwdWJfdGVzdCIgYXJlIG5vdCBwYXJ0 IG9mIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNl cHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5u b25leGlzdGVudF90YWJsZSk7CitFUlJPUjogIHJlbGF0aW9uICJwdWJfdGVzdC5ub25leGlzdGVu dF90YWJsZSIgZG9lcyBub3QgZXhpc3QKKy0tIGZhaWw6IEVYQ0VQVCB0YWJsZSBiZWxvbmdzIHRv IGEgZGlmZmVyZW50IHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNl cHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVz dHB1Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50ZXN0cHViX3RibDEiIGluIEVYQ0VQ VCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QiCitMSU5FIDE6IC4u LnhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGlj LnRlcy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRo ZSBmaXJzdCBlbnRyeSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3Rw dWJfbm9wayk7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJ0ZXN0cHViX25vcGsi CitMSU5FIDE6IC4uLmx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVY Q0VQVCAodGVzdHB1Yl9uby4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIENsZWFudXAKIFJFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CiBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50 ZXN0cHViX3RibF9zMjsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVND QURFOwogRFJPUCBUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOwotRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0 ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGk7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2No ZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dF9tdWx0aSwgdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIC0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFV RU5DRVMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDkxNjJkNGQxNWE1Li45ZjgxNmVmZmE3 MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMjc4LDEyICsyNzgsNDQg QEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3BhcnRpdGlvbgogQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X25va3cKICAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBBTFRFUiBQVUJMSUNB VElPTgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CisKKy0tIEFERDogc2NoZW1hLXF1 YWxpZmllZCBuYW1lIGluIEVYQ0VQVAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9l eGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVz dC50ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCistLSBEUk9Q IFRBQkxFUyBJTiBTQ0hFTUEgYWxzbyByZW1vdmVzIGFzc29jaWF0ZWQgRVhDRVBUIGVudHJpZXMK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFND SEVNQSBwdWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisKKy0tIEFERDogdW5x dWFsaWZpZWQgbmFtZSBpcyBpbXBsaWNpdGx5IHF1YWxpZmllZCB3aXRoIHRoZSBzY2hlbWEsIG5v dCBwdWJsaWMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmxfczIpOworXGRS cCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gQUREOiBtdWx0aXBsZSBleGNlcHRlZCB0YWJs ZXMgdXNpbmcgdW5xdWFsaWZpZWQgbmFtZXMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0 ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVY Q0VQVCAoVEFCTEUgdGVzdHB1Yl90YmxfczEsIHRlc3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3Rw dWJfYWx0ZXJfZXhjZXB0CisKKy0tIGZhaWw6IG5vbi1leGlzdGluZyB0YWJsZSBpbiBFWENFUFQg Y2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4 Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0 Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDogRVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8g YSBkaWZmZXJlbnQgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0 cHViX3RibDEpOworCistLSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUg Zmlyc3QgZW50cnkgaW4gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHVi X25vcGspOworCiAtLSBDbGVhbnVwCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogRFJPUCBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgcHViX3Rlc3QudGVzdHB1Yl90YmxfczI7CiBE Uk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgQ0FTQ0FERTsKIERST1AgVEFCTEUg dGVzdHB1Yl9ub3BrLCB0ZXN0cHViX3RibF9zMTsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFfZXhj ZXB0X211bHRpOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0 cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGksIHRlc3RwdWJf YWx0ZXJfZXhjZXB0OwogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIC0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgYi9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCmluZGV4IDE4YzdiMmMxZmNhLi4wYmE2ZDZmOGJiMiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAorKysgYi9z cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCkBAIC0zNDcsNiArMzQ3LDM4IEBA IGlzKCRyZXN1bHQsIHFxKDUpLAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBzY2hfcHViJyk7CiAKKyMgPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgQUxURVIgUFVCTElDQVRJ T04gRVhDRVBUIGZvciBUQUJMRVMgSU4gU0NIRU1BCisjID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisKKyMgVHJ1bmNhdGUgc3Vic2NyaWJlciB0YWJsZXMgdG8g cmVtb3ZlIGRhdGEgYWNjdW11bGF0ZWQgZnJvbSBwcmV2aW91cyB0ZXN0cy4KKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSdUUlVOQ0FURSBzY2gxLnRhYl9wdWJsaXNo ZWQsIHNjaDEudGFiX2V4Y2x1ZGVkLCBzY2gxLnBhcmVudCwgc2NoMS5jaGlsZCcpOworCisjIEFE RDogYWRkIGEgc2NoZW1hIHdpdGggYW4gZXhjZXB0ZWQgdGFibGU7IHZlcmlmeSB0aGUgZXhjZXB0 IGVudHJ5IHRha2VzIGVmZmVjdC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJDUkVBVEUgUFVCTElDQVRJT04gc2NoX3B1YiIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gc2NoX3B1YiBBREQgVEFCTEVT IElOIFNDSEVNQSBzY2gxIEVYQ0VQVCAoVEFCTEUgc2NoMS50YWJfZXhjbHVkZWQpIgorKTsKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBU SU9OIHNjaF9zdWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBz Y2hfcHViIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5j KCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gx LnRhYl9wdWJsaXNoZWQiKTsKK2lzKCRyZXN1bHQsIHFxKDYpLAorCSdBTFRFUiAuLi4gQUREIFRB QkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBpbmNsdWRlZCB0YWJsZSBzeW5jZWQnKTsKKyRyZXN1bHQg PQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNv dW50KCopIEZST00gc2NoMS50YWJfZXhjbHVkZWQiKTsKK2lzKCRyZXN1bHQsIHFxKDApLAorCSdB TFRFUiAuLi4gQUREIFRBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBleGNsdWRlZCB0YWJsZSBub3Qg c3luY2VkJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJP UCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2NoX3B1YicpOworCiAjIENsZWFudXAgc2NoZW1h IHRhYmxlcyBiZWZvcmUgdGhlIG11bHRpLXB1YmxpY2F0aW9uIHNlY3Rpb24uCiAkbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTQ0hFTUEgc2NoMSBDQVNDQURFJyk7 CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU0NIRU1BIHNj aDEgQ0FTQ0FERScpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000e6a2a70652df07fb Content-Type: application/x-patch; name="v7-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABLE.patch" Content-Disposition: attachment; filename="v7-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mppeltqz2 RnJvbSA4NWQ2ODVmZmZlZjk0OGRkNjkxNzI3M2I4MDAxY2RjNmRhNThlMjMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUaHUsIDI4IE1heSAyMDI2IDEyOjE0OjMxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 NyAzLzNdIEFkZCBFWENFUFQgc3VwcG9ydCB0byBBTFRFUiBQVUJMSUNBVElPTiBTRVQgVEFCTEVT IElOCiBTQ0hFTUEKCkV4dGVuZCBBbHRlclB1YmxpY2F0aW9uRXhjZXB0VGFibGVzKCkgd2l0aCB0 aGUgQVBfU2V0T2JqZWN0cyBjYXNlLAp3aGljaCByZWRlZmluZXMgdGhlIHB1YmxpY2F0aW9uIGFu ZCByZXBsYWNlcyB0aGUgZW50aXJlIEVYQ0VQVCBsaXN0LgoKU3ludGF4OgpBTFRFUiBQVUJMSUNB VElPTiBwdWIgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHQxKTsKClRoaXMg cGF0Y2ggYWxzbyBjbGVhbnMgdXAgRVhDRVBUIGVudHJpZXMgd2hlbiBhIHNjaGVtYSBpcyBkcm9w cGVkCmZyb20gdGhlIHB1YmxpY2F0aW9uLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCAgICAgfCAgMjcgKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgICB8IDEzMSArKysrKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyB8ICAxMCArLQogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICB8ICAxNSArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgfCAgODIgKysrKysrKysrKystCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgIHwgIDM0ICsrKysrCiBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsICAgICAgIHwgIDg1ICsrKysrKysrKysrKysKIDcg ZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCA3M2Y2Mzc1YTY2Zi4uODBiMDM4 ZTRiMmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTk3LDcg Kzk3LDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICB1c2VkIHdpdGggYSBwdWJsaWNh dGlvbiBkZWZpbmVkIHdpdGggPGxpdGVyYWw+Rk9SIFRBQkxFPC9saXRlcmFsPiBvcgogICAgPGxp dGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCByZXBsYWNlcyB0aGUgbGlzdCBv ZiB0YWJsZXMvc2NoZW1hcwogICAgaW4gdGhlIHB1YmxpY2F0aW9uIHdpdGggdGhlIHNwZWNpZmll ZCBsaXN0OyB0aGUgZXhpc3RpbmcgdGFibGVzIG9yIHNjaGVtYXMKLSAgIHRoYXQgd2VyZSBwcmVz ZW50IGluIHRoZSBwdWJsaWNhdGlvbiB3aWxsIGJlIHJlbW92ZWQuCisgICB0aGF0IHdlcmUgcHJl c2VudCBpbiB0aGUgcHVibGljYXRpb24gd2lsbCBiZSByZW1vdmVkLiAgV2hlbgorICAgPGxpdGVy YWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGlzIHVzZWQgd2l0aCBhbgorICAgPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UsIHRoZSBleGNsdWRlZCB0YWJsZXMgZm9yIGVh Y2ggc2NoZW1hIGFyZQorICAgcmVwbGFjZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxpc3Q7IGlmIDxs aXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gaXMgb21pdHRlZAorICAgZm9yIGEgc2NoZW1hLCBhbnkg ZXhpc3RpbmcgZXhjbHVzaW9ucyBmb3IgdGhhdCBzY2hlbWEgYXJlIGNsZWFyZWQuCiAgIDwvcGFy YT4KIAogICA8cGFyYT4KQEAgLTExNiwxMCArMTIwLDggQEAgQUxURVIgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8g PHIKIAogICA8cGFyYT4KICAgIFRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBj YW4gYmUgdXNlZCB3aXRoCi0gICA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJh bD4gdG8gZXhjbHVkZSBzcGVjaWZpYyB0YWJsZXMgZnJvbSB0aGUKLSAgIHB1YmxpY2F0aW9uLiBV c2luZyA8bGl0ZXJhbD5EUk9QIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IG9uIGEgcHVibGlj YXRpb24KLSAgIHdpbGwgYXV0b21hdGljYWxseSBhbHNvIHJlbW92ZSBhbnkgYXNzb2NpYXRlZCA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+Ci0gICBlbnRyaWVzLgorICAgPGxpdGVyYWw+QUREIFRB QkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFibGVzIGZyb20g YQorICAgc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9uLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBA IC0yMTQsNyArMjE2LDggQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgICA8dGVybT48bGl0 ZXJhbD5FWENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxl X29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxs aXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBXaGVuIHVzZWQgd2l0aCA8bGl0ZXJhbD5BREQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIHNwZWNpZmllcworICAgICAgV2hlbiB1c2VkIHdp dGggPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+CisgICAgICBvciA8bGl0 ZXJhbD5TRVQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIHNwZWNpZmllcwogICAgICAgdGFi bGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLiAgRWFjaCBuYW1lZAogICAg ICAgdGFibGUgbXVzdCBiZWxvbmcgdG8gdGhlIHNjaGVtYSBzcGVjaWZpZWQgaW4gdGhlIHNhbWUK ICAgICAgIDxsaXRlcmFsPlRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGNsYXVzZS4gIFRhYmxl IG5hbWVzIG1heSBiZQpAQCAtMzI2LDYgKzMyOSwxOCBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxl c19wdWJsaWNhdGlvbiBBREQgVEFCTEVTIElOIFNDSEVNQSBzYWxlcyBFWENFUFQgKFRBQkxFIGlu dAogPC9wcm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgUmVwbGFjZSB0 aGUgc2NoZW1hIGxpc3Qgb2YgPHN0cnVjdG5hbWU+c2FsZXNfcHVibGljYXRpb248L3N0cnVjdG5h bWU+IHdpdGgKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPiwgZXhjbHVkaW5nIG9u bHkKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzLmRyYWZ0czwvc3RydWN0bmFtZT4uIE90aGVyIHRoYW4K KyAgIDxzdHJ1Y3RuYW1lPnNhbGVzLmRyYWZ0czwvc3RydWN0bmFtZT4sIGFueSBwcmV2aW91c2x5 IGV4Y2x1ZGVkIHRhYmxlcyBmb3Igc2NoZW1hCisgICA8c3RydWN0bmFtZT5zYWxlczwvc3RydWN0 bmFtZT4gYXJlIG5vIGxvbmdlciBleGNsdWRlZC4gQW55IHNjaGVtYXMgcHJldmlvdXNseSBpbgor ICAgPHN0cnVjdG5hbWU+c2FsZXNfcHVibGljYXRpb248L3N0cnVjdG5hbWU+IGFyZSByZW1vdmVk OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24g U0VUIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBUIChUQUJMRSBkcmFmdHMpOworPC9wcm9n cmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxlcyA8c3RydWN0 bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3Ry dWN0bmFtZT4gYW5kIHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpp bmRleCBmMjM4OTNiYmQxMC4uNThlMGM5MzhmODMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jCkBAIC0xNTgyLDkgKzE1ODIsMTEgQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVt YUV4Y2VwdFRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlPaWQJCQlwdWJpZCA9 IHB1YmZvcm0tPm9pZDsKIAogCS8qCi0JICogTm90aGluZyB0byBkbyBpZiBubyBFWENFUFQgZW50 cmllcy4KKwkgKiBOb3RoaW5nIHRvIGRvIGlmIHRoZXJlIGFyZSBubyBFWENFUFQgZW50cmllcywg dW5sZXNzIGhhbmRsaW5nIHRoZSBTRVQKKwkgKiBjb21tYW5kLCBiZWNhdXNlIGlmIHRoZSB1c2Vy IGhhcyByZW1vdmVkIGFsbCBleGNlcHRpb25zIHdlIG5lZWQgdG8KKwkgKiBkcm9wIGFueSBleGlz dGluZyBvbmVzLgogCSAqLwotCWlmICghZXhjZXB0X3JlbF9uYW1lcykKKwlpZiAoIWV4Y2VwdF9y ZWxfbmFtZXMgJiYgc3RtdC0+YWN0aW9uICE9IEFQX1NldE9iamVjdHMpCiAJCXJldHVybjsKIAog CS8qCkBAIC0xNTk3LDcgKzE1OTksNyBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFi bGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCiAJLyoKIAkgKiBFWENFUFQgaXMgbm90 IG1lYW5pbmdmdWwgd2l0aCBEUk9QOiBkcm9wcGluZyBhIHNjaGVtYSBmcm9tIGEKLQkgKiBwdWJs aWNhdGlvbiBhbHJlYWR5IHJlbW92ZXMgYWxsIGl0cyBleGNlcHQgZW50cmllcyB2aWEgY2FzY2Fk ZSwgYW5kCisJICogcHVibGljYXRpb24gYWxyZWFkeSByZW1vdmVzIGFsbCBpdHMgRVhDRVBUIGVu dHJpZXMgdmlhIGNhc2NhZGUsIGFuZAogCSAqIHRoZXJlIGlzIG5vIHNlbnNpYmxlIGludGVycHJl dGF0aW9uIG9mICJkcm9wIG9ubHkgdGhlIGV4Y2VwdCBlbnRyeSBidXQKIAkgKiBrZWVwIHRoZSBz Y2hlbWEiLgogCSAqLwpAQCAtMTYwNiwxNiArMTYwOCw2IEBAIEFsdGVyUHVibGljYXRpb25TY2hl bWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1 c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVCTElDQVRJT04iKSkpOwog Ci0JLyoKLQkgKiBYWFggRVhDRVBUIHdpdGggU0VUIGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50 ZWQuICBXb3JrYXJvdW5kOiBEUk9QIGFuZAotCSAqIHJlLUFERCB0aGUgc2NoZW1hIHdpdGggdGhl IGRlc2lyZWQgRVhDRVBUIGxpc3QuCi0JICovCi0JaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRP YmplY3RzKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0 ZWQgd2l0aCBTRVQgaW4gQUxURVIgUFVCTElDQVRJT04iKSwKLQkJCQkgZXJyaGludCgiRHJvcCBh bmQgcmUtYWRkIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENFUFQgbGlzdC4iKSkpOwot CiAJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQogCXsKIAkJTGlzdAkgICAqcmVs czsKQEAgLTE2NDMsNiArMTYzNSw4NiBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFi bGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCiAJCVB1YmxpY2F0aW9uQWRkVGFibGVz KHB1YmlkLCByZWxzLCBmYWxzZSwgc3RtdCk7CiAKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJ fQorCWVsc2UJCQkJCQkvKiBBUF9TZXRPYmplY3RzICovCisJeworCQlMaXN0CSAgICpvbGRleGNl cHRyZWxpZHMgPSBOSUw7CisJCUxpc3QJICAgKm5ld2V4Y2VwdHJlbGlkcyA9IE5JTDsKKwkJTGlz dAkgICAqZGVscmVsaWRzID0gTklMOworCQlMaXN0CSAgICpyZWxzOworCQlMaXN0CSAgICpleHBs aWNpdHJlbGlkczsKKworCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRfcmVsX25hbWVzKTsK KworCQkvKiBDb2xsZWN0IE9JRHMgb2YgdGhlIGRlc2lyZWQgbmV3IEVYQ0VQVCBsaXN0LiAqLwor CQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVscykKKwkJeworCQkJbmV3 ZXhjZXB0cmVsaWRzID0gbGFwcGVuZF9vaWQobmV3ZXhjZXB0cmVsaWRzLAorCQkJCQkJCQkJCSAg UmVsYXRpb25HZXRSZWxpZChwcmktPnJlbGF0aW9uKSk7CisJCX0KKworCQlleHBsaWNpdHJlbGlk cyA9IEdldEluY2x1ZGVkUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCisJCQkJCQkJCQkJCQkJ CSBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJCS8qCisJCSAqIFZhbGlkYXRlIHRoYXQgZWFj aCBleGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBpbiB0aGUgZXhwbGljaXQgdGFibGUKKwkJICog bGlzdCAod2hpY2ggd291bGQgYmUgY29udHJhZGljdG9yeSkuCisJCSAqLworCQlmb3JlYWNoX3B0 cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVscykKKwkJeworCQkJT2lkCQkJcmVsaWQgPSBS ZWxhdGlvbkdldFJlbGlkKHByaS0+cmVsYXRpb24pOworCisJCQlpZiAobGlzdF9tZW1iZXJfb2lk KGV4cGxpY2l0cmVsaWRzLCByZWxpZCkpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQllcnJtc2coInRhYmxl IFwiJXNcIiBjYW5ub3QgYXBwZWFyIGluIGJvdGggdGhlIHRhYmxlIGxpc3QgYW5kIHRoZSBFWENF UFQgY2xhdXNlIiwKKwkJCQkJCQkgICBSZWxhdGlvbkdldFF1YWxpZmllZFJlbGF0aW9uTmFtZShw cmktPnJlbGF0aW9uKSkpOworCQl9CisKKwkJLyoKKwkJICogR2V0IHRoZSBjdXJyZW50IHNldCBv ZiBFWENFUFQgZW50cmllcy4gIE9ubHkgRk9SIEFMTCBUQUJMRVMgYW5kCisJCSAqIHNjaGVtYS1s ZXZlbCBwdWJsaWNhdGlvbnMgY2FuIGhhdmUgRVhDRVBUIGVudHJpZXM7IGZvciBhbnkgb3RoZXIK KwkJICogcHVibGljYXRpb24gdHlwZSBvbGRleGNlcHRyZWxpZHMgc3RheXMgTklMLgorCQkgKgor CQkgKiBOb3RlOiB3ZSBjaGVjayBpc19zY2hlbWFfcHVibGljYXRpb24oKSBhZ2FpbnN0IHRoZSBj dXJyZW50IGNhdGFsb2cKKwkJICogc3RhdGUgKGJlZm9yZSBBbHRlclB1YmxpY2F0aW9uU2NoZW1h cyBoYXMgcnVuKSwgc28gaWYgdGhlIGNhbGxlciBpcworCQkgKiBkb2luZyBTRVQgVEFCTEUgdDEg dG8gY29udmVydCBhIHNjaGVtYSBwdWJsaWNhdGlvbiBpbnRvIGEgcGxhaW4KKwkJICogdGFibGUg cHVibGljYXRpb24sIGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIHN0aWxsIHJldHVybnMgdHJ1ZSBo ZXJlLgorCQkgKiBUaGF0IGlzIGludGVudGlvbmFsOiBpdCBsZXRzIHVzIGRpc2NvdmVyIGFuZCBj bGVhbiB1cCBhbnkgc3RhbGUKKwkJICogRVhDRVBUIGVudHJpZXMgdGhhdCBiZWxvbmcgdG8gdGhl IG9sZCBzY2hlbWEgZGVmaW5pdGlvbi4KKwkJICovCisJCWlmIChHZXRQdWJsaWNhdGlvbihwdWJp ZCktPmFsbHRhYmxlcyB8fCBpc19zY2hlbWFfcHVibGljYXRpb24ocHViaWQpKQorCQkJb2xkZXhj ZXB0cmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhwdWJpZCwKKwkJCQkJCQkJ CQkJCQkJICAgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKworCQkvKiBCdWlsZCBhIGxpc3Qgb2Yg b2xkIEVYQ0VQVCBlbnRyaWVzIG5vdCBwcmVzZW50IGluIHRoZSBuZXcgbGlzdC4gKi8KKwkJZm9y ZWFjaF9vaWQob2xkcmVsaWQsIG9sZGV4Y2VwdHJlbGlkcykKKwkJeworCQkJaWYgKCFsaXN0X21l bWJlcl9vaWQobmV3ZXhjZXB0cmVsaWRzLCBvbGRyZWxpZCkpCisJCQkJZGVscmVsaWRzID0gbGFw cGVuZF9vaWQoZGVscmVsaWRzLCBvbGRyZWxpZCk7CisJCX0KKworCQkvKiBEcm9wIG9sZCBFWENF UFQgZW50cmllcyBub3QgcHJlc2VudCBpbiB0aGUgbmV3IGxpc3QuICovCisJCWZvcmVhY2hfb2lk KHJlbGlkLCBkZWxyZWxpZHMpCisJCXsKKwkJCU9pZAkJCXByb2lkOworCQkJT2JqZWN0QWRkcmVz cyBvYmo7CisKKwkJCXByb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLAor CQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJCQkJCQkJT2JqZWN0SWRH ZXREYXR1bShyZWxpZCksCisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJCQlp ZiAoIU9pZElzVmFsaWQocHJvaWQpKQorCQkJCWNvbnRpbnVlOwkJLyogYWxyZWFkeSBnb25lICov CisKKwkJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQsIHBy b2lkKTsKKwkJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCQl9CisK KwkJLyogQWRkIG5ldyBFWENFUFQgZW50cmllcywgc2tpcHBpbmcgYW55IGFscmVhZHkgcHJlc2Vu dC4gKi8KKwkJUHVibGljYXRpb25BZGRUYWJsZXMocHViaWQsIHJlbHMsIHRydWUsIHN0bXQpOwor CiAJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwogCX0KIH0KQEAgLTIyOTIsNiArMjM2NCw3IEBAIFB1 YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIG1pc3Np bmdfb2spCiAJZm9yZWFjaChsYywgc2NoZW1hcykKIAl7CiAJCU9pZAkJCXNjaGVtYWlkID0gbGZp cnN0X29pZChsYyk7CisJCUxpc3QJICAgKmV4Y2VwdF9yZWxpZHM7CiAKIAkJcHNpZCA9IEdldFN5 c0NhY2hlT2lkMihQVUJMSUNBVElPTk5BTUVTUEFDRU1BUCwKIAkJCQkJCQkgICBBbnVtX3BnX3B1 YmxpY2F0aW9uX25hbWVzcGFjZV9vaWQsCkBAIC0yMzA4LDggKzIzODEsNDAgQEAgUHVibGljYXRp b25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgbWlzc2luZ19vaykK IAkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoc2NoZW1haWQpKSkpOwogCQl9CiAKKwkJLyoKKwkJ ICogQ29sbGVjdCBFWENFUFQgZW50cmllcyBmb3IgdGFibGVzIGJlbG9uZ2luZyB0byB0aGlzIHNj aGVtYSBiZWZvcmUKKwkJICogcmVtb3ZpbmcgdGhlIHNjaGVtYSBlbnRyeS4KKwkJICovCisJCWV4 Y2VwdF9yZWxpZHMgPSBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLCBQVUJMSUNB VElPTl9QQVJUX1JPT1QpOworCiAJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvbk5h bWVzcGFjZVJlbGF0aW9uSWQsIHBzaWQpOwogCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9D QVNDQURFLCAwKTsKKworCQkvKgorCQkgKiBEcm9wIGFueSBwcmV4Y2VwdCByb3dzIGZvciB0YWJs ZXMgYmVsb25naW5nIHRvIHRoaXMgc2NoZW1hLiBUaGVzZQorCQkgKiByb3dzIGhhdmUgbm8gcGdf ZGVwZW5kIGVudHJ5IHBvaW50aW5nIGF0IHRoZQorCQkgKiBwZ19wdWJsaWNhdGlvbl9uYW1lc3Bh Y2Ugcm93LCBzbyB0aGV5IGFyZSBub3QgY2FzY2FkZWQgYnkgdGhlCisJCSAqIHBlcmZvcm1EZWxl dGlvbigpIGNhbGwgYWJvdmUgYW5kIG11c3QgYmUgY2xlYW5lZCB1cCBleHBsaWNpdGx5LgorCQkg Ki8KKwkJZm9yZWFjaF9vaWQocmVsaWQsIGV4Y2VwdF9yZWxpZHMpCisJCXsKKwkJCU9pZAkJCXBy b2lkOworCisJCQlpZiAoZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpICE9IHNjaGVtYWlkKQorCQkJ CWNvbnRpbnVlOworCisJCQlwcm9pZCA9IEdldFN5c0NhY2hlT2lkMihQVUJMSUNBVElPTlJFTE1B UCwKKwkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX29pZCwKKwkJCQkJCQkJCU9iamVj dElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOwor CQkJaWYgKCFPaWRJc1ZhbGlkKHByb2lkKSkKKwkJCQljb250aW51ZTsJCS8qIGFscmVhZHkgZ29u ZSAqLworCisJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHVibGljYXRpb25SZWxSZWxhdGlvbklk LCBwcm9pZCk7CisJCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwkJ fQorCisJCWxpc3RfZnJlZShleGNlcHRfcmVsaWRzKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IGM1ZjE3YmYyMzM4Li43ODVhMDQ1 ZWFkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRw dXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCkBA IC0yMjI5LDcgKzIyMjksNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRh LCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCSAqLwogCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQogCQkJ ewotCQkJCUxpc3QJICAgKmV4Y2VwdHB1YmlkcyA9IE5JTDsKKwkJCQlMaXN0CSAgICpleGNlcHRf cHViaWRzID0gTklMOwogCiAJCQkJaWYgKGFtX3BhcnRpdGlvbikKIAkJCQl7CkBAIC0yMjUyLDcg KzIyNTIsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlv biByZWxhdGlvbikKIAkJCQkJICogY2xhdXNlLiBUaGVyZWZvcmUsIGZvciBhIHBhcnRpdGlvbiwg ZXhjbHVzaW9uIG11c3QgYmUKIAkJCQkJICogZXZhbHVhdGVkIGF0IHRoZSB0b3AtbW9zdCBhbmNl c3Rvci4KIAkJCQkJICovCi0JCQkJCWV4Y2VwdHB1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQ dWJsaWNhdGlvbnMobGFzdF9hbmNlc3Rvcl9yZWxpZCk7CisJCQkJCWV4Y2VwdF9wdWJpZHMgPSBH ZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKGxhc3RfYW5jZXN0b3JfcmVsaWQpOwogCQkJ CX0KIAkJCQllbHNlCiAJCQkJewpAQCAtMjI2MCwxMyArMjI2MCwxMyBAQCBnZXRfcmVsX3N5bmNf ZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCQkJICogRm9y IGEgcmVndWxhciB0YWJsZSBvciBhIHJvb3QgcGFydGl0aW9uZWQgdGFibGUsIGNoZWNrCiAJCQkJ CSAqIGV4Y2x1c2lvbiBvbiB0YWJsZSBpdHNlbGYuCiAJCQkJCSAqLwotCQkJCQlleGNlcHRwdWJp ZHMgPSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKHB1Yl9yZWxpZCk7CisJCQkJCWV4 Y2VwdF9wdWJpZHMgPSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKHB1Yl9yZWxpZCk7 CiAJCQkJfQogCi0JCQkJaWYgKCFsaXN0X21lbWJlcl9vaWQoZXhjZXB0cHViaWRzLCBwdWItPm9p ZCkpCisJCQkJaWYgKCFsaXN0X21lbWJlcl9vaWQoZXhjZXB0X3B1YmlkcywgcHViLT5vaWQpKQog CQkJCQlwdWJsaXNoID0gdHJ1ZTsKIAotCQkJCWxpc3RfZnJlZShleGNlcHRwdWJpZHMpOworCQkJ CWxpc3RfZnJlZShleGNlcHRfcHViaWRzKTsKIAogCQkJCWlmICghcHVibGlzaCkKIAkJCQkJY29u dGludWU7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggOGRiM2UxMjk5MjguLjExYzg3YjFiMDA2 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzc5LDYgKzIzNzksMjEgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJfQogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVN QSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiLCBNYXRjaEFueU4pICYmICFlbmRz X3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVfV0lUSCgiKSIpOworCS8qIEFmdGVyIGEg c2luZ2xlIHNjaGVtYSBuYW1lIGluIFNFVCBjb250ZXh0LCBvZmZlciBFWENFUFQgKCBUQUJMRSAq LworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJT RVQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55KSAmJgorCQkJICFlbmRzX3dp dGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUICggVEFCTEUiKTsKKwll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VUIiwg IlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIpKQorCQlDT01QTEVU RV9XSVRIKCIoIFRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJ T04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnks ICJFWENFUFQiLCAiKCIpKQorCQlDT01QTEVURV9XSVRIKCJUQUJMRSIpOworCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQiLCAiVEFCTEVTIiwg IklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwl7CisJ CXNldF9jb21wbGV0aW9uX3JlZmVyZW5jZShwcmV2NF93ZCk7CisJCUNPTVBMRVRFX1dJVEhfUVVF UllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVtYSk7CisJfQorCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQiLCAi VEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUi LCBNYXRjaEFueU4pICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lU SCgiKSIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBTRVQgKCAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksIE1hdGNoQW55TiwgIlNF VCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoInB1Ymxpc2giLCAicHVibGlzaF9nZW5lcmF0ZWRf Y29sdW1ucyIsICJwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBjOTEyY2ZjZWEwMC4uZmYxY2I0YmVkMWUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC01ODcsOCAr NTg3LDcgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAotRXhjZXB0IHRhYmxl czoKLSAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCisoMSByb3cpCiAKIC0tIEFERDogdW5x dWFsaWZpZWQgbmFtZSBpcyBpbXBsaWNpdGx5IHF1YWxpZmllZCB3aXRoIHRoZSBzY2hlbWEsIG5v dCBwdWJsaWMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmxfczIpOwpAQCAt NjAwLDI1ICs1OTksOTggQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQg QUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUIKIFRhYmxlcyBmcm9tIHNj aGVtYXM6CiAgICAgInB1Yl90ZXN0IgogRXhjZXB0IHRhYmxlczoKLSAgICAicHViX3Rlc3QudGVz dHB1Yl90YmxfczEiCiAgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIgogCiAtLSBBREQ6IG11 bHRpcGxlIGV4Y2VwdGVkIHRhYmxlcyB1c2luZyB1bnF1YWxpZmllZCBuYW1lcwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90 YmxfczIpOwotRVJST1I6ICByZWxhdGlvbiAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiIGNhbm5v dCBiZSBhZGRlZCBiZWNhdXNlIGl0IGlzIGV4Y2x1ZGVkIGZyb20gcHVibGljYXRpb24gInRlc3Rw dWJfYWx0ZXJfZXhjZXB0IgogXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX2FsdGVyX2V4Y2VwdAogICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2No ZW1hczoKKyAgICAicHViX3Rlc3QiCiBFeGNlcHQgdGFibGVzOgogICAgICJwdWJfdGVzdC50ZXN0 cHViX3RibF9zMSIKICAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCiAKKy0tIFNFVDogcmVw bGFjZSB0aGUgZXhjZXB0IGxpc3QgKGtlZXAgc2FtZSBzY2hlbWEsIGRpZmZlcmVudCBleGNlcHQg dGFibGUpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVT IElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3My KTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9l eGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVl bmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRl ZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1 Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCisK Ky0tIGZhaWw6IHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UgYWxzbyBhcHBlYXJzIGluIHRoZSBleHBs aWNpdCB0YWJsZSBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBT RVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CitFUlJPUjogIHRhYmxl ICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIgY2Fubm90IGFwcGVhciBpbiBib3RoIHRoZSB0YWJs ZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZQorLS0gZXJyb3I6IGV4Y2VwdCB0YWJsZSdzIHNj aGVtYSAocHVibGljKSBub3QgaW4gdGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1Yl90 ZXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsKK0VS Uk9SOiAgdGFibGUgInB1YmxpYy50ZXN0cHViX3RibDEiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBu b3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QiCitMSU5FIDE6IC4uLnhjZXB0IFNFVCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlcy4uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K Ky0tIGVycm9yOiBFWENFUFQgaXMgbm90IGFsbG93ZWQgd2l0aCBEUk9QCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qg RVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMik7CitFUlJPUjogIEVYQ0VQVCBj bGF1c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVCTElDQVRJT04KKy0t IFNFVDogdW5xdWFsaWZpZWQgbmFtZSBpbiBFWENFUFQgaXMgaW1wbGljaXRseSBxdWFsaWZpZWQg d2l0aCB0aGUgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBT RVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3Mx KTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9l eGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVl bmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRl ZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1 Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCisK Ky0tIFNFVCB3aXRob3V0IEVYQ0VQVCBjbGVhcnMgdGhlIGV4aXN0aW5nIGV4Y2VwdCBsaXN0CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6 CisgICAgInB1Yl90ZXN0IgorCistLSBTRVQgdG8gYSBkaWZmZXJlbnQgc2NoZW1hIHJlbW92ZXMg b2xkIHNjaGVtYSdzIEVYQ0VQVCBlbnRyaWVzCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Fs dGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRl c3RwdWJfdGJsX3MxKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNF VCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxl cyBmcm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworLS0gZmFpbDogbm9uZXhpc3RlbnQgdGFi bGUgaW4gRVhDRVBUIGNsYXVzZSAoU0VUIHBhdGgpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxF IHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKK0VSUk9SOiAgcmVsYXRpb24gInB1Yl90ZXN0 Lm5vbmV4aXN0ZW50X3RhYmxlIiBkb2VzIG5vdCBleGlzdAorLS0gU0VUOiBtdWx0aXBsZSBzY2hl bWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEVY Q0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxl cyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorICAgICJwdWJsaWMiCitFeGNlcHQgdGFi bGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKyAgICAicHVibGljLnRlc3RwdWJf dGJsMSIKKwogLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UKIEFM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdDsKLUVSUk9SOiAgdGFibGVzIGZyb20gc2NoZW1hICJwdWJfdGVzdCIgYXJlIG5v dCBwYXJ0IG9mIHRoZSBwdWJsaWNhdGlvbgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRl cl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJf dGVzdC5ub25leGlzdGVudF90YWJsZSk7CiBFUlJPUjogIHJlbGF0aW9uICJwdWJfdGVzdC5ub25l eGlzdGVudF90YWJsZSIgZG9lcyBub3QgZXhpc3QKIC0tIGZhaWw6IEVYQ0VQVCB0YWJsZSBiZWxv bmdzIHRvIGEgZGlmZmVyZW50IHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3Fs CmluZGV4IDlmODE2ZWZmYTcwLi5kMDA4MTE0ZTA1YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1Ymxp Y2F0aW9uLnNxbApAQCAtMzAwLDYgKzMwMCw0MCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxLCB0ZXN0cHViX3RibF9zMik7CiBcZFJwKyB0 ZXN0cHViX2FsdGVyX2V4Y2VwdAogCistLSBTRVQ6IHJlcGxhY2UgdGhlIGV4Y2VwdCBsaXN0IChr ZWVwIHNhbWUgc2NoZW1hLCBkaWZmZXJlbnQgZXhjZXB0IHRhYmxlKQorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhD RVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMik7CitcZFJwKyB0ZXN0cHViX2FsdGVy X2V4Y2VwdAorCistLSBmYWlsOiB0YWJsZSBpbiBFWENFUFQgY2xhdXNlIGFsc28gYXBwZWFycyBp biB0aGUgZXhwbGljaXQgdGFibGUgbGlzdAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRl cl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworCist LSBlcnJvcjogZXhjZXB0IHRhYmxlJ3Mgc2NoZW1hIChwdWJsaWMpIG5vdCBpbiB0aGUgcHVibGlj YXRpb24ncyBzY2hlbWEgbGlzdCAocHViX3Rlc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxF IHB1YmxpYy50ZXN0cHViX3RibDEpOworCistLSBlcnJvcjogRVhDRVBUIGlzIG5vdCBhbGxvd2Vk IHdpdGggRFJPUAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90 YmxfczIpOworCistLSBTRVQ6IHVucXVhbGlmaWVkIG5hbWUgaW4gRVhDRVBUIGlzIGltcGxpY2l0 bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0 ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCistLSBTRVQgd2l0 aG91dCBFWENFUFQgY2xlYXJzIHRoZSBleGlzdGluZyBleGNlcHQgbGlzdAorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7 CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCistLSBTRVQgdG8gYSBkaWZmZXJlbnQgc2No ZW1hIHJlbW92ZXMgb2xkIHNjaGVtYSdzIEVYQ0VQVCBlbnRyaWVzCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0 ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3RwdWJfYWx0 ZXJfZXhjZXB0CisKKy0tIGZhaWw6IG5vbmV4aXN0ZW50IHRhYmxlIGluIEVYQ0VQVCBjbGF1c2Ug KFNFVCBwYXRoKQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5ub25leGlzdGVu dF90YWJsZSk7CisKKy0tIFNFVDogbXVsdGlwbGUgc2NoZW1hcyBlYWNoIHdpdGggdGhlaXIgb3du IEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNF VCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1 Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJs MSk7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCiAtLSBmYWlsOiBub24tZXhpc3Rpbmcg dGFibGUgaW4gRVhDRVBUIGNsYXVzZQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9l eGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC5ub25leGlzdGVudF90YWJsZSk7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM3X2V4Y2VwdC5wbAppbmRleCAwYmE2ZDZmOGJiMi4uMTMwOGI2ZTQzZWQgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbApAQCAtMzc2LDYgKzM3Niw2MSBAQCAkcmVzdWx0ID0K IGlzKCRyZXN1bHQsIHFxKDApLAogCSdBTFRFUiAuLi4gQUREIFRBQkxFUyBJTiBTQ0hFTUEgRVhD RVBUOiBleGNsdWRlZCB0YWJsZSBub3Qgc3luY2VkJyk7CiAKKyMgU0VUOiByZXBsYWNlIHRoZSBl eGNlcHQgbGlzdDsgdGFiX2V4Y2x1ZGVkIGlzIG5vdyBpbmNsdWRlZCBhbmQgdGFiX3B1Ymxpc2hl ZCBpcyBleGNsdWRlZC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkFMVEVSIFBVQkxJQ0FUSU9OIHNjaF9wdWIgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSBFWENF UFQgKFRBQkxFIHNjaDEudGFiX3B1Ymxpc2hlZCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiBzY2hfc3ViIFJFRlJFU0gg UFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9z eW5jKCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJfcHVibGlzaGVk IFZBTFVFUyAoNyk7CisJSU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFMVUVTICg3KTsK KykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3ViJyk7CisKKyRy ZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGEgRlJPTSBzY2gxLnRhYl9leGNsdWRlZCBXSEVSRSBhID0gNyIpOworaXMoJHJlc3VsdCwg cXEoNyksCisJJ0FMVEVSIC4uLiBTRVQgVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IG5ld2x5IGlu Y2x1ZGVkIHRhYmxlIGlzIHJlcGxpY2F0ZWQnCispOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgYSBGUk9NIHNjaDEudGFiX3B1 Ymxpc2hlZCBXSEVSRSBhID0gNyIpOworaXMoJHJlc3VsdCwgcXEoKSwKKwknQUxURVIgLi4uIFNF VCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogbm93LWV4Y2x1ZGVkIHRhYmxlIGlzIG5vdCByZXBs aWNhdGVkJworKTsKKworIyBTRVQgd2l0aG91dCBFWENFUFQ6IGNsZWFycyB0aGUgZXhjZXB0IGxp c3Q7IGJvdGggdGFibGVzIGFyZSBub3cgcHVibGlzaGVkLgorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gc2NoX3B1YiBTRVQgVEFCTEVT IElOIFNDSEVNQSBzY2gxIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHNjaF9zdWIgUkVGUkVTSCBQVUJMSUNBVElPTiIpOwor JG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlz aGVyLCAnc2NoX3N1YicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLCBxcSgKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9wdWJsaXNoZWQgVkFMVUVTICg4KTsKKwlJ TlNFUlQgSU5UTyBzY2gxLnRhYl9leGNsdWRlZCBWQUxVRVMgKDgpOworKSk7Ciskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgYSBGUk9NIHNjaDEu dGFiX3B1Ymxpc2hlZCBXSEVSRSBhID0gOCIpOworaXMoJHJlc3VsdCwgcXEoOCksCisJJ0FMVEVS IC4uLiBTRVQgVEFCTEVTIElOIFNDSEVNQSAobm8gRVhDRVBUKTogdGFiX3B1Ymxpc2hlZCByZXBs aWNhdGVkIGFmdGVyIGV4Y2VwdCBsaXN0IGNsZWFyZWQnCispOworJHJlc3VsdCA9CisgICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgYSBGUk9NIHNjaDEu dGFiX2V4Y2x1ZGVkIFdIRVJFIGEgPSA4Iik7CitpcygkcmVzdWx0LCBxcSg4KSwKKwknQUxURVIg Li4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIChubyBFWENFUFQpOiB0YWJfZXhjbHVkZWQgcmVwbGlj YXRlZCBhZnRlciBleGNlcHQgbGlzdCBjbGVhcmVkJworKTsKKwogJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7CiAkbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBzY2hf cHViJyk7CiAKQEAgLTQ0Myw2ICs0OTgsMzYgQEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViJyk7CiAkbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMScpOwog JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04g dGFwX3B1YjInKTsKIAorIyBPSyB3aGVuIGEgdGFibGUgaXMgZXhjbHVkZWQgYnkgYSBUQUJMRVMg SU4gU0NIRU1BIEVYQ0VQVCBwdWJsaWNhdGlvbiwKKyMgYnV0IGlzIGluY2x1ZGVkIGJ5IGFub3Ro ZXIgcHVibGljYXRpb24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAn VFJVTkNBVEUgdGFiMScpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdUUlVOQ0FURSB0YWIxJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsIHFxKAorCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViMSBGT1IgVEFCTEVTIElOIFND SEVNQSBwdWJsaWMgRVhDRVBUIChUQUJMRSBwdWJsaWMudGFiMSk7CisJQ1JFQVRFIFBVQkxJQ0FU SU9OIHRhcF9wdWIyIEZPUiBUQUJMRSB0YWIxOworCUlOU0VSVCBJTlRPIHRhYjEgVkFMVUVTKDEp OworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJT Q1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FU SU9OIHRhcF9wdWIxLCB0YXBfcHViMiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9z dWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViJyk7CisKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKElOU0VSVCBJTlRPIHRhYjEgVkFMVUVT KDIpKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWInKTsKKwor JHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VM RUNUICogRlJPTSB0YWIxIE9SREVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxCisyKSwKKwki VEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IHRhYmxlIGV4Y2x1ZGVkIGluIHNjaGVtYSBwdWIgYnV0 IGluY2x1ZGVkIGJ5IGFub3RoZXIgcHViIGlzIHJlcGxpY2F0ZWQiCispOworCiskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWIn KTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FU SU9OIHRhcF9wdWIxJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAn RFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMicpOworCiAkbm9kZV9wdWJsaXNoZXItPnN0b3AoJ2Zh c3QnKTsKIAogZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000e6a2a70652df07fb--