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 1weUL1-004pTf-1m for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2026 09:01:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1weUL0-007MVK-0r for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2026 09:01:02 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1weUKz-007MVC-1S for pgsql-hackers@lists.postgresql.org; Tue, 30 Jun 2026 09:01:01 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1weUKu-00000000tQD-0CI4 for pgsql-hackers@lists.postgresql.org; Tue, 30 Jun 2026 09:01:00 +0000 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2c9e89fded0so19085585ad.2 for ; Tue, 30 Jun 2026 02:00:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782810055; cv=none; d=google.com; s=arc-20260327; b=jWWeILSGg9MlqYxmGyjeU0WpiBYCSLlwZfg+9DYxvm0bXeiZGAO2K0mmqX64ZfC8sD x409IusZmrjf6SeXCesAeajuPIT5pgR2abQnwJ85t8ncCsZip1u8E0hqfuVROBDc+k2D ZzhNzGKJEwV/4jxbT4mVKqDvfIjtlEEwXJjA2Zi5hZwsAobHeQfgKOMe4T1yM7lJ7Vvl Iae5nAbcU2KoDuRAbHz2pECjpasuniA0mQrWIu9W8okOp0kEmXA3PcIjx9cfnXD24T37 dZ+Nt1C6H6cQmA3BIFBrSAMF1c1ogGcoSxj+VKNcqq0iYvEcs8KeS11zG7Dt3QCfLl2A W7tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=h+zHrrXGaHH4AhbZbAuahVBtMjSL8vhCw1pEw+TOXw8=; fh=Dceu6ppd0+ufkrP2EoIX1pwedmf8yHmfrYi+5U/Kw6E=; b=XcM0+nf7RwTn+bKpUibWup83QPYtqBowjLaFw30yPTkg520OB0rk6CgAXKTK4czti0 xBD2t9BtXRmHjBIt5TV/XrSMYT2Aszq3to/mBAgGojG+TZvQZxK5TVkryoQbBUUGR7b+ AMsphDXnWlDE6SCOhkqemfSYRYEWE9PF7YEO+xThikZjXk7aPgWYZxxFzBxht1U54+Ph BcY39tJXmwUCOwzpXYK6/DElS/xU9Vzn5AVu9+rxX76/RvlHCnZX9zoZPsGUrJUig+pt tOlMYEsJ7thExcmWG5m3k14i15EtHkYcKb3jm1ekwfXiAsM1BlXUsSYxG7Vt3f7Q7Abl VKAA==; 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=1782810055; x=1783414855; 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=h+zHrrXGaHH4AhbZbAuahVBtMjSL8vhCw1pEw+TOXw8=; b=MBiogW1oOo5AN5Uye+XL5QIob4iafJwD1k47XwKp4GV5lydJtoy3B5Z4Cv+rt88RMU XY5AFpZPJ70p7DfEJR4Dwiyc9W/b5rOWxrFJ1l4NImLM/jTfVgTFxexC9ludUfpQlzIV oiiQ3pRYNDTxjp+PCTpD1mlbe6zJf0qOXLz00KcBkj9FRFUFPgYsCG80LltojahSb1bh w2U9izmO9tnXvfVLpQ6w6Ol+pnxAbsczspP3bfGszvtKDEXJ62/O0DF2UfkN2J3jyRdH 7wbD6SAFbSSU1LEsXkzq4pW6iIeoXfbuseqJTQ2f6TbJ5jpTE9+gP/BVGZeXhLOGMjQ6 +llw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782810055; x=1783414855; 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=h+zHrrXGaHH4AhbZbAuahVBtMjSL8vhCw1pEw+TOXw8=; b=ST5CL9+kSNxIPnfpt7qJZMjwNTFzbINzTSud4wyjOz9Kaedy/ddpYy2fXtE+IkenAt mDLJou6D5EZfdRjIMOCM2TSokteY39+q/imJ35jFJwfieJ5/sntu+qBGGngB+ehQQD3W n1wle3BJtftk9POsLfr72jKC/5Mfe/1khv3pITvbn9tB9E9miuQgO4kiywGAhUvI6Nwm X++XxzQMrXAWrbJOS1V4m7y3adyBRIJODRSkHSFN8tC+oR9f36gx9DchP/ye+C81Eh5K E8bA+5kxZUibPx4d+l6b2MU0H6io3SxadZPoJCGxTj6bStgusOYkjf/wvFlzvzs/KNN/ fr4Q== X-Forwarded-Encrypted: i=1; AHgh+RoN51MN5rxMyElPi1YojHLub0jrR5FIh4hYKU5FB5N1y7jc1tVd746Ma9tOCpvTAv7W0xjj/hnqNP5yq86F@lists.postgresql.org X-Gm-Message-State: AOJu0Yxyr/zDzckR868dRz81xrbGE9jgDZOwTrjmkwuCK0+j4nXzt3e1 QftkI4yQlHwmSfONBV2F9VsPHuuldAT6kFcyK9AOQC0RYqJmdDieidpNb4krLjyCmfHcic+BjnM 4NWq81wyc4+bS+GtsK3o8/F6Te7s8KuQ= X-Gm-Gg: AfdE7cl3oMef3PATatNSykVYyAOzmyfuhU/qEEbHE5JSWu/pKVOU7+isrtglUl0YJtT J/APofgUpwu5JnjN4A8GUf0MLEZ8+6EjZr3rZFxaEf2dbpuftWRaE/XDADp/bCG+8x2tHRaKtqm SjI4fsnV2JBSBT3k8HQkBQN/Auo3y1QosrMT/wT2ft8uE9oqWLgzCq5gmQNoaqPkYt9u+L2tmWX sMkcUbVFjDFrZGnJJ7wMDpHNKw2B+5Vzcr7DxQK+S1IedppbVjbGU/Ge5bLvMarrfRThoGr9JeK Nrl5kuX3c6vfpX3FT5RNkdoPQBVJmXKHmRR/UPiLghRNEhoYg4kQp0NDH5ZCaDG9D/aJ5ocnFkC WjDV+liBJVy0LsOT9+b90RByOHX9Z X-Received: by 2002:a17:903:9cc:b0:2c9:afad:c5f2 with SMTP id d9443c01a7336-2ca2ed41bedmr21059705ad.45.1782810054859; Tue, 30 Jun 2026 02:00:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Amit Kapila Date: Tue, 30 Jun 2026 14:30:42 +0530 X-Gm-Features: AVVi8CdpFdTDn32OxK5XiOGHdAIFbW3muE1mWTt68vl1Yvse6HBdpzh03_We6pY Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Dilip Kumar Cc: Peter Smith , vignesh C , Nisha Moond , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000005becf065574d01a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000005becf065574d01a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jun 30, 2026 at 11:02=E2=80=AFAM Amit Kapila wrote: > > On Tue, Jun 30, 2026 at 9:22=E2=80=AFAM Dilip Kumar wrote: > > > > > =3D=3D=3D=3D=3D=3D > > > src/backend/commands/tablecmds.c > > > > > > 2. > > > + /* > > > + * Conflict log tables are managed by the system for logical > > > + * replication and should not be used as parent tables, as > > > + * inheritance could interfere with the logging behavior. > > > + */ > > > + if (IsConflictLogTableNamespace(relation->rd_rel->relnamespace)) > > > + ereport(ERROR, > > > + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), > > > + errmsg("permission denied: cannot inherit from conflict log table \= "%s\"", > > > + RelationGetRelationName(relation)), > > > + errdetail("Conflict log tables are system-managed tables for logica= l > > > replication conflicts."))); > > > > > > It is not really a lack of "privilege" preventing this -- it is just > > > disallowed for everybody. Would ERRCODE_WRONG_OBJECT_TYPE be a more > > > appropriate errcode? > > > > I agree that we currently restrict most operations on CLTs, but the > > issue isn't that the CLT is the wrong object type, they are still > > relations. While we might open up certain operations in the future > > based on business needs (such as allowing index creation), I still > > believe this is a matter of privileges rather than object type. > > > > If we look from this POV where we want to support some features in > future, ERRCODE_FEATURE_NOT_SUPPORTED sounds like a better option. > OTOH, in execMain.c, in 0001, WRONG_OBJECT_TYPE is any way a better > fit because we never want to allow INSERT/UPDATE/MERGE. Having, single > error_code makes it easy to understand/explain/extend this feature, > otherwise, the future users will always be confused as to which > error_code is better fit. I think insuffcient_privilige doesn't suit > even if we want to support such features in future because those won't > require a new grant kind of privilege. Even though WRONG_OBJECT_TYPE > is slightly over stretched for some cases but I think consistency > helps, so, I would prefer WRONG_OBJECT_TYPE in the case Peter pointed > out and other DDL operations where we have a similar check. > I have changed the error code to WRONG_OBJECT_TYPE in the attached v59_amit_2.txt. The other thing that bothers me about this patch is the usage of DO blocks in the tests to hide the CLT name (as the same has OID in its name which is non-deterministic) which doesn't seem to be the best way as that bloats the test code and make the test cases difficult to read. I have changed those specific tests in the attached v59_amit_3.txt by using \gset and \set VERBOSITY sqlstate which we also use in arrays.sql and a few other places. Let me know what you think of attached top-up patches. Also, now let's merge your 0001 and 0002 patches. --=20 With Regards, Amit Kapila. --00000000000005becf065574d01a Content-Type: text/plain; charset="US-ASCII"; name="v59_amit_2.txt" Content-Disposition: attachment; filename="v59_amit_2.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0eunq90 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGljeS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcG9saWN5LmMKaW5kZXggMTBlYTU5OWJhYzAuLmViYWIyZWRkZTkyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wb2xpY3kuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9wb2xpY3kuYwpAQCAtODYsOCArODYsOCBAQCBSYW5nZVZhckNhbGxiYWNrRm9yUG9saWN5 KGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJICovCiAJaWYg KElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzZm9ybSkpCiAJCWVyZXBvcnQoRVJST1IsCi0J CQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkgZXJybXNn KCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5u b3QgY3JlYXRlIHBvbGljeSBvbiBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKIAkJCQkJCXJ2 LT5yZWxuYW1lKSwKIAkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0 ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKaW5kZXggZThmYTgxZWY1NTUuLmNlOThlYmIzNWVh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwpAQCAtMTU2LDggKzE1Niw4IEBAIENyZWF0ZVN0 YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10LCBib29sIGNoZWNrX3JpZ2h0cykKIAkJICov CiAJCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCiAJCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAot CQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9n IHRhYmxlIiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJ CSBlcnJtc2coImNhbm5vdCBjcmVhdGUgc3RhdGlzdGljcyBvbiBjb25mbGljdCBsb2cgdGFibGUg XCIlc1wiIiwKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKIAkJCQkJIGVy cmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IGEzY2RhMDFkODBmLi40N2RhZmMwZGJhOCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTI3NjQsOCArMjc2NCw4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1 bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCSAqLwogCQlp ZiAoSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKHJlbGF0aW9uLT5yZF9yZWwtPnJlbG5hbWVz cGFjZSkpCiAJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklD SUVOVF9QUklWSUxFR0UpLAotCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogY2Fubm90 IGluaGVyaXQgZnJvbSBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coImNhbm5vdCBpbmhlcml0 IGZyb20gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsYXRpb24pKSwKIAkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxl cyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZs aWN0cy4iKSkpOwogCkBAIC0zOTE0LDggKzM5MTQsOCBAQCByZW5hbWVhdHRfY2hlY2soT2lkIG15 cmVsaWQsIEZvcm1fcGdfY2xhc3MgY2xhc3Nmb3JtLCBib29sIHJlY3Vyc2luZykKIAkgKi8KIAlp ZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoY2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwK LQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAotCQkJCSBlcnJt c2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAor CQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImNh bm5vdCByZW5hbWUgY29sdW1ucyBvZiBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKIAkJCQkJ CU5hbWVTdHIoY2xhc3Nmb3JtLT5yZWxuYW1lKSksCiAJCQkJIGVycmRldGFpbCgiQ29uZmxpY3Qg bG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0cy4iKSkpOwogCkBAIC02OTMyLDggKzY5MzIsOCBAQCBBVFNpbXBsZVBlcm1p c3Npb25zKEFsdGVyVGFibGVUeXBlIGNtZHR5cGUsIFJlbGF0aW9uIHJlbCwgaW50IGFsbG93ZWRf dGFyZ2V0cykKIAkgKi8KIAlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVsLT5yZF9yZWwp KQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCi0JCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNv bmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCisJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIi LAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCiAJCQkJIGVycmRldGFpbCgi Q29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2Fs IHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOwogCkBAIC0xMDI1Myw4ICsxMDI1Myw4IEBAIEFU QWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsCiAJICovCiAJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHBr cmVsLT5yZF9yZWwpKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5T VUZGSUNJRU5UX1BSSVZJTEVHRSksCi0JCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwi JXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IHJlZmVyZW5jZSBjb25mbGljdCBs b2cgdGFibGUgXCIlc1wiIiwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHBrcmVsKSks CiAJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQg dGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOwogCkBAIC0yMDEw MSw4ICsyMDEwMSw4IEBAIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24oY29uc3QgUmFuZ2VW YXIgKnJlbGF0aW9uLAogCSAqLwogCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcygoRm9ybV9w Z19jbGFzcykgR0VUU1RSVUNUKHR1cGxlKSkpCiAJCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkgZXJybXNnKCJwZXJtaXNz aW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdl IGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIiLAogCQkJCQkJcmVsYXRpb24tPnJlbG5hbWUpLAog CQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRh YmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKIApAQCAtMjAxNDgs OCArMjAxNDgsOCBAQCBSYW5nZVZhckNhbGxiYWNrRm9yQWx0ZXJSZWxhdGlvbihjb25zdCBSYW5n ZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJlbGlkLAogCSAqLwogCWlmIChJc0NvbmZsaWN0 TG9nVGFibGVDbGFzcyhjbGFzc2Zvcm0pKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCi0JCQkJIGVycm1zZygicGVybWlzc2lv biBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGNv bmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIiLAogCQkJCQkJcnYtPnJlbG5hbWUpLAogCQkJCSBlcnJk ZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3Ig bG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5j CmluZGV4IGRlNzk1N2ExNWY3Li4wMGQzYzkwYjU5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpA QCAtMzIxLDggKzMyMSw4IEBAIENyZWF0ZVRyaWdnZXJGaXJpbmdPbihjb25zdCBDcmVhdGVUcmln U3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJICovCiAJaWYgKElzQ29uZmxp Y3RMb2dUYWJsZUNsYXNzKHJlbC0+cmRfcmVsKSkKIAkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAotCQkJCSBlcnJtc2coInBlcm1p c3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCShlcnJj b2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCBjcmVh dGUgdHJpZ2dlciBvbiBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKIAkJCQkJCVJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpLAogCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25m bGljdHMuIikpKTsKIApAQCAtMTQ2Myw4ICsxNDYzLDggQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJl bmFtZVRyaWdnZXIoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwK IAkgKi8KIAlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoZm9ybSkpCiAJCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkg ZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxl IiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNn KCJjYW5ub3QgcmVuYW1lIHRyaWdnZXIgb24gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCiAJ CQkJCQlydi0+cmVsbmFtZSksCiAJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4iKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUu YyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZURlZmluZS5jCmluZGV4IGQwMGQ3NjYxM2Ex Li45NjhlZDhjY2ZjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVm aW5lLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMKQEAgLTI2OCw4 ICsyNjgsOCBAQCBEZWZpbmVRdWVyeVJld3JpdGUoY29uc3QgY2hhciAqcnVsZW5hbWUsCiAJICov CiAJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGV2ZW50X3JlbGF0aW9uLT5yZF9yZWwpKQog CQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJ TEVHRSksCi0JCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZs aWN0IGxvZyB0YWJsZSIsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSks CisJCQkJIGVycm1zZygiY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBjYW5ub3QgaGF2ZSBydWxl cyIsCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShldmVudF9yZWxhdGlvbikpLAogCQkJ CSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxl cyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKIApAQCAtNzg5LDggKzc4 OSw4IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVSdWxlKGNvbnN0IFJhbmdlVmFyICpydiwg T2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJICovCiAJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNs YXNzKGZvcm0pKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZG SUNJRU5UX1BSSVZJTEVHRSksCi0JCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNc IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19P QkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBjYW5u b3QgaGF2ZSBydWxlcyIsCiAJCQkJCQlydi0+cmVsbmFtZSksCiAJCQkJIGVycmRldGFpbCgiQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJl cGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1 YnNjcmlwdGlvbi5vdXQKaW5kZXggNmYxYjJjNDdhNmQuLjVkYzVlYmZkMmE5IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC04NTEsMTEgKzg1MSwxMSBA QCBCRUdJTgogCiAgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9uIGNv bmZsaWN0IGxvZyB0YWJsZSc7CiAgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFt ZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKLUVYQ0VQVElPTiBXSEVOIGluc3Vm ZmljaWVudF9wcml2aWxlZ2UgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0 ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSJzsKK0VYQ0VQVElP TiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVk IGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgQUxURVInOwogRU5EICQk OwogTk9USUNFOiAgQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBjb25mbGljdCBsb2cgdGFibGUK LU5PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdl IGR1cmluZyBBTFRFUgorTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29i amVjdF90eXBlIGR1cmluZyBBTFRFUgogLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0 IGxvZyB0YWJsZQogLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0 ZW0tbWFuYWdlZAogLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0 Y2hpbmcgdGhlIGV4Y2VwdGlvbgpAQCAtOTI1LDEzICs5MjUsMTMgQEAgQkVHSU4KICAgICBGUk9N IHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAgIEVYRUNVVEUgJ0NSRUFURSBQT0xJQ1kgcDEgT04g JyB8fCB0YWJfbmFtZSB8fCAnIFVTSU5HICh0cnVlKSc7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRI RU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBl cnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKICAgICBSQUlTRSBOT1RJQ0UgJ1BvbGlj eSBlcnJvcjogJSwgZGV0YWlsOiAlJywKICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywg J3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAogICAgICAgICBy ZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25m bGljdF9sb2dfeHh4Jyk7CiBFTkQgJCQ7Ci1OT1RJQ0U6ICBQb2xpY3kgZXJyb3I6IHBlcm1pc3Np b24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUs IGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KK05PVElDRTogIFBvbGljeSBlcnJvcjog Y2Fubm90IGNyZWF0ZSBwb2xpY3kgb24gY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9s b2dfeHh4IiwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0 YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgogLS0gU3RhdGlzdGljcyBv biBjb25mbGljdCBsb2cgdGFibGUKIERPICQkCiBERUNMQVJFCkBAIC05NDMsMTMgKzk0MywxMyBA QCBCRUdJTgogICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMu cmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAnQ1JF QVRFIFNUQVRJU1RJQ1MgczEgT04gcmVsbmFtZSwgc2NoZW1hbmFtZSBGUk9NICcgfHwgdGFiX25h bWU7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElP TiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElD UyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJ TDsKICAgICBSQUlTRSBOT1RJQ0UgJ1N0YXRpc3RpY3MgZXJyb3I6ICUsIGRldGFpbDogJScsCiAg ICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3Bn X2NvbmZsaWN0X2xvZ194eHgnKSwKICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwg J3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwogRU5EICQkOwot Tk9USUNFOiAgU3RhdGlzdGljcyBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6ICJwZ19jb25mbGlj dF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBDb25mbGljdCBsb2cg dGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24g Y29uZmxpY3RzLgorTk9USUNFOiAgU3RhdGlzdGljcyBlcnJvcjogY2Fubm90IGNyZWF0ZSBzdGF0 aXN0aWNzIG9uIGNvbmZsaWN0IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9nX3h4eCIsIGRldGFp bDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dp Y2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KIC0tIEluaGVyaXRhbmNlIGZyb20gY29uZmxpY3Qg bG9nIHRhYmxlCiBETyAkJAogREVDTEFSRQpAQCAtOTYxLDEzICs5NjEsMTMgQEAgQkVHSU4KICAg ICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAgIEVYRUNVVEUgJ0NSRUFURSBUQUJMRSBw dWJsaWMuY29uZmxpY3RfY2hpbGQgKCkgSU5IRVJJVFMgKCcgfHwgdGFiX25hbWUgfHwgJyknOwot RVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCitFWENFUFRJT04gV0hF TiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCiAgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJy X21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CiAg ICAgUkFJU0UgTk9USUNFICdJbmhlcml0YW5jZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKICAgICAg ICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29u ZmxpY3RfbG9nX3h4eCcpLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdf Y29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CiBFTkQgJCQ7Ci1OT1RJ Q0U6ICBJbmhlcml0YW5jZSBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6IGNhbm5vdCBpbmhlcml0 IGZyb20gY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBD b25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3RzLgorTk9USUNFOiAgSW5oZXJpdGFuY2UgZXJyb3I6IGNhbm5v dCBpbmhlcml0IGZyb20gY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4Iiwg ZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgogLS0gQ29sdW1uIHJlbmFtZSBvbiBjb25m bGljdCBsb2cgdGFibGUKIERPICQkCiBERUNMQVJFCkBAIC05NzksMTMgKzk3OSwxMyBAQCBCRUdJ TgogICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFt ZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3VibmFtZSA9ICdy ZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAnQUxURVIgVEFC TEUgJyB8fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBDT0xVTU4gcmVsbmFtZSBUTyBuZXdfcmVsbmFt ZSc7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElP TiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElD UyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJ TDsKICAgICBSQUlTRSBOT1RJQ0UgJ0NvbHVtbiByZW5hbWUgZXJyb3I6ICUsIGRldGFpbDogJScs CiAgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywg J3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFp bCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwogRU5EICQk OwotTk9USUNFOiAgQ29sdW1uIHJlbmFtZSBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6ICJwZ19j b25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBDb25mbGlj dCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3RzLgorTk9USUNFOiAgQ29sdW1uIHJlbmFtZSBlcnJvcjogY2Fubm90IHJl bmFtZSBjb2x1bW5zIG9mIGNvbmZsaWN0IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9nX3h4eCIs IGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KIC0tIEZvcmVpZ24ga2V5IHJlZmVyZW5j ZSB0byBjb25mbGljdCBsb2cgdGFibGUKIERPICQkCiBERUNMQVJFCkBAIC05OTcsMTMgKzk5Nywx MyBAQCBCRUdJTgogICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9O IGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAn Q1JFQVRFIFRBQkxFIHB1YmxpYy5jb25mbGljdF9mayAocmVsbmFtZSB0ZXh0IFJFRkVSRU5DRVMg JyB8fCB0YWJfbmFtZSB8fCAnKHJlbG5hbWUpKSc7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZpY2ll bnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4K ICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJf ZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKICAgICBSQUlTRSBOT1RJQ0UgJ0ZvcmVpZ24g a2V5IGVycm9yOiAlLCBkZXRhaWw6ICUnLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNn LCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCiAgICAgICAg IHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2Nv bmZsaWN0X2xvZ194eHgnKTsKIEVORCAkJDsKLU5PVElDRTogIEZvcmVpZ24ga2V5IGVycm9yOiBw ZXJtaXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0X2xvZ194eHgiIGlzIGEgY29uZmxpY3QgbG9n IHRhYmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRh YmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCitOT1RJQ0U6ICBGb3JlaWdu IGtleSBlcnJvcjogY2Fubm90IHJlZmVyZW5jZSBjb25mbGljdCBsb2cgdGFibGUgInBnX2NvbmZs aWN0X2xvZ194eHgiLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5h Z2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCiAtLSBBbHRlciB0 YWJsZSBvd25lcgogRE8gJCQKIERFQ0xBUkUKQEAgLTEwMTUsMTMgKzEwMTUsMTMgQEAgQkVHSU4K ICAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUg PSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxF ICcgfHwgdGFiX25hbWUgfHwgJyBPV05FUiBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyX2R1 bW15JzsKLUVYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorRVhDRVBU SU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgogICAgIEdFVCBTVEFDS0VEIERJQUdOT1NU SUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVU QUlMOwogICAgIFJBSVNFIE5PVElDRSAnQWx0ZXIgb3duZXIgZXJyb3I6ICUsIGRldGFpbDogJScs CiAgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywg J3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFp bCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwogRU5EICQk OwotTk9USUNFOiAgQWx0ZXIgb3duZXIgZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVkOiAicGdfY29u ZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFpbDogQ29uZmxpY3Qg bG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0cy4KK05PVElDRTogIEFsdGVyIG93bmVyIGVycm9yOiBjYW5ub3QgYWx0ZXIg Y29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGlj dCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3RzLgogLS0gQWx0ZXIgdGFibGUgc2NoZW1hCiBETyAkJAogREVDTEFSRQpA QCAtMTAzMywxMyArMTAzMywxMyBAQCBCRUdJTgogICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBn X3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9p ZAogICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVz dCc7CiAgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIFNFVCBTQ0hF TUEgcHVibGljJzsKLUVYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgor RVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgogICAgIEdFVCBTVEFDS0VEIERJ QUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJ T05fREVUQUlMOwogICAgIFJBSVNFIE5PVElDRSAnQWx0ZXIgc2NoZW1hIGVycm9yOiAlLCBkZXRh aWw6ICUnLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9n X1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCiAgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVy cl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsK IEVORCAkJDsKLU5PVElDRTogIEFsdGVyIHNjaGVtYSBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6 ICJwZ19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBD b25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3RzLgorTk9USUNFOiAgQWx0ZXIgc2NoZW1hIGVycm9yOiBjYW5u b3QgYWx0ZXIgY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWls OiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgogLS0gQ3JlYXRlIHRyaWdnZXIgb24gY29uZmxpY3Qg bG9nIHRhYmxlCiBETyAkJAogREVDTEFSRQpAQCAtMTA1MSwxMyArMTA1MSwxMyBAQCBCRUdJTgog ICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9 ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAnQ1JFQVRFIFRSSUdH RVIgdDEgQkVGT1JFIElOU0VSVCBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgRk9SIEVBQ0ggUk9XIEVY RUNVVEUgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpJzsKLUVYQ0VQVElPTiBX SEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2Jq ZWN0X3R5cGUgVEhFTgogICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNT QUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwogICAgIFJBSVNFIE5P VElDRSAnQ3JlYXRlIHRyaWdnZXIgZXJyb3I6ICUsIGRldGFpbDogJScsCiAgICAgICAgIHJlZ2V4 cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xv Z194eHgnKSwKICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0 X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwogRU5EICQkOwotTk9USUNFOiAgQ3Jl YXRlIHRyaWdnZXIgZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX3h4 eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4KK05PVElDRTogIENyZWF0ZSB0cmlnZ2VyIGVycm9yOiBjYW5ub3QgY3JlYXRlIHRyaWdnZXIg b24gY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25m bGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVw bGljYXRpb24gY29uZmxpY3RzLgogLS0gUmVuYW1lIHRyaWdnZXIgb24gY29uZmxpY3QgbG9nIHRh YmxlCiBETyAkJAogREVDTEFSRQpAQCAtMTA2OSwxMyArMTA2OSwxMyBAQCBCRUdJTgogICAgIEZS T00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAnQUxURVIgVFJJR0dFUiBub25f ZXhpc3RlbnRfdHJpZ2dlciBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgUkVOQU1FIFRPIG5ld190cmln Z2VyJzsKLUVYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorRVhDRVBU SU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgogICAgIEdFVCBTVEFDS0VEIERJQUdOT1NU SUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVU QUlMOwogICAgIFJBSVNFIE5PVElDRSAnUmVuYW1lIHRyaWdnZXIgZXJyb3I6ICUsIGRldGFpbDog JScsCiAgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQr JywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2Rl dGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwogRU5E ICQkOwotTk9USUNFOiAgUmVuYW1lIHRyaWdnZXIgZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVkOiAi cGdfY29uZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFpbDogQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJl cGxpY2F0aW9uIGNvbmZsaWN0cy4KK05PVElDRTogIFJlbmFtZSB0cmlnZ2VyIGVycm9yOiBjYW5u b3QgcmVuYW1lIHRyaWdnZXIgb24gY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2df eHh4IiwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJs ZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgogLS0gQ3JlYXRlIHJ1bGUgb24g Y29uZmxpY3QgbG9nIHRhYmxlCiBETyAkJAogREVDTEFSRQpAQCAtMTA4NywxMyArMTA4NywxMyBA QCBCRUdJTgogICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMu cmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAnQ1JF QVRFIFJVTEUgcjEgQVMgT04gSU5TRVJUIFRPICcgfHwgdGFiX25hbWUgfHwgJyBETyBJTlNURUFE IE5PVEhJTkcnOwotRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCitF WENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCiAgICAgR0VUIFNUQUNLRUQgRElB R05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElP Tl9ERVRBSUw7CiAgICAgUkFJU0UgTk9USUNFICdDcmVhdGUgcnVsZSBlcnJvcjogJSwgZGV0YWls OiAlJywKICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19c ZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf ZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CiBF TkQgJCQ7Ci1OT1RJQ0U6ICBDcmVhdGUgcnVsZSBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6ICJw Z19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBDb25m bGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVw bGljYXRpb24gY29uZmxpY3RzLgorTk9USUNFOiAgQ3JlYXRlIHJ1bGUgZXJyb3I6IGNvbmZsaWN0 IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9nX3h4eCIgY2Fubm90IGhhdmUgcnVsZXMsIGRldGFp bDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dp Y2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KIC0tIFJlbmFtZSBydWxlIG9uIGNvbmZsaWN0IGxv ZyB0YWJsZQogRE8gJCQKIERFQ0xBUkUKQEAgLTExMDUsMTMgKzExMDUsMTMgQEAgQkVHSU4KICAg ICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAgIEVYRUNVVEUgJ0FMVEVSIFJVTEUgbm9u X2V4aXN0ZW50X3J1bGUgT04gJyB8fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBUTyBuZXdfcnVsZSc7 Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBX SEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBl cnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsK ICAgICBSQUlTRSBOT1RJQ0UgJ1JlbmFtZSBydWxlIGVycm9yOiAlLCBkZXRhaWw6ICUnLAogICAg ICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19j b25mbGljdF9sb2dfeHh4JyksCiAgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdw Z19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKIEVORCAkJDsKLU5P VElDRTogIFJlbmFtZSBydWxlIGVycm9yOiBwZXJtaXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0 X2xvZ194eHgiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0 YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBj b25mbGljdHMuCitOT1RJQ0U6ICBSZW5hbWUgcnVsZSBlcnJvcjogY29uZmxpY3QgbG9nIHRhYmxl ICJwZ19jb25mbGljdF9sb2dfeHh4IiBjYW5ub3QgaGF2ZSBydWxlcywgZGV0YWlsOiBDb25mbGlj dCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3RzLgogLS0gQ3JlYXRlIGluZGV4IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQog RE8gJCQKIERFQ0xBUkUKQEAgLTExMjMsMTMgKzExMjMsMTMgQEAgQkVHSU4KICAgICBGUk9NIHBn X2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxp Y3RfbG9nXycgfHwgcy5vaWQKICAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF9wcm90ZWN0aW9uX3Rlc3QnOwogICAgIEVYRUNVVEUgJ0NSRUFURSBJTkRFWCBpZHgxIE9OICcg fHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSknOwotRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50 X3ByaXZpbGVnZSBUSEVOCitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCiAg ICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2Rl dGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CiAgICAgUkFJU0UgTk9USUNFICdDcmVhdGUgaW5k ZXggZXJyb3I6ICUsIGRldGFpbDogJScsCiAgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2cs ICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKICAgICAgICAg cmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29u ZmxpY3RfbG9nX3h4eCcpOwogRU5EICQkOwotTk9USUNFOiAgQ3JlYXRlIGluZGV4IGVycm9yOiBw ZXJtaXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0X2xvZ194eHgiIGlzIGEgY29uZmxpY3QgbG9n IHRhYmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRh YmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCitOT1RJQ0U6ICBDcmVhdGUg aW5kZXggZXJyb3I6IGNhbm5vdCBjaGFuZ2UgY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGlj dF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdl ZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgogLS0gZmFpbCAtIGNv bmZsaWN0IGxvZyB0YWJsZSBjYW5ub3QgYmUgYWRkZWQgdG8gYSBwdWJsaWNhdGlvbgogRE8gJCQK IERFQ0xBUkUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCmluZGV4IDA4NGU1ZTdl NzhmLi41MDNjOWNlYjI3MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2Ny aXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBA IC02NTQsOCArNjU0LDggQEAgQkVHSU4KIAogICAgIFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBB TFRFUiBUQUJMRSBvbiBjb25mbGljdCBsb2cgdGFibGUnOwogICAgIEVYRUNVVEUgJ0FMVEVSIFRB QkxFICcgfHwgdGFiX25hbWUgfHwgJyBBREQgQ09MVU1OIGV4dHJhX2luZm8gdGV4dCc7Ci1FWENF UFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KLSAgICBSQUlTRSBOT1RJQ0Ug J2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBB TFRFUic7CitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0Ug Tk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5n IEFMVEVSJzsKIEVORCAkJDsKIAogLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxv ZyB0YWJsZQpAQCAtNzI3LDcgKzcyNyw3IEBAIEJFR0lOCiAgICAgRlJPTSBwZ19jbGFzcyBjIEpP SU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCiAgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0JzsKICAgICBFWEVDVVRFICdDUkVBVEUgUE9MSUNZIHAxIE9OICcgfHwgdGFiX25hbWUg fHwgJyBVU0lORyAodHJ1ZSknOwotRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVn ZSBUSEVOCitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCiAgICAgR0VUIFNU QUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBH X0VYQ0VQVElPTl9ERVRBSUw7CiAgICAgUkFJU0UgTk9USUNFICdQb2xpY3kgZXJyb3I6ICUsIGRl dGFpbDogJScsCiAgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9s b2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKQEAgLTc0NSw3ICs3NDUsNyBAQCBCRUdJ TgogICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFt ZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3VibmFtZSA9ICdy ZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAnQ1JFQVRFIFNU QVRJU1RJQ1MgczEgT04gcmVsbmFtZSwgc2NoZW1hbmFtZSBGUk9NICcgfHwgdGFiX25hbWU7Ci1F WENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBXSEVO IHdyb25nX29iamVjdF90eXBlIFRIRU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJf bXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKICAg ICBSQUlTRSBOT1RJQ0UgJ1N0YXRpc3RpY3MgZXJyb3I6ICUsIGRldGFpbDogJScsCiAgICAgICAg IHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZs aWN0X2xvZ194eHgnKSwKQEAgLTc2Myw3ICs3NjMsNyBAQCBCRUdJTgogICAgIEZST00gcGdfY2xh c3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9s b2dfJyB8fCBzLm9pZAogICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCc7CiAgICAgRVhFQ1VURSAnQ1JFQVRFIFRBQkxFIHB1YmxpYy5jb25mbGlj dF9jaGlsZCAoKSBJTkhFUklUUyAoJyB8fCB0YWJfbmFtZSB8fCAnKSc7Ci1FWENFUFRJT04gV0hF TiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVj dF90eXBlIFRIRU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FH RV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKICAgICBSQUlTRSBOT1RJ Q0UgJ0luaGVyaXRhbmNlIGVycm9yOiAlLCBkZXRhaWw6ICUnLAogICAgICAgICByZWdleHBfcmVw bGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4 JyksCkBAIC03ODEsNyArNzgxLDcgQEAgQkVHSU4KICAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBw Z19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5v aWQKICAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rl c3QnOwogICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUgfHwgJyBSRU5BTUUg Q09MVU1OIHJlbG5hbWUgVE8gbmV3X3JlbG5hbWUnOwotRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNp ZW50X3ByaXZpbGVnZSBUSEVOCitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVO CiAgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJy X2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CiAgICAgUkFJU0UgTk9USUNFICdDb2x1bW4g cmVuYW1lIGVycm9yOiAlLCBkZXRhaWw6ICUnLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf bXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCkBAIC03 OTksNyArNzk5LDcgQEAgQkVHSU4KICAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3Jp cHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBX SEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAg IEVYRUNVVEUgJ0NSRUFURSBUQUJMRSBwdWJsaWMuY29uZmxpY3RfZmsgKHJlbG5hbWUgdGV4dCBS RUZFUkVOQ0VTICcgfHwgdGFiX25hbWUgfHwgJyhyZWxuYW1lKSknOwotRVhDRVBUSU9OIFdIRU4g aW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3Rf dHlwZSBUSEVOCiAgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0Vf VEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CiAgICAgUkFJU0UgTk9USUNF ICdGb3JlaWduIGtleSBlcnJvcjogJSwgZGV0YWlsOiAlJywKICAgICAgICAgcmVnZXhwX3JlcGxh Y2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcp LApAQCAtODE3LDcgKzgxNyw3IEBAIEJFR0lOCiAgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk CiAgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0 JzsKICAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgT1dORVIgVE8g cmVncmVzc19zdWJzY3JpcHRpb25fdXNlcl9kdW1teSc7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRI RU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBl cnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKICAgICBSQUlTRSBOT1RJQ0UgJ0FsdGVy IG93bmVyIGVycm9yOiAlLCBkZXRhaWw6ICUnLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf bXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCkBAIC04 MzUsNyArODM1LDcgQEAgQkVHSU4KICAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3Jp cHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBX SEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAg IEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUgfHwgJyBTRVQgU0NIRU1BIHB1Ymxp Yyc7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElP TiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElD UyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJ TDsKICAgICBSQUlTRSBOT1RJQ0UgJ0FsdGVyIHNjaGVtYSBlcnJvcjogJSwgZGV0YWlsOiAlJywK ICAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAn cGdfY29uZmxpY3RfbG9nX3h4eCcpLApAQCAtODUzLDcgKzg1Myw3IEBAIEJFR0lOCiAgICAgRlJP TSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCiAgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKICAgICBFWEVDVVRFICdDUkVBVEUgVFJJR0dFUiB0MSBC RUZPUkUgSU5TRVJUIE9OICcgfHwgdGFiX25hbWUgfHwgJyBGT1IgRUFDSCBST1cgRVhFQ1VURSBG VU5DVElPTiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9mdW5jKCknOwotRVhDRVBUSU9OIFdIRU4gaW5z dWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlw ZSBUSEVOCiAgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVY VCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CiAgICAgUkFJU0UgTk9USUNFICdD cmVhdGUgdHJpZ2dlciBlcnJvcjogJSwgZGV0YWlsOiAlJywKICAgICAgICAgcmVnZXhwX3JlcGxh Y2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcp LApAQCAtODcxLDcgKzg3MSw3IEBAIEJFR0lOCiAgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk CiAgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0 JzsKICAgICBFWEVDVVRFICdBTFRFUiBUUklHR0VSIG5vbl9leGlzdGVudF90cmlnZ2VyIE9OICcg fHwgdGFiX25hbWUgfHwgJyBSRU5BTUUgVE8gbmV3X3RyaWdnZXInOwotRVhDRVBUSU9OIFdIRU4g aW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3Rf dHlwZSBUSEVOCiAgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0Vf VEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CiAgICAgUkFJU0UgTk9USUNF ICdSZW5hbWUgdHJpZ2dlciBlcnJvcjogJSwgZGV0YWlsOiAlJywKICAgICAgICAgcmVnZXhwX3Jl cGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4 eCcpLApAQCAtODg5LDcgKzg4OSw3IEBAIEJFR0lOCiAgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMu b2lkCiAgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90 ZXN0JzsKICAgICBFWEVDVVRFICdDUkVBVEUgUlVMRSByMSBBUyBPTiBJTlNFUlQgVE8gJyB8fCB0 YWJfbmFtZSB8fCAnIERPIElOU1RFQUQgTk9USElORyc7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRI RU4KICAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBl cnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKICAgICBSQUlTRSBOT1RJQ0UgJ0NyZWF0 ZSBydWxlIGVycm9yOiAlLCBkZXRhaWw6ICUnLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf bXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCkBAIC05 MDcsNyArOTA3LDcgQEAgQkVHSU4KICAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3Jp cHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBX SEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAg IEVYRUNVVEUgJ0FMVEVSIFJVTEUgbm9uX2V4aXN0ZW50X3J1bGUgT04gJyB8fCB0YWJfbmFtZSB8 fCAnIFJFTkFNRSBUTyBuZXdfcnVsZSc7Ci1FWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJp dmlsZWdlIFRIRU4KK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KICAgICBH RVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWls ID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKICAgICBSQUlTRSBOT1RJQ0UgJ1JlbmFtZSBydWxlIGVy cm9yOiAlLCBkZXRhaWw6ICUnLAogICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdf Y29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCkBAIC05MjUsNyArOTI1 LDcgQEAgQkVHSU4KICAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBP TiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKICAgICBXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwogICAgIEVYRUNVVEUg J0NSRUFURSBJTkRFWCBpZHgxIE9OICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSknOwotRVhD RVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCitFWENFUFRJT04gV0hFTiB3 cm9uZ19vYmplY3RfdHlwZSBUSEVOCiAgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21z ZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CiAgICAg UkFJU0UgTk9USUNFICdDcmVhdGUgaW5kZXggZXJyb3I6ICUsIGRldGFpbDogJScsCiAgICAgICAg IHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZs aWN0X2xvZ194eHgnKSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9j b25mbGljdHMucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmlu ZGV4IDQyNjBjNGE1ODAzLi4zYzJkMmRlYmY1NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MzVfY29uZmxpY3RzLnBsCkBAIC03MjQsNyArNzI0LDcgQEAgb2soICRub2RlX0EtPnBvbGxfcXVl cnlfdW50aWwoCiAJIkFMVEVSIFRBQkxFICRjbHQgU0VUIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCIp OwogbGlrZSgKIAkkc3RkZXJyLAotCXFyL3Blcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3Rf bG9nX1xkKyIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUvLAorCXFyL2Nhbm5vdCBhbHRlciBjb25m bGljdCBsb2cgdGFibGUgInBnX2NvbmZsaWN0X2xvZ19cZCsiLywKIAkibW92aW5nIGEgY29uZmxp Y3QgbG9nIHRhYmxlIHdpdGggQUxURVIgVEFCTEUgU0VUIFRBQkxFU1BBQ0UgaXMgcmVqZWN0ZWQi KTsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo= --00000000000005becf065574d01a Content-Type: text/plain; charset="US-ASCII"; name="v59_amit_3.txt" Content-Disposition: attachment; filename="v59_amit_3.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0eurrj1 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCA1ZGM1ZWJm ZDJhOS4uOTBkMmE0ZmFlZTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3Vic2NyaXB0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlw dGlvbi5vdXQKQEAgLTgwMiwxOSArODAyLDE3IEBAIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QxJzsKIC0tCiAtLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVy aWZpY2F0aW9uCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQg KGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOwotLS0gV2UgdXNlIGEgRE8gYmxv Y2sgd2l0aCBkeW5hbWljIFNRTCBiZWNhdXNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUKLS0tIG5h bWUgY29udGFpbnMgdGhlIHN1YnNjcmlwdGlvbiBPSUQsIHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlz dGljLiBUaGlzCi0tLSBhcHByb2FjaCBhbGxvd3MgdXMgdG8gYXR0ZW1wdCB0aGUgRFJPUCBhbmQg Y2FwdHVyZSB0aGUgZXhwZWN0ZWQgZXJyb3IKLS0tIHdpdGhvdXQgaGFyZC1jb2RpbmcgYSBzcGVj aWZpYyBPSUQgaW4gdGhlIGV4cGVjdGVkIG91dHB1dAorLS0gVGhlIGNvbmZsaWN0IGxvZyB0YWJs ZSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJzY3JpcHRpb24gT0lELCB3aGljaCBpcworLS0gbm9uLWRl dGVybWluaXN0aWMuICBDYXB0dXJlIGl0IGludG8gYSBwc3FsIHZhcmlhYmxlIGFuZCByZXBvcnQg b25seSB0aGUKKy0tIFNRTFNUQVRFLCBzbyB0aGUgZXhwZWN0ZWQgb3V0cHV0IGRvZXMgbm90IGRl cGVuZCBvbiB0aGUgT0lELgogLS0gZmFpbCAtIGRyb3AgdGFibGUgbm90IGFsbG93ZWQgZHVlIHRv IGludGVybmFsIGRlcGVuZGVuY3kKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gTk9USUNFOwot RE8gJCQKLUJFR0lOCi0gICAgRVhFQ1VURSAnRFJPUCBUQUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2Nv bmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18nIHx8IG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnKTsKLUVYQ0VQVElPTiBXSEVOIGlu c3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhw ZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UnOwotRU5EICQkOwotTk9USUNFOiAg Y2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UKK1NFTEVDVCAn cGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9nXycgfHwgb2lkIEFTIGNsdDEKKyAgICBGUk9NIHBn X3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIFxn c2V0Citcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQorRFJPUCBUQUJMRSA6Y2x0MTsKK0VSUk9SOiAg NDI1MDEKK1xzZXQgVkVSQk9TSVRZIGRlZmF1bHQKIC0tIENMRUFOVVA6IERST1AgU1VCU0NSSVBU SU9OIHJlYXBzIHRoZSB0YWJsZQogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEgRElTQUJMRTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC04MzcsMzM1ICs4MzUsNzQgQEAgQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBDT05ORUNUSU9OICdk Ym5hbWU9cmVncmVzc18KICAgICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CiBXQVJOSU5HOiAgc3Vi c2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGlu aXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0 aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlw dGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KLS0tIFRyeWluZyB0byBBTFRFUiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlCi0tLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlz IHN5c3RlbS1tYW5hZ2VkCi0tLSBBcyBtZW50aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywg d2UgdXNlIGEgRE8gYmxvY2sgdG8gaGlkZSBkeW5hbWljIE9JRHMKLVNFVCBjbGllbnRfbWluX21l c3NhZ2VzID0gTk9USUNFOwotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJfbmFtZSB0ZXh0OwotQkVH SU4KLSAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCist LSBUaGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkOyBpdHMgbmFtZSBjb250 YWlucyB0aGUKKy0tIHN1YnNjcmlwdGlvbiBPSUQsIHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlzdGlj LiAgQ2FwdHVyZSB0aGUgbmFtZSBpbnRvIGEgcHNxbAorLS0gdmFyaWFibGUgYW5kIHJlcG9ydCBv bmx5IHRoZSBTUUxTVEFURSBmb3IgdGhlIG9wZXJhdGlvbnMgdGhhdCBtdXN0IGJlCistLSByZWpl Y3RlZCwgc28gdGhlIGV4cGVjdGVkIG91dHB1dCBzdGF5cyBmcmVlIG9mIHRoZSBkeW5hbWljIE9J RC4gIEV2ZXJ5CistLSBzdGF0ZW1lbnQgaW4gdGhlIFZFUkJPU0lUWS1zcWxzdGF0ZSBibG9jayBi ZWxvdyBtdXN0IGZhaWwgd2l0aCA0MjgwOQorLS0gKHdyb25nX29iamVjdF90eXBlKSwgZXhjZXB0 IGFkZGluZyB0aGUgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiwgd2hpY2ggZmFpbHMKKy0tIHdpdGgg MjIwMjMgKGludmFsaWRfcGFyYW1ldGVyX3ZhbHVlKS4KK1NFTEVDVCAncGdfY29uZmxpY3QuJyB8 fCByZWxuYW1lIEFTIGNsdAogICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlv biBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJF IHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0KLSAgICBS QUlTRSBOT1RJQ0UgJ0F0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gY29uZmxpY3QgbG9nIHRhYmxl JzsKLSAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVN TiBleHRyYV9pbmZvIHRleHQnOwotRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhF TgotICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVj dF90eXBlIGR1cmluZyBBTFRFUic7Ci1FTkQgJCQ7Ci1OT1RJQ0U6ICBBdHRlbXB0aW5nIEFMVEVS IFRBQkxFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQotTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQg ZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1cmluZyBBTFRFUgotLS0gVGVzdCBNYW51YWwgSU5T RVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQotLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRo ZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAotLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9y IG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgotRE8gJCQKLURFQ0xBUkUKLSAgICB0 YWJfbmFtZSB0ZXh0OwotQkVHSU4KLSAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFt ZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9u IHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCi0gICAgV0hFUkUg cy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKLQotICAgIEVY RUNVVEUgJ0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSkgVkFMVUVTICgn J215dGVzdCcnKSc7Ci1FWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCi0gICAg UkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUg ZHVyaW5nIElOU0VSVCc7Ci1FTkQgJCQ7Ci1OT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJv cjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVAotLS0gVGVzdCBNYW51YWwgVVBEQVRF IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQotLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0 YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAotLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1l c3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJf bmFtZSB0ZXh0OworICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3Rl Y3Rpb25fdGVzdCcgXGdzZXQKKy0tIFRyaWdnZXIgZnVuY3Rpb24gdXNlZCBieSB0aGUgQ1JFQVRF IFRSSUdHRVIgY2hlY2sgYmVsb3cuCitDUkVBVEUgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdn ZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dlciBBUyAkJAogQkVHSU4KLSAgICBTRUxFQ1QgJ3BnX2Nv bmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19jbGFzcyBjIEpP SU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0JzsKLQotICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8IHRhYl9uYW1lIHx8ICcgU0VUIHJl bG5hbWUgPSAnJ215dGVzdCcnICc7Ci1FWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBU SEVOCi0gICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2Jq ZWN0X3R5cGUgZHVyaW5nIFVQREFURSc7Ci1FTkQgJCQ7Ci1OT1RJQ0U6ICBjYXB0dXJlZCBleHBl Y3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIFVQREFURQotLS0gVHJ5aW5nIHRv IHBlcmZvcm0gVFJVTkNBVEUvREVMRVRFIG9uIHRoZSBjb25mbGljdCBsb2cgdGFibGUKLS0tIFRo aXMgc2hvdWxkIGJlIGFsbG93ZWQgc28gdGhhdCB1c2VyIGNhbiBwZXJmb3JtIGNsZWFudXAKLVNF TEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIEFTIGNvbmZsaWN0X3RhYgotRlJPTSBwZ19j bGFzcyBjCi1KT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGlj dF9sb2dfJyB8fCBzLm9pZAotV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0JyBcZ3NldAotVFJVTkNBVEUgOmNvbmZsaWN0X3RhYjsKLURFTEVURSBGUk9N IDpjb25mbGljdF90YWI7Ci0tLSBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3IHRhYmxlIG1hbnVhbGx5 IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKLS0tIFRoaXMgc2hvdWxkIGZhaWwgYXMgdGhl IG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcworICAgIFJFVFVS TiBORVc7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworXHNldCBWRVJCT1NJVFkgc3Fsc3Rh dGUKK0FMVEVSIFRBQkxFIDpjbHQgQUREIENPTFVNTiBleHRyYV9pbmZvIHRleHQ7CitFUlJPUjog IDQyODA5CitJTlNFUlQgSU5UTyA6Y2x0IChyZWxuYW1lKSBWQUxVRVMgKCdteXRlc3QnKTsKK0VS Uk9SOiAgNDI4MDkKK1VQREFURSA6Y2x0IFNFVCByZWxuYW1lID0gJ215dGVzdCc7CitFUlJPUjog IDQyODA5CitDUkVBVEUgUE9MSUNZIHAxIE9OIDpjbHQgVVNJTkcgKHRydWUpOworRVJST1I6ICA0 MjgwOQorQ1JFQVRFIFNUQVRJU1RJQ1MgczEgT04gcmVsbmFtZSwgc2NoZW1hbmFtZSBGUk9NIDpj bHQ7CitFUlJPUjogIDQyODA5CitDUkVBVEUgVEFCTEUgcHVibGljLmNvbmZsaWN0X2NoaWxkICgp IElOSEVSSVRTICg6Y2x0KTsKK0VSUk9SOiAgNDI4MDkKK0FMVEVSIFRBQkxFIDpjbHQgUkVOQU1F IENPTFVNTiByZWxuYW1lIFRPIG5ld19yZWxuYW1lOworRVJST1I6ICA0MjgwOQorQ1JFQVRFIFRB QkxFIHB1YmxpYy5jb25mbGljdF9mayAocmVsbmFtZSB0ZXh0IFJFRkVSRU5DRVMgOmNsdChyZWxu YW1lKSk7CitFUlJPUjogIDQyODA5CitBTFRFUiBUQUJMRSA6Y2x0IE9XTkVSIFRPIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXJfZHVtbXk7CitFUlJPUjogIDQyODA5CitBTFRFUiBUQUJMRSA6Y2x0 IFNFVCBTQ0hFTUEgcHVibGljOworRVJST1I6ICA0MjgwOQorQ1JFQVRFIFRSSUdHRVIgdDEgQkVG T1JFIElOU0VSVCBPTiA6Y2x0IEZPUiBFQUNIIFJPVyBFWEVDVVRFIEZVTkNUSU9OIHB1YmxpYy5k dW1teV90cmlnZ2VyX2Z1bmMoKTsKK0VSUk9SOiAgNDI4MDkKK0FMVEVSIFRSSUdHRVIgbm9uX2V4 aXN0ZW50X3RyaWdnZXIgT04gOmNsdCBSRU5BTUUgVE8gbmV3X3RyaWdnZXI7CitFUlJPUjogIDQy ODA5CitDUkVBVEUgUlVMRSByMSBBUyBPTiBJTlNFUlQgVE8gOmNsdCBETyBJTlNURUFEIE5PVEhJ Tkc7CitFUlJPUjogIDQyODA5CitBTFRFUiBSVUxFIG5vbl9leGlzdGVudF9ydWxlIE9OIDpjbHQg UkVOQU1FIFRPIG5ld19ydWxlOworRVJST1I6ICA0MjgwOQorQ1JFQVRFIElOREVYIGlkeDEgT04g OmNsdCAocmVsbmFtZSk7CitFUlJPUjogIDQyODA5CitTRUxFQ1QgMSBGUk9NIDpjbHQgRk9SIFVQ REFURTsKK0VSUk9SOiAgNDI4MDkKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2Zvcl9jbHQg Rk9SIFRBQkxFIDpjbHQ7CitFUlJPUjogIDIyMDIzCitcc2V0IFZFUkJPU0lUWSBkZWZhdWx0Cist LSBDbGVhbiB1cCB0aGUgdHJpZ2dlciBmdW5jdGlvbiB1c2VkIGFib3ZlLgorRFJPUCBGVU5DVElP TiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9mdW5jKCk7CistLSBUUlVOQ0FURSBhbmQgREVMRVRFIGFy ZSBhbGxvd2VkIHNvIHRoYXQgdXNlcnMgY2FuIHBydW5lIHRoZSBjb25mbGljdCBsb2cuCitUUlVO Q0FURSA6Y2x0OworREVMRVRFIEZST00gOmNsdDsKKy0tIENyZWF0aW5nIGEgdGFibGUgZGlyZWN0 bHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZSBpcyByZWplY3RlZCBmb3IKKy0tIGV2ZXJ5 b25lICh0aGUgc2NoZW1hIGlzIHJlc2VydmVkIGZvciBjb25mbGljdCBsb2cgdGFibGVzKS4KIENS RUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7CiBFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzY2hlbWEgcGdfY29uZmxpY3QKIExJTkUgMTogQ1JFQVRFIFRB QkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJsZSAoaWQgaW50KTsKICAgICAgICAgICAgICAgICAg ICAgIF4KLS0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBpbnRvIHRoZSBwZ19jb25mbGljdCBu YW1lc3BhY2UKLS0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0byBtb3ZlIHRoZWlyIG93biB0 YWJsZXMgd2l0aGluIHRoaXMgbmFtZXNwYWNlCistLSBNb3ZpbmcgYSB1c2VyIHRhYmxlIGludG8g dGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZSBpcyBsaWtld2lzZSByZWplY3RlZC4KIENSRUFURSBU QUJMRSBwdWJsaWMudGVzdF9tb3ZlIChpZCBpbnQpOwogQUxURVIgVEFCTEUgcHVibGljLnRlc3Rf bW92ZSBTRVQgU0NIRU1BIHBnX2NvbmZsaWN0OwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3Igc2NoZW1hIHBnX2NvbmZsaWN0CiBEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7Ci0tLSBT ZXR1cCBkdW1teSB0cmlnZ2VyIGZ1bmN0aW9uIGZvciB0cmlnZ2VyIHRlc3RzCi1DUkVBVEUgRlVO Q1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dlciBBUyAkJAot QkVHSU4KLSAgICBSRVRVUk4gTkVXOwotRU5EOwotJCQgTEFOR1VBR0UgcGxwZ3NxbDsKLS0tIFBv bGljeSBvbiBjb25mbGljdCBsb2cgdGFibGUKLURPICQkCi1ERUNMQVJFCi0gICAgdGFiX25hbWUg dGV4dDsKLSAgICBlcnJfbXNnIHRleHQ7Ci0gICAgZXJyX2RldGFpbCB0ZXh0OwotQkVHSU4KLSAg ICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJP TSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKLSAgICBFWEVDVVRFICdDUkVBVEUgUE9MSUNZIHAxIE9O ICcgfHwgdGFiX25hbWUgfHwgJyBVU0lORyAodHJ1ZSknOwotRVhDRVBUSU9OIFdIRU4gd3Jvbmdf b2JqZWN0X3R5cGUgVEhFTgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBN RVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwotICAgIFJBSVNF IE5PVElDRSAnUG9saWN5IGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVw bGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4 JyksCi0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2df XGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKLUVORCAkJDsKLU5PVElDRTogIFBvbGljeSBl cnJvcjogY2Fubm90IGNyZWF0ZSBwb2xpY3kgb24gY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25m bGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFu YWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgotLS0gU3RhdGlz dGljcyBvbiBjb25mbGljdCBsb2cgdGFibGUKLURPICQkCi1ERUNMQVJFCi0gICAgdGFiX25hbWUg dGV4dDsKLSAgICBlcnJfbXNnIHRleHQ7Ci0gICAgZXJyX2RldGFpbCB0ZXh0OwotQkVHSU4KLSAg ICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJP TSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKLSAgICBFWEVDVVRFICdDUkVBVEUgU1RBVElTVElDUyBz MSBPTiByZWxuYW1lLCBzY2hlbWFuYW1lIEZST00gJyB8fCB0YWJfbmFtZTsKLUVYQ0VQVElPTiBX SEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBl cnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsK LSAgICBSQUlTRSBOT1RJQ0UgJ1N0YXRpc3RpY3MgZXJyb3I6ICUsIGRldGFpbDogJScsCi0gICAg ICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2Nv bmZsaWN0X2xvZ194eHgnKSwKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3Bn X2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotTk9U SUNFOiAgU3RhdGlzdGljcyBlcnJvcjogY2Fubm90IGNyZWF0ZSBzdGF0aXN0aWNzIG9uIGNvbmZs aWN0IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9nX3h4eCIsIGRldGFpbDogQ29uZmxpY3QgbG9n IHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9u IGNvbmZsaWN0cy4KLS0tIEluaGVyaXRhbmNlIGZyb20gY29uZmxpY3QgbG9nIHRhYmxlCi1ETyAk JAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAgIGVy cl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5h bWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlv biBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJF IHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhF Q1VURSAnQ1JFQVRFIFRBQkxFIHB1YmxpYy5jb25mbGljdF9jaGlsZCAoKSBJTkhFUklUUyAoJyB8 fCB0YWJfbmFtZSB8fCAnKSc7Ci1FWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVO Ci0gICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJy X2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7Ci0gICAgUkFJU0UgTk9USUNFICdJbmhlcml0 YW5jZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21z ZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAotICAgICAg ICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19j b25mbGljdF9sb2dfeHh4Jyk7Ci1FTkQgJCQ7Ci1OT1RJQ0U6ICBJbmhlcml0YW5jZSBlcnJvcjog Y2Fubm90IGluaGVyaXQgZnJvbSBjb25mbGljdCBsb2cgdGFibGUgInBnX2NvbmZsaWN0X2xvZ194 eHgiLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxl cyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCi0tLSBDb2x1bW4gcmVuYW1lIG9u IGNvbmZsaWN0IGxvZyB0YWJsZQotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJfbmFtZSB0ZXh0Owot ICAgIGVycl9tc2cgdGV4dDsKLSAgICBlcnJfZGV0YWlsIHRleHQ7Ci1CRUdJTgotICAgIFNFTEVD VCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKLSAgICBGUk9NIHBnX2Ns YXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3Rf bG9nXycgfHwgcy5vaWQKLSAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3QnOwotICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUg fHwgJyBSRU5BTUUgQ09MVU1OIHJlbG5hbWUgVE8gbmV3X3JlbG5hbWUnOwotRVhDRVBUSU9OIFdI RU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVy cl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwot ICAgIFJBSVNFIE5PVElDRSAnQ29sdW1uIHJlbmFtZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKLSAg ICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdf Y29uZmxpY3RfbG9nX3h4eCcpLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAn cGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7Ci1FTkQgJCQ7Ci1O T1RJQ0U6ICBDb2x1bW4gcmVuYW1lIGVycm9yOiBjYW5ub3QgcmVuYW1lIGNvbHVtbnMgb2YgY29u ZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGljdCBs b2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3RzLgotLS0gRm9yZWlnbiBrZXkgcmVmZXJlbmNlIHRvIGNvbmZsaWN0IGxvZyB0 YWJsZQotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJfbmFtZSB0ZXh0OwotICAgIGVycl9tc2cgdGV4 dDsKLSAgICBlcnJfZGV0YWlsIHRleHQ7Ci1CRUdJTgotICAgIFNFTEVDVCAncGdfY29uZmxpY3Qu JyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKLSAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19z dWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQK LSAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3Qn OwotICAgIEVYRUNVVEUgJ0NSRUFURSBUQUJMRSBwdWJsaWMuY29uZmxpY3RfZmsgKHJlbG5hbWUg dGV4dCBSRUZFUkVOQ0VTICcgfHwgdGFiX25hbWUgfHwgJyhyZWxuYW1lKSknOwotRVhDRVBUSU9O IFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNT IGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlM OwotICAgIFJBSVNFIE5PVElDRSAnRm9yZWlnbiBrZXkgZXJyb3I6ICUsIGRldGFpbDogJScsCi0g ICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3Bn X2NvbmZsaWN0X2xvZ194eHgnKSwKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwg J3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwot Tk9USUNFOiAgRm9yZWlnbiBrZXkgZXJyb3I6IGNhbm5vdCByZWZlcmVuY2UgY29uZmxpY3QgbG9n IHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVz IGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxp Y3RzLgotLS0gQWx0ZXIgdGFibGUgb3duZXIKLURPICQkCi1ERUNMQVJFCi0gICAgdGFiX25hbWUg dGV4dDsKLSAgICBlcnJfbXNnIHRleHQ7Ci0gICAgZXJyX2RldGFpbCB0ZXh0OwotQkVHSU4KLSAg ICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJP TSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKLSAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRh Yl9uYW1lIHx8ICcgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcl9kdW1teSc7Ci1F WENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCi0gICAgR0VUIFNUQUNLRUQgRElB R05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElP Tl9ERVRBSUw7Ci0gICAgUkFJU0UgTk9USUNFICdBbHRlciBvd25lciBlcnJvcjogJSwgZGV0YWls OiAlJywKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19c ZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf ZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7Ci1F TkQgJCQ7Ci1OT1RJQ0U6ICBBbHRlciBvd25lciBlcnJvcjogY2Fubm90IGFsdGVyIGNvbmZsaWN0 IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9nX3h4eCIsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRh YmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNv bmZsaWN0cy4KLS0tIEFsdGVyIHRhYmxlIHNjaGVtYQotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJf bmFtZSB0ZXh0OwotICAgIGVycl9tc2cgdGV4dDsKLSAgICBlcnJfZGV0YWlsIHRleHQ7Ci1CRUdJ TgotICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKLSAg ICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKLSAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwotICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcg fHwgdGFiX25hbWUgfHwgJyBTRVQgU0NIRU1BIHB1YmxpYyc7Ci1FWENFUFRJT04gV0hFTiB3cm9u Z19vYmplY3RfdHlwZSBUSEVOCi0gICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9 IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7Ci0gICAgUkFJ U0UgTk9USUNFICdBbHRlciBzY2hlbWEgZXJyb3I6ICUsIGRldGFpbDogJScsCi0gICAgICAgIHJl Z2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0 X2xvZ194eHgnKSwKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZs aWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotTk9USUNFOiAg QWx0ZXIgc2NoZW1hIGVycm9yOiBjYW5ub3QgYWx0ZXIgY29uZmxpY3QgbG9nIHRhYmxlICJwZ19j b25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0t bWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgotLS0gQ3Jl YXRlIHRyaWdnZXIgb24gY29uZmxpY3QgbG9nIHRhYmxlCi1ETyAkJAotREVDTEFSRQotICAgIHRh Yl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAgIGVycl9kZXRhaWwgdGV4dDsKLUJF R0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQot ICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9 ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VURSAnQ1JFQVRFIFRSSUdH RVIgdDEgQkVGT1JFIElOU0VSVCBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgRk9SIEVBQ0ggUk9XIEVY RUNVVEUgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpJzsKLUVYQ0VQVElPTiBX SEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBl cnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsK LSAgICBSQUlTRSBOT1RJQ0UgJ0NyZWF0ZSB0cmlnZ2VyIGVycm9yOiAlLCBkZXRhaWw6ICUnLAot ICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdw Z19jb25mbGljdF9sb2dfeHh4JyksCi0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWws ICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKLUVORCAkJDsK LU5PVElDRTogIENyZWF0ZSB0cmlnZ2VyIGVycm9yOiBjYW5ub3QgY3JlYXRlIHRyaWdnZXIgb24g Y29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGlj dCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3RzLgotLS0gUmVuYW1lIHRyaWdnZXIgb24gY29uZmxpY3QgbG9nIHRhYmxl Ci1ETyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0Owot ICAgIGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8 IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNj cmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAg IFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0g ICAgRVhFQ1VURSAnQUxURVIgVFJJR0dFUiBub25fZXhpc3RlbnRfdHJpZ2dlciBPTiAnIHx8IHRh Yl9uYW1lIHx8ICcgUkVOQU1FIFRPIG5ld190cmlnZ2VyJzsKLUVYQ0VQVElPTiBXSEVOIHdyb25n X29iamVjdF90eXBlIFRIRU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0g TUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKLSAgICBSQUlT RSBOT1RJQ0UgJ1JlbmFtZSB0cmlnZ2VyIGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAgICBy ZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGlj dF9sb2dfeHh4JyksCi0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25m bGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKLUVORCAkJDsKLU5PVElDRTog IFJlbmFtZSB0cmlnZ2VyIGVycm9yOiBjYW5ub3QgcmVuYW1lIHRyaWdnZXIgb24gY29uZmxpY3Qg bG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IiwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFi bGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29u ZmxpY3RzLgotLS0gQ3JlYXRlIHJ1bGUgb24gY29uZmxpY3QgbG9nIHRhYmxlCi1ETyAkJAotREVD TEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAgIGVycl9kZXRh aWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5U TyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9O IGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJFIHMuc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VURSAn Q1JFQVRFIFJVTEUgcjEgQVMgT04gSU5TRVJUIFRPICcgfHwgdGFiX25hbWUgfHwgJyBETyBJTlNU RUFEIE5PVEhJTkcnOwotRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgotICAg IEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRh aWwgPSBQR19FWENFUFRJT05fREVUQUlMOwotICAgIFJBSVNFIE5PVElDRSAnQ3JlYXRlIHJ1bGUg ZXJyb3I6ICUsIGRldGFpbDogJScsCi0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdw Z19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKLSAgICAgICAgcmVn ZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxp Y3RfbG9nX3h4eCcpOwotRU5EICQkOwotTk9USUNFOiAgQ3JlYXRlIHJ1bGUgZXJyb3I6IGNvbmZs aWN0IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9nX3h4eCIgY2Fubm90IGhhdmUgcnVsZXMsIGRl dGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBs b2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KLS0tIFJlbmFtZSBydWxlIG9uIGNvbmZsaWN0 IGxvZyB0YWJsZQotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJfbmFtZSB0ZXh0OwotICAgIGVycl9t c2cgdGV4dDsKLSAgICBlcnJfZGV0YWlsIHRleHQ7Ci1CRUdJTgotICAgIFNFTEVDVCAncGdfY29u ZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKLSAgICBGUk9NIHBnX2NsYXNzIGMgSk9J TiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwg cy5vaWQKLSAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9u X3Rlc3QnOwotICAgIEVYRUNVVEUgJ0FMVEVSIFJVTEUgbm9uX2V4aXN0ZW50X3J1bGUgT04gJyB8 fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBUTyBuZXdfcnVsZSc7Ci1FWENFUFRJT04gV0hFTiB3cm9u Z19vYmplY3RfdHlwZSBUSEVOCi0gICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9 IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7Ci0gICAgUkFJ U0UgTk9USUNFICdSZW5hbWUgcnVsZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKLSAgICAgICAgcmVn ZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3Rf bG9nX3h4eCcpLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxp Y3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7Ci1FTkQgJCQ7Ci1OT1RJQ0U6ICBS ZW5hbWUgcnVsZSBlcnJvcjogY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4 IiBjYW5ub3QgaGF2ZSBydWxlcywgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0 ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgotLS0g Q3JlYXRlIGluZGV4IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQotRE8gJCQKLURFQ0xBUkUKLSAgICB0 YWJfbmFtZSB0ZXh0OwotICAgIGVycl9tc2cgdGV4dDsKLSAgICBlcnJfZGV0YWlsIHRleHQ7Ci1C RUdJTgotICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUK LSAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUg PSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKLSAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOwotICAgIEVYRUNVVEUgJ0NSRUFURSBJTkRF WCBpZHgxIE9OICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSknOwotRVhDRVBUSU9OIFdIRU4g d3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9t c2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwotICAg IFJBSVNFIE5PVElDRSAnQ3JlYXRlIGluZGV4IGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAg ICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25m bGljdF9sb2dfeHh4JyksCi0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19j b25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKLUVORCAkJDsKLU5PVElD RTogIENyZWF0ZSBpbmRleCBlcnJvcjogY2Fubm90IGNoYW5nZSBjb25mbGljdCBsb2cgdGFibGUg InBnX2NvbmZsaWN0X2xvZ194eHgiLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5 c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCi0t LSBmYWlsIC0gY29uZmxpY3QgbG9nIHRhYmxlIGNhbm5vdCBiZSBhZGRlZCB0byBhIHB1YmxpY2F0 aW9uCi1ETyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0 OwotICAgIGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4n IHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1 YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAot ICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7 Ci0gICAgRVhFQ1VURSAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yX2NsdCBGT1IgVEFC TEUgJyB8fCB0YWJfbmFtZTsKLUVYQ0VQVElPTiBXSEVOIGludmFsaWRfcGFyYW1ldGVyX3ZhbHVl IFRIRU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhU LCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKLSAgICBSQUlTRSBOT1RJQ0UgJ1B1 YmxpY2F0aW9uIGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVwbGFjZShl cnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCi0g ICAgICAgIGVycl9kZXRhaWw7Ci1FTkQgJCQ7Ci1OT1RJQ0U6ICBQdWJsaWNhdGlvbiBlcnJvcjog Y2Fubm90IGFkZCByZWxhdGlvbiAicGdfY29uZmxpY3RfbG9nX3h4eCIgdG8gcHVibGljYXRpb24s IGRldGFpbDogVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9n IHRhYmxlcy4KLS0tIGZhaWwgLSBjYW5ub3QgbG9jayByb3dzIGluIGNvbmZsaWN0IGxvZyB0YWJs ZQotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJfbmFtZSB0ZXh0OwotICAgIGVycl9tc2cgdGV4dDsK LUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFt ZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFt ZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJFIHMuc3VibmFtZSA9ICdy ZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VURSAnU0VMRUNUIDEg RlJPTSAnIHx8IHRhYl9uYW1lIHx8ICcgRk9SIFVQREFURSc7Ci1FWENFUFRJT04gV0hFTiB3cm9u Z19vYmplY3RfdHlwZSBUSEVOCi0gICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9 IE1FU1NBR0VfVEVYVDsKLSAgICBSQUlTRSBOT1RJQ0UgJ1JvdyBsb2NrIGVycm9yOiAlJywKLSAg ICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdf Y29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotTk9USUNFOiAgUm93IGxvY2sgZXJyb3I6IGNh bm5vdCBsb2NrIHJvd3MgaW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9n X3h4eCIKLS0tIENsZWFuIHVwIHRyaWdnZXIgZnVuY3Rpb24KLURST1AgRlVOQ1RJT04gcHVibGlj LmR1bW15X3RyaWdnZXJfZnVuYygpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5H OwogLS0gQ2xlYW4gdXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggNTAzYzljZWIyNzIuLjFlNDI2NGUxNTMwIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAgLTYwNCwxOSArNjA0LDE3IEBAIFdI RVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKIC0tIHJlLWVuYWJsZSB0 YWJsZSBsb2dnaW5nIGZvciB2ZXJpZmljYXRpb24KIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7 CiAKLS0tIFdlIHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVjYXVzZSB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlCi0tLSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJzY3JpcHRpb24gT0lELCB3 aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcwotLS0gYXBwcm9hY2ggYWxsb3dzIHVzIHRv IGF0dGVtcHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVkIGVycm9yCi0tLSB3aXRo b3V0IGhhcmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRoZSBleHBlY3RlZCBvdXRwdXQKKy0t IFRoZSBjb25mbGljdCBsb2cgdGFibGUgbmFtZSBjb250YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9J RCwgd2hpY2ggaXMKKy0tIG5vbi1kZXRlcm1pbmlzdGljLiAgQ2FwdHVyZSBpdCBpbnRvIGEgcHNx bCB2YXJpYWJsZSBhbmQgcmVwb3J0IG9ubHkgdGhlCistLSBTUUxTVEFURSwgc28gdGhlIGV4cGVj dGVkIG91dHB1dCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIE9JRC4KIAogLS0gZmFpbCAtIGRyb3Ag dGFibGUgbm90IGFsbG93ZWQgZHVlIHRvIGludGVybmFsIGRlcGVuZGVuY3kKIFNFVCBjbGllbnRf bWluX21lc3NhZ2VzID0gTk9USUNFOwotRE8gJCQKLUJFR0lOCi0gICAgRVhFQ1VURSAnRFJPUCBU QUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18nIHx8IG9pZCBG Uk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVz dDEnKTsKLUVYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgotICAgIFJB SVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxl Z2UnOwotRU5EICQkOworU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJyB8fCBv aWQgQVMgY2x0MQorICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKK1xzZXQgVkVSQk9TSVRZIHNxbHN0YXRlCitEUk9Q IFRBQkxFIDpjbHQxOworXHNldCBWRVJCT1NJVFkgZGVmYXVsdAogCiAtLSBDTEVBTlVQOiBEUk9Q IFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFibGUKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CkBAIC02MzksMzM2ICs2MzcsNjAgQEAgU0VMRUNUIHRv X3JlZ2NsYXNzKDonaW50ZXJuYWxfdGFibGVuYW1lJyk7CiBDUkVBVEUgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCcKICAgICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CiAKLS0tIFRyeWluZyB0 byBBTFRFUiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCi0tLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1 c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCi0tLSBBcyBtZW50aW9uZWQgaW4gcHJldmlv dXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxvY2sgdG8gaGlkZSBkeW5hbWljIE9JRHMKLQot U0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7Ci1ETyAkJAotREVDTEFSRQotICAgIHRh Yl9uYW1lIHRleHQ7Ci1CRUdJTgotICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1l IElOVE8gdGFiX25hbWUKKy0tIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMgc3lzdGVtLW1hbmFn ZWQ7IGl0cyBuYW1lIGNvbnRhaW5zIHRoZQorLS0gc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMg bm9uLWRldGVybWluaXN0aWMuICBDYXB0dXJlIHRoZSBuYW1lIGludG8gYSBwc3FsCistLSB2YXJp YWJsZSBhbmQgcmVwb3J0IG9ubHkgdGhlIFNRTFNUQVRFIGZvciB0aGUgb3BlcmF0aW9ucyB0aGF0 IG11c3QgYmUKKy0tIHJlamVjdGVkLCBzbyB0aGUgZXhwZWN0ZWQgb3V0cHV0IHN0YXlzIGZyZWUg b2YgdGhlIGR5bmFtaWMgT0lELiAgRXZlcnkKKy0tIHN0YXRlbWVudCBpbiB0aGUgVkVSQk9TSVRZ LXNxbHN0YXRlIGJsb2NrIGJlbG93IG11c3QgZmFpbCB3aXRoIDQyODA5CistLSAod3Jvbmdfb2Jq ZWN0X3R5cGUpLCBleGNlcHQgYWRkaW5nIHRoZSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uLCB3aGlj aCBmYWlscworLS0gd2l0aCAyMjAyMyAoaW52YWxpZF9wYXJhbWV0ZXJfdmFsdWUpLgorU0VMRUNU ICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgQVMgY2x0CiAgICAgRlJPTSBwZ19jbGFzcyBjIEpP SU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0JzsKLQotICAgIFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBj b25mbGljdCBsb2cgdGFibGUnOwotICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25h bWUgfHwgJyBBREQgQ09MVU1OIGV4dHJhX2luZm8gdGV4dCc7Ci1FWENFUFRJT04gV0hFTiB3cm9u Z19vYmplY3RfdHlwZSBUSEVOCi0gICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBl cnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIEFMVEVSJzsKLUVORCAkJDsKLQotLS0gVGVz dCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQotLS0gVGhpcyBzaG91bGQgZmFp bCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAotLS0gSGlkaW5nIHRoZSBPSUQg aW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgotRE8gJCQKLURF Q0xBUkUKLSAgICB0YWJfbmFtZSB0ZXh0OwotQkVHSU4KLSAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0 LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk Ci0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0 JzsKLQotICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFt ZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7Ci1FWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlw ZSBUSEVOCi0gICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdf b2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVCc7Ci1FTkQgJCQ7Ci0KLS0tIFRlc3QgTWFudWFsIFVQ REFURSBvbiBjb25mbGljdCBsb2cgdGFibGUKLS0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0 aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKLS0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJv ciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KLURPICQkCi1ERUNMQVJFCi0gICAg dGFiX25hbWUgdGV4dDsKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3QnIFxnc2V0CisKKy0tIFRyaWdnZXIgZnVuY3Rpb24gdXNlZCBieSB0aGUg Q1JFQVRFIFRSSUdHRVIgY2hlY2sgYmVsb3cuCitDUkVBVEUgRlVOQ1RJT04gcHVibGljLmR1bW15 X3RyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dlciBBUyAkJAogQkVHSU4KLSAgICBTRUxFQ1Qg J3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19jbGFz cyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xv Z18nIHx8IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0JzsKKyAgICBSRVRVUk4gTkVXOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKIAotICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8IHRhYl9uYW1lIHx8ICcgU0VUIHJlbG5hbWUg PSAnJ215dGVzdCcnICc7Ci1FWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCi0g ICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5 cGUgZHVyaW5nIFVQREFURSc7Ci1FTkQgJCQ7Citcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQorQUxU RVIgVEFCTEUgOmNsdCBBREQgQ09MVU1OIGV4dHJhX2luZm8gdGV4dDsKK0lOU0VSVCBJTlRPIDpj bHQgKHJlbG5hbWUpIFZBTFVFUyAoJ215dGVzdCcpOworVVBEQVRFIDpjbHQgU0VUIHJlbG5hbWUg PSAnbXl0ZXN0JzsKK0NSRUFURSBQT0xJQ1kgcDEgT04gOmNsdCBVU0lORyAodHJ1ZSk7CitDUkVB VEUgU1RBVElTVElDUyBzMSBPTiByZWxuYW1lLCBzY2hlbWFuYW1lIEZST00gOmNsdDsKK0NSRUFU RSBUQUJMRSBwdWJsaWMuY29uZmxpY3RfY2hpbGQgKCkgSU5IRVJJVFMgKDpjbHQpOworQUxURVIg VEFCTEUgOmNsdCBSRU5BTUUgQ09MVU1OIHJlbG5hbWUgVE8gbmV3X3JlbG5hbWU7CitDUkVBVEUg VEFCTEUgcHVibGljLmNvbmZsaWN0X2ZrIChyZWxuYW1lIHRleHQgUkVGRVJFTkNFUyA6Y2x0KHJl bG5hbWUpKTsKK0FMVEVSIFRBQkxFIDpjbHQgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25f dXNlcl9kdW1teTsKK0FMVEVSIFRBQkxFIDpjbHQgU0VUIFNDSEVNQSBwdWJsaWM7CitDUkVBVEUg VFJJR0dFUiB0MSBCRUZPUkUgSU5TRVJUIE9OIDpjbHQgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVO Q1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpOworQUxURVIgVFJJR0dFUiBub25fZXhp c3RlbnRfdHJpZ2dlciBPTiA6Y2x0IFJFTkFNRSBUTyBuZXdfdHJpZ2dlcjsKK0NSRUFURSBSVUxF IHIxIEFTIE9OIElOU0VSVCBUTyA6Y2x0IERPIElOU1RFQUQgTk9USElORzsKK0FMVEVSIFJVTEUg bm9uX2V4aXN0ZW50X3J1bGUgT04gOmNsdCBSRU5BTUUgVE8gbmV3X3J1bGU7CitDUkVBVEUgSU5E RVggaWR4MSBPTiA6Y2x0IChyZWxuYW1lKTsKK1NFTEVDVCAxIEZST00gOmNsdCBGT1IgVVBEQVRF OworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yX2NsdCBGT1IgVEFCTEUgOmNsdDsKK1xz ZXQgVkVSQk9TSVRZIGRlZmF1bHQKKworLS0gQ2xlYW4gdXAgdGhlIHRyaWdnZXIgZnVuY3Rpb24g dXNlZCBhYm92ZS4KK0RST1AgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpOwog Ci0tLSBUcnlpbmcgdG8gcGVyZm9ybSBUUlVOQ0FURS9ERUxFVEUgb24gdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZQotLS0gVGhpcyBzaG91bGQgYmUgYWxsb3dlZCBzbyB0aGF0IHVzZXIgY2FuIHBlcmZv cm0gY2xlYW51cAotU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgQVMgY29uZmxpY3Rf dGFiCi1GUk9NIHBnX2NsYXNzIGMKLUpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1l ID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCi1XSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnIFxnc2V0Ci1UUlVOQ0FURSA6Y29uZmxpY3RfdGFi OwotREVMRVRFIEZST00gOmNvbmZsaWN0X3RhYjsKKy0tIFRSVU5DQVRFIGFuZCBERUxFVEUgYXJl IGFsbG93ZWQgc28gdGhhdCB1c2VycyBjYW4gcHJ1bmUgdGhlIGNvbmZsaWN0IGxvZy4KK1RSVU5D QVRFIDpjbHQ7CitERUxFVEUgRlJPTSA6Y2x0OwogCi0tLSBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3 IHRhYmxlIG1hbnVhbGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKLS0tIFRoaXMgc2hv dWxkIGZhaWwgYXMgdGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29uZmxpY3QgbG9nIHRh YmxlcworLS0gQ3JlYXRpbmcgYSB0YWJsZSBkaXJlY3RseSBpbiB0aGUgcGdfY29uZmxpY3QgbmFt ZXNwYWNlIGlzIHJlamVjdGVkIGZvcgorLS0gZXZlcnlvbmUgKHRoZSBzY2hlbWEgaXMgcmVzZXJ2 ZWQgZm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMpLgogQ1JFQVRFIFRBQkxFIHBnX2NvbmZsaWN0Lm1h bnVhbF90YWJsZSAoaWQgaW50KTsKIAotLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGludG8g dGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQotLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRv IG1vdmUgdGhlaXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UKKy0tIE1vdmluZyBh IHVzZXIgdGFibGUgaW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlIGlzIGxpa2V3aXNlIHJl amVjdGVkLgogQ1JFQVRFIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CiBBTFRFUiBU QUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CiBEUk9QIFRBQkxF IHB1YmxpYy50ZXN0X21vdmU7CiAKLS0tIFNldHVwIGR1bW15IHRyaWdnZXIgZnVuY3Rpb24gZm9y IHRyaWdnZXIgdGVzdHMKLUNSRUFURSBGVU5DVElPTiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9mdW5j KCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCi1CRUdJTgotICAgIFJFVFVSTiBORVc7Ci1FTkQ7Ci0k JCBMQU5HVUFHRSBwbHBnc3FsOwotCi0tLSBQb2xpY3kgb24gY29uZmxpY3QgbG9nIHRhYmxlCi1E TyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAg IGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJl bG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdI RVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAg RVhFQ1VURSAnQ1JFQVRFIFBPTElDWSBwMSBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgVVNJTkcgKHRy dWUpJzsKLUVYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KLSAgICBHRVQgU1RB Q0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdf RVhDRVBUSU9OX0RFVEFJTDsKLSAgICBSQUlTRSBOT1RJQ0UgJ1BvbGljeSBlcnJvcjogJSwgZGV0 YWlsOiAlJywKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xv Z19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAotICAgICAgICByZWdleHBfcmVwbGFjZShl cnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7 Ci1FTkQgJCQ7Ci0KLS0tIFN0YXRpc3RpY3Mgb24gY29uZmxpY3QgbG9nIHRhYmxlCi1ETyAkJAot REVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAgIGVycl9k ZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUg SU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VU RSAnQ1JFQVRFIFNUQVRJU1RJQ1MgczEgT04gcmVsbmFtZSwgc2NoZW1hbmFtZSBGUk9NICcgfHwg dGFiX25hbWU7Ci1FWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCi0gICAgR0VU IFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9 IFBHX0VYQ0VQVElPTl9ERVRBSUw7Ci0gICAgUkFJU0UgTk9USUNFICdTdGF0aXN0aWNzIGVycm9y OiAlLCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29u ZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCi0gICAgICAgIHJlZ2V4cF9y ZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xv Z194eHgnKTsKLUVORCAkJDsKLQotLS0gSW5oZXJpdGFuY2UgZnJvbSBjb25mbGljdCBsb2cgdGFi bGUKLURPICQkCi1ERUNMQVJFCi0gICAgdGFiX25hbWUgdGV4dDsKLSAgICBlcnJfbXNnIHRleHQ7 Ci0gICAgZXJyX2RldGFpbCB0ZXh0OwotQkVHSU4KLSAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0Licg fHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vi c2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCi0g ICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsK LSAgICBFWEVDVVRFICdDUkVBVEUgVEFCTEUgcHVibGljLmNvbmZsaWN0X2NoaWxkICgpIElOSEVS SVRTICgnIHx8IHRhYl9uYW1lIHx8ICcpJzsKLUVYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90 eXBlIFRIRU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9U RVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKLSAgICBSQUlTRSBOT1RJQ0Ug J0luaGVyaXRhbmNlIGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVwbGFj ZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyks Ci0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQr JywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKLUVORCAkJDsKLQotLS0gQ29sdW1uIHJlbmFtZSBv biBjb25mbGljdCBsb2cgdGFibGUKLURPICQkCi1ERUNMQVJFCi0gICAgdGFiX25hbWUgdGV4dDsK LSAgICBlcnJfbXNnIHRleHQ7Ci0gICAgZXJyX2RldGFpbCB0ZXh0OwotQkVHSU4KLSAgICBTRUxF Q1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19j bGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0 X2xvZ18nIHx8IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf cHJvdGVjdGlvbl90ZXN0JzsKLSAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1l IHx8ICcgUkVOQU1FIENPTFVNTiByZWxuYW1lIFRPIG5ld19yZWxuYW1lJzsKLUVYQ0VQVElPTiBX SEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBl cnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsK LSAgICBSQUlTRSBOT1RJQ0UgJ0NvbHVtbiByZW5hbWUgZXJyb3I6ICUsIGRldGFpbDogJScsCi0g ICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3Bn X2NvbmZsaWN0X2xvZ194eHgnKSwKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwg J3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwot Ci0tLSBGb3JlaWduIGtleSByZWZlcmVuY2UgdG8gY29uZmxpY3QgbG9nIHRhYmxlCi1ETyAkJAot REVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAgIGVycl9k ZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUg SU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VU RSAnQ1JFQVRFIFRBQkxFIHB1YmxpYy5jb25mbGljdF9mayAocmVsbmFtZSB0ZXh0IFJFRkVSRU5D RVMgJyB8fCB0YWJfbmFtZSB8fCAnKHJlbG5hbWUpKSc7Ci1FWENFUFRJT04gV0hFTiB3cm9uZ19v YmplY3RfdHlwZSBUSEVOCi0gICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1F U1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7Ci0gICAgUkFJU0Ug Tk9USUNFICdGb3JlaWduIGtleSBlcnJvcjogJSwgZGV0YWlsOiAlJywKLSAgICAgICAgcmVnZXhw X3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9n X3h4eCcpLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3Rf bG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7Ci1FTkQgJCQ7Ci0KLS0tIEFsdGVyIHRh YmxlIG93bmVyCi1ETyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21z ZyB0ZXh0OwotICAgIGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25m bGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lO IHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBz Lm9pZAotICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25f dGVzdCc7Ci0gICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIE9XTkVS IFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXJfZHVtbXknOwotRVhDRVBUSU9OIFdIRU4gd3Jv bmdfb2JqZWN0X3R5cGUgVEhFTgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cg PSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwotICAgIFJB SVNFIE5PVElDRSAnQWx0ZXIgb3duZXIgZXJyb3I6ICUsIGRldGFpbDogJScsCi0gICAgICAgIHJl Z2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0 X2xvZ194eHgnKSwKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZs aWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotCi0tLSBBbHRl ciB0YWJsZSBzY2hlbWEKLURPICQkCi1ERUNMQVJFCi0gICAgdGFiX25hbWUgdGV4dDsKLSAgICBl cnJfbXNnIHRleHQ7Ci0gICAgZXJyX2RldGFpbCB0ZXh0OwotQkVHSU4KLSAgICBTRUxFQ1QgJ3Bn X2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19jbGFzcyBj IEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18n IHx8IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0JzsKLSAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcg U0VUIFNDSEVNQSBwdWJsaWMnOwotRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhF TgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVy cl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwotICAgIFJBSVNFIE5PVElDRSAnQWx0ZXIg c2NoZW1hIGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf bXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCi0gICAg ICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3Bn X2NvbmZsaWN0X2xvZ194eHgnKTsKLUVORCAkJDsKLQotLS0gQ3JlYXRlIHRyaWdnZXIgb24gY29u ZmxpY3QgbG9nIHRhYmxlCi1ETyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAg ZXJyX21zZyB0ZXh0OwotICAgIGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdw Z19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3Mg YyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2df JyB8fCBzLm9pZAotICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3Rl Y3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VURSAnQ1JFQVRFIFRSSUdHRVIgdDEgQkVGT1JFIElOU0VS VCBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gcHVi bGljLmR1bW15X3RyaWdnZXJfZnVuYygpJzsKLUVYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90 eXBlIFRIRU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9U RVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKLSAgICBSQUlTRSBOT1RJQ0Ug J0NyZWF0ZSB0cmlnZ2VyIGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVw bGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4 JyksCi0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2df XGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKLUVORCAkJDsKLQotLS0gUmVuYW1lIHRyaWdn ZXIgb24gY29uZmxpY3QgbG9nIHRhYmxlCi1ETyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRl eHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAgIGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAg U0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00g cGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25m bGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VURSAnQUxURVIgVFJJR0dFUiBub25fZXhp c3RlbnRfdHJpZ2dlciBPTiAnIHx8IHRhYl9uYW1lIHx8ICcgUkVOQU1FIFRPIG5ld190cmlnZ2Vy JzsKLUVYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KLSAgICBHRVQgU1RBQ0tF RCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhD RVBUSU9OX0RFVEFJTDsKLSAgICBSQUlTRSBOT1RJQ0UgJ1JlbmFtZSB0cmlnZ2VyIGVycm9yOiAl LCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxp Y3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCi0gICAgICAgIHJlZ2V4cF9yZXBs YWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194 eHgnKTsKLUVORCAkJDsKLQotLS0gQ3JlYXRlIHJ1bGUgb24gY29uZmxpY3QgbG9nIHRhYmxlCi1E TyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAg IGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJl bG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdI RVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAg RVhFQ1VURSAnQ1JFQVRFIFJVTEUgcjEgQVMgT04gSU5TRVJUIFRPICcgfHwgdGFiX25hbWUgfHwg JyBETyBJTlNURUFEIE5PVEhJTkcnOwotRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUg VEhFTgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQs IGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwotICAgIFJBSVNFIE5PVElDRSAnQ3Jl YXRlIHJ1bGUgZXJyb3I6ICUsIGRldGFpbDogJScsCi0gICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVy cl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKLSAg ICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAn cGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotCi0tLSBSZW5hbWUgcnVsZSBvbiBjb25m bGljdCBsb2cgdGFibGUKLURPICQkCi1ERUNMQVJFCi0gICAgdGFiX25hbWUgdGV4dDsKLSAgICBl cnJfbXNnIHRleHQ7Ci0gICAgZXJyX2RldGFpbCB0ZXh0OwotQkVHSU4KLSAgICBTRUxFQ1QgJ3Bn X2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCi0gICAgRlJPTSBwZ19jbGFzcyBj IEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18n IHx8IHMub2lkCi0gICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0JzsKLSAgICBFWEVDVVRFICdBTFRFUiBSVUxFIG5vbl9leGlzdGVudF9ydWxlIE9O ICcgfHwgdGFiX25hbWUgfHwgJyBSRU5BTUUgVE8gbmV3X3J1bGUnOwotRVhDRVBUSU9OIFdIRU4g d3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgotICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9t c2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOwotICAg IFJBSVNFIE5PVElDRSAnUmVuYW1lIHJ1bGUgZXJyb3I6ICUsIGRldGFpbDogJScsCi0gICAgICAg IHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZs aWN0X2xvZ194eHgnKSwKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2Nv bmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotCi0tLSBD cmVhdGUgaW5kZXggb24gY29uZmxpY3QgbG9nIHRhYmxlCi1ETyAkJAotREVDTEFSRQotICAgIHRh Yl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0OwotICAgIGVycl9kZXRhaWwgdGV4dDsKLUJF R0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQot ICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9 ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAgRVhFQ1VURSAnQ1JFQVRFIElOREVY IGlkeDEgT04gJyB8fCB0YWJfbmFtZSB8fCAnIChyZWxuYW1lKSc7Ci1FWENFUFRJT04gV0hFTiB3 cm9uZ19vYmplY3RfdHlwZSBUSEVOCi0gICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21z ZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7Ci0gICAg UkFJU0UgTk9USUNFICdDcmVhdGUgaW5kZXggZXJyb3I6ICUsIGRldGFpbDogJScsCi0gICAgICAg IHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZs aWN0X2xvZ194eHgnKSwKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2Nv bmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotCi0tLSBm YWlsIC0gY29uZmxpY3QgbG9nIHRhYmxlIGNhbm5vdCBiZSBhZGRlZCB0byBhIHB1YmxpY2F0aW9u Ci1ETyAkJAotREVDTEFSRQotICAgIHRhYl9uYW1lIHRleHQ7Ci0gICAgZXJyX21zZyB0ZXh0Owot ICAgIGVycl9kZXRhaWwgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8 IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNj cmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAg IFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0g ICAgRVhFQ1VURSAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yX2NsdCBGT1IgVEFCTEUg JyB8fCB0YWJfbmFtZTsKLUVYQ0VQVElPTiBXSEVOIGludmFsaWRfcGFyYW1ldGVyX3ZhbHVlIFRI RU4KLSAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBl cnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKLSAgICBSQUlTRSBOT1RJQ0UgJ1B1Ymxp Y2F0aW9uIGVycm9yOiAlLCBkZXRhaWw6ICUnLAotICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf bXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCi0gICAg ICAgIGVycl9kZXRhaWw7Ci1FTkQgJCQ7Ci0KLS0tIGZhaWwgLSBjYW5ub3QgbG9jayByb3dzIGlu IGNvbmZsaWN0IGxvZyB0YWJsZQotRE8gJCQKLURFQ0xBUkUKLSAgICB0YWJfbmFtZSB0ZXh0Owot ICAgIGVycl9tc2cgdGV4dDsKLUJFR0lOCi0gICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJl bG5hbWUgSU5UTyB0YWJfbmFtZQotICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAotICAgIFdI RVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Ci0gICAg RVhFQ1VURSAnU0VMRUNUIDEgRlJPTSAnIHx8IHRhYl9uYW1lIHx8ICcgRk9SIFVQREFURSc7Ci1F WENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCi0gICAgR0VUIFNUQUNLRUQgRElB R05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVDsKLSAgICBSQUlTRSBOT1RJQ0UgJ1JvdyBs b2NrIGVycm9yOiAlJywKLSAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZs aWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOwotRU5EICQkOwotCi0tLSBDbGVh biB1cCB0cmlnZ2VyIGZ1bmN0aW9uCi1EUk9QIEZVTkNUSU9OIHB1YmxpYy5kdW1teV90cmlnZ2Vy X2Z1bmMoKTsKLQogCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CiAK --00000000000005becf065574d01a--