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 1wa6Lz-001Wy7-0L for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jun 2026 06:35:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wa6Ly-00A5vC-00 for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jun 2026 06:35:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wa6Lx-00A5v4-1i for pgsql-hackers@lists.postgresql.org; Thu, 18 Jun 2026 06:35:53 +0000 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wa6Lv-0000000132X-1Npn for pgsql-hackers@lists.postgresql.org; Thu, 18 Jun 2026 06:35:53 +0000 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-5aa69131836so620970e87.3 for ; Wed, 17 Jun 2026 23:35:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781764550; cv=none; d=google.com; s=arc-20240605; b=hgv3xQ3t0OPGyhxP+kyH4Lk6GoXNPLrZff0hvYFxC3EnKiaTyq3IvonZkj3i4LYgtj 1hrW/fB1XfZnxj5WsR7V+jplgLhn+y4XOa0Fjp8ck/eFidn/9l4pStZN0ELw7ZtI/nTx WkLUix/RJnYthZWAzsxaifHQvrv+SLk08bQF+P+rPnlIlMfFcxnTu+NPo/0JHBaTvtyr hDl06/lCsxL/WxytsGGMn7IFrfFC9aX1QrtkKnyr8hyfxCZvDkiUgL4abQuu9/BpjurU 0huIKcY2AsBVrvlG3F80bDMj7ej3tvkGVsSuK+GvKqk6XclJvLATmEq4tuhzm8AsLNhS PUlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=2ZNUWLnXuwK3eSp/U4sJAsyYbQHyEY3i1W2HrlsGd6k=; fh=JZ8kQ0vb29azaueY8OB3uKPlVgfLT7KLIxnYOIvE9tM=; b=S7mLMy4Up0/41riuWMNXpe3GsBoGSDS6IIO1wUlbmzme5rQqHKHt614jOupS5a8FtW oY+Ibum0alNji+l527L4Sn9iZlU/0Kr3fLnyVPV4aWV/bXq4HZWK1QsoinNMA1lOsOMe QfR2KHOqCUfjmlOWOXAMDj4rCZyaIbIYnaPCM9Y3/Q4zNt3VC3okwA50b6bO/xYoAXrP wMQ8qhCE0VkFDef7SoQedB/fpECmx1Luyrk6SXqBqKuw6yiv+CluR+A+aI0gesH0s2Oc YvsTQT96Acuf1WUYz+jNne9i66LOR0sLGuRhGQXVZUaBEmzVaKDaFsnJn6QyS8ZJ6w9D iN4g==; 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=1781764550; x=1782369350; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2ZNUWLnXuwK3eSp/U4sJAsyYbQHyEY3i1W2HrlsGd6k=; b=pCu2e031dvt3B/Nu3fDlsEcW15K5um4GU0BmKSAJXF+RYOxXgPLUBU88CnrkYscb0z h6G/lvPT3KFxlvdA+Gh0Ue6+KMsVWTcPRnDm/JxOaFcLoB+Q11E3WrW2qzTPB+n5hyyE OHp90kYGqIZEgITRn1Z8n98jJFQ5Cc1kgjjf/oJH5XAsajUYO4RbMABhPuFPpuedEnGg M+lrYmOp3dG+gFXulN44IExSo9npQ/pNoxxUC5W/O7+jJPByE06FQNpjy+bwTq+axzY+ S42+GhU2z/zR8OpaUdKPzAlz5LvmZdFX/lFZmZsegMC93KF6e3g4TSrYn04GKjenmOcd RGog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781764550; x=1782369350; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=2ZNUWLnXuwK3eSp/U4sJAsyYbQHyEY3i1W2HrlsGd6k=; b=RAG3qnQyKqO4u0hE7lmnF/fg5hVjX2seeY94q6ELpRrnwcjf3CI8OYXufcdPdw7J0n 9hm5l3ujUra0BWwAgDXCjRMYHfun4ZjPLKM9ugLg20DQ6F3cF+6jKAZQVYf7OOHxScA8 g5tHzcMPl8Z4g1/jluKh05lQYoOdTj6QE+PlmsTy12s4y9ScCpyDUyv5OH24Mb5ldDyv k9Bv3JwAqk78TguQrYG+xh3gZD2qRhRSMrjKfezqNavilIvfQ/0zq6RBJHWzikW2xmdN DEzDirgPM6ko72Fs5TV19seavDlk/Di2mWd1xU90BH+oJCZPf9zF2aEAq0cPz7ItNSgD odyw== X-Forwarded-Encrypted: i=1; AFNElJ+XPQPTDqjnkO9bQ7BfSsuhWFVBAZpEI4vcix87+gvpg1WmHp3p1TsSzMW4kgvxfkujefDz807/zVDc08I8@lists.postgresql.org X-Gm-Message-State: AOJu0Yy6Ygp1lYr/smFgzSGV5cFDw2b91edjfTyN4OHqipu7gf1IaehO lSd6YZ8XNVBaBaTtJfuQybZV5l6HlAdh7LzO7ze1YXRwNr665fxjqliCKfGIbF09caN3ui54fQ8 wfH13LS03oO9AEyU3alxPfHHjNkJZQg== X-Gm-Gg: AfdE7clZf66u/p337IJ6n5/3NWZRazNJ5fGoFvKumDOG3HXZkpFDAD7Z59nyBpFfNQQ vMxfu1JfkOmiXwimt+CkNGMCTMjD2jBMeTbxfpOY5ts+9bPDmJkiobRnlrn3tI2NGR5fYJg/Q4I xwaFtXZcnsi9lgNECtDbf9xULF1aY174PB75sNhWlSCf32V6B2EfTBRMEQHojEqDqfp+AT14E74 OcHH79BHGkF1k7/0jaYjoz+gH4E0xKN9gzZ09/SNVdD1qB3Tk1e5BiYCneFqJGnm1utoR17ZdGz F8rVQy2E5c1xOUccNIc7D0Ca3GEzJ7ZZj1oRHI4= X-Received: by 2002:a05:6512:2c8b:b0:5aa:8824:156b with SMTP id 2adb3069b0e04-5ad4dacadbfmr616395e87.47.1781764549966; Wed, 17 Jun 2026 23:35:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Thu, 18 Jun 2026 12:05:37 +0530 X-Gm-Features: AVVi8CcCCrknSOKmbRivTynsn3oTSXY4mpFmWv9ZhCNfJwNRiq8P-_02ehj3KOU Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: Peter Smith Cc: Amit Kapila , Zsolt Parragi , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000132d7d065481639c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000132d7d065481639c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 17, 2026 at 7:24=E2=80=AFAM Peter Smith = wrote: > > Hi Nisha. > > Some review comments for v14-0001. > > =3D=3D=3D=3D=3D=3D > src/test/regress/sql/publication.sql > > 1. > +-- ALTER TABLE ... SET SCHEMA on a table excluded by a schema publicatio= n: > +-- the schema-scoped exclusion is no longer meaningful once the table mo= ves > +-- out of its schema, so the exclution is auto-dropped. > > 1a. > typo: /exclution/exclusion/ > > ~ > > 1b. > Exclusions cannot be "dropped" (at least, not by a user with the DROP > command). So even though this is correct for what is happening > internally, maybe from the user PoV it is better to say something like > "auto-removed" or just "removed". > > (Same comment may also apply to the DEBUG logging when this happened). > > ~~~ > > 2. > +-- Restore so the existing cleanup below still works > +ALTER TABLE public.testpub_tbl_s2 SET SCHEMA pub_test; > +DROP PUBLICATION testpub_schema_except_setsch; > > Why not just fix the cleanup code? It's not "existing cleanup" anyway > -- it's part of this same patch. > I restored it here because patches 002 and 003 add tests that depend on pub_test.testpub_tbl_s2. I agree the earlier comments were confusing and made it look like it was only for cleanup purposes. I've reworded the comments, but kept the restore so the ALTER PUBLICATION tests can be added smoothly. > //////////////////// > > Some review comments for v14-0004. > > =3D=3D=3D=3D=3D=3D > > doc/src/sgml/ref/alter_publication.sgml: > > 1. > used with a publication defined with FOR TABLE or > FOR TABLES IN SCHEMA, replaces the list of tables/= schemas > in the publication with the specified list; the existing tables or sc= hemas > - that were present in the publication will be removed. > + that were present in the publication will be removed. When > + SET TABLES IN SCHEMA is used with an > + EXCEPT clause, the excluded tables for each schema= are > + replaced with the specified list; if EXCEPT is omi= tted > + for a schema, any existing exclusions for that schema are cleared. > > "are cleared" or "are removed"... not sure what is better. Maybe > "cleared" is fine. > okay, retained "cleared". > ~~~ > > 2. > + > + The EXCEPT clause can be used with > + ADD TABLES IN SCHEMA to exclude specific tables fr= om a > + schema-level publication. > + > + > > This is talking about the 'ADD' variant. So really, it belongs as part > of that 2nd para: "The first two variants modify..." because that is > where ADD is discussed. > Done. > ~~~ > > 3. > + > + EXCEPT > + > + > + When used with ADD TABLES IN SCHEMA > + or SET TABLES IN SCHEMA, specifies > + tables to be excluded from the publication. Each named > + table must belong to the schema specified in the same > + TABLES IN SCHEMA clause. Table names may be > + schema-qualified or unqualified; unqualified names are implicitly > + qualified with the schema named in the same clause. See > + for further details on t= he > + semantics of EXCEPT. > + > + > + For FOR TABLES IN SCHEMA publications, the > + EXCEPT clause is schema-scoped. If a table lis= ted in > + the EXCEPT clause is later moved to a different= schema > + using ALTER TABLE ... SET SCHEMA, the exclusion= is > + removed; the table will then be published if its new schema is par= t of a > + publication. If the table is subsequently moved back to the origi= nal > + schema, the exclusion is not restored, and must be re-established > + explicitly using ALTER PUBLICATION. Dropping a= table > + always removes it from the EXCEPT clause, > regardless of > + publication type. > + > + > + > > 3a. > TBH, I lost track of what the final decision was about keeping this EXCEP= T part. > IIUC, you wanted to defer a decision until later, but I did not > understand the plan: > a) Should the EXCEPT part be present for now, but consider removing it la= ter? > b) Should the EXCEPT part be absent for now, but consider adding it later= ? > > I prefer what you have done, but either way, we need to ensure Shlok's > thread uses the same approach. > I chose (a), keeping EXCEPT part for now so others can provide feedback and help us reach a consensus on how the documentation should be updated. > ~ > > 3b. > I think that last "Dropping a table..." sentence should be a separate > , unrelated to renaming/moving tables. Also, you don't need to > say "regardless of publication type" -- that would be the assumption > unless you say otherwise. > Fixed. --- Attached are the updated patches v15. -- Thanks, Nisha --000000000000132d7d065481639c Content-Type: application/octet-stream; name="v15-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Disposition: attachment; filename="v15-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqj4i1030 RnJvbSA3MzdjMTVjZDEyZGMzOGMwNzk2ODg2NTcyN2FjMWFmOGY2NmJkNWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDE2IEp1biAyMDI2IDEwOjU4OjQ5ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTUgMS80XSBTdXBwb3J0IEVYQ0VQVCBjbGF1c2UgZm9yIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlv bnMKCkV4dGVuZCB0YWJsZSBleGNsdXNpb24gc3VwcG9ydCBpbiBwdWJsaWNhdGlvbnMgdG8gYWxs b3cgc3BlY2lmaWMKdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gc2NoZW1hLWxldmVsIHB1Ymxp Y2F0aW9ucyB1c2luZyBhbgpFWENFUFQgY2xhdXNlIGluIENSRUFURSBQVUJMSUNBVElPTi4KClN1 cHBvcnRlZCBzeW50YXg6CkNSRUFURSBQVUJMSUNBVElPTiA8cHViPiBGT1IgVEFCTEVTIElOIFND SEVNQSBzIEVYQ0VQVCAoVEFCTEUgdDEsLi4uKTsKLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmMgICAgICAgIHwgMTYxICsrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICB8IDE0NiArKysrKysrKysrKysrKyst LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICB8ICAxMSArKwog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICB8ICA1NCArKysrKyst CiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIHwgIDMwICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrCiBz cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgIHwgIDM1ICsrKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgfCAgIDMgKy0KIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAgfCAgIDIgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgIHwgMTcxICsrKysrKysrKysrKysrKysrKyst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgIHwgMTAwICsrKysr KysrKysrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCAgICAgICB8IDEz MyArKysrKysrKysrKysrKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDgxMyBpbnNlcnRpb25zKCspLCA1 MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggNWM0 NTdkOWFjYTguLjQwODliNTA1Zjg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5j CkBAIC00NDQsMTMgKzQ0NCwxOSBAQCBHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMoTGlz dCAqcmVzdWx0LCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAgKgogICogTm90ZSB0 aGF0IHRoZSBsaXN0IG9mIGFuY2VzdG9ycyBzaG91bGQgYmUgb3JkZXJlZCBzdWNoIHRoYXQgdGhl IHRvcG1vc3QKICAqIGFuY2VzdG9yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCisgKgorICog ZXhjZXB0X3B1YmlkcyBpcyBhIGxpc3Qgb2YgcHVibGljYXRpb24gT0lEcyB3aG9zZSBzY2hlbWEg bWVtYmVyc2hpcAorICogc2hvdWxkIGJlIGlnbm9yZWQgZm9yIHRoZSBhbmNlc3RvciAoYmVjYXVz ZSB0aGUgYW5jZXN0b3IgaXMgaW4gdGhlaXIKKyAqIEVYQ0VQVCBjbGF1c2UpLgogICovCiBPaWQK LUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0 b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsKQorR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCisJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2 ZWwsIExpc3QgKmV4Y2VwdF9wdWJpZHMpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9w bW9zdF9yZWxpZCA9IEludmFsaWRPaWQ7CiAJaW50CQkJbGV2ZWwgPSAwOworCWJvb2wJCWNoZWNr X3NjaGVtYXMgPSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9wdWJpZHMsIHB1Ym9pZCk7CiAKIAkv KgogCSAqIEZpbmQgdGhlICJ0b3Btb3N0IiBhbmNlc3RvciB0aGF0IGlzIGluIHRoaXMgcHVibGlj YXRpb24uCkBAIC00NzAsNyArNDc2LDcgQEAgR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2ZWwKIAkJCWlm IChhbmNlc3Rvcl9sZXZlbCkKIAkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKIAkJfQotCQll bHNlCisJCWVsc2UgaWYgKGNoZWNrX3NjaGVtYXMpCiAJCXsKIAkJCWFzY2hlbWFQdWJpZHMgPSBH ZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsKIAkJCWlm IChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVib2lkKSkKQEAgLTU0NSwxOCArNTUx LDMwIEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVs SW5mbyAqcHJpLAogCSAqIGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUgbmlj ZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KIAkgKiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9u IGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRhbG9nLgogCSAqLwotCWlmIChTZWFyY2hTeXND YWNoZUV4aXN0czIoUFVCTElDQVRJT05SRUxNQVAsIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAot CQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpKQorCXR1cCA9IFNlYXJjaFN5c0NhY2hl MihQVUJMSUNBVElPTlJFTE1BUCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkgIE9i amVjdElkR2V0RGF0dW0ocHViaWQpKTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJ eworCQlib29sCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJV Q1QodHVwKSktPnByZXhjZXB0OworCisJCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCQl0YWJsZV9j bG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJCWlmIChpZl9ub3RfZXhpc3RzKQogCQkJ cmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOwogCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKLQkJCQkgZXJybXNnKCJyZWxhdGlvbiBc IiVzXCIgaXMgYWxyZWFkeSBtZW1iZXIgb2YgcHVibGljYXRpb24gXCIlc1wiIiwKLQkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkpKTsKKwkJaWYgKGlz X2V4Y2VwdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElD QVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInRhYmxlIFwiJXNcIiBjYW5ub3QgYmUgYWRkZWQg YmVjYXVzZSBpdCBpcyBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uIFwiJXNcIiIsCisJCQkJCQkJ UmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSwKKwkJCQkJCQlwdWIt Pm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBpcyBh bHJlYWR5IG1lbWJlciBvZiBwdWJsaWNhdGlvbiBcIiVzXCIiLAorCQkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkpKTsKIAl9CiAKIAljaGVja19wdWJs aWNhdGlvbl9hZGRfcmVsYXRpb24ocHJpKTsKQEAgLTk4MiwxMiArMTAwMCwxMyBAQCBHZXRJbmNs dWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1 Yl9wYXJ0b3B0KQogICogR2V0cyBsaXN0IG9mIHRhYmxlIG9pZHMgdGhhdCB3ZXJlIHNwZWNpZmll ZCBpbiB0aGUgRVhDRVBUIGNsYXVzZSBmb3IgYQogICogcHVibGljYXRpb24uCiAgKgotICogVGhp cyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4KKyAqIFRo aXMgaXMgdXNlZCBmb3IgRk9SIEFMTCBUQUJMRVMgYW5kIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1 YmxpY2F0aW9ucywKKyAqIGJvdGggb2Ygd2hpY2ggc3VwcG9ydCBFWENFUFQgVEFCTEUuCiAgKi8K IExpc3QgKgogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhPaWQgcHViaWQsIFB1YmxpY2F0 aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIHsKLQlBc3NlcnQoR2V0UHVibGljYXRpb24ocHViaWQp LT5hbGx0YWJsZXMpOworCUFzc2VydChHZXRQdWJsaWNhdGlvbihwdWJpZCktPmFsbHRhYmxlcyB8 fCBpc19zY2hlbWFfcHVibGljYXRpb24ocHViaWQpKTsKIAogCXJldHVybiBnZXRfcHVibGljYXRp b25fcmVsYXRpb25zKHB1YmlkLCBwdWJfcGFydG9wdCwgdHJ1ZSk7CiB9CkBAIC0xMDQ5LDE1ICsx MDY4LDE1IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciByZWxr aW5kLCBib29sIHB1YnZpYXJvb3QpCiAJVGFibGVTY2FuRGVzYyBzY2FuOwogCUhlYXBUdXBsZQl0 dXBsZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7Ci0JTGlzdAkgICAqZXhjZXB0bGlzdCA9IE5J TDsKKwlMaXN0CSAgICpleGNlcHRfcmVsaWRzID0gTklMOwogCiAJQXNzZXJ0KCEocmVsa2luZCA9 PSBSRUxLSU5EX1NFUVVFTkNFICYmIHB1YnZpYXJvb3QpKTsKIAogCS8qIEVYQ0VQVCBmaWx0ZXJp bmcgYXBwbGllcyBvbmx5IHRvIHJlbGF0aW9ucywgbm90IHNlcXVlbmNlcyAqLwogCWlmIChyZWxr aW5kID09IFJFTEtJTkRfUkVMQVRJT04pCi0JCWV4Y2VwdGxpc3QgPSBHZXRFeGNsdWRlZFB1Ymxp Y2F0aW9uVGFibGVzKHB1YmlkLCBwdWJ2aWFyb290ID8KLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJ T05fUEFSVF9ST09UIDoKLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKKwkJ ZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsIHB1YnZp YXJvb3QgPworCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1QgOgorCQkJCQkJCQkJ CQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYpOwogCiAJY2xhc3NSZWwgPSB0YWJsZV9vcGVuKFJl bGF0aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKIApAQCAtMTA3NSw3ICsxMDk0LDcg QEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJv b2wgcHVidmlhcm9vdCkKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZv cm0pICYmCiAJCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpICYmCi0J CQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKKwkJCSFsaXN0X21lbWJlcl9v aWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0 LCByZWxpZCk7CiAJfQogCkBAIC0xMDk3LDcgKzExMTYsNyBAQCBHZXRBbGxQdWJsaWNhdGlvblJl bGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCiAJCQlp ZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYmCiAJCQkJIXJlbEZvcm0t PnJlbGlzcGFydGl0aW9uICYmCi0JCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxp ZCkpCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVsaWRzLCByZWxpZCkpCiAJCQkJcmVz dWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0KIApAQCAtMTIzMiwyMiArMTI1 MSw2NyBAQCBHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsIFB1Ymxp Y2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAogLyoKICAqIEdldHMgdGhlIGxpc3Qgb2YgYWxs IHJlbGF0aW9ucyBwdWJsaXNoZWQgYnkgRk9SIFRBQkxFUyBJTiBTQ0hFTUEKLSAqIHB1YmxpY2F0 aW9uLgorICogcHVibGljYXRpb24sIGV4Y2x1ZGluZyBhbnkgdGFibGVzIGxpc3RlZCBpbiB0aGUg RVhDRVBUIGNsYXVzZS4KICAqLwogTGlzdCAqCiBHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0 aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIHsKIAlMaXN0 CSAgICpyZXN1bHQgPSBOSUw7CiAJTGlzdAkgICAqcHVic2NoZW1hbGlzdCA9IEdldFB1YmxpY2F0 aW9uU2NoZW1hcyhwdWJpZCk7CisJTGlzdAkgICAqZXhjZXB0X3JlbGlkcyA9IE5JTDsKIAlMaXN0 Q2VsbCAgICpjZWxsOwogCisJLyogZ2V0IHRoZSBsaXN0IG9mIHRhYmxlcyBleGNsdWRlZCB2aWEg RVhDRVBUIFRBQkxFIGZvciB0aGlzIHB1YmxpY2F0aW9uICovCisJaWYgKHB1YnNjaGVtYWxpc3Qg IT0gTklMKQorCQlleGNlcHRfcmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhw dWJpZCwgcHViX3BhcnRvcHQpOworCiAJZm9yZWFjaChjZWxsLCBwdWJzY2hlbWFsaXN0KQogCXsK IAkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGNlbGwpOwogCQlMaXN0CSAgICpzY2hlbWFS ZWxzID0gTklMOwogCiAJCXNjaGVtYVJlbHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9u cyhzY2hlbWFpZCwgcHViX3BhcnRvcHQpOwotCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQs IHNjaGVtYVJlbHMpOworCisJCWlmIChleGNlcHRfcmVsaWRzICE9IE5JTCkKKwkJeworCQkJLyog ZmlsdGVyIG91dCBhbnkgdGFibGVzIHRoYXQgYXBwZWFyIGluIHRoZSBFWENFUFQgbGlzdCAqLwor CQkJTGlzdENlbGwgICAqcmxjOworCisJCQlmb3JlYWNoKHJsYywgc2NoZW1hUmVscykKKwkJCXsK KwkJCQlPaWQJCQlyZWxpZCA9IGxmaXJzdF9vaWQocmxjKTsKKwkJCQlib29sCQlleGNsdWRlZCA9 IGxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVsaWRzLCByZWxpZCk7CisKKwkJCQkvKgorCQkJCSAq IEFsc28gZXhjbHVkZSBhbnkgcmVsYXRpb24gd2hvc2UgcGFydGl0aW9uIGFuY2VzdG9yIGlzIGlu CisJCQkJICogdGhlIEVYQ0VQVCBsaXN0LiAgVGhpcyBtYXR0ZXJzIHdoZW4gcHViX3BhcnRvcHQg aXMKKwkJCQkgKiBQVUJMSUNBVElPTl9QQVJUX1JPT1Q6IHRoZSBleGNlcHQgbGlzdCBob2xkcyBv bmx5IHRoZSByb290CisJCQkJICogT0lELCBidXQgdGhlIHNjaGVtYSBzY2FuIG1heSBhbHNvIHJl dHVybiBpbmRpdmlkdWFsCisJCQkJICogcGFydGl0aW9uIHJlbGF0aW9ucyB0aGF0IGxpdmUgaW4g dGhlIHNhbWUgc2NoZW1hLgorCQkJCSAqLworCQkJCWlmICghZXhjbHVkZWQgJiYgZ2V0X3JlbF9y ZWxpc3BhcnRpdGlvbihyZWxpZCkpCisJCQkJeworCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBn ZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7CisJCQkJCUxpc3RDZWxsICAgKmFsYzsKKwor CQkJCQlmb3JlYWNoKGFsYywgYW5jZXN0b3JzKQorCQkJCQl7CisJCQkJCQlpZiAobGlzdF9tZW1i ZXJfb2lkKGV4Y2VwdF9yZWxpZHMsIGxmaXJzdF9vaWQoYWxjKSkpCisJCQkJCQl7CisJCQkJCQkJ ZXhjbHVkZWQgPSB0cnVlOworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWxp c3RfZnJlZShhbmNlc3RvcnMpOworCQkJCX0KKworCQkJCWlmICghZXhjbHVkZWQpCisJCQkJCXJl c3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOworCQkJfQorCQkJbGlzdF9mcmVlKHNj aGVtYVJlbHMpOworCQl9CisJCWVsc2UKKwkJCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwg c2NoZW1hUmVscyk7CiAJfQogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTEzMjQsNiArMTM4OCw3IEBA IGlzX3RhYmxlX3B1Ymxpc2hhYmxlX2luX3B1YmxpY2F0aW9uKE9pZCByZWxpZCwgUHVibGljYXRp b24gKnB1YikKIHsKIAlib29sCQlyZWxpc3BhcnRpdGlvbjsKIAlMaXN0CSAgICphbmNlc3RvcnMg PSBOSUw7CisJSGVhcFR1cGxlCXR1cDsKIAogCS8qCiAJICogRm9yIG5vbi1wdWJ2aWFyb290IHB1 YmxpY2F0aW9ucywgYSBwYXJ0aXRpb25lZCB0YWJsZSBpcyBuZXZlciB0aGUKQEAgLTEzODAsMjAg KzE0NDUsNjIgQEAgaXNfdGFibGVfcHVibGlzaGFibGVfaW5fcHVibGljYXRpb24oT2lkIHJlbGlk LCBQdWJsaWNhdGlvbiAqcHViKQogCSAqIElmIGl0J3MgZmFsc2UsIHRoZSBwYXJ0aXRpb24gaXMg Y292ZXJlZCBieSBpdHMgYW5jZXN0b3IncyBwcmVzZW5jZSBpbgogCSAqIHRoZSBwdWJsaWNhdGlv biwgaXQgc2hvdWxkIGJlIGluY2x1ZGVkIChyZXR1cm4gdHJ1ZSkuCiAJICovCi0JaWYgKHJlbGlz cGFydGl0aW9uICYmCi0JCU9pZElzVmFsaWQoR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihwdWItPm9pZCwgYW5jZXN0b3JzLCBOVUxMKSkpCi0JCXJldHVybiAhcHViLT5wdWJ2aWFyb290 OworCWlmIChyZWxpc3BhcnRpdGlvbikKKwl7CisJCU9pZAkJCWFuY2VzdG9yX29pZDsKKworCQlh bmNlc3Rvcl9vaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lkLCBh bmNlc3RvcnMsIE5VTEwsIE5JTCk7CisJCWlmIChPaWRJc1ZhbGlkKGFuY2VzdG9yX29pZCkpCisJ CXsKKwkJCS8qCisJCQkgKiBUaGUgYW5jZXN0b3Igd2FzIGZvdW5kIGluIHRoZSBwdWJsaWNhdGlv biAodmlhIGV4cGxpY2l0CisJCQkgKiBtZW1iZXJzaGlwIG9yIHNjaGVtYSBtZW1iZXJzaGlwKSwg YnV0IGl0IG1heSBiZSBleGNsdWRlZC4gQ2hlY2sKKwkJCSAqIGZvciBhIHByZXhjZXB0IHJvdyBi ZWZvcmUgY29uY2x1ZGluZyB0aGUgcGFydGl0aW9uIGlzCisJCQkgKiBwdWJsaXNoZWQuCisJCQkg Ki8KKwkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKKwkJCQkJCQkJ ICBPYmplY3RJZEdldERhdHVtKGFuY2VzdG9yX29pZCksCisJCQkJCQkJCSAgT2JqZWN0SWRHZXRE YXR1bShwdWItPm9pZCkpOworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCXsKKwkJ CQlib29sCQlpc19leGNlcHQ7CisKKwkJCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRp b25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCQkJCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCQkJCWlmIChpc19leGNlcHQpCisJCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJCXJl dHVybiAhcHViLT5wdWJ2aWFyb290OworCQl9CisJfQogCiAJLyoKIAkgKiBDaGVjayB3aGV0aGVy IHRoZSB0YWJsZSBpcyBleHBsaWNpdGx5IHB1Ymxpc2hlZCB2aWEgcGdfcHVibGljYXRpb25fcmVs CiAJICogb3IgcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLgorCSAqCisJICogQSBwZ19wdWJsaWNh dGlvbl9yZWwgcm93IHdpdGggcHJleGNlcHQ9dHJ1ZSBtZWFucyB0aGUgdGFibGUgaXMKKwkgKiBl eHBsaWNpdGx5IGV4Y2x1ZGVkIHZpYSBFWENFUFQgYW5kIG11c3Qgbm90IGJlIHJlcG9ydGVkIGFz IHB1Ymxpc2hlZCwKKwkgKiBldmVuIGlmIGl0cyBzY2hlbWEgaXMgb3RoZXJ3aXNlIGluY2x1ZGVk LiAgQSByb3cgd2l0aCBwcmV4Y2VwdD1mYWxzZQorCSAqIG1lYW5zIGl0IGlzIGV4cGxpY2l0bHkg aW5jbHVkZWQuICBJZiBubyBwZ19wdWJsaWNhdGlvbl9yZWwgcm93IGV4aXN0cywKKwkgKiB0aGUg dGFibGUgaXMgcHVibGlzaGVkIGlmZiBpdHMgc2NoZW1hIGFwcGVhcnMgaW4KKwkgKiBwZ19wdWJs aWNhdGlvbl9uYW1lc3BhY2UuCiAJICovCi0JcmV0dXJuIChTZWFyY2hTeXNDYWNoZUV4aXN0czIo UFVCTElDQVRJT05SRUxNQVAsCi0JCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCi0J CQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpIHx8Ci0JCQlTZWFyY2hTeXNDYWNo ZUV4aXN0czIoUFVCTElDQVRJT05OQU1FU1BBQ0VNQVAsCi0JCQkJCQkJCSAgT2JqZWN0SWRHZXRE YXR1bShnZXRfcmVsX25hbWVzcGFjZShyZWxpZCkpLAotCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0 dW0ocHViLT5vaWQpKSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxN QVAsCisJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJICBPYmplY3RJZEdl dERhdHVtKHB1Yi0+b2lkKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwl7CisJCWJv b2wJCWlzX2V4Y2VwdDsKKworCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVs KSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJ cmV0dXJuICFpc19leGNlcHQ7CisJfQorCisJcmV0dXJuIFNlYXJjaFN5c0NhY2hlRXhpc3RzMihQ VUJMSUNBVElPTk5BTUVTUEFDRU1BUCwKKwkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0oZ2V0X3Jl bF9uYW1lc3BhY2UocmVsaWQpKSwKKwkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0ocHViLT5vaWQp KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9u Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggNDQw YWRiMzU2YWQuLjI2OWY3N2VlYjk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYwpAQCAtMTgxLDcgKzE4MSw3IEBAIHBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogICovCiBzdGF0aWMgdm9pZAogT2JqZWN0c0luUHVibGljYXRpb25Ub09p ZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkgICBM aXN0ICoqcmVscywgTGlzdCAqKmV4Y2VwdHJlbHMsIExpc3QgKipzY2hlbWFzKQorCQkJCQkJICAg TGlzdCAqKnJlbHMsIExpc3QgKipleGNlcHRfcHVidGFibGVzLCBMaXN0ICoqc2NoZW1hcykKIHsK IAlMaXN0Q2VsbCAgICpjZWxsOwogCVB1YmxpY2F0aW9uT2JqU3BlYyAqcHVib2JqOwpAQCAtMjAw LDcgKzIwMCw3IEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNf bGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VY Q0VQVF9UQUJMRToKIAkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOwotCQkJCSpl eGNlcHRyZWxzID0gbGFwcGVuZCgqZXhjZXB0cmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CisJCQkJ KmV4Y2VwdF9wdWJ0YWJsZXMgPSBsYXBwZW5kKCpleGNlcHRfcHVidGFibGVzLCBwdWJvYmotPnB1 YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6CiAJCQkJ cHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CkBAIC0yMjQsNiArMjI0LDM4IEBAIE9i amVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCiAJCQkJLyogRmlsdGVyIG91dCBkdXBsaWNhdGVzIGlmIHVzZXIgc3BlY2lm aWVzICJzY2gxLCBzY2gxIiAqLwogCQkJCSpzY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29p ZCgqc2NoZW1hcywgc2NoZW1haWQpOworCisJCQkJLyoKKwkJCQkgKiBRdWFsaWZ5IHVucXVhbGlm aWVkIEVYQ0VQVCB0YWJsZSBuYW1lcyB3aXRoIHRoZSByZXNvbHZlZAorCQkJCSAqIGN1cnJlbnQg c2NoZW1hIGFuZCByZWplY3QgYW55IGV4cGxpY2l0bHkgY3Jvc3Mtc2NoZW1hCisJCQkJICogZW50 cmllcy4gIFRoaXMgbWlycm9ycyB0aGUgcGFyc2UtdGltZSBoYW5kbGluZyBkb25lIGZvcgorCQkJ CSAqIFRBQkxFU19JTl9TQ0hFTUEgaW4gcHJlcHJvY2Vzc19wdWJvYmpfbGlzdCgpLCBkZWZlcnJl ZCBoZXJlCisJCQkJICogYmVjYXVzZSBDVVJSRU5UX1NDSEVNQSBpcyBub3Qga25vd24gdW50aWwg ZXhlY3V0aW9uIHRpbWUuCisJCQkJICovCisJCQkJaWYgKHB1Ym9iai0+ZXhjZXB0X3RhYmxlcyAh PSBOSUwpCisJCQkJeworCQkJCQljaGFyCSAgICpjdXJfc2NoZW1hX25hbWUgPSBnZXRfbmFtZXNw YWNlX25hbWUoc2NoZW1haWQpOworCisJCQkJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uT2JqU3Bl YywgZW9iaiwgcHVib2JqLT5leGNlcHRfdGFibGVzKQorCQkJCQl7CisJCQkJCQljb25zdCBjaGFy ICplb2JqX3NjaGVtYW5hbWUgPQorCQkJCQkJCWVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+c2No ZW1hbmFtZTsKKwkJCQkJCWNvbnN0IGNoYXIgKmVvYmpfcmVsbmFtZSA9CisJCQkJCQkJZW9iai0+ cHVidGFibGUtPnJlbGF0aW9uLT5yZWxuYW1lOworCisJCQkJCQlpZiAoZW9ial9zY2hlbWFuYW1l ID09IE5VTEwpCisJCQkJCQkJZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5zY2hlbWFuYW1lID0g Y3VyX3NjaGVtYV9uYW1lOworCQkJCQkJZWxzZSBpZiAoc3RyY21wKGVvYmpfc2NoZW1hbmFtZSwg Y3VyX3NjaGVtYV9uYW1lKSAhPSAwKQorCQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCQkJCQllcnJt c2coInRhYmxlIFwiJXNcIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hl bWEgXCIlc1wiIiwKKwkJCQkJCQkJCQkgICBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihlb2Jq X3NjaGVtYW5hbWUsIGVvYmpfcmVsbmFtZSksCisJCQkJCQkJCQkJICAgY3VyX3NjaGVtYV9uYW1l KSk7CisKKwkJCQkJCSpleGNlcHRfcHVidGFibGVzID0gbGFwcGVuZCgqZXhjZXB0X3B1YnRhYmxl cywKKwkJCQkJCQkJCQkJCQllb2JqLT5wdWJ0YWJsZSk7CisJCQkJCX0KKwkJCQl9CiAJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KQEAgLTMwNSw3ICsz MzcsNyBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlv biByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9u LT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOwor CQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5V TEwsIE5JTCk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVi bGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtMzg5LDcgKzQyMSw3IEBAIHB1Yl9jb250YWluc19p bnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3Rv cnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsaXNwYXJ0 aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJs aWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9hc19yZWxpZCA9IEdl dFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCwgTklM KTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2Fz X3JlbGlkID0gcmVsaWQ7CkBAIC04NDksNyArODgxLDcgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJY2hhcgkJcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1uczsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OwogCUxpc3QJICAg KnJlbGF0aW9ucyA9IE5JTDsKLQlMaXN0CSAgICpleGNlcHRyZWxhdGlvbnMgPSBOSUw7CisJTGlz dAkgICAqZXhjZXB0X3B1YnRhYmxlcyA9IE5JTDsKIAlMaXN0CSAgICpzY2hlbWFpZGxpc3QgPSBO SUw7CiAKIAkvKiBtdXN0IGhhdmUgQ1JFQVRFIHByaXZpbGVnZSBvbiBkYXRhYmFzZSAqLwpAQCAt OTM2LDE2ICs5NjgsMTYgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAKIAkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRo IHRoZSBwdWJsaWNhdGlvbi4gKi8KIAlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5w dWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJICAgJmV4Y2VwdHJlbGF0aW9u cywgJnNjaGVtYWlkbGlzdCk7CisJCQkJCQkJICAgJmV4Y2VwdF9wdWJ0YWJsZXMsICZzY2hlbWFp ZGxpc3QpOwogCiAJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQogCXsKIAkJLyogUHJvY2VzcyBF WENFUFQgdGFibGUgbGlzdCAqLwotCQlpZiAoZXhjZXB0cmVsYXRpb25zICE9IE5JTCkKKwkJaWYg KGV4Y2VwdF9wdWJ0YWJsZXMgIT0gTklMKQogCQl7CiAJCQlMaXN0CSAgICpyZWxzOwogCi0JCQly ZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRyZWxhdGlvbnMpOworCQkJcmVscyA9IE9wZW5UYWJs ZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CiAJCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQs IHJlbHMsIHRydWUsIE5VTEwpOwogCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiAJCX0KQEAgLTk1 OSw2ICs5OTEsOCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAl9CiAJZWxzZSBpZiAoIXN0bXQtPmZvcl9hbGxfc2Vx dWVuY2VzKQogCXsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHMgPSBOSUw7CisKIAkJLyogRk9S IFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCiAJCWlmIChzY2hlbWFpZGxp c3QgIT0gTklMICYmICFzdXBlcnVzZXIoKSkKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC05NzcsNiAr MTAxMSwxOSBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCiAJ CQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKKwkJCS8qCisJCQkgKiBD b2xsZWN0IGV4cGxpY2l0IHRhYmxlIE9JRHMgbm93LCBiZWZvcmUgd2UgY2xvc2UgdGhlIHJlbGF0 aW9uCisJCQkgKiBsaXN0LCBzbyB0aGF0IGV4Y2VwdC10YWJsZSB2YWxpZGF0aW9uIGJlbG93IGNh biBjaGVjayBmb3IKKwkJCSAqIGNvbnRyYWRpY3Rpb25zIHdpdGhvdXQgcmVseWluZyBvbiBhIGNh dGFsb2cgc2NhbiB0aGF0IG1pZ2h0IG5vdAorCQkJICogeWV0IHNlZSB0aGUganVzdC1pbnNlcnRl ZCByb3dzLgorCQkJICovCisJCQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAhPSBOSUwpCisJCQl7CisJ CQkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25SZWxJbmZvLCBwcmksIHJlbHMpCisJCQkJCWV4cGxp Y2l0cmVsaWRzID0gbGFwcGVuZF9vaWQoZXhwbGljaXRyZWxpZHMsCisJCQkJCQkJCQkJCQkgUmVs YXRpb25HZXRSZWxpZChwcmktPnJlbGF0aW9uKSk7CisJCQl9CisKIAkJCVB1YmxpY2F0aW9uQWRk VGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CiAJCQlDbG9zZVRhYmxlTGlzdChyZWxz KTsKIAkJfQpAQCAtOTg5LDYgKzEwMzYsMzQgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkgKi8KIAkJCUxvY2tT Y2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CiAJCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lk LCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOworCisJCQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAh PSBOSUwpCisJCQl7CisJCQkJTGlzdAkgICAqZXhjZXB0X3JlbHM7CisKKwkJCQlleGNlcHRfcmVs cyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJCQkvKgorCQkJCSAqIFZh bGlkYXRlIHRoYXQgZWFjaCBleGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBpbiB0aGUKKwkJCQkg KiBleHBsaWNpdCB0YWJsZSBsaXN0ICh3aGljaCB3b3VsZCBiZSBjb250cmFkaWN0b3J5KS4gVXNl IHRoZQorCQkJCSAqIGluLW1lbW9yeSBleHBsaWNpdHJlbGlkcyBjb2xsZWN0ZWQgYWJvdmUgcmF0 aGVyIHRoYW4KKwkJCQkgKiByZS1yZWFkaW5nIHRoZSBjYXRhbG9nLCB3aGljaCBtYXkgbm90IHll dCBzZWUgdGhlCisJCQkJICoganVzdC1pbnNlcnRlZCByb3dzLgorCQkJCSAqLworCQkJCWZvcmVh Y2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5mbywgcHJpLCBleGNlcHRfcmVscykKKwkJCQl7CisJCQkJ CU9pZAkJCWV4Y2VwdF9yZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbik7CisK KwkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChleHBsaWNpdHJlbGlkcywgZXhjZXB0X3JlbGlkKSkK KwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BB UkFNRVRFUl9WQUxVRSksCisJCQkJCQkJCWVycm1zZygidGFibGUgXCIlc1wiIGNhbm5vdCBhcHBl YXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJ CQkJICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUocHJpLT5yZWxhdGlvbikpKTsK KwkJCQl9CisKKwkJCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIGV4Y2VwdF9yZWxzLCB0 cnVlLCBOVUxMKTsKKwkJCQlDbG9zZVRhYmxlTGlzdChleGNlcHRfcmVscyk7CisJCQl9CiAJCX0K IAl9CiAKQEAgLTE2ODMsMTIgKzE3NTgsMTIgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCWVsc2UKIAl7CiAJCUxpc3QJ ICAgKnJlbGF0aW9ucyA9IE5JTDsKLQkJTGlzdAkgICAqZXhjZXB0cmVsYXRpb25zID0gTklMOwor CQlMaXN0CSAgICpleGNlcHRfcHVidGFibGVzID0gTklMOwogCQlMaXN0CSAgICpzY2hlbWFpZGxp c3QgPSBOSUw7CiAJCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwogCiAJCU9iamVjdHNJblB1 YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKLQkJ CQkJCQkJICAgJmV4Y2VwdHJlbGF0aW9ucywgJnNjaGVtYWlkbGlzdCk7CisJCQkJCQkJCSAgICZl eGNlcHRfcHVidGFibGVzLCAmc2NoZW1haWRsaXN0KTsKIAogCQlDaGVja0FsdGVyUHVibGljYXRp b24oc3RtdCwgdHVwLCByZWxhdGlvbnMsIHNjaGVtYWlkbGlzdCk7CiAKQEAgLTE3MTEsNyArMTc4 Niw3IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCkKIAkJCQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLAogCQkJCQkJICAgc3RtdC0+cHVibmFtZSkpOwogCi0JCXJlbGF0aW9ucyA9IGxpc3Rf Y29uY2F0KHJlbGF0aW9ucywgZXhjZXB0cmVsYXRpb25zKTsKKwkJcmVsYXRpb25zID0gbGlzdF9j b25jYXQocmVsYXRpb25zLCBleGNlcHRfcHVidGFibGVzKTsKIAkJQWx0ZXJQdWJsaWNhdGlvblRh YmxlcyhzdG10LCB0dXAsIHJlbGF0aW9ucywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCiAJCQkJCQkJ ICAgc2NoZW1haWRsaXN0ICE9IE5JTCk7CiAJCUFsdGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQs IHR1cCwgc2NoZW1haWRsaXN0KTsKQEAgLTE4MjksNiArMTkwNCw1NSBAQCBSZW1vdmVQdWJsaWNh dGlvblNjaGVtYUJ5SWQoT2lkIHBzb2lkKQogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CiB9CiAKKy8qCisgKiBSZW1vdmUgYW55IEVYQ0VQVCBjbGF1c2UgZW50cmllcyBmb3Ig YSByZWxhdGlvbiBmcm9tIHNjaGVtYSBwdWJsaWNhdGlvbnMuCisgKiBDYWxsZWQgd2hlbiBhIHRh YmxlIGNoYW5nZXMgc2NoZW1hIChBTFRFUiBUQUJMRSAuLi4gU0VUIFNDSEVNQSksIHNvIHRoYXQK KyAqIGEgc2NoZW1hLXNjb3BlZCBleGNsdXNpb24gZG9lcyBub3Qgc2lsZW50bHkgZm9sbG93IHRo ZSB0YWJsZSB0byBpdHMgbmV3CisgKiBzY2hlbWEuCisgKi8KK3ZvaWQKK1JlbW92ZVNjaGVtYVB1 YkV4Y2VwdEZvclJlbChPaWQgcmVsaWQsIE9pZCBvbGROc3BPaWQsIE9pZCBuZXdOc3BPaWQpCit7 CisJTGlzdAkgICAqcHViaWRzOworCisJcHViaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1Ymxp Y2F0aW9ucyhyZWxpZCk7CisKKwlmb3JlYWNoX29pZChwdWJpZCwgcHViaWRzKQorCXsKKwkJT2lk CQkJcHJvaWQ7CisKKwkJLyoKKwkJICogVGhpcyBwcm9ibGVtIGRvZXMgbm90IGFwcGx5IHRvIEZP UiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucywgYmVjYXVzZQorCQkgKiB0aGVpciBFWENFUFQgY2xh dXNlIGlzIHB1YmxpY2F0aW9uLXNjb3BlZCwgbm90IHNjaGVtYS1zY29wZWQ6IHRoZQorCQkgKiBl eGNsdXNpb24gc2hvdWxkIHBlcnNpc3QgcmVnYXJkbGVzcyBvZiB3aGF0IHNjaGVtYSB0aGUgdGFi bGUgaXMgaW4uCisJCSAqLworCQlpZiAoIWlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJ CQljb250aW51ZTsKKworCQlwcm9pZCA9IEdldFN5c0NhY2hlT2lkMihQVUJMSUNBVElPTlJFTE1B UCwKKwkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJCQkJCQlPYmplY3RJ ZEdldERhdHVtKHJlbGlkKSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQlp ZiAoT2lkSXNWYWxpZChwcm9pZCkpCisJCXsKKwkJCU9iamVjdEFkZHJlc3Mgb2JqOworCisJCQlP YmplY3RBZGRyZXNzU2V0KG9iaiwgUHVibGljYXRpb25SZWxSZWxhdGlvbklkLCBwcm9pZCk7CisK KwkJCWVyZXBvcnQoREVCVUcyLAorCQkJCQllcnJtc2dfaW50ZXJuYWwoImF1dG8tcmVtb3ZlIGV4 Y2x1c2lvbiBvZiB0YWJsZSBcIiVzLiVzXCIgZnJvbSBwdWJsaWNhdGlvbiBcIiVzXCI6IHRhYmxl IG1vdmVkIHRvIHNjaGVtYSBcIiVzXCIiLAorCQkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKG9s ZE5zcE9pZCksCisJCQkJCQkJCQlnZXRfcmVsX25hbWUocmVsaWQpLAorCQkJCQkJCQkJZ2V0X3B1 YmxpY2F0aW9uX25hbWUocHViaWQsIGZhbHNlKSwKKwkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShuZXdOc3BPaWQpKSk7CisKKwkJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUs IDApOworCQl9CisJfQorCisJbGlzdF9mcmVlKHB1Ymlkcyk7Cit9CisKIC8qCiAgKiBPcGVuIHJl bGF0aW9ucyBzcGVjaWZpZWQgYnkgYSBQdWJsaWNhdGlvblRhYmxlIGxpc3QuCiAgKiBUaGUgcmV0 dXJuZWQgdGFibGVzIGFyZSBsb2NrZWQgaW4gU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrIG1vZGUg aW4gb3JkZXIgdG8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMzhmOWZmY2QwNGYuLmY4 YjdlNjc2NmQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNjMsNiArNjMsNyBAQAog I2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9l eHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9yZXBhY2suaCIKKyNpbmNsdWRlICJjb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxl c3BhY2UuaCIKQEAgLTE5MjkwLDYgKzE5MjkxLDE2IEBAIEFsdGVyVGFibGVOYW1lc3BhY2VJbnRl cm5hbChSZWxhdGlvbiByZWwsIE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQsCiAJQWx0ZXJDb25z dHJhaW50TmFtZXNwYWNlcyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIG9sZE5zcE9pZCwgbnNwT2lk LAogCQkJCQkJCSAgZmFsc2UsIG9ianNNb3ZlZCk7CiAKKwkvKgorCSAqIFJlbW92ZSBhbnkgRVhD RVBUIGNsYXVzZSBlbnRyaWVzIGZvciB0aGlzIHJlbGF0aW9uIGZyb20gc2NoZW1hCisJICogcHVi bGljYXRpb25zLiAgQSBzY2hlbWEtc2NvcGVkIGV4Y2x1c2lvbiBpcyBubyBsb25nZXIgbWVhbmlu Z2Z1bCBvbmNlCisJICogdGhlIHRhYmxlIG1vdmVzIHRvIGEgZGlmZmVyZW50IHNjaGVtYS4KKwkg Ki8KKwlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQly ZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQlSZW1v dmVTY2hlbWFQdWJFeGNlcHRGb3JSZWwoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBvbGROc3BPaWQs CisJCQkJCQkJCQluc3BPaWQpOworCiAJdGFibGVfY2xvc2UoY2xhc3NSZWwsIFJvd0V4Y2x1c2l2 ZUxvY2spOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBmZjRlMTM4OGM1NS4uNmE3YTFiYzVmOGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5o IgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXIu aCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGV0aW1l LmgiCiAjaW5jbHVkZSAidXRpbHMveG1sLmgiCiAKQEAgLTExMjcyLDcgKzExMjczLDcgQEAgQWx0 ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05F UiBUTyBSb2xlU3BlYwogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxl IFssIC4uLl0KLSAqCQlUQUJMRVMgSU4gU0NIRU1BIHNjaGVtYSBbLCAuLi5dCisgKgkJVEFCTEVT IElOIFNDSEVNQSBzY2hlbWEgW0VYQ0VQVCAoVEFCTEUgdGFibGUgWywgLi4uXSApXSBbLCAuLi5d CiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0xMTMzMiwyMyArMTEzMzMsMjYgQEAg UHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJ CQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OwogCQkJCX0KLQkJCXwgVEFCTEVTIElO X1AgU0NIRU1BIENvbElkCisJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZCBvcHRfcHViX2V4 Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVj KTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1B OwogCQkJCQkkJC0+bmFtZSA9ICQ0OworCQkJCQkkJC0+ZXhjZXB0X3RhYmxlcyA9ICQ1OwogCQkJ CQkkJC0+bG9jYXRpb24gPSBANDsKIAkJCQl9Ci0JCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDVVJS RU5UX1NDSEVNQQorCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgb3B0X3B1 Yl9leGNlcHRfY2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2Jq U3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NV Ul9TQ0hFTUE7CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDU7CiAJCQkJCSQkLT5sb2NhdGlv biA9IEA0OwogCQkJCX0KLQkJCXwgQ29sSWQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNl CisJCQl8IENvbElkIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZSBvcHRfcHViX2V4Y2Vw dF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsK IAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047CisJCQkJ CSQkLT5leGNlcHRfdGFibGVzID0gJDQ7CiAJCQkJCS8qCiAJCQkJCSAqIElmIGVpdGhlciBhIHJv dyBmaWx0ZXIgb3IgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBjcmVhdGUKIAkJCQkJICogYSBQ dWJsaWNhdGlvblRhYmxlIG9iamVjdC4KQEAgLTExMzkyLDEwICsxMTM5NiwxMSBAQCBQdWJsaWNh dGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQyOwogCQkJCQkkJC0+ cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDM7CiAJCQkJfQotCQkJfCBDVVJSRU5UX1NDSEVNQQor CQkJfCBDVVJSRU5UX1NDSEVNQSBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKIAkJCQl7CiAJCQkJCSQk ID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQ VUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047CisJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDI7 CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCQk7CkBAIC0yMDc4NCw2ICsyMDc4 OSw4IEBAIHByZXByb2Nlc3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoTGlzdCAqYWxsX29iamVjdHNf bGlzdCwgTGlzdCAqKnB1Ym9iamVjdHMsCiAvKgogICogUHJvY2VzcyBwdWJvYmpzcGVjX2xpc3Qg dG8gY2hlY2sgZm9yIGVycm9ycyBpbiBhbnkgb2YgdGhlIG9iamVjdHMgYW5kCiAgKiBjb252ZXJ0 IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTiBpbnRvIGFwcHJvcHJpYXRlIFB1YmxpY2F0aW9u T2JqU3BlY1R5cGUuCisgKiBBbHNvIGZsYXR0ZW5zIGV4Y2VwdF90YWJsZXMgZnJvbSBUQUJMRVMg SU4gU0NIRU1BIG5vZGVzIGludG8gdGhlIGxpc3Qgc28KKyAqIHRoYXQgT2JqZWN0c0luUHVibGlj YXRpb25Ub09pZHMoKSBzZWVzIHRoZW0gYXMgdG9wLWxldmVsIEVYQ0VQVF9UQUJMRSBlbnRyaWVz LgogICovCiBzdGF0aWMgdm9pZAogcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpz cGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQpAQCAtMjA4MTIsNiArMjA4MTksMTMg QEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlz Y2FuX3QgeXlzY2FubmVyKQogCiAJCWlmIChwdWJvYmotPnB1Ym9ianR5cGUgPT0gUFVCTElDQVRJ T05PQkpfVEFCTEUpCiAJCXsKKwkJCS8qIEVYQ0VQVCBpcyBub3QgdmFsaWQgZm9yIHRhYmxlIG9i amVjdHMgKi8KKwkJCWlmIChwdWJvYmotPmV4Y2VwdF90YWJsZXMgIT0gTklMKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCWVy cm1zZygiRVhDRVBUIGlzIG5vdCBhbGxvd2VkIGZvciBUQUJMRSBwdWJsaWNhdGlvbiBvYmplY3Rz IiksCisJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlvbikpOworCiAJCQkv KiByZWxhdGlvbiBuYW1lIG9yIHB1YnRhYmxlIG11c3QgYmUgc2V0IGZvciB0aGlzIHR5cGUgb2Yg b2JqZWN0ICovCiAJCQlpZiAoIXB1Ym9iai0+bmFtZSAmJiAhcHVib2JqLT5wdWJ0YWJsZSkKIAkJ CQllcmVwb3J0KEVSUk9SLApAQCAtMjA4NjAsNiArMjA4NzQsMzYgQEAgcHJlcHJvY2Vzc19wdWJv YmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQog CQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJCQllcnJtc2coImludmFs aWQgc2NoZW1hIG5hbWUiKSwKIAkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0 aW9uKSk7CisKKwkJCS8qCisJCQkgKiBGb3IgVEFCTEVTX0lOX1NDSEVNQSwgcXVhbGlmeSB1bnF1 YWxpZmllZCBFWENFUFQgdGFibGUgbmFtZXMKKwkJCSAqIHdpdGggdGhlIHBhcmVudCBzY2hlbWEg YW5kIHJlamVjdCBjcm9zcy1zY2hlbWEgZW50cmllcyBhdCBwYXJzZQorCQkJICogdGltZSwgdGhl biBmbGF0dGVuIGludG8gdGhlIHRvcC1sZXZlbCBsaXN0LgorCQkJICoKKwkJCSAqIEZvciBUQUJM RVNfSU5fQ1VSX1NDSEVNQSB0aGUgc2NoZW1hIG5hbWUgaXMgbm90IHlldCBrbm93biwgc28KKwkJ CSAqIHNraXAgYm90aCBzdGVwcyBoZXJlOyBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcygpIHdp bGwKKwkJCSAqIHF1YWxpZnkgbmFtZXMgYW5kIHZhbGlkYXRlIHNjaGVtYSBtZW1iZXJzaGlwIGF0 IGV4ZWN1dGlvbiB0aW1lLgorCQkJICovCisJCQlpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBV QkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEpCisJCQl7CisJCQkJZm9yZWFjaF9wdHIoUHVi bGljYXRpb25PYmpTcGVjLCBlb2JqLCBwdWJvYmotPmV4Y2VwdF90YWJsZXMpCisJCQkJeworCQkJ CQljb25zdCBjaGFyICplb2JqX3NjaGVtYW5hbWUgPSBlb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24t PnNjaGVtYW5hbWU7CisJCQkJCWNvbnN0IGNoYXIgKmVvYmpfcmVsbmFtZSA9IGVvYmotPnB1YnRh YmxlLT5yZWxhdGlvbi0+cmVsbmFtZTsKKworCQkJCQlpZiAoZW9ial9zY2hlbWFuYW1lID09IE5V TEwpCisJCQkJCQllb2JqLT5wdWJ0YWJsZS0+cmVsYXRpb24tPnNjaGVtYW5hbWUgPSBwdWJvYmot Pm5hbWU7CisJCQkJCWVsc2UgaWYgKHN0cmNtcChlb2JqX3NjaGVtYW5hbWUsIHB1Ym9iai0+bmFt ZSkgIT0gMCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9J TlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCQkJZXJybXNnKCJ0YWJsZSBcIiVzXCIg aW4gRVhDRVBUIGNsYXVzZSBkb2VzIG5vdCBiZWxvbmcgdG8gc2NoZW1hIFwiJXNcIiIsCisJCQkJ CQkJCQkgICBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihlb2JqX3NjaGVtYW5hbWUsIGVvYmpf cmVsbmFtZSksCisJCQkJCQkJCQkgICBwdWJvYmotPm5hbWUpLAorCQkJCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24oZW9iai0+bG9jYXRpb24pKTsKKwkJCQl9CisJCQkJcHVib2Jqc3BlY19saXN0ID0g bGlzdF9jb25jYXQocHVib2Jqc3BlY19saXN0LCBwdWJvYmotPmV4Y2VwdF90YWJsZXMpOworCQkJ CXB1Ym9iai0+ZXhjZXB0X3RhYmxlcyA9IE5JTDsKKwkJCX0KIAkJfQogCiAJCXByZXZvYmp0eXBl ID0gcHVib2JqLT5wdWJvYmp0eXBlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0 L3Bnb3V0cHV0LmMKaW5kZXggNGVjZmNiZmY3YWIuLjdlZTg0ZWMxYzgzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIwOTcsNiArMjA5Nyw3IEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCQkgKiBhcmUgYWJzb3JiZWQgd2hpbGUgZGVjb2RpbmcgV0FMLgogCQkgKi8KIAkJTGlzdAkg ICAqc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYUlkKTsKKwkJTGlz dAkgICAqZXhjZXB0X3B1YmlkczsKIAkJTGlzdENlbGwgICAqbGM7CiAJCU9pZAkJCXB1Ymxpc2hf YXNfcmVsaWQgPSByZWxpZDsKIAkJaW50CQkJcHVibGlzaF9hbmNlc3Rvcl9sZXZlbCA9IDA7CkBA IC0yMTA0LDYgKzIxMDUsMjggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0 YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCWNoYXIJCXJlbGtpbmQgPSBnZXRfcmVsX3JlbGtpbmQo cmVsaWQpOwogCQlMaXN0CSAgICpyZWxfcHVibGljYXRpb25zID0gTklMOwogCisJCS8qCisJCSAq IEZvciB0aGUgc2NoZW1hIEVYQ0VQVCBjaGVjaywgd2UgbXVzdCBsb29rIHVwIHRoZSB0b3AtbW9z dCBhbmNlc3RvcgorCQkgKiByYXRoZXIgdGhhbiB0aGUgcmVsYXRpb24gaXRzZWxmLiAgY2hlY2tf cHVibGljYXRpb25fYWRkX3JlbGF0aW9uKCkKKwkJICogcHJldmVudHMgaW5kaXZpZHVhbCBwYXJ0 aXRpb25zIGZyb20gYXBwZWFyaW5nIGluIHRoZSBFWENFUFQgY2xhdXNlLAorCQkgKiBzbyBvbmx5 IGEgcm9vdCAobm9uLXBhcnRpdGlvbikgdGFibGUgY2FuIGhhdmUgcHJleGNlcHQgPSB0cnVlLgor CQkgKiBVc2luZyB0aGUgcGFydGl0aW9uJ3Mgb3duIE9JRCB3b3VsZCBhbHdheXMgcmV0dXJuIE5J TCBhbmQgbWlzcyB0aGUKKwkJICogZXhjbHVzaW9uLgorCQkgKi8KKwkJT2lkCQkJcm9vdF9yZWxp ZDsKKworCQlpZiAoYW1fcGFydGl0aW9uKQorCQl7CisJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBn ZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7CisKKwkJCXJvb3RfcmVsaWQgPSBsbGFzdF9v aWQoYW5jZXN0b3JzKTsKKwkJCWxpc3RfZnJlZShhbmNlc3RvcnMpOworCQl9CisJCWVsc2UKKwkJ CXJvb3RfcmVsaWQgPSByZWxpZDsKKworCQlleGNlcHRfcHViaWRzID0gR2V0UmVsYXRpb25FeGNs dWRlZFB1YmxpY2F0aW9ucyhyb290X3JlbGlkKTsKKwogCQkvKiBSZWxvYWQgcHVibGljYXRpb25z IGlmIG5lZWRlZCBiZWZvcmUgdXNlLiAqLwogCQlpZiAoIXB1YmxpY2F0aW9uc192YWxpZCkKIAkJ ewpAQCAtMjI2Nyw3ICsyMjkwLDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJCQkJYW5jZXN0b3IgPSBHZXRUb3BNb3N0QW5j ZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lkLAogCQkJCQkJCQkJCQkJCQkJICAgYW5jZXN0b3Jz LAotCQkJCQkJCQkJCQkJCQkJICAgJmxldmVsKTsKKwkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCwK KwkJCQkJCQkJCQkJCQkJCSAgIGV4Y2VwdF9wdWJpZHMpOwogCiAJCQkJCWlmIChhbmNlc3RvciAh PSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMjgxLDcgKzIzMDUsOCBAQCBnZXRfcmVsX3N5bmNf ZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCQl9CiAKIAkJ CQlpZiAobGlzdF9tZW1iZXJfb2lkKHB1YmlkcywgcHViLT5vaWQpIHx8Ci0JCQkJCWxpc3RfbWVt YmVyX29pZChzY2hlbWFQdWJpZHMsIHB1Yi0+b2lkKSB8fAorCQkJCQkobGlzdF9tZW1iZXJfb2lk KHNjaGVtYVB1YmlkcywgcHViLT5vaWQpICYmCisJCQkJCSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2Vw dF9wdWJpZHMsIHB1Yi0+b2lkKSkgfHwKIAkJCQkJYW5jZXN0b3JfcHVibGlzaGVkKQogCQkJCQlw dWJsaXNoID0gdHJ1ZTsKIAkJCX0KQEAgLTIzNjAsNiArMjM4NSw3IEBAIGdldF9yZWxfc3luY19l bnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCWxpc3RfZnJl ZShwdWJpZHMpOwogCQlsaXN0X2ZyZWUoc2NoZW1hUHViaWRzKTsKKwkJbGlzdF9mcmVlKGV4Y2Vw dF9wdWJpZHMpOwogCQlsaXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJl cGxpY2F0ZV92YWxpZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGFmMzkzNWIwMDc4Li45NDcwYTBiYmY1 ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKQEAgLTcwMzgsNiArNzAzOCwyNCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhj b25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2Mo JmJ1ZiwgXygiVGFibGVzIGZyb20gc2NoZW1hczoiKSwKIAkJCQkJCQkJCQkJCXRydWUsICZjb250 KSkKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CisKKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx OTAwMDApCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBHZXQgdGFibGVzIGluIHRoZSBFWENFUFQg Y2xhdXNlIGZvciB0aGlzIHNjaGVtYQorCQkJCQkgKiBwdWJsaWNhdGlvbi4KKwkJCQkJICovCisJ CQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0KGMu cmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkJ ICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKKwkJCQkJCQkJCSAgIiAgICAgSk9JTiBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIK KwkJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCQkgICIgIEFO RCBwci5wcmV4Y2VwdFxuIgorCQkJCQkJCQkJICAiT1JERVIgQlkgMSIsIHB1YmlkKTsKKwkJCQkJ aWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIp LAorCQkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwor CQkJCX0KIAkJCX0KIAkJfQogCQllbHNlCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZGU1NDdh OGNiMzcuLjUzYmI3Yzg2NzliIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMDY1LDYgKzEw NjUsMjQgQEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl90cmlnZ2VyX29mX3Rh YmxlID0gewogIlNFTEVDVCBuc3BuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgIlwK ICIgV0hFUkUgbnNwbmFtZSBMSUtFICclcyciCiAKKyNkZWZpbmUgUXVlcnlfZm9yX2xpc3Rfb2Zf dGFibGVzX2luX3NjaGVtYSBcCisiU0VMRUNUIG4ubnNwbmFtZSB8fCAnLicgfHwgYy5yZWxuYW1l ICJcCisiICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYyAiXAorIiAgICAgICBKT0lOIHBnX2Nh dGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSBjLnJlbG5hbWVzcGFjZSAiXAorIiBXSEVS RSBjLnJlbGtpbmQgSU4gKCIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUkVMQVRJT04pICIsICIgXAor CQkJCQkJQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIpICJcCisiICAg QU5EIChuLm5zcG5hbWUgfHwgJy4nIHx8IGMucmVsbmFtZSkgTElLRSAnJXMnICJcCisiICAgQU5E IG4ubnNwbmFtZSA9ICclcyciCisKKyNkZWZpbmUgUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2lu X2N1cnJlbnRfc2NoZW1hIFwKKyJTRUxFQ1QgYy5yZWxuYW1lICJcCisiICBGUk9NIHBnX2NhdGFs b2cucGdfY2xhc3MgYyAiXAorIiAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4g T04gbi5vaWQgPSBjLnJlbG5hbWVzcGFjZSAiXAorIiBXSEVSRSBjLnJlbGtpbmQgSU4gKCIgQ3Bw QXNTdHJpbmcyKFJFTEtJTkRfUkVMQVRJT04pICIsICIgXAorCQkJCQkJQ3BwQXNTdHJpbmcyKFJF TEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIpICJcCisiICAgQU5EIGMucmVsbmFtZSBMSUtFICcl cycgIlwKKyIgICBBTkQgbi5uc3BuYW1lID0gcGdfY2F0YWxvZy5jdXJyZW50X3NjaGVtYSgpIgor CiAvKiBVc2UgQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJCQVRJTSB3aXRoIHRoZXNlIHF1ZXJpZXMg Zm9yIEdVQyBuYW1lczogKi8KICNkZWZpbmUgUXVlcnlfZm9yX2xpc3Rfb2ZfYWx0ZXJfc3lzdGVt X3NldF92YXJzIFwKICJTRUxFQ1QgcGdfY2F0YWxvZy5sb3dlcihuYW1lKSBGUk9NIHBnX2NhdGFs b2cucGdfc2V0dGluZ3MgIlwKQEAgLTM3ODcsOCArMzgwNSwyMSBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSF9RVUVSWV9QTFVTKFF1ZXJ5X2Zv cl9saXN0X29mX3NjaGVtYXMKIAkJCQkJCQkJICIgQU5EIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xc XFxfJSUnIiwKIAkJCQkJCQkJICJDVVJSRU5UX1NDSEVNQSIpOwotCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIs ICJTQ0hFTUEiLCBNYXRjaEFueSkgJiYgKCFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkpCi0JCUNP TVBMRVRFX1dJVEgoIldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJM SUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRj aEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENF UFQgKCBUQUJMRSIsICJXSVRIICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0 Y2hBbnksICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCBUQUJMRSIpOworCWVsc2UgaWYg KE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxF UyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIikpCisJCUNPTVBMRVRF X1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsICJDVVJSRU5UX1ND SEVNQSIsICJFWENFUFQiLCAiKCIsICJUQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZF UkJBVElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9jdXJyZW50X3NjaGVtYSk7CisJZWxz ZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAi VEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUi KSkKKwl7CisJCXNldF9jb21wbGV0aW9uX3JlZmVyZW5jZShwcmV2NF93ZCk7CisJCUNPTVBMRVRF X1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVtYSk7 CisJfQorCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55 LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIo IiwgIlRBQkxFIiwgTWF0Y2hBbnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNP TVBMRVRFX1dJVEgoIikiKTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1l PiBbLi4uXSBXSVRIIiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55TiwgIldJVEgiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJwdWJsaXNoIiwg InB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMiLCAicHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qi KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRleCA4OWI0YmIxNGY2Mi4uNTNl M2Q3YzZmM2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24u aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTE5MSw3ICsx OTEsOCBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3Qg KnJlc3VsdCwKIAkJCQkJCQkJCQkJUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogCQkJ CQkJCQkJCQlPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0b3JJblB1Ymxp Y2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKLQkJCQkJCQkJCQkJaW50ICphbmNl c3Rvcl9sZXZlbCk7CisJCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwsCisJCQkJCQkJCQkJ CUxpc3QgKmV4Y2VwdF9wdWJpZHMpOwogCiBleHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxh dGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9p ZCBwdWJpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCmluZGV4IDRjZjQ1 YzE3Y2M1Li5mYjE3MDNhYTY3NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmgKQEAgLTI3LDYgKzI3LDggQEAgZXh0ZXJuIHZvaWQgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KTsKIGV4dGVybiB2b2lkIFJl bW92ZVB1YmxpY2F0aW9uQnlJZChPaWQgcHViaWQpOwogZXh0ZXJuIHZvaWQgUmVtb3ZlUHVibGlj YXRpb25SZWxCeUlkKE9pZCBwcm9pZCk7CiBleHRlcm4gdm9pZCBSZW1vdmVQdWJsaWNhdGlvblNj aGVtYUJ5SWQoT2lkIHBzb2lkKTsKK2V4dGVybiB2b2lkIFJlbW92ZVNjaGVtYVB1YkV4Y2VwdEZv clJlbChPaWQgcmVsaWQsIE9pZCBvbGROc3BPaWQsCisJCQkJCQkJCQkJT2lkIG5ld05zcE9pZCk7 CiAKIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyUHVibGljYXRpb25Pd25lcihjb25zdCBjaGFy ICpuYW1lLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBBbHRlclB1YmxpY2F0aW9uT3du ZXJfb2lkKE9pZCBwdWJpZCwgT2lkIG5ld093bmVySWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IDQxMzNjNDA0YTZiLi4xMjk5YjBhNjdhNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAt NDQ4OCw2ICs0NDg4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25PYmpTcGVjCiAJUHVi bGljYXRpb25PYmpTcGVjVHlwZSBwdWJvYmp0eXBlOwkvKiB0eXBlIG9mIHRoaXMgcHVibGljYXRp b24gb2JqZWN0ICovCiAJY2hhcgkgICAqbmFtZTsKIAlQdWJsaWNhdGlvblRhYmxlICpwdWJ0YWJs ZTsKKwlMaXN0CSAgICpleGNlcHRfdGFibGVzOwkvKiB0YWJsZXMgc3BlY2lmaWVkIGluIHRoZSBF WENFUFQgY2xhdXNlIChmb3IKKwkJCQkJCQkJICogVEFCTEVTIElOIFNDSEVNQSkgKi8KIAlQYXJz ZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9 IFB1YmxpY2F0aW9uT2JqU3BlYzsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0 aW9uLm91dAppbmRleCAyOWU1NGIyMTRhMC4uNmVmZWQwYTBjY2UgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC0yNzAsNiArMjcwLDEyIEBAIENSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTIgRk9SIEFMTCBUQUJM RVMgRVhDRVBUICh0ZXN0CiBFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJ0ZXN0cHVi X3RibDEiCiBMSU5FIDE6IC4uLl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUyIEZPUiBBTEwgVEFC TEVTIEVYQ0VQVCAodGVzdHB1Yl90Yi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWwgLSBFWENFUFQgaXMgbm90 IGFsbG93ZWQgZm9yIEZPUiBUQUJMRSBwdWJsaWNhdGlvbnMKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdF9lcnIKKyAgICBGT1IgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3Ri bDIgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDMpOworRVJST1I6ICBFWENFUFQgaXMgbm90IGFs bG93ZWQgZm9yIFRBQkxFIHB1YmxpY2F0aW9uIG9iamVjdHMKK0xJTkUgMjogICAgIEZPUiBUQUJM RSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMiBFWENFUFQgKFRBQkxFIHRlc3RwLi4uCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC0tIFNFVCBBTEwgVEFCTEVTL1NFUVVFTkNFUwogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NzAsNyArNDc2 LDEzMCBAQCBISU5UOiAgQ2hhbmdlIHRoZSBwdWJsaWNhdGlvbidzIEVYQ0VQVCBjbGF1c2UgdXNp bmcgQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCBBTAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdl czsKIERST1AgVEFCTEUgdGVzdHB1Yl9yb290LCB0ZXN0cHViX3BhcnQxLCB0YWJfbWFpbjsKIERS T1AgUFVCTElDQVRJT04gdGVzdHB1Yjg7Ci0tLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRo IFNFUVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CistLSBFWENFUFQgdGVzdHMgZm9yIFRBQkxFUyBJTiBTQ0hFTUEKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOworLS0gQ3JlYXRlIHRhYmxlcyBpbiBwdWJfdGVzdCBmb3IgdGhlc2UgdGVzdHMKK0NS RUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSAoYSBpbnQgcHJpbWFyeSBrZXksIGIg dGV4dCk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczIgKHggaW50IHByaW1h cnkga2V5LCB5IHRleHQpOworLS0gQ3JlYXRlIHNhbWUtbmFtZWQgdGFibGVzIGluIHB1YmxpYyB0 byB2ZXJpZnkgdW5xdWFsaWZpZWQgRVhDRVBUIGVudHJpZXMKKy0tIGFyZSBxdWFsaWZpZWQgd2l0 aCB0aGUgbmFtZWQgc2NoZW1hLCBub3QgcHVibGljCitDUkVBVEUgVEFCTEUgdGVzdHB1Yl9ub3Br IChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX3RibF9zMSAoYSBpbnQg cHJpbWFyeSBrZXksIGIgdGV4dCk7CistLSBCYXNpYzogZXhjbHVkZSBvbmUgdGFibGUgZnJvbSBh IHNjaGVtYSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4 Y2VwdDEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxl cyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVi X3Rlc3QudGVzdHB1Yl90YmxfczEiCisKKy0tIEV4Y2x1ZGUgbXVsdGlwbGUgdGFibGVzIHVzaW5n IHVucXVhbGlmaWVkIG5hbWVzOyBzYW1lLW5hbWVkIHRhYmxlcyBleGlzdCBpbgorLS0gcHVibGlj IHRvIGNvbmZpcm0gdW5xdWFsaWZpZWQgbmFtZXMgcmVzb2x2ZSB0byBwdWJfdGVzdCwgbm90IHB1 YmxpYworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKyAgICBGT1Ig VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RwdWJfbm9waywgdGVz dHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9zY2hlbWFfZXhjZXB0MgorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2No ZW1hczoKKyAgICAicHViX3Rlc3QiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0 cHViX25vcGsiCisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIgorCistLSBmYWlsOiBFWENF UFQgdGFibGUgYmVsb25ncyB0byBhIGRpZmZlcmVudCBzY2hlbWEKK0NSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX2V4Y2VwdF93cm9uZ3NjaGVtYQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJfdGJsMSk7CitFUlJPUjogIHRhYmxl ICJwdWJsaWMudGVzdHB1Yl90YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0 byBzY2hlbWEgInB1Yl90ZXN0IgorTElORSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHAuLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gZmFpbDogY3Jvc3Mtc2No ZW1hIEVYQ0VQVCBub3QgYWxsb3dlZDsgZWFjaCBFWENFUFQgaXMgYm91bmQgdG8gaXRzIGltbWVk aWF0ZSBzY2hlbWEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9jcm9zc3NjaGVt YQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBwdWJsaWMgRVhDRVBUIChUQUJM RSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgcHVibGljLnRlc3RwdWJfdGJsMSk7CitFUlJPUjog IHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIgaW4gRVhDRVBUIGNsYXVzZSBkb2VzIG5v dCBiZWxvbmcgdG8gc2NoZW1hICJwdWJsaWMiCitMSU5FIDI6IC4uLlIgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCwgcHVibGljIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudC4uLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0t IE11bHRpcGxlIHNjaGVtYXMgZWFjaCB3aXRoIHRoZWlyIG93biBFWENFUFQgY2xhdXNlCitDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpCisgICAgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9z MSksCisgICAgICAgICAgICAgICAgICBwdWJsaWMgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDEp OworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3NjaGVt YV9leGNlcHRfbXVsdGkKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6 CisgICAgInB1Yl90ZXN0IgorICAgICJwdWJsaWMiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJf dGVzdC50ZXN0cHViX3RibF9zMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKworLS0gQUxU RVIgVEFCTEUgLi4uIFNFVCBTQ0hFTUEgb24gYSB0YWJsZSBleGNsdWRlZCBieSBhIHNjaGVtYSBw dWJsaWNhdGlvbjoKKy0tIHRoZSBzY2hlbWEtc2NvcGVkIGV4Y2x1c2lvbiBpcyBubyBsb25nZXIg bWVhbmluZ2Z1bCBvbmNlIHRoZSB0YWJsZSBtb3ZlcworLS0gb3V0IG9mIGl0cyBzY2hlbWEsIHNv IHRoZSBleGNsdXNpb24gaXMgYXV0by1yZW1vdmVkLgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfc2NoZW1hX2V4Y2VwdF9zZXRzY2gKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3RwdWJf c2NoZW1hX2V4Y2VwdF9zZXRzY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9zZXRzY2gK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1 bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAg ICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0 IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCisKK0FMVEVS IFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIFNFVCBTQ0hFTUEgcHVibGljOworXGRScCsg dGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NldHNjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0 X3NldHNjaAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2Vx dWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJh dGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAi cHViX3Rlc3QiCisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NldHNj aDsKKy0tIFJlc3RvcmUgZm9yIGZ1cnRoZXIgdGVzdHMKK0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0 cHViX3RibF9zMiBTRVQgU0NIRU1BIHB1Yl90ZXN0OworLS0gZmFpbDogdGFibGUgYXBwZWFycyBp biBib3RoIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZQorQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2NvbmZsaWN0CisgICAgRk9SIFRBQkxFIHB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworRVJST1I6ICB0YWJsZSAicHViX3Rlc3Qu dGVzdHB1Yl90YmxfczEiIGNhbm5vdCBhcHBlYXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQg dGhlIEVYQ0VQVCBjbGF1c2UKKy0tIGZhaWw6IG5vbmV4aXN0ZW50IHRhYmxlIGluIEVYQ0VQVCBj bGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9ub3JlbAorICAgIEZPUiBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9uZXhpc3Rl bnRfdGFibGUpOworRVJST1I6ICByZWxhdGlvbiAicHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUi IGRvZXMgbm90IGV4aXN0CistLSBmYWlsOiBwYXJ0aXRpb24gY2Fubm90IGFwcGVhciBpbiBFWENF UFQgY2xhdXNlOyBvbmx5IHJvb3QgdGFibGVzIGFyZSBhbGxvd2VkCitDUkVBVEUgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyAoYSBpbnQpIFBBUlRJVElPTiBCWSBMSVNUIChhKTsKK0NS RUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyBQQVJUSVRJT04gT0YgcHViX3Rlc3Qu dGVzdHB1Yl9wYXJ0ZWRfcyBGT1IgVkFMVUVTIElOICgxKTsKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdF9wYXJ0aXRpb24KKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydF9zKTsKK0VSUk9SOiAgY2Fubm90 IHNwZWNpZnkgcmVsYXRpb24gInB1Yl90ZXN0LnRlc3RwdWJfcGFydF9zIiBpbiB0aGUgcHVibGlj YXRpb24gRVhDRVBUIGNsYXVzZQorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBv cnRlZCBmb3IgaW5kaXZpZHVhbCBwYXJ0aXRpb25zLgorLS0gZmFpbDogVEFCTEUga2V5d29yZCBp cyByZXF1aXJlZCBmb3IgdGhlIGZpcnN0IGVudHJ5IGluIHRoZSBFWENFUFQgY2xhdXNlCitDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfbm9rdworICAgIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAodGVzdHB1Yl9ub3BrKTsKK0VSUk9SOiAgc3ludGF4IGVycm9y IGF0IG9yIG5lYXIgInRlc3RwdWJfbm9wayIKK0xJTkUgMjogICAgIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0IEVYQ0VQVCAodGVzdHB1Yl9ub3BrKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gQ2xlYW51cAorUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKK0RST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MyOworRFJPUCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9z IENBU0NBREU7CitEUk9QIFRBQkxFIHRlc3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczE7CitEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNF UVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBD UkVBVEUgU0VRVUVOQ0UgcmVncmVzc19wdWJfc2VxMDsKIENSRUFURSBTRVFVRU5DRSBwdWJfdGVz dC5yZWdyZXNzX3B1Yl9zZXExOwogLS0gRk9SIEFMTCBTRVFVRU5DRVMKQEAgLTE5NTMsNiArMjA4 MiwyNyBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIFRBQkxFUyBJ TiBTQ0hFTUEgZm9vLCBiYXIgKGEsIGIpOwogRVJST1I6ICBjb2x1bW4gc3BlY2lmaWNhdGlvbiBu b3QgYWxsb3dlZCBmb3Igc2NoZW1hCiBMSU5FIDE6IC4uLlRJT04gdGVzdHB1YjFfZm9yc2NoZW1h IEFERCBUQUJMRVMgSU4gU0NIRU1BIGZvbywgYmFyIChhLCBiKS4uLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEVYQ0VQ VCBjbGF1c2Ugd2l0aCBDVVJSRU5UX1NDSEVNQTogY3Jvc3Mtc2NoZW1hIGVudHJ5IG11c3QgYmUg cmVqZWN0ZWQKK1NFVCBzZWFyY2hfcGF0aCA9IHB1Yl90ZXN0MTsKKy0tIHF1YWxpZmllZCBuYW1l IGZyb20gd3Jvbmcgc2NoZW1hIC0+IGVycm9yCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9j dXJzY2hfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIENVUlJFTlRfU0NIRU1BIEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3QyLnRibDEpOworRVJST1I6ICB0YWJsZSAicHViX3Rlc3QyLnRibDEiIGlu IEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QxIgorLS0g dW5xdWFsaWZpZWQgbmFtZSBpbXBsaWNpdGx5IHF1YWxpZmllZCB3aXRoIGN1cnJlbnQgc2NoZW1h IChwdWJfdGVzdDEudGJsKQorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVN QSBDVVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHRibCk7CitSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworXGRScCsgdGVzdHB1Yl9jdXJzY2hfZXhjZXB0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2N1 cnNjaF9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1Yl90ZXN0MSIKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90ZXN0MS50YmwiCisKK0RS T1AgUFVCTElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0OworUkVTRVQgc2VhcmNoX3BhdGg7 CiAtLSBjbGVhbnVwIHB1Yl90ZXN0MSBzY2hlbWEgZm9yIGludmFsaWRhdGlvbiB0ZXN0cwogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1YjJfZm9yc2NoZW1hIERST1AgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdDE7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzX2ZvcnNjaGVtYSwgdGVzdHB1YjRf Zm9yc2NoZW1hLCB0ZXN0cHViNV9mb3JzY2hlbWEsIHRlc3RwdWI2X2ZvcnNjaGVtYSwgdGVzdHB1 Yl9mb3J0YWJsZTsKQEAgLTIzMDQsNiArMjQ1NCw3IEBAIERST1AgUk9MRSByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXJfZHVtbXk7CiAtLSBUZXN0IHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXModGV4 dFtdLCBvaWQpIGZ1bmN0aW9uCiBDUkVBVEUgU0NIRU1BIGdwdF90ZXN0X3NjaDsKIENSRUFURSBU QUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaCAoaWQgaW50KTsKK0NSRUFURSBUQUJMRSBncHRfdGVz dF9zY2gudGJsX3NjaDIgKGlkIGludCk7CiBDUkVBVEUgVEFCTEUgdGJsX25vcm1hbCAoaWQgaW50 KTsKIENSRUFURSBUQUJMRSB0YmxfcGFyZW50IChpZDEgaW50LCBpZDIgaW50LCBpZDMgaW50KSBQ QVJUSVRJT04gQlkgUkFOR0UgKGlkMSk7CiBDUkVBVEUgVEFCTEUgdGJsX3BhcnQxIFBBUlRJVElP TiBPRiB0YmxfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEwKTsKQEAgLTIzMTQsNiAr MjQ2NSw3IEBAIENSRUFURSBQVUJMSUNBVElPTiBwdWJfYWxsX25vX3ZpYXJvb3QgRk9SIEFMTCBU QUJMRVMgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uCiBDUkVBVEUgUFVCTElDQVRJT04gcHVi X2FsbF9leGNlcHQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSB0YmxfcGFyZW50LCBncHRf dGVzdF9zY2gudGJsX3NjaCkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVl KTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290IEZPUiBBTEwg VEFCTEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gpIFdJ VEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1Yl9zY2hlbWEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoOworQ1JFQVRF IFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWFfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90 ZXN0X3NjaCBFWENFUFQgKFRBQkxFIGdwdF90ZXN0X3NjaC50Ymxfc2NoKTsKIENSRUFURSBQVUJM SUNBVElPTiBwdWJfbm9ybWFsIEZPUiBUQUJMRSB0Ymxfbm9ybWFsIFdIRVJFIChpZCA8IDEwKTsK IENSRUFURSBQVUJMSUNBVElPTiBwdWJfcGFydF9sZWFmIEZPUiBUQUJMRSB0YmxfcGFydDEgV0lU SCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZSk7CiBDUkVBVEUgUFVCTElDQVRJ T04gcHViX3BhcnRfcGFyZW50IEZPUiBUQUJMRSB0YmxfcGFyZW50IChpZDEsIGlkMikgV0hFUkUg KGlkMSA9IDEwKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpOwpAQCAt MjQ2NSw2ICsyNjE3LDE4IEBAIFNFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9hbGxf ZXhjZXB0X25vX3ZpYXJvb3QnXSwgJ3RibF9wYXJ0MScpOyAtLSBubyByCiAtLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tCiAoMCByb3dzKQogCistLSB0ZXN0IGZvciBFWENFUFQgY2xh dXNlIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZ WydwdWJfc2NoZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rfc2NoLnRibF9zY2gnKTsgLS0gbm8gcmVz dWx0IChleGNsdWRlZCkKKyBwdWJuYW1lIHwgcmVsbmFtZSB8IGF0dHJzIHwgcXVhbCAKKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCAqIEZST00g dGVzdF9ncHQoQVJSQVlbJ3B1Yl9zY2hlbWFfZXhjZXB0J10sICdncHRfdGVzdF9zY2gudGJsX3Nj aDInKTsgLS0gb25lIHJvdyAoaW5jbHVkZWQgdmlhIHNjaGVtYSkKKyAgICAgIHB1Ym5hbWUgICAg ICB8IHJlbG5hbWUgIHwgYXR0cnMgfCBxdWFsIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tCisgcHViX3NjaGVtYV9leGNlcHQgfCB0Ymxfc2NoMiB8IDEgICAg IHwgCisoMSByb3cpCisKIC0tIHR3byByb3dzIHdpdGggZGlmZmVyZW50IHJvdyBmaWx0ZXIKIFNF TEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9hbGwnLCAncHViX25vcm1hbCddLCAndGJs X25vcm1hbCcpOwogICBwdWJuYW1lICAgfCAgcmVsbmFtZSAgIHwgYXR0cnMgfCAgIHF1YWwgICAg CkBAIC0yNTE3LDYgKzI2ODEsNyBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfbm9fdmlhcm9v dDsKIERST1AgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHQ7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1 Yl9hbGxfZXhjZXB0X25vX3ZpYXJvb3Q7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWE7CitE Uk9QIFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWFfZXhjZXB0OwogRFJPUCBQVUJMSUNBVElPTiBwdWJf bm9ybWFsOwogRFJPUCBQVUJMSUNBVElPTiBwdWJfcGFydF9sZWFmOwogRFJPUCBQVUJMSUNBVElP TiBwdWJfcGFydF9wYXJlbnQ7CkBAIC0yNTI1LDcgKzI2OTAsOSBAQCBEUk9QIFBVQkxJQ0FUSU9O IHB1Yl9wYXJ0X3BhcmVudF9jaGlsZDsKIERST1AgVklFVyBncHRfdGVzdF92aWV3OwogRFJPUCBU QUJMRSB0Ymxfbm9ybWFsLCB0YmxfcGFyZW50LCB0YmxfcGFydDE7CiBEUk9QIFNDSEVNQSBncHRf dGVzdF9zY2ggQ0FTQ0FERTsKLU5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZ3B0X3Rl c3Rfc2NoLnRibF9zY2gKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3Rz CitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGdwdF90ZXN0X3NjaC50Ymxfc2NoCitk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIGdwdF90ZXN0X3NjaC50Ymxfc2NoMgogLS0gc3RhZ2Ugb2Jq ZWN0cyBmb3IgcGdfZHVtcCB0ZXN0cwogQ1JFQVRFIFNDSEVNQSBwdWJtZSBDUkVBVEUgVEFCTEUg dDAgKGMgaW50LCBkIGludCkgQ1JFQVRFIFRBQkxFIHQxIChjIGludCk7CiBDUkVBVEUgU0NIRU1B IHB1Ym1lMiBDUkVBVEUgVEFCTEUgdDAgKGMgaW50LCBkIGludCk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w dWJsaWNhdGlvbi5zcWwKaW5kZXggMDQxZTE0YTRkZTYuLjJlNzllOWU0MTEyIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMjMsNiArMTIzLDkgQEAgQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBF WENFUFQgKFRBQkwKIFxkIHRlc3RwdWJfdGJsMQogLS0gZmFpbCAtIGZpcnN0IHRhYmxlIGluIHRo ZSBFWENFUFQgbGlzdCBzaG91bGQgdXNlIFRBQkxFIGtleXdvcmQKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTIgRk9SIEFMTCBUQUJMRVMgRVhDRVBU ICh0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMik7CistLSBmYWlsIC0gRVhDRVBUIGlzIG5vdCBh bGxvd2VkIGZvciBGT1IgVEFCTEUgcHVibGljYXRpb25zCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHRfZXJyCisgICAgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90Ymwy IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwzKTsKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBTRVQgQUxMIFRBQkxFUy9TRVFVRU5DRVMKQEAgLTIy MCw3ICsyMjMsODMgQEAgUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgdGVz dHB1Yl9yb290LCB0ZXN0cHViX3BhcnQxLCB0YWJfbWFpbjsKIERST1AgUFVCTElDQVRJT04gdGVz dHB1Yjg7CiAKLS0tLSBUZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCB0ZXN0 cyBmb3IgVEFCTEVTIElOIFNDSEVNQQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CistLSBDcmVh dGUgdGFibGVzIGluIHB1Yl90ZXN0IGZvciB0aGVzZSB0ZXN0cworQ1JFQVRFIFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxIChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0KTsKK0NSRUFURSBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMiAoeCBpbnQgcHJpbWFyeSBrZXksIHkgdGV4dCk7 CistLSBDcmVhdGUgc2FtZS1uYW1lZCB0YWJsZXMgaW4gcHVibGljIHRvIHZlcmlmeSB1bnF1YWxp ZmllZCBFWENFUFQgZW50cmllcworLS0gYXJlIHF1YWxpZmllZCB3aXRoIHRoZSBuYW1lZCBzY2hl bWEsIG5vdCBwdWJsaWMKK0NSRUFURSBUQUJMRSB0ZXN0cHViX25vcGsgKGZvbyBpbnQsIGJhciBp bnQpOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsX3MxIChhIGludCBwcmltYXJ5IGtleSwgYiB0 ZXh0KTsKKworLS0gQmFzaWM6IGV4Y2x1ZGUgb25lIHRhYmxlIGZyb20gYSBzY2hlbWEgcHVibGlj YXRpb24KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisgICAgRk9S IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisKKy0tIEV4Y2x1ZGUgbXVs dGlwbGUgdGFibGVzIHVzaW5nIHVucXVhbGlmaWVkIG5hbWVzOyBzYW1lLW5hbWVkIHRhYmxlcyBl eGlzdCBpbgorLS0gcHVibGljIHRvIGNvbmZpcm0gdW5xdWFsaWZpZWQgbmFtZXMgcmVzb2x2ZSB0 byBwdWJfdGVzdCwgbm90IHB1YmxpYworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1h X2V4Y2VwdDIKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxF IHRlc3RwdWJfbm9waywgdGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhj ZXB0MgorCistLSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBhIGRpZmZlcmVudCBzY2hl bWEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF93cm9uZ3NjaGVtYQorICAgIEZP UiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwdWJf dGJsMSk7CisKKy0tIGZhaWw6IGNyb3NzLXNjaGVtYSBFWENFUFQgbm90IGFsbG93ZWQ7IGVhY2gg RVhDRVBUIGlzIGJvdW5kIHRvIGl0cyBpbW1lZGlhdGUgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9leGNlcHRfY3Jvc3NzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdCwgcHVibGljIEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1 YmxpYy50ZXN0cHViX3RibDEpOworCistLSBNdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVp ciBvd24gRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4 Y2VwdF9tdWx0aQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFC TEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpLAorICAgICAgICAgICAgICAgICAgcHVibGljIEVY Q0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9t dWx0aQorCistLSBBTFRFUiBUQUJMRSAuLi4gU0VUIFNDSEVNQSBvbiBhIHRhYmxlIGV4Y2x1ZGVk IGJ5IGEgc2NoZW1hIHB1YmxpY2F0aW9uOgorLS0gdGhlIHNjaGVtYS1zY29wZWQgZXhjbHVzaW9u IGlzIG5vIGxvbmdlciBtZWFuaW5nZnVsIG9uY2UgdGhlIHRhYmxlIG1vdmVzCistLSBvdXQgb2Yg aXRzIHNjaGVtYSwgc28gdGhlIGV4Y2x1c2lvbiBpcyBhdXRvLXJlbW92ZWQuCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NldHNjaAorICAgIEZPUiBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczIpOwor XGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NldHNjaAorQUxURVIgVEFCTEUgcHViX3Rlc3Qu dGVzdHB1Yl90YmxfczIgU0VUIFNDSEVNQSBwdWJsaWM7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9l eGNlcHRfc2V0c2NoCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9zZXRz Y2g7CistLSBSZXN0b3JlIGZvciBmdXJ0aGVyIHRlc3RzCitBTFRFUiBUQUJMRSBwdWJsaWMudGVz dHB1Yl90YmxfczIgU0VUIFNDSEVNQSBwdWJfdGVzdDsKKworLS0gZmFpbDogdGFibGUgYXBwZWFy cyBpbiBib3RoIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZQor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2NvbmZsaWN0CisgICAgRk9SIFRBQkxF IHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQ VCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworCistLSBmYWlsOiBub25leGlzdGVu dCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNl cHRfbm9yZWwKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxF IHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDogcGFydGl0aW9uIGNhbm5v dCBhcHBlYXIgaW4gRVhDRVBUIGNsYXVzZTsgb25seSByb290IHRhYmxlcyBhcmUgYWxsb3dlZAor Q1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgKGEgaW50KSBQQVJUSVRJT04g QlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MgUEFSVElU SU9OIE9GIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgRk9SIFZBTFVFUyBJTiAoMSk7CitDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfcGFydGl0aW9uCisgICAgRk9SIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3BhcnRfcyk7 CisKKy0tIGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJzdCBlbnRy eSBpbiB0aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 X25va3cKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJf bm9wayk7CisKKy0tIENsZWFudXAKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitEUk9QIFRB QkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9zMjsKK0RS T1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOworRFJPUCBUQUJMRSB0 ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Nj aGVtYV9leGNlcHQxLCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNl cHRfbXVsdGk7CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUworLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBDUkVBVEUgU0VRVUVOQ0UgcmVncmVz c19wdWJfc2VxMDsKIENSRUFURSBTRVFVRU5DRSBwdWJfdGVzdC5yZWdyZXNzX3B1Yl9zZXExOwog CkBAIC0xMTg5LDYgKzEyNjgsMTggQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2No ZW1hIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MSwgcHViX3Rlc3QxOwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NIRU1BIGZvbyAoYSwg Yik7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIFRBQkxFUyBJTiBT Q0hFTUEgZm9vLCBiYXIgKGEsIGIpOwogCistLSBFWENFUFQgY2xhdXNlIHdpdGggQ1VSUkVOVF9T Q0hFTUE6IGNyb3NzLXNjaGVtYSBlbnRyeSBtdXN0IGJlIHJlamVjdGVkCitTRVQgc2VhcmNoX3Bh dGggPSBwdWJfdGVzdDE7CistLSBxdWFsaWZpZWQgbmFtZSBmcm9tIHdyb25nIHNjaGVtYSAtPiBl cnJvcgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1IgVEFCTEVT IElOIFNDSEVNQSBDVVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Mi50YmwxKTsK Ky0tIHVucXVhbGlmaWVkIG5hbWUgaW1wbGljaXRseSBxdWFsaWZpZWQgd2l0aCBjdXJyZW50IHNj aGVtYSAocHViX3Rlc3QxLnRibCkKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQgRk9SIFRBQkxFUyBJTiBT Q0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0YmwpOworUkVTRVQgY2xpZW50X21p bl9tZXNzYWdlczsKK1xkUnArIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdAorRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX2N1cnNjaF9leGNlcHQ7CitSRVNFVCBzZWFyY2hfcGF0aDsKKwogLS0gY2xlYW51 cCBwdWJfdGVzdDEgc2NoZW1hIGZvciBpbnZhbGlkYXRpb24gdGVzdHMKIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWIyX2ZvcnNjaGVtYSBEUk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOwog RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViM19mb3JzY2hlbWEsIHRlc3RwdWI0X2ZvcnNjaGVtYSwg dGVzdHB1YjVfZm9yc2NoZW1hLCB0ZXN0cHViNl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9ydGFibGU7 CkBAIC0xNDQzLDYgKzE1MzQsNyBAQCBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy X2R1bW15OwogLS0gVGVzdCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKHRleHRbXSwgb2lkKSBm dW5jdGlvbgogQ1JFQVRFIFNDSEVNQSBncHRfdGVzdF9zY2g7CiBDUkVBVEUgVEFCTEUgZ3B0X3Rl c3Rfc2NoLnRibF9zY2ggKGlkIGludCk7CitDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9z Y2gyIChpZCBpbnQpOwogQ1JFQVRFIFRBQkxFIHRibF9ub3JtYWwgKGlkIGludCk7CiBDUkVBVEUg VEFCTEUgdGJsX3BhcmVudCAoaWQxIGludCwgaWQyIGludCwgaWQzIGludCkgUEFSVElUSU9OIEJZ IFJBTkdFIChpZDEpOwogQ1JFQVRFIFRBQkxFIHRibF9wYXJ0MSBQQVJUSVRJT04gT0YgdGJsX3Bh cmVudCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CkBAIC0xNDU0LDYgKzE1NDYsNyBAQCBD UkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9ub192aWFyb290IEZPUiBBTEwgVEFCTEVTIFdJVEgg KHB1Ymxpc2hfdmlhX3BhcnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0 IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgdGJsX3BhcmVudCwgZ3B0X3Rlc3Rfc2NoLnRi bF9zY2gpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSk7CiBDUkVBVEUg UFVCTElDQVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCBGT1IgQUxMIFRBQkxFUyBFWENF UFQgKFRBQkxFIHRibF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxfc2NoKSBXSVRIIChwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfc2No ZW1hIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGdwdF90ZXN0X3NjaDsKK0NSRUFURSBQVUJMSUNBVElP TiBwdWJfc2NoZW1hX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBncHRfdGVzdF9zY2ggRVhD RVBUIChUQUJMRSBncHRfdGVzdF9zY2gudGJsX3NjaCk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHVi X25vcm1hbCBGT1IgVEFCTEUgdGJsX25vcm1hbCBXSEVSRSAoaWQgPCAxMCk7CiBDUkVBVEUgUFVC TElDQVRJT04gcHViX3BhcnRfbGVhZiBGT1IgVEFCTEUgdGJsX3BhcnQxIFdJVEggKHB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0 X3BhcmVudCBGT1IgVEFCTEUgdGJsX3BhcmVudCAoaWQxLCBpZDIpIFdIRVJFIChpZDEgPSAxMCkg V0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKQEAgLTE1MTAsNiArMTYw MywxMCBAQCBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxsX2V4Y2VwdF9ub192 aWFyb290J10sICdncHRfdGVzdF9zY2gudGJsX3NjaAogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChB UlJBWVsncHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCddLCAndGJsX3BhcmVudCcpOyAtLSBubyBy ZXN1bHQgKGV4Y2x1ZGVkKQogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX2FsbF9l eGNlcHRfbm9fdmlhcm9vdCddLCAndGJsX3BhcnQxJyk7IC0tIG5vIHJlc3VsdAogCistLSB0ZXN0 IGZvciBFWENFUFQgY2xhdXNlIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9uCitTRUxFQ1QgKiBGUk9N IHRlc3RfZ3B0KEFSUkFZWydwdWJfc2NoZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rfc2NoLnRibF9z Y2gnKTsgLS0gbm8gcmVzdWx0IChleGNsdWRlZCkKK1NFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJS QVlbJ3B1Yl9zY2hlbWFfZXhjZXB0J10sICdncHRfdGVzdF9zY2gudGJsX3NjaDInKTsgLS0gb25l IHJvdyAoaW5jbHVkZWQgdmlhIHNjaGVtYSkKKwogLS0gdHdvIHJvd3Mgd2l0aCBkaWZmZXJlbnQg cm93IGZpbHRlcgogU0VMRUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX2FsbCcsICdwdWJf bm9ybWFsJ10sICd0Ymxfbm9ybWFsJyk7CiAKQEAgLTE1MzgsNiArMTYzNSw3IEBAIERST1AgUFVC TElDQVRJT04gcHViX2FsbF9ub192aWFyb290OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX2V4 Y2VwdDsKIERST1AgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdDsKIERST1Ag UFVCTElDQVRJT04gcHViX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gcHViX3NjaGVtYV9leGNl cHQ7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9ub3JtYWw7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9w YXJ0X2xlYWY7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X3BhcmVudDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwgYi9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzdfZXhjZXB0LnBsCmluZGV4IDhjNThkMjgyZWVlLi4xOGM3YjJjMWZjYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAorKysgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCkBAIC0yNCwxNCArMjQsMTcgQEAgbXkg JHJlc3VsdDsKIAogc3ViIHRlc3RfZXhjZXB0X3Jvb3RfcGFydGl0aW9uCiB7Ci0JbXkgKCRwdWJ2 aWFyb290KSA9IEBfOworCW15ICgkcHVidmlhcm9vdCwgJHB1YnNxbCkgPSBAXzsKKwkkcHVic3Fs IC8vPQorCSAgIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIChUQUJMRSByb290MSkiOworCSRwdWJzcWwgLj0gIiBXSVRIIChwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9ICRwdWJ2aWFyb290KSI7CiAKIAkjIElmIHRoZSByb290IHBhcnRpdGlv bmVkIHRhYmxlIGlzIGluIHRoZSBFWENFUFQgY2xhdXNlLCBhbGwgaXRzCiAJIyBwYXJ0aXRpb25z IGFyZSBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZQogCSMgcHVi bGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qgc2V0dGluZy4KIAkkbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgKIAkJJ3Bvc3RncmVzJywgcXEoCi0JCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3Bh cnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSByb290MSkgV0lUSCAocHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3QgPSAkcHVidmlhcm9vdCk7CisJCSRwdWJzcWw7CiAJCUlOU0VSVCBJTlRP IHJvb3QxIFZBTFVFUyAoMSksICgxMDEpOwogCSkpOwogCSRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLApAQCAtMjIzLDYgKzIyNiwxMzEgQEAgJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKAogdGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24oJ2ZhbHNlJyk7CiB0ZXN0X2V4 Y2VwdF9yb290X3BhcnRpdGlvbigndHJ1ZScpOwogCisjIFNhbWUgdmFsaWRhdGlvbiB1c2luZyBU QUJMRVMgSU4gU0NIRU1BIGluc3RlYWQgb2YgRk9SIEFMTCBUQUJMRVMuCitteSAkc2NoZW1hX3B1 YiA9CisgICJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1YmxpYyBFWENFUFQgKFRBQkxFIHB1YmxpYy5yb290MSkiOwordGVzdF9leGNlcHRfcm9v dF9wYXJ0aXRpb24oJ2ZhbHNlJywgJHNjaGVtYV9wdWIpOwordGVzdF9leGNlcHRfcm9vdF9wYXJ0 aXRpb24oJ3RydWUnLCAkc2NoZW1hX3B1Yik7CisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKyMgRVhDRVBUIHRlc3QgY2FzZXMgZm9yIFRBQkxFUyBJTiBT Q0hFTUEKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor IyBDcmVhdGUgYSBkZWRpY2F0ZWQgc2NoZW1hIHdpdGggdHdvIHRhYmxlczogb25lIHRvIGJlIHB1 Ymxpc2hlZCBhbmQgb25lIHRvIGJlCisjIGV4Y2x1ZGVkLiAgQWxzbyBjcmVhdGUgaW5oZXJpdGVk IHRhYmxlcyB0byB2ZXJpZnkgT05MWSBzZW1hbnRpY3MuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRB QkxFIHNjaDEudGFiX3B1Ymxpc2hlZCBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsNSkgQVMg YTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWJfZXhjbHVkZWQgQVMgU0VMRUNUIGdlbmVyYXRlX3Nl cmllcygxLDUpIEFTIGE7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFyZW50IChhIGludCk7CisJQ1JF QVRFIFRBQkxFIHNjaDEuY2hpbGQgKGIgaW50KSBJTkhFUklUUyAoc2NoMS5wYXJlbnQpOworKSk7 CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVB VEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiX3B1Ymxpc2hlZCAoYSBpbnQp OworCUNSRUFURSBUQUJMRSBzY2gxLnRhYl9leGNsdWRlZCAoYSBpbnQpOworCUNSRUFURSBUQUJM RSBzY2gxLnBhcmVudCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLmNoaWxkIChiIGludCkg SU5IRVJJVFMgKHNjaDEucGFyZW50KTsKKykpOworCisjIEJhc2ljIHRlc3Q6IGluaXRpYWwgc3lu YyByZXNwZWN0cyBFWENFUFQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgUFVCTElDQVRJT04gc2NoX3B1YiBGT1IgVEFCTEVTIElOIFNDSEVNQSBzY2gx IEVYQ0VQVCAoVEFCTEUgc2NoMS50YWJfZXhjbHVkZWQpIgorKTsKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHNjaF9zdWIgQ09O TkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBzY2hfcHViIgorKTsKKyRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hl ciwgJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9wdWJsaXNoZWQi KTsKK2lzKCRyZXN1bHQsIHFxKDUpLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogaW5pdGlh bCBzeW5jIGNvcGllcyBpbmNsdWRlZCB0YWJsZScpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gx LnRhYl9leGNsdWRlZCIpOworaXMoJHJlc3VsdCwgcXEoMCksCisJJ1RBQkxFUyBJTiBTQ0hFTUEg RVhDRVBUOiBpbml0aWFsIHN5bmMgc2tpcHMgZXhjbHVkZWQgdGFibGUnKTsKKworIyBETUw6IG9u bHkgdGhlIGluY2x1ZGVkIHRhYmxlIHNob3VsZCBiZSByZXBsaWNhdGVkLgorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJf cHVibGlzaGVkIFZBTFVFUyAoNik7CisJSU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFM VUVTICg2KTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3Vi Jyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIik7CitpcygkcmVz dWx0LCBxcSg2KSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IERNTCBvbiBpbmNsdWRlZCB0 YWJsZSBpcyByZXBsaWNhdGVkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1 ZGVkIik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IERN TCBvbiBleGNsdWRlZCB0YWJsZSBpcyBub3QgcmVwbGljYXRlZCcpOworCiskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9O IHNjaF9wdWInKTsKKworIyBJbmhlcml0ZWQgdGFibGVzOiBleGNsdWRpbmcgdGhlIHBhcmVudCAo d2l0aG91dCBPTkxZKSBhbHNvIGV4Y2x1ZGVzIHRoZSBjaGlsZC4KKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZPUiBU QUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhDRVBUIChUQUJMRSBzY2gxLnBhcmVudCkiCispOworJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJ T04gc2NoX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHNj aF9wdWIiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMo JG5vZGVfcHVibGlzaGVyLCAnc2NoX3N1YicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLmNoaWxkIFZBTFVFUyAoZ2VuZXJhdGVf c2VyaWVzKDEsNSksIGdlbmVyYXRlX3NlcmllcygxLDUpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXIt PndhaXRfZm9yX2NhdGNodXAoJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS5j aGlsZCIpOworaXMoJHJlc3VsdCwgcXEoMCksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBl eGNsdWRpbmcgcGFyZW50ICh3aXRob3V0IE9OTFkpIGFsc28gZXhjbHVkZXMgY2hpbGQnCispOwor Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBU SU9OIHNjaF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdE Uk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsKKworIyBUZXN0IHRoYXQgRVhDRVBUIChUQUJMRSBP TkxZIHBhcmVudCkgZXhjbHVkZXMgb25seSB0aGUgcGFyZW50IGl0c2VsZiwgbm90IGl0cworIyBj aGlsZC4gIFRydW5jYXRlIGNoaWxkIGZpcnN0IHNvIHJvd3MgZnJvbSB0aGUgcHJldmlvdXMgdGVz dCBhcmUgbm90IGNvcGllZCBieQorIyB0aGUgaW5pdGlhbCB0YWJsZSBzeW5jIG9mIHRoZSBuZXh0 IHN1YnNjcmlwdGlvbi4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdU UlVOQ0FURSBzY2gxLmNoaWxkJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ1RSVU5DQVRFIHNjaDEuY2hpbGQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiBzY2hfcHViIEZPUiBUQUJMRVMgSU4g U0NIRU1BIHNjaDEgRVhDRVBUIChUQUJMRSBPTkxZIHNjaDEucGFyZW50KSIKKyk7Ciskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBz Y2hfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1 YiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9k ZV9wdWJsaXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEuY2hpbGQgVkFMVUVTIChnZW5lcmF0ZV9zZXJp ZXMoMSw1KSwgZ2VuZXJhdGVfc2VyaWVzKDEsNSkpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnc2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLmNoaWxk Iik7CitpcygkcmVzdWx0LCBxcSg1KSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IE9OTFkg cGFyZW50IGluIEVYQ0VQVCBkb2VzIG5vdCBleGNsdWRlIGNoaWxkJyk7CisKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gc2NoX3N1Yicp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgUFVCTElDQVRJ T04gc2NoX3B1YicpOworCisjIENsZWFudXAgc2NoZW1hIHRhYmxlcyBiZWZvcmUgdGhlIG11bHRp LXB1YmxpY2F0aW9uIHNlY3Rpb24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnRFJPUCBTQ0hFTUEgc2NoMSBDQVNDQURFJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU0NIRU1BIHNjaDEgQ0FTQ0FERScpOworCiAjID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIFRlc3Qgd2hlbiBhIHN1 YnNjcmlwdGlvbiBpcyBzdWJzY3JpYmluZyB0byBtdWx0aXBsZSBwdWJsaWNhdGlvbnMKICMgPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI1NCw2ICszODIs NyBAQCAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAlEUk9QIFBVQkxJQ0FUSU9OIHRhcF9w dWIyOwogCVRSVU5DQVRFIHRhYjE7CiApKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1YicpOwogJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKFRSVU5DQVRFIHRhYjEpKTsKIAogIyBPSyB3aGVu IGEgdGFibGUgaXMgZXhjbHVkZWQgYnkgcHViMSBFWENFUFQgY2xhdXNlLCBidXQgaXQgaXMgaW5j bHVkZWQgYnkgcHViMgotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000132d7d065481639c Content-Type: application/octet-stream; name="v15-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Disposition: attachment; filename="v15-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqj4i31y1 RnJvbSBmMzRlNjJhYmZmNGUzNzhiMDBhYTJiODU5MThhOTQ4NzA1MmNlMDc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUaHUsIDE4IEp1biAyMDI2IDExOjMwOjE0ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTUgMi80XSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gQUREIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgdGhlIEVYQ0VQVCBjbGF1c2Ugc3VwcG9ydCB0byBhbGxvdyB0 YWJsZXMgdG8gYmUgZXhjbHVkZWQgd2hlbgphZGRpbmcgYSBzY2hlbWEgdG8gYSBwdWJsaWNhdGlv biB2aWEgQUxURVIgUFVCTElDQVRJT04gLi4uIEFERC4KClN5bnRheDoKICBBTFRFUiBQVUJMSUNB VElPTiBwdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHMudDEpOwoKU2lu Y2UgcGdfZHVtcCB1c2VzIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQsIHN1cHBvcnQgZm9yIGl0 IGlzCmluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jICAgICAgfCAgMTkgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgfCAgMzAgKysrKystCiBzcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICB8ICAyNCArKysrKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgfCAgMTcgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgfCAgMzIgKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsICAgICAgfCAgMjAgKysrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM3X2V4Y2VwdC5wbCAgICAgfCAgMzIgKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAyNjcg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5jCmluZGV4IDQwODliNTA1Zjg5Li5kMWZmODgzOTAzNyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcHVibGljYXRpb24uYwpAQCAtNjQ5LDE1ICs2NDksMTggQEAgcHVibGljYXRpb25fYWRkX3Jl bGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJICogaGVyZSwgYXMg Q3JlYXRlUHVibGljYXRpb24oKSBmdW5jdGlvbiBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIGFz IHBhcnQKIAkgKiBvZiBkZWZpbmluZyBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLgogCSAq Ci0JICogRm9yIEFMVEVSIFBVQkxJQ0FUSU9OLCBpbnZhbGlkYXRpb24gaXMgbmVlZGVkIG9ubHkg d2hlbiBhZGRpbmcgYW4KLQkgKiBFWENFUFQgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhbHJlYWR5 IG1hcmtlZCBhcyBBTEwgVEFCTEVTLiBGb3IKLQkgKiBwdWJsaWNhdGlvbnMgdGhhdCB3ZXJlIG9y aWdpbmFsbHkgZW1wdHkgb3IgZGVmaW5lZCBhcyBBTEwgU0VRVUVOQ0VTIGFuZAotCSAqIGFyZSBi ZWluZyBjb252ZXJ0ZWQgdG8gQUxMIFRBQkxFUywgaW52YWxpZGF0aW9uIGlzIHNraXBwZWQgaGVy ZSwgYXMKLQkgKiBBbHRlclB1YmxpY2F0aW9uQWxsRmxhZ3MoKSBmdW5jdGlvbiBpbnZhbGlkYXRl cyBhbGwgcmVsYXRpb25zIHdoaWxlCi0JICogbWFya2luZyB0aGUgcHVibGljYXRpb24gYXMgQUxM IFRBQkxFUyBwdWJsaWNhdGlvbi4KKwkgKiBGb3IgQUxURVIgUFVCTElDQVRJT04sIGludmFsaWRh dGlvbiBpcyBuZWVkZWQgd2hlbiBhZGRpbmcgYW4gRVhDRVBUCisJICogdGFibGUgdG8gZWl0aGVy IGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24gKHB1Yi0+YWxsdGFibGVzIGlzIHRydWUpCisJ ICogb3IgYSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiAoaXNfc2NoZW1hX3B1Ymxp Y2F0aW9uIGlzIHRydWUpLgorCSAqIFRoZSBleGNlcHRpb246IHdoZW4gYSBwdWJsaWNhdGlvbiBp cyBiZWluZyBjb252ZXJ0ZWQgdG8gRk9SIEFMTCBUQUJMRVMKKwkgKiAocHViLT5hbGx0YWJsZXMg aXMgc3RpbGwgZmFsc2UgYXQgdGhpcyBwb2ludCksCisJICogQWx0ZXJQdWJsaWNhdGlvbkFsbEZs YWdzKCkgd2lsbCBwZXJmb3JtIGEgZnVsbCBpbnZhbGlkYXRpb24sIHNvIHdlIHNraXAKKwkgKiBp dCBoZXJlLgogCSAqLwotCWludmFsX2V4Y2VwdF90YWJsZSA9IChhbHRlcl9zdG10ICE9IE5VTEwp ICYmIHB1Yi0+YWxsdGFibGVzICYmCi0JCShhbHRlcl9zdG10LT5mb3JfYWxsX3RhYmxlcyAmJiBw cmktPmV4Y2VwdCk7CisJaW52YWxfZXhjZXB0X3RhYmxlID0gKGFsdGVyX3N0bXQgIT0gTlVMTCkg JiYgcHJpLT5leGNlcHQgJiYKKwkJKHB1Yi0+YWxsdGFibGVzCisJCSA/IGFsdGVyX3N0bXQtPmZv cl9hbGxfdGFibGVzCisJCSA6IGlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpOwogCiAJaWYg KCFwcmktPmV4Y2VwdCB8fCBpbnZhbF9leGNlcHRfdGFibGUpCiAJewpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCAyNjlmNzdlZWI5OS4uYzNlY2RhMmFjOTEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC03MCw2ICs3MCwxMyBAQCBzdGF0 aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BUYWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29s IG1pc3Npbmdfb2spOwogc3RhdGljIHZvaWQgUHVibGljYXRpb25BZGRTY2hlbWFzKE9pZCBwdWJp ZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkgIEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMo T2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIG1pc3Npbmdfb2spOworc3RhdGljIHZvaWQg QWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJ CQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0ICpzY2hlbWFpZGxpc3QsCisJCQkJCQkJCQlMaXN0ICpl eGNlcHRfcHVidGFibGVzKTsKK3N0YXRpYyB2b2lkIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNl cHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCQkJCQkJCSAgIEhlYXBU dXBsZSB0dXAsCisJCQkJCQkJCQkJCSAgIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJ CQkJCSAgIExpc3QgKnNjaGVtYWlkbGlzdCk7CiBzdGF0aWMgY2hhciBkZWZHZXRHZW5lcmF0ZWRD b2xzT3B0aW9uKERlZkVsZW0gKmRlZik7CiAKIApAQCAtMTUwMCw3ICsxNTA3LDggQEAgQWx0ZXJQ dWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1 cCwKICAqLwogc3RhdGljIHZvaWQKIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAotCQkJCQkJSGVhcFR1cGxlIHR1cCwgTGlzdCAqc2NoZW1haWRsaXN0 KQorCQkJCQkJSGVhcFR1cGxlIHR1cCwgTGlzdCAqc2NoZW1haWRsaXN0LAorCQkJCQkJTGlzdCAq ZXhjZXB0X3B1YnRhYmxlcykKIHsKIAlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9y bV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CiAKQEAgLTE1NzcsNiArMTU4NSw5NyBA QCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJ ICovCiAJCVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJmb3JtLT5vaWQsIHNjaGVtYWlkbGlzdCwg dHJ1ZSwgc3RtdCk7CiAJfQorCisJLyoKKwkgKiBJbmNyZW1lbnQgdGhlIGNvbW1hbmQgY291bnRl ciBzbyB0aGF0IGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIGluCisJICogR2V0RXhjbHVkZWRQdWJs aWNhdGlvblRhYmxlcygpIGNhbiBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgc2NoZW1hCisJICogcm93 cyB3aGVuIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0LgorCSAq LworCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rpb24gPT0g QVBfU2V0T2JqZWN0cykKKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCUFsdGVyUHVi bGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoc3RtdCwgdHVwLCBleGNlcHRfcHVidGFibGVzLCBz Y2hlbWFpZGxpc3QpOworfQorCisvKgorICogQWx0ZXIgdGhlIEVYQ0VQVCBsaXN0IG9mIGEgc2No ZW1hLWxldmVsIHB1YmxpY2F0aW9uLgorICoKKyAqIEFkZHMsIHJlbW92ZXMsIG9yIHJlcGxhY2Vz IGV4Y2VwdC10YWJsZSBlbnRyaWVzIGluIHBnX3B1YmxpY2F0aW9uX3JlbAorICogKHJvd3Mgd2l0 aCBwcmV4Y2VwdCA9IHRydWUpLiAgVGhlc2UgZW50cmllcyBzdXBwcmVzcyBwdWJsaWNhdGlvbiBv ZiB0aGUKKyAqIG5hbWVkIHRhYmxlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBjb3ZlcmVkIGJ5 IGEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEKKyAqIGNsYXVzZS4KKyAqLworc3RhdGljIHZvaWQKK0Fs dGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0 bXQsCisJCQkJCQkJIEhlYXBUdXBsZSB0dXAsIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJ CQkJIExpc3QgKnNjaGVtYWlkbGlzdCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0g PSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBw dWJmb3JtLT5vaWQ7CisKKwkvKgorCSAqIE5vdGhpbmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVudHJp ZXMuCisJICovCisJaWYgKCFleGNlcHRfcHVidGFibGVzKQorCQlyZXR1cm47CisKKwkvKgorCSAq IFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBFWENFUFQgZW50cmllcyBmb3Igc2NoZW1hLWxldmVsIHB1 YmxpY2F0aW9ucworCSAqIG9ubHkuICBGb3IgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLCBF WENFUFQgZW50cmllcyBhcmUgYWxyZWFkeQorCSAqIHByb2Nlc3NlZCBieSBBbHRlclB1YmxpY2F0 aW9uVGFibGVzKCkuCisJICovCisJaWYgKHNjaGVtYWlkbGlzdCA9PSBOSUwgJiYgIWlzX3NjaGVt YV9wdWJsaWNhdGlvbihwdWJpZCkpCisJCXJldHVybjsKKworCS8qCisJICogRHJvcHBpbmcgYSBz Y2hlbWEgZnJvbSBhIHB1YmxpY2F0aW9uIHJlbW92ZXMgYWxsIGl0cyBFWENFUFQgZW50cmllcyB2 aWEKKwkgKiBjYXNjYWRlLiBUaGUgY29uY2VwdCBvZiAiZHJvcCBhbGwgc2NoZW1hIHRhYmxlcyBm cm9tIHRoZSBwdWJsaWNhdGlvbgorCSAqIEVYQ0VQVCB0aGVzZSBvbmVzIiBpcyBub3Qgc3VwcG9y dGVkLgorCSAqLworCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfRHJvcE9iamVjdHMpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4g QUxURVIgUFVCTElDQVRJT04iKSkpOworCisJLyoKKwkgKiBYWFggRVhDRVBUIHdpdGggU0VUIGlz IG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQuICBXb3JrYXJvdW5kOiBEUk9QIGFuZAorCSAqIHJl LUFERCB0aGUgc2NoZW1hIHdpdGggdGhlIGRlc2lyZWQgRVhDRVBUIGxpc3QuCisJICovCisJaWYg KHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRPYmplY3RzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJFWENF UFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBTRVQgaW4gQUxURVIgUFVCTElDQVRJT04i KSwKKwkJCQkgZXJyaGludCgiRHJvcCBhbmQgcmUtYWRkIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVz aXJlZCBFWENFUFQgbGlzdC4iKSkpOworCisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmpl Y3RzKQorCXsKKwkJTGlzdAkgICAqcmVsczsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHM7CisK KwkJcmVscyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJZXhwbGljaXRy ZWxpZHMgPSBHZXRJbmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAorCQkJCQkJCQkJ CQkJCQkgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGF0 IGVhY2ggZXhjbHVkZWQgdGFibGUgaXMgbm90IGFsc28gaW4gdGhlIGV4cGxpY2l0IHRhYmxlCisJ CSAqIGxpc3QgKHdoaWNoIHdvdWxkIGJlIGNvbnRyYWRpY3RvcnkpLgorCQkgKi8KKwkJZm9yZWFj aF9wdHIoUHVibGljYXRpb25SZWxJbmZvLCBwcmksIHJlbHMpCisJCXsKKwkJCU9pZAkJCXJlbGlk ID0gUmVsYXRpb25HZXRSZWxpZChwcmktPnJlbGF0aW9uKTsKKworCQkJaWYgKGxpc3RfbWVtYmVy X29pZChleHBsaWNpdHJlbGlkcywgcmVsaWQpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJ0 YWJsZSBcIiVzXCIgY2Fubm90IGFwcGVhciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUg RVhDRVBUIGNsYXVzZSIsCisJCQkJCQkJICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5h bWUocHJpLT5yZWxhdGlvbikpKTsKKwkJfQorCisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ymlk LCByZWxzLCBmYWxzZSwgc3RtdCk7CisKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJfQogfQog CiAvKgpAQCAtMTc4NiwxMCArMTg4NSwxMiBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCWVycm1zZygicHVibGlj YXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsK IAotCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0YWJsZXMp OworCQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNh dChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0YWJsZXMpOworCiAJCUFsdGVyUHVibGljYXRpb25UYWJs ZXMoc3RtdCwgdHVwLCByZWxhdGlvbnMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAg IHNjaGVtYWlkbGlzdCAhPSBOSUwpOwotCQlBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0 dXAsIHNjaGVtYWlkbGlzdCk7CisJCUFsdGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQsIHR1cCwg c2NoZW1haWRsaXN0LCBleGNlcHRfcHVidGFibGVzKTsKIAkJQWx0ZXJQdWJsaWNhdGlvbkFsbEZs YWdzKHN0bXQsIHJlbCwgdHVwKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGEwZjdmOGUyMTY4Li44 NWFiM2IwMDg3NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01MDE5LDYgKzUwMTksNyBAQCBkdW1wUHVibGlj YXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25TY2hlbWFJbmZv ICpwdWJzaW5mbykKIAlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8gPSBwdWJzaW5mby0+cHVibGlj YXRpb247CiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAqdGFnOworCWJvb2wJCWhhc19l eGNlcHQgPSBmYWxzZTsKIAogCS8qIERvIG5vdGhpbmcgaWYgbm90IGR1bXBpbmcgc2NoZW1hICov CiAJaWYgKCFkb3B0LT5kdW1wU2NoZW1hKQpAQCAtNTAyOSw3ICs1MDMwLDM0IEBAIGR1bXBQdWJs aWNhdGlvbk5hbWVzcGFjZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblNjaGVtYUlu Zm8gKnB1YnNpbmZvKQogCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKIAogCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIgUFVCTElDQVRJT04gJXMgIiwgZm10SWQocHViaW5mby0+ ZG9iai5uYW1lKSk7Ci0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJBREQgVEFCTEVTIElOIFND SEVNQSAlcztcbiIsIGZtdElkKHNjaGVtYWluZm8tPmRvYmoubmFtZSkpOworCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiQUREIFRBQkxFUyBJTiBTQ0hFTUEgJXMiLCBmbXRJZChzY2hlbWFpbmZv LT5kb2JqLm5hbWUpKTsKKworCS8qCisJICogQXBwZW5kIEVYQ0VQVCBjbGF1c2UgZm9yIGFueSB0 YWJsZXMgdGhhdCBiZWxvbmcgdG8gdGhpcyBzY2hlbWEKKwkgKiBhbmQgYXJlIGV4Y2x1ZGVkIGZy b20gdGhlIHB1YmxpY2F0aW9uLgorCSAqLworCWZvciAoU2ltcGxlUHRyTGlzdENlbGwgKmNlbGwg PSBwdWJpbmZvLT5leGNlcHRfdGFibGVzLmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQor CXsKKwkJVGFibGVJbmZvICAqdGJpbmZvID0gKFRhYmxlSW5mbyAqKSBjZWxsLT5wdHI7CisKKwkJ aWYgKHN0cmNtcCh0YmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIHNjaGVtYWluZm8t PmRvYmoubmFtZSkgPT0gMCkKKwkJeworCQkJaWYgKCFoYXNfZXhjZXB0KQorCQkJeworCQkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCAoIik7CisJCQkJaGFzX2V4Y2VwdCA9 IHRydWU7CisJCQl9CisJCQllbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIs ICIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIlRBQkxFIE9OTFkgJXMiLCBmbXRJ ZCh0YmluZm8tPmRvYmoubmFtZSkpOworCQl9CisJfQorCisJaWYgKGhhc19leGNlcHQpCisJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiKSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIo cXVlcnksICI7XG4iKTsKIAogCS8qCiAJICogVGhlcmUgaXMgbm8gcG9pbnQgaW4gY3JlYXRpbmcg ZHJvcCBxdWVyeSBhcyB0aGUgZHJvcCBpcyBkb25lIGJ5IHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbAppbmRleCA5MjU4OTQ4YjU4My4uZDE4YjNiMGQ3YjkgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCkBAIC0zMjgzLDYgKzMyODMsMzAgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+ IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFU RSBQVUJMSUNBVElPTiBwdWIxMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0 ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjExIEZPUiBUQUJMRVMgSU4gU0NI RU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBx ci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWIxMSBXSVRIIChwdWJsaXNoID0gJ2luc2Vy dCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS4qPworCQkJXFFBTFRFUiBQVUJM SUNBVElPTiBwdWIxMSBBREQgVEFCTEVTIElOIFNDSEVNQSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJM RSBPTkxZIHRlc3RfdGFibGUpO1xFCisJCQkveG1zLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NSRUFURSBQVUJMSUNBVElPTiBw dWIxMicgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAn Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBF WENFUFQgKFRBQkxFIHRlc3RfdGFibGUsIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSk7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIFdJVEggKHB1 Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJLio/CisJ CQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEyIEFERCBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVz dCBFWENFUFQgKFRBQkxFIE9OTFkgdGVzdF90YWJsZSwgVEFCTEUgT05MWSB0ZXN0X3NlY29uZF90 YWJsZSk7XEUKKwkJCS94bXMsCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3Rf ZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJ CWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElP TiBzdWIxCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNTNiYjdjODY3OWIuLmEyOTA5MDJkNjFl IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzczLDYgKzIzNzMsMjMgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhR dWVyeV9mb3JfbGlzdF9vZl9zY2hlbWFzCiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtF IEUncGdcXFxcXyUlJyIsCiAJCQkJCQkJCSAiQ1VSUkVOVF9TQ0hFTUEiKTsKKwkvKiBBZnRlciBh IHNpbmdsZSBzY2hlbWEgbmFtZSBpbiBBREQgY29udGV4dCwgb2ZmZXIgRVhDRVBUICggVEFCTEUg Ki8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi QUREIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSkgJiYKKwkJCSAhZW5kc193 aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCAoIFRBQkxFIik7CisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiKSkKKwkJQ09NUExF VEVfV0lUSCgiKCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55 LCAiRVhDRVBUIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIs ICJJTiIsICJTQ0hFTUEiLCAiQ1VSUkVOVF9TQ0hFTUEiLCAiRVhDRVBUIiwgIigiLCAiVEFCTEUi KSkKKwkJQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJs ZXNfaW5fY3VycmVudF9zY2hlbWEpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNo QW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwl7CisJCXNldF9jb21wbGV0aW9uX3JlZmVy ZW5jZShwcmV2NF93ZCk7CisJCUNPTVBMRVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9y X2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVtYSk7CisJfQorCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVN QSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiLCBNYXRjaEFueU4pICYmICFlbmRz X3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiKSIpOwogCS8qIEFMVEVSIFBV QkxJQ0FUSU9OIDxuYW1lPiBTRVQgKCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksIE1hdGNoQW55TiwgIlNFVCIsICIoIikpCiAJCUNPTVBMRVRF X1dJVEgoInB1Ymxpc2giLCAicHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyIsICJwdWJsaXNoX3Zp YV9wYXJ0aXRpb25fcm9vdCIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dAppbmRleCA2ZWZlZDBhMGNjZS4uYzQwYTg4ODRhOGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC01OTEsMTIgKzU5MSw0MiBAQCBDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHRfbm9rdwogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3Ig bmVhciAidGVzdHB1Yl9ub3BrIgogTElORSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCB0ZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04KKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0OworLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxl IGluIEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9u ZXhpc3RlbnRfdGFibGUpOworRVJST1I6ICByZWxhdGlvbiAicHViX3Rlc3Qubm9uZXhpc3RlbnRf dGFibGUiIGRvZXMgbm90IGV4aXN0CistLSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBh IGRpZmZlcmVudCBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3Rw dWJfdGJsMSk7CitFUlJPUjogIHRhYmxlICJwdWJsaWMudGVzdHB1Yl90YmwxIiBpbiBFWENFUFQg Y2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEgInB1Yl90ZXN0IgorTElORSAxOiAuLi54 Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50 ZXMuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCistLSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUg Zmlyc3QgZW50cnkgaW4gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHVi X25vcGspOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9ub3BrIgor TElORSAxOiAuLi5sdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKHRlc3RwdWJfbm8uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZp 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 b24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDJlNzll OWU0MTEyLi5jZDVlZDA2ZGNhZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApA QCAtMjkwLDEyICsyOTAsMzAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3Bh cnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X25va3cKICAgICBGT1Ig VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3Rz IGZvciBBTFRFUiBQVUJMSUNBVElPTgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CisK Ky0tIGZhaWw6IG5vbi1leGlzdGluZyB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDog RVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgc2NoZW1hCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHViX3RibDEpOworCistLSBmYWlsOiBUQUJMRSBrZXl3 b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUgZmlyc3QgZW50cnkgaW4gRVhDRVBUIGNsYXVzZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGspOworCistLSBBREQ6IHF1YWxpZmllZCBhbmQg dW5xdWFsaWZpZWQgbmFtZXM7IHVucXVhbGlmaWVkIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdp dGggdGhlIHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQURE IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMSwgdGVzdHB1Yl90YmxfczIpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwog LS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwogRFJPUCBUQUJMRSBw dWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIENBU0NBREU7CiBEUk9QIFRBQkxFIHRlc3RwdWJfbm9w aywgdGVzdHB1Yl90YmxfczE7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFf ZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpLCB0ZXN0cHViX2FsdGVyX2V4Y2Vw dDsKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBU ZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM3X2V4Y2VwdC5wbAppbmRleCAxOGM3YjJjMWZjYS4uMGJhNmQ2ZjhiYjIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbApAQCAtMzQ3LDYgKzM0NywzOCBAQCBpcygkcmVzdWx0 LCBxcSg1KSwKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBT VUJTQ1JJUFRJT04gc2NoX3N1YicpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2NoX3B1YicpOwogCisjID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEFMVEVSIFBVQkxJQ0FUSU9OIEVYQ0VQVCBm b3IgVEFCTEVTIElOIFNDSEVNQQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorCisjIFRydW5jYXRlIHN1YnNjcmliZXIgdGFibGVzIHRvIHJlbW92ZSBkYXRh IGFjY3VtdWxhdGVkIGZyb20gcHJldmlvdXMgdGVzdHMuCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwknVFJVTkNBVEUgc2NoMS50YWJfcHVibGlzaGVkLCBzY2gxLnRh Yl9leGNsdWRlZCwgc2NoMS5wYXJlbnQsIHNjaDEuY2hpbGQnKTsKKworIyBBREQ6IGFkZCBhIHNj aGVtYSB3aXRoIGFuIGV4Y2VwdGVkIHRhYmxlOyB2ZXJpZnkgdGhlIGV4Y2VwdCBlbnRyeSB0YWtl cyBlZmZlY3QuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRF IFBVQkxJQ0FUSU9OIHNjaF9wdWIiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHNjaF9wdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEg c2NoMSBFWENFUFQgKFRBQkxFIHNjaDEudGFiX2V4Y2x1ZGVkKSIKKyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3Vi IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7 Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJs aXNoZXIsICdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlz aGVkIik7CitpcygkcmVzdWx0LCBxcSg2KSwKKwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NI RU1BIEVYQ0VQVDogaW5jbHVkZWQgdGFibGUgc3luY2VkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9N IHNjaDEudGFiX2V4Y2x1ZGVkIik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknQUxURVIgLi4uIEFE RCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogZXhjbHVkZWQgdGFibGUgbm90IHN5bmNlZCcpOwor Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBU SU9OIHNjaF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdE Uk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsKKwogIyBDbGVhbnVwIHNjaGVtYSB0YWJsZXMgYmVm b3JlIHRoZSBtdWx0aS1wdWJsaWNhdGlvbiBzZWN0aW9uLgogJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU0NIRU1BIHNjaDEgQ0FTQ0FERScpOwogJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUn KTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000132d7d065481639c Content-Type: application/octet-stream; name="v15-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Disposition: attachment; filename="v15-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqj4i59o2 RnJvbSBhODM2MTQxODMxOGFjYjVlOWJmNjM5ZDRmZmM5YmY4ODlmZGJlMDZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUaHUsIDE4IEp1biAyMDI2IDExOjMyOjMyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTUgMy80XSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gU0VUIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgQWx0ZXJQdWJsaWNhdGlvbkV4Y2VwdFRhYmxlcygpIHdpdGgg dGhlIEFQX1NldE9iamVjdHMgY2FzZSwKd2hpY2ggcmVkZWZpbmVzIHRoZSBwdWJsaWNhdGlvbiBh bmQgcmVwbGFjZXMgdGhlIGVudGlyZSBFWENFUFQgbGlzdC4KClN5bnRheDoKQUxURVIgUFVCTElD QVRJT04gcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHMgRVhDRVBUIChUQUJMRSB0MSk7CgpUaGlz IHBhdGNoIGFsc28gY2xlYW5zIHVwIEVYQ0VQVCBlbnRyaWVzIHdoZW4gYSBzY2hlbWEgaXMgZHJv cHBlZApmcm9tIHRoZSBwdWJsaWNhdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYyAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrLS0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIHwgIDEwICstCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgIHwgIDE3ICsrKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICB8ICA4NiArKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgIHwgIDM4ICsrKysrKwogc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCAgICAgICB8ICA4NSArKysrKysrKysrKysK IDYgZmlsZXMgY2hhbmdlZCwgMzUwIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggYzNlY2RhMmFjOTEuLmE2M2E4 NGIyYzI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTU4OCw4 ICsxNTg4LDggQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsCiAKIAkvKgogCSAqIEluY3JlbWVudCB0aGUgY29tbWFuZCBjb3VudGVyIHNvIHRoYXQg aXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgaW4KLQkgKiBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFi bGVzKCkgY2FuIHNlZSB0aGUganVzdC1pbnNlcnRlZCBzY2hlbWEKLQkgKiByb3dzIHdoZW4gQWx0 ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyBydW5zIG5leHQuCisJICogR2V0RXhjbHVk ZWRQdWJsaWNhdGlvblRhYmxlcygpIGNhbiBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgc2NoZW1hIHJv d3MKKwkgKiB3aGVuIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0 LgogCSAqLwogCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rp b24gPT0gQVBfU2V0T2JqZWN0cykKIAkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKQEAgLTE2 MDcsMTYgKzE2MDcsMTggQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsCiAgKi8KIHN0YXRpYyB2b2lkCiBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhj ZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAotCQkJCQkJCSBIZWFwVHVwbGUg dHVwLCBMaXN0ICpleGNlcHRfcHVidGFibGVzLAotCQkJCQkJCSBMaXN0ICpzY2hlbWFpZGxpc3Qp CisJCQkJCQkJCSAgIEhlYXBUdXBsZSB0dXAsIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJ CQkJCSAgIExpc3QgKnNjaGVtYWlkbGlzdCkKIHsKIAlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZv cm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CiAJT2lkCQkJcHViaWQg PSBwdWJmb3JtLT5vaWQ7CiAKIAkvKgotCSAqIE5vdGhpbmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVu dHJpZXMuCisJICogTm90aGluZyB0byBkbyBpZiB0aGVyZSBhcmUgbm8gRVhDRVBUIGVudHJpZXMs IHVubGVzcyBoYW5kbGluZyB0aGUgU0VUCisJICogY29tbWFuZCwgYmVjYXVzZSBpZiB0aGUgdXNl ciBoYXMgcmVtb3ZlZCBhbGwgZXhjZXB0aW9ucyB3ZSBuZWVkIHRvIGRyb3AKKwkgKiBhbnkgZXhp c3Rpbmcgb25lcy4KIAkgKi8KLQlpZiAoIWV4Y2VwdF9wdWJ0YWJsZXMpCisJaWYgKCFleGNlcHRf cHVidGFibGVzICYmIHN0bXQtPmFjdGlvbiAhPSBBUF9TZXRPYmplY3RzKQogCQlyZXR1cm47CiAK IAkvKgpAQCAtMTYzNywxNiArMTYzOSw2IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRU YWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1c2UgaXMgbm90 IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVCTElDQVRJT04iKSkpOwogCi0JLyoKLQkg KiBYWFggRVhDRVBUIHdpdGggU0VUIGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQuICBXb3Jr YXJvdW5kOiBEUk9QIGFuZAotCSAqIHJlLUFERCB0aGUgc2NoZW1hIHdpdGggdGhlIGRlc2lyZWQg RVhDRVBUIGxpc3QuCi0JICovCi0JaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRPYmplY3RzKQot CQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKLQkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBT RVQgaW4gQUxURVIgUFVCTElDQVRJT04iKSwKLQkJCQkgZXJyaGludCgiRHJvcCBhbmQgcmUtYWRk IHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENFUFQgbGlzdC4iKSkpOwotCiAJaWYgKHN0 bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQogCXsKIAkJTGlzdAkgICAqcmVsczsKQEAgLTE2 NzQsNiArMTY2Niw4NCBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVzKEFsdGVy UHVibGljYXRpb25TdG10ICpzdG10LAogCiAJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1YmlkLCBy ZWxzLCBmYWxzZSwgc3RtdCk7CiAKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJfQorCWVsc2UJ CQkJCQkvKiBBUF9TZXRPYmplY3RzICovCisJeworCQlMaXN0CSAgICpvbGRleGNlcHRyZWxpZHMg PSBOSUw7CisJCUxpc3QJICAgKm5ld2V4Y2VwdHJlbGlkcyA9IE5JTDsKKwkJTGlzdAkgICAqZGVs cmVsaWRzID0gTklMOworCQlMaXN0CSAgICpyZWxzOworCQlMaXN0CSAgICpleHBsaWNpdHJlbGlk czsKKworCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRfcHVidGFibGVzKTsKKworCQkvKiBD b2xsZWN0IE9JRHMgb2YgdGhlIGRlc2lyZWQgbmV3IEVYQ0VQVCBsaXN0LiAqLworCQlmb3JlYWNo X3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVscykKKwkJCW5ld2V4Y2VwdHJlbGlkcyA9 IGxhcHBlbmRfb2lkKG5ld2V4Y2VwdHJlbGlkcywKKwkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVs aWQocHJpLT5yZWxhdGlvbikpOworCisJCWV4cGxpY2l0cmVsaWRzID0gR2V0SW5jbHVkZWRQdWJs aWNhdGlvblJlbGF0aW9ucyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCk7CisKKwkJLyoKKwkJICogVmFsaWRhdGUgdGhhdCBlYWNoIGV4Y2x1ZGVkIHRhYmxlIGlz IG5vdCBhbHNvIGluIHRoZSBleHBsaWNpdCB0YWJsZQorCQkgKiBsaXN0ICh3aGljaCB3b3VsZCBi ZSBjb250cmFkaWN0b3J5KS4KKwkJICovCisJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5m bywgcHJpLCByZWxzKQorCQl7CisJCQlPaWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJp LT5yZWxhdGlvbik7CisKKwkJCWlmIChsaXN0X21lbWJlcl9vaWQoZXhwbGljaXRyZWxpZHMsIHJl bGlkKSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1zZygidGFibGUgXCIlc1wiIGNhbm5vdCBhcHBl YXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJ CSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKHByaS0+cmVsYXRpb24pKSk7CisJ CX0KKworCQkvKgorCQkgKiBHZXQgdGhlIGN1cnJlbnQgc2V0IG9mIEVYQ0VQVCBlbnRyaWVzLiAg T25seSBGT1IgQUxMIFRBQkxFUyBhbmQKKwkJICogc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9ucyBj YW4gaGF2ZSBFWENFUFQgZW50cmllczsgZm9yIGFueSBvdGhlcgorCQkgKiBwdWJsaWNhdGlvbiB0 eXBlIG9sZGV4Y2VwdHJlbGlkcyBzdGF5cyBOSUwuCisJCSAqCisJCSAqIE5vdGU6IHdlIGNoZWNr IGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIGFnYWluc3QgdGhlIGN1cnJlbnQgY2F0YWxvZworCQkg KiBzdGF0ZSAoYmVmb3JlIEFsdGVyUHVibGljYXRpb25TY2hlbWFzIGhhcyBydW4pLCBzbyBpZiB0 aGUgY2FsbGVyIGlzCisJCSAqIGRvaW5nIFNFVCBUQUJMRSB0MSB0byBjb252ZXJ0IGEgc2NoZW1h IHB1YmxpY2F0aW9uIGludG8gYSBwbGFpbgorCQkgKiB0YWJsZSBwdWJsaWNhdGlvbiwgaXNfc2No ZW1hX3B1YmxpY2F0aW9uKCkgc3RpbGwgcmV0dXJucyB0cnVlIGhlcmUuCisJCSAqIFRoYXQgaXMg aW50ZW50aW9uYWw6IGl0IGxldHMgdXMgZGlzY292ZXIgYW5kIGNsZWFuIHVwIGFueSBzdGFsZQor CQkgKiBFWENFUFQgZW50cmllcyB0aGF0IGJlbG9uZyB0byB0aGUgb2xkIHNjaGVtYSBkZWZpbml0 aW9uLgorCQkgKi8KKwkJaWYgKEdldFB1YmxpY2F0aW9uKHB1YmlkKS0+YWxsdGFibGVzIHx8IGlz X3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJCQlvbGRleGNlcHRyZWxpZHMgPSBHZXRFeGNs dWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLAorCQkJCQkJCQkJCQkJCQkgICBQVUJMSUNBVElP Tl9QQVJUX1JPT1QpOworCisJCS8qIEJ1aWxkIGEgbGlzdCBvZiBvbGQgRVhDRVBUIGVudHJpZXMg bm90IHByZXNlbnQgaW4gdGhlIG5ldyBsaXN0LiAqLworCQlmb3JlYWNoX29pZChvbGRyZWxpZCwg b2xkZXhjZXB0cmVsaWRzKQorCQl7CisJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChuZXdleGNlcHRy ZWxpZHMsIG9sZHJlbGlkKSkKKwkJCQlkZWxyZWxpZHMgPSBsYXBwZW5kX29pZChkZWxyZWxpZHMs IG9sZHJlbGlkKTsKKwkJfQorCisJCS8qIERyb3Agb2xkIEVYQ0VQVCBlbnRyaWVzIG5vdCBwcmVz ZW50IGluIHRoZSBuZXcgbGlzdC4gKi8KKwkJZm9yZWFjaF9vaWQocmVsaWQsIGRlbHJlbGlkcykK KwkJeworCQkJT2lkCQkJcHJvaWQ7CisJCQlPYmplY3RBZGRyZXNzIG9iajsKKworCQkJcHJvaWQg PSBHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05SRUxNQVAsCisJCQkJCQkJCQlBbnVtX3BnX3B1 YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKSwKKwkJ CQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHByb2lk KSkKKwkJCXsKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHVibGljYXRpb25SZWxSZWxhdGlv bklkLCBwcm9pZCk7CisJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmosIERST1BfQ0FTQ0FERSwgMCk7 CisJCQl9CisJCX0KKworCQkvKiBBZGQgbmV3IEVYQ0VQVCBlbnRyaWVzLCBza2lwcGluZyBhbnkg YWxyZWFkeSBwcmVzZW50LiAqLworCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJpZCwgcmVscywg dHJ1ZSwgc3RtdCk7CisKIAkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiAJfQogfQpAQCAtMjM3Miw2 ICsyNDQyLDcgQEAgUHVibGljYXRpb25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVt YXMsIGJvb2wgbWlzc2luZ19vaykKIAlmb3JlYWNoKGxjLCBzY2hlbWFzKQogCXsKIAkJT2lkCQkJ c2NoZW1haWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJTGlzdAkgICAqZXhjZXB0X3JlbGlkczsKIAog CQlwc2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OTkFNRVNQQUNFTUFQLAogCQkJCQkJ CSAgIEFudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNlX29pZCwKQEAgLTIzODgsOCArMjQ1OSw0 MCBAQCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgYm9v bCBtaXNzaW5nX29rKQogCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShzY2hlbWFpZCkpKSk7CiAJ CX0KIAorCQkvKgorCQkgKiBDb2xsZWN0IEVYQ0VQVCBlbnRyaWVzIGZvciB0YWJsZXMgYmVsb25n aW5nIHRvIHRoaXMgc2NoZW1hIGJlZm9yZQorCQkgKiByZW1vdmluZyB0aGUgc2NoZW1hIGVudHJ5 LgorCQkgKi8KKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMo cHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKIAkJT2JqZWN0QWRkcmVzc1NldChvYmos IFB1YmxpY2F0aW9uTmFtZXNwYWNlUmVsYXRpb25JZCwgcHNpZCk7CiAJCXBlcmZvcm1EZWxldGlv bigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCisJCS8qCisJCSAqIERyb3AgYW55IHByZXhjZXB0 IHJvd3MgZm9yIHRhYmxlcyBiZWxvbmdpbmcgdG8gdGhpcyBzY2hlbWEuIFRoZXNlCisJCSAqIHJv d3MgaGF2ZSBubyBwZ19kZXBlbmQgZW50cnkgcG9pbnRpbmcgYXQgdGhlCisJCSAqIHBnX3B1Ymxp Y2F0aW9uX25hbWVzcGFjZSByb3csIHNvIHRoZXkgYXJlIG5vdCBjYXNjYWRlZCBieSB0aGUKKwkJ ICogcGVyZm9ybURlbGV0aW9uKCkgY2FsbCBhYm92ZSBhbmQgbXVzdCBiZSBjbGVhbmVkIHVwIGV4 cGxpY2l0bHkuCisJCSAqLworCQlmb3JlYWNoX29pZChyZWxpZCwgZXhjZXB0X3JlbGlkcykKKwkJ eworCQkJT2lkCQkJcHJvaWQ7CisKKwkJCWlmIChnZXRfcmVsX25hbWVzcGFjZShyZWxpZCkgIT0g c2NoZW1haWQpCisJCQkJY29udGludWU7CisKKwkJCXByb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBV QkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAor CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkJCQlPYmplY3RJZEdldERh dHVtKHB1YmlkKSk7CisJCQlpZiAoT2lkSXNWYWxpZChwcm9pZCkpCisJCQl7CisJCQkJT2JqZWN0 QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCwgcHJvaWQpOworCQkJCXBl cmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCQkJfQorCQl9CisKKwkJbGlz dF9mcmVlKGV4Y2VwdF9yZWxpZHMpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggN2VlODRlYzFjODMuLjk4MzFiZTU0YjQ3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIyMjksNyAr MjIyOSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9u IHJlbGF0aW9uKQogCQkJICovCiAJCQlpZiAocHViLT5hbGx0YWJsZXMpCiAJCQl7Ci0JCQkJTGlz dAkgICAqZXhjZXB0cHViaWRzID0gTklMOworCQkJCUxpc3QJICAgKmV4Y2VwdF9wdWJpZHMgPSBO SUw7CiAKIAkJCQlpZiAoYW1fcGFydGl0aW9uKQogCQkJCXsKQEAgLTIyNTIsNyArMjI1Miw3IEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCQkJCQkgKiBjbGF1c2UuIFRoZXJlZm9yZSwgZm9yIGEgcGFydGl0aW9uLCBleGNsdXNpb24g bXVzdCBiZQogCQkJCQkgKiBldmFsdWF0ZWQgYXQgdGhlIHRvcC1tb3N0IGFuY2VzdG9yLgogCQkJ CQkgKi8KLQkJCQkJZXhjZXB0cHViaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1YmxpY2F0aW9u cyhsYXN0X2FuY2VzdG9yX3JlbGlkKTsKKwkJCQkJZXhjZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9u RXhjbHVkZWRQdWJsaWNhdGlvbnMobGFzdF9hbmNlc3Rvcl9yZWxpZCk7CiAJCQkJfQogCQkJCWVs c2UKIAkJCQl7CkBAIC0yMjYwLDEzICsyMjYwLDEzIEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJCQkgKiBGb3IgYSByZWd1bGFy IHRhYmxlIG9yIGEgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZSwgY2hlY2sKIAkJCQkJICogZXhjbHVz aW9uIG9uIHRhYmxlIGl0c2VsZi4KIAkJCQkJICovCi0JCQkJCWV4Y2VwdHB1YmlkcyA9IEdldFJl bGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocHViX3JlbGlkKTsKKwkJCQkJZXhjZXB0X3B1Ymlk cyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocHViX3JlbGlkKTsKIAkJCQl9CiAK LQkJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRwdWJpZHMsIHB1Yi0+b2lkKSkKKwkJCQlp ZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcHViaWRzLCBwdWItPm9pZCkpCiAJCQkJCXB1Ymxp c2ggPSB0cnVlOwogCi0JCQkJbGlzdF9mcmVlKGV4Y2VwdHB1Ymlkcyk7CisJCQkJbGlzdF9mcmVl KGV4Y2VwdF9wdWJpZHMpOwogCiAJCQkJaWYgKCFwdWJsaXNoKQogCQkJCQljb250aW51ZTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwppbmRleCBhMjkwOTAyZDYxZS4uZThiZmIzNmNiMWMgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKQEAgLTIzOTAsNiArMjM5MCwyMyBAQCBtYXRjaF9wcmV2aW91c193b3Jk cyhpbnQgcGF0dGVybl9pZCwKIAl9CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hB bnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1hdGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2 X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCIpIik7CisJLyogQWZ0ZXIgYSBzaW5nbGUgc2No ZW1hIG5hbWUgaW4gU0VUIGNvbnRleHQsIG9mZmVyIEVYQ0VQVCAoIFRBQkxFICovCisJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJM RVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYmCisJCQkgIWVuZHNfd2l0aChwcmV2X3dk LCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCBUQUJMRSIpOworCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQiLCAiVEFCTEVTIiwg IklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIigg VEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIs ICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAiU0NI RU1BIiwgIkNVUlJFTlRfU0NIRU1BIiwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJCUNPTVBM RVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJl bnRfc2NoZW1hKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQ VCIsICIoIiwgIlRBQkxFIikpCisJeworCQlzZXRfY29tcGxldGlvbl9yZWZlcmVuY2UocHJldjRf d2QpOworCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElNKFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlc19pbl9zY2hlbWEpOworCX0KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFu eSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIiwgTWF0Y2hBbnlOKSAmJiAhZW5kc193aXRoKHByZXZf d2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIikiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8 bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCBNYXRjaEFueU4sICJTRVQiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJwdWJs aXNoIiwgInB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMiLCAicHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRp b24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXgg YzQwYTg4ODRhOGYuLjFiYjNjN2RiMmUwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dApAQCAtNjIxLDYgKzYyMSw5MiBAQCBFeGNlcHQgdGFibGVzOgogICAgICJw dWJfdGVzdC50ZXN0cHViX3RibF9zMSIKICAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCiAK Ky0tIFNFVDogcmVwbGFjZSB0aGUgZXhjZXB0IGxpc3QgKGtlZXAgc2FtZSBzY2hlbWEsIGRpZmZl cmVudCBleGNlcHQgdGFibGUpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVt YXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1 Yl90YmxfczIiCisKKy0tIGZhaWw6IHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UgYWxzbyBhcHBlYXJz IGluIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Fs dGVyX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIFRBQkxFUyBJTiBT Q0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CitF UlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIgY2Fubm90IGFwcGVhciBpbiBi b3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZQorLS0gZXJyb3I6IGV4Y2Vw dCB0YWJsZSdzIHNjaGVtYSAocHVibGljKSBub3QgaW4gdGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1h IGxpc3QgKHB1Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQg U0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1 Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50ZXN0cHViX3RibDEiIGluIEVYQ0VQVCBj bGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QiCitMSU5FIDE6IC4uLnhj ZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRl cy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIFNFVDogdW5xdWFsaWZpZWQgbmFtZSBpbiBFWENFUFQgaXMgaW1wbGlj aXRseSBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxF IHRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNj aGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVz dHB1Yl90YmxfczEiCisKKy0tIFNFVCB3aXRob3V0IEVYQ0VQVCBjbGVhcnMgdGhlIGV4aXN0aW5n IGV4Y2VwdCBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQg VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxl cyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorCistLSBTRVQgdG8gYSBkaWZmZXJlbnQg c2NoZW1hIHJlbW92ZXMgb2xkIHNjaGVtYSdzIEVYQ0VQVCBlbnRyaWVzCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf YWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworLS0gZmFpbDog bm9uZXhpc3RlbnQgdGFibGUgaW4gRVhDRVBUIGNsYXVzZSAoU0VUIHBhdGgpCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKK0VSUk9SOiAgcmVs YXRpb24gInB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlIiBkb2VzIG5vdCBleGlzdAorLS0gU0VU OiBtdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhDRVBUIGNsYXVzZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorICAgICJwdWJs aWMiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKyAgICAi cHVibGljLnRlc3RwdWJfdGJsMSIKKworLS0gZXJyb3I6IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCB3 aXRoIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJs X3MyKTsKK0VSUk9SOiAgRVhDRVBUIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkIHdpdGggRFJPUCBp biBBTFRFUiBQVUJMSUNBVElPTgorLS0gRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNz b2NpYXRlZCBFWENFUFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9l eGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRl cl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAg ICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHVibGljIgorRXhjZXB0IHRhYmxlczoK KyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21p bl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0 LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IGNk NWVkMDZkY2FkLi42YjY3MmFiNWI2MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bApAQCAtMzA4LDYgKzMwOCw0NCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4 Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlcwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90YmxfczIp OwogXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKIAorLS0gU0VUOiByZXBsYWNlIHRoZSBleGNl cHQgbGlzdCAoa2VlcCBzYW1lIHNjaGVtYSwgZGlmZmVyZW50IGV4Y2VwdCB0YWJsZSkKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczIpOworXGRScCsgdGVz dHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZmFpbDogdGFibGUgaW4gRVhDRVBUIGNsYXVzZSBhbHNv IGFwcGVhcnMgaW4gdGhlIGV4cGxpY2l0IHRhYmxlIGxpc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJs X3MxKTsKKworLS0gZXJyb3I6IGV4Y2VwdCB0YWJsZSdzIHNjaGVtYSAocHVibGljKSBub3QgaW4g dGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhD RVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsKKworLS0gU0VUOiB1bnF1YWxpZmllZCBu YW1lIGluIEVYQ0VQVCBpcyBpbXBsaWNpdGx5IHF1YWxpZmllZCB3aXRoIHRoZSBzY2hlbWEKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1B IHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9h bHRlcl9leGNlcHQKKworLS0gU0VUIHdpdGhvdXQgRVhDRVBUIGNsZWFycyB0aGUgZXhpc3Rpbmcg ZXhjZXB0IGxpc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwor LS0gU0VUIHRvIGEgZGlmZmVyZW50IHNjaGVtYSByZW1vdmVzIG9sZCBzY2hlbWEncyBFWENFUFQg ZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibF9zMSk7CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBw dWJsaWM7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCistLSBmYWlsOiBub25leGlzdGVu dCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlIChTRVQgcGF0aCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworCistLSBTRVQ6IG11bHRpcGxlIHNj aGVtYXMgZWFjaCB3aXRoIHRoZWlyIG93biBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg RVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDEpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQK KworLS0gZXJyb3I6IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCB3aXRoIERST1AKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKKworLS0gRFJPUCBUQUJM RVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNzb2NpYXRlZCBFWENFUFQgZW50cmllcworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xp ZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM3X2V4Y2VwdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwK aW5kZXggMGJhNmQ2ZjhiYjIuLjAxZWFmYjViN2M4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz N19leGNlcHQucGwKQEAgLTM3Niw2ICszNzYsNjEgQEAgJHJlc3VsdCA9CiBpcygkcmVzdWx0LCBx cSgwKSwKIAknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogZXhjbHVkZWQg dGFibGUgbm90IHN5bmNlZCcpOwogCisjIFNFVDogcmVwbGFjZSB0aGUgZXhjZXB0IGxpc3Q7IHRh Yl9leGNsdWRlZCBpcyBub3cgaW5jbHVkZWQgYW5kIHRhYl9wdWJsaXNoZWQgaXMgZXhjbHVkZWQu Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNB VElPTiBzY2hfcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhDRVBUIChUQUJMRSBzY2gx LnRhYl9wdWJsaXNoZWQpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc2NoX3N1YiBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7 Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJs aXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHNjaDEudGFiX3B1Ymxpc2hlZCBWQUxVRVMgKDcpOwor CUlOU0VSVCBJTlRPIHNjaDEudGFiX2V4Y2x1ZGVkIFZBTFVFUyAoNyk7CispKTsKKyRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBG Uk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJFIGEgPSA3Iik7CitpcygkcmVzdWx0LCBxcSgxKSwK KwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogbmV3bHkgaW5jbHVkZWQg dGFibGUgaXMgcmVwbGljYXRlZCcKKyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX3B1 Ymxpc2hlZCBXSEVSRSBhID0gNyIpOworaXMoJHJlc3VsdCwgcXEoMCksCisJJ0FMVEVSIC4uLiBT RVQgVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IG5vdy1leGNsdWRlZCB0YWJsZSBpcyBub3QgcmVw bGljYXRlZCcKKyk7CisKKyMgU0VUIHdpdGhvdXQgRVhDRVBUOiBjbGVhcnMgdGhlIGV4Y2VwdCBs aXN0OyBib3RoIHRhYmxlcyBhcmUgbm93IHB1Ymxpc2hlZC4KKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHNjaF9wdWIgU0VUIFRBQkxF UyBJTiBTQ0hFTUEgc2NoMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkFMVEVSIFNVQlNDUklQVElPTiBzY2hfc3ViIFJFRlJFU0ggUFVCTElDQVRJT04iKTsK KyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxp c2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJfcHVibGlzaGVkIFZBTFVFUyAoOCk7CisJ SU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFMVUVTICg4KTsKKykpOworJG5vZGVfcHVi bGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZS T00gc2NoMS50YWJfcHVibGlzaGVkIFdIRVJFIGEgPSA4Iik7CitpcygkcmVzdWx0LCBxcSgxKSwK KwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIChubyBFWENFUFQpOiB0YWJfcHVibGlz aGVkIHJlcGxpY2F0ZWQgYWZ0ZXIgZXhjZXB0IGxpc3QgY2xlYXJlZCcKKyk7CiskcmVzdWx0ID0K KyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3Vu dCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJFIGEgPSA4Iik7CitpcygkcmVzdWx0LCBx cSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIChubyBFWENFUFQpOiB0YWJf ZXhjbHVkZWQgcmVwbGljYXRlZCBhZnRlciBleGNlcHQgbGlzdCBjbGVhcmVkJworKTsKKwogJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBz Y2hfc3ViJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQ VUJMSUNBVElPTiBzY2hfcHViJyk7CiAKQEAgLTQ0Myw2ICs0OTgsMzYgQEAgJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViJyk7 CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElP TiB0YXBfcHViMScpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RS T1AgUFVCTElDQVRJT04gdGFwX3B1YjInKTsKIAorIyBPSyB3aGVuIGEgdGFibGUgaXMgZXhjbHVk ZWQgYnkgYSBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVCBwdWJsaWNhdGlvbiwKKyMgYnV0IGlzIGlu Y2x1ZGVkIGJ5IGFub3RoZXIgcHVibGljYXRpb24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnVFJVTkNBVEUgdGFiMScpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICdUUlVOQ0FURSB0YWIxJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViMSBG T1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWMgRVhDRVBUIChUQUJMRSBwdWJsaWMudGFiMSk7CisJ Q1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWIyIEZPUiBUQUJMRSB0YWIxOworCUlOU0VSVCBJTlRP IHRhYjEgVkFMVUVTKDEpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5wc3FsKCdwb3N0Z3Jlcycs CisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nv bm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWIxLCB0YXBfcHViMiIKKyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3Vi Jyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKElOU0VSVCBJ TlRPIHRhYjEgVkFMVUVTKDIpKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAo J3RhcF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIE9SREVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0 LCBxcSgxCisyKSwKKwkiVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IHRhYmxlIGV4Y2x1ZGVkIGlu IHNjaGVtYSBwdWIgYnV0IGluY2x1ZGVkIGJ5IGFub3RoZXIgcHViIGlzIHJlcGxpY2F0ZWQiCisp OworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NS SVBUSU9OIHRhcF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIxJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMicpOworCiAkbm9kZV9wdWJs aXNoZXItPnN0b3AoJ2Zhc3QnKTsKIAogZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --000000000000132d7d065481639c Content-Type: application/octet-stream; name="v15-0004-Documentation-Patch.patch" Content-Disposition: attachment; filename="v15-0004-Documentation-Patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqj4i72r3 RnJvbSAwMjQxZGFkMjI2NGMyM2M4NWFlNmY1MmY4Y2VjYzEyNTcwYjVlODFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUaHUsIDE4IEp1biAyMDI2IDA5OjAzOjA4ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTUgNC80XSBEb2N1bWVudGF0aW9uIFBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNh dGlvbi5zZ21sICB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCB8IDI0ICsrKysrKystLQogMyBmaWxlcyBjaGFuZ2Vk LCA4OSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBs aWNhdGlvbi5zZ21sCmluZGV4IDllNzg2ODQ4N2RlLi4xNDMzZDI2NjBmZSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv bG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0xMTcsNyArMTE3LDggQEAKICAgIG9yIDxsaXRl cmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPi4gVW5saWtlIHRhYmxlcywgc2VxdWVuY2Vz IGNhbiBiZQogICAgc3luY2hyb25pemVkIGF0IGFueSB0aW1lLiBGb3IgbW9yZSBpbmZvcm1hdGlv biwgc2VlCiAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLXNlcXVlbmNlcyIv Pi4gV2hlbiBhIHB1YmxpY2F0aW9uIGlzCi0gICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFM TCBUQUJMRVM8L2xpdGVyYWw+LCBhIHRhYmxlIG9yIHNldCBvZiB0YWJsZXMgY2FuCisgICBjcmVh dGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICA8bGl0ZXJh bD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIGEgdGFibGUgb3Igc2V0IG9mIHRhYmxl cyBjYW4KICAgIGJlIGV4cGxpY2l0bHkgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbiB1c2luZyB0 aGUKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4 Y2VwdC10YWJsZSI+PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPjwvbGluaz4KICAgIGNsYXVzZS4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCA1MjExNGExNmEzOS4u YmY2YmRkY2JiNmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAg LTMxLDcgKzMxLDcgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+d2hlcmUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFi bGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWFibGU+IFssIC4uLiBdCi0gICAg VEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFf bmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorICAgIFRBQkxF UyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hl bWE8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fYWxsX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9u ZSBvZjo8L3BocmFzZT4KIApAQCAtNDcsNiArNDcsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8g PHIKIAogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8L3Jl cGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXQogCis8cGhyYXNlPmFuZCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFjZWFi bGU+IGlzOjwvcGhyYXNlPgorCisgICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWyBFWENFUFQgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFj ZWFibGU+IFssIC4uLiBdICkgXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgog CiAgICAgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLiBdCkBAIC02OSw2ICs3Myw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1F IFRPIDxyCiAgICBUaGUgZmlyc3QgdHdvIHZhcmlhbnRzIG1vZGlmeSB3aGljaCB0YWJsZXMvc2No ZW1hcyBhcmUgcGFydCBvZiB0aGUKICAgIHB1YmxpY2F0aW9uLiBUaGUgPGxpdGVyYWw+QUREPC9s aXRlcmFsPiBhbmQgPGxpdGVyYWw+RFJPUDwvbGl0ZXJhbD4gY2xhdXNlcwogICAgd2lsbCBhZGQg YW5kIHJlbW92ZSBvbmUgb3IgbW9yZSB0YWJsZXMvc2NoZW1hcyBmcm9tIHRoZSBwdWJsaWNhdGlv bi4KKyAgIFRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB3 aXRoCisgICA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gZXhjbHVk ZSBzcGVjaWZpYyB0YWJsZXMgZnJvbSBhCisgICBzY2hlbWEtbGV2ZWwgcHVibGljYXRpb24uCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTkzLDcgKzEwMCwxMSBAQCBBTFRFUiBQVUJMSUNBVElP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFN RSBUTyA8cgogICAgdXNlZCB3aXRoIGEgcHVibGljYXRpb24gZGVmaW5lZCB3aXRoIDxsaXRlcmFs PkZPUiBUQUJMRTwvbGl0ZXJhbD4gb3IKICAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1B PC9saXRlcmFsPiwgcmVwbGFjZXMgdGhlIGxpc3Qgb2YgdGFibGVzL3NjaGVtYXMKICAgIGluIHRo ZSBwdWJsaWNhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbGlzdDsgdGhlIGV4aXN0aW5nIHRhYmxl cyBvciBzY2hlbWFzCi0gICB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUgcHVibGljYXRpb24gd2ls bCBiZSByZW1vdmVkLgorICAgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlIHB1YmxpY2F0aW9uIHdp bGwgYmUgcmVtb3ZlZC4gIFdoZW4KKyAgIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9s aXRlcmFsPiBpcyB1c2VkIHdpdGggYW4KKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xh dXNlLCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciBlYWNoIHNjaGVtYSBhcmUKKyAgIHJlcGxhY2Vk IHdpdGggdGhlIHNwZWNpZmllZCBsaXN0OyBpZiA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGlz IG9taXR0ZWQKKyAgIGZvciBhIHNjaGVtYSwgYW55IGV4aXN0aW5nIGV4Y2x1c2lvbnMgZm9yIHRo YXQgc2NoZW1hIGFyZSBjbGVhcmVkLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xOTgsNiAr MjA5LDM3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFdoZW4gdXNlZCB3aXRoIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPgor ICAgICAgb3IgPGxpdGVyYWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCBzcGVjaWZp ZXMKKyAgICAgIHRhYmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4gIEVh Y2ggbmFtZWQKKyAgICAgIHRhYmxlIG11c3QgYmVsb25nIHRvIHRoZSBzY2hlbWEgc3BlY2lmaWVk IGluIHRoZSBzYW1lCisgICAgICA8bGl0ZXJhbD5UQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBj bGF1c2UuICBUYWJsZSBuYW1lcyBtYXkgYmUKKyAgICAgIHNjaGVtYS1xdWFsaWZpZWQgb3IgdW5x dWFsaWZpZWQ7IHVucXVhbGlmaWVkIG5hbWVzIGFyZSBpbXBsaWNpdGx5CisgICAgICBxdWFsaWZp ZWQgd2l0aCB0aGUgc2NoZW1hIG5hbWVkIGluIHRoZSBzYW1lIGNsYXVzZS4gIFNlZQorICAgICAg PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uIi8+IGZvciBmdXJ0aGVyIGRldGFp bHMgb24gdGhlCisgICAgICBzZW1hbnRpY3Mgb2YgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPi4K KyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIEZvciA8bGl0ZXJhbD5GT1IgVEFCTEVT IElOIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGljYXRpb25zLCB0aGUKKyAgICAgIDxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGlzIHNjaGVtYS1zY29wZWQuICBJZiBhIHRhYmxlIGxpc3Rl ZCBpbgorICAgICAgdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGlzIGxhdGVy IG1vdmVkIHRvIGEgZGlmZmVyZW50IHNjaGVtYQorICAgICAgdXNpbmcgPGNvbW1hbmQ+QUxURVIg VEFCTEUgLi4uIFNFVCBTQ0hFTUE8L2NvbW1hbmQ+LCB0aGUgZXhjbHVzaW9uIGlzCisgICAgICBy ZW1vdmVkOyB0aGUgdGFibGUgd2lsbCB0aGVuIGJlIHB1Ymxpc2hlZCBpZiBpdHMgbmV3IHNjaGVt YSBpcyBwYXJ0IG9mIGEKKyAgICAgIHB1YmxpY2F0aW9uLiAgSWYgdGhlIHRhYmxlIGlzIHN1YnNl cXVlbnRseSBtb3ZlZCBiYWNrIHRvIHRoZSBvcmlnaW5hbAorICAgICAgc2NoZW1hLCB0aGUgZXhj bHVzaW9uIGlzIG5vdCByZXN0b3JlZCwgYW5kIG11c3QgYmUgcmUtZXN0YWJsaXNoZWQKKyAgICAg IGV4cGxpY2l0bHkgdXNpbmcgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+Lgor ICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgRHJvcHBpbmcgYSB0YWJsZSBhbHdheXMg cmVtb3ZlcyBpdCBmcm9tIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+CisgICAgICBjbGF1 c2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK ICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+U0VUICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9 IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAu Li4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0yODgsNiArMzMwLDI4 IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NI RU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAg PHBhcmE+CisgICBBZGQgc2NoZW1hIDxzdHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPiB0byB0 aGUgcHVibGljYXRpb24KKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3Ru YW1lPiwgZXhjbHVkaW5nIHRoZQorICAgPHN0cnVjdG5hbWU+c2FsZXMuaW50ZXJuYWw8L3N0cnVj dG5hbWU+IGFuZAorICAgPHN0cnVjdG5hbWU+c2FsZXMuZHJhZnRzPC9zdHJ1Y3RuYW1lPiB0YWJs ZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlv biBBREQgVEFCTEVTIElOIFNDSEVNQSBzYWxlcyBFWENFUFQgKFRBQkxFIGludGVybmFsLCBkcmFm dHMpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgUmVwbGFj ZSB0aGUgc2NoZW1hIGxpc3Qgb2YgPHN0cnVjdG5hbWU+c2FsZXNfcHVibGljYXRpb248L3N0cnVj dG5hbWU+IHdpdGgKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPiwgZXhjbHVkaW5n IG9ubHkKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzLmRyYWZ0czwvc3RydWN0bmFtZT4uIE90aGVyIHRo YW4KKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzLmRyYWZ0czwvc3RydWN0bmFtZT4sIGFueSBwcmV2aW91 c2x5IGV4Y2x1ZGVkIHRhYmxlcyBmb3Igc2NoZW1hCisgICA8c3RydWN0bmFtZT5zYWxlczwvc3Ry dWN0bmFtZT4gYXJlIG5vIGxvbmdlciBleGNsdWRlZC4gQW55IHNjaGVtYXMgcHJldmlvdXNseSBp bgorICAgPHN0cnVjdG5hbWU+c2FsZXNfcHVibGljYXRpb248L3N0cnVjdG5hbWU+IGFyZSByZW1v dmVkOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRp b24gU0VUIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBUIChUQUJMRSBkcmFmdHMpOworPC9w cm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxlcyA8c3Ry dWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwv c3RydWN0bmFtZT4gYW5kIHNjaGVtYQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9u LnNnbWwKaW5kZXggODVjZmNhZGRhZmEuLmI2ODIwNmU0ZmZmIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI4LDcgKzI4LDcgQEAgQ1JFQVRFIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KIDxw aHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29i amVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWFibGU+ IFssIC4uLiBdCi0gICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAu Li4gXQorICAgIFRBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnRhYmxlc19pbl9zY2hlbWE8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQogCiA8cGhyYXNlPmFuZCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fYWxsX29iamVjdDwvcmVw bGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAtMzksNiArMzksMTAgQEAgQ1JFQVRF IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4KIAogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8 L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXQogCis8cGhyYXNlPmFu ZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFj ZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWyBFWENFUFQg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVw bGFjZWFibGU+IFssIC4uLiBdICkgXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNl PgogCiAgICAgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdCkBAIC0xNDIsNiArMTQ2LDggQEAgQ1JFQVRFIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4K ICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMgb25lIHRoYXQgcmVw bGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzIGluCiAgICAgICB0aGUgc3BlY2lmaWVkIGxp c3Qgb2Ygc2NoZW1hcywgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuCisg ICAgICBUYWJsZXMgbGlzdGVkIGluIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVz ZSBmb3IgYSBnaXZlbiBzY2hlbWEKKyAgICAgIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNh dGlvbi4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpAQCAtMTczLDcgKzE3OSw3IEBAIENS RUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgogICAgICAgdGhlIGRh dGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4gVGFibGVzIGxp c3RlZCBpbgotICAgICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgYXJlIGV4Y2x1 ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLgorICAgICAgdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0 ZXJhbD4gY2xhdXNlIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KICAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE5OCw3ICsyMDQs MTAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgVGhp cyBjbGF1c2Ugc3BlY2lmaWVzIGEgbGlzdCBvZiB0YWJsZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSB0 aGUKLSAgICAgIHB1YmxpY2F0aW9uLgorICAgICAgcHVibGljYXRpb24uIEl0IGNhbiBiZSB1c2Vk IHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICAgICA8bGl0ZXJh bD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4uIEZvciA8bGl0ZXJhbD5GT1IgVEFCTEVT IElOCisgICAgICBTQ0hFTUE8L2xpdGVyYWw+LCB0aGUgZXhjbHVzaW9uIGFwcGxpZXMgb25seSB0 byB0YWJsZXMgaW4gdGhlIHNjaGVtYQorICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSA8bGl0ZXJh bD5FWENFUFQ8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgogICAgICAgT25j ZSBhIHRhYmxlIGlzIGV4Y2x1ZGVkLCB0aGUgZXhjbHVzaW9uIGFwcGxpZXMgdG8gdGhhdCB0YWJs ZQpAQCAtNTIxLDYgKzUzMCwxNSBAQCBDUkVBVEUgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJs aWNhdGlvbiBGT1IgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBUQUJMRVMgSQogQ1JFQVRFIFBV QkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9uIEZPUiBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGlu Zywgc2FsZXM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENyZWF0 ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGZvciBhbGwgdGhlIHRh YmxlcyBwcmVzZW50IGluCisgICB0aGUgc2NoZW1hIDxzdHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3Ru YW1lPiwgZXhjZXB0CisgICA8c3RydWN0bmFtZT5pbnRlcm5hbDwvc3RydWN0bmFtZT4gYW5kIDxz dHJ1Y3RuYW1lPmRyYWZ0czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg UFVCTElDQVRJT04gc2FsZXNfZmlsdGVyZWQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhD RVBUIChUQUJMRSBpbnRlcm5hbCwgZHJhZnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFy YT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFs bCBjaGFuZ2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBi dXQgcmVwbGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFt ZT4gYW5kCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000132d7d065481639c--