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 1whU4r-000Fm1-1X for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 15:20:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whU4p-007el4-2k for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jul 2026 15:20:44 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1whU4p-007eku-03 for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 15:20:44 +0000 Received: from mail-lj1-x235.google.com ([2a00:1450:4864:20::235]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whU4m-00000000Act-3Ez9 for pgsql-hackers@lists.postgresql.org; Wed, 08 Jul 2026 15:20:42 +0000 Received: by mail-lj1-x235.google.com with SMTP id 38308e7fff4ca-39669bcaadfso8197141fa.0 for ; Wed, 08 Jul 2026 08:20:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783524040; cv=none; d=google.com; s=arc-20260327; b=q0CVSpI6kkFr46YPta76dOaEQiFlX6qrSe1wUPZajfaEMyAWFOcftPbBE9nNymFJBr un30S6zyYWK/o8ul3+Zd4cDRK9Ga0lmE7/YfeC/NCEjnN9urr7JmFjdvEaBKfyVytGV8 aDGHVg/zJszbRNCS99vmYsiDFc1rurPR18zpRWPHFw/eI30H2MOgOzB2lZsV7ZWiyp0V tBH0vkmVzT+WpRp8fjuOd3IgGaj61xm/nSFQjQE1jEqiUAYPX0O4cC+c2jGxW6jBHqlL +TkhFYQjNjrqc8tZGnJc/qIQhmzU7c7OGriMWD8jxZdXGfxCl8jJKLiwrWETe0Su8BY6 wJJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=plvQdqW0HxI/98WIlkvyrBqi39Cry57ucj64Hy+uTaY=; fh=pg3ciDRe8KHXdOtrrlRAx2QIuWIvyYCJhYKY+MRZKZU=; b=RLmitvOFCxdaWQ2OFl8A6sJ+aVCWDIwYs/ggetfwrurbVKrRYABPuWn5L6R/MtfP4E 5PMvxJhqXrYig2PmiIplYTOZSvQCBhNxNTMd9JiwYRVgXGpJSn2CVHGBXZtdRSrKNjaW dEB0XpSe0PsBDrDSfOFb4p6WEnb7yfSt6S0kVDueNp8MMjS/0oBPs18ldxRazr1vjKh/ Sfa+yUYOYbvrVnnZL8ezcnnXLu+jOYdmJ7ANoAqjuGcZvAeWBtpyXkYe5aNurky2dF5t APiKSDDk+8Ww67YI/oliZ40QbkZo21KOsXQUs2fL61as8HUxVOMlmXcXC4/P5Ck2fhWd Rg7g==; 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=1783524040; x=1784128840; darn=lists.postgresql.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=plvQdqW0HxI/98WIlkvyrBqi39Cry57ucj64Hy+uTaY=; b=YnMp81P56nxmf8q29Q7gglnBuWy5MdCrCbHe9DytP/4hGfB9jPxzARdOUhpWMOBU36 X9RVVFGTC9UdrCeT7TfrHFI9P/tFLhCOiBjoqQTV9U4C+BxmSKYvAD9GNT+v9XHo8WX7 BKnxv7IWDHIxGqUMNLCKo2cjIekdAd9N2ULX29kzCl/N/mxcNsAQlzN0GtZqwEJdz/dM qpQoTXHaDo4+ZUnMIHdBI0QAza9d9TV+fycNx4hmejlCoCFtcfBek3D0D7U5ESYXj6Ga QOlfjjj+5B1Q9nfwgnFcOgvzsbVPQFXZkteIwP/TBWBCYYZ7mUyHeKrP0MGMAfunpnrU EWlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783524040; x=1784128840; h=content-type: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:content-type; bh=plvQdqW0HxI/98WIlkvyrBqi39Cry57ucj64Hy+uTaY=; b=tTfpO0w37fjGAwEcYbkz9pr3QNL2Rj4jpfwV6083tKhNSVA84+FWuKLmDY0ZcFzd0h mI54yjsUKDvQiTW7mCfJQfqnuxfO0GBTuUhKahl7k2k1iMZV9xDDUr3KcIlbuWhyXn4A JKjn0t9sJe8rzOK7fRLIWmFDuk41oMoGOX1nhgyhGUMGQW/+E4P/FOtX59IzMZ95G7nl f+F0mTYOCtLvhiM5unEEXm0lVfdCS/fhA6gGAnHtGnef2CfYu/EmgrSUO1ZbORjzk1RL +3fEspwdOsk9WY4pzEMBoDNTwlTgcFTHyoOzXVc/tNIyTjlsWKNsR2HGg8bS0u1W6yfe wngQ== X-Forwarded-Encrypted: i=1; AHgh+RqtJzoHCtNDt3tI6Eb6QQ0P6yb555t3kZ74RMChzNd+bYtY1KclLZjad1zHCJInp8C6CScuJoBO7Ez9ck22@lists.postgresql.org X-Gm-Message-State: AOJu0YzgqHcn4vhnf5Tsz0ZzTLMCtrhPAI/QLe55hJkDM42hoPvhV1J3 DXthMqOhfE1AMNM5931ilBxVPkxZfJibjnAgQj+YwYOH229kyv6jguOHJu9o61b5mLRd4wgfpOL 8rmNHBkeoXRX+NtxZcJwDD1FDBvzb1w== X-Gm-Gg: AfdE7cn3MznN0GUwJC8hot2W/iht0kr2/YO/hw77GIN7NaHvGQZifVhaRCsw/S1gnMO WjmMS6Ywr47FhJi1WUXfeLCAmr6RrfMQIYd9mD8wPupuDpWQ8SGwMdzZ1dNaY5kCB+KHB2RMwLT quoMVEujOCBOMECeG0xF4Mb3nPlpd+9oR6+hsbIF/Hqsws30aq9S2ZEWsr3B0geCSLuGqRtuskf 1bS4iPntXkaULmbmOf0edFmHgiKi8OB0pAjhwNmnHQTaTZwmXhIIruejvfXoAIfM8Iv6dH2McY+ Rtc= X-Received: by 2002:a2e:b8d2:0:b0:39c:7089:8058 with SMTP id 38308e7fff4ca-39c799b31cfmr6387661fa.23.1783524039301; Wed, 08 Jul 2026 08:20:39 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Wed, 8 Jul 2026 20:50:25 +0530 X-Gm-Features: AVVi8CfecK0wpbXIs1T1FVQdowxQOvbb8BMucLqChlZoyDyQdFG42RRkldhTdVw Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: shveta malik Cc: Peter Smith , Amit Kapila , Zsolt Parragi , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000cfc83406561b0c24" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cfc83406561b0c24 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jul 7, 2026 at 8:40=E2=80=AFAM shveta malik wrote: > > On Tue, Jul 7, 2026 at 4:31=E2=80=AFAM Peter Smith wrote: > > > > Hi Nisha. > > > > Bug: The current patch is allowing conflicting exclusion lists... > > > > =3D=3D=3D=3D=3D=3D > > > > Background: > > > > It's always been possible for CREATE PUBLICATION to specify the same > > schema or same table multiple times. > > > > test_pub=3D# CREATE SCHEMA MYSCHEMA; > > CREATE SCHEMA > > test_pub=3D# CREATE TABLE T1(A INT); > > CREATE TABLE > > test_pub=3D# CREATE TABLE MYSCHEMA.T2(A INT); > > CREATE TABLE > > test_pub=3D# CREATE TABLE MYSCHEMA.T3(A INT); > > CREATE TABLE > > > > // same table multiple times is OK > > test_pub=3D# CREATE PUBLICATION PUB3 FOR TABLE T1,T1,T1,T1; > > CREATE PUBLICATION > > > > // same schema multiple times is OK > > test_pub=3D# CREATE PUBLICATION PUB1 FOR TABLES IN SCHEMA MYSCHEMA, > > MYSCHEMA, MYSCHEMA; > > CREATE PUBLICATION > > > > ~~~ > > > > But, this behaviour is only allowed if there are no specification > > conflicts. e.g. You can't have multiple tables with column lists: > > > > test_pub=3D# CREATE PUBLICATION PUB4 FOR TABLE T1,T1(A),T1,T1; > > ERROR: conflicting or redundant column lists for table "t1" > > > > =3D=3D=3D=3D=3D=3D > > > > Bug: > > > > IMO similar restrictions and a similar error message needs to happen > > for clashing schema exclusions. Specifying the same schema multiple > > times is fine, but it must be disallowed if there are conflicting > > exclusion lists. > > > > +1. Good Catch. > Thanks for the bug report. I've fixed it and attached the fix as a separate top-up patch, v19-0002. Until v18, schema qualification checks for EXCEPT tables were split between two places: 1) TABLES IN SCHEMA (EXCEPT TABLE ); -- the schema qualification check was performed in gram.y, since all required information was available during parsing. 2) TABLES IN SCHEMA CURRENT_SCHEMA (EXCEPT TABLE ); -- CURRENT_SCHEMA is resolved only at execution time, so the schema qualification and eligibility checks were performed there. The reported bug also affects cases such as: CREATE PUBLICATION PUB2 FOR TABLES IN SCHEMA MYSCHEMA EXCEPT (TABLE T2), CURRENT_SCHEMA EXCEPT (TABLE T3); -- where CURRENT_SCHEMA =3D myschema. Correct handling of this case requires the checks to be performed after schema resolution, i.e., at execution time. To reduce duplicate code, I moved the schema qualification and eligibility checks for both cases to execution time and removed the corresponding processing from gram.y. Since this changes a fair amount of code, I've kept it as a separate patch (v19-0002) to make review easier. Depending on the feedback, we can optimize the implementation or move parts of it back into gram.y before merging it into patch 0001. ~~~ Attached is the v19 patch set. -- Also Addressed all comments from Peter at [1] and Shveta at [2]. -- The code optimization suggestions from Shveta at [3] are still pending. I'm evaluating them and plan to address them in the next version. ~~~ [1] https://www.postgresql.org/message-id/CAHut%2BPt-%2B6Q4-kmhqCZ2_FpaNRR%= 3DhaJk-GK1eEyTXcTTDnRnXA%40mail.gmail.com [2] https://www.postgresql.org/message-id/CAJpy0uAuL7SqowL7T6HCELuVUr5ubwoG= sjV1SQQRCXGme5L%3DpA%40mail.gmail.com [3] https://www.postgresql.org/message-id/CAJpy0uA_d-K-f94d-9Xw66Fqv7gdSGBY= Gzi9YcybtuEkYdQocQ%40mail.gmail.com -- Thanks, Nisha --000000000000cfc83406561b0c24 Content-Type: application/octet-stream; name="v19-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Disposition: attachment; filename="v19-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrc80gvl0 RnJvbSAyZjFiZWViOWFjM2JjODhiYjUwZTQ5OGIyODlmOGU0ZWYzMmJlNDYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDE2IEp1biAyMDI2IDEwOjU4OjQ5ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTkgMS81XSBTdXBwb3J0IEVYQ0VQVCBjbGF1c2UgZm9yIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlv bnMKCkV4dGVuZCB0YWJsZSBleGNsdXNpb24gc3VwcG9ydCBpbiBwdWJsaWNhdGlvbnMgdG8gYWxs b3cgc3BlY2lmaWMKdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gc2NoZW1hLWxldmVsIHB1Ymxp Y2F0aW9ucyB1c2luZyBhbgpFWENFUFQgY2xhdXNlIGluIENSRUFURSBQVUJMSUNBVElPTi4KClN1 cHBvcnRlZCBzeW50YXg6CkNSRUFURSBQVUJMSUNBVElPTiA8cHViPiBGT1IgVEFCTEVTIElOIFND SEVNQSBzIEVYQ0VQVCAoVEFCTEUgdDEsLi4uKTsKLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmMgICAgICAgIHwgMjU4ICsrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgIHwgMTg5ICsrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgIHwgIDExICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgfCAgNTQgKysrLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyB8ICAzOSArKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAgICAgICAgfCAgNDEgKystLQogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOCArKwogc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICB8ICAzNSArKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2Nv bW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3B1YmxpY2F0aW9uLm91dCAgIHwgMTk1ICsrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICB8IDEyMCArKysrKysrKy0KIHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgICAgICAgfCAxMzMgKysrKysrKysrLQogMTQg ZmlsZXMgY2hhbmdlZCwgMTAwNiBpbnNlcnRpb25zKCspLCA5NCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggMWVjOTRjODUxYjIuLjIxODU3Mjk2ZjQ5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC01Myw5ICs1MywxMCBAQCB0 eXBlZGVmIHN0cnVjdAogICogZXJyb3IgaWYgbm90LgogICovCiBzdGF0aWMgdm9pZAotY2hlY2tf cHVibGljYXRpb25fYWRkX3JlbGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpKQorY2hlY2tf cHVibGljYXRpb25fYWRkX3JlbGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLCBPaWQgcHVi aWQpCiB7CiAJUmVsYXRpb24JdGFyZ2V0cmVsID0gcHJpLT5yZWxhdGlvbjsKKwlPaWQJCQlyZWxp ZCA9IFJlbGF0aW9uR2V0UmVsaWQodGFyZ2V0cmVsKTsKIAljb25zdCBjaGFyICpyZWxuYW1lOwog CWNvbnN0IGNoYXIgKmVycm9ybXNnOwogCkBAIC03MCwxMiArNzEsNTcgQEAgY2hlY2tfcHVibGlj YXRpb25fYWRkX3JlbGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpKQogCQllcnJvcm1zZyA9 IGdldHRleHRfbm9vcCgiY2Fubm90IGFkZCByZWxhdGlvbiBcIiVzXCIgdG8gcHVibGljYXRpb24i KTsKIAl9CiAKLQkvKiBJZiBpbiBFWENFUFQgY2xhdXNlLCBtdXN0IGJlIHJvb3QgcGFydGl0aW9u ZWQgdGFibGUgKi8KLQlpZiAocHJpLT5leGNlcHQgJiYgdGFyZ2V0cmVsLT5yZF9yZWwtPnJlbGlz cGFydGl0aW9uKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCSBlcnJtc2coZXJyb3Jtc2csIHJlbG5hbWUpLAotCQkJ CSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGl2aWR1 YWwgcGFydGl0aW9ucy4iKSkpOworCWlmICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVsaXNwYXJ0aXRp b24pCisJeworCQlpZiAocHJpLT5leGNlcHQpCisJCXsKKwkJCS8qIElmIGluIEVYQ0VQVCBjbGF1 c2UsIG11c3QgYmUgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZSAqLworCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCSBl cnJtc2coZXJyb3Jtc2csIHJlbG5hbWUpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGlzIG9wZXJhdGlv biBpcyBub3Qgc3VwcG9ydGVkIGZvciBpbmRpdmlkdWFsIHBhcnRpdGlvbnMuIikpKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBJZiBub3QgaW4gRVhDRVBUIGNsYXVzZSwgYSBwYXJ0 aXRpb24gY2Fubm90IGJlIGluZGVwZW5kZW50bHkKKwkJCSAqIGluY2x1ZGVkIHdoZW4gaXRzIHBh cnRpdGlvbiByb290IGlzIGluIHRoaXMgcHVibGljYXRpb24ncworCQkJICogRVhDRVBUIGxpc3Qu ICBEb2luZyBzbyB3b3VsZCBsZWF2ZSB0aGUgY2F0YWxvZyBpbmNvbnNpc3RlbnQKKwkJCSAqIChy b290IGV4Y2x1ZGVkLCBwYXJ0aXRpb24gZXhwbGljaXRseSBpbmNsdWRlZCkgYW5kIHRoZQorCQkJ ICogYW5jZXN0b3ItY2FzY2FkZSBydWxlIHdvdWxkIHNpbGVudGx5IG92ZXJyaWRlIHRoZSBpbmNs dWRlIGF0CisJCQkgKiByZXBsaWNhdGlvbiB0aW1lLgorCQkJICoKKwkJCSAqIE9ubHkgdGhlIHJv b3Qgb2YgYSBwYXJ0aXRpb24gaGllcmFyY2h5IGNhbiBldmVyIGFwcGVhciBpbiBhbgorCQkJICog RVhDRVBUIGNsYXVzZSAoYSBwYXJ0aXRpb24gaXRzZWxmIGlzIHJlamVjdGVkIGp1c3QgYWJvdmUp LCBzbworCQkJICogY2hlY2tpbmcgYW55IGludGVybWVkaWF0ZSBhbmNlc3RvciBjYW5ub3QgZmlu ZCBhIG1hdGNoOyB0aGUKKwkJCSAqIHJvb3QgaXMgdGhlIG9ubHkgb25lIHdvcnRoIGEgY2F0YWxv ZyBsb29rdXAuCisJCQkgKi8KKwkJCU9pZAkJCXJvb3QgPSBsbGFzdF9vaWQoZ2V0X3BhcnRpdGlv bl9hbmNlc3RvcnMocmVsaWQpKTsKKwkJCUhlYXBUdXBsZQlhdHVwOworCisJCQlhdHVwID0gU2Vh cmNoU3lzQ2FjaGUyKFBVQkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJCQkgICBPYmplY3RJZEdldERh dHVtKHJvb3QpLAorCQkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJCQlpZiAo SGVhcFR1cGxlSXNWYWxpZChhdHVwKSkKKwkJCXsKKwkJCQlib29sCQlyb290X2V4Y2VwdCA9ICgo Rm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVChhdHVwKSktPnByZXhjZXB0OworCisJ CQkJUmVsZWFzZVN5c0NhY2hlKGF0dXApOworCisJCQkJaWYgKHJvb3RfZXhjZXB0KQorCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCks CisJCQkJCQkJIGVycm1zZygiY2Fubm90IGFkZCBwYXJ0aXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0 aW9uIFwiJXNcIiIsCisJCQkJCQkJCQlSZWxhdGlvbkdldFF1YWxpZmllZFJlbGF0aW9uTmFtZSh0 YXJnZXRyZWwpLAorCQkJCQkJCQkJZ2V0X3B1YmxpY2F0aW9uX25hbWUocHViaWQsIGZhbHNlKSks CisJCQkJCQkJIGVycmRldGFpbCgiQW5jZXN0b3IgXCIlc1wiIG9mIHBhcnRpdGlvbiBcIiVzXCIg aXMgY3VycmVudGx5IGxpc3RlZCBpbiB0aGUgRVhDRVBUIGNsYXVzZSBvZiB0aGUgcHVibGljYXRp b24uIiwKKwkJCQkJCQkJCSAgIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKGdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfcmVsX25hbWVzcGFjZShyb290KSksCisJCQkJCQkJCQkJCQkJCQkJICBnZXRf cmVsX25hbWUocm9vdCkpLAorCQkJCQkJCQkJICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlv bk5hbWUodGFyZ2V0cmVsKSksCisJCQkJCQkJIGVycmhpbnQoIkNoYW5nZSBFWENFUFQgbGlzdCB1 c2luZyBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIFRBQkxFUyBJTiBTQ0hFTUEgLi4uIEVYQ0VQ VC4iKSkpOworCQkJfQorCQl9CisJfQogCiAJLyogTXVzdCBiZSBhIHJlZ3VsYXIgb3IgcGFydGl0 aW9uZWQgdGFibGUgKi8KIAlpZiAoUmVsYXRpb25HZXRGb3JtKHRhcmdldHJlbCktPnJlbGtpbmQg IT0gUkVMS0lORF9SRUxBVElPTiAmJgpAQCAtMzQwLDE5ICszODYsMjAgQEAgaXNfdGFibGVfcHVi bGljYXRpb24oT2lkIHB1YmlkKQogCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocHVicmVsc3Jl bCwKIAkJCQkJCQkgIFB1YmxpY2F0aW9uUmVsUHJwdWJpZEluZGV4SWQsCiAJCQkJCQkJICB0cnVl LCBOVUxMLCAxLCAmc2NhbmtleSk7Ci0JdHVwID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKTsKLQlp ZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXApKQotCXsKLQkJRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwg cHVicmVsOwogCi0JCXB1YnJlbCA9IChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNU KHR1cCk7Ci0KLQkJLyoKLQkJICogRm9yIGFueSBwdWJsaWNhdGlvbiwgcGdfcHVibGljYXRpb25f cmVsIGNvbnRhaW5zIGVpdGhlciBvbmx5IEVYQ0VQVAotCQkgKiBlbnRyaWVzIG9yIG9ubHkgZXhw bGljaXRseSBpbmNsdWRlZCB0YWJsZXMuIFRoZXJlZm9yZSwgZXhhbWluaW5nCi0JCSAqIHRoZSBm aXJzdCB0dXBsZSBpcyBzdWZmaWNpZW50IHRvIGRldGVybWluZSB0YWJsZSBpbmNsdXNpb24uCi0J CSAqLwotCQlyZXN1bHQgPSAhcHVicmVsLT5wcmV4Y2VwdDsKKwkvKgorCSAqIEEgcHVibGljYXRp b24gY2FuIGhvbGQgYm90aCBleHBsaWNpdC1pbmNsdWRlIChwcmV4Y2VwdD1mYWxzZSkKKwkgKiBh bmQgRVhDRVBUIChwcmV4Y2VwdD10cnVlKSByb3dzIGZvciB0aGUgc2FtZSBwdWJpZC4gIFNjYW4g dW50aWwKKwkgKiB3ZSBmaW5kIGFuIGV4cGxpY2l0LWluY2x1ZGUgcm93LCByYXRoZXIgdGhhbiBy ZWx5aW5nIG9uIHRoZSBmaXJzdCByb3cncworCSAqIHByZXhjZXB0IHZhbHVlLgorCSAqLworCXdo aWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsK KwkJaWYgKCEoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhj ZXB0KQorCQl7CisJCQlyZXN1bHQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KIAl9CiAKIAlzeXN0 YWJsZV9lbmRzY2FuKHNjYW4pOwpAQCAtNDU0LDE0ICs1MDEsMjcgQEAgR2V0UHViUGFydGl0aW9u T3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0 b3B0LAogICoKICAqIE5vdGUgdGhhdCB0aGUgbGlzdCBvZiBhbmNlc3RvcnMgc2hvdWxkIGJlIG9y ZGVyZWQgc3VjaCB0aGF0IHRoZSB0b3Btb3N0CiAgKiBhbmNlc3RvciBpcyBhdCB0aGUgZW5kIG9m IHRoZSBsaXN0LgorICoKKyAqIGV4Y2VwdF9wdWJpZHMgaXMgYSBsaXN0IG9mIHB1YmxpY2F0aW9u IE9JRHMgd2hvc2Ugc2NoZW1hIG1lbWJlcnNoaXAKKyAqIHNob3VsZCBiZSBpZ25vcmVkIGZvciB0 aGUgYW5jZXN0b3IgKGJlY2F1c2UgdGhlIGFuY2VzdG9yIGlzIGluIHRoZWlyCisgKiBFWENFUFQg Y2xhdXNlKS4KICAqLwogT2lkCi1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBw dWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RB bmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJ CQlpbnQgKmFuY2VzdG9yX2xldmVsLCBMaXN0ICpleGNlcHRfcHViaWRzKQogewogCUxpc3RDZWxs ICAgKmxjOwogCU9pZAkJCXRvcG1vc3RfcmVsaWQgPSBJbnZhbGlkT2lkOwogCWludAkJCWxldmVs ID0gMDsKIAorCS8qCisJICogZXhjZXB0X3B1YmlkcyBpcyBjb21wdXRlZCBvbmNlIGZyb20gdGhl IHBhcnRpdGlvbiByb290IGFuZCByZXVzZWQKKwkgKiBhY3Jvc3MgdGhlIGFuY2VzdG9yIHdhbGsu IFJlLWZldGNoaW5nIGV4Y2x1c2lvbiBpbmZvcm1hdGlvbiBmb3IgZWFjaAorCSAqIGFuY2VzdG9y IGlzIHVubmVjZXNzYXJ5IGJlY2F1c2Ugb25seSB0aGUgcm9vdCBjYW4gaGF2ZSBwcmV4Y2VwdD10 cnVlOworCSAqIHBhcnRpdGlvbnMgdGhlbXNlbHZlcyBjYW5ub3QgYmUgYWRkZWQgdG8gRVhDRVBU LgorCSAqLworCWJvb2wJCWNoZWNrX3NjaGVtYXMgPSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9w dWJpZHMsIHB1Ym9pZCk7CisKIAkvKgogCSAqIEZpbmQgdGhlICJ0b3Btb3N0IiBhbmNlc3RvciB0 aGF0IGlzIGluIHRoaXMgcHVibGljYXRpb24uCiAJICovCkBAIC00ODAsNyArNTQwLDcgQEAgR2V0 VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMs IGludCAqYW5jZXN0b3JfbGV2ZWwKIAkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKIAkJCQkqYW5jZXN0 b3JfbGV2ZWwgPSBsZXZlbDsKIAkJfQotCQllbHNlCisJCWVsc2UgaWYgKGNoZWNrX3NjaGVtYXMp CiAJCXsKIAkJCWFzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9u YW1lc3BhY2UoYW5jZXN0b3IpKTsKIAkJCWlmIChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1Ymlk cywgcHVib2lkKSkKQEAgLTU1NSwyMSArNjE1LDM1IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlv bihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCSAqIGR1cGxpY2F0ZXMsIGl0 J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUgbmljZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KIAkg KiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRh bG9nLgogCSAqLwotCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIoUFVCTElDQVRJT05SRUxNQVAs IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAotCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWJp ZCkpKQorCXR1cCA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwgT2JqZWN0SWRH ZXREYXR1bShyZWxpZCksCisJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsKKworCWlm IChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJeworCQlib29sCQlpc19leGNlcHQgPSAoKEZvcm1f cGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCisJCVJlbGVh c2VTeXNDYWNoZSh0dXApOwogCQl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwog CiAJCWlmIChpZl9ub3RfZXhpc3RzKQogCQkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOwog Ci0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNU KSwKLQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgYWxyZWFkeSBtZW1iZXIgb2YgcHVi bGljYXRpb24gXCIlc1wiIiwKLQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJl bCksIHB1Yi0+bmFtZSkpKTsKKwkJaWYgKGlzX2V4Y2VwdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coImNh bm5vdCBhZGQgdGFibGUgXCIlc1wiIHRvIHB1YmxpY2F0aW9uIFwiJXNcIiIsCisJCQkJCQkJUmVs YXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSwKKwkJCQkJCQlwdWItPm5h bWUpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgdGFibGUgaXMgY3VycmVudGx5IGxpc3RlZCBpbiB0 aGUgRVhDRVBUIGNsYXVzZSBvZiB0aGUgcHVibGljYXRpb24uIiksCisJCQkJCSBlcnJoaW50KCJD aGFuZ2UgRVhDRVBUIGxpc3QgdXNpbmcgQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCBUQUJMRVMg SU4gU0NIRU1BIC4uLiBFWENFUFQuIikpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygicmVs YXRpb24gXCIlc1wiIGlzIGFscmVhZHkgbWVtYmVyIG9mIHB1YmxpY2F0aW9uIFwiJXNcIiIsCisJ CQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSwgcHViLT5uYW1lKSkpOwog CX0KIAotCWNoZWNrX3B1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihwcmkpOworCWNoZWNrX3B1Ymxp Y2F0aW9uX2FkZF9yZWxhdGlvbihwcmksIHB1YmlkKTsKIAogCS8qIFZhbGlkYXRlIGFuZCB0cmFu c2xhdGUgY29sdW1uIG5hbWVzIGludG8gYSBCaXRtYXBzZXQgb2YgYXR0bnVtcy4gKi8KIAlhdHRu dW1zID0gcHViX2NvbGxpc3RfdmFsaWRhdGUocHJpLT5yZWxhdGlvbiwgcHJpLT5jb2x1bW5zKTsK QEAgLTk5MiwxMiArMTA2NiwxMyBAQCBHZXRJbmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKE9p ZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogICogR2V0cyBsaXN0IG9m IHRhYmxlIG9pZHMgdGhhdCB3ZXJlIHNwZWNpZmllZCBpbiB0aGUgRVhDRVBUIGNsYXVzZSBmb3Ig YQogICogcHVibGljYXRpb24uCiAgKgotICogVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBB TEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4KKyAqIFRoaXMgaXMgdXNlZCBmb3IgRk9SIEFMTCBUQUJM RVMgYW5kIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9ucywKKyAqIGJvdGggb2Ygd2hp Y2ggc3VwcG9ydCBFWENFUFQgVEFCTEUuCiAgKi8KIExpc3QgKgogR2V0RXhjbHVkZWRQdWJsaWNh dGlvblRhYmxlcyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIHsK LQlBc3NlcnQoR2V0UHVibGljYXRpb24ocHViaWQpLT5hbGx0YWJsZXMpOworCUFzc2VydChHZXRQ dWJsaWNhdGlvbihwdWJpZCktPmFsbHRhYmxlcyB8fCBpc19zY2hlbWFfcHVibGljYXRpb24ocHVi aWQpKTsKIAogCXJldHVybiBnZXRfcHVibGljYXRpb25fcmVsYXRpb25zKHB1YmlkLCBwdWJfcGFy dG9wdCwgdHJ1ZSk7CiB9CkBAIC0xMDU5LDE1ICsxMTM0LDE1IEBAIEdldEFsbFB1YmxpY2F0aW9u UmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAJVGFi bGVTY2FuRGVzYyBzY2FuOwogCUhlYXBUdXBsZQl0dXBsZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBO SUw7Ci0JTGlzdAkgICAqZXhjZXB0bGlzdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRfcmVsaWRz ID0gTklMOwogCiAJQXNzZXJ0KCEocmVsa2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFICYmIHB1YnZp YXJvb3QpKTsKIAogCS8qIEVYQ0VQVCBmaWx0ZXJpbmcgYXBwbGllcyBvbmx5IHRvIHJlbGF0aW9u cywgbm90IHNlcXVlbmNlcyAqLwogCWlmIChyZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04pCi0J CWV4Y2VwdGxpc3QgPSBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLCBwdWJ2aWFy b290ID8KLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05fUEFSVF9ST09UIDoKLQkJCQkJCQkJCQkJ CSAgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVk UHVibGljYXRpb25UYWJsZXMocHViaWQsIHB1YnZpYXJvb3QgPworCQkJCQkJCQkJCQkJCSBQVUJM SUNBVElPTl9QQVJUX1JPT1QgOgorCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYp OwogCiAJY2xhc3NSZWwgPSB0YWJsZV9vcGVuKFJlbGF0aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hh cmVMb2NrKTsKIApAQCAtMTA4NSw3ICsxMTYwLDcgQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlv bnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIAogCQlpZiAoaXNf cHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYmCiAJCQkhKHJlbEZvcm0tPnJlbGlz cGFydGl0aW9uICYmIHB1YnZpYXJvb3QpICYmCi0JCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxp c3QsIHJlbGlkKSkKKwkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpKQog CQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC0xMTA3LDcg KzExODIsNyBAQCBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVs a2luZCwgYm9vbCBwdWJ2aWFyb290KQogCiAJCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVs aWQsIHJlbEZvcm0pICYmCiAJCQkJIXJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmCi0JCQkJIWxp c3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCisJCQkJIWxpc3RfbWVtYmVyX29pZChl eGNlcHRfcmVsaWRzLCByZWxpZCkpCiAJCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBy ZWxpZCk7CiAJCX0KIApAQCAtMTI0MiwyMiArMTMxNyw2OCBAQCBHZXRTY2hlbWFQdWJsaWNhdGlv blJlbGF0aW9ucyhPaWQgc2NoZW1haWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkK IAogLyoKICAqIEdldHMgdGhlIGxpc3Qgb2YgYWxsIHJlbGF0aW9ucyBwdWJsaXNoZWQgYnkgRk9S IFRBQkxFUyBJTiBTQ0hFTUEKLSAqIHB1YmxpY2F0aW9uLgorICogcHVibGljYXRpb24sIGV4Y2x1 ZGluZyBhbnkgdGFibGVzIGxpc3RlZCBpbiB0aGUgRVhDRVBUIGNsYXVzZS4KICAqLwogTGlzdCAq CiBHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9u UGFydE9wdCBwdWJfcGFydG9wdCkKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJTGlzdAkg ICAqcHVic2NoZW1hbGlzdCA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJTGlzdAkg ICAqZXhjZXB0X3JlbGlkcyA9IE5JTDsKIAlMaXN0Q2VsbCAgICpjZWxsOwogCisJLyogZ2V0IHRo ZSBsaXN0IG9mIHRhYmxlcyBleGNsdWRlZCB2aWEgRVhDRVBUIFRBQkxFIGZvciB0aGlzIHB1Ymxp Y2F0aW9uICovCisJaWYgKHB1YnNjaGVtYWxpc3QgIT0gTklMKQorCQlleGNlcHRfcmVsaWRzID0g R2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhwdWJpZCwgcHViX3BhcnRvcHQpOworCiAJZm9y ZWFjaChjZWxsLCBwdWJzY2hlbWFsaXN0KQogCXsKIAkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rf b2lkKGNlbGwpOwogCQlMaXN0CSAgICpzY2hlbWFSZWxzID0gTklMOwogCiAJCXNjaGVtYVJlbHMg PSBHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhzY2hlbWFpZCwgcHViX3BhcnRvcHQpOwot CQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIHNjaGVtYVJlbHMpOworCisJCWlmIChleGNl cHRfcmVsaWRzICE9IE5JTCkKKwkJeworCQkJLyogZmlsdGVyIG91dCBhbnkgdGFibGVzIHRoYXQg YXBwZWFyIGluIHRoZSBFWENFUFQgbGlzdCAqLworCQkJTGlzdENlbGwgICAqcmxjOworCisJCQlm b3JlYWNoKHJsYywgc2NoZW1hUmVscykKKwkJCXsKKwkJCQlPaWQJCQlyZWxpZCA9IGxmaXJzdF9v aWQocmxjKTsKKwkJCQlib29sCQlleGNsdWRlZCA9IGxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVs aWRzLCByZWxpZCk7CisKKwkJCQkvKgorCQkJCSAqIEEgcGFydGl0aW9uIHdob3NlIGFuY2VzdG9y IGlzIGluIHRoZSBwdWJsaWNhdGlvbidzIEVYQ0VQVAorCQkJCSAqIGxpc3QgaXMgYWxzbyBleGNs dWRlZCwgZXZlbiBpZiB0aGUgcGFydGl0aW9uIGl0c2VsZiBsaXZlcworCQkJCSAqIGluIGEgZGlm ZmVyZW50IChpbmNsdWRlZCkgc2NoZW1hLiAgSW5kaXZpZHVhbCBwYXJ0aXRpb25zCisJCQkJICog Y2Fubm90IGFwcGVhciBpbiBFWENFUFQsIHNvIGNhc2NhZGluZyBmcm9tIHRoZSByb290IGlzIHRo ZQorCQkJCSAqIG9ubHkgd2F5IHRvIGV4Y2x1ZGUgYSBwYXJ0aXRpb247IHRoaXMgbWF0Y2hlcyB0 aGUgQUxMCisJCQkJICogVEFCTEVTIEVYQ0VQVCAoVEFCTEUgcm9vdCkgYmVoYXZpb3IuCisJCQkJ ICovCisJCQkJaWYgKCFleGNsdWRlZCAmJiBnZXRfcmVsX3JlbGlzcGFydGl0aW9uKHJlbGlkKSkK KwkJCQl7CisJCQkJCUxpc3QJICAgKmFuY2VzdG9ycyA9IGdldF9wYXJ0aXRpb25fYW5jZXN0b3Jz KHJlbGlkKTsKKwkJCQkJTGlzdENlbGwgICAqYWxjOworCisJCQkJCWZvcmVhY2goYWxjLCBhbmNl c3RvcnMpCisJCQkJCXsKKwkJCQkJCWlmIChsaXN0X21lbWJlcl9vaWQoZXhjZXB0X3JlbGlkcywg bGZpcnN0X29pZChhbGMpKSkKKwkJCQkJCXsKKwkJCQkJCQlleGNsdWRlZCA9IHRydWU7CisJCQkJ CQkJYnJlYWs7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJbGlzdF9mcmVlKGFuY2VzdG9ycyk7CisJ CQkJfQorCisJCQkJaWYgKCFleGNsdWRlZCkKKwkJCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVz dWx0LCByZWxpZCk7CisJCQl9CisJCQlsaXN0X2ZyZWUoc2NoZW1hUmVscyk7CisJCX0KKwkJZWxz ZQorCQkJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBzY2hlbWFSZWxzKTsKIAl9CiAKIAly ZXR1cm4gcmVzdWx0OwpAQCAtMTMzNCw2ICsxNDU1LDcgQEAgaXNfdGFibGVfcHVibGlzaGFibGVf aW5fcHVibGljYXRpb24oT2lkIHJlbGlkLCBQdWJsaWNhdGlvbiAqcHViKQogewogCWJvb2wJCXJl bGlzcGFydGl0aW9uOwogCUxpc3QJICAgKmFuY2VzdG9ycyA9IE5JTDsKKwlIZWFwVHVwbGUJdHVw OwogCiAJLyoKIAkgKiBGb3Igbm9uLXB1YnZpYXJvb3QgcHVibGljYXRpb25zLCBhIHBhcnRpdGlv bmVkIHRhYmxlIGlzIG5ldmVyIHRoZQpAQCAtMTM5MCwyMCArMTUxMiw2MiBAQCBpc190YWJsZV9w dWJsaXNoYWJsZV9pbl9wdWJsaWNhdGlvbihPaWQgcmVsaWQsIFB1YmxpY2F0aW9uICpwdWIpCiAJ ICogSWYgaXQncyBmYWxzZSwgdGhlIHBhcnRpdGlvbiBpcyBjb3ZlcmVkIGJ5IGl0cyBhbmNlc3Rv cidzIHByZXNlbmNlIGluCiAJICogdGhlIHB1YmxpY2F0aW9uLCBpdCBzaG91bGQgYmUgaW5jbHVk ZWQgKHJldHVybiB0cnVlKS4KIAkgKi8KLQlpZiAocmVsaXNwYXJ0aXRpb24gJiYKLQkJT2lkSXNW YWxpZChHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lkLCBhbmNlc3RvcnMs IE5VTEwpKSkKLQkJcmV0dXJuICFwdWItPnB1YnZpYXJvb3Q7CisJaWYgKHJlbGlzcGFydGl0aW9u KQorCXsKKwkJT2lkCQkJYW5jZXN0b3Jfb2lkOworCisJCWFuY2VzdG9yX29pZCA9IEdldFRvcE1v c3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsIGFuY2VzdG9ycywgTlVMTCwgTklMKTsK KwkJaWYgKE9pZElzVmFsaWQoYW5jZXN0b3Jfb2lkKSkKKwkJeworCQkJLyoKKwkJCSAqIFRoZSBh bmNlc3RvciB3YXMgZm91bmQgaW4gdGhlIHB1YmxpY2F0aW9uICh2aWEgZXhwbGljaXQKKwkJCSAq IG1lbWJlcnNoaXAgb3Igc2NoZW1hIG1lbWJlcnNoaXApLCBidXQgaXQgbWF5IGJlIGV4Y2x1ZGVk LiBDaGVjaworCQkJICogZm9yIGEgcHJleGNlcHQgcm93IGJlZm9yZSBjb25jbHVkaW5nIHRoZSBw YXJ0aXRpb24gaXMKKwkJCSAqIHB1Ymxpc2hlZC4KKwkJCSAqLworCQkJdHVwID0gU2VhcmNoU3lz Q2FjaGUyKFBVQkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0oYW5j ZXN0b3Jfb2lkKSwKKwkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHB1Yi0+b2lkKSk7CisJCQlp ZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJeworCQkJCWJvb2wJCWlzX2V4Y2VwdDsKKwor CQkJCWlzX2V4Y2VwdCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXAp KS0+cHJleGNlcHQ7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJaWYgKGlzX2V4Y2Vw dCkKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJfQorCQkJcmV0dXJuICFwdWItPnB1YnZpYXJvb3Q7 CisJCX0KKwl9CiAKIAkvKgogCSAqIENoZWNrIHdoZXRoZXIgdGhlIHRhYmxlIGlzIGV4cGxpY2l0 bHkgcHVibGlzaGVkIHZpYSBwZ19wdWJsaWNhdGlvbl9yZWwKIAkgKiBvciBwZ19wdWJsaWNhdGlv bl9uYW1lc3BhY2UuCisJICoKKwkgKiBBIHBnX3B1YmxpY2F0aW9uX3JlbCByb3cgd2l0aCBwcmV4 Y2VwdD10cnVlIG1lYW5zIHRoZSB0YWJsZSBpcworCSAqIGV4cGxpY2l0bHkgZXhjbHVkZWQgdmlh IEVYQ0VQVCBhbmQgbXVzdCBub3QgYmUgcmVwb3J0ZWQgYXMgcHVibGlzaGVkLAorCSAqIGV2ZW4g aWYgaXRzIHNjaGVtYSBpcyBvdGhlcndpc2UgaW5jbHVkZWQuICBBIHJvdyB3aXRoIHByZXhjZXB0 PWZhbHNlCisJICogbWVhbnMgaXQgaXMgZXhwbGljaXRseSBpbmNsdWRlZC4gIElmIG5vIHBnX3B1 YmxpY2F0aW9uX3JlbCByb3cgZXhpc3RzLAorCSAqIHRoZSB0YWJsZSBpcyBwdWJsaXNoZWQgaWZm IGl0cyBzY2hlbWEgYXBwZWFycyBpbgorCSAqIHBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS4KIAkg Ki8KLQlyZXR1cm4gKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihQVUJMSUNBVElPTlJFTE1BUCwKLQkJ CQkJCQkJICBPYmplY3RJZEdldERhdHVtKHJlbGlkKSwKLQkJCQkJCQkJICBPYmplY3RJZEdldERh dHVtKHB1Yi0+b2lkKSkgfHwKLQkJCVNlYXJjaFN5c0NhY2hlRXhpc3RzMihQVUJMSUNBVElPTk5B TUVTUEFDRU1BUCwKLQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKGdldF9yZWxfbmFtZXNwYWNl KHJlbGlkKSksCi0JCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpKTsKKworCXR1 cCA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKKwkJCQkJCSAgT2JqZWN0SWRH ZXREYXR1bShyZWxpZCksCisJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViLT5vaWQpKTsKKwlp ZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCXsKKwkJYm9vbAkJaXNfZXhjZXB0OworCisJCWlz X2V4Y2VwdCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApKS0+cHJl eGNlcHQ7CisJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQlyZXR1cm4gIWlzX2V4Y2VwdDsKKwl9 CisKKwlyZXR1cm4gU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFBVQkxJQ0FUSU9OTkFNRVNQQUNFTUFQ LAorCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShnZXRfcmVsX25hbWVzcGFjZShyZWxpZCkpLAor CQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpOwogfQogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA0NDBhZGIzNTZhZC4uMjI2ZGRhZmRhOTMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC0yMiw2ICsyMiw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL29iamVj dGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25h bWVzcGFjZS5oIgpAQCAtNzEsNiArNzIsNyBAQCBzdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkFkZFNj aGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJ CQkJCSAgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgUHVibGljYXRp b25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgbWlzc2luZ19vayk7 CiBzdGF0aWMgY2hhciBkZWZHZXRHZW5lcmF0ZWRDb2xzT3B0aW9uKERlZkVsZW0gKmRlZik7Citz dGF0aWMgdm9pZCBDaGVja0V4Y2VwdE5vdEluVGFibGVMaXN0KExpc3QgKmV4Y2VwdF9yZWxzLCBM aXN0ICpleHBsaWNpdHJlbGlkcyk7CiAKIAogc3RhdGljIHZvaWQKQEAgLTE4MSw3ICsxODMsNyBA QCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKICAqLwogc3Rh dGljIHZvaWQKIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlz dCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJICAgTGlzdCAqKnJlbHMsIExpc3QgKipleGNl cHRyZWxzLCBMaXN0ICoqc2NoZW1hcykKKwkJCQkJCSAgIExpc3QgKipyZWxzLCBMaXN0ICoqZXhj ZXB0X3B1YnRhYmxlcywgTGlzdCAqKnNjaGVtYXMpCiB7CiAJTGlzdENlbGwgICAqY2VsbDsKIAlQ dWJsaWNhdGlvbk9ialNwZWMgKnB1Ym9iajsKQEAgLTIwMCw3ICsyMDIsNyBAQCBPYmplY3RzSW5Q dWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJewogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU6CiAJCQkJcHVib2Jq LT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKLQkJCQkqZXhjZXB0cmVscyA9IGxhcHBlbmQoKmV4 Y2VwdHJlbHMsIHB1Ym9iai0+cHVidGFibGUpOworCQkJCSpleGNlcHRfcHVidGFibGVzID0gbGFw cGVuZCgqZXhjZXB0X3B1YnRhYmxlcywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgogCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2Vw dCA9IGZhbHNlOwpAQCAtMjI0LDYgKzIyNiwzOCBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lk cyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAogCQkJCS8qIEZp bHRlciBvdXQgZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIgKi8KIAkJ CQkqc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQoKnNjaGVtYXMsIHNjaGVtYWlkKTsK KworCQkJCS8qCisJCQkJICogUXVhbGlmeSB1bnF1YWxpZmllZCBFWENFUFQgdGFibGUgbmFtZXMg d2l0aCB0aGUgcmVzb2x2ZWQKKwkJCQkgKiBjdXJyZW50IHNjaGVtYSBhbmQgcmVqZWN0IGFueSBl eHBsaWNpdGx5IGNyb3NzLXNjaGVtYQorCQkJCSAqIGVudHJpZXMuICBUaGlzIG1pcnJvcnMgdGhl IHBhcnNlLXRpbWUgaGFuZGxpbmcgZG9uZSBmb3IKKwkJCQkgKiBUQUJMRVNfSU5fU0NIRU1BIGlu IHByZXByb2Nlc3NfcHVib2JqX2xpc3QoKSwgZGVmZXJyZWQgaGVyZQorCQkJCSAqIGJlY2F1c2Ug Q1VSUkVOVF9TQ0hFTUEgaXMgbm90IGtub3duIHVudGlsIGV4ZWN1dGlvbiB0aW1lLgorCQkJCSAq LworCQkJCWlmIChwdWJvYmotPmV4Y2VwdF90YWJsZXMgIT0gTklMKQorCQkJCXsKKwkJCQkJY2hh cgkgICAqY3VyX3NjaGVtYV9uYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHNjaGVtYWlkKTsKKwor CQkJCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbk9ialNwZWMsIGVvYmosIHB1Ym9iai0+ZXhjZXB0 X3RhYmxlcykKKwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAqZW9ial9zY2hlbWFuYW1lID0KKwkJ CQkJCQllb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWU7CisJCQkJCQljb25zdCBj aGFyICplb2JqX3JlbG5hbWUgPQorCQkJCQkJCWVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+cmVs bmFtZTsKKworCQkJCQkJaWYgKGVvYmpfc2NoZW1hbmFtZSA9PSBOVUxMKQorCQkJCQkJCWVvYmot PnB1YnRhYmxlLT5yZWxhdGlvbi0+c2NoZW1hbmFtZSA9IGN1cl9zY2hlbWFfbmFtZTsKKwkJCQkJ CWVsc2UgaWYgKHN0cmNtcChlb2JqX3NjaGVtYW5hbWUsIGN1cl9zY2hlbWFfbmFtZSkgIT0gMCkK KwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf T0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgaW4gRVhD RVBUIGNsYXVzZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNcIiIsCisJCQkJCQkJCQkJ ICAgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoZW9ial9zY2hlbWFuYW1lLCBlb2JqX3JlbG5h bWUpLAorCQkJCQkJCQkJCSAgIGN1cl9zY2hlbWFfbmFtZSkpOworCisJCQkJCQkqZXhjZXB0X3B1 YnRhYmxlcyA9IGxhcHBlbmQoKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJCQkJCQkJZW9iai0+ cHVidGFibGUpOworCQkJCQl9CisJCQkJfQogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkv KiBzaG91bGRuJ3QgaGFwcGVuICovCkBAIC0zMDUsNyArMzM5LDcgQEAgcHViX3JmX2NvbnRhaW5z X2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2Vz dG9ycywKIAlpZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlv bikKIAl7CiAJCXB1Ymxpc2hfYXNfcmVsaWQKLQkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJs aWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJCT0gR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMLCBOSUwpOwogCiAJCWlmICghT2lk SXNWYWxpZChwdWJsaXNoX2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsK QEAgLTM4OSw3ICs0MjMsNyBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1Ymlk LCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCSAqLwogCWlmIChwdWJ2aWFy b290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKLQkJcHVibGlzaF9h c19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9y cywgTlVMTCk7CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1Ymxp Y2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsIE5JTCk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlk KHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtNzcw LDYgKzgwNCw0OCBAQCBUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMoTGlzdCAqdGFibGVzLCBjb25z dCBjaGFyICpxdWVyeVN0cmluZywKIAl9CiB9CiAKKy8qCisgKiBDaGVjayB0aGF0IG5vIHJlbGF0 aW9uIGluIGV4Y2VwdF9yZWxzIGlzIGFsc28gcHJlc2VudCBpbiBleHBsaWNpdHJlbGlkcywKKyAq IHRoZSBsaXN0IG9mIE9JRHMgYWRkZWQgdG8gdGhlIHB1YmxpY2F0aW9uIGJ5IHRoZSBleHBsaWNp dCBUQUJMRSBsaXN0LiAgQQorICogdGFibGUgY2Fubm90IGJlIGJvdGggZXhwbGljaXRseSBwdWJs aXNoZWQgYW5kIGV4Y2x1ZGVkIGluIHRoZSBzYW1lIERETC4KKyAqCisgKiBBbHNvIGNoZWNrIHRo YXQgbm8gcmVsYXRpb24gaW4gZXhwbGljaXRyZWxpZHMgaXMgYSBwYXJ0aXRpb24gd2hvc2UKKyAq IHBhcnRpdGlvbiByb290IGlzIGluIGV4Y2VwdF9yZWxzOyB0aGF0IHdvdWxkIGxlYXZlIHRoZSBj YXRhbG9nCisgKiBpbmNvbnNpc3RlbnQgKHJvb3QgZXhjbHVkZWQsIHBhcnRpdGlvbiBleHBsaWNp dGx5IGluY2x1ZGVkKSB3aXRoIHRoZQorICogYW5jZXN0b3ItY2FzY2FkZSBydWxlIHNpbGVudGx5 IG92ZXJyaWRpbmcgdGhlIGluY2x1ZGUgYXQgcmVwbGljYXRpb24KKyAqIHRpbWUuCisgKi8KK3N0 YXRpYyB2b2lkCitDaGVja0V4Y2VwdE5vdEluVGFibGVMaXN0KExpc3QgKmV4Y2VwdF9yZWxzLCBM aXN0ICpleHBsaWNpdHJlbGlkcykKK3sKKwlmb3JlYWNoX29pZChleHBsaWNpdHJlbGlkLCBleHBs aWNpdHJlbGlkcykKKwl7CisJCU9pZAkJCXJvb3QgPSBJbnZhbGlkT2lkOworCisJCWlmIChnZXRf cmVsX3JlbGlzcGFydGl0aW9uKGV4cGxpY2l0cmVsaWQpKQorCQkJcm9vdCA9IGxsYXN0X29pZChn ZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhleHBsaWNpdHJlbGlkKSk7CisKKwkJZm9yZWFjaF9wdHIo UHVibGljYXRpb25SZWxJbmZvLCBwcmksIGV4Y2VwdF9yZWxzKQorCQl7CisJCQlPaWQJCQlleGNl cHRyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbik7CisKKwkJCWlmIChleGNl cHRyZWxpZCA9PSBleHBsaWNpdHJlbGlkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJ0YWJs ZSBcIiVzXCIgY2Fubm90IGJlIGJvdGggcHVibGlzaGVkIGFuZCBleGNsdWRlZCIsCisJCQkJCQkJ ICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUocHJpLT5yZWxhdGlvbikpKTsKKwor CQkJaWYgKE9pZElzVmFsaWQocm9vdCkgJiYgZXhjZXB0cmVsaWQgPT0gcm9vdCkKKwkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCisJCQkJCQkgZXJybXNnKCJwYXJ0aXRpb24gXCIlc1wiIGNhbm5vdCBiZSBib3RoIHB1Ymxp c2hlZCBhbmQgZXhjbHVkZWQiLAorCQkJCQkJCQlxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihn ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3JlbF9uYW1lc3BhY2UoZXhwbGljaXRyZWxpZCkpLAorCQkJ CQkJCQkJCQkJCQkgICBnZXRfcmVsX25hbWUoZXhwbGljaXRyZWxpZCkpKSwKKwkJCQkJCSBlcnJk ZXRhaWwoIkFuY2VzdG9yIFwiJXNcIiBpcyBhbHNvIGJlaW5nIGV4Y2x1ZGVkIGJ5IHRoaXMgc2Ft ZSBjb21tYW5kLiIsCisJCQkJCQkJCSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1l KHByaS0+cmVsYXRpb24pKSkpOworCQl9CisJfQorfQogCiAvKgogICogR2l2ZW4gYSBsaXN0IG9m IHRhYmxlcyB0aGF0IGFyZSBnb2luZyB0byBiZSBhZGRlZCB0byBhIHB1YmxpY2F0aW9uLApAQCAt ODQ5LDcgKzkyNSw3IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCWNoYXIJCXB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVt bnM7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKIAlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7Ci0J TGlzdAkgICAqZXhjZXB0cmVsYXRpb25zID0gTklMOworCUxpc3QJICAgKmV4Y2VwdF9wdWJ0YWJs ZXMgPSBOSUw7CiAJTGlzdAkgICAqc2NoZW1haWRsaXN0ID0gTklMOwogCiAJLyogbXVzdCBoYXZl IENSRUFURSBwcml2aWxlZ2Ugb24gZGF0YWJhc2UgKi8KQEAgLTkzNiwxNiArMTAxMiwxNiBAQCBD cmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3Rt dCAqc3RtdCkKIAogCS8qIEFzc29jaWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAq LwogCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwg JnJlbGF0aW9ucywKLQkJCQkJCQkgICAmZXhjZXB0cmVsYXRpb25zLCAmc2NoZW1haWRsaXN0KTsK KwkJCQkJCQkgICAmZXhjZXB0X3B1YnRhYmxlcywgJnNjaGVtYWlkbGlzdCk7CiAKIAlpZiAoc3Rt dC0+Zm9yX2FsbF90YWJsZXMpCiAJewogCQkvKiBQcm9jZXNzIEVYQ0VQVCB0YWJsZSBsaXN0ICov Ci0JCWlmIChleGNlcHRyZWxhdGlvbnMgIT0gTklMKQorCQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAh PSBOSUwpCiAJCXsKIAkJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBPcGVuVGFibGVMaXN0 KGV4Y2VwdHJlbGF0aW9ucyk7CisJCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRfcHVidGFi bGVzKTsKIAkJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7 CiAJCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKIAkJfQpAQCAtOTU5LDYgKzEwMzUsOCBAQCBDcmVh dGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAq c3RtdCkKIAl9CiAJZWxzZSBpZiAoIXN0bXQtPmZvcl9hbGxfc2VxdWVuY2VzKQogCXsKKwkJTGlz dAkgICAqZXhwbGljaXRyZWxpZHMgPSBOSUw7CisKIAkJLyogRk9SIFRBQkxFUyBJTiBTQ0hFTUEg cmVxdWlyZXMgc3VwZXJ1c2VyICovCiAJCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMICYmICFzdXBl cnVzZXIoKSkKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC05NzcsNiArMTA1NSwxOSBAQCBDcmVhdGVQ dWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3Rt dCkKIAkJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCiAJCQkJCQkJCQkgICBwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKKwkJCS8qCisJCQkgKiBDb2xsZWN0IGV4cGxpY2l0IHRh YmxlIE9JRHMgbm93LCBiZWZvcmUgd2UgY2xvc2UgdGhlIHJlbGF0aW9uCisJCQkgKiBsaXN0LCBz byB0aGF0IGV4Y2VwdC10YWJsZSB2YWxpZGF0aW9uIGJlbG93IGNhbiBjaGVjayBmb3IKKwkJCSAq IGNvbnRyYWRpY3Rpb25zIHdpdGhvdXQgcmVseWluZyBvbiBhIGNhdGFsb2cgc2NhbiB0aGF0IG1p Z2h0IG5vdAorCQkJICogeWV0IHNlZSB0aGUganVzdC1pbnNlcnRlZCByb3dzLgorCQkJICovCisJ CQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAhPSBOSUwpCisJCQl7CisJCQkJZm9yZWFjaF9wdHIoUHVi bGljYXRpb25SZWxJbmZvLCBwcmksIHJlbHMpCisJCQkJCWV4cGxpY2l0cmVsaWRzID0gbGFwcGVu ZF9vaWQoZXhwbGljaXRyZWxpZHMsCisJCQkJCQkJCQkJCQkgUmVsYXRpb25HZXRSZWxpZChwcmkt PnJlbGF0aW9uKSk7CisJCQl9CisKIAkJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVs cywgdHJ1ZSwgTlVMTCk7CiAJCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKIAkJfQpAQCAtOTg5LDYg KzEwODAsMjYgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQ dWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkgKi8KIAkJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlk bGlzdCk7CiAJCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRy dWUsIE5VTEwpOworCisJCQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAhPSBOSUwpCisJCQl7CisJCQkJ TGlzdAkgICAqZXhjZXB0X3JlbHM7CisKKwkJCQlleGNlcHRfcmVscyA9IE9wZW5UYWJsZUxpc3Qo ZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJCQkvKgorCQkJCSAqIFZhbGlkYXRlIHRoYXQgZWFjaCBl eGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBpbiB0aGUKKwkJCQkgKiBleHBsaWNpdCB0YWJsZSBs aXN0ICh3aGljaCB3b3VsZCBiZSBjb250cmFkaWN0b3J5KSwgYW5kCisJCQkJICogdGhhdCBubyBl eHBsaWNpdCBwYXJ0aXRpb24ncyByb290IGlzIGluIHRoZSBleGNlcHQgbGlzdC4KKwkJCQkgKiBV c2UgdGhlIGluLW1lbW9yeSBleHBsaWNpdHJlbGlkcyBjb2xsZWN0ZWQgYWJvdmUgcmF0aGVyCisJ CQkJICogdGhhbiByZS1yZWFkaW5nIHRoZSBjYXRhbG9nLCB3aGljaCBtYXkgbm90IHlldCBzZWUg dGhlCisJCQkJICoganVzdC1pbnNlcnRlZCByb3dzLgorCQkJCSAqLworCQkJCUNoZWNrRXhjZXB0 Tm90SW5UYWJsZUxpc3QoZXhjZXB0X3JlbHMsIGV4cGxpY2l0cmVsaWRzKTsKKworCQkJCVB1Ymxp Y2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgZXhjZXB0X3JlbHMsIHRydWUsIE5VTEwpOworCQkJCUNs b3NlVGFibGVMaXN0KGV4Y2VwdF9yZWxzKTsKKwkJCX0KIAkJfQogCX0KIApAQCAtMTY4MywxMiAr MTc5NCwxMiBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQpCiAJZWxzZQogCXsKIAkJTGlzdAkgICAqcmVsYXRpb25zID0gTklM OwotCQlMaXN0CSAgICpleGNlcHRyZWxhdGlvbnMgPSBOSUw7CisJCUxpc3QJICAgKmV4Y2VwdF9w dWJ0YWJsZXMgPSBOSUw7CiAJCUxpc3QJICAgKnNjaGVtYWlkbGlzdCA9IE5JTDsKIAkJT2lkCQkJ cHViaWQgPSBwdWJmb3JtLT5vaWQ7CiAKIAkJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoc3Rt dC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAotCQkJCQkJCQkgICAmZXhjZXB0cmVs YXRpb25zLCAmc2NoZW1haWRsaXN0KTsKKwkJCQkJCQkJICAgJmV4Y2VwdF9wdWJ0YWJsZXMsICZz Y2hlbWFpZGxpc3QpOwogCiAJCUNoZWNrQWx0ZXJQdWJsaWNhdGlvbihzdG10LCB0dXAsIHJlbGF0 aW9ucywgc2NoZW1haWRsaXN0KTsKIApAQCAtMTcxMSw3ICsxODIyLDcgQEAgQWx0ZXJQdWJsaWNh dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCQkJ CQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJCQkJCQkgICBz dG10LT5wdWJuYW1lKSk7CiAKLQkJcmVsYXRpb25zID0gbGlzdF9jb25jYXQocmVsYXRpb25zLCBl eGNlcHRyZWxhdGlvbnMpOworCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4 Y2VwdF9wdWJ0YWJsZXMpOwogCQlBbHRlclB1YmxpY2F0aW9uVGFibGVzKHN0bXQsIHR1cCwgcmVs YXRpb25zLCBwc3RhdGUtPnBfc291cmNldGV4dCwKIAkJCQkJCQkgICBzY2hlbWFpZGxpc3QgIT0g TklMKTsKIAkJQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoc3RtdCwgdHVwLCBzY2hlbWFpZGxpc3Qp OwpAQCAtMTgyOSw2ICsxOTQwLDYyIEBAIFJlbW92ZVB1YmxpY2F0aW9uU2NoZW1hQnlJZChPaWQg cHNvaWQpCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIH0KIAorLyoKKyAq IFJlbW92ZSBhbnkgRVhDRVBUIGNsYXVzZSBlbnRyaWVzIGZvciBhIHJlbGF0aW9uIGZyb20gc2No ZW1hIHB1YmxpY2F0aW9ucy4KKyAqIENhbGxlZCB3aGVuIGEgdGFibGUgY2hhbmdlcyBzY2hlbWEg KEFMVEVSIFRBQkxFIC4uLiBTRVQgU0NIRU1BKSwgc28gdGhhdAorICogYSBzY2hlbWEtc2NvcGVk IGV4Y2x1c2lvbiBkb2VzIG5vdCBzaWxlbnRseSBmb2xsb3cgdGhlIHRhYmxlIHRvIGl0cyBuZXcK KyAqIHNjaGVtYS4KKyAqLwordm9pZAorUmVtb3ZlU2NoZW1hUHViRXhjZXB0Rm9yUmVsKE9pZCBy ZWxpZCwgT2lkIG9sZE5zcE9pZCwgT2lkIG5ld05zcE9pZCkKK3sKKwlMaXN0CSAgICpwdWJpZHM7 CisKKwkvKgorCSAqIElmIHRoZSB0YWJsZSBpcyBub3QgYWN0dWFsbHkgbW92aW5nIHRvIGEgZGlm ZmVyZW50IHNjaGVtYSAobm8tb3AKKwkgKiBBTFRFUiBUQUJMRSAuLi4gU0VUIFNDSEVNQSA8Y3Vy cmVudF9zY2hlbWE+KSwgdGhlcmUgaXMgbm90aGluZyB0byBkby4KKwkgKi8KKwlpZiAob2xkTnNw T2lkID09IG5ld05zcE9pZCkKKwkJcmV0dXJuOworCisJcHViaWRzID0gR2V0UmVsYXRpb25FeGNs dWRlZFB1YmxpY2F0aW9ucyhyZWxpZCk7CisKKwlmb3JlYWNoX29pZChwdWJpZCwgcHViaWRzKQor CXsKKwkJT2lkCQkJcHJvaWQ7CisKKwkJLyoKKwkJICogVGhpcyBwcm9ibGVtIGRvZXMgbm90IGFw cGx5IHRvIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucywgYmVjYXVzZQorCQkgKiB0aGVpciBF WENFUFQgY2xhdXNlIGlzIHB1YmxpY2F0aW9uLXNjb3BlZCwgbm90IHNjaGVtYS1zY29wZWQ6IHRo ZQorCQkgKiBleGNsdXNpb24gc2hvdWxkIHBlcnNpc3QgcmVnYXJkbGVzcyBvZiB3aGF0IHNjaGVt YSB0aGUgdGFibGUgaXMgaW4uCisJCSAqLworCQlpZiAoIWlzX3NjaGVtYV9wdWJsaWNhdGlvbihw dWJpZCkpCisJCQljb250aW51ZTsKKworCQlwcm9pZCA9IEdldFN5c0NhY2hlT2lkMihQVUJMSUNB VElPTlJFTE1BUCwKKwkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJCQkJ CQlPYmplY3RJZEdldERhdHVtKHJlbGlkKSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShwdWJp ZCkpOworCQlpZiAoT2lkSXNWYWxpZChwcm9pZCkpCisJCXsKKwkJCU9iamVjdEFkZHJlc3Mgb2Jq OworCisJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHVibGljYXRpb25SZWxSZWxhdGlvbklkLCBw cm9pZCk7CisKKwkJCWVyZXBvcnQoREVCVUcyLAorCQkJCQllcnJtc2dfaW50ZXJuYWwoImF1dG8t cmVtb3ZlIGV4Y2x1c2lvbiBvZiB0YWJsZSBcIiVzLiVzXCIgZnJvbSBwdWJsaWNhdGlvbiBcIiVz XCI6IHRhYmxlIG1vdmVkIHRvIHNjaGVtYSBcIiVzXCIiLAorCQkJCQkJCQkJZ2V0X25hbWVzcGFj ZV9uYW1lKG9sZE5zcE9pZCksCisJCQkJCQkJCQlnZXRfcmVsX25hbWUocmVsaWQpLAorCQkJCQkJ CQkJZ2V0X3B1YmxpY2F0aW9uX25hbWUocHViaWQsIGZhbHNlKSwKKwkJCQkJCQkJCWdldF9uYW1l c3BhY2VfbmFtZShuZXdOc3BPaWQpKSk7CisKKwkJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9Q X0NBU0NBREUsIDApOworCQl9CisJfQorCisJbGlzdF9mcmVlKHB1Ymlkcyk7Cit9CisKIC8qCiAg KiBPcGVuIHJlbGF0aW9ucyBzcGVjaWZpZWQgYnkgYSBQdWJsaWNhdGlvblRhYmxlIGxpc3QuCiAg KiBUaGUgcmV0dXJuZWQgdGFibGVzIGFyZSBsb2NrZWQgaW4gU2hhcmVVcGRhdGVFeGNsdXNpdmVM b2NrIG1vZGUgaW4gb3JkZXIgdG8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggOTVhYmFm NDg5MGMuLmE2YWZiMjYyOTY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNjMsNiAr NjMsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJj b21tYW5kcy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9yZXBhY2suaCIKKyNpbmNs dWRlICJjb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1 ZW5jZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RhYmxlc3BhY2UuaCIKQEAgLTE5NTY5LDYgKzE5NTcwLDE2IEBAIEFsdGVyVGFibGVOYW1l c3BhY2VJbnRlcm5hbChSZWxhdGlvbiByZWwsIE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQsCiAJ QWx0ZXJDb25zdHJhaW50TmFtZXNwYWNlcyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIG9sZE5zcE9p ZCwgbnNwT2lkLAogCQkJCQkJCSAgZmFsc2UsIG9ianNNb3ZlZCk7CiAKKwkvKgorCSAqIFJlbW92 ZSBhbnkgRVhDRVBUIGNsYXVzZSBlbnRyaWVzIGZvciB0aGlzIHJlbGF0aW9uIGZyb20gc2NoZW1h CisJICogcHVibGljYXRpb25zLiAgQSBzY2hlbWEtc2NvcGVkIGV4Y2x1c2lvbiBpcyBubyBsb25n ZXIgbWVhbmluZ2Z1bCBvbmNlCisJICogdGhlIHRhYmxlIG1vdmVzIHRvIGEgZGlmZmVyZW50IHNj aGVtYS4KKwkgKi8KKwlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElP TiB8fAorCQlyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxF KQorCQlSZW1vdmVTY2hlbWFQdWJFeGNlcHRGb3JSZWwoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBv bGROc3BPaWQsCisJCQkJCQkJCQluc3BPaWQpOworCiAJdGFibGVfY2xvc2UoY2xhc3NSZWwsIFJv d0V4Y2x1c2l2ZUxvY2spOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBmZjRlMTM4OGM1NS4uNmE3YTFi YzVmOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIm5vZGVzL21h a2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxz L2RhdGV0aW1lLmgiCiAjaW5jbHVkZSAidXRpbHMveG1sLmgiCiAKQEAgLTExMjcyLDcgKzExMjcz LDcgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0 eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRB QkxFIHRhYmxlIFssIC4uLl0KLSAqCQlUQUJMRVMgSU4gU0NIRU1BIHNjaGVtYSBbLCAuLi5dCisg KgkJVEFCTEVTIElOIFNDSEVNQSBzY2hlbWEgW0VYQ0VQVCAoVEFCTEUgdGFibGUgWywgLi4uXSAp XSBbLCAuLi5dCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0xMTMzMiwyMyArMTEz MzMsMjYgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMg PSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OwogCQkJCX0KLQkJCXwg VEFCTEVTIElOX1AgU0NIRU1BIENvbElkCisJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZCBv cHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRp b25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJMRVNf SU5fU0NIRU1BOwogCQkJCQkkJC0+bmFtZSA9ICQ0OworCQkJCQkkJC0+ZXhjZXB0X3RhYmxlcyA9 ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBANDsKIAkJCQl9Ci0JCQl8IFRBQkxFUyBJTl9QIFND SEVNQSBDVVJSRU5UX1NDSEVNQQorCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hF TUEgb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1Ymxp Y2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFC TEVTX0lOX0NVUl9TQ0hFTUE7CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDU7CiAJCQkJCSQk LT5sb2NhdGlvbiA9IEA0OwogCQkJCX0KLQkJCXwgQ29sSWQgb3B0X2NvbHVtbl9saXN0IE9wdFdo ZXJlQ2xhdXNlCisJCQl8IENvbElkIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZSBvcHRf cHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25P YmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJ T047CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDQ7CiAJCQkJCS8qCiAJCQkJCSAqIElmIGVp dGhlciBhIHJvdyBmaWx0ZXIgb3IgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBjcmVhdGUKIAkJ CQkJICogYSBQdWJsaWNhdGlvblRhYmxlIG9iamVjdC4KQEAgLTExMzkyLDEwICsxMTM5NiwxMSBA QCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQyOwog CQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDM7CiAJCQkJfQotCQkJfCBDVVJSRU5U X1NDSEVNQQorCQkJfCBDVVJSRU5UX1NDSEVNQSBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7 CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9i anR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047CisJCQkJCSQkLT5leGNlcHRfdGFi bGVzID0gJDI7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCQk7CkBAIC0yMDc4 NCw2ICsyMDc4OSw4IEBAIHByZXByb2Nlc3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoTGlzdCAqYWxs X29iamVjdHNfbGlzdCwgTGlzdCAqKnB1Ym9iamVjdHMsCiAvKgogICogUHJvY2VzcyBwdWJvYmpz cGVjX2xpc3QgdG8gY2hlY2sgZm9yIGVycm9ycyBpbiBhbnkgb2YgdGhlIG9iamVjdHMgYW5kCiAg KiBjb252ZXJ0IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTiBpbnRvIGFwcHJvcHJpYXRlIFB1 YmxpY2F0aW9uT2JqU3BlY1R5cGUuCisgKiBBbHNvIGZsYXR0ZW5zIGV4Y2VwdF90YWJsZXMgZnJv bSBUQUJMRVMgSU4gU0NIRU1BIG5vZGVzIGludG8gdGhlIGxpc3Qgc28KKyAqIHRoYXQgT2JqZWN0 c0luUHVibGljYXRpb25Ub09pZHMoKSBzZWVzIHRoZW0gYXMgdG9wLWxldmVsIEVYQ0VQVF9UQUJM RSBlbnRyaWVzLgogICovCiBzdGF0aWMgdm9pZAogcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0 ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQpAQCAtMjA4MTIsNiAr MjA4MTksMTMgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3Qs IGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCiAJCWlmIChwdWJvYmotPnB1Ym9ianR5cGUgPT0g UFVCTElDQVRJT05PQkpfVEFCTEUpCiAJCXsKKwkJCS8qIEVYQ0VQVCBpcyBub3QgdmFsaWQgZm9y IHRhYmxlIG9iamVjdHMgKi8KKwkJCWlmIChwdWJvYmotPmV4Y2VwdF90YWJsZXMgIT0gTklMKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJCWVycm1zZygiRVhDRVBUIGlzIG5vdCBhbGxvd2VkIGZvciBUQUJMRSBwdWJsaWNhdGlv biBvYmplY3RzIiksCisJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlvbikp OworCiAJCQkvKiByZWxhdGlvbiBuYW1lIG9yIHB1YnRhYmxlIG11c3QgYmUgc2V0IGZvciB0aGlz IHR5cGUgb2Ygb2JqZWN0ICovCiAJCQlpZiAoIXB1Ym9iai0+bmFtZSAmJiAhcHVib2JqLT5wdWJ0 YWJsZSkKIAkJCQllcmVwb3J0KEVSUk9SLApAQCAtMjA4NjAsNiArMjA4NzQsMzYgQEAgcHJlcHJv Y2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlz Y2FubmVyKQogCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJCQllcnJt c2coImludmFsaWQgc2NoZW1hIG5hbWUiKSwKIAkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwdWJv YmotPmxvY2F0aW9uKSk7CisKKwkJCS8qCisJCQkgKiBGb3IgVEFCTEVTX0lOX1NDSEVNQSwgcXVh bGlmeSB1bnF1YWxpZmllZCBFWENFUFQgdGFibGUgbmFtZXMKKwkJCSAqIHdpdGggdGhlIHBhcmVu dCBzY2hlbWEgYW5kIHJlamVjdCBjcm9zcy1zY2hlbWEgZW50cmllcyBhdCBwYXJzZQorCQkJICog dGltZSwgdGhlbiBmbGF0dGVuIGludG8gdGhlIHRvcC1sZXZlbCBsaXN0LgorCQkJICoKKwkJCSAq IEZvciBUQUJMRVNfSU5fQ1VSX1NDSEVNQSB0aGUgc2NoZW1hIG5hbWUgaXMgbm90IHlldCBrbm93 biwgc28KKwkJCSAqIHNraXAgYm90aCBzdGVwcyBoZXJlOyBPYmplY3RzSW5QdWJsaWNhdGlvblRv T2lkcygpIHdpbGwKKwkJCSAqIHF1YWxpZnkgbmFtZXMgYW5kIHZhbGlkYXRlIHNjaGVtYSBtZW1i ZXJzaGlwIGF0IGV4ZWN1dGlvbiB0aW1lLgorCQkJICovCisJCQlpZiAocHVib2JqLT5wdWJvYmp0 eXBlID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEpCisJCQl7CisJCQkJZm9yZWFj aF9wdHIoUHVibGljYXRpb25PYmpTcGVjLCBlb2JqLCBwdWJvYmotPmV4Y2VwdF90YWJsZXMpCisJ CQkJeworCQkJCQljb25zdCBjaGFyICplb2JqX3NjaGVtYW5hbWUgPSBlb2JqLT5wdWJ0YWJsZS0+ cmVsYXRpb24tPnNjaGVtYW5hbWU7CisJCQkJCWNvbnN0IGNoYXIgKmVvYmpfcmVsbmFtZSA9IGVv YmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+cmVsbmFtZTsKKworCQkJCQlpZiAoZW9ial9zY2hlbWFu YW1lID09IE5VTEwpCisJCQkJCQllb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWUg PSBwdWJvYmotPm5hbWU7CisJCQkJCWVsc2UgaWYgKHN0cmNtcChlb2JqX3NjaGVtYW5hbWUsIHB1 Ym9iai0+bmFtZSkgIT0gMCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUo RVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCQkJZXJybXNnKCJ0YWJs ZSBcIiVzXCIgaW4gRVhDRVBUIGNsYXVzZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNc IiIsCisJCQkJCQkJCQkgICBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihlb2JqX3NjaGVtYW5h bWUsIGVvYmpfcmVsbmFtZSksCisJCQkJCQkJCQkgICBwdWJvYmotPm5hbWUpLAorCQkJCQkJCQlw YXJzZXJfZXJycG9zaXRpb24oZW9iai0+bG9jYXRpb24pKTsKKwkJCQl9CisJCQkJcHVib2Jqc3Bl Y19saXN0ID0gbGlzdF9jb25jYXQocHVib2Jqc3BlY19saXN0LCBwdWJvYmotPmV4Y2VwdF90YWJs ZXMpOworCQkJCXB1Ym9iai0+ZXhjZXB0X3RhYmxlcyA9IE5JTDsKKwkJCX0KIAkJfQogCiAJCXBy ZXZvYmp0eXBlID0gcHVib2JqLT5wdWJvYmp0eXBlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggNGVjZmNiZmY3YWIuLmIwOTgzNzc1YTAzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIwOTcsNiAr MjA5Nyw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9u IHJlbGF0aW9uKQogCQkgKiBhcmUgYWJzb3JiZWQgd2hpbGUgZGVjb2RpbmcgV0FMLgogCQkgKi8K IAkJTGlzdAkgICAqc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYUlk KTsKKwkJTGlzdAkgICAqZXhjZXB0X3B1YmlkczsKIAkJTGlzdENlbGwgICAqbGM7CiAJCU9pZAkJ CXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsKIAkJaW50CQkJcHVibGlzaF9hbmNlc3Rvcl9sZXZl bCA9IDA7CkBAIC0yMTA0LDYgKzIxMDUsMjggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0 RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCWNoYXIJCXJlbGtpbmQgPSBnZXRfcmVs X3JlbGtpbmQocmVsaWQpOwogCQlMaXN0CSAgICpyZWxfcHVibGljYXRpb25zID0gTklMOwogCisJ CS8qCisJCSAqIEZvciB0aGUgc2NoZW1hIEVYQ0VQVCBjaGVjaywgd2UgbXVzdCBsb29rIHVwIHRo ZSB0b3AtbW9zdCBhbmNlc3RvcgorCQkgKiByYXRoZXIgdGhhbiB0aGUgcmVsYXRpb24gaXRzZWxm LiAgY2hlY2tfcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKCkKKwkJICogcHJldmVudHMgaW5kaXZp ZHVhbCBwYXJ0aXRpb25zIGZyb20gYXBwZWFyaW5nIGluIHRoZSBFWENFUFQgY2xhdXNlLAorCQkg KiBzbyBvbmx5IGEgcm9vdCAobm9uLXBhcnRpdGlvbikgdGFibGUgY2FuIGhhdmUgcHJleGNlcHQg PSB0cnVlLgorCQkgKiBVc2luZyB0aGUgcGFydGl0aW9uJ3Mgb3duIE9JRCB3b3VsZCBhbHdheXMg cmV0dXJuIE5JTCBhbmQgbWlzcyB0aGUKKwkJICogZXhjbHVzaW9uLgorCQkgKi8KKwkJT2lkCQkJ cm9vdF9yZWxpZDsKKworCQlpZiAoYW1fcGFydGl0aW9uKQorCQl7CisJCQlMaXN0CSAgICphbmNl c3RvcnMgPSBnZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7CisKKwkJCXJvb3RfcmVsaWQg PSBsbGFzdF9vaWQoYW5jZXN0b3JzKTsKKwkJCWxpc3RfZnJlZShhbmNlc3RvcnMpOworCQl9CisJ CWVsc2UKKwkJCXJvb3RfcmVsaWQgPSByZWxpZDsKKworCQlleGNlcHRfcHViaWRzID0gR2V0UmVs YXRpb25FeGNsdWRlZFB1YmxpY2F0aW9ucyhyb290X3JlbGlkKTsKKwogCQkvKiBSZWxvYWQgcHVi bGljYXRpb25zIGlmIG5lZWRlZCBiZWZvcmUgdXNlLiAqLwogCQlpZiAoIXB1YmxpY2F0aW9uc192 YWxpZCkKIAkJewpAQCAtMjI2NSw5ICsyMjg4LDE5IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJCQlpbnQJCQlsZXZlbDsKIAkJ CQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3RvcnMocmVsaWQpOwog CisJCQkJCS8qCisJCQkJCSAqIFJlYWNoIGhlcmUgZm9yIEZPUiBUQUJMRSwgRk9SIFRBQkxFUyBJ TiBTQ0hFTUEsIG9yCisJCQkJCSAqIG1peGVkIHB1YmxpY2F0aW9ucy4gZXhjZXB0X3B1YmlkcyBs ZXRzCisJCQkJCSAqIEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oKSBza2lwIHNjaGVt YS1iYXNlZAorCQkJCQkgKiBhbmNlc3RvciBtYXRjaGVzIHdoZW4gdGhlIHBhcnRpdGlvbiByb290 IGlzIGV4Y2x1ZGVkCisJCQkJCSAqIHZpYSB0aGlzIHB1YmxpY2F0aW9uJ3MgRVhDRVBUIGNsYXVz ZS4gSXQgaGFzIG5vIGVmZmVjdAorCQkJCQkgKiBmb3IgcHVyZSBGT1IgVEFCTEUgcHVibGljYXRp b25zLCB3aGljaCBjYW5ub3QgaGF2ZQorCQkJCQkgKiBwcmV4Y2VwdCByb3dzLgorCQkJCQkgKi8K IAkJCQkJYW5jZXN0b3IgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lk LAogCQkJCQkJCQkJCQkJCQkJICAgYW5jZXN0b3JzLAotCQkJCQkJCQkJCQkJCQkJICAgJmxldmVs KTsKKwkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCwKKwkJCQkJCQkJCQkJCQkJCSAgIGV4Y2VwdF9w dWJpZHMpOwogCiAJCQkJCWlmIChhbmNlc3RvciAhPSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0y MjgxLDcgKzIzMTQsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBS ZWxhdGlvbiByZWxhdGlvbikKIAkJCQl9CiAKIAkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKHB1Ymlk cywgcHViLT5vaWQpIHx8Ci0JCQkJCWxpc3RfbWVtYmVyX29pZChzY2hlbWFQdWJpZHMsIHB1Yi0+ b2lkKSB8fAorCQkJCQkobGlzdF9tZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpICYm CisJCQkJCSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9wdWJpZHMsIHB1Yi0+b2lkKSkgfHwKIAkJ CQkJYW5jZXN0b3JfcHVibGlzaGVkKQogCQkJCQlwdWJsaXNoID0gdHJ1ZTsKIAkJCX0KQEAgLTIz NjAsNiArMjM5NCw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJl bGF0aW9uIHJlbGF0aW9uKQogCiAJCWxpc3RfZnJlZShwdWJpZHMpOwogCQlsaXN0X2ZyZWUoc2No ZW1hUHViaWRzKTsKKwkJbGlzdF9mcmVlKGV4Y2VwdF9wdWJpZHMpOwogCQlsaXN0X2ZyZWUocmVs X3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxpZCA9IHRydWU7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCBmYjRlMDQyYmU4YS4uOTJmZjg5ZmEyYTQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTg0NSwxNiArNTg0NSwyOSBAQCBSZWxh dGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRl c2MgKnB1YmRlc2MpCiAJLyogRmV0Y2ggdGhlIHB1YmxpY2F0aW9uIG1lbWJlcnNoaXAgaW5mby4g Ki8KIAlwdWJvaWRzID0gR2V0UmVsYXRpb25JbmNsdWRlZFB1YmxpY2F0aW9ucyhyZWxpZCk7CiAJ c2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7Ci0JcHVib2lkcyA9IGxp c3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVt YWlkKSk7CiAKIAlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlP aWQJCQlsYXN0X2FuY2VzdG9yX3JlbGlkOwotCi0JCS8qIEFkZCBwdWJsaWNhdGlvbnMgdGhhdCB0 aGUgYW5jZXN0b3JzIGFyZSBpbiB0b28uICovCiAJCWFuY2VzdG9ycyA9IGdldF9wYXJ0aXRpb25f YW5jZXN0b3JzKHJlbGlkKTsKLQkJbGFzdF9hbmNlc3Rvcl9yZWxpZCA9IGxsYXN0X29pZChhbmNl c3RvcnMpOworCQlleGNlcHRwdWJvaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1YmxpY2F0aW9u cyhsbGFzdF9vaWQoYW5jZXN0b3JzKSk7CisJfQorCWVsc2UKKwkJZXhjZXB0cHVib2lkcyA9IEdl dFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocmVsaWQpOwogCisJLyoKKwkgKiBTdWJ0cmFj dCBleGNlcHRwdWJvaWRzIGZyb20gdGhlIHNjaGVtYS1wdWJsaWNhdGlvbiBjb250cmlidXRpb24g c28gdGhhdAorCSAqIGEgcmVsYXRpb24gRVhDRVBUJ2QgZnJvbSBhIHNjaGVtYSBwdWJsaWNhdGlv biBkb2VzIG5vdCBpbmhlcml0IHRoYXQKKwkgKiBwdWJsaWNhdGlvbidzIHB1YmFjdGlvbnMuICBX aXRob3V0IHRoaXMgZmlsdGVyLAorCSAqIENoZWNrQ21kUmVwbGljYUlkZW50aXR5KCkgd291bGQg ZGVtYW5kIFJFUExJQ0EgSURFTlRJVFkgZm9yCisJICogVVBEQVRFL0RFTEVURSBldmVuIG9uIGEg ZXhwbGljaXRseSBleGNsdWRlZCB0YWJsZS4KKwkgKi8KKwlwdWJvaWRzID0gbGlzdF9jb25jYXRf dW5pcXVlX29pZChwdWJvaWRzLAorCQkJCQkJCQkJIGxpc3RfZGlmZmVyZW5jZV9vaWQoR2V0U2No ZW1hUHVibGljYXRpb25zKHNjaGVtYWlkKSwKKwkJCQkJCQkJCQkJCQkJIGV4Y2VwdHB1Ym9pZHMp KTsKKworCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKKwl7CisJCS8qIEFk ZCBwdWJsaWNhdGlvbnMgdGhhdCB0aGUgYW5jZXN0b3JzIGFyZSBpbiB0b28uICovCiAJCWZvcmVh Y2gobGMsIGFuY2VzdG9ycykKIAkJewogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxj KTsKQEAgLTU4NjMsMjMgKzU4NzYsOSBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJl bGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQkJCQkJCQkJCSBH ZXRSZWxhdGlvbkluY2x1ZGVkUHVibGljYXRpb25zKGFuY2VzdG9yKSk7CiAJCQlzY2hlbWFpZCA9 IGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKTsKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91 bmlxdWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJCQkJCSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2No ZW1haWQpKTsKKwkJCQkJCQkJCQkJIGxpc3RfZGlmZmVyZW5jZV9vaWQoR2V0U2NoZW1hUHVibGlj YXRpb25zKHNjaGVtYWlkKSwKKwkJCQkJCQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwogCQl9 Ci0KLQkJLyoKLQkJICogT25seSB0aGUgdG9wLW1vc3QgYW5jZXN0b3IgY2FuIGFwcGVhciBpbiB0 aGUgRVhDRVBUIGNsYXVzZS4KLQkJICogVGhlcmVmb3JlLCBmb3IgYSBwYXJ0aXRpb24sIGV4Y2x1 c2lvbiBtdXN0IGJlIGV2YWx1YXRlZCBhdCB0aGUKLQkJICogdG9wLW1vc3QgYW5jZXN0b3IuCi0J CSAqLwotCQlleGNlcHRwdWJvaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1YmxpY2F0aW9ucyhs YXN0X2FuY2VzdG9yX3JlbGlkKTsKLQl9Ci0JZWxzZQotCXsKLQkJLyoKLQkJICogRm9yIGEgcmVn dWxhciB0YWJsZSBvciBhIHJvb3QgcGFydGl0aW9uZWQgdGFibGUsIGNoZWNrIGV4Y2x1c2lvbiBv bgotCQkgKiB0YWJsZSBpdHNlbGYuCi0JCSAqLwotCQlleGNlcHRwdWJvaWRzID0gR2V0UmVsYXRp b25FeGNsdWRlZFB1YmxpY2F0aW9ucyhyZWxpZCk7CiAJfQogCiAJYWxsdGFibGVzcHVib2lkcyA9 IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBmZWY4NmI0Y2NhMy4uNzJl OGY1OGZjM2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC02ODE1LDYgKzY4MTUsMjQgQEAgZGVzY3JpYmVQdWJsaWNh dGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRp b25EZXNjKCZidWYsIF8oIlRhYmxlcyBmcm9tIHNjaGVtYXM6IiksCiAJCQkJCQkJCQkJCQl0cnVl LCAmY29udCkpCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCisJCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTkwMDAwKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogR2V0IHRhYmxlcyBpbiB0aGUg RVhDRVBUIGNsYXVzZSBmb3IgdGhpcyBzY2hlbWEKKwkJCQkJICogcHVibGljYXRpb24uCisJCQkJ CSAqLworCQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiU0VMRUNUIGNv bmNhdChjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJ CQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjXG4iCisJCQkJCQkJCQkgICIgICAg IEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJl bGlkXG4iCisJCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkJ ICAiICBBTkQgcHIucHJleGNlcHRcbiIKKwkJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7 CisJCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRh YmxlczoiKSwKKwkJCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCisJCQkJCQlnb3RvIGVycm9yX3Jl dHVybjsKKwkJCQl9CiAJCQl9CiAJCX0KIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IDQ5ZWE1ODRjZDRmLi4wNjcxNjg2OTlmNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTA2 NSw2ICsxMDY1LDI0IEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfdHJpZ2dl cl9vZl90YWJsZSA9IHsKICJTRUxFQ1QgbnNwbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfbmFtZXNw YWNlICJcCiAiIFdIRVJFIG5zcG5hbWUgTElLRSAnJXMnIgogCisjZGVmaW5lIFF1ZXJ5X2Zvcl9s aXN0X29mX3RhYmxlc19pbl9zY2hlbWEgXAorIlNFTEVDVCBuLm5zcG5hbWUgfHwgJy4nIHx8IGMu cmVsbmFtZSAiXAorIiAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgIlwKKyIgICAgICAgSk9J TiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UgIlwK KyIgV0hFUkUgYy5yZWxraW5kIElOICgiIENwcEFzU3RyaW5nMihSRUxLSU5EX1JFTEFUSU9OKSAi LCAiIFwKKwkJCQkJCUNwcEFzU3RyaW5nMihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKSAi XAorIiAgIEFORCAobi5uc3BuYW1lIHx8ICcuJyB8fCBjLnJlbG5hbWUpIExJS0UgJyVzJyAiXAor IiAgIEFORCBuLm5zcG5hbWUgPSAnJXMnIgorCisjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlc19pbl9jdXJyZW50X3NjaGVtYSBcCisiU0VMRUNUIGMucmVsbmFtZSAiXAorIiAgRlJPTSBw Z19jYXRhbG9nLnBnX2NsYXNzIGMgIlwKKyIgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVz cGFjZSBuIE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UgIlwKKyIgV0hFUkUgYy5yZWxraW5kIElO ICgiIENwcEFzU3RyaW5nMihSRUxLSU5EX1JFTEFUSU9OKSAiLCAiIFwKKwkJCQkJCUNwcEFzU3Ry aW5nMihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKSAiXAorIiAgIEFORCBjLnJlbG5hbWUg TElLRSAnJXMnICJcCisiICAgQU5EIG4ubnNwbmFtZSA9IHBnX2NhdGFsb2cuY3VycmVudF9zY2hl bWEoKSIKKwogLyogVXNlIENPTVBMRVRFX1dJVEhfUVVFUllfVkVSQkFUSU0gd2l0aCB0aGVzZSBx dWVyaWVzIGZvciBHVUMgbmFtZXM6ICovCiAjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX2FsdGVy X3N5c3RlbV9zZXRfdmFycyBcCiAiU0VMRUNUIHBnX2NhdGFsb2cubG93ZXIobmFtZSkgRlJPTSBw Z19jYXRhbG9nLnBnX3NldHRpbmdzICJcCkBAIC0zNzc0LDggKzM3OTIsMjEgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhR dWVyeV9mb3JfbGlzdF9vZl9zY2hlbWFzCiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtF IEUncGdcXFxcXyUlJyIsCiAJCQkJCQkJCSAiQ1VSUkVOVF9TQ0hFTUEiKTsKLQllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMi LCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYmICghZW5kc193aXRoKHByZXZfd2QsICcsJykp KQotCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1B IiwgTWF0Y2hBbnkpICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lU SCgiRVhDRVBUICggVEFCTEUiLCAiV0lUSCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRF IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVN QSIsIE1hdGNoQW55LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIiggVEFCTEUiKTsKKwll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIs ICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIpKQorCQlD T01QTEVURV9XSVRIKCJUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJM SUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCAiQ1VS UkVOVF9TQ0hFTUEiLCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9R VUVSWV9WRVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNfaW5fY3VycmVudF9zY2hlbWEp OworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi Rk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwg IlRBQkxFIikpCisJeworCQlzZXRfY29tcGxldGlvbl9yZWZlcmVuY2UocHJldjRfd2QpOworCQlD T01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9z Y2hlbWEpOworCX0KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENF UFQiLCAiKCIsICJUQUJMRSIsIE1hdGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcp KQorCQlDT01QTEVURV9XSVRIKCIpIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBQVUJMSUNBVElP TiA8bmFtZT4gWy4uLl0gV0lUSCIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueU4sICJXSVRIIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgicHVi bGlzaCIsICJwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zIiwgInB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290Iik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggODliNGJiMTRm NjIuLjUzZTNkN2M2ZjNkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0x OTEsNyArMTkxLDggQEAgZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9u cyhMaXN0ICpyZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9w dCwKIAkJCQkJCQkJCQkJT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWlu dCAqYW5jZXN0b3JfbGV2ZWwpOworCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLAorCQkJ CQkJCQkJCQlMaXN0ICpleGNlcHRfcHViaWRzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFi bGVfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNh dGlvbihPaWQgcHViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAppbmRl eCA0Y2Y0NWMxN2NjNS4uZmIxNzAzYWE2NzUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5oCkBAIC0yNyw2ICsyNyw4IEBAIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCk7CiBleHRlcm4g dm9pZCBSZW1vdmVQdWJsaWNhdGlvbkJ5SWQoT2lkIHB1YmlkKTsKIGV4dGVybiB2b2lkIFJlbW92 ZVB1YmxpY2F0aW9uUmVsQnlJZChPaWQgcHJvaWQpOwogZXh0ZXJuIHZvaWQgUmVtb3ZlUHVibGlj YXRpb25TY2hlbWFCeUlkKE9pZCBwc29pZCk7CitleHRlcm4gdm9pZCBSZW1vdmVTY2hlbWFQdWJF eGNlcHRGb3JSZWwoT2lkIHJlbGlkLCBPaWQgb2xkTnNwT2lkLAorCQkJCQkJCQkJCU9pZCBuZXdO c3BPaWQpOwogCiBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclB1YmxpY2F0aW9uT3duZXIoY29u c3QgY2hhciAqbmFtZSwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgQWx0ZXJQdWJsaWNh dGlvbk93bmVyX29pZChPaWQgcHViaWQsIE9pZCBuZXdPd25lcklkKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCBlMDM1NTYzOTlhYi4uMWYzNjk3Y2NkMjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKQEAgLTQ0ODksNiArNDQ4OSw4IEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uT2JqU3Bl YwogCVB1YmxpY2F0aW9uT2JqU3BlY1R5cGUgcHVib2JqdHlwZTsJLyogdHlwZSBvZiB0aGlzIHB1 YmxpY2F0aW9uIG9iamVjdCAqLwogCWNoYXIJICAgKm5hbWU7CiAJUHVibGljYXRpb25UYWJsZSAq cHVidGFibGU7CisJTGlzdAkgICAqZXhjZXB0X3RhYmxlczsJLyogdGFibGVzIHNwZWNpZmllZCBp biB0aGUgRVhDRVBUIGNsYXVzZSAoZm9yCisJCQkJCQkJCSAqIFRBQkxFUyBJTiBTQ0hFTUEpICov CiAJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93 biAqLwogfSBQdWJsaWNhdGlvbk9ialNwZWM7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w dWJsaWNhdGlvbi5vdXQKaW5kZXggMjllNTRiMjE0YTAuLjFhY2RjZjQ0OTMyIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMjcwLDYgKzI3MCwxMiBAQCBD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUyIEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCAodGVzdAogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi dGVzdHB1Yl90YmwxIgogTElORSAxOiAuLi5fZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMiBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgKHRlc3RwdWJfdGIuLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBmYWlsIC0gRVhDRVBU IGlzIG5vdCBhbGxvd2VkIGZvciBGT1IgVEFCTEUgcHVibGljYXRpb25zCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHRfZXJyCisgICAgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMSwgdGVz dHB1Yl90YmwyIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwzKTsKK0VSUk9SOiAgRVhDRVBUIGlz IG5vdCBhbGxvd2VkIGZvciBUQUJMRSBwdWJsaWNhdGlvbiBvYmplY3RzCitMSU5FIDI6ICAgICBG T1IgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIgRVhDRVBUIChUQUJMRSB0ZXN0cC4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBTRVQgQUxMIFRBQkxFUy9TRVFVRU5D RVMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDcw LDcgKzQ3NiwxNTQgQEAgSElOVDogIENoYW5nZSB0aGUgcHVibGljYXRpb24ncyBFWENFUFQgY2xh dXNlIHVzaW5nIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgQUwKIFJFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcm9vdCwgdGVzdHB1Yl9wYXJ0MSwgdGFiX21h aW47CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OwotLS0tIFRlc3RzIGZvciBwdWJsaWNhdGlv bnMgd2l0aCBTRVFVRU5DRVMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBUQUJMRVMgSU4gU0NIRU1BCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1NFVCBjbGllbnRfbWluX21lc3Nh Z2VzID0gJ0VSUk9SJzsKKy0tIENyZWF0ZSB0YWJsZXMgaW4gcHViX3Rlc3QgZm9yIHRoZXNlIHRl c3RzCitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEgKGEgaW50IHByaW1hcnkg a2V5LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyICh4IGlu dCBwcmltYXJ5IGtleSwgeSB0ZXh0KTsKKy0tIENyZWF0ZSBzYW1lLW5hbWVkIHRhYmxlcyBpbiBw dWJsaWMgdG8gdmVyaWZ5IHVucXVhbGlmaWVkIEVYQ0VQVCBlbnRyaWVzCistLSBhcmUgcXVhbGlm aWVkIHdpdGggdGhlIG5hbWVkIHNjaGVtYSwgbm90IHB1YmxpYworQ1JFQVRFIFRBQkxFIHRlc3Rw dWJfbm9wayAoZm9vIGludCwgYmFyIGludCk7CitDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmxfczEg KGEgaW50IHByaW1hcnkga2V5LCBiIHRleHQpOworLS0gQmFzaWM6IGV4Y2x1ZGUgb25lIHRhYmxl IGZyb20gYSBzY2hlbWEgcHVibGljYXRpb24KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Nj aGVtYV9leGNlcHQxCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNl cHQxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVz Y3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwg CitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0YWJsZXM6Cisg ICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorCistLSBFeGNsdWRlIG11bHRpcGxlIHRhYmxl cyB1c2luZyB1bnF1YWxpZmllZCBuYW1lczsgc2FtZS1uYW1lZCB0YWJsZXMgZXhpc3QgaW4KKy0t IHB1YmxpYyB0byBjb25maXJtIHVucXVhbGlmaWVkIG5hbWVzIHJlc29sdmUgdG8gcHViX3Rlc3Qs IG5vdCBwdWJsaWMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQyCisg ICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX25v cGssIHRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBm cm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rl c3QudGVzdHB1Yl9ub3BrIgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKworLS0gZmFp bDogRVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgc2NoZW1hCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHRfd3JvbmdzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFND SEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHViX3RibDEpOworRVJST1I6 ICB0YWJsZSAicHVibGljLnRlc3RwdWJfdGJsMSIgaW4gRVhDRVBUIGNsYXVzZSBkb2VzIG5vdCBi ZWxvbmcgdG8gc2NoZW1hICJwdWJfdGVzdCIKK0xJTkUgMjogICAgIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwLi4uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWw6IGNy b3NzLXNjaGVtYSBFWENFUFQgbm90IGFsbG93ZWQ7IGVhY2ggRVhDRVBUIGlzIGJvdW5kIHRvIGl0 cyBpbW1lZGlhdGUgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfY3Jv c3NzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCwgcHVibGljIEVYQ0VQ VCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1YmxpYy50ZXN0cHViX3RibDEpOwor RVJST1I6ICB0YWJsZSAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiIGluIEVYQ0VQVCBjbGF1c2Ug ZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHVibGljIgorTElORSAyOiAuLi5SIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QsIHB1YmxpYyBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnQuLi4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCistLSBNdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhDRVBUIGNsYXVz ZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorICAgIEZP UiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1 Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1 Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9zY2hlbWFfZXhjZXB0X211bHRpCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBz Y2hlbWFzOgorICAgICJwdWJfdGVzdCIKKyAgICAicHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAg ICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisK Ky0tIEFMVEVSIFRBQkxFIC4uLiBTRVQgU0NIRU1BIG9uIGEgdGFibGUgZXhjbHVkZWQgYnkgYSBz Y2hlbWEgcHVibGljYXRpb246CistLSB0aGUgc2NoZW1hLXNjb3BlZCBleGNsdXNpb24gaXMgbm8g bG9uZ2VyIG1lYW5pbmdmdWwgb25jZSB0aGUgdGFibGUgbW92ZXMKKy0tIG91dCBvZiBpdHMgc2No ZW1hLCBzbyB0aGUgZXhjbHVzaW9uIGlzIGF1dG8tcmVtb3ZlZC4KK0NSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfc2V0c2NoCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMik7CitcZFJwKyB0 ZXN0cHViX3NjaGVtYV9leGNlcHRfc2V0c2NoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3NjaGVtYV9leGNlcHRf c2V0c2NoCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1 ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0 ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25l ICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJw dWJfdGVzdCIKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIgor CitBTFRFUiBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMiBTRVQgU0NIRU1BIHB1YmxpYzsK K1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9zZXRzY2gKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1h X2V4Y2VwdF9zZXRzY2gKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6 CisgICAgInB1Yl90ZXN0IgorCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dF9zZXRzY2g7CistLSBSZXN0b3JlIGZvciBmdXJ0aGVyIHRlc3RzCitBTFRFUiBUQUJMRSBwdWJs aWMudGVzdHB1Yl90YmxfczIgU0VUIFNDSEVNQSBwdWJfdGVzdDsKKy0tIGZhaWw6IHRhYmxlIGFw cGVhcnMgaW4gYm90aCB0aGUgZXhwbGljaXQgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1 c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9jb25mbGljdAorICAgIEZPUiBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKK0VSUk9SOiAgdGFibGUgInB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIiBjYW5ub3QgYmUgYm90aCBwdWJsaXNoZWQgYW5kIGV4Y2x1 ZGVkCistLSBmYWlsOiBub25leGlzdGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfbm9yZWwKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKK0VS Uk9SOiAgcmVsYXRpb24gInB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlIiBkb2VzIG5vdCBleGlz dAorLS0gZmFpbDogcGFydGl0aW9uIGNhbm5vdCBhcHBlYXIgaW4gRVhDRVBUIGNsYXVzZTsgb25s eSByb290IHRhYmxlcyBhcmUgYWxsb3dlZAorQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf cGFydGVkX3MgKGEgaW50KSBQQVJUSVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl9wYXJ0X3MgUEFSVElUSU9OIE9GIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVk X3MgRk9SIFZBTFVFUyBJTiAoMSk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRf cGFydGl0aW9uCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJM RSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyk7CitFUlJPUjogIGNhbm5vdCBzcGVjaWZ5IHJlbGF0 aW9uICJwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyIgaW4gdGhlIHB1YmxpY2F0aW9uIEVYQ0VQVCBj bGF1c2UKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGl2 aWR1YWwgcGFydGl0aW9ucy4KKy0tIGZhaWw6IHBhcnRpdGlvbiBzdGlsbCByZWplY3RlZCBmcm9t IEVYQ0VQVCBldmVuIHdoZW4gaXRzIG93biByb290IGlzIGFsc28KKy0tIG5hbWVkIGluIHRoZSBz YW1lIEVYQ0VQVCBsaXN0CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfcGFydGl0 aW9uX3dpdGhfcm9vdAorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MsIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFy dGVkX3MpOworRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSByZWxhdGlvbiAicHViX3Rlc3QudGVzdHB1 Yl9wYXJ0X3MiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgY2xhdXNlCitERVRBSUw6ICBUaGlz IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBpbmRpdmlkdWFsIHBhcnRpdGlvbnMuCist LSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUgZmlyc3QgZW50cnkgaW4g dGhlIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9ub2t3 CisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGsp OworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9ub3BrIgorTElORSAy OiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGsp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCist LSBmYWlsOiBBREQgVEFCTEUgZm9yIGEgcGFydGl0aW9uIGlzIHJlamVjdGVkIHdoZW4gYSBwYXJ0 aXRpb24gYW5jZXN0b3IKKy0tIGlzIGN1cnJlbnRseSBpbiB0aGUgcHVibGljYXRpb24ncyBFWENF UFQgbGlzdC4KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9hbmNlc3RvcgorICAg IEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl9wYXJ0ZWRfcyk7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9hbmNlc3Rv ciBBREQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3M7CitFUlJPUjogIGNhbm5vdCBhZGQg cGFydGl0aW9uICJwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyIgdG8gcHVibGljYXRpb24gInRlc3Rw dWJfZXhjZXB0X2FuY2VzdG9yIgorREVUQUlMOiAgQW5jZXN0b3IgInB1Yl90ZXN0LnRlc3RwdWJf cGFydGVkX3MiIG9mIHBhcnRpdGlvbiAicHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MiIGlzIGN1cnJl bnRseSBsaXN0ZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2Ugb2YgdGhlIHB1YmxpY2F0aW9uLgorSElO VDogIENoYW5nZSBFWENFUFQgbGlzdCB1c2luZyBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIFRB QkxFUyBJTiBTQ0hFTUEgLi4uIEVYQ0VQVC4KK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNl cHRfYW5jZXN0b3I7CistLSBmYWlsOiBzYW1lIGNvbnRyYWRpY3Rpb24gKGV4cGxpY2l0IHBhcnRp dGlvbiArIEVYQ0VQVC1lZCBhbmNlc3RvciksIGJ1dAorLS0gZ2l2ZW4gaW4gYSBzaW5nbGUgc3Rh dGVtZW50IGluc3RlYWQgb2YgdHdvIHNlcGFyYXRlIG9uZXM7IHRoZSBhbmNlc3RvcidzCistLSBF WENFUFQgcm93IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIGNhdGFsb2cgeWV0IHdoZW4gdGhlIGV4cGxp Y2l0IHBhcnRpdGlvbiBpcworLS0gdmFsaWRhdGVkLCBzbyB0aGlzIG11c3QgYmUgY2F1Z2h0IGJ5 IGNvbXBhcmluZyB0aGUgaW4tbWVtb3J5IGxpc3RzCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9leGNlcHRfYW5jZXN0b3Jfc2FtZV9jcmVhdGUKKyAgICBGT1IgVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl9wYXJ0X3MsCisgICAgICAgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MpOworRVJST1I6ICBwYXJ0aXRpb24gInB1Yl90 ZXN0LnRlc3RwdWJfcGFydF9zIiBjYW5ub3QgYmUgYm90aCBwdWJsaXNoZWQgYW5kIGV4Y2x1ZGVk CitERVRBSUw6ICBBbmNlc3RvciAicHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyIgaXMgYWxzbyBi ZWluZyBleGNsdWRlZCBieSB0aGlzIHNhbWUgY29tbWFuZC4KKy0tIENsZWFudXAKK1JFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CitEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBw dWJfdGVzdC50ZXN0cHViX3RibF9zMjsKK0RST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0 ZWRfcyBDQVNDQURFOworRFJPUCBUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOwor RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9l eGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGk7CistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0 aCBTRVFVRU5DRVMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7CiBDUkVBVEUgU0VRVUVOQ0UgcHVi X3Rlc3QucmVncmVzc19wdWJfc2VxMTsKIC0tIEZPUiBBTEwgU0VRVUVOQ0VTCkBAIC0xOTUzLDYg KzIxMDYsMjcgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBUQUJM RVMgSU4gU0NIRU1BIGZvbywgYmFyIChhLCBiKTsKIEVSUk9SOiAgY29sdW1uIHNwZWNpZmljYXRp b24gbm90IGFsbG93ZWQgZm9yIHNjaGVtYQogTElORSAxOiAuLi5USU9OIHRlc3RwdWIxX2ZvcnNj aGVtYSBBREQgVEFCTEVTIElOIFNDSEVNQSBmb28sIGJhciAoYSwgYikuLi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBF WENFUFQgY2xhdXNlIHdpdGggQ1VSUkVOVF9TQ0hFTUE6IGNyb3NzLXNjaGVtYSBlbnRyeSBtdXN0 IGJlIHJlamVjdGVkCitTRVQgc2VhcmNoX3BhdGggPSBwdWJfdGVzdDE7CistLSBxdWFsaWZpZWQg bmFtZSBmcm9tIHdyb25nIHNjaGVtYSAtPiBlcnJvcgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfY3Vyc2NoX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBDVVJSRU5UX1NDSEVNQSBFWENF UFQgKFRBQkxFIHB1Yl90ZXN0Mi50YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1Yl90ZXN0Mi50Ymwx IiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEgInB1Yl90ZXN0MSIK Ky0tIHVucXVhbGlmaWVkIG5hbWUgaW1wbGljaXRseSBxdWFsaWZpZWQgd2l0aCBjdXJyZW50IHNj aGVtYSAocHViX3Rlc3QxLnRibCkKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQgRk9SIFRBQkxFUyBJTiBT Q0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0YmwpOworUkVTRVQgY2xpZW50X21p bl9tZXNzYWdlczsKK1xkUnArIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9jdXJzY2hfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFz OgorICAgICJwdWJfdGVzdDEiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdDEudGJsIgor CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdDsKK1JFU0VUIHNlYXJjaF9w YXRoOwogLS0gY2xlYW51cCBwdWJfdGVzdDEgc2NoZW1hIGZvciBpbnZhbGlkYXRpb24gdGVzdHMK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIyX2ZvcnNjaGVtYSBEUk9QIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3Rlc3QxOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViM19mb3JzY2hlbWEsIHRlc3Rw dWI0X2ZvcnNjaGVtYSwgdGVzdHB1YjVfZm9yc2NoZW1hLCB0ZXN0cHViNl9mb3JzY2hlbWEsIHRl c3RwdWJfZm9ydGFibGU7CkBAIC0yMzA0LDYgKzI0NzgsNyBAQCBEUk9QIFJPTEUgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyX2R1bW15OwogLS0gVGVzdCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVz KHRleHRbXSwgb2lkKSBmdW5jdGlvbgogQ1JFQVRFIFNDSEVNQSBncHRfdGVzdF9zY2g7CiBDUkVB VEUgVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2ggKGlkIGludCk7CitDUkVBVEUgVEFCTEUgZ3B0 X3Rlc3Rfc2NoLnRibF9zY2gyIChpZCBpbnQpOwogQ1JFQVRFIFRBQkxFIHRibF9ub3JtYWwgKGlk IGludCk7CiBDUkVBVEUgVEFCTEUgdGJsX3BhcmVudCAoaWQxIGludCwgaWQyIGludCwgaWQzIGlu dCkgUEFSVElUSU9OIEJZIFJBTkdFIChpZDEpOwogQ1JFQVRFIFRBQkxFIHRibF9wYXJ0MSBQQVJU SVRJT04gT0YgdGJsX3BhcmVudCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CkBAIC0yMzE0 LDYgKzI0ODksNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9ub192aWFyb290IEZPUiBB TEwgVEFCTEVTIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9O IHB1Yl9hbGxfZXhjZXB0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwg Z3B0X3Rlc3Rfc2NoLnRibF9zY2gpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0g dHJ1ZSk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgKFRBQkxFIHRibF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxfc2No KSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJM SUNBVElPTiBwdWJfc2NoZW1hIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaDsKK0NS RUFURSBQVUJMSUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBn cHRfdGVzdF9zY2ggRVhDRVBUIChUQUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaCk7CiBDUkVBVEUg UFVCTElDQVRJT04gcHViX25vcm1hbCBGT1IgVEFCTEUgdGJsX25vcm1hbCBXSEVSRSAoaWQgPCAx MCk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX3BhcnRfbGVhZiBGT1IgVEFCTEUgdGJsX3BhcnQx IFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1Yl9wYXJ0X3BhcmVudCBGT1IgVEFCTEUgdGJsX3BhcmVudCAoaWQxLCBpZDIpIFdI RVJFIChpZDEgPSAxMCkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsK QEAgLTI0NjUsNiArMjY0MSwxOCBAQCBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJf YWxsX2V4Y2VwdF9ub192aWFyb290J10sICd0YmxfcGFydDEnKTsgLS0gbm8gcgogLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLQogKDAgcm93cykKIAorLS0gdGVzdCBmb3IgRVhDRVBU IGNsYXVzZSB3aXRoIHNjaGVtYSBwdWJsaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZXN0X2dwdChB UlJBWVsncHViX3NjaGVtYV9leGNlcHQnXSwgJ2dwdF90ZXN0X3NjaC50Ymxfc2NoJyk7IC0tIG5v IHJlc3VsdCAoZXhjbHVkZWQpCisgcHVibmFtZSB8IHJlbG5hbWUgfCBhdHRycyB8IHF1YWwgCist LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfc2NoZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rfc2NoLnRi bF9zY2gyJyk7IC0tIG9uZSByb3cgKGluY2x1ZGVkIHZpYSBzY2hlbWEpCisgICAgICBwdWJuYW1l ICAgICAgfCByZWxuYW1lICB8IGF0dHJzIHwgcXVhbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLQorIHB1Yl9zY2hlbWFfZXhjZXB0IHwgdGJsX3NjaDIgfCAx ICAgICB8IAorKDEgcm93KQorCiAtLSB0d28gcm93cyB3aXRoIGRpZmZlcmVudCByb3cgZmlsdGVy CiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsJywgJ3B1Yl9ub3JtYWwnXSwg J3RibF9ub3JtYWwnKTsKICAgcHVibmFtZSAgIHwgIHJlbG5hbWUgICB8IGF0dHJzIHwgICBxdWFs ICAgIApAQCAtMjUxNyw2ICsyNzA1LDcgQEAgRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX25vX3Zp YXJvb3Q7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0OwogRFJPUCBQVUJMSUNBVElP TiBwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfc2NoZW1h OworRFJPUCBQVUJMSUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdDsKIERST1AgUFVCTElDQVRJT04g cHViX25vcm1hbDsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRfbGVhZjsKIERST1AgUFVCTElD QVRJT04gcHViX3BhcnRfcGFyZW50OwpAQCAtMjUyNSw3ICsyNzE0LDkgQEAgRFJPUCBQVUJMSUNB VElPTiBwdWJfcGFydF9wYXJlbnRfY2hpbGQ7CiBEUk9QIFZJRVcgZ3B0X3Rlc3RfdmlldzsKIERS T1AgVEFCTEUgdGJsX25vcm1hbCwgdGJsX3BhcmVudCwgdGJsX3BhcnQxOwogRFJPUCBTQ0hFTUEg Z3B0X3Rlc3Rfc2NoIENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGdw dF90ZXN0X3NjaC50Ymxfc2NoCitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2Jq ZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBncHRfdGVzdF9zY2gudGJsX3Nj aAorZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBncHRfdGVzdF9zY2gudGJsX3NjaDIKIC0tIHN0YWdl IG9iamVjdHMgZm9yIHBnX2R1bXAgdGVzdHMKIENSRUFURSBTQ0hFTUEgcHVibWUgQ1JFQVRFIFRB QkxFIHQwIChjIGludCwgZCBpbnQpIENSRUFURSBUQUJMRSB0MSAoYyBpbnQpOwogQ1JFQVRFIFND SEVNQSBwdWJtZTIgQ1JFQVRFIFRBQkxFIHQwIChjIGludCwgZCBpbnQpOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsCmluZGV4IDA0MWUxNGE0ZGU2Li5jMGQ3YzJmOWQ4MiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIzLDYgKzEyMyw5IEBAIENSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJM RVMgRVhDRVBUIChUQUJMCiBcZCB0ZXN0cHViX3RibDEKIC0tIGZhaWwgLSBmaXJzdCB0YWJsZSBp biB0aGUgRVhDRVBUIGxpc3Qgc2hvdWxkIHVzZSBUQUJMRSBrZXl3b3JkCiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUyIEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCAodGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIpOworLS0gZmFpbCAtIEVYQ0VQVCBpcyBu b3QgYWxsb3dlZCBmb3IgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucworQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZXhjZXB0X2VycgorICAgIEZPUiBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJf dGJsMiBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsMyk7CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLS0gU0VUIEFMTCBUQUJMRVMvU0VRVUVOQ0VTCkBA IC0yMjAsNyArMjIzLDEwMyBAQCBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogRFJPUCBUQUJM RSB0ZXN0cHViX3Jvb3QsIHRlc3RwdWJfcGFydDEsIHRhYl9tYWluOwogRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViODsKIAotLS0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBU IHRlc3RzIGZvciBUQUJMRVMgSU4gU0NIRU1BCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKKy0t IENyZWF0ZSB0YWJsZXMgaW4gcHViX3Rlc3QgZm9yIHRoZXNlIHRlc3RzCitDUkVBVEUgVEFCTEUg cHViX3Rlc3QudGVzdHB1Yl90YmxfczEgKGEgaW50IHByaW1hcnkga2V5LCBiIHRleHQpOworQ1JF QVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyICh4IGludCBwcmltYXJ5IGtleSwgeSB0 ZXh0KTsKKy0tIENyZWF0ZSBzYW1lLW5hbWVkIHRhYmxlcyBpbiBwdWJsaWMgdG8gdmVyaWZ5IHVu cXVhbGlmaWVkIEVYQ0VQVCBlbnRyaWVzCistLSBhcmUgcXVhbGlmaWVkIHdpdGggdGhlIG5hbWVk IHNjaGVtYSwgbm90IHB1YmxpYworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfbm9wayAoZm9vIGludCwg YmFyIGludCk7CitDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmxfczEgKGEgaW50IHByaW1hcnkga2V5 LCBiIHRleHQpOworCistLSBCYXNpYzogZXhjbHVkZSBvbmUgdGFibGUgZnJvbSBhIHNjaGVtYSBw dWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEKKyAg ICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEKKworLS0gRXhjbHVk ZSBtdWx0aXBsZSB0YWJsZXMgdXNpbmcgdW5xdWFsaWZpZWQgbmFtZXM7IHNhbWUtbmFtZWQgdGFi bGVzIGV4aXN0IGluCistLSBwdWJsaWMgdG8gY29uZmlybSB1bnF1YWxpZmllZCBuYW1lcyByZXNv bHZlIHRvIHB1Yl90ZXN0LCBub3QgcHVibGljCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0MgorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgdGVzdHB1Yl9ub3BrLCB0ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVt YV9leGNlcHQyCisKKy0tIGZhaWw6IEVYQ0VQVCB0YWJsZSBiZWxvbmdzIHRvIGEgZGlmZmVyZW50 IHNjaGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3dyb25nc2NoZW1hCisg ICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVz dHB1Yl90YmwxKTsKKworLS0gZmFpbDogY3Jvc3Mtc2NoZW1hIEVYQ0VQVCBub3QgYWxsb3dlZDsg ZWFjaCBFWENFUFQgaXMgYm91bmQgdG8gaXRzIGltbWVkaWF0ZSBzY2hlbWEKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9jcm9zc3NjaGVtYQorICAgIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0LCBwdWJsaWMgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9z MSwgcHVibGljLnRlc3RwdWJfdGJsMSk7CisKKy0tIE11bHRpcGxlIHNjaGVtYXMgZWFjaCB3aXRo IHRoZWlyIG93biBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hl bWFfZXhjZXB0X211bHRpCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBU IChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSksCisgICAgICAgICAgICAgICAgICBwdWJs aWMgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDEpOworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhj ZXB0X211bHRpCisKKy0tIEFMVEVSIFRBQkxFIC4uLiBTRVQgU0NIRU1BIG9uIGEgdGFibGUgZXhj bHVkZWQgYnkgYSBzY2hlbWEgcHVibGljYXRpb246CistLSB0aGUgc2NoZW1hLXNjb3BlZCBleGNs dXNpb24gaXMgbm8gbG9uZ2VyIG1lYW5pbmdmdWwgb25jZSB0aGUgdGFibGUgbW92ZXMKKy0tIG91 dCBvZiBpdHMgc2NoZW1hLCBzbyB0aGUgZXhjbHVzaW9uIGlzIGF1dG8tcmVtb3ZlZC4KK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfc2V0c2NoCisgICAgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9z Mik7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHRfc2V0c2NoCitBTFRFUiBUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3RibF9zMiBTRVQgU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3RwdWJfc2No ZW1hX2V4Y2VwdF9zZXRzY2gKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0 X3NldHNjaDsKKy0tIFJlc3RvcmUgZm9yIGZ1cnRoZXIgdGVzdHMKK0FMVEVSIFRBQkxFIHB1Ymxp Yy50ZXN0cHViX3RibF9zMiBTRVQgU0NIRU1BIHB1Yl90ZXN0OworCistLSBmYWlsOiB0YWJsZSBh cHBlYXJzIGluIGJvdGggdGhlIGV4cGxpY2l0IHRhYmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xh dXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfY29uZmxpY3QKKyAgICBGT1Ig VEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qg RVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CisKKy0tIGZhaWw6IG5vbmV4 aXN0ZW50IHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2V4Y2VwdF9ub3JlbAorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworCistLSBmYWlsOiBwYXJ0aXRpb24g Y2Fubm90IGFwcGVhciBpbiBFWENFUFQgY2xhdXNlOyBvbmx5IHJvb3QgdGFibGVzIGFyZSBhbGxv d2VkCitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyAoYSBpbnQpIFBBUlRJ VElPTiBCWSBMSVNUIChhKTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyBQ QVJUSVRJT04gT0YgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBGT1IgVkFMVUVTIElOICgxKTsK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9wYXJ0aXRpb24KKyAgICBGT1IgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFy dF9zKTsKKworLS0gZmFpbDogcGFydGl0aW9uIHN0aWxsIHJlamVjdGVkIGZyb20gRVhDRVBUIGV2 ZW4gd2hlbiBpdHMgb3duIHJvb3QgaXMgYWxzbworLS0gbmFtZWQgaW4gdGhlIHNhbWUgRVhDRVBU IGxpc3QKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9wYXJ0aXRpb25fd2l0aF9y b290CisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3BhcnRfcywgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyk7CisK Ky0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJzdCBlbnRyeSBp biB0aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X25v a3cKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9w ayk7CisKKy0tIGZhaWw6IEFERCBUQUJMRSBmb3IgYSBwYXJ0aXRpb24gaXMgcmVqZWN0ZWQgd2hl biBhIHBhcnRpdGlvbiBhbmNlc3RvcgorLS0gaXMgY3VycmVudGx5IGluIHRoZSBwdWJsaWNhdGlv bidzIEVYQ0VQVCBsaXN0LgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2FuY2Vz dG9yCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3BhcnRlZF9zKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 X2FuY2VzdG9yIEFERCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfczsKK0RST1AgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHRfYW5jZXN0b3I7CisKKy0tIGZhaWw6IHNhbWUgY29udHJhZGlj dGlvbiAoZXhwbGljaXQgcGFydGl0aW9uICsgRVhDRVBULWVkIGFuY2VzdG9yKSwgYnV0CistLSBn aXZlbiBpbiBhIHNpbmdsZSBzdGF0ZW1lbnQgaW5zdGVhZCBvZiB0d28gc2VwYXJhdGUgb25lczsg dGhlIGFuY2VzdG9yJ3MKKy0tIEVYQ0VQVCByb3cgZG9lc24ndCBleGlzdCBpbiB0aGUgY2F0YWxv ZyB5ZXQgd2hlbiB0aGUgZXhwbGljaXQgcGFydGl0aW9uIGlzCistLSB2YWxpZGF0ZWQsIHNvIHRo aXMgbXVzdCBiZSBjYXVnaHQgYnkgY29tcGFyaW5nIHRoZSBpbi1tZW1vcnkgbGlzdHMKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9hbmNlc3Rvcl9zYW1lX2NyZWF0ZQorICAgIEZP UiBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfcywKKyAgICAgICBUQUJMRVMgSU4gU0NIRU1B IHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyk7CisKKy0t IENsZWFudXAKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitEUk9QIFRBQkxFIHB1Yl90ZXN0 LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9zMjsKK0RST1AgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOworRFJPUCBUQUJMRSB0ZXN0cHViX25vcGss IHRlc3RwdWJfdGJsX3MxOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQx LCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGk7CisK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gVGVzdHMg Zm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBDUkVBVEUgU0VRVUVOQ0UgcmVncmVzc19wdWJfc2VxMDsK IENSRUFURSBTRVFVRU5DRSBwdWJfdGVzdC5yZWdyZXNzX3B1Yl9zZXExOwogCkBAIC0xMTg5LDYg KzEyODgsMTggQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIFNFVCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0MSwgcHViX3Rlc3QxOwogQUxURVIgUFVCTElDQVRJT04gdGVz dHB1YjFfZm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NIRU1BIGZvbyAoYSwgYik7CiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIFRBQkxFUyBJTiBTQ0hFTUEgZm9vLCBi YXIgKGEsIGIpOwogCistLSBFWENFUFQgY2xhdXNlIHdpdGggQ1VSUkVOVF9TQ0hFTUE6IGNyb3Nz LXNjaGVtYSBlbnRyeSBtdXN0IGJlIHJlamVjdGVkCitTRVQgc2VhcmNoX3BhdGggPSBwdWJfdGVz dDE7CistLSBxdWFsaWZpZWQgbmFtZSBmcm9tIHdyb25nIHNjaGVtYSAtPiBlcnJvcgorQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBD VVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Mi50YmwxKTsKKy0tIHVucXVhbGlm aWVkIG5hbWUgaW1wbGljaXRseSBxdWFsaWZpZWQgd2l0aCBjdXJyZW50IHNjaGVtYSAocHViX3Rl c3QxLnRibCkKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVO VF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0YmwpOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsK K1xkUnArIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdAorRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2N1 cnNjaF9leGNlcHQ7CitSRVNFVCBzZWFyY2hfcGF0aDsKKwogLS0gY2xlYW51cCBwdWJfdGVzdDEg c2NoZW1hIGZvciBpbnZhbGlkYXRpb24gdGVzdHMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIy X2ZvcnNjaGVtYSBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOwogRFJPUCBQVUJMSUNB VElPTiB0ZXN0cHViM19mb3JzY2hlbWEsIHRlc3RwdWI0X2ZvcnNjaGVtYSwgdGVzdHB1YjVfZm9y c2NoZW1hLCB0ZXN0cHViNl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9ydGFibGU7CkBAIC0xNDQzLDYg KzE1NTQsNyBAQCBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15OwogLS0g VGVzdCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKHRleHRbXSwgb2lkKSBmdW5jdGlvbgogQ1JF QVRFIFNDSEVNQSBncHRfdGVzdF9zY2g7CiBDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9z Y2ggKGlkIGludCk7CitDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gyIChpZCBpbnQp OwogQ1JFQVRFIFRBQkxFIHRibF9ub3JtYWwgKGlkIGludCk7CiBDUkVBVEUgVEFCTEUgdGJsX3Bh cmVudCAoaWQxIGludCwgaWQyIGludCwgaWQzIGludCkgUEFSVElUSU9OIEJZIFJBTkdFIChpZDEp OwogQ1JFQVRFIFRBQkxFIHRibF9wYXJ0MSBQQVJUSVRJT04gT0YgdGJsX3BhcmVudCBGT1IgVkFM VUVTIEZST00gKDEpIFRPICgxMCk7CkBAIC0xNDU0LDYgKzE1NjYsNyBAQCBDUkVBVEUgUFVCTElD QVRJT04gcHViX2FsbF9ub192aWFyb290IEZPUiBBTEwgVEFCTEVTIFdJVEggKHB1Ymxpc2hfdmlh X3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0IEZPUiBBTEwgVEFC TEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gpIFdJVEgg KHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSk7CiBDUkVBVEUgUFVCTElDQVRJT04g cHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxFIHRi bF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxfc2NoKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfc2NoZW1hIEZPUiBUQUJM RVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaDsKK0NSRUFURSBQVUJMSUNBVElPTiBwdWJfc2NoZW1h X2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBncHRfdGVzdF9zY2ggRVhDRVBUIChUQUJMRSBn cHRfdGVzdF9zY2gudGJsX3NjaCk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX25vcm1hbCBGT1Ig VEFCTEUgdGJsX25vcm1hbCBXSEVSRSAoaWQgPCAxMCk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHVi X3BhcnRfbGVhZiBGT1IgVEFCTEUgdGJsX3BhcnQxIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X3BhcmVudCBGT1Ig VEFCTEUgdGJsX3BhcmVudCAoaWQxLCBpZDIpIFdIRVJFIChpZDEgPSAxMCkgV0lUSCAocHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKQEAgLTE1MTAsNiArMTYyMywxMCBAQCBTRUxF Q1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290J10sICdn cHRfdGVzdF9zY2gudGJsX3NjaAogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX2Fs bF9leGNlcHRfbm9fdmlhcm9vdCddLCAndGJsX3BhcmVudCcpOyAtLSBubyByZXN1bHQgKGV4Y2x1 ZGVkKQogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX2FsbF9leGNlcHRfbm9fdmlh cm9vdCddLCAndGJsX3BhcnQxJyk7IC0tIG5vIHJlc3VsdAogCistLSB0ZXN0IGZvciBFWENFUFQg Y2xhdXNlIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFS UkFZWydwdWJfc2NoZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rfc2NoLnRibF9zY2gnKTsgLS0gbm8g cmVzdWx0IChleGNsdWRlZCkKK1NFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9zY2hl bWFfZXhjZXB0J10sICdncHRfdGVzdF9zY2gudGJsX3NjaDInKTsgLS0gb25lIHJvdyAoaW5jbHVk ZWQgdmlhIHNjaGVtYSkKKwogLS0gdHdvIHJvd3Mgd2l0aCBkaWZmZXJlbnQgcm93IGZpbHRlcgog U0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX2FsbCcsICdwdWJfbm9ybWFsJ10sICd0 Ymxfbm9ybWFsJyk7CiAKQEAgLTE1MzgsNiArMTY1NSw3IEBAIERST1AgUFVCTElDQVRJT04gcHVi X2FsbF9ub192aWFyb290OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdDsKIERST1Ag UFVCTElDQVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdDsKIERST1AgUFVCTElDQVRJT04g cHViX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gcHViX3NjaGVtYV9leGNlcHQ7CiBEUk9QIFBV QkxJQ0FUSU9OIHB1Yl9ub3JtYWw7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X2xlYWY7CiBE Uk9QIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X3BhcmVudDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdf ZXhjZXB0LnBsCmluZGV4IDhjNThkMjgyZWVlLi4xOGM3YjJjMWZjYSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzdfZXhjZXB0LnBsCkBAIC0yNCwxNCArMjQsMTcgQEAgbXkgJHJlc3VsdDsKIAog c3ViIHRlc3RfZXhjZXB0X3Jvb3RfcGFydGl0aW9uCiB7Ci0JbXkgKCRwdWJ2aWFyb290KSA9IEBf OworCW15ICgkcHVidmlhcm9vdCwgJHB1YnNxbCkgPSBAXzsKKwkkcHVic3FsIC8vPQorCSAgIkNS RUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJM RSByb290MSkiOworCSRwdWJzcWwgLj0gIiBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dCA9ICRwdWJ2aWFyb290KSI7CiAKIAkjIElmIHRoZSByb290IHBhcnRpdGlvbmVkIHRhYmxlIGlz IGluIHRoZSBFWENFUFQgY2xhdXNlLCBhbGwgaXRzCiAJIyBwYXJ0aXRpb25zIGFyZSBleGNsdWRl ZCBmcm9tIHB1YmxpY2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZQogCSMgcHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3Qgc2V0dGluZy4KIAkkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAkJJ3Bv c3RncmVzJywgcXEoCi0JCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBU QUJMRVMgRVhDRVBUIChUQUJMRSByb290MSkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jv b3QgPSAkcHVidmlhcm9vdCk7CisJCSRwdWJzcWw7CiAJCUlOU0VSVCBJTlRPIHJvb3QxIFZBTFVF UyAoMSksICgxMDEpOwogCSkpOwogCSRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLApAQCAtMjIzLDYgKzIyNiwxMzEgQEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAog dGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24oJ2ZhbHNlJyk7CiB0ZXN0X2V4Y2VwdF9yb290X3Bh cnRpdGlvbigndHJ1ZScpOwogCisjIFNhbWUgdmFsaWRhdGlvbiB1c2luZyBUQUJMRVMgSU4gU0NI RU1BIGluc3RlYWQgb2YgRk9SIEFMTCBUQUJMRVMuCitteSAkc2NoZW1hX3B1YiA9CisgICJDUkVB VEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYyBF WENFUFQgKFRBQkxFIHB1YmxpYy5yb290MSkiOwordGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24o J2ZhbHNlJywgJHNjaGVtYV9wdWIpOwordGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24oJ3RydWUn LCAkc2NoZW1hX3B1Yik7CisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKyMgRVhDRVBUIHRlc3QgY2FzZXMgZm9yIFRBQkxFUyBJTiBTQ0hFTUEKKyMgPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBDcmVhdGUgYSBk ZWRpY2F0ZWQgc2NoZW1hIHdpdGggdHdvIHRhYmxlczogb25lIHRvIGJlIHB1Ymxpc2hlZCBhbmQg b25lIHRvIGJlCisjIGV4Y2x1ZGVkLiAgQWxzbyBjcmVhdGUgaW5oZXJpdGVkIHRhYmxlcyB0byB2 ZXJpZnkgT05MWSBzZW1hbnRpY3MuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9z dGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFi X3B1Ymxpc2hlZCBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsNSkgQVMgYTsKKwlDUkVBVEUg VEFCTEUgc2NoMS50YWJfZXhjbHVkZWQgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDUpIEFT IGE7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFyZW50IChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNj aDEuY2hpbGQgKGIgaW50KSBJTkhFUklUUyAoc2NoMS5wYXJlbnQpOworKSk7CisKKyRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNj aDE7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiX3B1Ymxpc2hlZCAoYSBpbnQpOworCUNSRUFURSBU QUJMRSBzY2gxLnRhYl9leGNsdWRlZCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcmVu dCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLmNoaWxkIChiIGludCkgSU5IRVJJVFMgKHNj aDEucGFyZW50KTsKKykpOworCisjIEJhc2ljIHRlc3Q6IGluaXRpYWwgc3luYyByZXNwZWN0cyBF WENFUFQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg UFVCTElDQVRJT04gc2NoX3B1YiBGT1IgVEFCTEVTIElOIFNDSEVNQSBzY2gxIEVYQ0VQVCAoVEFC TEUgc2NoMS50YWJfZXhjbHVkZWQpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHNjaF9zdWIgQ09OTkVDVElPTiAnJHB1 Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBzY2hfcHViIgorKTsKKyRub2RlX3N1YnNjcmli ZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWIn KTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQiKTsKK2lzKCRyZXN1 bHQsIHFxKDUpLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogaW5pdGlhbCBzeW5jIGNvcGll cyBpbmNsdWRlZCB0YWJsZScpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9leGNsdWRl ZCIpOworaXMoJHJlc3VsdCwgcXEoMCksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBpbml0 aWFsIHN5bmMgc2tpcHMgZXhjbHVkZWQgdGFibGUnKTsKKworIyBETUw6IG9ubHkgdGhlIGluY2x1 ZGVkIHRhYmxlIHNob3VsZCBiZSByZXBsaWNhdGVkLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJfcHVibGlzaGVkIFZB TFVFUyAoNik7CisJSU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFMVUVTICg2KTsKKykp OworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1 bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNU IGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIik7CitpcygkcmVzdWx0LCBxcSg2KSwK KwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IERNTCBvbiBpbmNsdWRlZCB0YWJsZSBpcyByZXBs aWNhdGVkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIik7Citpcygk cmVzdWx0LCBxcSgwKSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IERNTCBvbiBleGNsdWRl ZCB0YWJsZSBpcyBub3QgcmVwbGljYXRlZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsK KworIyBJbmhlcml0ZWQgdGFibGVzOiBleGNsdWRpbmcgdGhlIHBhcmVudCAod2l0aG91dCBPTkxZ KSBhbHNvIGV4Y2x1ZGVzIHRoZSBjaGlsZC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHNjaDEgRVhDRVBUIChUQUJMRSBzY2gxLnBhcmVudCkiCispOworJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gc2NoX3N1YiBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHNjaF9wdWIiCispOwor JG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlz aGVyLCAnc2NoX3N1YicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJJTlNFUlQgSU5UTyBzY2gxLmNoaWxkIFZBTFVFUyAoZ2VuZXJhdGVfc2VyaWVzKDEsNSks IGdlbmVyYXRlX3NlcmllcygxLDUpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS5jaGlsZCIpOworaXMo JHJlc3VsdCwgcXEoMCksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBleGNsdWRpbmcgcGFy ZW50ICh3aXRob3V0IE9OTFkpIGFsc28gZXhjbHVkZXMgY2hpbGQnCispOworCiskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWIn KTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FU SU9OIHNjaF9wdWInKTsKKworIyBUZXN0IHRoYXQgRVhDRVBUIChUQUJMRSBPTkxZIHBhcmVudCkg ZXhjbHVkZXMgb25seSB0aGUgcGFyZW50IGl0c2VsZiwgbm90IGl0cworIyBjaGlsZC4gIFRydW5j YXRlIGNoaWxkIGZpcnN0IHNvIHJvd3MgZnJvbSB0aGUgcHJldmlvdXMgdGVzdCBhcmUgbm90IGNv cGllZCBieQorIyB0aGUgaW5pdGlhbCB0YWJsZSBzeW5jIG9mIHRoZSBuZXh0IHN1YnNjcmlwdGlv bi4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdUUlVOQ0FURSBzY2gx LmNoaWxkJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1RSVU5D QVRFIHNjaDEuY2hpbGQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDEg RVhDRVBUIChUQUJMRSBPTkxZIHNjaDEucGFyZW50KSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3ViIENPTk5F Q1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7Ciskbm9k ZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIs ICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IklOU0VSVCBJTlRPIHNjaDEuY2hpbGQgVkFMVUVTIChnZW5lcmF0ZV9zZXJpZXMoMSw1KSwgZ2Vu ZXJhdGVfc2VyaWVzKDEsNSkpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgnc2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLmNoaWxkIik7CitpcygkcmVz dWx0LCBxcSg1KSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IE9OTFkgcGFyZW50IGluIEVY Q0VQVCBkb2VzIG5vdCBleGNsdWRlIGNoaWxkJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOworJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2NoX3B1Yicp OworCisjIENsZWFudXAgc2NoZW1hIHRhYmxlcyBiZWZvcmUgdGhlIG11bHRpLXB1YmxpY2F0aW9u IHNlY3Rpb24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBT Q0hFTUEgc2NoMSBDQVNDQURFJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ0RST1AgU0NIRU1BIHNjaDEgQ0FTQ0FERScpOworCiAjID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIFRlc3Qgd2hlbiBhIHN1YnNjcmlwdGlvbiBp cyBzdWJzY3JpYmluZyB0byBtdWx0aXBsZSBwdWJsaWNhdGlvbnMKICMgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI1NCw2ICszODIsNyBAQCAkbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgKIAlEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIyOwogCVRSVU5D QVRFIHRhYjE7CiApKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAn RFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1YicpOwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFxKFRSVU5DQVRFIHRhYjEpKTsKIAogIyBPSyB3aGVuIGEgdGFibGUgaXMg ZXhjbHVkZWQgYnkgcHViMSBFWENFUFQgY2xhdXNlLCBidXQgaXQgaXMgaW5jbHVkZWQgYnkgcHVi MgotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000cfc83406561b0c24 Content-Type: application/octet-stream; name="v19-0002-Restrict-conflicting-EXCEPT-lists-in-multi-schem.patch" Content-Disposition: attachment; filename="v19-0002-Restrict-conflicting-EXCEPT-lists-in-multi-schem.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrc80jr51 RnJvbSA5NDFjM2E0NGVhZDhjMDA0NmFiMTc3NDU2NDZkNDQ4YjEyOGQzZjRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBXZWQsIDggSnVsIDIwMjYgMTU6MDc6MjIgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx OSAyLzVdIFJlc3RyaWN0IGNvbmZsaWN0aW5nIEVYQ0VQVCBsaXN0cyBpbiBtdWx0aS1zY2hlbWEK IHB1YmxpY2F0aW9ucwoKQWRkIFByb2Nlc3NTY2hlbWFFeGNlcHRUYWJsZXMoKSB0byBxdWFsaWZ5 IGVhY2ggbWVudGlvbidzIEVYQ0VQVAplbnRyaWVzLCBidWlsZCBhIHNvcnRlZCBzaWduYXR1cmUg cGVyIHNjaGVtYSBPSUQsIGFuZCBjb21wYXJlIGl0CmFnYWluc3QgYW55IHByaW9yIG1lbnRpb24g b2YgdGhlIHNhbWUgc2NoZW1hIGluIHRoZSBzYW1lIHN0YXRlbWVudCwKZXJyb3Jpbmcgb24gYSBt aXNtYXRjaC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICB8 IDE3MSArKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAg ICAgICAgICAgICAgICB8ICAzNSArLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJs aWNhdGlvbi5vdXQgfCAgNjEgKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbCAgICAgIHwgIDQ0ICsrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyNDggaW5zZXJ0aW9u cygrKSwgNjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YwppbmRleCAyMjZkZGFmZGE5My4uNDI4OWI2YmQ4MDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCkBAIC02Miw2ICs2MiwxOCBAQCB0eXBlZGVmIHN0cnVjdCByZl9jb250 ZXh0CiAJT2lkCQkJcGFyZW50aWQ7CQkvKiByZWxpZCBvZiB0aGUgcGFyZW50IHJlbGF0aW9uICov CiB9IHJmX2NvbnRleHQ7CiAKKy8qCisgKiBSZWNvcmRzIHRoZSBFWENFUFQtdGFibGUgc2lnbmF0 dXJlIGFscmVhZHkgc2VlbiBmb3IgYSBzY2hlbWEgbWVudGlvbmVkIGluCisgKiBhIFRBQkxFUyBJ TiBTQ0hFTUEgLyBUQUJMRVMgSU4gU0NIRU1BIENVUlJFTlRfU0NIRU1BIGxpc3QsIHNvIHRoYXQg YSBsYXRlcgorICogbWVudGlvbiBvZiB0aGUgc2FtZSBzY2hlbWEgT0lEIGNhbiBiZSBjaGVja2Vk IGZvciBjb25zaXN0ZW5jeS4gIFNlZQorICogUHJvY2Vzc1NjaGVtYUV4Y2VwdFRhYmxlcygpLgor ICovCit0eXBlZGVmIHN0cnVjdCBTY2hlbWFFeGNlcHRTaWcKK3sKKwlPaWQJCQlzY2hlbWFpZDsK KwlMaXN0CSAgICpzaWc7CQkJLyogc29ydGVkIGxpc3Qgb2YgcXVhbGlmaWVkLW5hbWUgc3RyaW5n cyAqLworfSBTY2hlbWFFeGNlcHRTaWc7CisKIHN0YXRpYyBMaXN0ICpPcGVuVGFibGVMaXN0KExp c3QgKnRhYmxlcyk7CiBzdGF0aWMgdm9pZCBDbG9zZVRhYmxlTGlzdChMaXN0ICpyZWxzKTsKIHN0 YXRpYyB2b2lkIExvY2tTY2hlbWFMaXN0KExpc3QgKnNjaGVtYWxpc3QpOwpAQCAtNzMsNiArODUs MTAgQEAgc3RhdGljIHZvaWQgUHVibGljYXRpb25BZGRTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAq c2NoZW1hcywgYm9vbCBpZl9ub3RfZXhpc3RzLAogc3RhdGljIHZvaWQgUHVibGljYXRpb25Ecm9w U2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0 aWMgY2hhciBkZWZHZXRHZW5lcmF0ZWRDb2xzT3B0aW9uKERlZkVsZW0gKmRlZik7CiBzdGF0aWMg dm9pZCBDaGVja0V4Y2VwdE5vdEluVGFibGVMaXN0KExpc3QgKmV4Y2VwdF9yZWxzLCBMaXN0ICpl eHBsaWNpdHJlbGlkcyk7CitzdGF0aWMgdm9pZCBQcm9jZXNzU2NoZW1hRXhjZXB0VGFibGVzKE9p ZCBzY2hlbWFpZCwgY29uc3QgY2hhciAqc2NoZW1hX25hbWUsCisJCQkJCQkJCQkgIExpc3QgKmV4 Y2VwdF90YWJsZXMsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCSAgTGlzdCAqKnNjaGVt YV9leGNlcHRfc2VlbiwKKwkJCQkJCQkJCSAgTGlzdCAqKmV4Y2VwdF9wdWJ0YWJsZXMpOwogCiAK IHN0YXRpYyB2b2lkCkBAIC0xNzcsNiArMTkzLDExOSBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRp b25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAl9CiB9CiAKKy8qCisgKiBsaXN0X3NvcnQoKSBjb21w YXJhdG9yIGZvciBQcm9jZXNzU2NoZW1hRXhjZXB0VGFibGVzKCkncyBzaWduYXR1cmUgbGlzdHMu CisgKi8KK3N0YXRpYyBpbnQKK3B1Yl9leGNlcHRfc2lnX2NtcChjb25zdCBMaXN0Q2VsbCAqYSwg Y29uc3QgTGlzdENlbGwgKmIpCit7CisJcmV0dXJuIHN0cmNtcCgoY29uc3QgY2hhciAqKSBsZmly c3QoYSksIChjb25zdCBjaGFyICopIGxmaXJzdChiKSk7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRy dWUgaWYgdGhlIHR3byAoYWxyZWFkeS1zb3J0ZWQpIEVYQ0VQVC10YWJsZSBzaWduYXR1cmUgbGlz dHMKKyAqIGJ1aWx0IGJ5IFByb2Nlc3NTY2hlbWFFeGNlcHRUYWJsZXMoKSBhcmUgaWRlbnRpY2Fs LgorICovCitzdGF0aWMgYm9vbAorcHViX2V4Y2VwdF9zaWdfZXF1YWwoTGlzdCAqc2lnMSwgTGlz dCAqc2lnMikKK3sKKwlMaXN0Q2VsbCAgICpsYzE7CisJTGlzdENlbGwgICAqbGMyOworCisJaWYg KGxpc3RfbGVuZ3RoKHNpZzEpICE9IGxpc3RfbGVuZ3RoKHNpZzIpKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlmb3Jib3RoKGxjMSwgc2lnMSwgbGMyLCBzaWcyKQorCXsKKwkJaWYgKHN0cmNtcCgoY29u c3QgY2hhciAqKSBsZmlyc3QobGMxKSwgKGNvbnN0IGNoYXIgKikgbGZpcnN0KGxjMikpICE9IDAp CisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBRdWFs aWZ5IHVucXVhbGlmaWVkIEVYQ0VQVCB0YWJsZSBuYW1lcyB3aXRoIHNjaGVtYV9uYW1lLCByZWpl Y3QgZW50cmllcworICogZXhwbGljaXRseSBxdWFsaWZpZWQgd2l0aCBhIGRpZmZlcmVudCBzY2hl bWEsIGFuZCBhcHBlbmQgdGhlIChub3cKKyAqIHF1YWxpZmllZCkgdGFibGVzIHRvICpleGNlcHRf cHVidGFibGVzLgorICoKKyAqIEFsc28gZGV0ZWN0cyB0aGUgY2FzZSB3aGVyZSBzY2hlbWFpZCB3 YXMgYWxyZWFkeSBtZW50aW9uZWQgZWFybGllciBpbiB0aGUKKyAqIHNhbWUgVEFCTEVTIElOIFND SEVNQSBsaXN0IHdpdGggYSBkaWZmZXJlbnQgRVhDRVBUIGxpc3Q6IHNpbmNlIGVhY2gKKyAqIG1l bnRpb24gZmxhdHRlbnMgaXRzIGV4Y2VwdF90YWJsZXMgaW5kZXBlbmRlbnRseSwgd2l0aG91dCB0 aGlzIGNoZWNrIHR3bworICogKG9yIG1vcmUpIG1lbnRpb25zIG9mIHRoZSBzYW1lIHNjaGVtYSB3 aXRoIGRpZmZlcmluZyBFWENFUFQgbGlzdHMgd291bGQKKyAqIHNpbGVudGx5IHVuaW9uIHRvZ2V0 aGVyIGluc3RlYWQgb2YgYmVpbmcgcmVqZWN0ZWQgYXMgY29udHJhZGljdG9yeS4KKyAqICpzY2hl bWFfZXhjZXB0X3NlZW4gYWNjdW11bGF0ZXMgdGhlIHNpZ25hdHVyZSAoc29ydGVkIGxpc3Qgb2Yg cXVhbGlmaWVkCisgKiByZWxhdGlvbiBuYW1lcykgc2VlbiBzbyBmYXIgZm9yIGVhY2ggc2NoZW1h IE9JRCBpbiB0aGlzIHN0YXRlbWVudC4KKyAqLworc3RhdGljIHZvaWQKK1Byb2Nlc3NTY2hlbWFF eGNlcHRUYWJsZXMoT2lkIHNjaGVtYWlkLCBjb25zdCBjaGFyICpzY2hlbWFfbmFtZSwKKwkJCQkJ CSAgTGlzdCAqZXhjZXB0X3RhYmxlcywgUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJICBMaXN0 ICoqc2NoZW1hX2V4Y2VwdF9zZWVuLCBMaXN0ICoqZXhjZXB0X3B1YnRhYmxlcykKK3sKKwlMaXN0 CSAgICpzaWcgPSBOSUw7CisJU2NoZW1hRXhjZXB0U2lnICpzZWVuID0gTlVMTDsKKworCWZvcmVh Y2hfcHRyKFB1YmxpY2F0aW9uT2JqU3BlYywgZW9iaiwgZXhjZXB0X3RhYmxlcykKKwl7CisJCWNv bnN0IGNoYXIgKmVvYmpfc2NoZW1hbmFtZSA9IGVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+c2No ZW1hbmFtZTsKKwkJY29uc3QgY2hhciAqZW9ial9yZWxuYW1lID0gZW9iai0+cHVidGFibGUtPnJl bGF0aW9uLT5yZWxuYW1lOworCisJCWlmIChlb2JqX3NjaGVtYW5hbWUgPT0gTlVMTCkKKwkJCWVv YmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+c2NoZW1hbmFtZSA9IHBzdHJkdXAoc2NoZW1hX25hbWUp OworCQllbHNlIGlmIChzdHJjbXAoZW9ial9zY2hlbWFuYW1lLCBzY2hlbWFfbmFtZSkgIT0gMCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKKwkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgaW4gRVhDRVBUIGNsYXVzZSBk b2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNcIiIsCisJCQkJCQkgICBxdW90ZV9xdWFsaWZp ZWRfaWRlbnRpZmllcihlb2JqX3NjaGVtYW5hbWUsIGVvYmpfcmVsbmFtZSksCisJCQkJCQkgICBz Y2hlbWFfbmFtZSksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVvYmotPmxvY2F0 aW9uKSk7CisKKwkJLyoKKwkJICogSW5jbHVkZSB0aGUgT05MWS1uZXNzIG9mIHRoaXMgZW50cnkg aW4gaXRzIHNpZ25hdHVyZS4gRVhDRVBUCisJCSAqIChUQUJMRSBwYXJlbnQpIGV4Y2x1ZGVzIHBh cmVudCBhbmQgaXRzIGluaGVyaXRhbmNlIGNoaWxkcmVuLAorCQkgKiB3aGlsZSBFWENFUFQgKFRB QkxFIE9OTFkgcGFyZW50KSBleGNsdWRlcyBvbmx5IHBhcmVudCBpdHNlbGYuCisJCSAqIFRoZXNl IGFyZSBkaWZmZXJlbnQgZXhjbHVzaW9uIHNldHMsIHNvIHR3byBtZW50aW9ucyBvZiB0aGlzCisJ CSAqIHNjaGVtYSB0aGF0IGRpZmZlciBvbmx5IGluIE9OTFkgbXVzdCBub3QgY29tcGFyZSBlcXVh bCBiZWxvdyAtLQorCQkgKiBvdGhlcndpc2UgdGhleSdkIGxvb2sgbGlrZSBhIGhhcm1sZXNzIHJl cGVhdCBpbnN0ZWFkIG9mIHRoZQorCQkgKiBnZW51aW5lIGNvbmZsaWN0IHRoZXkgYXJlLgorCQkg Ki8KKwkJc2lnID0gbGFwcGVuZChzaWcsIHBzcHJpbnRmKCIlcyVzIiwKKwkJCQkJCQkJCWVvYmot PnB1YnRhYmxlLT5yZWxhdGlvbi0+aW5oID8gIiIgOiAiT05MWSAiLAorCQkJCQkJCQkJcXVvdGVf cXVhbGlmaWVkX2lkZW50aWZpZXIoTlVMTCwgZW9ial9yZWxuYW1lKSkpOworCX0KKworCWxpc3Rf c29ydChzaWcsIHB1Yl9leGNlcHRfc2lnX2NtcCk7CisKKwlmb3JlYWNoX3B0cihTY2hlbWFFeGNl cHRTaWcsIGVudHJ5LCAqc2NoZW1hX2V4Y2VwdF9zZWVuKQorCXsKKwkJaWYgKGVudHJ5LT5zY2hl bWFpZCA9PSBzY2hlbWFpZCkKKwkJeworCQkJc2VlbiA9IGVudHJ5OworCQkJYnJlYWs7CisJCX0K Kwl9CisKKwlpZiAoc2VlbikKKwl7CisJCWlmICghcHViX2V4Y2VwdF9zaWdfZXF1YWwoc2Vlbi0+ c2lnLCBzaWcpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFM SURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQllcnJtc2coInNjaGVtYSBcIiVzXCIgc3BlY2lm aWVkIHdpdGggY29uZmxpY3RpbmcgRVhDRVBUIGxpc3RzIiwKKwkJCQkJCSAgIHNjaGVtYV9uYW1l KSk7CisJfQorCWVsc2UKKwl7CisJCVNjaGVtYUV4Y2VwdFNpZyAqZW50cnkgPSBwYWxsb2Nfb2Jq ZWN0KFNjaGVtYUV4Y2VwdFNpZyk7CisKKwkJZW50cnktPnNjaGVtYWlkID0gc2NoZW1haWQ7CisJ CWVudHJ5LT5zaWcgPSBzaWc7CisJCSpzY2hlbWFfZXhjZXB0X3NlZW4gPSBsYXBwZW5kKCpzY2hl bWFfZXhjZXB0X3NlZW4sIGVudHJ5KTsKKwl9CisKKwlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbk9i alNwZWMsIGVvYmosIGV4Y2VwdF90YWJsZXMpCisJCSpleGNlcHRfcHVidGFibGVzID0gbGFwcGVu ZCgqZXhjZXB0X3B1YnRhYmxlcywgZW9iai0+cHVidGFibGUpOworfQorCiAvKgogICogQ29udmVy dCB0aGUgUHVibGljYXRpb25PYmpTcGVjVHlwZSBsaXN0IGludG8gc2NoZW1hIG9pZCBsaXN0IGFu ZAogICogUHVibGljYXRpb25UYWJsZSBsaXN0LgpAQCAtMTg3LDYgKzMxNiw3IEBAIE9iamVjdHNJ blB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAqcHN0 YXRlLAogewogCUxpc3RDZWxsICAgKmNlbGw7CiAJUHVibGljYXRpb25PYmpTcGVjICpwdWJvYmo7 CisJTGlzdAkgICAqc2NoZW1hX2V4Y2VwdF9zZWVuID0gTklMOwogCiAJaWYgKCFwdWJvYmpzcGVj X2xpc3QpCiAJCXJldHVybjsKQEAgLTE5NCw2ICszMjQsNyBAQCBPYmplY3RzSW5QdWJsaWNhdGlv blRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlmb3Jl YWNoKGNlbGwsIHB1Ym9ianNwZWNfbGlzdCkKIAl7CiAJCU9pZAkJCXNjaGVtYWlkOworCQljaGFy CSAgICpzY2hlbWFfbmFtZTsKIAkJTGlzdAkgICAqc2VhcmNoX3BhdGg7CiAKIAkJcHVib2JqID0g KFB1YmxpY2F0aW9uT2JqU3BlYyAqKSBsZmlyc3QoY2VsbCk7CkBAIC0yMTAsOSArMzQxLDE0IEBA IE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCWJyZWFrOwogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9UQUJMRVNf SU5fU0NIRU1BOgogCQkJCXNjaGVtYWlkID0gZ2V0X25hbWVzcGFjZV9vaWQocHVib2JqLT5uYW1l LCBmYWxzZSk7CisJCQkJc2NoZW1hX25hbWUgPSBwdWJvYmotPm5hbWU7CiAKIAkJCQkvKiBGaWx0 ZXIgb3V0IGR1cGxpY2F0ZXMgaWYgdXNlciBzcGVjaWZpZXMgInNjaDEsIHNjaDEiICovCiAJCQkJ KnNjaGVtYXMgPSBsaXN0X2FwcGVuZF91bmlxdWVfb2lkKCpzY2hlbWFzLCBzY2hlbWFpZCk7CisK KwkJCQlQcm9jZXNzU2NoZW1hRXhjZXB0VGFibGVzKHNjaGVtYWlkLCBzY2hlbWFfbmFtZSwKKwkJ CQkJCQkJCQkgIHB1Ym9iai0+ZXhjZXB0X3RhYmxlcywgcHN0YXRlLAorCQkJCQkJCQkJCSAgJnNj aGVtYV9leGNlcHRfc2VlbiwgZXhjZXB0X3B1YnRhYmxlcyk7CiAJCQkJYnJlYWs7CiAJCQljYXNl IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOgogCQkJCXNlYXJjaF9wYXRoID0g ZmV0Y2hfc2VhcmNoX3BhdGgoZmFsc2UpOwpAQCAtMjIzLDQxICszNTksMTQgQEAgT2JqZWN0c0lu UHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3Rh dGUsCiAKIAkJCQlzY2hlbWFpZCA9IGxpbml0aWFsX29pZChzZWFyY2hfcGF0aCk7CiAJCQkJbGlz dF9mcmVlKHNlYXJjaF9wYXRoKTsKKwkJCQlzY2hlbWFfbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFt ZShzY2hlbWFpZCk7CiAKIAkJCQkvKiBGaWx0ZXIgb3V0IGR1cGxpY2F0ZXMgaWYgdXNlciBzcGVj aWZpZXMgInNjaDEsIHNjaDEiICovCiAJCQkJKnNjaGVtYXMgPSBsaXN0X2FwcGVuZF91bmlxdWVf b2lkKCpzY2hlbWFzLCBzY2hlbWFpZCk7CiAKLQkJCQkvKgotCQkJCSAqIFF1YWxpZnkgdW5xdWFs aWZpZWQgRVhDRVBUIHRhYmxlIG5hbWVzIHdpdGggdGhlIHJlc29sdmVkCi0JCQkJICogY3VycmVu dCBzY2hlbWEgYW5kIHJlamVjdCBhbnkgZXhwbGljaXRseSBjcm9zcy1zY2hlbWEKLQkJCQkgKiBl bnRyaWVzLiAgVGhpcyBtaXJyb3JzIHRoZSBwYXJzZS10aW1lIGhhbmRsaW5nIGRvbmUgZm9yCi0J CQkJICogVEFCTEVTX0lOX1NDSEVNQSBpbiBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KCksIGRlZmVy cmVkIGhlcmUKLQkJCQkgKiBiZWNhdXNlIENVUlJFTlRfU0NIRU1BIGlzIG5vdCBrbm93biB1bnRp bCBleGVjdXRpb24gdGltZS4KLQkJCQkgKi8KLQkJCQlpZiAocHVib2JqLT5leGNlcHRfdGFibGVz ICE9IE5JTCkKLQkJCQl7Ci0JCQkJCWNoYXIJICAgKmN1cl9zY2hlbWFfbmFtZSA9IGdldF9uYW1l c3BhY2VfbmFtZShzY2hlbWFpZCk7Ci0KLQkJCQkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25PYmpT cGVjLCBlb2JqLCBwdWJvYmotPmV4Y2VwdF90YWJsZXMpCi0JCQkJCXsKLQkJCQkJCWNvbnN0IGNo YXIgKmVvYmpfc2NoZW1hbmFtZSA9Ci0JCQkJCQkJZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5z Y2hlbWFuYW1lOwotCQkJCQkJY29uc3QgY2hhciAqZW9ial9yZWxuYW1lID0KLQkJCQkJCQllb2Jq LT5wdWJ0YWJsZS0+cmVsYXRpb24tPnJlbG5hbWU7Ci0KLQkJCQkJCWlmIChlb2JqX3NjaGVtYW5h bWUgPT0gTlVMTCkKLQkJCQkJCQllb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWUg PSBjdXJfc2NoZW1hX25hbWU7Ci0JCQkJCQllbHNlIGlmIChzdHJjbXAoZW9ial9zY2hlbWFuYW1l LCBjdXJfc2NoZW1hX25hbWUpICE9IDApCi0JCQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKLQkJCQkJCQkJCWVy cm1zZygidGFibGUgXCIlc1wiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNj aGVtYSBcIiVzXCIiLAotCQkJCQkJCQkJCSAgIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKGVv Ympfc2NoZW1hbmFtZSwgZW9ial9yZWxuYW1lKSwKLQkJCQkJCQkJCQkgICBjdXJfc2NoZW1hX25h bWUpKTsKLQotCQkJCQkJKmV4Y2VwdF9wdWJ0YWJsZXMgPSBsYXBwZW5kKCpleGNlcHRfcHVidGFi bGVzLAotCQkJCQkJCQkJCQkJCWVvYmotPnB1YnRhYmxlKTsKLQkJCQkJfQotCQkJCX0KKwkJCQlQ cm9jZXNzU2NoZW1hRXhjZXB0VGFibGVzKHNjaGVtYWlkLCBzY2hlbWFfbmFtZSwKKwkJCQkJCQkJ CQkgIHB1Ym9iai0+ZXhjZXB0X3RhYmxlcywgcHN0YXRlLAorCQkJCQkJCQkJCSAgJnNjaGVtYV9l eGNlcHRfc2VlbiwgZXhjZXB0X3B1YnRhYmxlcyk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0Ogog CQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDZhN2ExYmM1ZjhkLi5k ZjFmYTMzNTZkOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDc4OSw4ICsyMDc4OSw5IEBAIHByZXByb2Nl c3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoTGlzdCAqYWxsX29iamVjdHNfbGlzdCwgTGlzdCAqKnB1 Ym9iamVjdHMsCiAvKgogICogUHJvY2VzcyBwdWJvYmpzcGVjX2xpc3QgdG8gY2hlY2sgZm9yIGVy cm9ycyBpbiBhbnkgb2YgdGhlIG9iamVjdHMgYW5kCiAgKiBjb252ZXJ0IFBVQkxJQ0FUSU9OT0JK X0NPTlRJTlVBVElPTiBpbnRvIGFwcHJvcHJpYXRlIFB1YmxpY2F0aW9uT2JqU3BlY1R5cGUuCi0g KiBBbHNvIGZsYXR0ZW5zIGV4Y2VwdF90YWJsZXMgZnJvbSBUQUJMRVMgSU4gU0NIRU1BIG5vZGVz IGludG8gdGhlIGxpc3Qgc28KLSAqIHRoYXQgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoKSBz ZWVzIHRoZW0gYXMgdG9wLWxldmVsIEVYQ0VQVF9UQUJMRSBlbnRyaWVzLgorICogVGhlIGV4Y2Vw dF90YWJsZXMgYXR0YWNoZWQgdG8gVEFCTEVTIElOIFNDSEVNQSBub2RlcyBhcmUgbGVmdCBpbiBw bGFjZTsKKyAqIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKCkgcXVhbGlmaWVzIG5hbWVzLCB2 YWxpZGF0ZXMgc2NoZW1hIG1lbWJlcnNoaXAsCisgKiBhbmQgZmxhdHRlbnMgdGhlbSBvbmNlIHRo ZSBzY2hlbWEgT0lEIGlzIGtub3duLgogICovCiBzdGF0aWMgdm9pZAogcHJlcHJvY2Vzc19wdWJv YmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQpA QCAtMjA4NzQsMzYgKzIwODc1LDYgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJv YmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCQkJCQkJZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJCQllcnJtc2coImludmFsaWQgc2NoZW1hIG5hbWUiKSwK IAkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9uKSk7Ci0KLQkJCS8qCi0J CQkgKiBGb3IgVEFCTEVTX0lOX1NDSEVNQSwgcXVhbGlmeSB1bnF1YWxpZmllZCBFWENFUFQgdGFi bGUgbmFtZXMKLQkJCSAqIHdpdGggdGhlIHBhcmVudCBzY2hlbWEgYW5kIHJlamVjdCBjcm9zcy1z Y2hlbWEgZW50cmllcyBhdCBwYXJzZQotCQkJICogdGltZSwgdGhlbiBmbGF0dGVuIGludG8gdGhl IHRvcC1sZXZlbCBsaXN0LgotCQkJICoKLQkJCSAqIEZvciBUQUJMRVNfSU5fQ1VSX1NDSEVNQSB0 aGUgc2NoZW1hIG5hbWUgaXMgbm90IHlldCBrbm93biwgc28KLQkJCSAqIHNraXAgYm90aCBzdGVw cyBoZXJlOyBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcygpIHdpbGwKLQkJCSAqIHF1YWxpZnkg bmFtZXMgYW5kIHZhbGlkYXRlIHNjaGVtYSBtZW1iZXJzaGlwIGF0IGV4ZWN1dGlvbiB0aW1lLgot CQkJICovCi0JCQlpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxF U19JTl9TQ0hFTUEpCi0JCQl7Ci0JCQkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25PYmpTcGVjLCBl b2JqLCBwdWJvYmotPmV4Y2VwdF90YWJsZXMpCi0JCQkJewotCQkJCQljb25zdCBjaGFyICplb2Jq X3NjaGVtYW5hbWUgPSBlb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWU7Ci0JCQkJ CWNvbnN0IGNoYXIgKmVvYmpfcmVsbmFtZSA9IGVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+cmVs bmFtZTsKLQotCQkJCQlpZiAoZW9ial9zY2hlbWFuYW1lID09IE5VTEwpCi0JCQkJCQllb2JqLT5w dWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWUgPSBwdWJvYmotPm5hbWU7Ci0JCQkJCWVsc2Ug aWYgKHN0cmNtcChlb2JqX3NjaGVtYW5hbWUsIHB1Ym9iai0+bmFtZSkgIT0gMCkKLQkJCQkJCWVy ZXBvcnQoRVJST1IsCi0JCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJ TklUSU9OKSwKLQkJCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIgaW4gRVhDRVBUIGNsYXVzZSBk b2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNcIiIsCi0JCQkJCQkJCQkgICBxdW90ZV9xdWFs aWZpZWRfaWRlbnRpZmllcihlb2JqX3NjaGVtYW5hbWUsIGVvYmpfcmVsbmFtZSksCi0JCQkJCQkJ CQkgICBwdWJvYmotPm5hbWUpLAotCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oZW9iai0+bG9j YXRpb24pKTsKLQkJCQl9Ci0JCQkJcHVib2Jqc3BlY19saXN0ID0gbGlzdF9jb25jYXQocHVib2Jq c3BlY19saXN0LCBwdWJvYmotPmV4Y2VwdF90YWJsZXMpOwotCQkJCXB1Ym9iai0+ZXhjZXB0X3Rh YmxlcyA9IE5JTDsKLQkJCX0KIAkJfQogCiAJCXByZXZvYmp0eXBlID0gcHVib2JqLT5wdWJvYmp0 eXBlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCAxYWNk Y2Y0NDkzMi4uMWYyNmNkYzI5NjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0CkBAIC01NDMsNiArNTQzLDM0IEBAIEV4Y2VwdCB0YWJsZXM6CiAgICAgInB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxIgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgogCistLSBSZXBl YXRpbmcgdGhlIHNhbWUgc2NoZW1hIHdpdGggYW4gaWRlbnRpY2FsIEVYQ0VQVCBsaXN0IGlzIGFs bG93ZWQsIHNhbWUKKy0tIGFzIHJlcGVhdGluZyBhIHNjaGVtYSB3aXRoIG5vIEVYQ0VQVCBsaXN0 IGF0IGFsbCAoInNjaDEsIHNjaDEiKQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1h X2V4Y2VwdF9zYW1lcmVwZWF0CisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhD RVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSksCisgICAgICAgICAgICAgICAgICBw dWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRl c3RwdWJfc2NoZW1hX2V4Y2VwdF9zYW1lcmVwZWF0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0 X3NhbWVyZXBlYXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90Ymxf czEiCisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NhbWVyZXBlYXQ7 CistLSBmYWlsOiBzYW1lIHNjaGVtYSByZXBlYXRlZCB3aXRoIGNvbmZsaWN0aW5nIEVYQ0VQVCBs aXN0cworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9jb25mbGljdAor ICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgcHViX3Rlc3QgRVhDRVBUIChUQUJM RSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMik7CitFUlJPUjogIHNjaGVtYSAicHViX3Rlc3QiIHNw ZWNpZmllZCB3aXRoIGNvbmZsaWN0aW5nIEVYQ0VQVCBsaXN0cworLS0gZmFpbDogc2FtZSBzY2hl bWEgcmVwZWF0ZWQgd2hlcmUgYSBsYXRlciBtZW50aW9uIGRyb3BzIHRoZSBFWENFUFQgbGlzdAor LS0gZW50aXJlbHkgKGFuIGVtcHR5IEVYQ0VQVCBsaXN0IHN0aWxsIGNvbmZsaWN0cyB3aXRoIGEg bm9uLWVtcHR5IG9uZSkKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHRf Y29uZmxpY3QyCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJM RSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSksCisgICAgICAgICAgICAgICAgICBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKSwKKyAgICAgICAgICAgICAgICAg IHB1Yl90ZXN0OworRVJST1I6ICBzY2hlbWEgInB1Yl90ZXN0IiBzcGVjaWZpZWQgd2l0aCBjb25m bGljdGluZyBFWENFUFQgbGlzdHMKIC0tIEFMVEVSIFRBQkxFIC4uLiBTRVQgU0NIRU1BIG9uIGEg dGFibGUgZXhjbHVkZWQgYnkgYSBzY2hlbWEgcHVibGljYXRpb246CiAtLSB0aGUgc2NoZW1hLXNj b3BlZCBleGNsdXNpb24gaXMgbm8gbG9uZ2VyIG1lYW5pbmdmdWwgb25jZSB0aGUgdGFibGUgbW92 ZXMKIC0tIG91dCBvZiBpdHMgc2NoZW1hLCBzbyB0aGUgZXhjbHVzaW9uIGlzIGF1dG8tcmVtb3Zl ZC4KQEAgLTIxMTEsNiArMjEzOSw4IEBAIFNFVCBzZWFyY2hfcGF0aCA9IHB1Yl90ZXN0MTsKIC0t IHF1YWxpZmllZCBuYW1lIGZyb20gd3Jvbmcgc2NoZW1hIC0+IGVycm9yCiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIENVUlJFTlRf U0NIRU1BIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QyLnRibDEpOwogRVJST1I6ICB0YWJsZSAicHVi X3Rlc3QyLnRibDEiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAi cHViX3Rlc3QxIgorTElORSAxOiAuLi5GT1IgVEFCTEVTIElOIFNDSEVNQSBDVVJSRU5UX1NDSEVN QSBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Mi4uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSB1bnF1YWxpZmllZCBuYW1l IGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggY3VycmVudCBzY2hlbWEgKHB1Yl90ZXN0MS50Ymwp CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9jdXJzY2hfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIENVUlJFTlRfU0NIRU1B IEVYQ0VQVCAoVEFCTEUgdGJsKTsKQEAgLTIxMjYsNiArMjE1NiwzNyBAQCBFeGNlcHQgdGFibGVz OgogICAgICJwdWJfdGVzdDEudGJsIgogCiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2No X2V4Y2VwdDsKKy0tIENVUlJFTlRfU0NIRU1BIGFuZCBhIG5hbWVkIHNjaGVtYSB0aGF0IHJlc29s dmUgdG8gdGhlIHNhbWUgT0lEIG11c3QgYmUKKy0tIHRyZWF0ZWQgYXMgdGhlIHNhbWUgc2NoZW1h IGZvciBFWENFUFQtbGlzdCBjb25zaXN0ZW5jeSBjaGVja2luZywganVzdAorLS0gbGlrZSB0d28g bWVudGlvbnMgb2YgdGhlIHNhbWUgc2NoZW1hIG5hbWUKKy0tIGZhaWw6IENVUlJFTlRfU0NIRU1B IGFuZCBwdWJfdGVzdDEgKHNhbWUgc2NoZW1hKSBoYXZlIGNvbmZsaWN0aW5nIEVYQ0VQVCBsaXN0 cworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX25hbWVkX2NvbmZsaWN0CisgICAg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0YmwpLAor ICAgICAgICAgICAgICAgICAgcHViX3Rlc3QxIEVYQ0VQVCAoVEFCTEUgdGJsMSk7CitFUlJPUjog IHNjaGVtYSAicHViX3Rlc3QxIiBzcGVjaWZpZWQgd2l0aCBjb25mbGljdGluZyBFWENFUFQgbGlz dHMKKy0tIHN1Y2NlZWRzOiBDVVJSRU5UX1NDSEVNQSBhbmQgcHViX3Rlc3QxIChzYW1lIHNjaGVt YSkgc2hhcmUgdGhlIHNhbWUgRVhDRVBUIGxpc3QKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9uYW1lZF9zYW1lCisg ICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0Ymwp LAorICAgICAgICAgICAgICAgICAgcHViX3Rlc3QxIEVYQ0VQVCAoVEFCTEUgdGJsKTsKK1JFU0VU IGNsaWVudF9taW5fbWVzc2FnZXM7CitcZFJwKyB0ZXN0cHViX2N1cnNjaF9uYW1lZF9zYW1lCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9jdXJzY2hfbmFtZWRfc2FtZQorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0 aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFi bGVzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QxIgorRXhjZXB0IHRhYmxlczoKKyAgICAi cHViX3Rlc3QxLnRibCIKKworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9uYW1lZF9z YW1lOworLS0gZmFpbDogdHdvIENVUlJFTlRfU0NIRU1BIG1lbnRpb25zIChib3RoIHJlc29sdmlu ZyB0byBwdWJfdGVzdDEpIHdpdGgKKy0tIGNvbmZsaWN0aW5nIEVYQ0VQVCBsaXN0cworQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2N1cnNjaF9jb25mbGljdAorICAgIEZPUiBUQUJM RVMgSU4gU0NIRU1BIENVUlJFTlRfU0NIRU1BIEVYQ0VQVCAoVEFCTEUgdGJsKSwKKyAgICAgICAg ICAgICAgICAgIENVUlJFTlRfU0NIRU1BIEVYQ0VQVCAoVEFCTEUgdGJsMSk7CitFUlJPUjogIHNj aGVtYSAicHViX3Rlc3QxIiBzcGVjaWZpZWQgd2l0aCBjb25mbGljdGluZyBFWENFUFQgbGlzdHMK IFJFU0VUIHNlYXJjaF9wYXRoOwogLS0gY2xlYW51cCBwdWJfdGVzdDEgc2NoZW1hIGZvciBpbnZh bGlkYXRpb24gdGVzdHMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIyX2ZvcnNjaGVtYSBEUk9Q IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCmluZGV4IGMwZDdjMmY5ZDgyLi45N2VmNWRlY2ZiNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbApAQCAtMjYwLDYgKzI2MCwyNiBAQCBDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpCiAgICAgICAgICAgICAgICAgICBwdWJsaWMgRVhDRVBU IChUQUJMRSB0ZXN0cHViX3RibDEpOwogXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRp CiAKKy0tIFJlcGVhdGluZyB0aGUgc2FtZSBzY2hlbWEgd2l0aCBhbiBpZGVudGljYWwgRVhDRVBU IGxpc3QgaXMgYWxsb3dlZCwgc2FtZQorLS0gYXMgcmVwZWF0aW5nIGEgc2NoZW1hIHdpdGggbm8g RVhDRVBUIGxpc3QgYXQgYWxsICgic2NoMSwgc2NoMSIpCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9zY2hlbWFfZXhjZXB0X3NhbWVyZXBlYXQKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKSwKKyAgICAgICAg ICAgICAgICAgIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEp OworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NhbWVyZXBlYXQKK0RST1AgUFVCTElDQVRJ T04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NhbWVyZXBlYXQ7CisKKy0tIGZhaWw6IHNhbWUgc2No ZW1hIHJlcGVhdGVkIHdpdGggY29uZmxpY3RpbmcgRVhDRVBUIGxpc3RzCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X2NvbmZsaWN0CisgICAgRk9SIFRBQkxFUyBJTiBT Q0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSksCisg ICAgICAgICAgICAgICAgICBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf dGJsX3MyKTsKKworLS0gZmFpbDogc2FtZSBzY2hlbWEgcmVwZWF0ZWQgd2hlcmUgYSBsYXRlciBt ZW50aW9uIGRyb3BzIHRoZSBFWENFUFQgbGlzdAorLS0gZW50aXJlbHkgKGFuIGVtcHR5IEVYQ0VQ VCBsaXN0IHN0aWxsIGNvbmZsaWN0cyB3aXRoIGEgbm9uLWVtcHR5IG9uZSkKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfY29uZmxpY3QyCisgICAgRk9SIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSks CisgICAgICAgICAgICAgICAgICBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3Rw dWJfdGJsX3MyKSwKKyAgICAgICAgICAgICAgICAgIHB1Yl90ZXN0OworCiAtLSBBTFRFUiBUQUJM RSAuLi4gU0VUIFNDSEVNQSBvbiBhIHRhYmxlIGV4Y2x1ZGVkIGJ5IGEgc2NoZW1hIHB1YmxpY2F0 aW9uOgogLS0gdGhlIHNjaGVtYS1zY29wZWQgZXhjbHVzaW9uIGlzIG5vIGxvbmdlciBtZWFuaW5n ZnVsIG9uY2UgdGhlIHRhYmxlIG1vdmVzCiAtLSBvdXQgb2YgaXRzIHNjaGVtYSwgc28gdGhlIGV4 Y2x1c2lvbiBpcyBhdXRvLXJlbW92ZWQuCkBAIC0xMjk4LDYgKzEzMTgsMzAgQEAgQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBDVVJS RU5UX1NDSEVNQSBFWEMKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHVi X2N1cnNjaF9leGNlcHQKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0Owor CistLSBDVVJSRU5UX1NDSEVNQSBhbmQgYSBuYW1lZCBzY2hlbWEgdGhhdCByZXNvbHZlIHRvIHRo ZSBzYW1lIE9JRCBtdXN0IGJlCistLSB0cmVhdGVkIGFzIHRoZSBzYW1lIHNjaGVtYSBmb3IgRVhD RVBULWxpc3QgY29uc2lzdGVuY3kgY2hlY2tpbmcsIGp1c3QKKy0tIGxpa2UgdHdvIG1lbnRpb25z IG9mIHRoZSBzYW1lIHNjaGVtYSBuYW1lCistLSBmYWlsOiBDVVJSRU5UX1NDSEVNQSBhbmQgcHVi X3Rlc3QxIChzYW1lIHNjaGVtYSkgaGF2ZSBjb25mbGljdGluZyBFWENFUFQgbGlzdHMKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9uYW1lZF9jb25mbGljdAorICAgIEZPUiBUQUJM RVMgSU4gU0NIRU1BIENVUlJFTlRfU0NIRU1BIEVYQ0VQVCAoVEFCTEUgdGJsKSwKKyAgICAgICAg ICAgICAgICAgIHB1Yl90ZXN0MSBFWENFUFQgKFRBQkxFIHRibDEpOworCistLSBzdWNjZWVkczog Q1VSUkVOVF9TQ0hFTUEgYW5kIHB1Yl90ZXN0MSAoc2FtZSBzY2hlbWEpIHNoYXJlIHRoZSBzYW1l IEVYQ0VQVCBsaXN0CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfbmFtZWRfc2FtZQorICAgIEZPUiBUQUJMRVMgSU4g U0NIRU1BIENVUlJFTlRfU0NIRU1BIEVYQ0VQVCAoVEFCTEUgdGJsKSwKKyAgICAgICAgICAgICAg ICAgIHB1Yl90ZXN0MSBFWENFUFQgKFRBQkxFIHRibCk7CitSRVNFVCBjbGllbnRfbWluX21lc3Nh Z2VzOworXGRScCsgdGVzdHB1Yl9jdXJzY2hfbmFtZWRfc2FtZQorRFJPUCBQVUJMSUNBVElPTiB0 ZXN0cHViX2N1cnNjaF9uYW1lZF9zYW1lOworCistLSBmYWlsOiB0d28gQ1VSUkVOVF9TQ0hFTUEg bWVudGlvbnMgKGJvdGggcmVzb2x2aW5nIHRvIHB1Yl90ZXN0MSkgd2l0aAorLS0gY29uZmxpY3Rp bmcgRVhDRVBUIGxpc3RzCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfY3Vyc2No X2NvbmZsaWN0CisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBU IChUQUJMRSB0YmwpLAorICAgICAgICAgICAgICAgICAgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChU QUJMRSB0YmwxKTsKKwogUkVTRVQgc2VhcmNoX3BhdGg7CiAKIC0tIGNsZWFudXAgcHViX3Rlc3Qx IHNjaGVtYSBmb3IgaW52YWxpZGF0aW9uIHRlc3RzCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUp Cgo= --000000000000cfc83406561b0c24 Content-Type: application/octet-stream; name="v19-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Disposition: attachment; filename="v19-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrc80lhd2 RnJvbSA4YWI5MWVmZTBkODIyMTJhOWQ2MzdjYmUxNGZkZTE2ZWU3YzQzMWFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBXZWQsIDggSnVsIDIwMjYgMTc6MDk6MDYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx OSAzLzVdIEFkZCBFWENFUFQgc3VwcG9ydCB0byBBTFRFUiBQVUJMSUNBVElPTiBBREQgVEFCTEVT IElOCiBTQ0hFTUEKCkV4dGVuZCB0aGUgRVhDRVBUIGNsYXVzZSBzdXBwb3J0IHRvIGFsbG93IHRh YmxlcyB0byBiZSBleGNsdWRlZCB3aGVuCmFkZGluZyBhIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9u IHZpYSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gQURELgoKU3ludGF4OgogIEFMVEVSIFBVQkxJQ0FU SU9OIHB1YiBBREQgVEFCTEVTIElOIFNDSEVNQSBzIEVYQ0VQVCAoVEFCTEUgcy50MSk7CgpTaW5j ZSBwZ19kdW1wIHVzZXMgQUxURVIgUFVCTElDQVRJT04gLi4uIEFERCwgc3VwcG9ydCBmb3IgaXQg aXMKaW5jbHVkZWQgaW4gdGhpcyBwYXRjaC4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uLmMgICAgICB8IDE5ICsrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNh dGlvbmNtZHMuYyAgICB8IDk4ICsrKysrKysrKysrKysrKysrKysrKystCiBzcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICB8IDMwICsrKysrKy0KIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgIHwgMjQgKysrKysrCiBzcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgICAgICAgICAgICB8IDE3ICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHVibGljYXRpb24ub3V0IHwgNjYgKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICB8IDUwICsrKysrKysrKysrLQogc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCAgICAgfCAzMiArKysrKysrKwogOCBmaWxlcyBj aGFuZ2VkLCAzMjIgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDIxODU3Mjk2ZjQ5Li40YWU0Yjc1NmM5NSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtNzE1LDE1ICs3MTUsMTggQEAgcHVibGlj YXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJ ICogaGVyZSwgYXMgQ3JlYXRlUHVibGljYXRpb24oKSBmdW5jdGlvbiBpbnZhbGlkYXRlcyBhbGwg cmVsYXRpb25zIGFzIHBhcnQKIAkgKiBvZiBkZWZpbmluZyBhIEZPUiBBTEwgVEFCTEVTIHB1Ymxp Y2F0aW9uLgogCSAqCi0JICogRm9yIEFMVEVSIFBVQkxJQ0FUSU9OLCBpbnZhbGlkYXRpb24gaXMg bmVlZGVkIG9ubHkgd2hlbiBhZGRpbmcgYW4KLQkgKiBFWENFUFQgdGFibGUgdG8gYSBwdWJsaWNh dGlvbiBhbHJlYWR5IG1hcmtlZCBhcyBBTEwgVEFCTEVTLiBGb3IKLQkgKiBwdWJsaWNhdGlvbnMg dGhhdCB3ZXJlIG9yaWdpbmFsbHkgZW1wdHkgb3IgZGVmaW5lZCBhcyBBTEwgU0VRVUVOQ0VTIGFu ZAotCSAqIGFyZSBiZWluZyBjb252ZXJ0ZWQgdG8gQUxMIFRBQkxFUywgaW52YWxpZGF0aW9uIGlz IHNraXBwZWQgaGVyZSwgYXMKLQkgKiBBbHRlclB1YmxpY2F0aW9uQWxsRmxhZ3MoKSBmdW5jdGlv biBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIHdoaWxlCi0JICogbWFya2luZyB0aGUgcHVibGlj YXRpb24gYXMgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbi4KKwkgKiBGb3IgQUxURVIgUFVCTElDQVRJ T04sIGludmFsaWRhdGlvbiBpcyBuZWVkZWQgd2hlbiBhZGRpbmcgYW4gRVhDRVBUCisJICogdGFi bGUgdG8gZWl0aGVyIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24gKHB1Yi0+YWxsdGFibGVz IGlzIHRydWUpCisJICogb3IgYSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiAoaXNf c2NoZW1hX3B1YmxpY2F0aW9uIGlzIHRydWUpLgorCSAqIFRoZSBleGNlcHRpb246IHdoZW4gYSBw dWJsaWNhdGlvbiBpcyBiZWluZyBjb252ZXJ0ZWQgdG8gRk9SIEFMTCBUQUJMRVMKKwkgKiAocHVi LT5hbGx0YWJsZXMgaXMgc3RpbGwgZmFsc2UgYXQgdGhpcyBwb2ludCksCisJICogQWx0ZXJQdWJs aWNhdGlvbkFsbEZsYWdzKCkgd2lsbCBwZXJmb3JtIGEgZnVsbCBpbnZhbGlkYXRpb24sIHNvIHdl IHNraXAKKwkgKiBpdCBoZXJlLgogCSAqLwotCWludmFsX2V4Y2VwdF90YWJsZSA9IChhbHRlcl9z dG10ICE9IE5VTEwpICYmIHB1Yi0+YWxsdGFibGVzICYmCi0JCShhbHRlcl9zdG10LT5mb3JfYWxs X3RhYmxlcyAmJiBwcmktPmV4Y2VwdCk7CisJaW52YWxfZXhjZXB0X3RhYmxlID0gKGFsdGVyX3N0 bXQgIT0gTlVMTCkgJiYgcHJpLT5leGNlcHQgJiYKKwkJKHB1Yi0+YWxsdGFibGVzCisJCSA/IGFs dGVyX3N0bXQtPmZvcl9hbGxfdGFibGVzCisJCSA6IGlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJp ZCkpOwogCiAJaWYgKCFwcmktPmV4Y2VwdCB8fCBpbnZhbF9leGNlcHRfdGFibGUpCiAJewpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA0Mjg5YjZiZDgwMi4uMTA5NmZm ODRhY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC04Myw2ICs4 MywxMyBAQCBzdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BUYWJsZXMoT2lkIHB1YmlkLCBMaXN0 ICpyZWxzLCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIHZvaWQgUHVibGljYXRpb25BZGRTY2hl bWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJ CQkgIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIFB1YmxpY2F0aW9u RHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIG1pc3Npbmdfb2spOwor c3RhdGljIHZvaWQgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsCisJCQkJCQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0ICpzY2hlbWFpZGxpc3QsCisJCQkJ CQkJCQlMaXN0ICpleGNlcHRfcHVidGFibGVzKTsKK3N0YXRpYyB2b2lkIEFsdGVyUHVibGljYXRp b25TY2hlbWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCQkJ CQkJCSAgIEhlYXBUdXBsZSB0dXAsCisJCQkJCQkJCQkJCSAgIExpc3QgKmV4Y2VwdF9wdWJ0YWJs ZXMsCisJCQkJCQkJCQkJCSAgIExpc3QgKnNjaGVtYWlkbGlzdCk7CiBzdGF0aWMgY2hhciBkZWZH ZXRHZW5lcmF0ZWRDb2xzT3B0aW9uKERlZkVsZW0gKmRlZik7CiBzdGF0aWMgdm9pZCBDaGVja0V4 Y2VwdE5vdEluVGFibGVMaXN0KExpc3QgKmV4Y2VwdF9yZWxzLCBMaXN0ICpleHBsaWNpdHJlbGlk cyk7CiBzdGF0aWMgdm9pZCBQcm9jZXNzU2NoZW1hRXhjZXB0VGFibGVzKE9pZCBzY2hlbWFpZCwg Y29uc3QgY2hhciAqc2NoZW1hX25hbWUsCkBAIC0xNjQ1LDcgKzE2NTIsOCBAQCBBbHRlclB1Ymxp Y2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAog ICovCiBzdGF0aWMgdm9pZAogQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsCi0JCQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0ICpzY2hlbWFpZGxpc3QpCisJ CQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0ICpzY2hlbWFpZGxpc3QsCisJCQkJCQlMaXN0ICpleGNl cHRfcHVidGFibGVzKQogewogCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3Bn X3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKIApAQCAtMTcyMiw2ICsxNzMwLDg4IEBAIEFs dGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkgKi8K IAkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1YmZvcm0tPm9pZCwgc2NoZW1haWRsaXN0LCB0cnVl LCBzdG10KTsKIAl9CisKKwkvKgorCSAqIEluY3JlbWVudCB0aGUgY29tbWFuZCBjb3VudGVyIHNv IHRoYXQgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgaW4KKwkgKiBHZXRFeGNsdWRlZFB1YmxpY2F0 aW9uVGFibGVzKCkgY2FuIHNlZSB0aGUganVzdC1pbnNlcnRlZCBzY2hlbWEKKwkgKiByb3dzIHdo ZW4gQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyBydW5zIG5leHQuCisJICovCisJ aWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzIHx8IHN0bXQtPmFjdGlvbiA9PSBBUF9T ZXRPYmplY3RzKQorCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJQWx0ZXJQdWJsaWNh dGlvblNjaGVtYUV4Y2VwdFRhYmxlcyhzdG10LCB0dXAsIGV4Y2VwdF9wdWJ0YWJsZXMsIHNjaGVt YWlkbGlzdCk7Cit9CisKKy8qCisgKiBBbHRlciB0aGUgRVhDRVBUIGxpc3Qgb2YgYSBzY2hlbWEt bGV2ZWwgcHVibGljYXRpb24uCisgKgorICogQWRkcywgcmVtb3Zlcywgb3IgcmVwbGFjZXMgZXhj ZXB0LXRhYmxlIGVudHJpZXMgaW4gcGdfcHVibGljYXRpb25fcmVsCisgKiAocm93cyB3aXRoIHBy ZXhjZXB0ID0gdHJ1ZSkuICBUaGVzZSBlbnRyaWVzIHN1cHByZXNzIHB1YmxpY2F0aW9uIG9mIHRo ZQorICogbmFtZWQgdGFibGVzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlIGNvdmVyZWQgYnkgYSBG T1IgVEFCTEVTIElOIFNDSEVNQQorICogY2xhdXNlLgorICovCitzdGF0aWMgdm9pZAorQWx0ZXJQ dWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwK KwkJCQkJCQkgSGVhcFR1cGxlIHR1cCwgTGlzdCAqZXhjZXB0X3B1YnRhYmxlcywKKwkJCQkJCQkg TGlzdCAqc2NoZW1haWRsaXN0KQoreworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChG b3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlPaWQJCQlwdWJpZCA9IHB1YmZv cm0tPm9pZDsKKworCS8qCisJICogTm90aGluZyB0byBkbyBpZiBubyBFWENFUFQgZW50cmllcy4K KwkgKi8KKwlpZiAoIWV4Y2VwdF9wdWJ0YWJsZXMpCisJCXJldHVybjsKKworCS8qCisJICogVGhp cyBmdW5jdGlvbiBoYW5kbGVzIEVYQ0VQVCBlbnRyaWVzIGZvciBzY2hlbWEtbGV2ZWwgcHVibGlj YXRpb25zCisJICogb25seS4gIEZvciBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMsIEVYQ0VQ VCBlbnRyaWVzIGFyZSBhbHJlYWR5CisJICogcHJvY2Vzc2VkIGJ5IEFsdGVyUHVibGljYXRpb25U YWJsZXMoKS4KKwkgKi8KKwlpZiAoc2NoZW1haWRsaXN0ID09IE5JTCAmJiAhaXNfc2NoZW1hX3B1 YmxpY2F0aW9uKHB1YmlkKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBEcm9wcGluZyBhIHNjaGVt YSBmcm9tIGEgcHVibGljYXRpb24gcmVtb3ZlcyBhbGwgaXRzIEVYQ0VQVCBlbnRyaWVzIHZpYQor CSAqIGNhc2NhZGUuIFRoZSBjb25jZXB0IG9mICJkcm9wIGFsbCBzY2hlbWEgdGFibGVzIGZyb20g dGhlIHB1YmxpY2F0aW9uCisJICogRVhDRVBUIHRoZXNlIG9uZXMiIGlzIG5vdCBzdXBwb3J0ZWQu CisJICovCisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9Ecm9wT2JqZWN0cykKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ IGVycm1zZygiRVhDRVBUIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkIHdpdGggRFJPUCBpbiBBTFRF UiBQVUJMSUNBVElPTiIpKSk7CisKKwkvKgorCSAqIFhYWCBFWENFUFQgd2l0aCBTRVQgaXMgbm90 IGN1cnJlbnRseSBpbXBsZW1lbnRlZC4gIFdvcmthcm91bmQ6IERST1AgYW5kCisJICogcmUtQURE IHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENFUFQgbGlzdC4KKwkgKi8KKwlpZiAoc3Rt dC0+YWN0aW9uID09IEFQX1NldE9iamVjdHMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIkVYQ0VQVCBj bGF1c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIFNFVCBpbiBBTFRFUiBQVUJMSUNBVElPTiIpLAor CQkJCSBlcnJoaW50KCJEcm9wIGFuZCByZS1hZGQgdGhlIHNjaGVtYSB3aXRoIHRoZSBkZXNpcmVk IEVYQ0VQVCBsaXN0LiIpKSk7CisKKwlpZiAoc3RtdC0+YWN0aW9uID09IEFQX0FkZE9iamVjdHMp CisJeworCQlMaXN0CSAgICpyZWxzOworCQlMaXN0CSAgICpleHBsaWNpdHJlbGlkczsKKworCQly ZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRfcHVidGFibGVzKTsKKworCQlleHBsaWNpdHJlbGlk cyA9IEdldEluY2x1ZGVkUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCisJCQkJCQkJCQkJCQkJ CSBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJCS8qCisJCSAqIFZhbGlkYXRlIHRoYXQgZWFj aCBleGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBpbiB0aGUgZXhwbGljaXQgdGFibGUKKwkJICog bGlzdCAod2hpY2ggd291bGQgYmUgY29udHJhZGljdG9yeSkuCisJCSAqLworCQlDaGVja0V4Y2Vw dE5vdEluVGFibGVMaXN0KHJlbHMsIGV4cGxpY2l0cmVsaWRzKTsKKworCQlQdWJsaWNhdGlvbkFk ZFRhYmxlcyhwdWJpZCwgcmVscywgZmFsc2UsIHN0bXQpOworCisJCUNsb3NlVGFibGVMaXN0KHJl bHMpOworCX0KIH0KIAogLyoKQEAgLTE5MzEsMTAgKzIwMjEsMTIgQEAgQWx0ZXJQdWJsaWNhdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCQkJCQll cnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJCQkJCQkgICBzdG10 LT5wdWJuYW1lKSk7CiAKLQkJcmVsYXRpb25zID0gbGlzdF9jb25jYXQocmVsYXRpb25zLCBleGNl cHRfcHVidGFibGVzKTsKKwkJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCQkJcmVsYXRpb25z ID0gbGlzdF9jb25jYXQocmVsYXRpb25zLCBleGNlcHRfcHVidGFibGVzKTsKKwogCQlBbHRlclB1 YmxpY2F0aW9uVGFibGVzKHN0bXQsIHR1cCwgcmVsYXRpb25zLCBwc3RhdGUtPnBfc291cmNldGV4 dCwKIAkJCQkJCQkgICBzY2hlbWFpZGxpc3QgIT0gTklMKTsKLQkJQWx0ZXJQdWJsaWNhdGlvblNj aGVtYXMoc3RtdCwgdHVwLCBzY2hlbWFpZGxpc3QpOworCQlBbHRlclB1YmxpY2F0aW9uU2NoZW1h cyhzdG10LCB0dXAsIHNjaGVtYWlkbGlzdCwgZXhjZXB0X3B1YnRhYmxlcyk7CiAJCUFsdGVyUHVi bGljYXRpb25BbGxGbGFncyhzdG10LCByZWwsIHR1cCk7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA0 ZDY2MGQxNGI0Yy4uNDg3N2ZkNDU0NmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDk3Myw2ICs0OTczLDcg QEAgZHVtcFB1YmxpY2F0aW9uTmFtZXNwYWNlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0 aW9uU2NoZW1hSW5mbyAqcHVic2luZm8pCiAJUHVibGljYXRpb25JbmZvICpwdWJpbmZvID0gcHVi c2luZm8tPnB1YmxpY2F0aW9uOwogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCWNoYXIJICAgKnRhZzsK Kwlib29sCQloYXNfZXhjZXB0ID0gZmFsc2U7CiAKIAkvKiBEbyBub3RoaW5nIGlmIG5vdCBkdW1w aW5nIHNjaGVtYSAqLwogCWlmICghZG9wdC0+ZHVtcFNjaGVtYSkKQEAgLTQ5ODMsNyArNDk4NCwz NCBAQCBkdW1wUHVibGljYXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGlj YXRpb25TY2hlbWFJbmZvICpwdWJzaW5mbykKIAlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7 CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkFMVEVSIFBVQkxJQ0FUSU9OICVzICIsIGZt dElkKHB1YmluZm8tPmRvYmoubmFtZSkpOwotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQURE IFRBQkxFUyBJTiBTQ0hFTUEgJXM7XG4iLCBmbXRJZChzY2hlbWFpbmZvLT5kb2JqLm5hbWUpKTsK KwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkFERCBUQUJMRVMgSU4gU0NIRU1BICVzIiwgZm10 SWQoc2NoZW1haW5mby0+ZG9iai5uYW1lKSk7CisKKwkvKgorCSAqIEFwcGVuZCBFWENFUFQgY2xh dXNlIGZvciBhbnkgdGFibGVzIHRoYXQgYmVsb25nIHRvIHRoaXMgc2NoZW1hCisJICogYW5kIGFy ZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlmb3IgKFNpbXBsZVB0ckxp c3RDZWxsICpjZWxsID0gcHViaW5mby0+ZXhjZXB0X3RhYmxlcy5oZWFkOyBjZWxsOyBjZWxsID0g Y2VsbC0+bmV4dCkKKwl7CisJCVRhYmxlSW5mbyAgKnRiaW5mbyA9IChUYWJsZUluZm8gKikgY2Vs bC0+cHRyOworCisJCWlmIChzdHJjbXAodGJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1l LCBzY2hlbWFpbmZvLT5kb2JqLm5hbWUpID09IDApCisJCXsKKwkJCWlmICghaGFzX2V4Y2VwdCkK KwkJCXsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENFUFQgKCIpOworCQkJ CWhhc19leGNlcHQgPSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiLCAiKTsKKworCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJUQUJMRSBP TkxZICVzIiwgZm10SWQodGJpbmZvLT5kb2JqLm5hbWUpKTsKKwkJfQorCX0KKworCWlmIChoYXNf ZXhjZXB0KQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIikiKTsKKworCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiO1xuIik7CiAKIAkvKgogCSAqIFRoZXJlIGlzIG5vIHBvaW50 IGluIGNyZWF0aW5nIGRyb3AgcXVlcnkgYXMgdGhlIGRyb3AgaXMgZG9uZSBieSBzY2hlbWEKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggOTI1ODk0OGI1ODMuLmQxOGIzYjBkN2I5IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzI4Myw2ICszMjgzLDMwIEBAIG15ICV0ZXN0cyA9 ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCiAJ fSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04gcHViMTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxMSBGT1Ig VEFCTEVTIElOIFNDSEVNQSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0X3RhYmxlKTsnLAor CQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViMTEgV0lUSCAocHVi bGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkuKj8KKwkJ CVxRQUxURVIgUFVCTElDQVRJT04gcHViMTEgQUREIFRBQkxFUyBJTiBTQ0hFTUEgZHVtcF90ZXN0 IEVYQ0VQVCAoVEFCTEUgT05MWSB0ZXN0X3RhYmxlKTtcRQorCQkJL3htcywKKwkJbGlrZSA9PiB7 ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKworCSdDUkVBVEUg UFVCTElDQVRJT04gcHViMTInID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVhdGVf c3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxMiBGT1IgVEFCTEVTIElOIFNDSEVN QSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNv bmRfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBw dWIxMiBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7 XEUKKwkJCS4qPworCQkJXFFBTFRFUiBQVUJMSUNBVElPTiBwdWIxMiBBREQgVEFCTEVTIElOIFND SEVNQSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJMRSBPTkxZIHRlc3RfdGFibGUsIFRBQkxFIE9OTFkg dGVzdF9zZWNvbmRfdGFibGUpO1xFCisJCQkveG1zLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04g c3ViMScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFU RSBTVUJTQ1JJUFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDA2NzE2ODY5OWY2 Li4yMzAwOWNhMmY0MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjM1OSw2ICsyMzU5LDIz IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRI X1FVRVJZX1BMVVMoUXVlcnlfZm9yX2xpc3Rfb2Zfc2NoZW1hcwogCQkJCQkJCQkgIiBBTkQgbnNw bmFtZSBOT1QgTElLRSBFJ3BnXFxcXF8lJSciLAogCQkJCQkJCQkgIkNVUlJFTlRfU0NIRU1BIik7 CisJLyogQWZ0ZXIgYSBzaW5nbGUgc2NoZW1hIG5hbWUgaW4gQUREIGNvbnRleHQsIG9mZmVyIEVY Q0VQVCAoIFRBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYm CisJCQkgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQg KCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBU IikpCisJCUNPTVBMRVRFX1dJVEgoIiggVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hF TUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFE RCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgIkNVUlJFTlRfU0NIRU1BIiwgIkVYQ0VQVCIs ICIoIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9y X2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJlbnRfc2NoZW1hKTsKKwllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIsICJJTiIsICJT Q0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJeworCQlzZXRfY29t cGxldGlvbl9yZWZlcmVuY2UocHJldjRfd2QpOworCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJB VElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9zY2hlbWEpOworCX0KKwllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIs ICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIiwgTWF0Y2hB bnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIikiKTsK IAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCBNYXRjaEFueU4sICJTRVQiLCAiKCIp KQogCQlDT01QTEVURV9XSVRIKCJwdWJsaXNoIiwgInB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMi LCAicHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggMWYyNmNkYzI5NjYuLmQ1ODM3MDljZjdjIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtNjQzLDEyICs2NDMsNzYg QEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2FuY2VzdG9yX3NhbWVfY3JlYXRl CiAgICAgICAgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0 LnRlc3RwdWJfcGFydGVkX3MpOwogRVJST1I6ICBwYXJ0aXRpb24gInB1Yl90ZXN0LnRlc3RwdWJf cGFydF9zIiBjYW5ub3QgYmUgYm90aCBwdWJsaXNoZWQgYW5kIGV4Y2x1ZGVkCiBERVRBSUw6ICBB bmNlc3RvciAicHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyIgaXMgYWxzbyBiZWluZyBleGNsdWRl ZCBieSB0aGlzIHNhbWUgY29tbWFuZC4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTgorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CistLSBmYWlsOiBub24tZXhpc3RpbmcgdGFibGUg aW4gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQg QUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5ub25l eGlzdGVudF90YWJsZSk7CitFUlJPUjogIHJlbGF0aW9uICJwdWJfdGVzdC5ub25leGlzdGVudF90 YWJsZSIgZG9lcyBub3QgZXhpc3QKKy0tIGZhaWw6IEVYQ0VQVCB0YWJsZSBiZWxvbmdzIHRvIGEg ZGlmZmVyZW50IHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQg QUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1 Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50ZXN0cHViX3RibDEiIGluIEVYQ0VQVCBj bGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QiCitMSU5FIDE6IC4uLnhj ZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRl cy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRoZSBm aXJzdCBlbnRyeSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Fs dGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJf bm9wayk7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJ0ZXN0cHViX25vcGsiCitM SU5FIDE6IC4uLmx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQ VCAodGVzdHB1Yl9uby4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWw6IGV4YWN0IHNhbWUgdGFibGUgZ2l2ZW4g YXMgYm90aCBleHBsaWNpdGx5IHB1Ymxpc2hlZCBhbmQgZXhjbHVkZWQKKy0tIGluIGEgc2luZ2xl IEFMVEVSIC4uLiBBREQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0Cisg ICAgQUREIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLAorICAgICAgIFRBQkxFUyBJTiBT Q0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CitF UlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIgY2Fubm90IGJlIGJvdGggcHVi bGlzaGVkIGFuZCBleGNsdWRlZAorLS0gZmFpbDogYWRkIGV4cGxpY2l0IHBhcnRpdGlvbiBhbmQg RVhDRVBUIGFuY2VzdG9yLCBnaXZlbiBpbiBhCistLSBzaW5nbGUgQUxURVIgLi4uIEFERCBzdGF0 ZW1lbnQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgQUREIFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydF9zLAorICAgICAgIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zKTsKK0VSUk9SOiAg cGFydGl0aW9uICJwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyIgY2Fubm90IGJlIGJvdGggcHVibGlz aGVkIGFuZCBleGNsdWRlZAorREVUQUlMOiAgQW5jZXN0b3IgInB1Yl90ZXN0LnRlc3RwdWJfcGFy dGVkX3MiIGlzIGFsc28gYmVpbmcgZXhjbHVkZWQgYnkgdGhpcyBzYW1lIGNvbW1hbmQuCistLSBm YWlsOiBwYXJ0aXRpb24gc3RpbGwgcmVqZWN0ZWQgZnJvbSBFWENFUFQgZXZlbiB3aGVuIGl0cyBv d24gcm9vdCBpcyBhbHNvCistLSBuYW1lZCBpbiB0aGUgc2FtZSBFWENFUFQgbGlzdCwgdmlhIEFM VEVSIC4uLiBBREQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAg QUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0 cHViX3BhcnRfcywgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyk7CitFUlJPUjogIGNh bm5vdCBzcGVjaWZ5IHJlbGF0aW9uICJwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyIgaW4gdGhlIHB1 YmxpY2F0aW9uIEVYQ0VQVCBjbGF1c2UKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBz dXBwb3J0ZWQgZm9yIGluZGl2aWR1YWwgcGFydGl0aW9ucy4KKy0tIGZhaWw6IHBhcnRpdGlvbiBh bHJlYWR5IGV4cGxpY2l0bHkgcHVibGlzaGVkLCB0aGVuIGl0cyByb290IGlzIEVYQ0VQVC1lZAor LS0gdmlhIGEgbGF0ZXIsIHNlcGFyYXRlIEFMVEVSIC4uLiBBREQKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfczsK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyk7CitF UlJPUjogIHBhcnRpdGlvbiAicHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MiIGNhbm5vdCBiZSBib3Ro IHB1Ymxpc2hlZCBhbmQgZXhjbHVkZWQKK0RFVEFJTDogIEFuY2VzdG9yICJwdWJfdGVzdC50ZXN0 cHViX3BhcnRlZF9zIiBpcyBhbHNvIGJlaW5nIGV4Y2x1ZGVkIGJ5IHRoaXMgc2FtZSBjb21tYW5k LgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3BhcnRfczsKKy0tIGZhaWw6IHJvb3QgYWxyZWFkeSBleHBsaWNpdGx5IHB1 Ymxpc2hlZCwgdGhlbiBpdHMgcGFydGl0aW9uIGlzIHJlamVjdGVkCistLSBmcm9tIEVYQ0VQVCB2 aWEgYSBsYXRlciwgc2VwYXJhdGUgQUxURVIgLi4uIEFERCAocGFydGl0aW9ucyBjYW4gbmV2ZXIK Ky0tIGFwcGVhciBpbiBFWENFUFQsIGluZGVwZW5kZW50IG9mIHRoZSByb290J3Mgc3RhdGUpCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl9wYXJ0ZWRfczsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl9wYXJ0X3MpOworRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSByZWxhdGlvbiAicHViX3Rlc3Qu dGVzdHB1Yl9wYXJ0X3MiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgY2xhdXNlCitERVRBSUw6 ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBpbmRpdmlkdWFsIHBhcnRpdGlv bnMuCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxFIHB1 Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3M7CistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZp ZWQgbmFtZXM7IHVucXVhbGlmaWVkIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNj aGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwg dGVzdHB1Yl90YmxfczIpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2No ZW1hczoKKyAgICAicHViX3Rlc3QiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0 cHViX3RibF9zMSIKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCisKIC0tIENsZWFudXAK IFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf dGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9zMjsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOwogRFJPUCBUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJf dGJsX3MxOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHVi X3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGk7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRl c3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aSwgdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC0tIFRlc3RzIGZvciBwdWJs aWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDk3ZWY1 ZGVjZmI0Li4zMDU4OWVjZGVkNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApA QCAtMzMwLDEyICszMzAsNjAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2Fu Y2VzdG9yX3NhbWVfY3JlYXRlCiAgICAgRk9SIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydF9z LAogICAgICAgIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVz dC50ZXN0cHViX3BhcnRlZF9zKTsKIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCistLSBFWENFUFQgdGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdDsKKworLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxl IGluIEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9u ZXhpc3RlbnRfdGFibGUpOworCistLSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBhIGRp ZmZlcmVudCBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFE RCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJf dGJsMSk7CisKKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJz dCBlbnRyeSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVy X2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9w ayk7CisKKy0tIGZhaWw6IGV4YWN0IHNhbWUgdGFibGUgZ2l2ZW4gYXMgYm90aCBleHBsaWNpdGx5 IHB1Ymxpc2hlZCBhbmQgZXhjbHVkZWQKKy0tIGluIGEgc2luZ2xlIEFMVEVSIC4uLiBBREQKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgQUREIFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxLAorICAgICAgIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhD RVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CisKKy0tIGZhaWw6IGFkZCBleHBs aWNpdCBwYXJ0aXRpb24gYW5kIEVYQ0VQVCBhbmNlc3RvciwgZ2l2ZW4gaW4gYQorLS0gc2luZ2xl IEFMVEVSIC4uLiBBREQgc3RhdGVtZW50CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVy X2V4Y2VwdAorICAgIEFERCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfcywKKyAgICAgICBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9w YXJ0ZWRfcyk7CisKKy0tIGZhaWw6IHBhcnRpdGlvbiBzdGlsbCByZWplY3RlZCBmcm9tIEVYQ0VQ VCBldmVuIHdoZW4gaXRzIG93biByb290IGlzIGFsc28KKy0tIG5hbWVkIGluIHRoZSBzYW1lIEVY Q0VQVCBsaXN0LCB2aWEgQUxURVIgLi4uIEFERAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQKKyAgICBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydF9zLCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRl ZF9zKTsKKworLS0gZmFpbDogcGFydGl0aW9uIGFscmVhZHkgZXhwbGljaXRseSBwdWJsaXNoZWQs IHRoZW4gaXRzIHJvb3QgaXMgRVhDRVBULWVkCistLSB2aWEgYSBsYXRlciwgc2VwYXJhdGUgQUxU RVIgLi4uIEFERAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydF9zOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBw dWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0 ZXJfZXhjZXB0IERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3M7CisKKy0tIGZhaWw6 IHJvb3QgYWxyZWFkeSBleHBsaWNpdGx5IHB1Ymxpc2hlZCwgdGhlbiBpdHMgcGFydGl0aW9uIGlz IHJlamVjdGVkCistLSBmcm9tIEVYQ0VQVCB2aWEgYSBsYXRlciwgc2VwYXJhdGUgQUxURVIgLi4u IEFERCAocGFydGl0aW9ucyBjYW4gbmV2ZXIKKy0tIGFwcGVhciBpbiBFWENFUFQsIGluZGVwZW5k ZW50IG9mIHRoZSByb290J3Mgc3RhdGUpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVy X2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfczsKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MpOworQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRl ZF9zOworCistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZpZWQgbmFtZXM7IHVucXVhbGlm aWVkIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qg RVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90YmxfczIpOwor XGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21p bl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0 LnRlc3RwdWJfdGJsX3MyOwogRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIENB U0NBREU7CiBEUk9QIFRBQkxFIHRlc3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczE7Ci1EUk9QIFBV QkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIs IHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFfZXhj ZXB0X211bHRpLCB0ZXN0cHViX2FsdGVyX2V4Y2VwdDsKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGgg U0VRVUVOQ0VTCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0 LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAppbmRleCAxOGM3YjJj MWZjYS4uMGJhNmQ2ZjhiYjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz N19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbApA QCAtMzQ3LDYgKzM0NywzOCBAQCBpcygkcmVzdWx0LCBxcSg1KSwKICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1YicpOwogJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2No X3B1YicpOwogCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisjIEFMVEVSIFBVQkxJQ0FUSU9OIEVYQ0VQVCBmb3IgVEFCTEVTIElOIFNDSEVNQQorIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFRydW5jYXRlIHN1 YnNjcmliZXIgdGFibGVzIHRvIHJlbW92ZSBkYXRhIGFjY3VtdWxhdGVkIGZyb20gcHJldmlvdXMg dGVzdHMuCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwknVFJVTkNB VEUgc2NoMS50YWJfcHVibGlzaGVkLCBzY2gxLnRhYl9leGNsdWRlZCwgc2NoMS5wYXJlbnQsIHNj aDEuY2hpbGQnKTsKKworIyBBREQ6IGFkZCBhIHNjaGVtYSB3aXRoIGFuIGV4Y2VwdGVkIHRhYmxl OyB2ZXJpZnkgdGhlIGV4Y2VwdCBlbnRyeSB0YWtlcyBlZmZlY3QuCiskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFBVQkxJQ0FUSU9OIHNjaF9wdWIiKTsKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9O IHNjaF9wdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSBFWENFUFQgKFRBQkxFIHNjaDEudGFi X2V4Y2x1ZGVkKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29u bnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zv cl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRyZXN1 bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNU IGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIik7CitpcygkcmVzdWx0LCBxcSg2KSwK KwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogaW5jbHVkZWQgdGFibGUg c3luY2VkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIik7Citpcygk cmVzdWx0LCBxcSgwKSwKKwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDog ZXhjbHVkZWQgdGFibGUgbm90IHN5bmNlZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsK KwogIyBDbGVhbnVwIHNjaGVtYSB0YWJsZXMgYmVmb3JlIHRoZSBtdWx0aS1wdWJsaWNhdGlvbiBz ZWN0aW9uLgogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU0NI RU1BIHNjaDEgQ0FTQ0FERScpOwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUnKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --000000000000cfc83406561b0c24 Content-Type: application/octet-stream; name="v19-0004-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Disposition: attachment; filename="v19-0004-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrc80nbb3 RnJvbSBkOTI2NjdiNDJhZGZiNWM5N2VhZGZiNjI5MTFmYzQ2MzgxMTI5MDVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUaHUsIDE4IEp1biAyMDI2IDExOjMyOjMyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTkgNC81XSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gU0VUIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgQWx0ZXJQdWJsaWNhdGlvbkV4Y2VwdFRhYmxlcygpIHdpdGgg dGhlIEFQX1NldE9iamVjdHMgY2FzZSwKd2hpY2ggcmVkZWZpbmVzIHRoZSBwdWJsaWNhdGlvbiBh bmQgcmVwbGFjZXMgdGhlIGVudGlyZSBFWENFUFQgbGlzdC4KClN5bnRheDoKQUxURVIgUFVCTElD QVRJT04gcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHMgRVhDRVBUIChUQUJMRSB0MSk7CgpUaGlz IHBhdGNoIGFsc28gY2xlYW5zIHVwIEVYQ0VQVCBlbnRyaWVzIHdoZW4gYSBzY2hlbWEgaXMgZHJv cHBlZApmcm9tIHRoZSBwdWJsaWNhdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYyAgICB8IDE4MSArKysrKysrKysrKysrKysrKysrLS0tCiBzcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICB8ICAxNyArKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgfCAxMDkgKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgfCAgNDcgKysrKysrCiBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsICAgICB8ICA4NSArKysrKysrKysrCiA1IGZpbGVz IGNoYW5nZWQsIDQxNCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDEwOTZmZjg0YWNlLi5jM2MxNTFmMTg1NCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTc5LDcgKzc5LDggQEAg c3RhdGljIHZvaWQgQ2xvc2VUYWJsZUxpc3QoTGlzdCAqcmVscyk7CiBzdGF0aWMgdm9pZCBMb2Nr U2NoZW1hTGlzdChMaXN0ICpzY2hlbWFsaXN0KTsKIHN0YXRpYyB2b2lkIFB1YmxpY2F0aW9uQWRk VGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJ CQkgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpOwotc3RhdGljIHZvaWQgUHVibGljYXRpb25E cm9wVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNzaW5nX29rKTsKK3N0YXRp YyB2b2lkIFB1YmxpY2F0aW9uRHJvcFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wg bWlzc2luZ19vaywKKwkJCQkJCQkJICBib29sIGRlbGV0ZV9leGNsdWRlZCk7CiBzdGF0aWMgdm9p ZCBQdWJsaWNhdGlvbkFkZFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIGlm X25vdF9leGlzdHMsCiAJCQkJCQkJCSAgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgUHVibGljYXRpb25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMs IGJvb2wgbWlzc2luZ19vayk7CkBAIC0xNDk2LDcgKzE0OTcsNyBAQCBBbHRlclB1YmxpY2F0aW9u VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQlQdWJs aWNhdGlvbkFkZFRhYmxlcyhwdWJpZCwgcmVscywgZmFsc2UsIHN0bXQpOwogCX0KIAllbHNlIGlm IChzdG10LT5hY3Rpb24gPT0gQVBfRHJvcE9iamVjdHMpCi0JCVB1YmxpY2F0aW9uRHJvcFRhYmxl cyhwdWJpZCwgcmVscywgZmFsc2UpOworCQlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIHJl bHMsIGZhbHNlLCBmYWxzZSk7CiAJZWxzZQkJCQkJCS8qIEFQX1NldE9iamVjdHMgKi8KIAl7CiAJ CUxpc3QJICAgKm9sZHJlbGlkcyA9IE5JTDsKQEAgLTE2MzEsNyArMTYzMiw3IEBAIEFsdGVyUHVi bGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAs CiAJCX0KIAogCQkvKiBBbmQgZHJvcCB0aGVtLiAqLwotCQlQdWJsaWNhdGlvbkRyb3BUYWJsZXMo cHViaWQsIGRlbHJlbHMsIHRydWUpOworCQlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIGRl bHJlbHMsIHRydWUsIHRydWUpOwogCiAJCS8qCiAJCSAqIERvbid0IGJvdGhlciBjYWxjdWxhdGlu ZyB0aGUgZGlmZmVyZW5jZSBmb3IgYWRkaW5nLCB3ZSdsbCBjYXRjaCBhbmQKQEAgLTE3MzMsOCAr MTczNCw4IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpz dG10LAogCiAJLyoKIAkgKiBJbmNyZW1lbnQgdGhlIGNvbW1hbmQgY291bnRlciBzbyB0aGF0IGlz X3NjaGVtYV9wdWJsaWNhdGlvbigpIGluCi0JICogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxl cygpIGNhbiBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgc2NoZW1hCi0JICogcm93cyB3aGVuIEFsdGVy UHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0LgorCSAqIEdldEV4Y2x1ZGVk UHVibGljYXRpb25UYWJsZXMoKSBjYW4gc2VlIHRoZSBqdXN0LWluc2VydGVkIHNjaGVtYSByb3dz CisJICogd2hlbiBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVzIHJ1bnMgbmV4dC4K IAkgKi8KIAlpZiAoc3RtdC0+YWN0aW9uID09IEFQX0FkZE9iamVjdHMgfHwgc3RtdC0+YWN0aW9u ID09IEFQX1NldE9iamVjdHMpCiAJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CkBAIC0xNzUy LDE2ICsxNzUzLDE4IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LAogICovCiBzdGF0aWMgdm9pZAogQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2Vw dFRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKLQkJCQkJCQkgSGVhcFR1cGxlIHR1 cCwgTGlzdCAqZXhjZXB0X3B1YnRhYmxlcywKLQkJCQkJCQkgTGlzdCAqc2NoZW1haWRsaXN0KQor CQkJCQkJCQkgICBIZWFwVHVwbGUgdHVwLCBMaXN0ICpleGNlcHRfcHVidGFibGVzLAorCQkJCQkJ CQkgICBMaXN0ICpzY2hlbWFpZGxpc3QpCiB7CiAJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3Jt ID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOwogCU9pZAkJCXB1YmlkID0g cHViZm9ybS0+b2lkOwogCiAJLyoKLQkgKiBOb3RoaW5nIHRvIGRvIGlmIG5vIEVYQ0VQVCBlbnRy aWVzLgorCSAqIE5vdGhpbmcgdG8gZG8gaWYgdGhlcmUgYXJlIG5vIEVYQ0VQVCBlbnRyaWVzLCB1 bmxlc3MgaGFuZGxpbmcgdGhlIFNFVAorCSAqIGNvbW1hbmQsIGJlY2F1c2UgaWYgdGhlIHVzZXIg aGFzIHJlbW92ZWQgYWxsIGV4Y2VwdGlvbnMgd2UgbmVlZCB0byBkcm9wCisJICogYW55IGV4aXN0 aW5nIG9uZXMuCiAJICovCi0JaWYgKCFleGNlcHRfcHVidGFibGVzKQorCWlmICghZXhjZXB0X3B1 YnRhYmxlcyAmJiBzdG10LT5hY3Rpb24gIT0gQVBfU2V0T2JqZWN0cykKIAkJcmV0dXJuOwogCiAJ LyoKQEAgLTE3ODIsMTYgKzE3ODUsNiBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFi bGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBz dXBwb3J0ZWQgd2l0aCBEUk9QIGluIEFMVEVSIFBVQkxJQ0FUSU9OIikpKTsKIAotCS8qCi0JICog WFhYIEVYQ0VQVCB3aXRoIFNFVCBpcyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkLiAgV29ya2Fy b3VuZDogRFJPUCBhbmQKLQkgKiByZS1BREQgdGhlIHNjaGVtYSB3aXRoIHRoZSBkZXNpcmVkIEVY Q0VQVCBsaXN0LgotCSAqLwotCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfU2V0T2JqZWN0cykKLQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCi0JCQkJIGVycm1zZygiRVhDRVBUIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkIHdpdGggU0VU IGluIEFMVEVSIFBVQkxJQ0FUSU9OIiksCi0JCQkJIGVycmhpbnQoIkRyb3AgYW5kIHJlLWFkZCB0 aGUgc2NoZW1hIHdpdGggdGhlIGRlc2lyZWQgRVhDRVBUIGxpc3QuIikpKTsKLQogCWlmIChzdG10 LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cykKIAl7CiAJCUxpc3QJICAgKnJlbHM7CkBAIC0xODEw LDYgKzE4MDMsNzYgQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyhBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAogCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJpZCwgcmVs cywgZmFsc2UsIHN0bXQpOwogCisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCX0KKwllbHNlCQkJ CQkJLyogQVBfU2V0T2JqZWN0cyAqLworCXsKKwkJTGlzdAkgICAqb2xkZXhjZXB0cmVsaWRzID0g TklMOworCQlMaXN0CSAgICpuZXdleGNlcHRyZWxpZHMgPSBOSUw7CisJCUxpc3QJICAgKmRlbHJl bGlkcyA9IE5JTDsKKwkJTGlzdAkgICAqcmVsczsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHM7 CisKKwkJcmVscyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJLyogQ29s bGVjdCBPSURzIG9mIHRoZSBkZXNpcmVkIG5ldyBFWENFUFQgbGlzdC4gKi8KKwkJZm9yZWFjaF9w dHIoUHVibGljYXRpb25SZWxJbmZvLCBwcmksIHJlbHMpCisJCQluZXdleGNlcHRyZWxpZHMgPSBs YXBwZW5kX29pZChuZXdleGNlcHRyZWxpZHMsCisJCQkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGlk KHByaS0+cmVsYXRpb24pKTsKKworCQlleHBsaWNpdHJlbGlkcyA9IEdldEluY2x1ZGVkUHVibGlj YXRpb25SZWxhdGlvbnMocHViaWQsCisJCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JP T1QpOworCisJCS8qCisJCSAqIFZhbGlkYXRlIHRoYXQgbm8gZXhjbHVkZWQgdGFibGUgaXMgYWxz byBhbHJlYWR5IGV4cGxpY2l0bHkKKwkJICogcHVibGlzaGVkIChleGFjdCBtYXRjaCksIGFuZCB0 aGF0IG5vIGFscmVhZHktcHVibGlzaGVkIHBhcnRpdGlvbgorCQkgKiBoYXMgaXRzIHJvb3QgYW1v bmcgdGhlIHRhYmxlcyBiZWluZyBuZXdseSBleGNsdWRlZCBoZXJlLgorCQkgKi8KKwkJQ2hlY2tF eGNlcHROb3RJblRhYmxlTGlzdChyZWxzLCBleHBsaWNpdHJlbGlkcyk7CisKKwkJLyoKKwkJICog R2V0IHRoZSBjdXJyZW50IHNldCBvZiBFWENFUFQgZW50cmllcy4gIE9ubHkgRk9SIEFMTCBUQUJM RVMgYW5kCisJCSAqIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlvbnMgY2FuIGhhdmUgRVhDRVBUIGVu dHJpZXM7IGZvciBhbnkgb3RoZXIKKwkJICogcHVibGljYXRpb24gdHlwZSBvbGRleGNlcHRyZWxp ZHMgc3RheXMgTklMLgorCQkgKgorCQkgKiBOb3RlOiB3ZSBjaGVjayBpc19zY2hlbWFfcHVibGlj YXRpb24oKSBhZ2FpbnN0IHRoZSBjdXJyZW50IGNhdGFsb2cKKwkJICogc3RhdGUgKGJlZm9yZSBB bHRlclB1YmxpY2F0aW9uU2NoZW1hcyBoYXMgcnVuKSwgc28gaWYgdGhlIGNhbGxlciBpcworCQkg KiBkb2luZyBTRVQgVEFCTEUgdDEgdG8gY29udmVydCBhIHNjaGVtYSBwdWJsaWNhdGlvbiBpbnRv IGEgcGxhaW4KKwkJICogdGFibGUgcHVibGljYXRpb24sIGlzX3NjaGVtYV9wdWJsaWNhdGlvbigp IHN0aWxsIHJldHVybnMgdHJ1ZSBoZXJlLgorCQkgKiBUaGF0IGlzIGludGVudGlvbmFsOiBpdCBs ZXRzIHVzIGRpc2NvdmVyIGFuZCBjbGVhbiB1cCBhbnkgc3RhbGUKKwkJICogRVhDRVBUIGVudHJp ZXMgdGhhdCBiZWxvbmcgdG8gdGhlIG9sZCBzY2hlbWEgZGVmaW5pdGlvbi4KKwkJICovCisJCWlm IChHZXRQdWJsaWNhdGlvbihwdWJpZCktPmFsbHRhYmxlcyB8fCBpc19zY2hlbWFfcHVibGljYXRp b24ocHViaWQpKQorCQkJb2xkZXhjZXB0cmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRh YmxlcyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJICAgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwor CQkvKiBCdWlsZCBhIGxpc3Qgb2Ygb2xkIEVYQ0VQVCBlbnRyaWVzIG5vdCBwcmVzZW50IGluIHRo ZSBuZXcgbGlzdC4gKi8KKwkJZm9yZWFjaF9vaWQob2xkcmVsaWQsIG9sZGV4Y2VwdHJlbGlkcykK KwkJeworCQkJaWYgKCFsaXN0X21lbWJlcl9vaWQobmV3ZXhjZXB0cmVsaWRzLCBvbGRyZWxpZCkp CisJCQkJZGVscmVsaWRzID0gbGFwcGVuZF9vaWQoZGVscmVsaWRzLCBvbGRyZWxpZCk7CisJCX0K KworCQkvKiBEcm9wIG9sZCBFWENFUFQgZW50cmllcyBub3QgcHJlc2VudCBpbiB0aGUgbmV3IGxp c3QuICovCisJCWZvcmVhY2hfb2lkKHJlbGlkLCBkZWxyZWxpZHMpCisJCXsKKwkJCU9pZAkJCXBy b2lkOworCQkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJCXByb2lkID0gR2V0U3lzQ2FjaGVPaWQy KFBVQkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lk LAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkJCQlPYmplY3RJZEdl dERhdHVtKHB1YmlkKSk7CisJCQlpZiAoT2lkSXNWYWxpZChwcm9pZCkpCisJCQl7CisJCQkJT2Jq ZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCwgcHJvaWQpOworCQkJ CXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCQkJfQorCQl9CisKKwkJ LyogQWRkIG5ldyBFWENFUFQgZW50cmllcywgc2tpcHBpbmcgYW55IGFscmVhZHkgcHJlc2VudC4g Ki8KKwkJUHVibGljYXRpb25BZGRUYWJsZXMocHViaWQsIHJlbHMsIHRydWUsIHN0bXQpOworCiAJ CUNsb3NlVGFibGVMaXN0KHJlbHMpOwogCX0KIH0KQEAgLTI0MzMsMzMgKzI0OTYsNjggQEAgUHVi bGljYXRpb25BZGRUYWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25vdF9leGlz dHMsCiAKIC8qCiAgKiBSZW1vdmUgbGlzdGVkIHRhYmxlcyBmcm9tIHRoZSBwdWJsaWNhdGlvbi4K KyAqCisgKiBkZWxldGVfZXhjbHVkZWQgY29udHJvbHMgaG93IEVYQ0VQVCAocHJleGNlcHQ9dHJ1 ZSkgcm93cyBhcmUgaGFuZGxlZDoKKyAqICAgdHJ1ZSAgLSBkZWxldGUgdGhlbSBzaWxlbnRseS4g IFVzZWQgYnkgdGhlIFNFVCBwYXRoIHRvIGNsZWFyIHN0YWxlCisgKiAgICAgICAgICAgRVhDRVBU IHJvd3MgdGhhdCBhcmUgYmVpbmcgcmVwbGFjZWQgYnkgYSBuZXcgRVhDRVBUIGxpc3QuCisgKiAg IGZhbHNlIC0gdHJlYXQgdGhlbSBhcyAibm90IGEgbWVtYmVyIi4gVXNlZCBieSBBTFRFUiAuLi4g RFJPUCBUQUJMRTogYW4KKyAqICAgICAgICAgICBFWENFUFQgZW50cnkgaXMgbm90IHNvbWV0aGlu ZyBEUk9QIFRBQkxFIGlzIGV4cGVjdGVkIHRvIHJlbW92ZS4KICAqLwogc3RhdGljIHZvaWQKLVB1 YmxpY2F0aW9uRHJvcFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgbWlzc2luZ19v aykKK1B1YmxpY2F0aW9uRHJvcFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgbWlz c2luZ19vaywKKwkJCQkJICBib29sIGRlbGV0ZV9leGNsdWRlZCkKIHsKIAlPYmplY3RBZGRyZXNz IG9iajsKIAlMaXN0Q2VsbCAgICpsYzsKLQlPaWQJCQlwcmlkOwogCiAJZm9yZWFjaChsYywgcmVs cykKIAl7CiAJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmVsID0gKFB1YmxpY2F0aW9uUmVsSW5m byAqKSBsZmlyc3QobGMpOwogCQlSZWxhdGlvbglyZWwgPSBwdWJyZWwtPnJlbGF0aW9uOwogCQlP aWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsKTsKKwkJSGVhcFR1cGxlCXR1cDsKKwkJ Rm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwgcHVicmVsZm9ybTsKKwkJT2lkCQkJcHJpZCA9IEludmFs aWRPaWQ7CisJCWJvb2wJCWlzX2V4Y2VwdCA9IGZhbHNlOwogCiAJCWlmIChwdWJyZWwtPmNvbHVt bnMpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKIAkJCQkJZXJybXNnKCJjb2x1bW4gbGlzdCBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgaW4gQUxU RVIgUFVCTElDQVRJT04gLi4uIERST1AiKSk7CiAKLQkJcHJpZCA9IEdldFN5c0NhY2hlT2lkMihQ VUJMSUNBVElPTlJFTE1BUCwgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAotCQkJCQkJCSAg IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAotCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0ocHVi aWQpKTsKLQkJaWYgKCFPaWRJc1ZhbGlkKHByaWQpKQorCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTIo UFVCTElDQVRJT05SRUxNQVAsCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHJlbGlkKSwKKwkJ CQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsKKwkJaWYgKEhlYXBUdXBsZUlzVmFsaWQo dHVwKSkKKwkJeworCQkJcHVicmVsZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VU U1RSVUNUKHR1cCk7CisJCQlpc19leGNlcHQgPSBwdWJyZWxmb3JtLT5wcmV4Y2VwdDsKKwkJCXBy aWQgPSBwdWJyZWxmb3JtLT5vaWQ7CisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJfQorCisJ CS8qCisJCSAqIERST1AgVEFCTEUgb3BlcmF0ZXMgb25seSBvbiByZWd1bGFyIG1lbWJlciByb3dz LiAgQSBtaXNzaW5nIHJvdworCQkgKiBhbmQgYW4gRVhDRVBUIHJvdyBib3RoIG1lYW4gdGhlIHRh YmxlIGlzbid0IGN1cnJlbnRseSBwdWJsaXNoZWQsCisJCSAqIGJ1dCB3ZSBkaXN0aW5ndWlzaCB0 aGVtIHNvIHRoZSBFWENFUFQgY2FzZSBjYW4gY2FycnkgYSBoaW50CisJCSAqIHBvaW50aW5nIHRo ZSB1c2VyIGF0IHRoZSBFWENFUFQgbGlzdC4gIFRoZSBTRVQtY2xlYW51cCBjYWxsZXIKKwkJICog KGRlbGV0ZV9leGNsdWRlZCA9IHRydWUpIGludGVuZHMgdG8gcmVtb3ZlIEVYQ0VQVCByb3dzIGFu ZCBzbworCQkgKiBieXBhc3NlcyB0aGUgRVhDRVBUIGhhbGYgb2YgdGhpcyBjaGVjay4KKwkJICov CisJCWlmICghT2lkSXNWYWxpZChwcmlkKSB8fCAoaXNfZXhjZXB0ICYmICFkZWxldGVfZXhjbHVk ZWQpKQogCQl7CiAJCQlpZiAobWlzc2luZ19vaykKIAkJCQljb250aW51ZTsKIAorCQkJaWYgKGlz X2V4Y2VwdCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBkcm9wIHRhYmxlIFwiJXNcIiBm cm9tIHB1YmxpY2F0aW9uIFwiJXNcIiIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UXVhbGlmaWVkUmVs YXRpb25OYW1lKHJlbCksCisJCQkJCQkJCWdldF9wdWJsaWNhdGlvbl9uYW1lKHB1YmlkLCBmYWxz ZSkpLAorCQkJCQkJIGVycmRldGFpbCgiVGhlIHRhYmxlIGlzIGN1cnJlbnRseSBsaXN0ZWQgaW4g dGhlIEVYQ0VQVCBjbGF1c2Ugb2YgdGhlIHB1YmxpY2F0aW9uLiIpLAorCQkJCQkJIGVycmhpbnQo IlVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIFRBQkxFUyBJTiBTQ0hFTUEgLi4uIEVYQ0VQ VCB0byBkcm9wIHRoZSB0YWJsZSBmcm9tIHRoZSBFWENFUFQgbGlzdC4iKSkpOworCiAJCQllcmVw b3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAogCQkJ CQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9u IiwKQEAgLTI1MTUsNiArMjYxMyw3IEBAIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1Ymlk LCBMaXN0ICpzY2hlbWFzLCBib29sIG1pc3Npbmdfb2spCiAJZm9yZWFjaChsYywgc2NoZW1hcykK IAl7CiAJCU9pZAkJCXNjaGVtYWlkID0gbGZpcnN0X29pZChsYyk7CisJCUxpc3QJICAgKmV4Y2Vw dF9yZWxpZHM7CiAKIAkJcHNpZCA9IEdldFN5c0NhY2hlT2lkMihQVUJMSUNBVElPTk5BTUVTUEFD RU1BUCwKIAkJCQkJCQkgICBBbnVtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZV9vaWQsCkBAIC0y NTMxLDggKzI2MzAsNDAgQEAgUHVibGljYXRpb25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3Qg KnNjaGVtYXMsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoc2No ZW1haWQpKSkpOwogCQl9CiAKKwkJLyoKKwkJICogQ29sbGVjdCBFWENFUFQgZW50cmllcyBmb3Ig dGFibGVzIGJlbG9uZ2luZyB0byB0aGlzIHNjaGVtYSBiZWZvcmUKKwkJICogcmVtb3ZpbmcgdGhl IHNjaGVtYSBlbnRyeS4KKwkJICovCisJCWV4Y2VwdF9yZWxpZHMgPSBHZXRFeGNsdWRlZFB1Ymxp Y2F0aW9uVGFibGVzKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCiAJCU9iamVjdEFk ZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvbk5hbWVzcGFjZVJlbGF0aW9uSWQsIHBzaWQpOwogCQlw ZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKworCQkvKgorCQkgKiBEcm9w IGFueSBwcmV4Y2VwdCByb3dzIGZvciB0YWJsZXMgYmVsb25naW5nIHRvIHRoaXMgc2NoZW1hLiBU aGVzZQorCQkgKiByb3dzIGhhdmUgbm8gcGdfZGVwZW5kIGVudHJ5IHBvaW50aW5nIGF0IHRoZQor CQkgKiBwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Ugcm93LCBzbyB0aGV5IGFyZSBub3QgY2FzY2Fk ZWQgYnkgdGhlCisJCSAqIHBlcmZvcm1EZWxldGlvbigpIGNhbGwgYWJvdmUgYW5kIG11c3QgYmUg Y2xlYW5lZCB1cCBleHBsaWNpdGx5LgorCQkgKi8KKwkJZm9yZWFjaF9vaWQocmVsaWQsIGV4Y2Vw dF9yZWxpZHMpCisJCXsKKwkJCU9pZAkJCXByb2lkOworCisJCQlpZiAoZ2V0X3JlbF9uYW1lc3Bh Y2UocmVsaWQpICE9IHNjaGVtYWlkKQorCQkJCWNvbnRpbnVlOworCisJCQlwcm9pZCA9IEdldFN5 c0NhY2hlT2lkMihQVUJMSUNBVElPTlJFTE1BUCwKKwkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRp b25fcmVsX29pZCwKKwkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJCQkJ T2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQkJaWYgKE9pZElzVmFsaWQocHJvaWQpKQorCQkJ eworCQkJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQsIHBy b2lkKTsKKwkJCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwkJCX0K KwkJfQorCisJCWxpc3RfZnJlZShleGNlcHRfcmVsaWRzKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYwppbmRleCAyMzAwOWNhMmY0MC4uZGNkYzM4OTMxMTIgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKQEAgLTIzNzYsNiArMjM3NiwyMyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0 dGVybl9pZCwKIAl9CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENF UFQiLCAiKCIsICJUQUJMRSIsIE1hdGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcp KQogCQlDT01QTEVURV9XSVRIKCIpIik7CisJLyogQWZ0ZXIgYSBzaW5nbGUgc2NoZW1hIG5hbWUg aW4gU0VUIGNvbnRleHQsIG9mZmVyIEVYQ0VQVCAoIFRBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4i LCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYmCisJCQkgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQor CQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQiLCAiVEFCTEVTIiwgIklOIiwgIlND SEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIiggVEFCTEUiKTsK KwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiU0VU IiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIikpCisJ CUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgIkNV UlJFTlRfU0NIRU1BIiwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhf UVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJlbnRfc2NoZW1h KTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi U0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwg IlRBQkxFIikpCisJeworCQlzZXRfY29tcGxldGlvbl9yZWZlcmVuY2UocHJldjRfd2QpOworCQlD T01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9z Y2hlbWEpOworCX0KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQ VCIsICIoIiwgIlRBQkxFIiwgTWF0Y2hBbnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykp CisJCUNPTVBMRVRFX1dJVEgoIikiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gU0VU ICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55 LCBNYXRjaEFueU4sICJTRVQiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJwdWJsaXNoIiwgInB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMiLCAicHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QiKTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggZDU4MzcwOWNm N2MuLjNkZWQwNWNiNzMzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dApAQCAtNzA3LDYgKzcwNywxMTUgQEAgRXhjZXB0IHRhYmxlczoKICAgICAicHViX3Rlc3Qu dGVzdHB1Yl90YmxfczEiCiAgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIgogCistLSBTRVQ6 IHJlcGxhY2UgdGhlIGV4Y2VwdCBsaXN0IChrZWVwIHNhbWUgc2NoZW1hLCBkaWZmZXJlbnQgZXhj ZXB0IHRhYmxlKQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3Ri bF9zMik7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0 ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBz ZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5l cmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBu b25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAg ICJwdWJfdGVzdCIKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3My IgorCistLSBmYWlsOiB0YWJsZSBpbiBFWENFUFQgY2xhdXNlIGFsc28gYXBwZWFycyBpbiB0aGUg ZXhwbGljaXQgdGFibGUgbGlzdAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNl cHQgU0VUIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworRVJST1I6ICB0 YWJsZSAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiIGNhbm5vdCBiZSBib3RoIHB1Ymxpc2hlZCBh bmQgZXhjbHVkZWQKKy0tIGZhaWw6IGV4cGxpY2l0IHBhcnRpdGlvbiArIEVYQ0VQVC1lZCByb290 LCBnaXZlbiBpbiBhIHNpbmdsZSBTRVQgc3RhdGVtZW50CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MsIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRl ZF9zKTsKK0VSUk9SOiAgcGFydGl0aW9uICJwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyIgY2Fubm90 IGJlIGJvdGggcHVibGlzaGVkIGFuZCBleGNsdWRlZAorREVUQUlMOiAgQW5jZXN0b3IgInB1Yl90 ZXN0LnRlc3RwdWJfcGFydGVkX3MiIGlzIGFsc28gYmVpbmcgZXhjbHVkZWQgYnkgdGhpcyBzYW1l IGNvbW1hbmQuCistLSBmYWlsOiBleGNlcHQgdGFibGUncyBzY2hlbWEgKHB1YmxpYykgbm90IGlu IHRoZSBwdWJsaWNhdGlvbidzIHNjaGVtYSBsaXN0IChwdWJfdGVzdCkKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVY Q0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CitFUlJPUjogIHRhYmxlICJwdWJsaWMu dGVzdHB1Yl90YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEg InB1Yl90ZXN0IgorTElORSAxOiAuLi54Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXMuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBTRVQ6IHVucXVhbGlmaWVk IG5hbWUgaW4gRVhDRVBUIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYQor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHVi X2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSBy b290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYg ICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0 YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorCistLSBTRVQgd2l0aG91dCBF WENFUFQgY2xlYXJzIHRoZSBleGlzdGluZyBleGNlcHQgbGlzdAorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJw KyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYWx0ZXJfZXhjZXB0Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAg ICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIK KworLS0gU0VUIHRvIGEgZGlmZmVyZW50IHNjaGVtYSByZW1vdmVzIG9sZCBzY2hlbWEncyBFWENF UFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibF9zMSk7CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVN QSBwdWJsaWM7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFs bCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBH ZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgor ICAgICJwdWJsaWMiCisKKy0tIGZhaWw6IG5vbmV4aXN0ZW50IHRhYmxlIGluIEVYQ0VQVCBjbGF1 c2UgKFNFVCBwYXRoKQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VU IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5ub25leGlz dGVudF90YWJsZSk7CitFUlJPUjogIHJlbGF0aW9uICJwdWJfdGVzdC5ub25leGlzdGVudF90YWJs ZSIgZG9lcyBub3QgZXhpc3QKKy0tIFNFVDogbXVsdGlwbGUgc2NoZW1hcyBlYWNoIHdpdGggdGhl aXIgb3duIEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhj ZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBFWENFUFQgKFRBQkxFIHRlc3Rw dWJfdGJsMSk7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFs bCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBH ZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgor ICAgICJwdWJfdGVzdCIKKyAgICAicHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rl c3QudGVzdHB1Yl90YmxfczEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKKy0tIGZhaWw6 IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QIFRBQkxFIG9uIGFuIGV4Y2x1ZGVkIHRhYmxlIGlz IHJlamVjdGVkCistLSB3aXRoIGFuIEVYQ0VQVC1zcGVjaWZpYyBlcnJvci4KK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90 YmxfczE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9z MSIgZnJvbSBwdWJsaWNhdGlvbiAidGVzdHB1Yl9hbHRlcl9leGNlcHQiCitERVRBSUw6ICBUaGUg dGFibGUgaXMgY3VycmVudGx5IGxpc3RlZCBpbiB0aGUgRVhDRVBUIGNsYXVzZSBvZiB0aGUgcHVi bGljYXRpb24uCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgVEFCTEVTIElO IFNDSEVNQSAuLi4gRVhDRVBUIHRvIGRyb3AgdGhlIHRhYmxlIGZyb20gdGhlIEVYQ0VQVCBsaXN0 LgorLS0gdGhlIEVYQ0VQVCBlbnRyeSBpcyBzdGlsbCBwcmVzZW50IGFmdGVyIHRoZSByZWplY3Rl ZCBEUk9QIFRBQkxFCitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFz OgorICAgICJwdWJfdGVzdCIKKyAgICAicHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVi X3Rlc3QudGVzdHB1Yl90YmxfczEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKKy0tIGZh aWw6IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCB3aXRoIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQg KFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKK0VSUk9SOiAgRVhDRVBUIGNsYXVzZSBp cyBub3Qgc3VwcG9ydGVkIHdpdGggRFJPUCBpbiBBTFRFUiBQVUJMSUNBVElPTgorLS0gRFJPUCBU QUJMRVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNzb2NpYXRlZCBFWENFUFQgZW50cmllcworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2Fs dGVyX2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2Vu ZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg bm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAg ICAicHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKwog LS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsCmluZGV4IDMwNTg5ZWNkZWQ0Li5kMjE5ZTc0Y2Y1MyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMzc4LDYgKzM3OCw1MyBAQCBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3Rw dWJfcGFydGVkX3M7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQg VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf dGJsX3MxLCB0ZXN0cHViX3RibF9zMik7CiBcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAogCist LSBTRVQ6IHJlcGxhY2UgdGhlIGV4Y2VwdCBsaXN0IChrZWVwIHNhbWUgc2NoZW1hLCBkaWZmZXJl bnQgZXhjZXB0IHRhYmxlKQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQg U0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0 cHViX3RibF9zMik7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCistLSBmYWlsOiB0YWJs ZSBpbiBFWENFUFQgY2xhdXNlIGFsc28gYXBwZWFycyBpbiB0aGUgZXhwbGljaXQgdGFibGUgbGlz dAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFC TEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworCistLSBmYWlsOiBleHBsaWNpdCBwYXJ0aXRp b24gKyBFWENFUFQtZWQgcm9vdCwgZ2l2ZW4gaW4gYSBzaW5nbGUgU0VUIHN0YXRlbWVudAorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfcGFydF9zLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyk7CisKKy0tIGZhaWw6IGV4Y2VwdCB0YWJsZSdzIHNjaGVt YSAocHVibGljKSBub3QgaW4gdGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1Yl90ZXN0 KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBT Q0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsKKworLS0g U0VUOiB1bnF1YWxpZmllZCBuYW1lIGluIEVYQ0VQVCBpcyBpbXBsaWNpdGx5IHF1YWxpZmllZCB3 aXRoIHRoZSBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNF VCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmxfczEp OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKworLS0gU0VUIHdpdGhvdXQgRVhDRVBUIGNs ZWFycyB0aGUgZXhpc3RpbmcgZXhjZXB0IGxpc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf YWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1 Yl9hbHRlcl9leGNlcHQKKworLS0gU0VUIHRvIGEgZGlmZmVyZW50IHNjaGVtYSByZW1vdmVzIG9s ZCBzY2hlbWEncyBFWENFUFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRl cl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0 cHViX3RibF9zMSk7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQg VEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCist LSBmYWlsOiBub25leGlzdGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlIChTRVQgcGF0aCkKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1B IHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworCist LSBTRVQ6IG11bHRpcGxlIHNjaGVtYXMgZWFjaCB3aXRoIHRoZWlyIG93biBFWENFUFQgY2xhdXNl CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFND SEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwdWJsaWMgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDEpOworXGRScCsgdGVz dHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZmFpbDogQUxURVIgUFVCTElDQVRJT04gLi4uIERST1Ag VEFCTEUgb24gYW4gZXhjbHVkZWQgdGFibGUgaXMgcmVqZWN0ZWQKKy0tIHdpdGggYW4gRVhDRVBU LXNwZWNpZmljIGVycm9yLgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQg RFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMTsKKy0tIHRoZSBFWENFUFQgZW50cnkg aXMgc3RpbGwgcHJlc2VudCBhZnRlciB0aGUgcmVqZWN0ZWQgRFJPUCBUQUJMRQorXGRScCsgdGVz dHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZmFpbDogRVhDRVBUIGlzIG5vdCBhbGxvd2VkIHdpdGgg RFJPUAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRVMg SU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczIp OworCistLSBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcmVtb3ZlcyBhc3NvY2lhdGVkIEVYQ0VQVCBl bnRyaWVzCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBEUk9QIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCiAtLSBD bGVhbnVwCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogRFJPUCBUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX3RibF9zMSwgcHViX3Rlc3QudGVzdHB1Yl90YmxfczI7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM3X2V4Y2VwdC5wbAppbmRleCAwYmE2ZDZmOGJiMi4uMDFlYWZiNWI3YzggMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbApAQCAtMzc2LDYgKzM3Niw2MSBAQCAkcmVzdWx0 ID0KIGlzKCRyZXN1bHQsIHFxKDApLAogCSdBTFRFUiAuLi4gQUREIFRBQkxFUyBJTiBTQ0hFTUEg RVhDRVBUOiBleGNsdWRlZCB0YWJsZSBub3Qgc3luY2VkJyk7CiAKKyMgU0VUOiByZXBsYWNlIHRo ZSBleGNlcHQgbGlzdDsgdGFiX2V4Y2x1ZGVkIGlzIG5vdyBpbmNsdWRlZCBhbmQgdGFiX3B1Ymxp c2hlZCBpcyBleGNsdWRlZC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkFMVEVSIFBVQkxJQ0FUSU9OIHNjaF9wdWIgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSBF WENFUFQgKFRBQkxFIHNjaDEudGFiX3B1Ymxpc2hlZCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiBzY2hfc3ViIFJFRlJF U0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlv bl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJfcHVibGlz aGVkIFZBTFVFUyAoNyk7CisJSU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFMVUVTICg3 KTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3ViJyk7CisK KyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki U0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfZXhjbHVkZWQgV0hFUkUgYSA9IDciKTsKK2lz KCRyZXN1bHQsIHFxKDEpLAorCSdBTFRFUiAuLi4gU0VUIFRBQkxFUyBJTiBTQ0hFTUEgRVhDRVBU OiBuZXdseSBpbmNsdWRlZCB0YWJsZSBpcyByZXBsaWNhdGVkJworKTsKKyRyZXN1bHQgPQorICAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCop IEZST00gc2NoMS50YWJfcHVibGlzaGVkIFdIRVJFIGEgPSA3Iik7CitpcygkcmVzdWx0LCBxcSgw KSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogbm93LWV4Y2x1ZGVk IHRhYmxlIGlzIG5vdCByZXBsaWNhdGVkJworKTsKKworIyBTRVQgd2l0aG91dCBFWENFUFQ6IGNs ZWFycyB0aGUgZXhjZXB0IGxpc3Q7IGJvdGggdGFibGVzIGFyZSBub3cgcHVibGlzaGVkLgorJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04g c2NoX3B1YiBTRVQgVEFCTEVTIElOIFNDSEVNQSBzY2gxIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHNjaF9zdWIgUkVGUkVT SCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9u X3N5bmMoJG5vZGVfcHVibGlzaGVyLCAnc2NoX3N1YicpOworCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9wdWJsaXNo ZWQgVkFMVUVTICg4KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYl9leGNsdWRlZCBWQUxVRVMgKDgp OworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3NjaF9zdWInKTsKKwor JHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJT RUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQgV0hFUkUgYSA9IDgiKTsKK2lz KCRyZXN1bHQsIHFxKDEpLAorCSdBTFRFUiAuLi4gU0VUIFRBQkxFUyBJTiBTQ0hFTUEgKG5vIEVY Q0VQVCk6IHRhYl9wdWJsaXNoZWQgcmVwbGljYXRlZCBhZnRlciBleGNlcHQgbGlzdCBjbGVhcmVk JworKTsKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfZXhjbHVkZWQgV0hFUkUgYSA9IDgi KTsKK2lzKCRyZXN1bHQsIHFxKDEpLAorCSdBTFRFUiAuLi4gU0VUIFRBQkxFUyBJTiBTQ0hFTUEg KG5vIEVYQ0VQVCk6IHRhYl9leGNsdWRlZCByZXBsaWNhdGVkIGFmdGVyIGV4Y2VwdCBsaXN0IGNs ZWFyZWQnCispOworCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RS T1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsKIApAQCAtNDQzLDYgKzQ5OCwz NiBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NS SVBUSU9OIHRhcF9zdWInKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIxJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMicpOwogCisjIE9LIHdoZW4g YSB0YWJsZSBpcyBleGNsdWRlZCBieSBhIFRBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUIHB1YmxpY2F0 aW9uLAorIyBidXQgaXMgaW5jbHVkZWQgYnkgYW5vdGhlciBwdWJsaWNhdGlvbi4KKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdUUlVOQ0FURSB0YWIxJyk7Ciskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1RSVU5DQVRFIHRhYjEnKTsKKworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRhcF9wdWIxIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYyBFWENFUFQgKFRBQkxF IHB1YmxpYy50YWIxKTsKKwlDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1YjIgRk9SIFRBQkxFIHRh YjE7CisJSU5TRVJUIElOVE8gdGFiMSBWQUxVRVMoMSk7CispKTsKKyRub2RlX3N1YnNjcmliZXIt PnBzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViIENPTk5FQ1RJ T04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1YjEsIHRhcF9wdWIyIgor KTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1 Ymxpc2hlciwgJ3RhcF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcXEoSU5TRVJUIElOVE8gdGFiMSBWQUxVRVMoMikpKTsKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjEgT1JERVIgQlkg YSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIpLAorCSJUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDog dGFibGUgZXhjbHVkZWQgaW4gc2NoZW1hIHB1YiBidXQgaW5jbHVkZWQgYnkgYW5vdGhlciBwdWIg aXMgcmVwbGljYXRlZCIKKyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJT04gdGFwX3B1YjEnKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIy Jyk7CisKICRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOwogCiBkb25lX3Rlc3RpbmcoKTsK LS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000cfc83406561b0c24 Content-Type: application/octet-stream; name="v19-0005-Documentation-Patch.patch" Content-Disposition: attachment; filename="v19-0005-Documentation-Patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrc80pug4 RnJvbSA2Njk4ZmQwMDdkNzRjNjYyNjAzMGE1NTY4ODc1NjBjYzlkNmU3ZjliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUaHUsIDE4IEp1biAyMDI2IDA5OjAzOjA4ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTkgNS81XSBEb2N1bWVudGF0aW9uIFBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNh dGlvbi5zZ21sICB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCB8IDQyICsrKysrKysrKysrKystLS0tCiAzIGZpbGVz IGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9n aWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDNiMjJlZTIyOWI5Li44OWVlOWMzNDg2YiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0xMTcsNyArMTE3LDggQEAKICAg IG9yIDxsaXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPi4gVW5saWtlIHRhYmxlcywg c2VxdWVuY2VzIGNhbiBiZQogICAgc3luY2hyb25pemVkIGF0IGFueSB0aW1lLiBGb3IgbW9yZSBp bmZvcm1hdGlvbiwgc2VlCiAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLXNl cXVlbmNlcyIvPi4gV2hlbiBhIHB1YmxpY2F0aW9uIGlzCi0gICBjcmVhdGVkIHdpdGggPGxpdGVy YWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LCBhIHRhYmxlIG9yIHNldCBvZiB0YWJsZXMgY2Fu CisgICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCisg ICA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIGEgdGFibGUgb3Igc2V0 IG9mIHRhYmxlcyBjYW4KICAgIGJlIGV4cGxpY2l0bHkgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlv biB1c2luZyB0aGUKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJh bXMtZm9yLWV4Y2VwdC10YWJsZSI+PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPjwvbGluaz4KICAg IGNsYXVzZS4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCA1MjEx NGExNmEzOS4uMDM3ZGRmYTk0MDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9u LnNnbWwKQEAgLTMxLDcgKzMxLDcgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+ d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWFibGU+IFssIC4u LiBdCi0gICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQor ICAgIFRBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl c19pbl9zY2hlbWE8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQogCiA8cGhyYXNlPmFuZCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fYWxsX29iamVjdDwvcmVwbGFjZWFi bGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAtNDcsNiArNDcsMTAgQEAgQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHIKIAogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9v YmplY3Q8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXQogCis8cGhy YXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzX2luX3NjaGVtYTwv cmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWyBF WENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwv cGhyYXNlPgogCiAgICAgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdCkBAIC02OSw2ICs3Myw5IEBAIEFMVEVSIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT4gUkVOQU1FIFRPIDxyCiAgICBUaGUgZmlyc3QgdHdvIHZhcmlhbnRzIG1vZGlmeSB3aGljaCB0 YWJsZXMvc2NoZW1hcyBhcmUgcGFydCBvZiB0aGUKICAgIHB1YmxpY2F0aW9uLiBUaGUgPGxpdGVy YWw+QUREPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+RFJPUDwvbGl0ZXJhbD4gY2xhdXNlcwogICAg d2lsbCBhZGQgYW5kIHJlbW92ZSBvbmUgb3IgbW9yZSB0YWJsZXMvc2NoZW1hcyBmcm9tIHRoZSBw dWJsaWNhdGlvbi4KKyAgIFRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4g YmUgdXNlZCB3aXRoCisgICA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4g dG8gZXhjbHVkZSBzcGVjaWZpYyB0YWJsZXMgZnJvbSBhCisgICBzY2hlbWEtbGV2ZWwgcHVibGlj YXRpb24uCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTkzLDcgKzEwMCwxMSBAQCBBTFRFUiBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFJFTkFNRSBUTyA8cgogICAgdXNlZCB3aXRoIGEgcHVibGljYXRpb24gZGVmaW5lZCB3aXRo IDxsaXRlcmFsPkZPUiBUQUJMRTwvbGl0ZXJhbD4gb3IKICAgIDxsaXRlcmFsPkZPUiBUQUJMRVMg SU4gU0NIRU1BPC9saXRlcmFsPiwgcmVwbGFjZXMgdGhlIGxpc3Qgb2YgdGFibGVzL3NjaGVtYXMK ICAgIGluIHRoZSBwdWJsaWNhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbGlzdDsgdGhlIGV4aXN0 aW5nIHRhYmxlcyBvciBzY2hlbWFzCi0gICB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUgcHVibGlj YXRpb24gd2lsbCBiZSByZW1vdmVkLgorICAgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlIHB1Ymxp Y2F0aW9uIHdpbGwgYmUgcmVtb3ZlZC4gIFdoZW4KKyAgIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiBpcyB1c2VkIHdpdGggYW4KKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0 ZXJhbD4gY2xhdXNlLCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciBlYWNoIHNjaGVtYSBhcmUKKyAg IHJlcGxhY2VkIHdpdGggdGhlIHNwZWNpZmllZCBsaXN0OyBpZiA8bGl0ZXJhbD5FWENFUFQ8L2xp dGVyYWw+IGlzIG9taXR0ZWQKKyAgIGZvciBhIHNjaGVtYSwgYW55IGV4aXN0aW5nIGV4Y2x1c2lv bnMgZm9yIHRoYXQgc2NoZW1hIGFyZSBjbGVhcmVkLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBA IC0xOTgsNiArMjA5LDI3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxs aXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFdoZW4gdXNlZCB3aXRoIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9s aXRlcmFsPgorICAgICAgb3IgPGxpdGVyYWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+ LCBzcGVjaWZpZXMKKyAgICAgIHRhYmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNh dGlvbi4gIEVhY2ggbmFtZWQKKyAgICAgIHRhYmxlIG11c3QgYmVsb25nIHRvIHRoZSBzY2hlbWEg c3BlY2lmaWVkIGluIHRoZSBzYW1lCisgICAgICA8bGl0ZXJhbD5UQUJMRVMgSU4gU0NIRU1BPC9s aXRlcmFsPiBjbGF1c2UuICBUYWJsZSBuYW1lcyBtYXkgYmUKKyAgICAgIHNjaGVtYS1xdWFsaWZp ZWQgb3IgdW5xdWFsaWZpZWQ7IHVucXVhbGlmaWVkIG5hbWVzIGFyZSBpbXBsaWNpdGx5CisgICAg ICBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hIG5hbWVkIGluIHRoZSBzYW1lIGNsYXVzZS4gIFNl ZQorICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uIi8+IGZvciBmdXJ0 aGVyIGRldGFpbHMgb24gdGhlCisgICAgICBzZW1hbnRpY3Mgb2YgPGxpdGVyYWw+RVhDRVBUPC9s aXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIERyb3BwaW5nIGEgdGFi bGUgYWx3YXlzIHJlbW92ZXMgaXQgZnJvbSB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPgor ICAgICAgY2xhdXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlNFVCAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxh Y2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2Vh YmxlPl0gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMjg4 LDYgKzMyMCwyOCBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgVEFC TEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlzdGluZz4KICAgPC9w YXJhPgogCisgIDxwYXJhPgorICAgQWRkIHNjaGVtYSA8c3RydWN0bmFtZT5zYWxlczwvc3RydWN0 bmFtZT4gdG8gdGhlIHB1YmxpY2F0aW9uCisgICA8c3RydWN0bmFtZT5zYWxlc19wdWJsaWNhdGlv bjwvc3RydWN0bmFtZT4sIGV4Y2x1ZGluZyB0aGUKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzLmludGVy bmFsPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzLmRyYWZ0czwvc3RydWN0 bmFtZT4gdGFibGVzOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gc2FsZXNf cHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBUIChUQUJMRSBpbnRl cm5hbCwgZHJhZnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIFJlcGxhY2UgdGhlIHNjaGVtYSBsaXN0IG9mIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0 aW9uPC9zdHJ1Y3RuYW1lPiB3aXRoCisgICA8c3RydWN0bmFtZT5zYWxlczwvc3RydWN0bmFtZT4s IGV4Y2x1ZGluZyBvbmx5CisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8L3N0cnVjdG5hbWU+ LiBPdGhlciB0aGFuCisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8L3N0cnVjdG5hbWU+LCBh bnkgcHJldmlvdXNseSBleGNsdWRlZCB0YWJsZXMgZm9yIHNjaGVtYQorICAgPHN0cnVjdG5hbWU+ c2FsZXM8L3N0cnVjdG5hbWU+IGFyZSBubyBsb25nZXIgZXhjbHVkZWQuIEFueSBzY2hlbWFzIHBy ZXZpb3VzbHkgaW4KKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1l PiBhcmUgcmVtb3ZlZDoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHNhbGVz X3B1YmxpY2F0aW9uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQVCAoVEFCTEUgZHJh ZnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIEFkZCB0 YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgPHN0cnVjdG5hbWU+ZGVw YXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9w dWJsaWNhdGlvbi5zZ21sCmluZGV4IDg1Y2ZjYWRkYWZhLi4yNmNiNTM2ZTkwYiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yOCw3ICsyOCw3IEBAIENSRUFU RSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+CiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJs aWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKICAgICBU QUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfYW5kX2NvbHVtbnM8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXQotICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NI RU1BIH0gWywgLi4uIF0KKyAgICBUQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZXNfaW5fc2NoZW1hPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0KIAogPHBo cmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX2FsbF9v YmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAgLTM5LDYgKzM5LDEw IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+CiAKICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0KIAor PHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hl bWE8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAgIHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9 IFsgRVhDRVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9v YmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKwogPHBocmFzZT5hbmQgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBp czo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQpAQCAtMTQyLDYgKzE0Niw4IEBAIENS RUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgogICAgICAgdGhlIHNw ZWNpZmllZCBsaXN0IG9mIHNjaGVtYXMsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUg ZnV0dXJlLgorICAgICAgVGFibGVzIGxpc3RlZCBpbiB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRl cmFsPiBjbGF1c2UgZm9yIGEgZ2l2ZW4gc2NoZW1hCisgICAgICBhcmUgZXhjbHVkZWQgZnJvbSB0 aGUgcHVibGljYXRpb24uCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTE3Myw3ICsx NzksNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICA8cGFyYT4KICAgICAgIE1hcmtzIHRoZSBwdWJsaWNh dGlvbiBhcyBvbmUgdGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMgaW4KICAg ICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUu IFRhYmxlcyBsaXN0ZWQgaW4KLSAgICAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNl IGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKyAgICAgIHRoZSA8bGl0ZXJhbD5F WENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24u CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0x OTgsMTMgKzIwNCwyMSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+ CiAgICAgICBUaGlzIGNsYXVzZSBzcGVjaWZpZXMgYSBsaXN0IG9mIHRhYmxlcyB0byBiZSBleGNs dWRlZCBmcm9tIHRoZQotICAgICAgcHVibGljYXRpb24uCisgICAgICBwdWJsaWNhdGlvbi4gSXQg Y2FuIGJlIHVzZWQgd2l0aCA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gb3IKKyAg ICAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPi4gRm9yIDxsaXRlcmFs PkZPUiBUQUJMRVMgSU4KKyAgICAgIFNDSEVNQTwvbGl0ZXJhbD4sIHRoZSBleGNsdXNpb24gYXBw bGllcyBvbmx5IHRvIHRhYmxlcyBpbiB0aGUgc2NoZW1hCisgICAgICBhc3NvY2lhdGVkIHdpdGgg dGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+ Ci0gICAgICBPbmNlIGEgdGFibGUgaXMgZXhjbHVkZWQsIHRoZSBleGNsdXNpb24gYXBwbGllcyB0 byB0aGF0IHRhYmxlCi0gICAgICByZWdhcmRsZXNzIG9mIGl0cyBuYW1lIG9yIHNjaGVtYS4gUmVu YW1pbmcgdGhlIHRhYmxlIG9yIG1vdmluZyBpdCB0bwotICAgICAgYW5vdGhlciBzY2hlbWEgdXNp bmcgPGNvbW1hbmQ+QUxURVIgVEFCTEUgLi4uIFNFVCBTQ0hFTUE8L2NvbW1hbmQ+IGRvZXMKLSAg ICAgIG5vdCByZW1vdmUgdGhlIGV4Y2x1c2lvbi4KKyAgICAgIE9uY2UgYSB0YWJsZSBpcyBleGNs dWRlZCB1bmRlciA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sIHRoZQorICAgICAg ZXhjbHVzaW9uIGFwcGxpZXMgdG8gdGhhdCB0YWJsZSByZWdhcmRsZXNzIG9mIGl0cyBuYW1lIG9y IHNjaGVtYS4KKyAgICAgIFJlbmFtaW5nIHRoZSB0YWJsZSBvciBtb3ZpbmcgaXQgdG8gYW5vdGhl ciBzY2hlbWEgdXNpbmcKKyAgICAgIDxjb21tYW5kPkFMVEVSIFRBQkxFIC4uLiBTRVQgU0NIRU1B PC9jb21tYW5kPiBkb2VzIG5vdCByZW1vdmUgdGhlCisgICAgICBleGNsdXNpb24uIEhvd2V2ZXIs IGZvciA8bGl0ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIGJlY2F1c2UKKyAg ICAgIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGlzIHNjaGVtYS1zY29wZWQsIG1vdmlu ZyBhIHNjaGVtYS1leGNsdWRlZAorICAgICAgdGFibGUgdG8gYW5vdGhlciBzY2hlbWEgZG9lcyBy ZW1vdmUgdGhlIGV4Y2x1c2lvbjsgaWYgdGhlIHRhYmxlIGlzIGxhdGVyCisgICAgICBtb3ZlZCBi YWNrLCB0aGUgZXhjbHVzaW9uIGlzIG5vdCByZXN0b3JlZCBhbmQgbXVzdCBiZSByZS1lc3RhYmxp c2hlZAorICAgICAgd2l0aCA8Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElPTjwvY29tbWFuZD4uCiAg ICAgIDwvcGFyYT4KICAgICAgPHBhcmE+CiAgICAgICBGb3IgaW5oZXJpdGVkIHRhYmxlcywgaWYg PGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGJlZm9yZSB0aGUKQEAgLTIxNiw4 ICsyMzAsOSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgogICAgICAg Rm9yIHBhcnRpdGlvbmVkIHRhYmxlcywgb25seSB0aGUgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZSBt YXkgYmUgc3BlY2lmaWVkCi0gICAgICBpbiA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+LiBEb2lu ZyBzbyBleGNsdWRlcyB0aGUgcm9vdCB0YWJsZSBhbmQKLSAgICAgIGFsbCBvZiBpdHMgcGFydGl0 aW9ucyBmcm9tIHJlcGxpY2F0aW9uLiBUaGUgb3B0aW9uYWwKKyAgICAgIGluIDxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD4uIEV4Y2x1ZGluZyB0aGUgcm9vdCB0YWJsZSBhdXRvbWF0aWNhbGx5Cisg ICAgICBleGNsdWRlcyBhbGwgb2YgaXRzIHBhcnRpdGlvbnMgZnJvbSByZXBsaWNhdGlvbiwgaW5j bHVkaW5nIHRob3NlIGluCisgICAgICBzY2hlbWFzIHRoYXQgYXJlIG90aGVyd2lzZSBpbmNsdWRl ZCBpbiB0aGUgcHVibGljYXRpb24uIFRoZSBvcHRpb25hbAogICAgICAgPGxpdGVyYWw+T05MWTwv bGl0ZXJhbD4gYW5kIDxsaXRlcmFsPio8L2xpdGVyYWw+IGhhcyBubyBlZmZlY3QgZm9yCiAgICAg ICBwYXJ0aXRpb25lZCB0YWJsZXMuCiAgICAgIDwvcGFyYT4KQEAgLTUyMSw2ICs1MzYsMTUgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gRk9SIFRBQkxFIHVzZXJz LCBkZXBhcnRtZW50cywgVEFCTEVTIEkKIENSRUFURSBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNh dGlvbiBGT1IgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1 Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgYWxsIHRoZSB0YWJsZXMgcHJlc2VudCBpbgorICAgdGhl IHNjaGVtYSA8c3RydWN0bmFtZT5zYWxlczwvc3RydWN0bmFtZT4sIGV4Y2VwdAorICAgPHN0cnVj dG5hbWU+aW50ZXJuYWw8L3N0cnVjdG5hbWU+IGFuZCA8c3RydWN0bmFtZT5kcmFmdHM8L3N0cnVj dG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHNhbGVzX2ZpbHRl cmVkIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQVCAoVEFCTEUgaW50ZXJuYWwsIGRy YWZ0cyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBDcmVh dGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgdGFibGUgPHN0 cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgYnV0IHJlcGxpY2F0ZXMgb25seSBjb2x1 bW5zIDxzdHJ1Y3RuYW1lPnVzZXJfaWQ8L3N0cnVjdG5hbWU+IGFuZAotLSAKMi41MC4xIChBcHBs ZSBHaXQtMTU1KQoK --000000000000cfc83406561b0c24--