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 1vka9Y-00HHXJ-0h for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Jan 2026 03:54:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vka9X-00BuIG-0z for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Jan 2026 03:54:07 +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 1vka9W-00BuI6-0z for pgsql-hackers@lists.postgresql.org; Tue, 27 Jan 2026 03:54:07 +0000 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vka9T-002V9y-0t for pgsql-hackers@lists.postgresql.org; Tue, 27 Jan 2026 03:54:05 +0000 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-59b77f2e43aso7209926e87.1 for ; Mon, 26 Jan 2026 19:54:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769486041; cv=none; d=google.com; s=arc-20240605; b=Ng3JMjhebBbGcNXn/yXef4hAdujskccicU63EnFZ11jd76xPJ7ssii0PTr7bXTmBMy I34prUZSntWl2g/76+RCiJKeVyGUTDqBjqIMe+xJ1chOJuS1N3zZGMrU9GGJWEb1a0MZ hE2GyxNtURkrUDu/R4tA6X/xygfZqRIVVxEbU7NJhBWbGzGsV4jK7JFocjaEgza7qwJU NI6Us8QgC5wZDpQBteD6ruOKeLcU1j6Wr4q2WlxXaox9oJJasOO2FOXI7JNSGcxnYKbk 1pXoESfpqrc4XLbN2bGS1a+dQHCcYw8lmDkfCCz/vBWtCfM7PLh+oTCSWcX5NtZcZcNR smtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=TXZLoJ1JThxvnsJVhwjvnhhKH65kWi4JBzWCtMki01I=; fh=rkqylaFUxD8V4DhVvF6o8ZEQGcagCX8HfGcNKEfUmrg=; b=jtiOFhRJEvjOtmRQl/uISDC/PSJJ9BQncGN7KwZOe+ycV42SXUy3AwXc518axSukQX OPe3q2d1I0ItJMAszJyF6ZaAzmzQySngrleMTFFsVV6RuLJACktrMw+cD/HC6OXqcCO/ EdsWVe/ikUIN4l6NS/gLapkArDuMxqMfWKZtVcMnz/tqlv+9Ci7cb0q4v6Nyh5CnBVQ9 5EhYfG+ZdC2T7Yz/xhaK9MmBqJo3IJKUJ9D66XWX2KZYSz7P1EP9OPUyCueQLlEWaufw K3/MA9eWdSsEfrIsQVoqYBpcQTRtT86j2lNWNA8GkWnMvZxOc8VQvq2fYMHOa+Yoc7tU tqZg==; 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=20230601; t=1769486041; x=1770090841; 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=TXZLoJ1JThxvnsJVhwjvnhhKH65kWi4JBzWCtMki01I=; b=beeWNwsNuUyReYogSkun18ayRo1Be/AXLBuiCA0379oTAVQPHR+2NKA/9mKgcLFyOa LazDUd0CWA1dwXYX07Emx5AecEHNabQxaQqZJZ7kUFcn1hwNt23Yhb0gy9dnPqW3HHQG VEQdzC4ZEzks1seODv7Y4DgWKRutTr5s4AOrd6585QJ4XBrZ772pWqeIG+wryGEW1qAj kb6pmPZZ/cSTeXU9fBm7qco/Mis3Yw9a7lFGhlpGfZlyICCpM9ypp0CzLF/bsIutwSIO Gx5fNzwHn6fQrksoouOzy2td3zqW28o/9gHmVxM2RMtqQaW3Tlb0gbKyOzhs4x1Uj7kK iF+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769486041; x=1770090841; 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=TXZLoJ1JThxvnsJVhwjvnhhKH65kWi4JBzWCtMki01I=; b=tLbFaBuXM8VNKuTreg+GoHa9oDLvaRHQ/f0YX325u+ESwT7fTBRFJeEwQpxMiDPhx8 FL9wDghK1AbrEswygdiaxe0wxkfrioValIV5UHU3+RpZ1a4dUBBWRRPdvCXQgguTJsdI Pn041V4zFt4GgWMOsLKAACfMbavLrekUkOpzr2oChGD5je+CwdqHq7HaV8hMikBCfNKa hgAj0cJFrhxvltJI8p4VLdInz0Mw/Wlx8g8yWm2ZDV2OhYtSlZO5zz3RHHSa1R1gmNAS 2dvJy3WZaENM3Hq6UjPwmMGuiOAhfGEKXJRHSqlZE93tYWeqfcLPC1Pa4BbQoUzuM7gW 9y4g== X-Forwarded-Encrypted: i=1; AJvYcCXBXmHyXt2m3usVCg7cW+8gozyLnrSTMQylF8sw57sotHkl/Vnf04BM+0N0KAfEQpExZ+s9Ss8w7DLqfzdY@lists.postgresql.org X-Gm-Message-State: AOJu0YzAOVuOuC68Oy6SaVZjTku9W1BsDCsHvILx7FuOXDOBSFgjXuDI juMu5q8w8oIGzmLbyO6hdr15U/2hyjvxPrFRXy5LqVc7MB0FB8nzvmu3IOs3i5QfK9r2MAGwoRc CPkytMqnPUVKPYjRhnRiXtR4mz5y/ch4= X-Gm-Gg: AZuq6aKSgy/pYdTC9vzXQPjL4scZGX4DI7fBP4P0pMzu64g7DH7Y4RlFtmGthWwbqZI 24jb4nKiqgmnWB4DU8RMHMNwh8MBXiBWAHijfhNC3OgXLkxCjHKvc4klfl+3SOFizZVIS+IUYZa bulMkq1Yufiu61iywh/SFVMI4Lt64VLj3fuQ2LGKULJbrqq/1rHf7F0iAJVQND0tyH6GRxUp53f 2u3/4CmE9do560nYvqHFbwgY2jIxyGngy2X1iWuZeUSCobdqZ8U3sVW5wSIve0vzDFxIII= X-Received: by 2002:a05:6512:61ab:b0:59d:f473:e0b1 with SMTP id 2adb3069b0e04-59e041376c4mr117704e87.22.1769486040774; Mon, 26 Jan 2026 19:54:00 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Tue, 27 Jan 2026 09:23:43 +0530 X-Gm-Features: AZwV_QjM3RNkm3mVYHVj5CLWK2bUIkvG8NwNRf0KxhwXf3RjwT6Y3L3VeG1sJTE Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Peter Smith Cc: vignesh C , Amit Kapila , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000e559ea0649569292" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e559ea0649569292 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jan 27, 2026 at 8:39=E2=80=AFAM Peter Smith = wrote: > > Hi Dilip. > > Some comments for the first 2 patches: > > ////////// > v24-00001 > ////////// > > 1. > + /* > + * Conflict log tables are managed by the system to record logical > + * replication conflicts. We do not allow locking rows in CONFLICT > + * relations. > + */ > + if (IsConflictNamespace(RelationGetNamespace(rel))) > + ereport(ERROR, > + (errcode(ERRCODE_WRONG_OBJECT_TYPE), > + errmsg("cannot lock rows in CONFLICT relation \"%s\"", > + RelationGetRelationName(rel)))); > > AFAIK, this "CONFLICT relation" terminology is not used anywhere else. > > Why not just call it what it is: > > e.g. > cannot lock rows in conflict log table \"%s\" > > ~ > > OTOH, if you were attempting to future-proof the message for different > kinds of relations in the 'pg_conflict' namespace, I still felt it > might be better to refer to 'pg_conflict' instead of CONFLICT: > > e.g. > cannot lock rows in 'pg_conflict' relation \"%s\" I prefer conflict log tables for consistency with other places. > ////////// > v24-0002 > ////////// > > 1. > +static char *build_index_value_desc(EState *estate, Relation localrel, > + TupleTableSlot *slot, Oid indexoid); > > Declared twice? Removed duplicate. Also fixed all pending doc comments. --=20 Regards, Dilip Kumar Google --000000000000e559ea0649569292 Content-Type: application/octet-stream; name="v25-0003-Doccumentation-patch.patch" Content-Disposition: attachment; filename="v25-0003-Doccumentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkw2ac8s2 RnJvbSBhMDliZDYzYzZjYTA4NmFhNzg0YjhlNTg2OTE0ZTRlM2U5ZjI3Mjc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyMSBKYW4gMjAyNiAxODozNzoyNSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI1 IDMvM10gRG9jY3VtZW50YXRpb24gcGF0Y2gKCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgfCAxMDkgKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgfCAgMTQgKystCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCB8ICA0NyArKysrKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDE2NyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNh bC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDUwMjhmZTlhZjA5Li4zM2NmNWNjZjUwYiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0yODksNiArMjg5LDE5IEBACiAgICBv cHRpb24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElPTjwvY29tbWFuZD4gZm9yIGRldGFp bHMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENvbmZsaWN0cyB0aGF0IG9jY3VyIGR1cmlu ZyByZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dlZCBhcyBwbGFpbiB0ZXh0CisgICBp biB0aGUgc2VydmVyIGxvZywgd2hpY2ggY2FuIG1ha2UgYXV0b21hdGVkIG1vbml0b3JpbmcgYW5k IGFuYWx5c2lzIGRpZmZpY3VsdC4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgU1VCU0NSSVBUSU9O PC9jb21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPgor ICAgPGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4gb3B0 aW9uIHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3QgaW5mb3JtYXRpb24gaW4gYSBzdHJ1 Y3R1cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMgcGFyYW1ldGVyCisgICBpcyBzZXQg dG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRo ZSBzeXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBhIGRlZGljYXRlZCBjb25mbGljdCBs b2cgdGFibGUsIHdoaWNoIGlzIGNyZWF0ZWQgYW5kCisgICBkcm9wcGVkIGFsb25nIHdpdGggdGhl IHN1YnNjcmlwdGlvbi4gVGhpcyBzaWduaWZpY2FudGx5IGltcHJvdmVzIHBvc3QtbW9ydGVtCisg ICBhbmFseXNpcyBhbmQgb3BlcmF0aW9uYWwgdmlzaWJpbGl0eSBvZiB0aGUgcmVwbGljYXRpb24g c2V0dXAuCisgIDwvcGFyYT4KKwogICA8c2VjdDIgaWQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tc3Vi c2NyaXB0aW9uLXNsb3QiPgogICAgPHRpdGxlPkxvZ2ljYWwgUmVwbGljYXRpb24gU2xvdCBNYW5h Z2VtZW50PC90aXRsZT4KIApAQCAtMjExOCw3ICsyMTMxLDk0IEBAIFB1YmxpY2F0aW9uczoKICAg PC9wYXJhPgogCiAgIDxwYXJhPgotICAgVGhlIGxvZyBmb3JtYXQgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3RzIGlzIGFzIGZvbGxvd3M6CisgICBUaGUgPGxpbmsgbGlua2VuZD0ic3Fs LWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24i PjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICBw YXJhbWV0ZXIgY2FuIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIGRlZGljYXRlZCBjb25mbGljdCBs b2cgdGFibGUuICBUaGlzIHRhYmxlIGlzIGNyZWF0ZWQgaW4gdGhlIGRlZGljYXRlZAorICAgPGxp dGVyYWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+IG5hbWVzcGFjZS4gIFRoZSBuYW1lIG9mIHRoZSBj b25mbGljdCBsb2cgdGFibGUKKyAgIGlzIDxsaXRlcmFsPnBnX2NvbmZsaWN0XyZsdDtzdWJpZCZn dDs8L2xpdGVyYWw+LiBUaGUgcHJlZGVmaW5lZCBzY2hlbWEgb2YgdGhpcyB0YWJsZSBpcworICAg ZGV0YWlsZWQgaW4KKyAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxp Y3QtbG9nLXNjaGVtYSIvPi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZSBpZD0ibG9naWNhbC1yZXBs aWNhdGlvbi1jb25mbGljdC1sb2ctc2NoZW1hIj4KKyAgIDx0aXRsZT5Db25mbGljdCBMb2cgVGFi bGUgU2NoZW1hPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgPHRoZWFkPgorICAg ICA8cm93PgorICAgICAgPGVudHJ5PkNvbHVtbjwvZW50cnk+CisgICAgICA8ZW50cnk+VHlwZTwv ZW50cnk+CisgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICA8L3Jvdz4KKyAg ICA8L3RoZWFkPgorICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJh bD5yZWxpZDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPm9pZDwvdHlwZT48 L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSBPSUQgb2YgdGhlIGxvY2FsIHRhYmxlIHdoZXJlIHRo ZSBjb25mbGljdCBvY2N1cnJlZC48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5zY2hlbWFuYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8 ZW50cnk+PHR5cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSBzY2hlbWEg bmFtZSBvZiB0aGUgY29uZmxpY3RpbmcgdGFibGUuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVsbmFtZTwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUg bmFtZSBvZiB0aGUgY29uZmxpY3RpbmcgdGFibGUuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+Y29uZmxpY3RfdHlwZTwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT5UaGUgdHlwZSBvZiBjb25mbGljdCB0aGF0IG9jY3VycmVkIChlLmcuLCA8bGl0ZXJhbD5pbnNl cnRfZXhpc3RzPC9saXRlcmFsPikuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX3hpZDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAg PGVudHJ5Pjx0eXBlPnhpZDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSByZW1vdGUg dHJhbnNhY3Rpb24gSUQgdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0LjwvZW50cnk+CisgICAgIDwv cm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV9jb21taXRfbHNu PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+cGdfbHNuPC90eXBlPjwvZW50 cnk+CisgICAgICA8ZW50cnk+VGhlIGZpbmFsIExTTiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9u LjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFs PnJlbW90ZV9jb21taXRfdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT50 aW1lc3RhbXB0ejwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSByZW1vdGUgY29tbWl0 IHRpbWVzdGFtcCBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV9vcmlnaW48L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAg ICA8ZW50cnk+VGhlIG9yaWdpbiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLjwvZW50cnk+Cisg ICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV90dXBs ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPmpzb248L3R5cGU+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT5UaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW5jb21pbmcg cmVtb3RlIHJvdyB0aGF0IGNhdXNlZCB0aGUgY29uZmxpY3QuPC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+bG9jYWxfY29uZmxpY3RzPC9saXRl cmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+anNvbltdPC90eXBlPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+CisgICAgICAgQW4gYXJyYXkgb2YgSlNPTiBvYmplY3RzIHJlcHJlc2VudGlu ZyB0aGUgbG9jYWwgc3RhdGUgZm9yIGVhY2ggY29uZmxpY3QgYXR0ZW1wdC4KKyAgICAgICBFYWNo IG9iamVjdCBpbmNsdWRlcyB0aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgKDxsaXRlcmFsPnhpZDwv bGl0ZXJhbD4pLCBjb21taXQKKyAgICAgICB0aW1lc3RhbXAgKDxsaXRlcmFsPmNvbW1pdF90czwv bGl0ZXJhbD4pLCBvcmlnaW4gKDxsaXRlcmFsPm9yaWdpbjwvbGl0ZXJhbD4pLAorICAgICAgIGNv bmZsaWN0aW5nIGtleSBkYXRhICg8bGl0ZXJhbD5rZXk8L2xpdGVyYWw+KSwgYW5kIHRoZSBmdWxs IGxvY2FsIHJvdworICAgICAgIGltYWdlICg8bGl0ZXJhbD50dXBsZTwvbGl0ZXJhbD4pLgorICAg ICAgPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8 L3RhYmxlPgorCisgIDxwYXJhPgorICAgVGhlIGNvbmZsaWN0aW5nIHJvdyBkYXRhLCBpbmNsdWRp bmcgdGhlIGluY29taW5nIHJlbW90ZSByb3cgKDxsaXRlcmFsPnJlbW90ZV90dXBsZTwvbGl0ZXJh bD4pCisgICBhbmQgdGhlIGFzc29jaWF0ZWQgbG9jYWwgY29uZmxpY3QgZGV0YWlscyAoPGxpdGVy YWw+bG9jYWxfY29uZmxpY3RzPC9saXRlcmFsPiksIGlzIHN0b3JlZCBpbgorICAgPHR5cGU+SlNP TjwvdHlwZT4gZm9ybWF0cywgZm9yIGZsZXhpYmxlIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcy4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNj cmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICBpcyBzZXQgdG8gbG9n IGNvbmZsaWN0cyB0byB0aGUgc2VydmVyIGxvZywgdGhlIGZvbGxvd2luZyBmb3JtYXQgaXMgdXNl ZDoKIDxzeW5vcHNpcz4KIExPRzogIGNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICI8cmVw bGFjZWFibGU+c2NoZW1hbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZT50YWJsZW5hbWU8 L3JlcGxhY2VhYmxlPiI6IGNvbmZsaWN0PTxyZXBsYWNlYWJsZT5jb25mbGljdF90eXBlPC9yZXBs YWNlYWJsZT4KIERFVEFJTDogIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRhaWxl ZF9leHBsYW5hdGlvbjwvcmVwbGFjZWFibGU+WzogPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmRldGFpbF92YWx1ZXM8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXV0uCkBAIC0yNDExLDYgKzI1 MTEsMTMgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9u IG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRl bnRpdHkgZGVmaW5lZCBmb3IgaXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAg PGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICBDb25mbGljdCBsb2cgdGFibGVzIChzZWUgPGxp bmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1s b2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJh bD48L2xpbms+IHBhcmFtZXRlcikKKyAgICAgYXJlIG5ldmVyIHB1Ymxpc2hlZCwgZXZlbiB3aGVu IHVzaW5nIEZPUiBBTEwgVEFCTEVTIGluIGEgcHVibGljYXRpb24uCisgICAgPC9wYXJhPgorICAg PC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAgPC9zZWN0MT4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggMjdjMDY0MzlmNGYuLjJkZTJjM2M1MmZi IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTI4MCw4ICsy ODAsOSBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgICAgPGxpbmsgbGlua2VuZD0ic3Fs LWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1vcmlnaW4iPjxsaXRlcmFsPm9yaWdpbjwv bGl0ZXJhbD48L2xpbms+LAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9s aW5rPiwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1z LXdpdGgtdHdvLXBoYXNlIj48bGl0ZXJhbD50d29fcGhhc2U8L2xpdGVyYWw+PC9saW5rPiwKLSAg ICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcmV0 YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+PC9s aW5rPiwgYW5kCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBh cmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRlcmFsPm1heF9yZXRlbnRpb25f ZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPi4KKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVh dGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5y ZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtbWF4LXJldGVudGlvbi1kdXJhdGlv biI+PGxpdGVyYWw+bWF4X3JldGVudGlvbl9kdXJhdGlvbjwvbGl0ZXJhbD48L2xpbms+IGFuZCwK KyAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt Y29uZmxpY3QtbG9nLWRlc3RpbmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRp b248L2xpdGVyYWw+PC9saW5rPi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0 ZXJhbD5wYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgog CkBAIC0zMzksNiArMzQwLDE1IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICA8cXVv dGU+PGxpdGVyYWw+cGdfY29uZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+LCBjcmVh dGVkIHRvIHJldGFpbgogICAgICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiwg d2lsbCBiZSBkcm9wcGVkLgogICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBXaGVu IHRoZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNv bmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u PC9saXRlcmFsPjwvbGluaz4KKyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVyYWw+dGFi bGU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgICAg IGF1dG9tYXRpY2FsbHkgY3JlYXRlcyB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlIGlm IGl0IGRvZXMgbm90IGFscmVhZHkKKyAgICAgIGV4aXN0LiBDb252ZXJzZWx5LCBpZiB0aGUgZGVz dGluYXRpb24gaXMgY2hhbmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPiwgbG9n Z2luZyB0byB0aGUgdGFibGUgc3RvcHMgYW5kIHRoZSBpbnRlcm5hbAorICAgICAgdGFibGUgaXMg YXV0b21hdGljYWxseSBkcm9wcGVkLgorICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAg IDwvdmFybGlzdGVudHJ5PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9z dWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5z Z21sCmluZGV4IGI3ZGQzNjEyOTRiLi4zZmRiNTJhMDgwMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTI0Nyw2ICsyNDcsNTMgQEAgQ1JFQVRFIFNVQlND UklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8 L3JlcGxhY2VhYmwKICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1z LXdpdGgtY29uZmxpY3QtbG9nLWRlc3RpbmF0aW9uIj4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+ Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPiAoPHR5cGU+ZW51bTwvdHlwZT4pPC90 ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTcGVj aWZpZXMgdGhlIGRlc3RpbmF0aW9uIGZvciByZWNvcmRpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBj b25mbGljdHMuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBU aGUgYXZhaWxhYmxlIGRlc3RpbmF0aW9ucyBhcmU6CisgICAgICAgICAgPGl0ZW1pemVkbGlzdD4K KyAgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAg PGxpdGVyYWw+bG9nPC9saXRlcmFsPjogQ29uZmxpY3QgZGV0YWlscyBhcmUgcmVjb3JkZWQgaW4g dGhlIHNlcnZlciBsb2cuCisgICAgICAgICAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlv ci4KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgPGxpdGVyYWw+ dGFibGU8L2xpdGVyYWw+OiBUaGUgc3lzdGVtIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIHN0cnVj dHVyZWQgdGFibGUKKyAgICAgICAgICAgICBuYW1lZCA8bGl0ZXJhbD5wZ19jb25mbGljdF8mbHQ7 c3ViaWQmZ3Q7PC9saXRlcmFsPiBpbiB0aGUKKyAgICAgICAgICAgICA8bGl0ZXJhbD5wZ19jb25m bGljdDwvbGl0ZXJhbD4gc2NoZW1hLiBUaGlzIGFsbG93cyBmb3IgZWFzeSBxdWVyeWluZyBhbmQK KyAgICAgICAgICAgICBhbmFseXNpcyBvZiBjb25mbGljdHMuCisgICAgICAgICAgICA8L3BhcmE+ CisgICAgICAgICAgICA8Y2F1dGlvbj4KKyAgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAg ICAgVGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBzdHJpY3RseSB0aWVkIHRvIHRo ZSBsaWZlY3ljbGUgb2YgdGhlCisgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiBvciB0aGUgPGxp dGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPiBzZXR0aW5nLiBJZgorICAg ICAgICAgICAgICB0aGUgc3Vic2NyaXB0aW9uIGlzIGRyb3BwZWQsIG9yIGlmIHRoZSBkZXN0aW5h dGlvbiBpcyBjaGFuZ2VkIHRvCisgICAgICAgICAgICAgIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4s IHRoZSB0YWJsZSBhbmQgYWxsIGl0cyByZWNvcmRlZCBjb25mbGljdCBkYXRhIGFyZQorICAgICAg ICAgICAgICA8ZW1waGFzaXM+cGVybWFuZW50bHkgZGVsZXRlZDwvZW1waGFzaXM+LgorICAgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgSWYgcG9z dC1tb3J0ZW0gYW5hbHlzaXMgbWF5IGJlIG5lZWRlZCwgYmFjayB1cCB0aGUgY29uZmxpY3QgbG9n IHRhYmxlIGJlZm9yZQorICAgICAgICAgICAgICByZW1vdmluZyB0aGUgc3Vic2NyaXB0aW9uLgor ICAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICAgIDwvY2F1dGlvbj4KKyAgICAgICAgICAg PC9saXN0aXRlbT4KKyAgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+Cisg ICAgICAgICAgICAgPGxpdGVyYWw+YWxsPC9saXRlcmFsPjogUmVjb3JkcyBjb25mbGljdCBkZXRh aWxzIHRvIGJvdGggZGVzdGluYXRpb25zCisgICAgICAgICAgICAgPGxpdGVyYWw+bG9nPC9saXRl cmFsPiBhbmQgPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+LgorICAgICAgICAgICAgPC9wYXJhPgor ICAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAg ICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5Pgor CiAgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb3B5LWRhdGEiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5jb3B5X2RhdGE8L2xpdGVy YWw+ICg8dHlwZT5ib29sZWFuPC90eXBlPik8L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KLS0g CjIuNDkuMAoK --000000000000e559ea0649569292 Content-Type: application/octet-stream; name="v25-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v25-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkw2ac8p1 RnJvbSBmMGY4Nzc2ZGRhMTA1MDY0YjQzODVjYWQzNzBhNWU1MTZiYzg3ZDJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyMSBKYW4gMjAyNiAxODozNTowMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI1 IDIvM10gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIG15c2No ZW1hLmNvbmZsaWN0X2xvZ19oaXN0b3J5MjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCByZW1v dGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7ImEi OjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3NSAg ICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2NvbmZsaWN0LmMgfCA1NjEgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgfCAgIDEgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgIHwgIDMxICstCiBzcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9jb25mbGljdC5oICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d29ya2VyX2ludGVybmFsLmggIHwgICA3ICsKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9j b25mbGljdHMucGwgICB8ICA0NyArLQogNiBmaWxlcyBjaGFuZ2VkLCA2MDUgaW5zZXJ0aW9ucygr KSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25m bGljdC5jCmluZGV4IDcyMjUxNDE0OWZlLi42MWY0ZDY1ZjdkYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTUsMTMgKzE1LDIxIEBACiAjaW5jbHVk ZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKKyNpbmNsdWRl ICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0 b3IuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vY29uZmxpY3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJf aW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1n cm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9w Z19sc24uaCIKKyNpbmNsdWRlICJ1dGlscy9qc29uLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNl cnRfZXhpc3RzIiwKQEAgLTM0LDYgKzQyLDE4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBD b25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTXSA9 ICJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIgogfTsKIAorLyogU2NoZW1hIGZvciB0aGUgZWxl bWVudHMgd2l0aGluIHRoZSAnbG9jYWxfY29uZmxpY3RzJyBKU09OIGFycmF5ICovCitzdGF0aWMg Y29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgTG9jYWxDb25mbGljdFNjaGVtYVtdID0KK3sKKwl7 IC5hdHRuYW1lID0gInhpZCIsICAgICAgIC5hdHR0eXBpZCA9IFhJRE9JRCB9LAorCXsgLmF0dG5h bWUgPSAiY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRu YW1lID0gIm9yaWdpbiIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0g ImtleSIsICAgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInR1cGxl IiwgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfQorfTsKKworI2RlZmluZSBNQVhfTE9DQUxfQ09O RkxJQ1RfSU5GT19BVFRSUyBsZW5ndGhvZihMb2NhbENvbmZsaWN0U2NoZW1hKQorCiBzdGF0aWMg aW50CWVycmNvZGVfYXBwbHlfY29uZmxpY3QoQ29uZmxpY3RUeXBlIHR5cGUpOwogc3RhdGljIHZv aWQgZXJyZGV0YWlsX2FwcGx5X2NvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkJIFJl c3VsdFJlbEluZm8gKnJlbGluZm8sCkBAIC01MCw4ICs3MCwyNyBAQCBzdGF0aWMgdm9pZCBnZXRf dHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJ CSAgIFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsIGNoYXIgKipsb2NhbF9kZXNjLAogCQkJCQkJ ICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNsb3QsIGNoYXIgKipyZW1vdGVfZGVzYywKIAkJCQkJ CSAgIE9pZCBpbmRleG9pZCk7CitzdGF0aWMgdm9pZCBidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9z bG90KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkgVHVwbGVU YWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4RGVzYywgRGF0dW0gKnZh bHVlcywKKwkJCQkJCQkJCQkgYm9vbCAqaXNudWxsKTsKIHN0YXRpYyBjaGFyICpidWlsZF9pbmRl eF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJ CVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhvaWQpOworc3RhdGljIERhdHVtIHR1cGxl X3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShUdXBsZVRhYmxlU2xvdCAqc2xvdCk7CitzdGF0aWMg RGF0dW0gdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKEVTdGF0ZSAqZXN0YXRlLAor CQkJCQkJCQkJCQkgICBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkJICAgT2lkIHJlcGxp Y2FfaW5kZXgsCisJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRpYyBU dXBsZURlc2MgYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjKHZvaWQpOworc3RhdGljIERhdHVtIGJ1 aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2FycmF5KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBy ZWwsCisJCQkJCQkJCQkJCSAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCQkJ CSAgTGlzdCAqY29uZmxpY3R0dXBsZXMpOworc3RhdGljIHZvaWQgcHJlcGFyZV9jb25mbGljdF9s b2dfdHVwbGUoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJCSAgIFJlbGF0 aW9uIGNvbmZsaWN0bG9ncmVsLAorCQkJCQkJCQkJICAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5 cGUsCisJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqc2VhcmNoc2xvdCwKKwkJCQkJCQkJCSAg IExpc3QgKmNvbmZsaWN0dHVwbGVzLAorCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90 ZXNsb3QpOwogCiAvKgogICogR2V0IHRoZSB4bWluIGFuZCBjb21taXQgdGltZXN0YW1wIGRhdGEg KG9yaWdpbiBhbmQgdGltZXN0YW1wKSBhc3NvY2lhdGVkCkBAIC0xMDUsMzAgKzE0NCw5MCBAQCBS ZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZv LCBpbnQgZWxldmVsLAogCQkJCQlDb25mbGljdFR5cGUgdHlwZSwgVHVwbGVUYWJsZVNsb3QgKnNl YXJjaHNsb3QsCiAJCQkJCVR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LCBMaXN0ICpjb25mbGlj dHR1cGxlcykKIHsKLQlSZWxhdGlvbglsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVz YzsKLQlTdHJpbmdJbmZvRGF0YSBlcnJfZGV0YWlsOworCVJlbGF0aW9uCQlsb2NhbHJlbCA9IHJl bGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlDb25mbGljdExvZ0Rlc3QJZGVzdDsKKwlSZWxhdGlv bgkJY29uZmxpY3Rsb2dyZWw7CisJYm9vbAkJCWxvZ19kZXN0X2NsdDsKKwlib29sIAkJCWxvZ19k ZXN0X2xvZ2ZpbGU7CiAKLQlpbml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisJcGdzdGF0X3Jl cG9ydF9zdWJzY3JpcHRpb25fY29uZmxpY3QoTXlTdWJzY3JpcHRpb24tPm9pZCwgdHlwZSk7CiAK LQkvKiBGb3JtIGVycmRldGFpbCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBs ZXMgaW5mb3JtYXRpb24uICovCi0JZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUluZm8sIGNvbmZs aWN0dHVwbGUsIGNvbmZsaWN0dHVwbGVzKQotCQllcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0 YXRlLCByZWxpbmZvLCB0eXBlLCBzZWFyY2hzbG90LAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+ c2xvdCwgcmVtb3Rlc2xvdCwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPmluZGV4b2lkLAotCQkJ CQkJCQkgY29uZmxpY3R0dXBsZS0+eG1pbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPm9yaWdp biwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPnRzLAotCQkJCQkJCQkgJmVycl9kZXRhaWwpOwor CS8qCisJICogR2V0IHRoZSBjb25mbGljdCBsb2cgZGVzdGluYXRpb24uIEFsc28sIChpZiB0aGVy ZSBpcyBvbmUpIHJldHVybiB0aGUKKwkgKiBDTFQgcmVsYXRpb24gYWxyZWFkeSBvcGVuZWQgYW5k IHJlYWR5IGZvciBpbnNlcnRpb24uCisJICovCisJY29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGlj dExvZ0Rlc3RBbmRUYWJsZSgmZGVzdCk7CiAKLQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9j b25mbGljdChNeVN1YnNjcmlwdGlvbi0+b2lkLCB0eXBlKTsKKwlsb2dfZGVzdF9jbHQgPSAoKGRl c3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkgIT0gMCk7CisJbG9nX2Rlc3RfbG9nZmlsZSA9 ICgoZGVzdCAmIENPTkZMSUNUX0xPR19ERVNUX0xPRykgIT0gMCk7CiAKLQllcmVwb3J0KGVsZXZl bCwKLQkJCWVycmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCi0JCQllcnJtc2coImNvbmZsaWN0 IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAotCQkJCSAgIGdl dF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2NhbHJlbCkpLAotCQkJCSAg IFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSwKLQkJCQkgICBDb25mbGljdFR5cGVO YW1lc1t0eXBlXSksCi0JCQllcnJkZXRhaWxfaW50ZXJuYWwoIiVzIiwgZXJyX2RldGFpbC5kYXRh KSk7CisJLyogSW5zZXJ0IHRvIHRhYmxlIGlmIHJlcXVlc3RlZC4gKi8KKwlpZiAobG9nX2Rlc3Rf Y2x0KQorCXsKKwkJQXNzZXJ0KGNvbmZsaWN0bG9ncmVsICE9IE5VTEwpOworCisJCS8qCisJCSAq IFByZXBhcmUgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZS4gSWYgdGhlIGVycm9yIGxldmVsIGlzIGJl bG93IEVSUk9SLAorCQkgKiBpbnNlcnQgaXQgaW1tZWRpYXRlbHkuIE90aGVyd2lzZSwgZGVmZXIg dGhlIGluc2VydGlvbiB0byBhIG5ldworCQkgKiB0cmFuc2FjdGlvbiBhZnRlciB0aGUgY3VycmVu dCBvbmUgYWJvcnRzLCBlbnN1cmluZyB0aGUgaW5zZXJ0aW9uIG9mCisJCSAqIHRoZSBsb2cgdHVw bGUgaXMgbm90IHJvbGxlZCBiYWNrLgorCQkgKi8KKwkJcHJlcGFyZV9jb25mbGljdF9sb2dfdHVw bGUoZXN0YXRlLAorCQkJCQkJCQkgICByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2MsCisJCQkJCQkJ CSAgIGNvbmZsaWN0bG9ncmVsLAorCQkJCQkJCQkgICB0eXBlLAorCQkJCQkJCQkgICBzZWFyY2hz bG90LAorCQkJCQkJCQkgICBjb25mbGljdHR1cGxlcywKKwkJCQkJCQkJICAgcmVtb3Rlc2xvdCk7 CisJCWlmIChlbGV2ZWwgPCBFUlJPUikKKwkJCUluc2VydENvbmZsaWN0TG9nVHVwbGUoY29uZmxp Y3Rsb2dyZWwpOworCisJCWlmICghbG9nX2Rlc3RfbG9nZmlsZSkKKwkJeworCQkJLyoKKwkJCSAq IE5vdCBsb2dnaW5nIGNvbmZsaWN0IGRldGFpbHMgdG8gdGhlIHNlcnZlciBsb2c7IFJlcG9ydCB0 aGUgZXJyb3IKKwkJCSAqIG1zZyBidXQgb21pdCByYXcgdHVwbGUgZGF0YSBmcm9tIHNlcnZlciBs b2dzIHNpbmNlIGl0J3MgYWxyZWFkeQorCQkJICogY2FwdHVyZWQgaW4gdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZS4KKwkJCSAqLworCQkJZXJlcG9ydChlbGV2ZWwsCisJCQkJCWVycmNvZGVfYXBwbHlf Y29uZmxpY3QodHlwZSksCisJCQkJCWVycm1zZygiY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRp b24gXCIlcy4lc1wiOiBjb25mbGljdD0lcyIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoUmVs YXRpb25HZXROYW1lc3BhY2UobG9jYWxyZWwpKSwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKGxvY2FscmVsKSwKKwkJCQkJCUNvbmZsaWN0VHlwZU5hbWVzW3R5cGVdKSwKKwkJCQkJZXJy ZGV0YWlsKCJDb25mbGljdCBkZXRhaWxzIGFyZSBsb2dnZWQgdG8gdGhlIGNvbmZsaWN0IGxvZyB0 YWJsZTogJXMiLAorCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoY29uZmxpY3Rsb2dy ZWwpKSk7CisJCX0KKworCQl0YWJsZV9jbG9zZShjb25mbGljdGxvZ3JlbCwgUm93RXhjbHVzaXZl TG9jayk7CisJfQorCisJLyogTG9nIGludG8gdGhlIHNlcnZlciBsb2cgaWYgcmVxdWVzdGVkLiAq LworCWlmIChsb2dfZGVzdF9sb2dmaWxlKQorCXsKKwkJU3RyaW5nSW5mb0RhdGEJZXJyX2RldGFp bDsKKworCQlpbml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisKKwkJLyogRm9ybSBlcnJkZXRh aWwgbWVzc2FnZSBieSBjb21iaW5pbmcgY29uZmxpY3RpbmcgdHVwbGVzIGluZm9ybWF0aW9uLiAq LworCQlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxp Y3R0dXBsZXMpCisJCQllcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0YXRlLCByZWxpbmZvLCB0 eXBlLCBzZWFyY2hzbG90LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+c2xvdCwgcmVtb3Rlc2xv dCwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPmluZGV4b2lkLAorCQkJCQkJCQkJY29uZmxpY3R0 dXBsZS0+eG1pbiwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPm9yaWdpbiwKKwkJCQkJCQkJCWNv bmZsaWN0dHVwbGUtPnRzLAorCQkJCQkJCQkJJmVycl9kZXRhaWwpOworCisJCS8qIFN0YW5kYXJk IHJlcG9ydGluZyB3aXRoIGZ1bGwgaW50ZXJuYWwgZGV0YWlscy4gKi8KKwkJZXJlcG9ydChlbGV2 ZWwsCisJCQkJZXJyY29kZV9hcHBseV9jb25mbGljdCh0eXBlKSwKKwkJCQllcnJtc2coImNvbmZs aWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAorCQkJCQkg ICBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UobG9jYWxyZWwpKSwKKwkJ CQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQkgICBDb25mbGlj dFR5cGVOYW1lc1t0eXBlXSksCisJCQkJZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVycl9kZXRh aWwuZGF0YSkpOworCX0KIH0KIAogLyoKQEAgLTE2Miw2ICsyNjEsNjQgQEAgSW5pdENvbmZsaWN0 SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZvKQogCXJlbEluZm8tPnJpX29uQ29uZmxpY3RB cmJpdGVySW5kZXhlcyA9IHVuaXF1ZUluZGV4ZXM7CiB9CiAKKy8qCisgKiBHZXRDb25mbGljdExv Z0Rlc3RBbmRUYWJsZQorICoKKyAqIEZldGNoZXMgY29uZmxpY3QgbG9nZ2luZyBtZXRhZGF0YSBm cm9tIHRoZSBjYWNoZWQgTXlTdWJzY3JpcHRpb24gcG9pbnRlci4KKyAqIFNldHMgdGhlIGRlc3Rp bmF0aW9uIGVudW0gaW4gKmxvZ19kZXN0IGFuZCwgaWYgYXBwbGljYWJsZSwgb3BlbnMgYW5kCisg KiByZXR1cm5zIHRoZSByZWxhdGlvbiBoYW5kbGUgZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUu CisgKi8KK1JlbGF0aW9uCitHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rl c3QgKmxvZ19kZXN0KQoreworCU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CisJUmVsYXRpb24JY29u ZmxpY3Rsb2dyZWwgPSBOVUxMOworCisJLyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxvZyBkZXN0 aW5hdGlvbiB0byB0aGUgaW50ZXJuYWwgZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICogYWxyZWFk eSBjb250YWlucyB0aGUgZGF0YSBmcm9tIHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkqbG9nX2Rl c3QgPSBHZXRMb2dEZXN0aW5hdGlvbihNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dkZXN0KTsK KworCS8qIFF1aWNrIGV4aXQgaWYgYSBjb25mbGljdCBsb2cgdGFibGUgd2FzIG5vdCByZXF1ZXN0 ZWQuICovCisJaWYgKCgqbG9nX2Rlc3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkgPT0gMCkK KwkJcmV0dXJuIE5VTEw7CisKKwljb25mbGljdGxvZ3JlbGlkID0gTXlTdWJzY3JpcHRpb24tPmNv bmZsaWN0bG9ncmVsaWQ7CisKKwlBc3NlcnQoT2lkSXNWYWxpZChjb25mbGljdGxvZ3JlbGlkKSk7 CisKKwljb25mbGljdGxvZ3JlbCA9IHRhYmxlX29wZW4oY29uZmxpY3Rsb2dyZWxpZCwgUm93RXhj bHVzaXZlTG9jayk7CisJaWYgKGNvbmZsaWN0bG9ncmVsID09IE5VTEwpCisJCWVsb2coRVJST1Is ICJjb3VsZCBub3Qgb3BlbiBjb25mbGljdCBsb2cgdGFibGUgKE9JRCAldSkiLAorCQkJIGNvbmZs aWN0bG9ncmVsaWQpOworCisJcmV0dXJuIGNvbmZsaWN0bG9ncmVsOworfQorCisvKgorICogSW5z ZXJ0Q29uZmxpY3RMb2dUdXBsZQorICoKKyAqIEluc2VydCBjb25mbGljdCBsb2cgdHVwbGUgaW50 byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBJdCB1c2VzCisgKiBIRUFQX0lOU0VSVF9OT19MT0dJ Q0FMIHRvIGV4cGxpY2l0bHkgYmxvY2sgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgdHVwbGUKKyAq IGluc2VydGVkIGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9pZAorSW5zZXJ0 Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwlpbnQJCQlvcHRp b25zID0gSEVBUF9JTlNFUlRfTk9fTE9HSUNBTDsKKworCS8qIEEgdmFsaWQgdHVwbGUgbXVzdCBi ZSBwcmVwYXJlZCBhbmQgc3RvcmVkIGluIE15TG9naWNhbFJlcFdvcmtlci4gKi8KKwlBc3NlcnQo TXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUgIT0gTlVMTCk7CisKKwloZWFw X2luc2VydChjb25mbGljdGxvZ3JlbCwgTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2df dHVwbGUsCisJCQkJR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKSwgb3B0aW9ucywgTlVMTCk7CisK KwkvKiBGcmVlIGNvbmZsaWN0IGxvZyB0dXBsZS4gKi8KKwloZWFwX2ZyZWV0dXBsZShNeUxvZ2lj YWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSk7CisJTXlMb2dpY2FsUmVwV29ya2VyLT5j b25mbGljdF9sb2dfdHVwbGUgPSBOVUxMOworfQorCiAvKgogICogQWRkIFNRTFNUQVRFIGVycm9y IGNvZGUgdG8gdGhlIGN1cnJlbnQgY29uZmxpY3QgcmVwb3J0LgogICovCkBAIC01MjIsNiArNjc5 LDQwIEBAIGdldF90dXBsZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxp bmZvLCBDb25mbGljdFR5cGUgdHlwZSwKIAl9CiB9CiAKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24g dG8gZXh0cmFjdCB0aGUgInJhdyIgaW5kZXgga2V5IERhdHVtcyBhbmQgdGhlaXIgbnVsbCBmbGFn cworICogZnJvbSBhIFR1cGxlVGFibGVTbG90LCBnaXZlbiBhbiBhbHJlYWR5IG9wZW4gaW5kZXgg ZGVzY3JpcHRvci4KKyAqIFRoaXMgaXMgdGhlIHJldXNhYmxlIGNvcmUgbG9naWMuCisgKi8KK3N0 YXRpYyB2b2lkCitidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KEVTdGF0ZSAqZXN0YXRlLCBS ZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJ IFJlbGF0aW9uIGluZGV4RGVzYywgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQkgYm9vbCAqaXNudWxs KQoreworCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OworCisJLyoKKwkgKiBJZiB0 aGUgc2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBpdCBpbnRvIGEgaGVhcCB0dXBsZSBzbG90 IGFzCisJICogRm9ybUluZGV4RGF0dW0gb25seSB3b3JrcyB3aXRoIGhlYXAgdHVwbGUgc2xvdHMu CisJICovCisJaWYgKFRUU19JU19WSVJUVUFMKHNsb3QpKQorCXsKKwkJLyogU2xvdCBpcyBjcmVh dGVkIHdpdGhpbiB0aGUgRVN0YXRlJ3MgdHVwbGUgdGFibGUgKi8KKwkJdGFibGVzbG90ID0gdGFi bGVfc2xvdF9jcmVhdGUobG9jYWxyZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOworCQl0YWJs ZXNsb3QgPSBFeGVjQ29weVNsb3QodGFibGVzbG90LCBzbG90KTsKKwl9CisKKwkvKgorCSAqIElu aXRpYWxpemUgZWN4dF9zY2FudHVwbGUgZm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0 dW0KKwkgKi8KKwlHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVjeHRfc2NhbnR1cGxl ID0gdGFibGVzbG90OworCisJLyogRm9ybSB0aGUgaW5kZXggZGF0dW1zICovCisJRm9ybUluZGV4 RGF0dW0oQnVpbGRJbmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90LCBlc3RhdGUsIHZhbHVl cywKKwkJCQkgICBpc251bGwpOworfQorCiAvKgogICogSGVscGVyIGZ1bmN0aW9ucyB0byBjb25z dHJ1Y3QgYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY29udGVudHMgb2YgYW4gaW5kZXgKICAqIGVu dHJ5LiBTZWUgQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24gZm9yIGRldGFpbHMuCkBAIC01Mzcs NDEgKzcyOCwzMjUgQEAgYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVs YXRpb24gbG9jYWxyZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCVJlbGF0aW9uCWluZGV4RGVz YzsKIAlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAlib29sCQlpc251bGxbSU5ERVhf TUFYX0tFWVNdOwotCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OwogCi0JaWYgKCF0 YWJsZXNsb3QpCisJaWYgKCFzbG90KQogCQlyZXR1cm4gTlVMTDsKIAogCUFzc2VydChDaGVja1Jl bGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOwog CiAJaW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleG9pZCwgTm9Mb2NrKTsKIAotCS8qCi0JICog SWYgdGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAgdHVwbGUg c2xvdCBhcwotCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1cGxlIHNs b3RzLgotCSAqLwotCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwlidWlsZF9pbmRleF9kYXR1 bXNfZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4RGVzYywgdmFsdWVzLAor CQkJCQkJCQkgaXNudWxsKTsKKworCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3Jp cHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwlpbmRleF9jbG9zZShpbmRleERl c2MsIE5vTG9jayk7CisKKwlyZXR1cm4gaW5kZXhfdmFsdWU7Cit9CisKKy8qCisgKiB0dXBsZV90 YWJsZV9zbG90X3RvX2pzb25fZGF0dW0KKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVy dCBhIFR1cGxlVGFibGVTbG90IHRvIEpTT04uCisgKi8KK3N0YXRpYyBEYXR1bQordHVwbGVfdGFi bGVfc2xvdF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCUhlYXBUdXBs ZQl0dXBsZTsKKwlEYXR1bQkJZGF0dW07CisJRGF0dW0JCWpzb247CisKKwlBc3NlcnQoc2xvdCAh PSBOVUxMKTsKKworCXR1cGxlID0gRXhlY0NvcHlTbG90SGVhcFR1cGxlKHNsb3QpOworCWRhdHVt ID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCBzbG90LT50dHNfdHVwbGVEZXNjcmlw dG9yKTsKKworCWpzb24gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1bSk7 CisJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJcmV0dXJuIGpzb247Cit9CisKKy8qCisgKiB0 dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24KKyAqCisgKiBGZXRjaCByZXBsaWNhIGlk ZW50aXR5IGtleSBmcm9tIHRoZSB0dXBsZSB0YWJsZSBzbG90IGFuZCBjb252ZXJ0IGludG8gYQor ICogSlNPTiBkYXR1bS4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2lu ZGV4dHVwX2pzb24oRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkg IE9pZCBpbmRleGlkLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlSZWxhdGlvbglpbmRleERl c2M7CisJRGF0dW0JCXZhbHVlc1tJTkRFWF9NQVhfS0VZU107CisJYm9vbAkJaXNudWxsW0lOREVY X01BWF9LRVlTXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0 dW0JCWRhdHVtOworCisJQXNzZXJ0KHNsb3QgIT0gTlVMTCk7CisKKwlBc3NlcnQoQ2hlY2tSZWxh dGlvbk9pZExvY2tlZEJ5TWUoaW5kZXhpZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOworCisJ aW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleGlkLCBOb0xvY2spOworCisJYnVpbGRfaW5kZXhf ZGF0dW1zX2Zyb21fc2xvdChlc3RhdGUsIGxvY2FscmVsLCBzbG90LCBpbmRleERlc2MsIHZhbHVl cywKKwkJCQkJCQkJIGlzbnVsbCk7CisJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IoaW5kZXhE ZXNjKTsKKworCS8qIEJsZXNzIHRoZSB0dXBkZXNjIHNvIGl0IGNhbiBiZSBsb29rZWQgdXAgYnkg cm93X3RvX2pzb24uICovCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKiBGb3JtIHRo ZSByZXBsaWNhIGlkZW50aXR5IHR1cGxlLiAqLworCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1 cGRlc2MsIHZhbHVlcywgaXNudWxsKTsKKwlkYXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1 bSh0dXBsZSwgdHVwZGVzYyk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5vTG9jayk7CisJ aGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJLyogQ29udmVydCB0byBhIEpTT04gZGF0dW0uICov CisJcmV0dXJuIERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGRhdHVtKTsKK30KKwor LyoKKyAqIGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYworICoKKyAqIEJ1aWxkIGFuZCBibGVzcyBh IHR1cGxlIGRlc2NyaXB0b3IgZm9yIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKyAq IGJhc2VkIG9uIHRoZSBwcmVkZWZpbmVkIExvY2FsQ29uZmxpY3RTY2hlbWEuCisgKi8KK3N0YXRp YyBUdXBsZURlc2MKK2J1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYyh2b2lkKQoreworCVR1cGxlRGVz YyAgIHR1cGRlc2M7CisKKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoTUFYX0xP Q0FMX0NPTkZMSUNUX0lORk9fQVRUUlMpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfTE9D QUxfQ09ORkxJQ1RfSU5GT19BVFRSUzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpIChpICsgMSksCisJCQkJCQkgICBMb2NhbENvbmZsaWN0U2NoZW1hW2ld LmF0dG5hbWUsCisJCQkJCQkgICBMb2NhbENvbmZsaWN0U2NoZW1hW2ldLmF0dHR5cGlkLAorCQkJ CQkJICAgLTEsIDApOworCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwlyZXR1cm4gdHVw ZGVzYzsKK30KKworLyoKKyAqIEJ1aWxkcyB0aGUgbG9jYWwgY29uZmxpY3RzIEpTT04gYXJyYXkg Y29sdW1uIGZyb20gdGhlIGxpc3Qgb2YKKyAqIENvbmZsaWN0VHVwbGVJbmZvIG9iamVjdHMuCisg KgorICogRXhhbXBsZSBvdXRwdXQgc3RydWN0dXJlOgorICogWyB7ICJ4aWQiOiAiMTAwMSIsICJj b21taXRfdHMiOiAiLi4uIiwgIm9yaWdpbiI6ICIuLi4iLCAidHVwbGUiOiB7Li4ufSB9LCAuLi4g XQorICovCitzdGF0aWMgRGF0dW0KK2J1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2FycmF5KEVT dGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCSBDb25mbGljdFR5cGUgY29uZmxp Y3RfdHlwZSwKKwkJCQkJCQkJIExpc3QgKmNvbmZsaWN0dHVwbGVzKQoreworCUxpc3RDZWxsICAg KmxjOworCUxpc3QJICAgKmpzb25fZGF0dW1zID0gTklMOworCURhdHVtCSAgICpqc29uX2RhdHVt X2FycmF5OworCWJvb2wJICAgKmpzb25fbnVsbF9hcnJheTsKKwlEYXR1bQkJanNvbl9hcnJheV9k YXR1bTsKKwlpbnQJCQludW1fY29uZmxpY3RzOworCWludAkJCWk7CisJaW50MTYJCXR5cGxlbjsK Kwlib29sCQl0eXBieXZhbDsKKwljaGFyCQl0eXBhbGlnbjsKKwlUdXBsZURlc2MJdHVwZGVzYzsK KworCS8qIEJ1aWxkIGxvY2FsIGNvbmZsaWN0cyB0dXBsZSBkZXNjcmlwdG9yLiAqLworCXR1cGRl c2MgPSBidWlsZF9jb25mbGljdF90dXBsZWRlc2MoKTsKKworCS8qIFByb2Nlc3MgbG9jYWwgY29u ZmxpY3QgdHVwbGUgbGlzdCBhbmQgcHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAqLworCWZvcmVh Y2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykK IAl7Ci0JCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5l c190dXBsZVRhYmxlKTsKLQkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xv dCk7CisJCURhdHVtCQl2YWx1ZXNbTUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlNdID0gezB9 OworCQlib29sCQludWxsc1tNQVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSU10gPSB7MH07CisJ CWNoYXIJICAgKm9yaWdpbl9uYW1lID0gTlVMTDsKKwkJSGVhcFR1cGxlCXR1cGxlOworCQlEYXR1 bQkJanNvbl9kYXR1bTsKKwkJaW50CQkJYXR0bm87CisKKwkJYXR0bm8gPSAwOworCQl2YWx1ZXNb YXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0oY29uZmxpY3R0dXBsZS0+eG1pbik7CisK KwkJaWYgKGNvbmZsaWN0dHVwbGUtPnRzKQorCQkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1w VHpHZXREYXR1bShjb25mbGljdHR1cGxlLT50cyk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytd ID0gdHJ1ZTsKKworCQlpZiAoY29uZmxpY3R0dXBsZS0+b3JpZ2luICE9IEludmFsaWRSZXBPcmln aW5JZCkKKwkJCXJlcGxvcmlnaW5fYnlfb2lkKGNvbmZsaWN0dHVwbGUtPm9yaWdpbiwgdHJ1ZSwg Jm9yaWdpbl9uYW1lKTsKKworCQkvKiBTdG9yZSBlbXB0eSBzdHJpbmcgaWYgb3JpZ2luIG5hbWUg Zm9yIHRoZSB0dXBsZSBpcyBOVUxMLiAqLworCQlpZiAob3JpZ2luX25hbWUgIT0gTlVMTCkKKwkJ CXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ob3JpZ2luX25hbWUpOworCQll bHNlCisJCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwkJLyoKKwkJICogQWRkIHRoZSBjb25m bGljdGluZyBrZXkgdmFsdWVzIGluIHRoZSBjYXNlIG9mIGEgdW5pcXVlIGNvbnN0cmFpbnQKKwkJ ICogdmlvbGF0aW9uLgorCQkgKi8KKwkJaWYgKGNvbmZsaWN0X3R5cGUgPT0gQ1RfSU5TRVJUX0VY SVNUUyB8fAorCQkJY29uZmxpY3RfdHlwZSA9PSBDVF9VUERBVEVfRVhJU1RTIHx8CisJCQljb25m bGljdF90eXBlID09IENUX01VTFRJUExFX1VOSVFVRV9DT05GTElDVFMpCisJCXsKKwkJCU9pZAlp bmRleG9pZCA9IGNvbmZsaWN0dHVwbGUtPmluZGV4b2lkOworCisJCQlBc3NlcnQoT2lkSXNWYWxp ZChpbmRleG9pZCkgJiYgY29uZmxpY3R0dXBsZS0+c2xvdCAmJgorCQkJCSAgIENoZWNrUmVsYXRp b25PaWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkg IHRydWUpKTsKKwkJCXZhbHVlc1thdHRubysrXSA9CisJCQkJCXR1cGxlX3RhYmxlX3Nsb3RfdG9f aW5kZXh0dXBfanNvbihlc3RhdGUsIHJlbCwKKwkJCQkJCQkJCQkJCQkgIGluZGV4b2lkLAorCQkJ CQkJCQkJCQkJCSAgY29uZmxpY3R0dXBsZS0+c2xvdCk7CisJCX0KKwkJZWxzZQorCQkJbnVsbHNb YXR0bm8rK10gPSB0cnVlOworCisJCS8qIENvbnZlcnQgY29uZmxpY3RpbmcgdHVwbGUgdG8gSlNP TiBkYXR1bS4gKi8KKwkJaWYgKGNvbmZsaWN0dHVwbGUtPnNsb3QpCisJCQl2YWx1ZXNbYXR0bm9d ID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKGNvbmZsaWN0dHVwbGUtPnNsb3QpOwor CQllbHNlCisJCQludWxsc1thdHRub10gPSB0cnVlOworCisJCUFzc2VydChhdHRubyArIDEgPT0g TUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlMpOworCisJCXR1cGxlID0gaGVhcF9mb3JtX3R1 cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCisJCWpzb25fZGF0dW0gPSBoZWFwX2NvcHlf dHVwbGVfYXNfZGF0dW0odHVwbGUsIHR1cGRlc2MpOworCisJCS8qCisJCSAqIEJ1aWxkIHRoZSBo aWdoZXIgbGV2ZWwgSlNPTiBkYXR1bSBpbiBmb3JtYXQgZGVzY3JpYmVkIGluIGZ1bmN0aW9uCisJ CSAqIGhlYWRlci4KKwkJICovCisJCWpzb25fZGF0dW0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJv d190b19qc29uLCBqc29uX2RhdHVtKTsKKworCQkvKiBEb25lIHdpdGggdGhlIHRlbXBvcmFyeSB0 dXBsZS4gKi8KKwkJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJCS8qIEFkZCB0byB0aGUgYXJy YXkgZWxlbWVudC4gKi8KKwkJanNvbl9kYXR1bXMgPSBsYXBwZW5kKGpzb25fZGF0dW1zLCAodm9p ZCAqKSBqc29uX2RhdHVtKTsKIAl9CiAKLQkvKgotCSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVw bGUgZm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0gd2hlbgotCSAqIGluZGV4IGV4 cHJlc3Npb25zIGFyZSBwcmVzZW50LgotCSAqLwotCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0 YXRlKS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisJbnVtX2NvbmZsaWN0cyA9IGxpc3Rf bGVuZ3RoKGpzb25fZGF0dW1zKTsKIAotCS8qCi0JICogVGhlIHZhbHVlcy9udWxscyBhcnJheXMg cGFzc2VkIHRvIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIHNob3VsZCBiZQotCSAqIHRoZSBy ZXN1bHRzIG9mIEZvcm1JbmRleERhdHVtLCB3aGljaCBhcmUgdGhlICJyYXciIGlucHV0IHRvIHRo ZSBpbmRleAotCSAqIEFNLgotCSAqLwotCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJbmZvKGlu ZGV4RGVzYyksIHRhYmxlc2xvdCwgZXN0YXRlLCB2YWx1ZXMsIGlzbnVsbCk7CisJanNvbl9kYXR1 bV9hcnJheSA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtX2NvbmZsaWN0cyk7CisJanNvbl9udWxs X2FycmF5ID0gcGFsbG9jMF9hcnJheShib29sLCBudW1fY29uZmxpY3RzKTsKIAotCWluZGV4X3Zh bHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVs bCk7CisJaSA9IDA7CisJZm9yZWFjaChsYywganNvbl9kYXR1bXMpCisJeworCQlqc29uX2RhdHVt X2FycmF5W2ldID0gKERhdHVtKSBsZmlyc3QobGMpOworCQlpKys7CisJfQogCi0JaW5kZXhfY2xv c2UoaW5kZXhEZXNjLCBOb0xvY2spOworCS8qIENvbnN0cnVjdCB0aGUgSlNPTiBhcnJheSBEYXR1 bS4gKi8KKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihKU09OT0lELCAmdHlwbGVuLCAmdHlwYnl2YWws ICZ0eXBhbGlnbik7CisJanNvbl9hcnJheV9kYXR1bSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1 Y3RfYXJyYXkoanNvbl9kYXR1bV9hcnJheSwKKwkJCQkJCQkJCQkJCQkgICBudW1fY29uZmxpY3Rz LAorCQkJCQkJCQkJCQkJCSAgIEpTT05PSUQsCisJCQkJCQkJCQkJCQkJICAgdHlwbGVuLAorCQkJ CQkJCQkJCQkJCSAgIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJCSAgIHR5cGFsaWduKSk7CisJcGZy ZWUoanNvbl9kYXR1bV9hcnJheSk7CisJcGZyZWUoanNvbl9udWxsX2FycmF5KTsKKworCXJldHVy biBqc29uX2FycmF5X2RhdHVtOworfQogCi0JcmV0dXJuIGluZGV4X3ZhbHVlOworLyoKKyAqIHBy ZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlCisgKgorICogVGhpcyByb3V0aW5lIHByZXBhcmVzIGEg dHVwbGUgZGV0YWlsaW5nIGEgY29uZmxpY3QgZW5jb3VudGVyZWQgZHVyaW5nCisgKiBsb2dpY2Fs IHJlcGxpY2F0aW9uLiBUaGUgcHJlcGFyZWQgdHVwbGUgd2lsbCBiZSBzdG9yZWQgaW4KKyAqIE15 TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlIHdoaWNoIHNob3VsZCBiZSBpbnNl cnRlZCBpbnRvIHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGJ5IGNhbGxpbmcgSW5zZXJ0Q29u ZmxpY3RMb2dUdXBsZS4KKyAqLworc3RhdGljIHZvaWQKK3ByZXBhcmVfY29uZmxpY3RfbG9nX3R1 cGxlKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkgICBSZWxhdGlvbiBjb25m bGljdGxvZ3JlbCwKKwkJCQkJCSAgIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJ ICAgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCisJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1 cGxlcywKKwkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90KQoreworCURhdHVtCQl2 YWx1ZXNbTUFYX0NPTkZMSUNUX0FUVFJfTlVNXSA9IHswfTsKKwlib29sCQludWxsc1tNQVhfQ09O RkxJQ1RfQVRUUl9OVU1dID0gezB9OworCWludAkJCWF0dG5vOworCWNoYXIJICAgKnJlbW90ZV9v cmlnaW4gPSBOVUxMOworCU1lbW9yeUNvbnRleHQJb2xkY3R4OworCisJQXNzZXJ0KE15TG9naWNh bFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID09IE5VTEwpOworCisJLyogUG9wdWxhdGUg dGhlIHZhbHVlcyBhbmQgbnVsbHMgYXJyYXlzLiAqLworCWF0dG5vID0gMDsKKwl2YWx1ZXNbYXR0 bm8rK10gPSBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisKKwl2YWx1 ZXNbYXR0bm8rK10gPQorCQkJQ1N0cmluZ0dldFRleHREYXR1bShnZXRfbmFtZXNwYWNlX25hbWUo UmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkpOworCisJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmlu Z0dldFRleHREYXR1bShSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKKworCXZhbHVlc1th dHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RUeXBlTmFtZXNbY29uZmxpY3Rf dHlwZV0pOworCisJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHJlbW90ZV94aWQpKQorCQl2YWx1 ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0ocmVtb3RlX3hpZCk7CisJZWxzZQor CQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwl2YWx1ZXNbYXR0bm8rK10gPSBMU05HZXREYXR1 bShyZW1vdGVfZmluYWxfbHNuKTsKKworCWlmIChyZW1vdGVfY29tbWl0X3RzID4gMCkKKwkJdmFs dWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1bShyZW1vdGVfY29tbWl0X3RzKTsKKwll bHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCWlmIChyZXBsb3JpZ2luX3Nlc3Npb25f b3JpZ2luICE9IEludmFsaWRSZXBPcmlnaW5JZCkKKwkJcmVwbG9yaWdpbl9ieV9vaWQocmVwbG9y aWdpbl9zZXNzaW9uX29yaWdpbiwgdHJ1ZSwgJnJlbW90ZV9vcmlnaW4pOworCisJaWYgKHJlbW90 ZV9vcmlnaW4gIT0gTlVMTCkKKwkJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHREYXR1 bShyZW1vdGVfb3JpZ2luKTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCWlm ICghVHVwSXNOdWxsKHNlYXJjaHNsb3QpKQorCXsKKwkJT2lkCQlyZXBsaWNhX2luZGV4ID0gR2V0 UmVsYXRpb25JZGVudGl0eU9yUEsocmVsKTsKKworCQkvKgorCQkgKiBJZiB0aGUgdGFibGUgaGFz IGEgdmFsaWQgcmVwbGljYSBpZGVudGl0eSBpbmRleCwgYnVpbGQgdGhlIGluZGV4CisJCSAqIEpT T04gZGF0dW0gZnJvbSBrZXkgdmFsdWUuIE90aGVyd2lzZSwgY29uc3RydWN0IGl0IGZyb20gdGhl IGNvbXBsZXRlCisJCSAqIHR1cGxlIGluIFJFUExJQ0EgSURFTlRJVFkgRlVMTCBjYXNlcy4KKwkJ ICovCisJCWlmIChPaWRJc1ZhbGlkKHJlcGxpY2FfaW5kZXgpKQorCQkJdmFsdWVzW2F0dG5vKytd ID0gdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKGVzdGF0ZSwgcmVsLAorCQkJCQkJ CQkJCQkJCQkJCXJlcGxpY2FfaW5kZXgsCisJCQkJCQkJCQkJCQkJCQkJc2VhcmNoc2xvdCk7CisJ CWVsc2UKKwkJCXZhbHVlc1thdHRubysrXSA9IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1 bShzZWFyY2hzbG90KTsKKwl9CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlp ZiAoIVR1cElzTnVsbChyZW1vdGVzbG90KSkKKwkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFi bGVfc2xvdF90b19qc29uX2RhdHVtKHJlbW90ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8r K10gPSB0cnVlOworCisJdmFsdWVzW2F0dG5vXSA9IGJ1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29u X2FycmF5KGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJCQkJCSBjb25mbGljdF90eXBlLAorCQkJCQkJ CQkJCQkJCSBjb25mbGljdHR1cGxlcyk7CisKKwlBc3NlcnQoYXR0bm8gKyAxID09IE1BWF9DT05G TElDVF9BVFRSX05VTSk7CisKKwlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlD b250ZXh0KTsKKwlNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9CisJCWhl YXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKGNvbmZsaWN0bG9ncmVsKSwgdmFsdWVzLCBu dWxscyk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMKaW5kZXggM2VkODY0ODBiZTIuLjJkZGE1YTQ0 MjE4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVy LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCkBAIC00 NzcsNiArNDc3LDcgQEAgcmV0cnk6CiAJd29ya2VyLT5vbGRlc3Rfbm9ucmVtb3ZhYmxlX3hpZCA9 IHJldGFpbl9kZWFkX3R1cGxlcwogCQk/IE15UmVwbGljYXRpb25TbG90LT5kYXRhLnhtaW4KIAkJ OiBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwl3b3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9IE5V TEw7CiAJd29ya2VyLT5sYXN0X2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCVRJTUVTVEFNUF9O T0JFR0lOKHdvcmtlci0+bGFzdF9zZW5kX3RpbWUpOwogCVRJTUVTVEFNUF9OT0JFR0lOKHdvcmtl ci0+bGFzdF9yZWN2X3RpbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2Vy LmMKaW5kZXggYWQyODFlNzA2OWIuLmQ0YmUxMTIyNjAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTQ4Miw3ICs0ODIsOSBAQCBzdGF0aWMgYm9vbCBNeVN1 YnNjcmlwdGlvblZhbGlkID0gZmFsc2U7CiBzdGF0aWMgTGlzdCAqb25fY29tbWl0X3dha2V1cF93 b3JrZXJzX3N1YmlkcyA9IE5JTDsKIAogYm9vbAkJaW5fcmVtb3RlX3RyYW5zYWN0aW9uID0gZmFs c2U7Ci1zdGF0aWMgWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQ dHI7CitYTG9nUmVjUHRyIHJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKK1Ry YW5zYWN0aW9uSWQJcmVtb3RlX3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworVGltZXN0YW1w VHoJcmVtb3RlX2NvbW1pdF90cyA9IDA7CiAKIC8qIGZpZWxkcyB2YWxpZCBvbmx5IHdoZW4gcHJv Y2Vzc2luZyBzdHJlYW1lZCB0cmFuc2FjdGlvbiAqLwogc3RhdGljIGJvb2wgaW5fc3RyZWFtZWRf dHJhbnNhY3Rpb24gPSBmYWxzZTsKQEAgLTEyMTksNiArMTIyMSw4IEBAIGFwcGx5X2hhbmRsZV9i ZWdpbihTdHJpbmdJbmZvIHMpCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChiZWdpbl9k YXRhLnhpZCwgYmVnaW5fZGF0YS5maW5hbF9sc24pOwogCiAJcmVtb3RlX2ZpbmFsX2xzbiA9IGJl Z2luX2RhdGEuZmluYWxfbHNuOworCXJlbW90ZV9jb21taXRfdHMgPSBiZWdpbl9kYXRhLmNvbW1p dHRpbWU7CisJcmVtb3RlX3hpZCA9IGJlZ2luX2RhdGEueGlkOwogCiAJbWF5YmVfc3RhcnRfc2tp cHBpbmdfY2hhbmdlcyhiZWdpbl9kYXRhLmZpbmFsX2xzbik7CiAKQEAgLTE3NDUsNiArMTc0OSwx MCBAQCBhcHBseV9oYW5kbGVfc3RyZWFtX3N0YXJ0KFN0cmluZ0luZm8gcykKIAkvKiBleHRyYWN0 IFhJRCBvZiB0aGUgdG9wLWxldmVsIHRyYW5zYWN0aW9uICovCiAJc3RyZWFtX3hpZCA9IGxvZ2lj YWxyZXBfcmVhZF9zdHJlYW1fc3RhcnQocywgJmZpcnN0X3NlZ21lbnQpOwogCisJcmVtb3RlX3hp ZCA9IHN0cmVhbV94aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwor CXJlbW90ZV9jb21taXRfdHMgPSAwOworCiAJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChzdHJl YW1feGlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RPQ09M X1ZJT0xBVElPTiksCkBAIC01NjA5LDYgKzU2MTcsMjcgQEAgc3RhcnRfYXBwbHkoWExvZ1JlY1B0 ciBvcmlnaW5fc3RhcnRwb3MpCiAJCQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9lcnJvcihN eVN1YnNjcmlwdGlvbi0+b2lkLAogCQkJCQkJCQkJCQkgTXlMb2dpY2FsUmVwV29ya2VyLT50eXBl KTsKIAorCQkJLyoKKwkJCSAqIEluc2VydCBhbnkgcGVuZGluZyBjb25mbGljdCBsb2cgdHVwbGUg dW5kZXIgYSBuZXcgdHJhbnNhY3Rpb24uCisJCQkgKi8KKwkJCWlmIChNeUxvZ2ljYWxSZXBXb3Jr ZXItPmNvbmZsaWN0X2xvZ190dXBsZSAhPSBOVUxMKQorCQkJeworCQkJCVJlbGF0aW9uCWNvbmZs aWN0bG9ncmVsOworCQkJCUNvbmZsaWN0TG9nRGVzdAlkZXN0OworCisJCQkJU3RhcnRUcmFuc2Fj dGlvbkNvbW1hbmQoKTsKKwkJCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFw c2hvdCgpKTsKKworCQkJCS8qIE9wZW4gY29uZmxpY3QgbG9nIHRhYmxlIGFuZCBpbnNlcnQgdGhl IHR1cGxlLiAqLworCQkJCWNvbmZsaWN0bG9ncmVsID0gR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFi bGUoJmRlc3QpOworCQkJCUFzc2VydCgoZGVzdCAmIENPTkZMSUNUX0xPR19ERVNUX1RBQkxFKSAh PSAwKTsKKwkJCQlJbnNlcnRDb25mbGljdExvZ1R1cGxlKGNvbmZsaWN0bG9ncmVsKTsKKwkJCQl0 YWJsZV9jbG9zZShjb25mbGljdGxvZ3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJCQlQb3BB Y3RpdmVTbmFwc2hvdCgpOworCQkJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCQkJfQor CiAJCQlQR19SRV9USFJPVygpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vY29uZmxpY3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgK aW5kZXggMzFmYWNjMWVjN2UuLmRiZjI1OWI4ZDAxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9jb25mbGljdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZs aWN0LmgKQEAgLTE0NCw0ICsxNDQsNyBAQCBleHRlcm4gdm9pZCBSZXBvcnRBcHBseUNvbmZsaWN0 KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJCQlUdXBsZVRh YmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJTGlzdCAqY29uZmxpY3R0dXBsZXMpOwogZXh0 ZXJuIHZvaWQgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZvKTsKK2V4 dGVybiBSZWxhdGlvbiBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rlc3Qg KmxvZ19kZXN0KTsKK2V4dGVybiB2b2lkIEluc2VydENvbmZsaWN0TG9nVHVwbGUoUmVsYXRpb24g Y29uZmxpY3Rsb2dyZWwpOworZXh0ZXJuIGJvb2wgVmFsaWRhdGVDb25mbGljdExvZ1RhYmxlKFJl bGF0aW9uIHJlbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVy bmFsLmgKaW5kZXggYzEyODVmZGQxYmMuLjViZWRmYzU0NTBmIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMTAxLDYgKzEwMSw5IEBAIHR5cGVkZWYgc3Ry dWN0IExvZ2ljYWxSZXBXb3JrZXIKIAkgKi8KIAlUcmFuc2FjdGlvbklkIG9sZGVzdF9ub25yZW1v dmFibGVfeGlkOwogCisJLyogQSBjb25mbGljdCBsb2cgdHVwbGUgdGhhdCBpcyBwcmVwYXJlZCBi dXQgbm90IHlldCBpbnNlcnRlZC4gKi8KKwlIZWFwVHVwbGUJY29uZmxpY3RfbG9nX3R1cGxlOwor CiAJLyogU3RhdHMuICovCiAJWExvZ1JlY1B0cglsYXN0X2xzbjsKIAlUaW1lc3RhbXBUeiBsYXN0 X3NlbmRfdGltZTsKQEAgLTI1Niw2ICsyNTksMTAgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wg SW5pdGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBMaXN0ICp0YWJs ZV9zdGF0ZXNfbm90X3JlYWR5OwogCitleHRlcm4gWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNu OworZXh0ZXJuIFRpbWVzdGFtcFR6IHJlbW90ZV9jb21taXRfdHM7CitleHRlcm4gVHJhbnNhY3Rp b25JZAlyZW1vdGVfeGlkOworCiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dvcmtlcl9hdHRhY2go aW50IHNsb3QpOwogZXh0ZXJuIExvZ2ljYWxSZXBXb3JrZXIgKmxvZ2ljYWxyZXBfd29ya2VyX2Zp bmQoTG9naWNhbFJlcFdvcmtlclR5cGUgd3R5cGUsCiAJCQkJCQkJCQkJCQlPaWQgc3ViaWQsIE9p ZCByZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGlj dHMucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmluZGV4IDQy NmFkNzRjZjMzLi4zMjkyNWJkNDljYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29u ZmxpY3RzLnBsCkBAIC01MCw3ICs1MCw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgK IAkncG9zdGdyZXMnLAogCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1Yl90YWIKIAkgQ09OTkVDVElP TiAnJHB1Ymxpc2hlcl9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JGFwcG5hbWUnCi0JIFBVQkxJ Q0FUSU9OIHB1Yl90YWI7Iik7CisJIFBVQkxJQ0FUSU9OIHB1Yl90YWIgV0lUSCAoY29uZmxpY3Rf bG9nX2Rlc3RpbmF0aW9uPWFsbCkiKTsKIAogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMg dG8gZmluaXNoCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygk bm9kZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKQEAgLTg0LDEwICs4NCwzNSBAQCAkbm9kZV9zdWJz Y3JpYmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5k ZXggXCJjb25mX3RhYl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5IFwo Y1wpPVwoNFwpLCBsb2NhbCByb3cgXCg0LCA0LCA0XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMg VmVyaWZ5IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRo aXMgc2VjdGlvbiBlbnN1cmVzIHRoYXQgdGhlIGNsdCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMg dHlwZSBhbmQgc3BlY2lmaWMga2V5IGRhdGEuCitteSAkc3ViaWQgPSAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlv biBXSEVSRSBzdWJuYW1lID0gJ3N1Yl90YWInOyIpOworbXkgJGNsdCA9ICJwZ19jb25mbGljdC5w Z19jb25mbGljdF8kc3ViaWQiOworCisjIFdhaXQgZm9yIHRoZSBjb25mbGljdCB0byBiZSBsb2dn ZWQgaW4gdGhlIENMVAorbXkgJGxvZ19jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVl cnlfdW50aWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID4gMCBGUk9N ICRjbHQ7IgorKTsKKworbXkgJGNvbmZsaWN0X2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+PSAxIEZST00gJGNsdCBX SEVSRSBjb25mbGljdF90eXBlID0gJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMnOyIpOworaXMo JGNvbmZsaWN0X2NoZWNrLCAndCcsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3Rz IGxvZ2dlZCBpbnRvIGNvbmZsaWN0IGxvZyB0YWJsZScpOworCitteSAkanNvbl9xdWVyeSA9ICJT RUxFQ1QgbG9jYWxfY29uZmxpY3RzIEZST00gJGNsdDsiOworbXkgJHJhd19qc29uID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJp ZnkgdGhhdCAnMicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEg cmVnZXgKKyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEiOiAyCits aWtlKCRyYXdfanNvbiwgcXIvXFwiYVxcIjoyLywgJ1ZlcmlmaWVkIHRoYXQga2V5IDIgZXhpc3Rz IGluIHRoZSBsb2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZs aWN0cyBkZXRlY3RlZCBkdXJpbmcgaW5zZXJ0Jyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0 IHJpZCBvZiB0aGUgZXJyb3IKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiVFJVTkNBVEUgY29uZl90YWI7Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkRFTEVURSBGUk9NICRjbHQiKTsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgVGVzdCBtdWx0aXBsZV91bmlxdWVfY29uZmxp Y3RzIGR1ZSB0byBVUERBVEUKQEAgLTExNCw2ICsxMzksMjYgQEAgJG5vZGVfc3Vic2NyaWJlci0+ d2FpdF9mb3JfbG9nKAogLipLZXkgYWxyZWFkeSBleGlzdHMgaW4gdW5pcXVlIGluZGV4IFwiY29u Zl90YWJfY19rZXlcIiwgbW9kaWZpZWQgaW4gdHJhbnNhY3Rpb24gLio6IGtleSBcKGNcKT1cKDhc KSwgbG9jYWwgcm93IFwoOCwgOCwgOFwpLi8sCiAJJGxvZ19vZmZzZXQpOwogCisjIFZlcmlmeSB0 aGUgY29udGVudHMgb2YgdGhlIENvbmZsaWN0IExvZyBUYWJsZSAoQ0xUKQorIyBUaGlzIHNlY3Rp b24gZW5zdXJlcyB0aGF0IHRoZSBDTFQgY29udGFpbnMgdGhlIGV4cGVjdGVkCisjIHR5cGUgYW5k IHNwZWNpZmljIGtleSBkYXRhLgorCisjIFdhaXQgZm9yIHRoZSBjb25mbGljdCB0byBiZSBsb2dn ZWQgaW4gdGhlIENMVAorJGxvZ19jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlf dW50aWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID4gMCBGUk9NICRj bHQ7IgorKTsKKworJGNvbmZsaWN0X2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+PSAxIEZST00gJGNsdCBXSEVSRSBj b25mbGljdF90eXBlID0gJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMnOyIpOworaXMoJGNvbmZs aWN0X2NoZWNrLCAndCcsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGxvZ2dl ZCBpbnRvIGNvbmZsaWN0IGxvZyB0YWJsZScpOworCiskcmF3X2pzb24gPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlmeSB0aGF0 ICc2JyBpcyBwcmVzZW50IGluc2lkZSB0aGUgSlNPTiBzdHJ1Y3R1cmUgdXNpbmcgYSByZWdleAor IyBUaGlzIG1hdGNoZXMgdGhlIGtleS92YWx1ZSBwYXR0ZXJuIGZvciAiYSI6IDYKK2xpa2UoJHJh d19qc29uLCBxci9cXCJhXFwiOjYvLCAnVmVyaWZpZWQgdGhhdCBrZXkgNiBleGlzdHMgaW4gdGhl IGxvY2FsX2NvbmZsaWN0cycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGRl dGVjdGVkIGR1cmluZyB1cGRhdGUnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQgcmlkIG9m IHRoZSBlcnJvcgotLSAKMi40OS4wCgo= --000000000000e559ea0649569292 Content-Type: application/octet-stream; name="v25-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v25-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkw2ac8j0 RnJvbSA2MjQ3MzliNjY1MWEzMmVlNTY0MTUxNGMyZWY0ZmZmZDczNjUzYWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxNyBEZWMgMjAyNSAxMTo1Mzo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI1 IDEvM10gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCgpUaGlzIHBhdGNoIGFkZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9mIGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2ggb2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4 dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFrZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXpl LCBhbmQKdXNlIGZvciBleHRlcm5hbCBtb25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBw YXRjaCBhZGRyZXNzZXMgdGhlc2UgbGltaXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1 cmFibGUKY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRp b24gaW4gdGhlIENSRUFURSBTVUJTQ1JJUFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29z ZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8gYSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3Ig J2FsbCcpLAphbiBpbnRlcm5hbCBsb2dnaW5nIHRhYmxlIG5hbWVkIGNvbmZsaWN0X2xvZ190YWJs ZV88c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkKY3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5 c3RlbS1tYW5hZ2VkIG5hbWVzcGFjZSBuYW1lZCBwZ19jb25mbGljdC4gVGhpcyB0YWJsZQppcyBs aW5rZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5z dXJpbmcgaXQgaXMKYXV0b21hdGljYWxseSBkcm9wcGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgoKVGhlIGNvbmZsaWN0IGRldGFpbHMsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg YW5kIHJlbW90ZSB0dXBsZXMsIGFyZSBzdG9yZWQgaW4gSlNPTgpjb2x1bW5zLCBwcm92aWRpbmcg YSBmbGV4aWJsZSBmb3JtYXQgdG8gYWNjb21tb2RhdGUgZGlmZmVyZW50IHRhYmxlIHNjaGVtYXMu CgpUaGUgbG9nIHRhYmxlIGNhcHR1cmVzIGVzc2VudGlhbCBhdHRyaWJ1dGVzIHN1Y2ggYXMgbG9j YWwgYW5kIHJlbW90ZSB0cmFuc2FjdGlvbiBJRHMsCkxTTnMsIGNvbW1pdCB0aW1lc3RhbXBzLCBh bmQgY29uZmxpY3QgdHlwZSwgcHJvdmlkaW5nIGEgY29tcGxldGUgcmVjb3JkIGZvciBwb3N0LW1v cnRlbQphbmFseXNpcy4KClRoaXMgZmVhdHVyZSB3aWxsIG1ha2UgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdHMgZWFzaWVyIHRvIG1vbml0b3IgYW5kIG1hbmFnZSwKc2lnbmlmaWNhbnRseSBp bXByb3ZpbmcgdGhlIG92ZXJhbGwgcmVzaWxpZW5jZSBhbmQgb3BlcmFiaWxpdHkgb2YgcmVwbGlj YXRpb24gc2V0dXBzLgoKVGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMgd2lsbCBub3QgYmUgaW5jbHVk ZWQgaW4gYSBwdWJsaWNhdGlvbiwgZXZlbiBpZiB0aGUgcHVibGljYXRpb24KaXMgY29uZmlndXJl ZCB0byBpbmNsdWRlIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEuCi0tLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgICAgICAgICAgICAgIHwgIDI3ICstCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgIHwgMjM5ICsrKysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgICAgICAgICAgICB8ICAyNiArKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAg ICAgICAgICAgICAgICAgIHwgIDE2ICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oICAgICAg ICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQgICAg ICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAgIHwg IDExICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oICAgICAgICAgfCAgNTUgKysrCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCA0NDQgKysrKysrKysr KysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAg fCAyMTcgKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAg ICAgIHwgICAyICsKIDE4IGZpbGVzIGNoYW5nZWQsIDk4OSBpbnNlcnRpb25zKCspLCAxMDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwppbmRleCA3YmU0OTAzMjkzNC4uZDQzOGRjNjgy ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCkBAIC04Niw3ICs4Niw4IEBAIGJvb2wKIElzU3lzdGVt Q2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCS8qIElzQ2F0YWxv Z1JlbGF0aW9uT2lkIGlzIGEgYml0IGZhc3Rlciwgc28gdGVzdCB0aGF0IGZpcnN0ICovCi0JcmV0 dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNzKHJlbHR1cGxl KSk7CisJcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNz KHJlbHR1cGxlKQorCQkJfHwgSXNDb25mbGljdENsYXNzKHJlbHR1cGxlKSk7CiB9CiAKIC8qCkBA IC0yMzAsNiArMjMxLDE4IEBAIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQog CXJldHVybiBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7CiB9CiAKKy8qCisgKiBJc0Nv bmZsaWN0Q2xhc3MgLSBDaGVjayBpZiB0aGUgZ2l2ZW4gcGdfY2xhc3MgdHVwbGUgYmVsb25ncyB0 byB0aGUgY29uZmxpY3QKKyAqCQkJCQkgbmFtZXNwYWNlLgorICovCitib29sCitJc0NvbmZsaWN0 Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKK3sKKwlPaWQJCQlyZWxuYW1lc3BhY2UgPSBy ZWx0dXBsZS0+cmVsbmFtZXNwYWNlOworCisJcmV0dXJuIElzQ29uZmxpY3ROYW1lc3BhY2UocmVs bmFtZXNwYWNlKTsKK30KKwogLyoKICAqIElzQ2F0YWxvZ05hbWVzcGFjZQogICoJCVRydWUgaWZm IG5hbWVzcGFjZSBpcyBwZ19jYXRhbG9nLgpAQCAtMjY0LDYgKzI3NywxOCBAQCBJc1RvYXN0TmFt ZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKIAkJaXNUZW1wVG9hc3ROYW1lc3BhY2UobmFtZXNwYWNl SWQpOwogfQogCisvKgorICogSXNDb25mbGljdE5hbWVzcGFjZQorICoJCVRydWUgaWZmIG5hbWVz cGFjZSBpcyBwZ19jb25mbGljdC4KKyAqCisgKgkJRG9lcyBub3QgcGVyZm9ybSBhbnkgY2F0YWxv ZyBhY2Nlc3Nlcy4KKyAqLworYm9vbAorSXNDb25mbGljdE5hbWVzcGFjZShPaWQgbmFtZXNwYWNl SWQpCit7CisJcmV0dXJuIG5hbWVzcGFjZUlkID09IFBHX0NPTkZMSUNUX05BTUVTUEFDRTsKK30K KwogCiAvKgogICogSXNSZXNlcnZlZE5hbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggNjA2NDM0ODIzY2Yu LjEwZGFkZjM3OGE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzE0LDcgKzMxNCw4IEBAIGhlYXBfY3Jl YXRlKGNvbnN0IGNoYXIgKnJlbG5hbWUsCiAJICovCiAJaWYgKCFhbGxvd19zeXN0ZW1fdGFibGVf bW9kcyAmJgogCQkoKElzQ2F0YWxvZ05hbWVzcGFjZShyZWxuYW1lc3BhY2UpICYmIHJlbGtpbmQg IT0gUkVMS0lORF9JTkRFWCkgfHwKLQkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKSkg JiYKKwkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKSB8fAorCQkgSXNDb25mbGljdE5h bWVzcGFjZShyZWxuYW1lc3BhY2UpKSAmJgogCQlJc05vcm1hbFByb2Nlc3NpbmdNb2RlKCkpCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklM RUdFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGMzYjc5YTJiYTQ4Li40MDAyOTJmZDA2 YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNTIzLDcgKzM1MjMsNyBAQCBMb29rdXBD cmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKQogICoKICAqIFdlIGNvbXBsYWlu IGlmIGVpdGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9yYXJ5IHNjaGVt YQogICogKG9yIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEpLCBvciBpZiBlaXRoZXIgdGhlIG9sZCBv ciBuZXcgbmFtZXNwYWNlcyBpcyB0aGUKLSAqIFRPQVNUIHNjaGVtYS4KKyAqIFRPQVNUIHNjaGVt YSBvciB0aGUgQ09ORkxJQ1Qgc2NoZW1hLgogICovCiB2b2lkCiBDaGVja1NldE5hbWVzcGFjZShP aWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKQpAQCAtMzUzOSw2ICszNTM5LDEyIEBAIENoZWNrU2V0 TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpCiAJCWVyZXBvcnQoRVJST1IsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2co ImNhbm5vdCBtb3ZlIG9iamVjdHMgaW50byBvciBvdXQgb2YgVE9BU1Qgc2NoZW1hIikpKTsKKwor CS8qIHNpbWlsYXJseSBmb3IgQ09ORkxJQ1Qgc2NoZW1hICovCisJaWYgKG5zcE9pZCA9PSBQR19D T05GTElDVF9OQU1FU1BBQ0UgfHwgb2xkTnNwT2lkID09IFBHX0NPTkZMSUNUX05BTUVTUEFDRSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJIGVycm1zZygiY2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9yIG91dCBvZiBD T05GTElDVCBzY2hlbWEiKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bi5jCmluZGV4IDlhNDc5MWM1NzNlLi5hMzNjMzNlZmUwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cHVibGljYXRpb24uYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJheS5o IgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC04NSw2ICs4NiwxNSBAQCBjaGVja19w dWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oUmVsYXRpb24gdGFyZ2V0cmVsKQogCQkJCSBlcnJtc2co ImNhbm5vdCBhZGQgcmVsYXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKIAkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAogCQkJCSBlcnJkZXRhaWwoIlRoaXMgb3Bl cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHVubG9nZ2VkIHRhYmxlcy4iKSkpOworCisJLyog Q2FuJ3QgYmUgY29uZmxpY3QgbG9nIHRhYmxlICovCisJaWYgKElzQ29uZmxpY3ROYW1lc3BhY2Uo UmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygi Y2Fubm90IGFkZCByZWxhdGlvbiBcIiVzLiVzXCIgdG8gcHVibGljYXRpb24iLAorCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHRhcmdldHJlbCkpLAorCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSksCisJCQkJIGVycmRldGFpbCgiVGhp cyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4iKSkp OwogfQogCiAvKgpAQCAtOTUsNyArMTA1LDggQEAgc3RhdGljIHZvaWQKIGNoZWNrX3B1YmxpY2F0 aW9uX2FkZF9zY2hlbWEoT2lkIHNjaGVtYWlkKQogewogCS8qIENhbid0IGJlIHN5c3RlbSBuYW1l c3BhY2UgKi8KLQlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVtYWlkKSB8fCBJc1RvYXN0TmFt ZXNwYWNlKHNjaGVtYWlkKSkKKwlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVtYWlkKSB8fCBJ c1RvYXN0TmFtZXNwYWNlKHNjaGVtYWlkKSB8fAorCQlJc0NvbmZsaWN0TmFtZXNwYWNlKHNjaGVt YWlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWRkIHNjaGVtYSBcIiVzXCIgdG8g cHVibGljYXRpb24iLApAQCAtMTM5LDYgKzE1MCw3IEBAIGlzX3B1Ymxpc2hhYmxlX2NsYXNzKE9p ZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkJCXJlbHR1cGxlLT5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgfHwKIAkJCXJlbHR1cGxlLT5yZWxraW5kID09IFJF TEtJTkRfU0VRVUVOQ0UpICYmCiAJCSFJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgJiYKKwkJ IUlzQ29uZmxpY3RDbGFzcyhyZWx0dXBsZSkgJiYKIAkJcmVsdHVwbGUtPnJlbHBlcnNpc3RlbmNl ID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVCAmJgogCQlyZWxpZCA+PSBGaXJzdE5vcm1hbE9i amVjdElkOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggMmIxMDMy NDUyOTAuLjI4NWE1OTg0OTdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1 YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMK QEAgLTEwNiw2ICsxMDYsNyBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Np bmdfb2spCiAJc3ViLT5yZXRhaW5kZWFkdHVwbGVzID0gc3ViZm9ybS0+c3VicmV0YWluZGVhZHR1 cGxlczsKIAlzdWItPm1heHJldGVudGlvbiA9IHN1YmZvcm0tPnN1Ym1heHJldGVudGlvbjsKIAlz dWItPnJldGVudGlvbmFjdGl2ZSA9IHN1YmZvcm0tPnN1YnJldGVudGlvbmFjdGl2ZTsKKwlzdWIt PmNvbmZsaWN0bG9ncmVsaWQgPSBzdWJmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkOwogCiAJLyog R2V0IGNvbm5pbmZvICovCiAJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQ VElPTk9JRCwKQEAgLTE0MSw2ICsxNDIsMTIgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwg Ym9vbCBtaXNzaW5nX29rKQogCQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmln aW4pOwogCXN1Yi0+b3JpZ2luID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CiAKKwkvKiBH ZXQgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uICovCisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJO b3ROdWxsKFNVQlNDUklQVElPTk9JRCwKKwkJCQkJCQkJICAgdHVwLAorCQkJCQkJCQkgICBBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QpOworCXN1Yi0+Y29uZmxpY3Rsb2dk ZXN0ID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisKIAkvKiBJcyB0aGUgc3Vic2NyaXB0 aW9uIG93bmVyIGEgc3VwZXJ1c2VyPyAqLwogCXN1Yi0+b3duZXJzdXBlcnVzZXIgPSBzdXBlcnVz ZXJfYXJnKHN1Yi0+b3duZXIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmMKaW5kZXggZDY2NzRmMjBmYzIuLmRlMTk3N2Y4MWVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jCkBAIC0xNSwyNSArMTUsMzEgQEAKICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2NvbW1pdF90cy5oIgorI2luY2x1ZGUgImFjY2Vzcy9o ZWFwYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3R3b3BoYXNlLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRh bG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKICNpbmNsdWRlICJj YXRhbG9nL2luZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRk cmVzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1fZC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlX2QuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2Ny aXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3Ry aWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAicGdz dGF0LmgiCkBAIC01MSw2ICs1Nyw3IEBACiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKKyNp bmNsdWRlICJ1dGlscy9yZWdwcm9jLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAog LyoKQEAgLTc1LDYgKzgyLDcgQEAKICNkZWZpbmUgU1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJ T04JMHgwMDAwODAwMAogI2RlZmluZSBTVUJPUFRfTFNOCQkJCQkweDAwMDEwMDAwCiAjZGVmaW5l IFNVQk9QVF9PUklHSU4JCQkJMHgwMDAyMDAwMAorI2RlZmluZSBTVUJPUFRfQ09ORkxJQ1RfTE9H X0RFU1QJMHgwMDA0MDAwMAogCiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQg Ki8KICNkZWZpbmUgSXNTZXQodmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMp KQpAQCAtMTAzLDYgKzExMSw3IEBAIHR5cGVkZWYgc3RydWN0IFN1Yk9wdHMKIAlib29sCQlyZXRh aW5kZWFkdHVwbGVzOwogCWludDMyCQltYXhyZXRlbnRpb247CiAJY2hhcgkgICAqb3JpZ2luOwor CUNvbmZsaWN0TG9nRGVzdCBjb25mbGljdGxvZ2Rlc3Q7CiAJWExvZ1JlY1B0cglsc247CiB9IFN1 Yk9wdHM7CiAKQEAgLTEzNSw3ICsxNDQsNyBAQCBzdGF0aWMgTGlzdCAqbWVyZ2VfcHVibGljYXRp b25zKExpc3QgKm9sZHB1Ymxpc3QsIExpc3QgKm5ld3B1Ymxpc3QsIGJvb2wgYWRkcHViLAogc3Rh dGljIHZvaWQgUmVwb3J0U2xvdENvbm5lY3Rpb25FcnJvcihMaXN0ICpyc3RhdGVzLCBPaWQgc3Vi aWQsIGNoYXIgKnNsb3RuYW1lLCBjaGFyICplcnIpOwogc3RhdGljIHZvaWQgQ2hlY2tBbHRlclN1 Yk9wdGlvbihTdWJzY3JpcHRpb24gKnN1YiwgY29uc3QgY2hhciAqb3B0aW9uLAogCQkJCQkJCQli b29sIHNsb3RfbmVlZHNfdXBkYXRlLCBib29sIGlzVG9wTGV2ZWwpOwotCitzdGF0aWMgT2lkIGNy ZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lKTsKIAogLyoK ICAqIENvbW1vbiBvcHRpb24gcGFyc2luZyBmdW5jdGlvbiBmb3IgQ1JFQVRFIGFuZCBBTFRFUiBT VUJTQ1JJUFRJT04gY29tbWFuZHMuCkBAIC0xOTEsNiArMjAwLDggQEAgcGFyc2Vfc3Vic2NyaXB0 aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCW9w dHMtPm1heHJldGVudGlvbiA9IDA7CiAJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRf T1JJR0lOKSkKIAkJb3B0cy0+b3JpZ2luID0gcHN0cmR1cChMT0dJQ0FMUkVQX09SSUdJTl9BTlkp OworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKSkK KwkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0ID0gQ09ORkxJQ1RfTE9HX0RFU1RfTE9HOwogCiAJLyog UGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIHN0bXRfb3B0aW9ucykKQEAgLTQwMiw2ICs0 MTMsMTggQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM aXN0ICpzdG10X29wdGlvbnMsCiAJCQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfTFNO OwogCQkJb3B0cy0+bHNuID0gbHNuOwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9v cHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVm bmFtZSwgImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiIpID09IDApCisJCXsKKwkJCWNoYXIgKnZh bDsKKworCQkJaWYgKElzU2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1Rf TE9HX0RFU1QpKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOwor CisJCQl2YWwgPSBkZWZHZXRTdHJpbmcoZGVmZWwpOworCQkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0 ID0gR2V0TG9nRGVzdGluYXRpb24odmFsKTsKKwkJCW9wdHMtPnNwZWNpZmllZF9vcHRzIHw9IFNV Qk9QVF9DT05GTElDVF9MT0dfREVTVDsKKwkJfQogCQllbHNlCiAJCQllcmVwb3J0KEVSUk9SLAog CQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCkBAIC01OTksNiArNjIyLDcgQEAg Q3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAliaXRzMzIJCXN1cHBvcnRlZF9vcHRzOwogCVN1Yk9wdHMJCW9wdHMgPSB7 MH07CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQlsb2dyZWxpZCA9IEludmFsaWRPaWQ7 CiAKIAkvKgogCSAqIFBhcnNlIGFuZCBjaGVjayBvcHRpb25zLgpAQCAtNjEyLDcgKzYzNiw4IEBA IENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwgU1VCT1BUX1BBU1NX T1JEX1JFUVVJUkVEIHwKIAkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX0ZBSUxP VkVSIHwKIAkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKLQkJCQkJICBTVUJPUFRf TUFYX1JFVEVOVElPTl9EVVJBVElPTiB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkgIFNVQk9QVF9N QVhfUkVURU5USU9OX0RVUkFUSU9OIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCSAgU1VCT1BUX0NP TkZMSUNUX0xPR19ERVNUKTsKIAlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0 bXQtPm9wdGlvbnMsIHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CiAKIAkvKgpAQCAtNzQ3LDYgKzc3 MiwxOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmln aW4gLSAxXSA9CiAJCUNTdHJpbmdHZXRUZXh0RGF0dW0ob3B0cy5vcmlnaW4pOwogCisJLyogQWx3 YXlzIHNldCB0aGUgZGVzdGluYXRpb24sIGRlZmF1bHQgd2lsbCBiZSAnbG9nJy4gKi8KKwl2YWx1 ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQlDU3Ry aW5nR2V0VGV4dERhdHVtKENvbmZsaWN0TG9nRGVzdE5hbWVzW29wdHMuY29uZmxpY3Rsb2dkZXN0 XSk7CisKKwkvKiBJZiBsb2dnaW5nIHRvIGEgdGFibGUgaXMgcmVxdWlyZWQsIHBoeXNpY2FsbHkg Y3JlYXRlIHRoZSB0YWJsZS4gKi8KKwlpZiAoSXNTZXQob3B0cy5jb25mbGljdGxvZ2Rlc3QsIENP TkZMSUNUX0xPR19ERVNUX1RBQkxFKSkKKwkJbG9ncmVsaWQgPSBjcmVhdGVfY29uZmxpY3RfbG9n X3RhYmxlKHN1YmlkLCBzdG10LT5zdWJuYW1lKTsKKworCS8qIFN0b3JlIHRhYmxlIE9JRCBpbiB0 aGUgY2F0YWxvZy4gKi8KKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rs b2dyZWxpZCAtIDFdID0KKwkJCQkJCU9iamVjdElkR2V0RGF0dW0obG9ncmVsaWQpOworCiAJdHVw ID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7 CiAKIAkvKiBJbnNlcnQgdHVwbGUgaW50byBjYXRhbG9nLiAqLwpAQCAtMTQxMCw3ICsxNDQ3LDgg QEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJCQkJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNVQk9QVF9GQUlM T1ZFUiB8CiAJCQkJCQkJCSAgU1VCT1BUX1JFVEFJTl9ERUFEX1RVUExFUyB8CiAJCQkJCQkJCSAg U1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJT04gfAotCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4p OworCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4gfAorCQkJCQkJCQkgIFNVQk9QVF9DT05GTElDVF9M T0dfREVTVCk7CiAKIAkJCQlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQt Pm9wdGlvbnMsCiAJCQkJCQkJCQkJICAgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKQEAgLTE2NjUs NiArMTcwMyw2MyBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy U3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJb3JpZ2luID0gb3B0cy5vcmlnaW47CiAJCQkJ fQogCisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9M T0dfREVTVCkpCisJCQkJeworCQkJCQlDb25mbGljdExvZ0Rlc3Qgb2xkX2Rlc3QgPQorCQkJCQkJ CUdldExvZ0Rlc3RpbmF0aW9uKHN1Yi0+Y29uZmxpY3Rsb2dkZXN0KTsKKworCQkJCQlpZiAob3B0 cy5jb25mbGljdGxvZ2Rlc3QgIT0gb2xkX2Rlc3QpCisJCQkJCXsKKwkJCQkJCWJvb2wgd2FudF90 YWJsZSA9IElzU2V0KG9wdHMuY29uZmxpY3Rsb2dkZXN0LAorCQkJCQkJCQkJCQkJQ09ORkxJQ1Rf TE9HX0RFU1RfVEFCTEUpOworCQkJCQkJYm9vbCBoYXNfb2xkdGFibGUgPQorCQkJCQkJCQlJc1Nl dChvbGRfZGVzdCwgQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUpOworCisJCQkJCQl2YWx1ZXNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQkJCQkJCUNTdHJp bmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5jb25mbGljdGxvZ2Rlc3Rd KTsKKwkJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9nZGVz dCAtIDFdID0gdHJ1ZTsKKworCQkJCQkJaWYgKHdhbnRfdGFibGUgJiYgIWhhc19vbGR0YWJsZSkK KwkJCQkJCXsKKwkJCQkJCQlPaWQJCXJlbGlkOworCisJCQkJCQkJcmVsaWQgPSBjcmVhdGVfY29u ZmxpY3RfbG9nX3RhYmxlKHN1YmlkLCBzdWItPm5hbWUpOworCisJCQkJCQkJdmFsdWVzW0FudW1f cGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJCQkJCQkJCQkJCQkJ CU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCQkJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2Ny aXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJCQkJCQkJCQkJCQkJCXRydWU7CisJ CQkJCQl9CisJCQkJCQllbHNlIGlmICghd2FudF90YWJsZSAmJiBoYXNfb2xkdGFibGUpCisJCQkJ CQl7CisJCQkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJCQkvKgorCQkJCQkJCSAq IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHJlY29yZGVkIGFzIGludGVybmFsCisJCQkJCQkJICog ZGVwZW5kZW5jaWVzIG9mIHRoZSBzdWJzY3JpcHRpb24uICBEcm9wIHRoZQorCQkJCQkJCSAqIHRh YmxlIGlmIGl0IGlzIG5vdCByZXF1aXJlZCBhbnltb3JlIHRvIGF2b2lkCisJCQkJCQkJICogc3Rh bGUgb3Igb3JwaGFuZWQgcmVsYXRpb25zLgorCQkJCQkJCSAqCisJCQkJCQkJICogWFhYOiBBdCBw cmVzZW50LCBvbmx5IGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlCisJCQkJCQkJICogbWFuYWdlZCB0 aGlzIHdheS4gIEluIGZ1dHVyZSBpZiB3ZSBpbnRyb2R1Y2UKKwkJCQkJCQkgKiBhZGRpdGlvbmFs IGludGVybmFsIGRlcGVuZGVuY2llcywgd2UgbWF5IG5lZWQKKwkJCQkJCQkgKiBhIHRhcmdldGVk IGRlbGV0aW9uIHRvIGF2b2lkIGRlbGV0aW9uIG9mIGFueQorCQkJCQkJCSAqIG90aGVyIG9iamVj dHMuCisJCQkJCQkJICovCisJCQkJCQkJT2JqZWN0QWRkcmVzc1NldChvYmplY3QsIFN1YnNjcmlw dGlvblJlbGF0aW9uSWQsCisJCQkJCQkJCQkJCSBzdWJpZCk7CisJCQkJCQkJcGVyZm9ybURlbGV0 aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9J TlRFUk5BTCB8CisJCQkJCQkJCQkJCVBFUkZPUk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCk7CisK KwkJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAt IDFdID0KKwkJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oSW52YWxpZE9pZCk7CisJCQkJCQkJ cmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0K KwkJCQkJCQkJCQkJCXRydWU7CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9CisKIAkJCQl1cGRhdGVf dHVwbGUgPSB0cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMjAyNyw2ICsyMTIyLDcgQEAgRHJv cFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVs KQogCUZvcm1fcGdfc3Vic2NyaXB0aW9uIGZvcm07CiAJTGlzdAkgICAqcnN0YXRlczsKIAlib29s CQltdXN0X3VzZV9wYXNzd29yZDsKKwlPYmplY3RBZGRyZXNzCW9iamVjdDsKIAogCS8qCiAJICog VGhlIGxhdW5jaGVyIG1heSBjb25jdXJyZW50bHkgc3RhcnQgYSBuZXcgd29ya2VyIGZvciB0aGlz IHN1YnNjcmlwdGlvbi4KQEAgLTIxODQsNiArMjI4MCwxOSBAQCBEcm9wU3Vic2NyaXB0aW9uKERy b3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJLyogQ2xlYW4gdXAg ZGVwZW5kZW5jaWVzICovCiAJZGVsZXRlU2hhcmVkRGVwZW5kZW5jeVJlY29yZHNGb3IoU3Vic2Ny aXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFi bGVzIGFyZSByZWNvcmRlZCBhcyBpbnRlcm5hbCBkZXBlbmRlbmNpZXMgb2YgdGhlCisJICogc3Vi c2NyaXB0aW9uLiAgV2UgbXVzdCBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyBiZWZvcmUgdGhl CisJICogc3Vic2NyaXB0aW9uIGl0c2VsZiBpcyByZW1vdmVkLiAgQnkgdXNpbmcKKwkgKiBQRVJG T1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwsIHdlIGVuc3VyZSB0aGF0IG9ubHkgdGhlIGNvbmZs aWN0IGxvZworCSAqIHRhYmxlIGlzIHJlYXBlZCB3aGlsZSB0aGUgc3Vic2NyaXB0aW9uIHJlbWFp bnMgZm9yIHRoZSBmaW5hbCBkZWxldGlvbgorCSAqIHN0ZXAuCisJICovCisJT2JqZWN0QWRkcmVz c1NldChvYmplY3QsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKwlwZXJmb3JtRGVs ZXRpb24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQlQRVJGT1JNX0RFTEVUSU9OX0lOVEVS TkFMIHwKKwkJCQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMKTsKKwogCS8qIFJlbW92 ZSBhbnkgYXNzb2NpYXRlZCByZWxhdGlvbiBzeW5jaHJvbml6YXRpb24gc3RhdGVzLiAqLwogCVJl bW92ZVN1YnNjcmlwdGlvblJlbChzdWJpZCwgSW52YWxpZE9pZCk7CiAKQEAgLTMxOTAsMyArMzI5 OSwxMjcgQEAgZGVmR2V0U3RyZWFtaW5nTW9kZShEZWZFbGVtICpkZWYpCiAJCQkJCWRlZi0+ZGVm bmFtZSkpKTsKIAlyZXR1cm4gTE9HSUNBTFJFUF9TVFJFQU1fT0ZGOwkvKiBrZWVwIGNvbXBpbGVy IHF1aWV0ICovCiB9CisKKy8qCisgKiBCdWlsZHMgdGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZs aWN0IGxvZyB0YWJsZS4KKyAqLworc3RhdGljIFR1cGxlRGVzYworY3JlYXRlX2NvbmZsaWN0X2xv Z190YWJsZV90dXBkZXNjKHZvaWQpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisKKwl0dXBkZXNj ID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoTUFYX0NPTkZMSUNUX0FUVFJfTlVNKTsKKworCWZv ciAoaW50IGkgPSAwOyBpIDwgTUFYX0NPTkZMSUNUX0FUVFJfTlVNOyBpKyspCisJeworCQlPaWQg dHlwZV9vaWQgPSBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHR0eXBpZDsKKworCQkvKgorCQkgKiBT cGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgSlNPTiBhcnJheSB0eXBlIGZvciBwcm9wZXIKKwkJICog VHVwbGVEZXNjSW5pdEVudHJ5IGNhbGwuCisJCSAqLworCQlpZiAodHlwZV9vaWQgPT0gSlNPTkFS UkFZT0lEKQorCQkJdHlwZV9vaWQgPSBnZXRfYXJyYXlfdHlwZShKU09OT0lEKTsKKworCQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgaSArIDEsCisJCQkJCQkgICBDb25mbGljdExvZ1NjaGVt YVtpXS5hdHRuYW1lLAorCQkJCQkJICAgdHlwZV9vaWQsCisJCQkJCQkgICAtMSwgMCk7CisJfQor CisJcmV0dXJuIEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOworfQorCisvKgorICogQ3JlYXRlIGEg c3RydWN0dXJlZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLgorICoKKyAq IFRoZSB0YWJsZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVtLW1hbmFnZWQgJ3BnX2NvbmZs aWN0JyBuYW1lc3BhY2UuCisgKiBUaGUgdGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0b21hdGlj YWxseSB1c2luZyB0aGUgc3Vic2NyaXB0aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2NvbmZsaWN0 XzxzdWJpZD4iKSB0byBlbnN1cmUgdW5pcXVlbmVzcyB3aXRoaW4gdGhlIGNsdXN0ZXIgYW5kCisg KiB0byBhdm9pZCBjb2xsaXNpb25zIGR1cmluZyBzdWJzY3JpcHRpb24gcmVuYW1lcy4KKyAqLwor c3RhdGljIE9pZAorY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1 Ym5hbWUpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJT2lkCQkJcmVsaWQ7CisJT2JqZWN0QWRk cmVzcwlteXNlbGY7CisJT2JqZWN0QWRkcmVzcwlzdWJhZGRyOworCWNoYXIgICAgCXJlbG5hbWVb TkFNRURBVEFMRU5dOworCisJc25wcmludGYocmVsbmFtZSwgTkFNRURBVEFMRU4sICJwZ19jb25m bGljdF8ldSIsIHN1YmlkKTsKKworCS8qIFRoZXJlIGNhbiBub3QgYmUgYW4gZXhpc3RpbmcgdGFi bGUgd2l0aCB0aGUgc2FtZSBuYW1lLiAqLworCUFzc2VydCghT2lkSXNWYWxpZChnZXRfcmVsbmFt ZV9yZWxpZChyZWxuYW1lLCBQR19DT05GTElDVF9OQU1FU1BBQ0UpKSk7CisKKwkvKiBCdWlsZCB0 aGUgdHVwbGUgZGVzY3JpcHRvciBmb3IgdGhlIG5ldyB0YWJsZS4gKi8KKwl0dXBkZXNjID0gY3Jl YXRlX2NvbmZsaWN0X2xvZ190YWJsZV90dXBkZXNjKCk7CisKKwkvKiBDcmVhdGUgY29uZmxpY3Qg bG9nIHRhYmxlLiAqLworCXJlbGlkID0gaGVhcF9jcmVhdGVfd2l0aF9jYXRhbG9nKHJlbG5hbWUs CisJCQkJCQkJCQkgUEdfQ09ORkxJQ1RfTkFNRVNQQUNFLAorCQkJCQkJCQkJIDAsCS8qIHRhYmxl c3BhY2UgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxpZCAqLworCQkJCQkJCQkJIElu dmFsaWRPaWQsIC8qIHJlbHR5cGVpZCAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbG9m dHlwZWlkICovCisJCQkJCQkJCQkgR2V0VXNlcklkKCksCisJCQkJCQkJCQkgSEVBUF9UQUJMRV9B TV9PSUQsCisJCQkJCQkJCQkgdHVwZGVzYywKKwkJCQkJCQkJCSBOSUwsCisJCQkJCQkJCQkgUkVM S0lORF9SRUxBVElPTiwKKwkJCQkJCQkJCSBSRUxQRVJTSVNURU5DRV9QRVJNQU5FTlQsCisJCQkJ CQkJCQkgZmFsc2UsIC8qIHNoYXJlZF9yZWxhdGlvbiAqLworCQkJCQkJCQkJIGZhbHNlLCAvKiBt YXBwZWRfcmVsYXRpb24gKi8KKwkJCQkJCQkJCSBPTkNPTU1JVF9OT09QLAorCQkJCQkJCQkJIChE YXR1bSkgMCwgLyogcmVsb3B0aW9ucyAqLworCQkJCQkJCQkJIGZhbHNlLCAvKiB1c2VfdXNlcl9h Y2wgKi8KKwkJCQkJCQkJCSB0cnVlLCAvKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyAqLworCQkJ CQkJCQkJIHRydWUsIC8qIGlzX2ludGVybmFsICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyog cmVscmV3cml0ZSAqLworCQkJCQkJCQkJIE5VTEwpOyAvKiB0eXBhZGRyZXNzICovCisKKwkvKgor CSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGNvbmZsaWN0 IGxvZyB0YWJsZSBhbmQKKwkgKiB0aGUgc3Vic2NyaXB0aW9uLgorCSAqCisJICogV2UgdXNlIERF UEVOREVOQ1lfSU5URVJOQUwgdG8gc2lnbmlmeSB0aGF0IHRoZSB0YWJsZSdzIGxpZmVjeWNsZSBp cworCSAqIHN0cmljdGx5IHRpZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiwgc2ltaWxhciB0byBob3cg YSBUT0FTVCB0YWJsZSByZWxhdGVzCisJICogdG8gaXRzIG1haW4gdGFibGUgb3IgYSBzZXF1ZW5j ZSByZWxhdGVzIHRvIGFuIGlkZW50aXR5IGNvbHVtbi4KKwkgKgorCSAqIFRoaXMgZW5zdXJlcyB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGF1dG9tYXRpY2FsbHkgcmVhcGVkIGR1cmluZyBhCisJ ICogRFJPUCBTVUJTQ1JJUFRJT04gdmlhIHBlcmZvcm1EZWxldGlvbigpLgorCSAqLworCU9iamVj dEFkZHJlc3NTZXQobXlzZWxmLCBSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGlkKTsKKwlPYmplY3RB ZGRyZXNzU2V0KHN1YmFkZHIsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKwlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnN1YmFkZHIsIERFUEVOREVOQ1lfSU5URVJOQUwpOwor CisJLyogUmVsZWFzZSB0dXBsZSBkZXNjcmlwdG9yIG1lbW9yeS4gKi8KKwlGcmVlVHVwbGVEZXNj KHR1cGRlc2MpOworCisJcmV0dXJuIHJlbGlkOworfQorCisvKgorICogR2V0TG9nRGVzdGluYXRp b24KKyAqCisgKiBDb252ZXJ0IHN0cmluZyB0byBlbnVtIGJ5IGNvbXBhcmluZyBhZ2FpbnN0IHN0 YW5kYXJkaXplZCBsYWJlbHMuCisgKi8KK0NvbmZsaWN0TG9nRGVzdAorR2V0TG9nRGVzdGluYXRp b24oY29uc3QgY2hhciAqZGVzdCkKK3sKKwkvKiBFbXB0eSBzdHJpbmcgb3IgTlVMTCBkZWZhdWx0 cyB0byBMT0cuICovCisJaWYgKGRlc3QgPT0gTlVMTCB8fCBkZXN0WzBdID09ICdcMCcgfHwgcGdf c3RyY2FzZWNtcChkZXN0LCAibG9nIikgPT0gMCkKKwkJcmV0dXJuIENPTkZMSUNUX0xPR19ERVNU X0xPRzsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJ0YWJsZSIpID09IDApCisJCXJldHVy biBDT05GTElDVF9MT0dfREVTVF9UQUJMRTsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJh bGwiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMOworCisJLyogVW5yZWNv Z25pemVkIHN0cmluZy4gKi8KKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgY29uZmxp Y3RfbG9nX2Rlc3RpbmF0aW9uIHZhbHVlOiBcIiVzXCIiLCBkZXN0KSwKKwkJCSBlcnJoaW50KCJW YWxpZCB2YWx1ZXMgYXJlIFwibG9nXCIsIFwidGFibGVcIiwgYW5kIFwiYWxsXCIuIikpKTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZjk3NmMwZTVjN2UuLjRiZjM5ZjM1OWQ3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjM5OCw5ICsyMzk4LDExIEBAIHRydW5jYXRl X2NoZWNrX3JlbChPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCiAJICogcGdfbGFy Z2VvYmplY3QgYW5kIHBnX2xhcmdlb2JqZWN0X21ldGFkYXRhIHRvIGJlIHRydW5jYXRlZCBhcyBw YXJ0IG9mCiAJICogcGdfdXBncmFkZSwgYmVjYXVzZSB3ZSBuZWVkIHRvIGNoYW5nZSBpdHMgcmVs ZmlsZW5vZGUgdG8gbWF0Y2ggdGhlIG9sZAogCSAqIGNsdXN0ZXIsIGFuZCBhbGxvd2luZyBhIFRS VU5DQVRFIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgaXMgdGhlIGVhc2llc3QKLQkgKiB3YXkgb2Yg ZG9pbmcgdGhhdC4KKwkgKiB3YXkgb2YgZG9pbmcgdGhhdC4gIFdlIGFsc28gYWxsb3cgVFJVTkNB VEUgb24gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMsCisJICogdG8gcGVybWl0IHVzZXJzIHRvIG1h bnVhbGx5IHBydW5lIHRoZXNlIGxvZ3MgdG8gbWFuYWdlIGRpc2sgc3BhY2UuCiAJICovCi0JaWYg KCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkK KwlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIHJlbHR1 cGxlKSAmJgorCQkhSXNDb25mbGljdENsYXNzKHJlbHR1cGxlKQogCQkmJiAoIUlzQmluYXJ5VXBn cmFkZSB8fAogCQkJKHJlbGlkICE9IExhcmdlT2JqZWN0UmVsYXRpb25JZCAmJgogCQkJIHJlbGlk ICE9IExhcmdlT2JqZWN0TWV0YWRhdGFSZWxhdGlvbklkKSkpCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCBiZmQzZWJjNjAxZS4uNGMwMDFhYTA3MzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwpAQCAtMTE3MCw2ICsxMTcwLDIxIEBAIENoZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVsSW5m byAqcmVzdWx0UmVsSW5mbywgQ21kVHlwZSBvcGVyYXRpb24sCiAJCQkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVzdWx0UmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJICogQ29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dp Y2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLiAgV2UgYWxsb3cgREVMRVRFIHRvIHBlcm1p dCB1c2VycyB0byBtYW51YWxseQorCSAqIHBydW5lIG9yIHRydW5jYXRlIHRoZXNlIGxvZ3MsIGJ1 dCBtYW51YWwgZGF0YSBpbnNlcnRpb24gb3IgbW9kaWZpY2F0aW9uCisJICogKElOU0VSVCwgVVBE QVRFLCBNRVJHRSkgaXMgcHJvaGliaXRlZCB0byBtYWludGFpbiB0aGUgaW50ZWdyaXR5IG9mIHRo ZQorCSAqIHN5c3RlbS1nZW5lcmF0ZWQgbG9ncy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdE5hbWVz cGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwpKSAmJgorCQlvcGVyYXRpb24gIT0g Q01EX0RFTEVURSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VG RklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coImNhbm5vdCBtb2RpZnkgb3IgaW5zZXJ0 IGRhdGEgaW50byBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlc3VsdFJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0 YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIGFuZCBvbmx5IHN1cHBvcnQgY2xlYW51cCB2aWEgREVM RVRFIG9yIFRSVU5DQVRFLiIpKSk7CiB9CiAKIC8qCkBAIC0xMjM0LDYgKzEyNDksMTcgQEAgQ2hl Y2tWYWxpZFJvd01hcmtSZWwoUmVsYXRpb24gcmVsLCBSb3dNYXJrVHlwZSBtYXJrVHlwZSkKIAkJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogCQkJYnJlYWs7CiAJfQorCisJ LyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0gdG8g cmVjb3JkIGxvZ2ljYWwKKwkgKiByZXBsaWNhdGlvbiBjb25mbGljdHMuICBXZSBkbyBub3QgYWxs b3cgbG9ja2luZyByb3dzIGluIENPTkZMSUNUCisJICogcmVsYXRpb25zLgorCSAqLworCWlmIChJ c0NvbmZsaWN0TmFtZXNwYWNlKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBl cnJtc2coImNhbm5vdCBsb2NrIHJvd3MgaW4gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRl eCAzNTg0YzRlMTQyOC4uMjFjZmUzOTA0MzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC02ODA2LDcgKzY4MDYsNyBA QCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl KQogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CiAJc3RhdGljIGNvbnN0IGJvb2wg dHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKIAkJZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCWZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxMDAw MDApCiAJewpAQCAtNjkwMCw2ICs2OTAwLDIwIEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25z dCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAogCQkJCQkJCSAgIiwgc3Vic2tpcGxzbiBBUyBcIiVzXCJcbiIsCiAJCQkJCQkJICBnZXR0ZXh0 X25vb3AoIlNraXAgTFNOIikpOworCisJCS8qIENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiBpcyBz dXBwb3J0ZWQgaW4gdjE5IGFuZCBoaWdoZXIgKi8KKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkw MDAwKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIiwgc3ViY29u ZmxpY3Rsb2dkZXN0IEFTIFwiJXNcIlxuIiwKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgiQ29uZmxp Y3QgbG9nIGRlc3RpbmF0aW9uIikpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJ CQkJCSAgIiwgKENBU0UgV0hFTiBzdWJjb25mbGljdGxvZ2Rlc3QgSU4gKCd0YWJsZScsICdhbGwn KSAiCisJCQkJCQkJICAiIFRIRU4gJ3BnX2NvbmZsaWN0XycgfHwgb2lkICIKKwkJCQkJCQkgICIg RUxTRSAnLScgRU5EKSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbmZs aWN0IGxvZyB0YWJsZSIpKTsKKwkJfQogCX0KIAogCS8qIE9ubHkgZGlzcGxheSBzdWJzY3JpcHRp b25zIGluIGN1cnJlbnQgZGF0YWJhc2UuICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggOGI5 MWJjMDAwNjIuLjEyZWVlOGEwZDQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzQ0LDgg KzIzNDQsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExF VEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFt ZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBN YXRjaEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwgIigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5 IiwgImRpc2FibGVfb25fZXJyb3IiLCAiZmFpbG92ZXIiLAotCQkJCQkgICJtYXhfcmV0ZW50aW9u X2R1cmF0aW9uIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25mbGlj dF9sb2dfZGVzdGluYXRpb24iLCAiZGlzYWJsZV9vbl9lcnJvciIsCisJCQkJCSAgImZhaWxvdmVy IiwgIm1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRf cmVxdWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwg InNsb3RfbmFtZSIsICJzdHJlYW1pbmciLAogCQkJCQkgICJzeW5jaHJvbm91c19jb21taXQiLCAi dHdvX3BoYXNlIik7CkBAIC0zODYwLDggKzM4NjAsOCBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIik7CiAJLyogQ29tcGxldGUg IkNSRUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwogCWVsc2Ug aWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueU4sICJXSVRIIiwg IigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwg ImNyZWF0ZV9zbG90IiwKLQkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZh aWxvdmVyIiwKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIsCisJCQkJCSAgImNyZWF0ZV9zbG90IiwgImRp c2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCiAJCQkJCSAgIm1heF9yZXRl bnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVxdWlyZWQiLCAi cmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNsb3RfbmFtZSIs ICJzdHJlYW1pbmciLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaAppbmRleCBhOWQ2ZThlYTk4Ni4uODE5MzIy OWYyZTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCkBAIC0yNSw2ICsyNSw3IEBAIGV4dGVybiBib29s IElzSW5wbGFjZVVwZGF0ZVJlbGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uKTsKIAogZXh0ZXJuIGJv b2wgSXNTeXN0ZW1DbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogZXh0 ZXJuIGJvb2wgSXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOworZXh0ZXJuIGJv b2wgSXNDb25mbGljdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogCiBleHRlcm4gYm9v bCBJc0NhdGFsb2dSZWxhdGlvbk9pZChPaWQgcmVsaWQpOwogZXh0ZXJuIGJvb2wgSXNDYXRhbG9n VGV4dFVuaXF1ZUluZGV4T2lkKE9pZCByZWxpZCk7CkBAIC0zMiw2ICszMyw3IEBAIGV4dGVybiBi b29sIElzSW5wbGFjZVVwZGF0ZU9pZChPaWQgcmVsaWQpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFs b2dOYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsKIGV4dGVybiBib29sIElzVG9hc3ROYW1lc3Bh Y2UoT2lkIG5hbWVzcGFjZUlkKTsKK2V4dGVybiBib29sIElzQ29uZmxpY3ROYW1lc3BhY2UoT2lk IG5hbWVzcGFjZUlkKTsKIAogZXh0ZXJuIGJvb2wgSXNSZXNlcnZlZE5hbWUoY29uc3QgY2hhciAq bmFtZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdAppbmRleCAzMDc1ZTE0MmM3 My4uYjQ1Y2I5MzgzYTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNw YWNlLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQKQEAgLTE4 LDYgKzE4LDkgQEAKIHsgb2lkID0+ICc5OScsIG9pZF9zeW1ib2wgPT4gJ1BHX1RPQVNUX05BTUVT UEFDRScsCiAgIGRlc2NyID0+ICdyZXNlcnZlZCBzY2hlbWEgZm9yIFRPQVNUIHRhYmxlcycsCiAg IG5zcG5hbWUgPT4gJ3BnX3RvYXN0JywgbnNwYWNsID0+ICdfbnVsbF8nIH0sCit7IG9pZCA9PiAn MTM4MicsIG9pZF9zeW1ib2wgPT4gJ1BHX0NPTkZMSUNUX05BTUVTUEFDRScsCisgIGRlc2NyID0+ ICdyZXNlcnZlZCBzY2hlbWEgZm9yIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBjb25mbGljdCBsb2cg dGFibGVzJywKKyAgbnNwbmFtZSA9PiAncGdfY29uZmxpY3QnLCBuc3BhY2wgPT4gJ19udWxsXycg fSwKICMgdXBkYXRlIGR1bXBOYW1lc3BhY2UoKSBpZiBjaGFuZ2luZyB0aGlzIGRlc2NyCiB7IG9p ZCA9PiAnMjIwMCcsIG9pZF9zeW1ib2wgPT4gJ1BHX1BVQkxJQ19OQU1FU1BBQ0UnLAogICBkZXNj ciA9PiAnc3RhbmRhcmQgcHVibGljIHNjaGVtYScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaAppbmRleCBmMzU3MWQyYmZjZi4uNzZhNDYzOGIzODkgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uaApAQCAtOTAsNiArOTAsNyBAQCBDQVRBTE9HKHBnX3N1YnNjcmlw dGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJ X1JPVwogCQkJCQkJCQkJICogZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgog CQkJCQkJCQkJICogZGVmaW5lZCAqLwogCisJT2lkICAgICAgICAgc3ViY29uZmxpY3Rsb2dyZWxp ZDsgLyogUmVsaWQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KICNpZmRlZiBDQVRBTE9H X1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENv bm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5mbyBC S0lfRk9SQ0VfTk9UX05VTEw7CkBAIC0xMDMsNiArMTA0LDE0IEBAIENBVEFMT0cocGdfc3Vic2Ny aXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBC S0lfUk9XCiAJLyogTGlzdCBvZiBwdWJsaWNhdGlvbnMgc3Vic2NyaWJlZCB0byAqLwogCXRleHQJ CXN1YnB1YmxpY2F0aW9uc1sxXSBCS0lfRk9SQ0VfTk9UX05VTEw7CiAKKwkvKgorCSAqIFN0cmF0 ZWd5IGZvciBsb2dnaW5nIHJlcGxpY2F0aW9uIGNvbmZsaWN0czoKKwkgKiAnbG9nJyAtIHNlcnZl ciBsb2cgb25seSwKKwkgKiAndGFibGUnIC0gY29uZmxpY3QgbG9nIHRhYmxlIG9ubHksCisJICog J2FsbCcgLSBib3RoIGxvZyBhbmQgdGFibGUuCisJICovCisJdGV4dAkJc3ViY29uZmxpY3Rsb2dk ZXN0OworCiAJLyogT25seSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUgc3BlY2lm aWVkIG9yaWdpbiAqLwogCXRleHQJCXN1Ym9yaWdpbiBCS0lfREVGQVVMVChMT0dJQ0FMUkVQX09S SUdJTl9BTlkpOwogI2VuZGlmCkBAIC0xNTIsMTIgKzE2MSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBT dWJzY3JpcHRpb24KIAkJCQkJCQkJCSAqIGFuZCB0aGUgcmV0ZW50aW9uIGR1cmF0aW9uIGhhcyBu b3QKIAkJCQkJCQkJCSAqIGV4Y2VlZGVkIG1heF9yZXRlbnRpb25fZHVyYXRpb24sIHdoZW4KIAkJ CQkJCQkJCSAqIGRlZmluZWQgKi8KKwlPaWQJCQljb25mbGljdGxvZ3JlbGlkOwkvKiBjb25mbGlj dCBsb2cgdGFibGUgT2lkICovCiAJY2hhcgkgICAqY29ubmluZm87CQkvKiBDb25uZWN0aW9uIHN0 cmluZyB0byB0aGUgcHVibGlzaGVyICovCiAJY2hhcgkgICAqc2xvdG5hbWU7CQkvKiBOYW1lIG9m IHRoZSByZXBsaWNhdGlvbiBzbG90ICovCiAJY2hhcgkgICAqc3luY2NvbW1pdDsJCS8qIFN5bmNo cm9ub3VzIGNvbW1pdCBzZXR0aW5nIGZvciB3b3JrZXIgKi8KIAlMaXN0CSAgICpwdWJsaWNhdGlv bnM7CS8qIExpc3Qgb2YgcHVibGljYXRpb24gbmFtZXMgdG8gc3Vic2NyaWJlIHRvICovCiAJY2hh cgkgICAqb3JpZ2luOwkJCS8qIE9ubHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0aW5nIGZyb20gdGhl CiAJCQkJCQkJCSAqIHNwZWNpZmllZCBvcmlnaW4gKi8KKwljaGFyCSAgICpjb25mbGljdGxvZ2Rl c3Q7CS8qIENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAqLwogfSBTdWJzY3JpcHRpb247CiAKICNp ZmRlZiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlv bmNtZHMuaAppbmRleCA2MzUwNDIzMmExNC4uYTg5NTEyN2Y4ZmUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zdWJzY3JpcHRpb25jbWRzLmgKQEAgLTE3LDYgKzE3LDcgQEAKIAogI2luY2x1ZGUgImNh dGFsb2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisj aW5jbHVkZSAicmVwbGljYXRpb24vY29uZmxpY3QuaCIKIAogZXh0ZXJuIE9iamVjdEFkZHJlc3Mg Q3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAkJCQkJCQkJCQlib29sIGlzVG9wTGV2ZWwpOwpAQCAtMzYsNCArMzcsNiBA QCBleHRlcm4gdm9pZCBDaGVja1N1YkRlYWRUdXBsZVJldGVudGlvbihib29sIGNoZWNrX2d1Yywg Ym9vbCBzdWJfZGlzYWJsZWQsCiAJCQkJCQkJCQkgICBib29sIHJldGVudGlvbl9hY3RpdmUsCiAJ CQkJCQkJCQkgICBib29sIG1heF9yZXRlbnRpb25fc2V0KTsKIAorZXh0ZXJuIENvbmZsaWN0TG9n RGVzdCBHZXRMb2dEZXN0aW5hdGlvbihjb25zdCBjaGFyICpkZXN0KTsKKwogI2VuZGlmCQkJCQkJ CS8qIFNVQlNDUklQVElPTkNNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vY29uZmxpY3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5k ZXggMmRlN2I2MjRlYjIuLjMxZmFjYzFlYzdlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9jb25mbGljdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0 LmgKQEAgLTEwLDYgKzEwLDcgQEAKICNkZWZpbmUgQ09ORkxJQ1RfSAogCiAjaW5jbHVkZSAiYWNj ZXNzL3hsb2dkZWZzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAi bm9kZXMvcGdfbGlzdC5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogCkBAIC03OSw2 ICs4MCw2MCBAQCB0eXBlZGVmIHN0cnVjdCBDb25mbGljdFR1cGxlSW5mbwogCQkJCQkJCQkgKiBj b25mbGljdGluZyBsb2NhbCByb3cgb2NjdXJyZWQgKi8KIH0gQ29uZmxpY3RUdXBsZUluZm87CiAK Ky8qCisgKiBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gdHlwZXMuCisgKgorICogVGhlc2UgdmFs dWVzIGFyZSBkZWZpbmVkIGFzIGJpdG1hc2sgZmxhZ3MgdG8gYWxsb3cgZm9yIG11bHRpcGxlIHNp bXVsdGFuZW91cworICogbG9nZ2luZyBkZXN0aW5hdGlvbnMgKGUuZy4sIGxvZ2dpbmcgdG8gYm90 aCBzeXN0ZW0gbG9ncyBhbmQgYSB0YWJsZSkuCisgKiBJbnRlcm5hbGx5LCB3ZSB1c2UgdGhlc2Ug Zm9yIGJpdHdpc2UgY29tcGFyaXNvbnMgKElzU2V0KSwgYnV0IHRoZSBzdHJpbmcKKyAqIHJlcHJl c2VudGF0aW9uIGlzIHN0b3JlZCBpbiBwZ19zdWJzY3JpcHRpb24uc3ViY29uZmxpY3Rsb2dkZXN0 LgorICovCit0eXBlZGVmIGVudW0gQ29uZmxpY3RMb2dEZXN0Cit7CisJLyogTG9nIGNvbmZsaWN0 cyB0byB0aGUgc2VydmVyIGxvZ3MgKi8KKwlDT05GTElDVF9MT0dfREVTVF9MT0cgICA9IDEgPDwg MCwgICAvKiAweDAxICovCisKKwkvKiBMb2cgY29uZmxpY3RzIHRvIGFuIGludGVybmFsbHkgbWFu YWdlZCBjb25mbGljdCBsb2cgdGFibGUgKi8KKwlDT05GTElDVF9MT0dfREVTVF9UQUJMRSA9IDEg PDwgMSwgICAvKiAweDAyICovCisKKwkvKiBDb252ZW5pZW5jZSBiaXRtYXNrIGZvciBhbGwgc3Vw cG9ydGVkIGRlc3RpbmF0aW9ucyAqLworCUNPTkZMSUNUX0xPR19ERVNUX0FMTCAgID0gKENPTkZM SUNUX0xPR19ERVNUX0xPRyB8IENPTkZMSUNUX0xPR19ERVNUX1RBQkxFKQorfSBDb25mbGljdExv Z0Rlc3Q7CisKKy8qCisgKiBBcnJheSBtYXBwaW5nIGZvciBjb252ZXJ0aW5nIGludGVybmFsIGVu dW0gdG8gc3RyaW5nLgorICovCitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dE ZXN0TmFtZXNbXSA9IHsKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfTE9HXSA9ICJsb2ciLAorCVtDT05G TElDVF9MT0dfREVTVF9UQUJMRV0gPSAidGFibGUiLAorCVtDT05GTElDVF9MT0dfREVTVF9BTExd ID0gImFsbCIKK307CisKKy8qIFN0cnVjdHVyZSB0byBob2xkIG1ldGFkYXRhIGZvciBvbmUgY29s dW1uIG9mIHRoZSBjb25mbGljdCBsb2cgdGFibGUgKi8KK3R5cGVkZWYgc3RydWN0IENvbmZsaWN0 TG9nQ29sdW1uRGVmCit7CisJY29uc3QgY2hhciAqYXR0bmFtZTsgICAgLyogQ29sdW1uIG5hbWUg Ki8KKwlPaWQgICAgICAgICBhdHR0eXBpZDsgICAvKiBEYXRhIHR5cGUgT0lEICovCit9IENvbmZs aWN0TG9nQ29sdW1uRGVmOworCisvKiBUaGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGhl IGNvbmZsaWN0IGxvZyB0YWJsZSBzY2hlbWEgKi8KK3N0YXRpYyBjb25zdCBDb25mbGljdExvZ0Nv bHVtbkRlZiBDb25mbGljdExvZ1NjaGVtYVtdID0KK3sKKwl7IC5hdHRuYW1lID0gInJlbGlkIiwg ICAgICAgICAgICAuYXR0dHlwaWQgPSBPSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInNjaGVtYW5h bWUiLCAgICAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZWxuYW1l IiwgICAgICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAiY29uZmxp Y3RfdHlwZSIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90 ZV94aWQiLCAgICAgICAuYXR0dHlwaWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90 ZV9jb21taXRfbHNuIiwuYXR0dHlwaWQgPSBMU05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90 ZV9jb21taXRfdHMiLCAuYXR0dHlwaWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUg PSAicmVtb3RlX29yaWdpbiIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1l ID0gInJlcGxpY2FfaWRlbnRpdHkiLCAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFt ZSA9ICJyZW1vdGVfdHVwbGUiLCAgICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5h bWUgPSAibG9jYWxfY29uZmxpY3RzIiwgIC5hdHR0eXBpZCA9IEpTT05BUlJBWU9JRCB9Cit9Owor CisjZGVmaW5lIE1BWF9DT05GTElDVF9BVFRSX05VTSBsZW5ndGhvZihDb25mbGljdExvZ1NjaGVt YSkKKwogZXh0ZXJuIGJvb2wgR2V0VHVwbGVUcmFuc2FjdGlvbkluZm8oVHVwbGVUYWJsZVNsb3Qg KmxvY2Fsc2xvdCwKIAkJCQkJCQkJCVRyYW5zYWN0aW9uSWQgKnhtaW4sCiAJCQkJCQkJCQlSZXBP cmlnaW5JZCAqbG9jYWxvcmlnaW4sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlw dGlvbi5vdXQKaW5kZXggYjNlY2NkOGFmZTMuLmI5NGJjYzNjYzIzIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xMTYsMTggKzExNiwxOCBAQCBDUkVB VEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JyBQVQogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwg YnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91 IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1 YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNh dGlvbnMuCiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFk IHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAw MDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFk IHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAg ICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViNCBTRVQgKG9yaWdpbiA9IGFueSk7CiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ci0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENv bmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi NCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIzOwpAQCAtMTQ1LDEwICsxNDUsMTAgQEAg QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdmb29iYXInOwog RVJST1I6ICBpbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIHN5bnRheDogbWlzc2luZyAiPSIgYWZ0 ZXIgImZvb2JhciIgaW4gY29ubmVjdGlvbiBpbmZvIHN0cmluZwogCiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0 YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxs ZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8 IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgUFVCTElDQVRJT04gdGVzdHB1YjIsIHRlc3RwdWIzIFdJ VEggKHJlZnJlc2ggPSBmYWxzZSk7CkBAIC0xNTcsMTAgKzE1NywxMCBAQCBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gJ25ld25hbWUnKTsKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IGZh bHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3du ZXIgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0 cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IGYg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QyIHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVi bGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24g fCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAg ICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMTc2LDEwICsxNzYsMTAgQEAgRVJST1I6 ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0ZV9zbG90IgogLS0g b2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gJzAvMTIz NDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30g fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QyIHwgMC8wMDAxMjM0NQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRp b24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25m bGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIs dGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0MiB8IDAvMDAwMTIzNDUgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAt CiAoMSByb3cpCiAKIC0tIG9rIC0gd2l0aCBsc24gPSBOT05FCkBAIC0xODgsMTAgKzE4OCwxMCBA QCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9IE5PTkUpOwog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8wJyk7CiBF UlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9uIChMU04pOiAwLzAKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJs aWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAg fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAw MDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEJFR0lOOwpAQCAt MjIzLDEwICsyMjMsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28g U0VUIChzeW5jaHJvbm91c19jb21taXQgPSBmb29iYXIpOwogRVJST1I6ICBpbnZhbGlkIHZhbHVl IGZvciBwYXJhbWV0ZXIgInN5bmNocm9ub3VzX2NvbW1pdCI6ICJmb29iYXIiCiBISU5UOiAgQXZh aWxhYmxlIHZhbHVlczogbG9jYWwsIHJlbW90ZV93cml0ZSwgcmVtb3RlX2FwcGx5LCBvbiwgb2Zm LgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIs dGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisg ICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50 aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRl c3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgbG9jYWwgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRvIGtl ZXAgdGhlIHJlc3Qgc2ltcGxlCkBAIC0yNTUsMTkgKzI1NSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBj b25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFs bHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwg YW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENv bmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsK IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBk dXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9u IHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQog CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0yNzksMjcgKzI3OSwyNyBA QCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3Jl YXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlv biwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUg dGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBw dWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxv ZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8 IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0 cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAot LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29u ZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAoc3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lw IExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJl YWR5IGV4aXN0cwpAQCAtMzE0LDEwICszMTQsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIK IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3Rw dWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlv biAidGVzdHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIi CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFk IHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCAgICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwg Q29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8 IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAK IC0tIGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhhbiBvbmNlCkBAIC0zMzIsMTAgKzMz MiwxMCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlw dGlvbiAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEs IHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg IFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAK Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAg ICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViOwpAQCAtMzcxLDE5ICszNzEsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVj dGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNy ZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBh bHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAw IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0 ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGlj dCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAw MDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIC0tIHdlIGNh biBhbHRlciBzdHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0 ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwg ZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50 aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBs b2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9u ICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAw MDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTM5Mywx MCArMzkzLDEwIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0 aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRl IHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNs b3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0 byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04g IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBv biAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAw MDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwg Q29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAg ICAgICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC00MDksMTggKzQwOSwxOCBAQCBDUkVBVEUg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0 IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11 c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNj cmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlv bnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJv dykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25f ZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwg dCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAg IHwgLQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CkBAIC00MzMsMTAgKzQzMywxMCBAQCBDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBj b25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFs bHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwg YW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENv bmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpA QCAtNDUwLDE5ICs0NTAsMTkgQEAgTk9USUNFOiAgbWF4X3JldGVudGlvbl9kdXJhdGlvbiBpcyBp bmVmZmVjdGl2ZSB3aGVuIHJldGFpbl9kZWFkX3R1cGxlcyBpcyBkaXNhYmwKIFdBUk5JTkc6ICBz dWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8g aW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGlj YXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2Ny aXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRh aW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2 ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBT a2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lw IExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCist LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAg ICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAobWF4X3JldGVudGlvbl9kdXJhdGlvbiA9IDApOwogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBD b25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsK QEAgLTUxNyw2ICs1MTcsMjc0IEBAIENPTU1JVDsKIC0tIG9rLCBvd25pbmcgaXQgaXMgZW5vdWdo IGZvciB0aGlzIHN0dWZmCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7Cist LQorLS0gQ09ORkxJQ1QgTE9HIERFU1RJTkFUSU9OIFRFU1RTCistLQorU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcic7CistLSBmYWlsIC0gdW5yZWNv Z25pemVkIHBhcmFtZXRlciB2YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X2ZhaWwgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNB VElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uID0gJ2ludmFsaWQnKTsKK0VSUk9SOiAgdW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbiB2YWx1ZTogImludmFsaWQiCitISU5UOiAgVmFsaWQgdmFsdWVzIGFyZSAibG9nIiwg InRhYmxlIiwgYW5kICJhbGwiLgorLS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9n JyBhbmQgcmVsaWQgaXMgMCAoSW52YWxpZE9pZCkgZm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0 ID0gZmFsc2UpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5v dCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFu dWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlv biwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitT RUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitG Uk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfbG9n X2RlZmF1bHQnOworICAgICAgICAgICBzdWJuYW1lICAgICAgICAgICAgfCBzdWJjb25mbGljdGxv Z2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf Y29uZmxpY3RfbG9nX2RlZmF1bHQgfCBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAwCisoMSByb3cpCisKKy0tIHZlcmlmeSBlbXB0eSBzdHJpbmcgZGVmYXVsdHMgdG8gJ2xv ZycKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJ VEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJycpOworV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwg c3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlw dGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKyAgICAg ICAgICBzdWJuYW1lICAgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0 bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIHwg bG9nICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB0 aGlzIHNob3VsZCBnZW5lcmF0ZSBhbiBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgbmFtZWQg cGdfY29uZmxpY3RfJHN1YmlkJAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJ T04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biA9ICd0YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMu CistLSBjaGVjayBtZXRhZGF0YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3Vs ZCBiZSAndGFibGUnIGFuZCByZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0 bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1 YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAg ICAgICBzdWJuYW1lICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBoYXNfcmVsaWQgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIHwgdGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVz IHN1YmNvbmZsaWN0bG9ncmVsaWQsCistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2Nv bmZsaWN0JyBuYW1lc3BhY2UKK1NFTEVDVCBuLm5zcG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxp Y3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVzIgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1 YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitKT0lO IHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK1dIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgIG5zcG5hbWUgICB8IG9pZF9tYXRjaGVz IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcGdfY29uZmxpY3QgfCB0CisoMSByb3cp CisKKy0tIGNoZWNrIGlmIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaGFzIHRoZSBjb3JyZWN0IHNj aGVtYQorU0VMRUNUIGEuYXR0bnVtLCBhLmF0dG5hbWUKK0ZST00gcGdfYXR0cmlidXRlIGEKK0pP SU4gcGdfY2xhc3MgYyBPTiBhLmF0dHJlbGlkID0gYy5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9u IHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyBBTkQgYS5hdHRudW0gPiAwCisgICAgT1JERVIg QlkgYS5hdHRudW07CisgYXR0bnVtIHwgICAgICBhdHRuYW1lICAgICAgCistLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAxIHwgcmVsaWQKKyAgICAgIDIgfCBzY2hlbWFuYW1lCisg ICAgICAzIHwgcmVsbmFtZQorICAgICAgNCB8IGNvbmZsaWN0X3R5cGUKKyAgICAgIDUgfCByZW1v dGVfeGlkCisgICAgICA2IHwgcmVtb3RlX2NvbW1pdF9sc24KKyAgICAgIDcgfCByZW1vdGVfY29t bWl0X3RzCisgICAgICA4IHwgcmVtb3RlX29yaWdpbgorICAgICAgOSB8IHJlcGxpY2FfaWRlbnRp dHkKKyAgICAgMTAgfCByZW1vdGVfdHVwbGUKKyAgICAgMTEgfCBsb2NhbF9jb25mbGljdHMKKygx MSByb3dzKQorCistLQorLS0gQUxURVIgU1VCU0NSSVBUSU9OIC0gY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uIHN0YXRlIHRyYW5zaXRpb25zCistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoZSB0 cmFuc2l0aW9uIGxvZ2ljIGJldHdlZW4gZGlmZmVyZW50IGxvZ2dpbmcKKy0tIGRlc3RpbmF0aW9u cywgZW5zdXJpbmcgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgY3JlYXRlZCBvciBkcm9wcGVkIGFz CistLSBleHBlY3RlZAorLS0KKy0tIHRyYW5zaXRpb24gZnJvbSAnbG9nJyB0byAnYWxsJworLS0g YSBuZXcgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlIHNob3VsZCBiZSBjcmVhdGVkCitDUkVB VEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3Qg PSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3Jp cHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdhbGwnKTsK Ky0tIHZlcmlmeSBtZXRhZGF0YSBhZnRlciBBTFRFUiAoZGVzdGluYXRpb24gc2hvdWxkIGJlICdh bGwnKQorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dy ZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworICAgICAgICBzdWJuYW1lICAgICAgICAgfCBz dWJjb25mbGljdGxvZ2Rlc3QgfCBoYXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qy IHwgYWxsICAgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB0cmFuc2l0aW9uIGZyb20g J2FsbCcgdG8gJ3RhYmxlJworLS0gc2hvdWxkIE5PVCBkcm9wIHRoZSB0YWJsZSwgb25seSBjaGFu Z2UgZGVzdGluYXRpb24gc3RyaW5nCitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dyZWxpZCBBUyBvbGRf cmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Rlc3QyJyBcZ3NldAorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVz dDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1NFTEVDVCBzdWJj b25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPSA6b2xkX3JlbGlkIEFTIHJlbGlk X3VuY2hhbmdlZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QyJzsKKyBzdWJjb25mbGljdGxvZ2Rlc3QgfCByZWxpZF91bmNoYW5nZWQg CistLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHRhYmxlICAgICAgICAg ICAgICB8IHQKKygxIHJvdykKKworLS0gdHJhbnNpdGlvbiBmcm9tICd0YWJsZScgdG8gJ2xvZycK Ky0tIHNob3VsZCBkcm9wIHRoZSB0YWJsZSBhbmQgY2xlYXIgcmVsaWQKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ2xvZycpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxp ZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X3Rlc3QyJzsKKyBzdWJjb25mbGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbG9nICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhlIHBoeXNp Y2FsIHRhYmxlIGlzIGdvbmUKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lO IHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lk CitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0KKy0tIFBVQkxJQ0FUSU9OOiBWZXJpZnkgY29u ZmxpY3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdfcmVsYXRpb25f aXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgaW50ZXJuYWwgY29uZmxpY3Qg bG9nCistLSB0YWJsZXMgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IGlu Y2x1ZGVkIGluIHB1YmxpY2F0aW9ucworLS0KK1NFTEVDVCBuLm5zcG5hbWUsIHBnX3JlbGF0aW9u X2lzX3B1Ymxpc2hhYmxlKGMub2lkKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX25hbWVzcGFj ZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04g cy5zdWJjb25mbGljdGxvZ3JlbGlkID0gYy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QxJzsKKyAgIG5zcG5hbWUgICB8IHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hh YmxlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcGdfY29u ZmxpY3QgfCBmCisoMSByb3cpCisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3lj bGUgTWFuYWdlbWVudAorLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFs IERST1AgVEFCTEUgaXMgZGlzYWxsb3dlZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGlj YWxseSByZWFwcyB0aGUgdGFibGUKKy0tCistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3Ig dmVyaWZpY2F0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBT RVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworLS0gV2UgdXNlIGEgRE8g YmxvY2sgd2l0aCBkeW5hbWljIFNRTCBiZWNhdXNlIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cg dGFibGUKKy0tIG5hbWUgY29udGFpbnMgdGhlIHN1YnNjcmlwdGlvbiBPSUQsIHdoaWNoIGlzIG5v bi1kZXRlcm1pbmlzdGljLiBUaGlzCistLSBhcHByb2FjaCBhbGxvd3MgdXMgdG8gYXR0ZW1wdCB0 aGUgRFJPUCBhbmQgY2FwdHVyZSB0aGUgZXhwZWN0ZWQgZXJyb3IKKy0tIHdpdGhvdXQgaGFyZC1j b2RpbmcgYSBzcGVjaWZpYyBPSUQgaW4gdGhlIGV4cGVjdGVkIG91dHB1dAorLS0gZmFpbCAtIGRy b3AgdGFibGUgbm90IGFsbG93ZWQgZHVlIHRvIGludGVybmFsIGRlcGVuZGVuY3kKK0RPICQkCitC RUdJTgorICAgIEVYRUNVVEUgJ0RST1AgVEFCTEUgJyB8fCAoU0VMRUNUICdwZ19jb25mbGljdC5w Z19jb25mbGljdF8nIHx8IG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnKTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9w cml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6 IGluc3VmZmljaWVudF9wcml2aWxlZ2UnOworRU5EICQkOworTk9USUNFOiAgY2FwdHVyZWQgZXhw ZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UKKy0tIENMRUFOVVA6IERST1AgU1VC U0NSSVBUSU9OIHJlYXBzIHRoZSB0YWJsZQorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29u ZmxpY3RfdGVzdDEgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CistLSBWZXJpZnkgdGhlIHRhYmxlIE9JRCBm b3IgcmVhcCBjaGVjaworU0VMRUNUICdwZ19jb25mbGljdF8nIHx8IG9pZCBBUyBpbnRlcm5hbF90 YWJsZW5hbWUgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X3Rlc3QxJyBcZ3NldAorRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90 ZXN0MTsKKy0tIHNob3VsZCByZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgY29uZmxpY3QgbG9nIHRh YmxlIHdhcyByZWFwZWQgdmlhIGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFzcyg6J2ludGVy bmFsX3RhYmxlbmFtZScpOworIHRvX3JlZ2NsYXNzIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93 KQorCistLQorLS0gQWRkaXRpb25hbCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3RlY3Rpb24gVGVz dHMKKy0tCistLSBTZXR1cDogRW5zdXJlIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gd2l0aCBhIGNv bmZsaWN0IGxvZyB0YWJsZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnCisg ICAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3Jl YXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlv biwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUg dGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBw dWJsaWNhdGlvbnMuCistLSBUcnlpbmcgdG8gQUxURVIgdGhlIGludGVybmFsIGNvbmZsaWN0IGxv ZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0t bWFuYWdlZAorLS0gQXMgbWVudGlvbmVkIGluIHByZXZpb3VzIHRlc3QgY2FzZXMsIHdlIHVzZSBh IERPIGJsb2NrIHRvIGhpZGUgZHluYW1pYyBPSURzCitETyAkJAorREVDTEFSRQorICAgIHRhYl9u YW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElO VE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBP TiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJ Q0UgJ0F0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxl JzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVN TiBleHRyYV9pbmZvIHRleHQnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVn ZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZm aWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVInOworRU5EICQkOworTk9USUNFOiAgQXR0ZW1w dGluZyBBTFRFUiBUQUJMRSBvbiBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKK05PVElDRTog IGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBB TFRFUgorLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhp cyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlk aW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlv bgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1Qg J3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFz cyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0Xycg fHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0 aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAnSU5TRVJUIElOVE8gJyB8fCB0YWJfbmFtZSB8fCAn IChyZWxuYW1lKSBWQUxVRVMgKCcnbXl0ZXN0JycpJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmlj aWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQg ZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIElOU0VSVCc7CitFTkQgJCQ7CitO T1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBk dXJpbmcgSU5TRVJUCistLSBUZXN0IE1hbnVhbCBVUERBVEUgb24gY29uZmxpY3QgbG9nIHRhYmxl CistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2Vk CistLSBIaWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUg ZXhjZXB0aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAg IFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9N IHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBFWEVDVVRFICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8 fCAnIFNFVCByZWxuYW1lID0gJydteXRlc3QnJyAnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNp ZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBl cnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgVVBEQVRFJzsKK0VORCAkJDsKK05P VElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1 cmluZyBVUERBVEUKKy0tIFRyeWluZyB0byBwZXJmb3JtIFRSVU5DQVRFL0RFTEVURSBvbiB0aGUg aW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBiZSBhbGxvd2VkIHNv IHRoYXQgdXNlciBjYW4gcGVyZm9ybSBjbGVhbnVwCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwg cmVsbmFtZSBBUyBjb25mbGljdF90YWIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3Jp cHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JyBcZ3NldAorVFJVTkNB VEUgOmNvbmZsaWN0X3RhYjsKK0RFTEVURSBGUk9NIDpjb25mbGljdF90YWI7CistLSBUcnlpbmcg dG8gY3JlYXRlIGEgbmV3IHRhYmxlIG1hbnVhbGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3Bh Y2UKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYXMgdGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3Ig Y29uZmxpY3QgbG9ncyB0YWJsZXMKK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFi bGUgKGlkIGludCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSAicGdfY29u ZmxpY3QubWFudWFsX3RhYmxlIgorREVUQUlMOiAgU3lzdGVtIGNhdGFsb2cgbW9kaWZpY2F0aW9u cyBhcmUgY3VycmVudGx5IGRpc2FsbG93ZWQuCistLSBNb3ZpbmcgYW4gZXhpc3RpbmcgdGFibGUg aW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBVc2VycyBzaG91bGQgbm90IGJlIGFi bGUgdG8gbW92ZSB0aGVpciBvd24gdGFibGVzIHdpdGhpbiB0aGlzIG5hbWVzcGFjZQorQ1JFQVRF IFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CitBTFRFUiBUQUJMRSBwdWJsaWMudGVz dF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitFUlJPUjogIGNhbm5vdCBtb3ZlIG9iamVj dHMgaW50byBvciBvdXQgb2YgQ09ORkxJQ1Qgc2NoZW1hCitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0 X21vdmU7CistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdDsK K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0 cjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MjsKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxFOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdDsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggZWYwYzI5OGQy ZGYuLmQyOTM0NDc4MzkyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3Jp cHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAg LTM2NSw2ICszNjUsMjIzIEBAIENPTU1JVDsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjsKIAorLS0KKy0tIENPTkZMSUNUIExPRyBERVNUSU5BVElPTiBURVNUUworLS0KKwor U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcic7CisK Ky0tIGZhaWwgLSB1bnJlY29nbml6ZWQgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZmFpbCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25m bGljdF9sb2dfZGVzdGluYXRpb24gPSAnaW52YWxpZCcpOworCistLSB2ZXJpZnkgc3ViY29uZmxp Y3Rsb2dkZXN0IGlzICdsb2cnIGFuZCByZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVmYXVs dCBjYXNlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQg Q09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0 cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSk7CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rs b2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBz dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQnOworCistLSB2ZXJpZnkgZW1w dHkgc3RyaW5nIGRlZmF1bHRzIHRvICdsb2cnCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfZW1wdHlfc3RyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICcnKTsKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3Qs IHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF9lbXB0eV9zdHInOworCistLSB0aGlzIHNob3VsZCBnZW5lcmF0 ZSBhbiBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgbmFtZWQgcGdfY29uZmxpY3RfJHN1Ymlk JAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCist LSBjaGVjayBtZXRhZGF0YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3VsZCBi ZSAndGFibGUnIGFuZCByZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9n ZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSB2 ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZs aWN0bG9ncmVsaWQsCistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBu YW1lc3BhY2UKK1NFTEVDVCBuLm5zcG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxp ZCkgQVMgIm9pZF9tYXRjaGVzIgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlv biBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitKT0lOIHBnX25hbWVz cGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0gY2hlY2sgaWYgdGhlIGNvbmZsaWN0IGxvZyB0YWJs ZSBoYXMgdGhlIGNvcnJlY3Qgc2NoZW1hCitTRUxFQ1QgYS5hdHRudW0sIGEuYXR0bmFtZQorRlJP TSBwZ19hdHRyaWJ1dGUgYQorSk9JTiBwZ19jbGFzcyBjIE9OIGEuYXR0cmVsaWQgPSBjLm9pZAor Sk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBz Lm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0 dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51bTsKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQ VElPTiAtIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0t IFRoZXNlIHRlc3RzIHZlcmlmeSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVu dCBsb2dnaW5nCistLSBkZXN0aW5hdGlvbnMsIGVuc3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIGNyZWF0ZWQgb3IgZHJvcHBlZCBhcworLS0gZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9u IGZyb20gJ2xvZycgdG8gJ2FsbCcKKy0tIGEgbmV3IGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJs ZSBzaG91bGQgYmUgY3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJ T04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biA9ICdsb2cnKTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNF VCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcpOworCistLSB2ZXJpZnkgbWV0YWRh dGEgYWZ0ZXIgQUxURVIgKGRlc3RpbmF0aW9uIHNob3VsZCBiZSAnYWxsJykKK1NFTEVDVCBzdWJu YW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19y ZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Rlc3QyJzsKKworLS0gdHJhbnNpdGlvbiBmcm9tICdhbGwnIHRvICd0YWJsZScKKy0tIHNo b3VsZCBOT1QgZHJvcCB0aGUgdGFibGUsIG9ubHkgY2hhbmdlIGRlc3RpbmF0aW9uIHN0cmluZwor U0VMRUNUIHN1YmNvbmZsaWN0bG9ncmVsaWQgQVMgb2xkX3JlbGlkIEZST00gcGdfc3Vic2NyaXB0 aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MicgXGdzZXQKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uID0gJ3RhYmxlJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25m bGljdGxvZ3JlbGlkID0gOm9sZF9yZWxpZCBBUyByZWxpZF91bmNoYW5nZWQKK0ZST00gcGdfc3Vi c2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0t IHRyYW5zaXRpb24gZnJvbSAndGFibGUnIHRvICdsb2cnCistLSBzaG91bGQgZHJvcCB0aGUgdGFi bGUgYW5kIGNsZWFyIHJlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90 ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVDVCBzdWJj b25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9u IFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHZlcmlmeSB0 aGUgcGh5c2ljYWwgdGFibGUgaXMgZ29uZQorU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2NsYXNz IGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0Xycg fHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKwor LS0KKy0tIFBVQkxJQ0FUSU9OOiBWZXJpZnkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1 Ymxpc2hhYmxlCistLQorLS0gcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVy biBmYWxzZSBmb3IgaW50ZXJuYWwgY29uZmxpY3QgbG9nCistLSB0YWJsZXMgdG8gcHJldmVudCB0 aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucworLS0K K1NFTEVDVCBuLm5zcG5hbWUsIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKGMub2lkKQorRlJP TSBwZ19jbGFzcyBjCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5v aWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gcy5zdWJjb25mbGljdGxvZ3JlbGlkID0gYy5v aWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0KKy0t IFRhYmxlIFByb3RlY3Rpb24gYW5kIExpZmVjeWNsZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2Ug dGVzdHMgdmVyaWZ5IHRoYXQ6CistLSBNYW51YWwgRFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkCist LSBEUk9QIFNVQlNDUklQVElPTiBhdXRvbWF0aWNhbGx5IHJlYXBzIHRoZSB0YWJsZQorLS0KKy0t IHJlLWVuYWJsZSB0YWJsZSBsb2dnaW5nIGZvciB2ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ3RhYmxlJyk7CisKKy0tIFdlIHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVj YXVzZSB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCistLSBuYW1lIGNvbnRhaW5zIHRo ZSBzdWJzY3JpcHRpb24gT0lELCB3aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcworLS0g YXBwcm9hY2ggYWxsb3dzIHVzIHRvIGF0dGVtcHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4 cGVjdGVkIGVycm9yCistLSB3aXRob3V0IGhhcmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRo ZSBleHBlY3RlZCBvdXRwdXQKKworLS0gZmFpbCAtIGRyb3AgdGFibGUgbm90IGFsbG93ZWQgZHVl IHRvIGludGVybmFsIGRlcGVuZGVuY3kKK0RPICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ0RST1Ag VEFCTEUgJyB8fCAoU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF8nIHx8IG9pZCBGUk9N IHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEn KTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2Un OworRU5EICQkOworCistLSBDTEVBTlVQOiBEUk9QIFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFi bGUKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworCistLSBWZXJpZnkgdGhlIHRhYmxlIE9JRCBmb3IgcmVhcCBjaGVjaworU0VMRUNU ICdwZ19jb25mbGljdF8nIHx8IG9pZCBBUyBpbnRlcm5hbF90YWJsZW5hbWUgRlJPTSBwZ19zdWJz Y3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyBcZ3NldAor CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxOworCistLSBzaG91bGQg cmV0dXJuIE5VTEwsIG1lYW5pbmcgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgcmVhcGVkIHZp YSBkZXBlbmRlbmN5CitTRUxFQ1QgdG9fcmVnY2xhc3MoOidpbnRlcm5hbF90YWJsZW5hbWUnKTsK KworLS0KKy0tIEFkZGl0aW9uYWwgTmFtZXNwYWNlIGFuZCBUYWJsZSBQcm90ZWN0aW9uIFRlc3Rz CistLQorCistLSBTZXR1cDogRW5zdXJlIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gd2l0aCBhIGNv bmZsaWN0IGxvZyB0YWJsZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnCisg ICAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBUcnlpbmcgdG8gQUxURVIgdGhlIGludGVy bmFsIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0 YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gQXMgbWVudGlvbmVkIGluIHByZXZpb3VzIHRlc3Qg Y2FzZXMsIHdlIHVzZSBhIERPIGJsb2NrIHRvIGhpZGUgZHluYW1pYyBPSURzCitETyAkJAorREVD TEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3Qu JyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19z dWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorICAg IFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisK KyAgICBSQUlTRSBOT1RJQ0UgJ0F0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gaW50ZXJuYWwgY29u ZmxpY3QgbG9nIHRhYmxlJzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1l IHx8ICcgQUREIENPTFVNTiBleHRyYV9pbmZvIHRleHQnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZm aWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3Rl ZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVInOworRU5EICQkOwor CistLSBUZXN0IE1hbnVhbCBJTlNFUlQgb24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNo b3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRpbmcg dGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9uCitE TyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdf Y29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMg Sk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBz Lm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25f dGVzdCc7CisKKyAgICBFWEVDVVRFICdJTlNFUlQgSU5UTyAnIHx8IHRhYl9uYW1lIHx8ICcgKHJl bG5hbWUpIFZBTFVFUyAoJydteXRlc3QnJyknOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50 X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJv cjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgSU5TRVJUJzsKK0VORCAkJDsKKworLS0g VGVzdCBNYW51YWwgVVBEQVRFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQg ZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBP SUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQK K0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZs aWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQK KyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3Qn OworCisgICAgRVhFQ1VURSAnVVBEQVRFICcgfHwgdGFiX25hbWUgfHwgJyBTRVQgcmVsbmFtZSA9 ICcnbXl0ZXN0JycgJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhF TgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVu dF9wcml2aWxlZ2UgZHVyaW5nIFVQREFURSc7CitFTkQgJCQ7CisKKy0tIFRyeWluZyB0byBwZXJm b3JtIFRSVU5DQVRFL0RFTEVURSBvbiB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCist LSBUaGlzIHNob3VsZCBiZSBhbGxvd2VkIHNvIHRoYXQgdXNlciBjYW4gcGVyZm9ybSBjbGVhbnVw CitTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBBUyBjb25mbGljdF90YWIKK0ZST00g cGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0JyBcZ3NldAorVFJVTkNBVEUgOmNvbmZsaWN0X3RhYjsKK0RFTEVURSBGUk9N IDpjb25mbGljdF90YWI7CisKKy0tIFRyeWluZyB0byBjcmVhdGUgYSBuZXcgdGFibGUgbWFudWFs bHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVGhpcyBzaG91bGQgZmFpbCBhcyB0 aGUgbmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBjb25mbGljdCBsb2dzIHRhYmxlcworQ1JFQVRF IFRBQkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJsZSAoaWQgaW50KTsKKworLS0gTW92aW5nIGFu IGV4aXN0aW5nIHRhYmxlIGludG8gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVXNlcnMg c2hvdWxkIG5vdCBiZSBhYmxlIHRvIG1vdmUgdGhlaXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBu YW1lc3BhY2UKK0NSRUFURSBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIChpZCBpbnQpOworQUxURVIg VEFCTEUgcHVibGljLnRlc3RfbW92ZSBTRVQgU0NIRU1BIHBnX2NvbmZsaWN0OworRFJPUCBUQUJM RSBwdWJsaWMudGVzdF9tb3ZlOworCistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3Jp cHRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJ U0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF9sb2dfZGVmYXVsdDsKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1w dHlfc3RyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0 eV9zdHIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfZW1wdHlfc3RyOworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MiBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVz dDIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29u ZmxpY3RfdGVzdDI7CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3Rl Y3Rpb25fdGVzdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf cHJvdGVjdGlvbl90ZXN0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdDsKKwogUkVTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJP TEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IDFjODYxMGZkNDZjLi42ZTI4NzNiOWM5OSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTUwMiw2ICs1MDIsOCBAQCBDb25kaXRpb25WYXJpYWJsZU1pbmltYWxseVBhZGRlZAogQ29u ZGl0aW9uYWxTdGFjawogQ29uZmlnRGF0YQogQ29uZmlnVmFyaWFibGUKK0NvbmZsaWN0TG9nQ29s dW1uRGVmCitDb25mbGljdExvZ0Rlc3QKIENvbmZsaWN0VHVwbGVJbmZvCiBDb25mbGljdFR5cGUK IENvbm5DYWNoZUVudHJ5Ci0tIAoyLjQ5LjAKCg== --000000000000e559ea0649569292--