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.94.2) (envelope-from ) id 1t3aID-00DP9u-NB for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Oct 2024 12:16:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t3aIB-0096BV-U2 for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Oct 2024 12:16:48 +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.94.2) (envelope-from ) id 1t30EU-00BoQO-6I for pgsql-hackers@lists.postgresql.org; Mon, 21 Oct 2024 21:46:35 +0000 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t30EF-0028EM-CN for pgsql-hackers@lists.postgresql.org; Mon, 21 Oct 2024 21:46:33 +0000 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-7db90a28cf6so3914865a12.0 for ; Mon, 21 Oct 2024 14:46:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1729547178; x=1730151978; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=lmKUgCC43l8UJfbMLmbSdButppBZcQvungugDKXWnxs=; b=nh+ZjbxlbJXeBf1mKutMQ2s5k/Wrn7sHdk2enZSN/GHmDpjKCjrUZjYuqIHQ+ReZFX XdWLDdiTgboiPfdPOkKwTGq31PJ6fbs3ir7uIA4ScV0Uzq16M3r1yaWQy45h/mPx7IX8 jElmemohMbriNY6v/fTqcuFMCdHe8pKtYdZu4bx7qu3Hre4DNaN7bmQdRD6tIQ3u1sAq faulKlLoni4A5M8uABk+/T56Ghn36P+tQyHHm02q6X21HepT4vXDAFnDGamuY3qjXUIS VO25Ig7Y3JBJuPDDaPP9Amy3r6UmDhFT1M46Ub4w9BkRjI+IACdgrSHgMVhBkgkisCKU fCXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729547178; x=1730151978; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=lmKUgCC43l8UJfbMLmbSdButppBZcQvungugDKXWnxs=; b=VljD1I35JDs2e93MNbHAXEHM+XQ+eVrnj/tzxQkrg1zXS9ObKCp36ycP37Q4xkNeAL pNUhbFGR7tcCoZxTnEwrWeL+1oY2OxTO0B44opM+bNqYVjeYCJfbkfWqYFP+rWHIAqsB wn3Weo1CHhexkcoey651HQSs6k5Io3BPvJQqJ/HgiP2nnGT1vevRyKzpPeSTzEEdU4Os i7iGyaDR34dS+0GxlCfC7XFmEYXAy1i2Ai5hcIIC/zdRdC2g6YNu0XS5lq8b0ymnQA5y 9sxmbr65uBauszuPL14nvgI31vv1/34YJqMLZiF6bPeFH0HaOzchwRdwFJIQ2ixVMKVx Ju/w== X-Forwarded-Encrypted: i=1; AJvYcCWuCO2RromZFqzgIqmxzRjjnb2wvox8rxiOf6E6+9iFV3xnRooVwldfjRavJKToJKKnjBKD20SKVj00SrDo@lists.postgresql.org X-Gm-Message-State: AOJu0YzG2hTIJaYzuf4YDyBjnMG1REGuv3O7QZjjOopkYLyRr4HxwZ5h 90RavAXKStJ531gKZ24/WL3kEbK64wrBGziIIrVUB4J29YIDSwPnzUIY3rkWMM0= X-Google-Smtp-Source: AGHT+IEvUCibF7aWmUKEmLmuC9WbP8IZLY+GsyvJYaRixNDr+4Lj2T1CxrjhB1Us1tblyQuQA+JeZg== X-Received: by 2002:a05:6a20:918e:b0:1d9:ec2:c87b with SMTP id adf61e73a8af0-1d96c296112mr1693079637.9.1729547177182; Mon, 21 Oct 2024 14:46:17 -0700 (PDT) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id 41be03b00d2f7-7eaeab48f46sm3627465a12.41.2024.10.21.14.46.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Oct 2024 14:46:15 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------fqq7eOVClbBGl58voZUohIfk" Message-ID: <9b7cb814-c78c-489f-85b2-32be4398647f@illuminatedcomputing.com> Date: Mon, 21 Oct 2024 14:46:14 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time From: Paul Jungwirth To: Peter Eisentraut Cc: jian he , Isaac Morland , Robert Haas , Jeff Davis , PostgreSQL Hackers References: <30dc3561-d7ab-42be-a1c5-096643423590@illuminatedcomputing.com> <73d09e24-b6b9-4c89-8c0a-8842ca0f81f9@illuminatedcomputing.com> <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> <54390149-11d6-4f52-bbe8-f69832ceb3bd@eisentraut.org> Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, Here is a new set of patches, including new patches to (1) fix logical replication with WITHOUT OVERLAPS indexes and (2) address some documentation lapses pointed out in jian he's feedback. Since all that is against the already-commited PK/UNIQUE/FK work, I've kept them separate here from the FOR PORTION OF etc patches. I've also added the logical replication problem to the v18 Open Items wiki page. Details below: On 8/15/24 19:12, jian he wrote: > in create_table.sgml, I saw the WITHOUT OVERLAPS change is mainly in > table_constraint. > but we didn't touch alter_table.sgml. > Do we also need to change alter_table.sgml correspondingly? Good catch! Not just WITHOUT OVERLAPS but FOREIGN KEY needed to be updated too. Patched here. > + if (constraint->without_overlaps) > + { > + /* > + * This enforces that there is at least one equality column > + * besides the WITHOUT OVERLAPS columns. This is per SQL > + * standard. XXX Do we need this? > + */ > + if (list_length(constraint->keys) < 2) > + ereport(ERROR, > + errcode(ERRCODE_SYNTAX_ERROR), > + errmsg("constraint using WITHOUT OVERLAPS needs at least two columns")); > + > + /* WITHOUT OVERLAPS requires a GiST index */ > + index->accessMethod = "gist"; > + } > if Constraint->conname is not NULL, we can > + errmsg("constraint \"%s\" using WITHOUT OVERLAPS needs at least two > columns")); > > "XXX Do we need this?" > I think currently we need this, otherwise the following create_table > synopsis will not be correct. > UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] [, > column_name WITHOUT OVERLAPS ] ) > PRIMARY KEY ( column_name [, ... ] [, column_name WITHOUT OVERLAPS ] ) Having zero scalar columns is not allowed according to SQL:2011, but supporting it seems like a cool thing to do eventually. It doesn't have to be in this first set of patches. But if we support it someday, I agree we must update these docs to match. > we add a column in catalog-pg-constraint. > do we need change column conexclop, > "If an exclusion constraint, list of the per-column exclusion operators" > but currently, primary key, unique constraint both have valid conexclop. I updated the docs to include the WITHOUT OVERLAPS case. > +static void > +ExecWithoutOverlapsNotEmpty(Relation rel, NameData attname, Datum > attval, char typtype, Oid atttypid) > ... > I think in the default branch, you need at least set the isempty > value, otherwise maybe there will be a compiler warning > because later your use isempty, but via default branch is value undefined? This isn't getting a warning on the build farm, so I think compilers are smart enough to see that elog exits. > + /* > + * If this is a WITHOUT OVERLAPS constraint, > + * we must also forbid empty ranges/multiranges. > + * This must happen before we look for NULLs below, > + * or a UNIQUE constraint could insert an empty > + * range along with a NULL scalar part. > + */ > + if (indexInfo->ii_WithoutOverlaps) > + { > + ExecWithoutOverlapsNotEmpty(heap, att->attname, > + } > previously we found out that if this happens later, then it won't work. > but this comment didn't explain why this must have happened earlier. > I didn't dig deep enough to find out why. > but explaining it would be very helpful. I don't follow. Explaining why it can't happen later is the same as explaining why it must happen sooner, right? But you say "must *have* happened earlier"---it's not that it must have happened already, but that we must do it now (before bailing when we look for NULLs). > I think some tests are duplicated, so I did the refactoring. I kept some of this patch: querying tableoid::regclass from the partition root is nicer than querying the leaves separately. The changes removing DELETEs & INSERTs made the tests less local, since they would depend on inserts made further up in the file. I'd rather keep the tests fairly isolated. I don't think this is the same thing as duplication. Rebased to 68ad9816c1. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/x-patch; charset=UTF-8; name="v41-0001-Add-WITHOUT-OVERLAPS-and-PERIOD-to-ALTER-TABLE-r.patch" Content-Disposition: attachment; filename*0="v41-0001-Add-WITHOUT-OVERLAPS-and-PERIOD-to-ALTER-TABLE-r.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5NjczYzRlNDI1YWI0YjIzZmViMTNlZmQwMjE1NDY0OGU1ZmY2YTAyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IE1vbiwgMjEgT2N0IDIwMjQgMTM6MDI6MTIgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0MSAxLzddIEFkZCBXSVRIT1VUIE9WRVJMQVBTIGFuZCBQ RVJJT0QgdG8gQUxURVIgVEFCTEUKIHJlZmVyZW5jZSBkb2NzCgpXZSBkb2N1bWVudGVkIFdJ VEhPVVQgT1ZFUkxBUFMgaW4gdGhlIENSRUFURSBUQUJMRSBkb2NzLCBidXQgbm90IGluCkFM VEVSIFRBQkxFLiBMaWtld2lzZSBmb3JlaWduIGtleXMgd2l0aCBQRVJJT0QuIFRoaXMgY29t bWl0IGFkZHMgdGhlCm5ldyBzeW50YXggdG8gQUxURVIgVEFCTEUuCi0tLQogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl90YWJsZS5zZ21sIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJs ZS5zZ21sCmluZGV4IDM2NzcwYzAxMmE2Li5kOGZhODZkYmExNiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfdGFibGUuc2dtbApAQCAtMTE0LDEwICsxMTQsMTAgQEAgV0lUSCAoIE1PRFVMVVMg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFj ZWFibGU+LCBSRU0KIAogWyBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPiBdCiB7IENIRUNLICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsg Tk8gSU5IRVJJVCBdIHwKLSAgVU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5DVCBdICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJs ZT4gWywgLi4uIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFy YW1ldGVyczwvcmVwbGFjZWFibGU+IHwKLSAgUFJJTUFSWSBLRVkgKCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSAp IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBs YWNlYWJsZT4gfAorICBVTklRVUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBb LCAuLi4gXSBbLCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8 L3JlcGxhY2VhYmxlPiBXSVRIT1VUIE9WRVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKKyAgUFJJTUFS WSBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VUIE9WRVJMQVBTIF0gKSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+ IHwKICAgRVhDTFVERSBbIFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5p bmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4Y2x1ZGVfZWxlbWVudDwvcmVwbGFjZWFibGU+IFdJVEggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFj ZWFibGU+IFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJlZGlj YXRlPC9yZXBsYWNlYWJsZT4gKSBdIHwKLSAgRk9SRUlHTiBLRVkgKCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSAp IFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9y ZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1 bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKyAgRk9SRUlHTiBLRVkgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li4gXSBbLCBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gXSApIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJ T0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNl YWJsZT4gXSApIF0KICAgICBbIE1BVENIIEZVTEwgfCBNQVRDSCBQQVJUSUFMIHwgTUFUQ0gg U0lNUExFIF0gWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJl ZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERBVEUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+ IF0gfQogWyBERUZFUlJBQkxFIHwgTk9UIERFRkVSUkFCTEUgXSBbIElOSVRJQUxMWSBERUZF UlJFRCB8IElOSVRJQUxMWSBJTU1FRElBVEUgXQogCi0tIAoyLjQyLjAKCg== --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/x-patch; charset=UTF-8; name="v41-0002-Update-conexclop-docs-for-WITHOUT-OVERLAPS.patch" Content-Disposition: attachment; filename*0="v41-0002-Update-conexclop-docs-for-WITHOUT-OVERLAPS.patch" Content-Transfer-Encoding: base64 RnJvbSBkMjEyNTY1MDZhMWY2OGQwNmNkNjFiMDA0MmE4MTVhOGFjM2ZiZmJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IE1vbiwgMjEgT2N0IDIwMjQgMTM6MTI6NDYgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0MSAyLzddIFVwZGF0ZSBjb25leGNsb3AgZG9jcyBmb3Ig V0lUSE9VVCBPVkVSTEFQUwoKLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCB8IDMg KystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAppbmRleCA5NjRjODE5YTAyZC4uZDJiNTU5Mzc2ZjAgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCkBAIC0yODEwLDcgKzI4MTAsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctb3Bl cmF0b3IiPjxzdHJ1Y3RuYW1lPnBnX29wZXJhdG9yPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0 cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQogICAgICAgPC9wYXJhPgogICAgICAgPHBh cmE+Ci0gICAgICAgSWYgYW4gZXhjbHVzaW9uIGNvbnN0cmFpbnQsIGxpc3Qgb2YgdGhlIHBl ci1jb2x1bW4gZXhjbHVzaW9uIG9wZXJhdG9ycworICAgICAgIElmIGFuIGV4Y2x1c2lvbiBj b25zdHJhaW50IG9yIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+CisgICAg ICAgcHJpbWFyeSBrZXkvdW5pcXVlIGNvbnN0cmFpbnQsIGxpc3Qgb2YgdGhlIHBlci1jb2x1 bW4gZXhjbHVzaW9uIG9wZXJhdG9ycy4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KIAotLSAKMi40Mi4wCgo= --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/x-patch; charset=UTF-8; name="v41-0003-Fix-logical-replication-for-temporal-tables.patch" Content-Disposition: attachment; filename*0="v41-0003-Fix-logical-replication-for-temporal-tables.patch" Content-Transfer-Encoding: base64 RnJvbSA0NzQ0NDdkMGZkYWQyYWMxZTA4ODlmMWE5YzJlZWNjYjVhZGVmYjE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMTYgT2N0IDIwMjQgMTE6MDY6NDAgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0MSAzLzddIEZpeCBsb2dpY2FsIHJlcGxpY2F0aW9uIGZv ciB0ZW1wb3JhbCB0YWJsZXMKCkEgV0lUSE9VVCBPVkVSTEFQUyBwcmltYXJ5IGtleSBvciB1 bmlxdWUgY29uc3RyYWludCBzaG91bGQgd29yayBhcyBhClJFUExJQ0EgSURFTlRJVFksIHNp bmNlIGl0IGd1YXJhbnRlZXMgdW5pcXVlbmVzcy4gQnV0IGl0IGlzIGEgR2lTVAppbmRleCwg bm90IGEgYnRyZWUsIHNvIGxvZ2ljYWwgcmVwbGljYXRpb24gd2FzIGdldHRpbmcgY29uZnVz ZWQuIFRvCmRldGVybWluZSB0aGUgZXF1YWxzIG9wZXJhdG9yLCB3ZSBjYW4gdXNlIHRoZSBz dHJhdG51bSBHaVNUIHN1cHBvcnQKZnVuY3Rpb24uCi0tLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDExICstCiBzcmMvYmFja2VuZC9leGVj dXRvci9leGVjUmVwbGljYXRpb24uYyAgICAgICAgfCAgIDkgKy0KIC4uLi9yZWdyZXNzL2V4 cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0ICAgICB8ICAxMSArLQogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgICAyICstCiBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzRfdGVtcG9yYWwucGwgICAgICAgfCA2NjggKysrKysrKysrKysr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDY5NCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90 ZW1wb3JhbC5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMWNjYzgwMDg3 YzMuLmZmNDQwMmE4YmYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTY3 ODUsOSArMTY3ODUsMTQgQEAgQVRFeGVjUmVwbGljYUlkZW50aXR5KFJlbGF0aW9uIHJlbCwg UmVwbGljYUlkZW50aXR5U3RtdCAqc3RtdCwgTE9DS01PREUgbG9ja21vZGUKIAkJCQkgZXJy bXNnKCJcIiVzXCIgaXMgbm90IGFuIGluZGV4IGZvciB0YWJsZSBcIiVzXCIiLAogCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kZXhSZWwpLAogCQkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVsKSkpKTsKLQkvKiBUaGUgQU0gbXVzdCBzdXBwb3J0IHVuaXF1ZW5l c3MsIGFuZCB0aGUgaW5kZXggbXVzdCBpbiBmYWN0IGJlIHVuaXF1ZS4gKi8KLQlpZiAoIWlu ZGV4UmVsLT5yZF9pbmRhbS0+YW1jYW51bmlxdWUgfHwKLQkJIWluZGV4UmVsLT5yZF9pbmRl eC0+aW5kaXN1bmlxdWUpCisJLyoKKwkgKiBUaGUgQU0gbXVzdCBzdXBwb3J0IHVuaXF1ZW5l c3MsIGFuZCB0aGUgaW5kZXggbXVzdCBpbiBmYWN0IGJlIHVuaXF1ZS4KKwkgKiBJZiB3ZSBo YXZlIGEgV0lUSE9VVCBPVkVSTEFQUyBjb25zdHJhaW50IChpZGVudGlmaWVkIGJ5IHVuaXF1 ZW5lc3MgKworCSAqIGV4Y2x1c2lvbiksIHdlIGNhbiB1c2UgdGhhdCB0b28uCisJICovCisJ aWYgKCghaW5kZXhSZWwtPnJkX2luZGFtLT5hbWNhbnVuaXF1ZSB8fAorCQkhaW5kZXhSZWwt PnJkX2luZGV4LT5pbmRpc3VuaXF1ZSkgJiYKKwkJIShpbmRleFJlbC0+cmRfaW5kZXgtPmlu ZGlzdW5pcXVlICYmIGluZGV4UmVsLT5yZF9pbmRleC0+aW5kaXNleGNsdXNpb24pKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUp LAogCQkJCSBlcnJtc2coImNhbm5vdCB1c2Ugbm9uLXVuaXF1ZSBpbmRleCBcIiVzXCIgYXMg cmVwbGljYSBpZGVudGl0eSIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUmVwbGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jCmluZGV4IDU0MDI1YzlmMTUwLi4xNTJmZTMxNDBhMCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCisjaW5jbHVkZSAiYWNj ZXNzL2dpc3QuaCIKICNpbmNsdWRlICJhY2Nlc3MvcmVsc2Nhbi5oIgogI2luY2x1ZGUgImFj Y2Vzcy90YWJsZWFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKQEAgLTc3LDcg Kzc4LDExIEBAIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXIoT2lkIG9wY2xhc3MpCiB7CiAJ T2lkCQkJYW0gPSBnZXRfb3BjbGFzc19tZXRob2Qob3BjbGFzcyk7CiAKLQlyZXR1cm4gZ2V0 X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oYW0pOworCS8qIEZvciBHaVNUIGluZGV4 ZXMgd2UgbmVlZCB0byBhc2sgdGhlIG9wY2xhc3Mgd2hhdCBzdHJhdGVneSBudW1iZXIgdG8g dXNlLiAqLworCWlmIChhbSA9PSBHSVNUX0FNX09JRCkKKwkJcmV0dXJuIEdpc3RUcmFuc2xh dGVTdHJhdG51bShvcGNsYXNzLCBSVEVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCWVsc2UKKwkJ cmV0dXJuIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXJfZm9yX2FtKGFtKTsKIH0KIAogLyoK QEAgLTEzNCw2ICsxMzksOCBAQCBidWlsZF9yZXBsaW5kZXhfc2Nhbl9rZXkoU2NhbktleSBz a2V5LCBSZWxhdGlvbiByZWwsIFJlbGF0aW9uIGlkeHJlbCwKIAkJb3B0eXBlID0gZ2V0X29w Y2xhc3NfaW5wdXRfdHlwZShvcGNsYXNzLT52YWx1ZXNbaW5kZXhfYXR0b2ZmXSk7CiAJCW9w ZmFtaWx5ID0gZ2V0X29wY2xhc3NfZmFtaWx5KG9wY2xhc3MtPnZhbHVlc1tpbmRleF9hdHRv ZmZdKTsKIAkJZXFfc3RyYXRlZ3kgPSBnZXRfZXF1YWxfc3RyYXRlZ3lfbnVtYmVyKG9wY2xh c3MtPnZhbHVlc1tpbmRleF9hdHRvZmZdKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGVxX3N0cmF0 ZWd5KSkKKwkJCWVsb2coRVJST1IsICJtaXNzaW5nIGVxdWFsIHN0cmF0ZWd5IGZvciBvcGNs YXNzICV1Iiwgb3BjbGFzcy0+dmFsdWVzW2luZGV4X2F0dG9mZl0pOwogCiAJCW9wZXJhdG9y ID0gZ2V0X29wZmFtaWx5X21lbWJlcihvcGZhbWlseSwgb3B0eXBlLAogCQkJCQkJCQkJICAg b3B0eXBlLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0 X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVy bGFwcy5vdXQKaW5kZXggODYxNzFjOTk0YzkuLmEwNWI2NGUyZjc4IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTk3OCw5 ICs5NzgsMTYgQEAgU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owog CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogLS0gQUxURVIgVEFCTEUgUkVQ TElDQSBJREVOVElUWQotLS0gKHNob3VsZCBmYWlsKQogQUxURVIgVEFCTEUgdGVtcG9yYWxf cm5nIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVtcG9yYWxfcm5nX3BrOwotRVJS T1I6ICBjYW5ub3QgdXNlIG5vbi11bmlxdWUgaW5kZXggInRlbXBvcmFsX3JuZ19wayIgYXMg cmVwbGljYSBpZGVudGl0eQorXGQgdGVtcG9yYWxfcm5nCisgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGVtcG9yYWxfcm5nIgorICBDb2x1bW4gIHwgICBUeXBlICAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgIHwgaW50NHJhbmdlIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCB8IGRhdGVyYW5nZSB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ybmdfcGsiIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykgUkVQTElDQSBJREVO VElUWQorCiAtLQogLS0gT04gQ09ORkxJQ1Q6IHJhbmdlcwogLS0KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKaW5kZXggOTQzZWRmM2RhNjMuLmViZWUy ZjI5MzJlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJs YXBzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNx bApAQCAtNjkxLDggKzY5MSw4IEBAIFNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAKIC0tIEFMVEVS IFRBQkxFIFJFUExJQ0EgSURFTlRJVFkKLS0tIChzaG91bGQgZmFpbCkKIEFMVEVSIFRBQkxF IHRlbXBvcmFsX3JuZyBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHRlbXBvcmFsX3Ju Z19wazsKK1xkIHRlbXBvcmFsX3JuZwogCiAtLQogLS0gT04gQ09ORkxJQ1Q6IHJhbmdlcwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM0X3RlbXBvcmFsLnBsIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM0X3RlbXBvcmFsLnBsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWY0MjQ5YTlmZQotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbApAQCAtMCwwICsx LDY2OCBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorCisjIExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9y IHRlbXBvcmFsIHRhYmxlcwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAn YWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMgc2V0dXAKKworbXkgJG5vZGVf cHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXIn KTsKKyRub2RlX3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2Fs Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCitteSAkbm9kZV9zdWJzY3JpYmVyID0g UG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9kZV9z dWJzY3JpYmVyLT5pbml0OworJG5vZGVfc3Vic2NyaWJlci0+c3RhcnQ7CisKK215ICRwdWJs aXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBv c3RncmVzJzsKKworbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpOworCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHdpdGggUkVQTElDQSBJREVO VElUWSBERUZBVUxUOgorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor IyBjcmVhdGUgdGFibGVzIG9uIHB1Ymxpc2hlcgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbm9fa2V5IChpZCBp bnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0KSIKKyk7CisKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wayAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCwgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOworCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9y YWxfdW5pcXVlIChpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsIHZhbGlkX2F0IGRhdGVyYW5nZSBO T1QgTlVMTCwgYSB0ZXh0LCBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KSkiCispOworCisjIGNyZWF0ZSB0YWJsZXMgb24gc3Vic2NyaWJlcgorCiskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X25vX2tleSAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCkiCisp OworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BrIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwg YSB0ZXh0LCBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIK Kyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVB VEUgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIChpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsIHZhbGlk X2F0IGRhdGVyYW5nZSBOT1QgTlVMTCwgYSB0ZXh0LCBVTklRVUUgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSkiCispOworCisjIHN5bmMgaW5pdGlhbCBkYXRhOgorCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ub19rZXkgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywg J1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfcGsgKGlk LCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAt MDEtMDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfdW5pcXVlIChpZCwgdmFsaWRfYXQsIGEp CisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyki KTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMiKTsKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEgQ09O TkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBwdWIxIgorKTsKKyRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jOworCiskcmVzdWx0 ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAq IEZST00gdGVtcG9yYWxfbm9fa2V5IE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRy ZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNl ZCB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxf cGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcygkcmVzdWx0LCBxcXtbMSwyKXxbMjAw MC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwknc3luY2VkIHRlbXBvcmFsX3BrIERFRkFVTFQn KTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBPUkRFUiBCWSBpZCwgdmFsaWRf YXQiKTsKK2lzKCAkcmVzdWx0LAorCXFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp fGF9LAorCSdzeW5jZWQgdGVtcG9yYWxfdW5pcXVlIERFRkFVTFQnKTsKKworIyByZXBsaWNh dGUgd2l0aCBubyBrZXk6CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX25vX2tleSAoaWQsIHZhbGlkX2F0LCBh KQorICAgVkFMVUVTICgnWzIsMyknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScp LAorICAgICAgICAgICgnWzMsNCknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScp LAorICAgICAgICAgICgnWzQsNSknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScp Iik7CisKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+ cHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfbm9fa2V5IFNFVCBhID0gJ2In IFdIRVJFIGlkID0gJ1syLDMpJyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+ OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNh dXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMg dXBkYXRlcworSElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBM SUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSB0ZW1w b3JhbF9ub19rZXkgREVGQVVMVCIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikg PSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVt cG9yYWxfbm9fa2V5IFdIRVJFIGlkID0gJ1szLDQpJyIpOworaXMoICRzdGRlcnIsCisJcXEo cHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ub19rZXkiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRp dHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAgVG8gZW5hYmxlIGRlbGV0aW5nIGZy b20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4p LAorCSJjYW4ndCBERUxFVEUgdGVtcG9yYWxfbm9fa2V5IERFRkFVTFQiKTsKKworJG5vZGVf cHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CisKKyRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ub19rZXkgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcyggJHJlc3VsdCwg cXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzIsMyl8WzIwMDAtMDEtMDEs MjAxMC0wMS0wMSl8YQorWzMsNCl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzQsNSl8 WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX25vX2tl eSBERUZBVUxUJyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSBwcmltYXJ5IGtleToKKworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g dGVtcG9yYWxfcGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfcGsgU0VUIGEgPSAnYicg V0hFUkUgaWQgPSAnWzIsMyknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIFdIRVJFIGlkID0gJ1szLDQp JyIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKKwor JHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMo ICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsy MDAwLTAxLTAxLDIwMTAtMDEtMDEpfGIKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp fGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF9wayBERUZBVUxUJyk7CisKKyMgcmVwbGljYXRl IHdpdGggYSB1bmlxdWUga2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF91bmlxdWUgKGlkLCB2YWxpZF9h dCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywg J2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywg J2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywg J2EnKSIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNo ZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBTRVQgYSA9 ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0 ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3VuaXF1ZSIg YmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlz aGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQg UkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBVUERBVEUg dGVtcG9yYWxfdW5pcXVlIERFRkFVTFQiKTsKKworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRl cnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9N IHRlbXBvcmFsX3VuaXF1ZSBXSEVSRSBpZCA9ICdbMyw0KSciKTsKK2lzKCAkc3RkZXJyLAor CXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAi dGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlk ZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElOVDogIFRvIGVuYWJsZSBkZWxldGlu ZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFC TEUuKSwKKwkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxUIik7CisKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOworCiskcmVzdWx0ID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZS T00gdGVtcG9yYWxfdW5pcXVlIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1 bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAx LTAxLDIwMTAtMDEtMDEpfGEKK1szLDQpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1s0 LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF91 bmlxdWUgREVGQVVMVCcpOworCisjIGNsZWFudXAKKworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfbm9fa2V5Iik7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wayIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1Ag VEFCTEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiBwdWIxIik7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfbm9fa2V5Iik7 Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUg dGVtcG9yYWxfcGsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF91bmlxdWUiKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gc3ViMSIpOworCisKKyMg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3Qgd2l0aCBSRVBMSUNB IElERU5USVRZIEZVTEw6CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CisjIGNyZWF0ZSB0YWJsZXMgb24gcHVibGlzaGVyCisKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ub19rZXkgKGlk IGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQpIgorKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFs X25vX2tleSBSRVBMSUNBIElERU5USVRZIEZVTEwiKTsKKworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BrIChpZCBp bnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0LCBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wayBSRVBMSUNB IElERU5USVRZIEZVTEwiKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSAoaWQgaW50NHJhbmdlIE5P VCBOVUxMLCB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIGEgdGV4dCwgVU5JUVVFIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSBS RVBMSUNBIElERU5USVRZIEZVTEwiKTsKKworIyBjcmVhdGUgdGFibGVzIG9uIHN1YnNjcmli ZXIKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ub19rZXkgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJh bmdlLCBhIHRleHQpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ub19rZXkgUkVQTElDQSBJREVOVElUWSBG VUxMIik7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcGsgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJh bmdlLCBhIHRleHQsIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wayBSRVBMSUNBIElERU5USVRZIEZVTEwiKTsKKworJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0 ZW1wb3JhbF91bmlxdWUgKGlkIGludDRyYW5nZSBOT1QgTlVMTCwgdmFsaWRfYXQgZGF0ZXJh bmdlIE5PVCBOVUxMLCBhIHRleHQsIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQUxURVIgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIFJFUExJQ0EgSURFTlRJVFkgRlVMTCIp OworCisjIHN5bmMgaW5pdGlhbCBkYXRhOgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ub19rZXkgKGlkLCB2 YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEt MDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVz JywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfcGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZB TFVFUyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g dGVtcG9yYWxfdW5pcXVlIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwyKScs ICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9S IEFMTCBUQUJMRVMiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9j b25uc3RyJyBQVUJMSUNBVElPTiBwdWIxIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRf Zm9yX3N1YnNjcmlwdGlvbl9zeW5jOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfbm9fa2V5 IE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsCisJcXF7WzEsMil8WzIw MDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNlZCB0ZW1wb3JhbF9ub19rZXkgRlVM TCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0 Iik7CitpcygkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwg J3N5bmNlZCB0ZW1wb3JhbF9wayBGVUxMJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91 bmlxdWUgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcyggJHJlc3VsdCwKKwlxcXtbMSwy KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwknc3luY2VkIHRlbXBvcmFsX3VuaXF1 ZSBGVUxMJyk7CisKKyMgcmVwbGljYXRlIHdpdGggbm8ga2V5OgorCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF9u b19rZXkgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAx LTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAx LTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAx LTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfbm9fa2V5IFNFVCBhID0gJ2InIFdI RVJFIGlkID0gJ1syLDMpJyIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9ub19rZXkgV0hFUkUgaWQgPSAnWzMs NCknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwor CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCAqIEZST00gdGVtcG9yYWxfbm9fa2V5IE9SREVSIEJZIGlkLCB2YWxpZF9hdCIp OworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1sy LDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGIKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAt MDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF9ub19rZXkgRlVMTCcpOworCisjIHJl cGxpY2F0ZSB3aXRoIGEgcHJpbWFyeSBrZXk6CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3BrIChpZCwgdmFs aWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMiwzKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KScsICdhJyksCisgICAgICAgICAgKCdbMyw0KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KScsICdhJyksCisgICAgICAgICAgKCdbNCw1KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KScsICdhJykiKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiVVBEQVRFIHRlbXBvcmFsX3BrIFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIp OworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUg RlJPTSB0ZW1wb3JhbF9wayBXSEVSRSBpZCA9ICdbMyw0KSciKTsKKworJG5vZGVfcHVibGlz aGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wayBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0LCBxcXtbMSwyKXxb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCitbMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KXxiCitbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVt cG9yYWxfcGsgRlVMTCcpOworCisjIHJlcGxpY2F0ZSB3aXRoIGEgdW5pcXVlIGtleToKKwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElO VE8gdGVtcG9yYWxfdW5pcXVlIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMiwz KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAgICAgKCdbMyw0 KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAgICAgKCdbNCw1 KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBT RVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIFdI RVJFIGlkID0gJ1szLDQpJyIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNo dXAoJ3N1YjEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEw LTAxLTAxKXxhCitbMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbNCw1KXxbMjAw MC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfdW5pcXVlIEZV TEwnKTsKKworIyBjbGVhbnVwCisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX25vX2tleSIpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfcGsiKTsKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBv cmFsX3VuaXF1ZSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkRST1AgUFVCTElDQVRJT04gcHViMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX25vX2tleSIpOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3Br Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFC TEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHN1YjEiKTsKKworCisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHdpdGggUkVQTElDQSBJREVOVElUWSBV U0lORyBJTkRFWAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBj cmVhdGUgdGFibGVzIG9uIHB1Ymxpc2hlcgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGsgKGlkIGludDRyYW5n ZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX3BrIFJFUExJQ0EgSURFTlRJ VFkgVVNJTkcgSU5ERVggdGVtcG9yYWxfcGtfcGtleSIpOworCiskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfdW5pcXVl IChpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTCwg YSB0ZXh0LCBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUg dGVtcG9yYWxfdW5pcXVlIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVtcG9yYWxf dW5pcXVlX2lkX3ZhbGlkX2F0X2tleSIKKyk7CisKKyMgY3JlYXRlIHRhYmxlcyBvbiBzdWJz Y3JpYmVyCisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcGsgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJh bmdlLCBhIHRleHQsIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wayBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHRl bXBvcmFsX3BrX3BrZXkiKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgKGlkIGludDRyYW5nZSBO T1QgTlVMTCwgdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLCBhIHRleHQsIFVOSVFVRSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxfdW5pcXVl IFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVtcG9yYWxfdW5pcXVlX2lkX3ZhbGlk X2F0X2tleSIKKyk7CisKKyMgc3luYyBpbml0aWFsIGRhdGE6CisKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3Br IChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwy MDEwLTAxLTAxKScsICdhJykiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdw b3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3VuaXF1ZSAoaWQsIHZhbGlkX2F0 LCBhKQorICAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAn YScpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNS RUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIik7Ciskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIx IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gcHViMSIKKyk7 Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYzsKKworJHJl c3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRy ZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNl ZCB0ZW1wb3JhbF9wayBVU0lORyBJTkRFWCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxf dW5pcXVlIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsCisJcXF7WzEs Mil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNlZCB0ZW1wb3JhbF91bmlx dWUgVVNJTkcgSU5ERVgnKTsKKworIyByZXBsaWNhdGUgd2l0aCBhIHByaW1hcnkga2V5Ogor Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wayAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzIsMykn LCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzMsNCkn LCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzQsNSkn LCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9wayBTRVQgYSA9 ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfcGsgV0hFUkUgaWQgPSAn WzMsNCknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScp OworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7 CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzIs Myl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgorWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0w MS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3BrIFVTSU5HIElOREVYJyk7CisKKyMg cmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF91bmlxdWUgKGlk LCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAt MDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAt MDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAt MDEtMDEpJywgJ2EnKSIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfdW5pcXVlIFNFVCBhID0gJ2InIFdIRVJFIGlkID0g J1syLDMpJyIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgV0hFUkUgaWQgPSAnWzMsNCknIik7CisK KyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOworCiskcmVzdWx0 ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAq IEZST00gdGVtcG9yYWxfdW5pcXVlIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRy ZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAw LTAxLTAxLDIwMTAtMDEtMDEpfGIKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9 LCAncmVwbGljYXRlZCB0ZW1wb3JhbF91bmlxdWUgVVNJTkcgSU5ERVgnKTsKKworIyBjbGVh bnVwCisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRB QkxFIHRlbXBvcmFsX3BrIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF91bmlxdWUiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFBVQkxJQ0FUSU9OIHB1YjEiKTsKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wayIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9Q IFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiBzdWIxIik7CisKKworIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB3aXRoIFJFUExJQ0EgSURFTlRJ VFkgTk9USElORworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBj cmVhdGUgdGFibGVzIG9uIHB1Ymxpc2hlcgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbm9fa2V5IChpZCBpbnQ0 cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0LCBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ub19rZXkgUkVQTElD QSBJREVOVElUWSBOT1RISU5HIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9wayAoaWQgaW50NHJhbmdlLCB2 YWxpZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCwgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxfcGsgUkVQTElDQSBJREVOVElUWSBO T1RISU5HIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQg ZGF0ZXJhbmdlLCBhIHRleHQsIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJB TFRFUiBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgUkVQTElDQSBJREVOVElUWSBOT1RISU5HIik7 CisKKyMgY3JlYXRlIHRhYmxlcyBvbiBzdWJzY3JpYmVyCisKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbm9fa2V5 IChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0KSIKKyk7Ciskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVt cG9yYWxfbm9fa2V5IFJFUExJQ0EgSURFTlRJVFkgTk9USElORyIpOworCiskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BrIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0LCBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxf cGsgUkVQTElDQSBJREVOVElUWSBOT1RISU5HIik7CisKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIChp ZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0LCBVTklRVUUgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSBSRVBM SUNBIElERU5USVRZIE5PVEhJTkciKTsKKworIyBzeW5jIGluaXRpYWwgZGF0YToKKworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g dGVtcG9yYWxfbm9fa2V5IChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwyKScs ICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3BrIChp ZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwyMDEw LTAxLTAxKScsICdhJykiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3VuaXF1ZSAoaWQsIHZhbGlkX2F0LCBh KQorICAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScp Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFU RSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIik7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxIENP Tk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gcHViMSIKKyk7Cisk bm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYzsKKworJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX25vX2tleSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lzKCAk cmVzdWx0LAorCXFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LAorCSdzeW5j ZWQgdGVtcG9yYWxfbm9fa2V5IE5PVEhJTkcnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoJHJlc3VsdCwgcXF7WzEsMil8WzIw MDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNlZCB0ZW1wb3JhbF9wayBOT1RISU5H Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkgaWQsIHZhbGlk X2F0Iik7CitpcyggJHJlc3VsdCwKKwlxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KXxhfSwKKwknc3luY2VkIHRlbXBvcmFsX3VuaXF1ZSBOT1RISU5HJyk7CisKKyMgcmVwbGlj YXRlIHdpdGggbm8ga2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9z dGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ub19rZXkgKGlkLCB2YWxpZF9hdCwg YSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2En KSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2En KSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2En KSIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXIt PnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX25vX2tleSBTRVQgYSA9ICdi JyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGlu PjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX25vX2tleSIgYmVj YXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVz IHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQgUkVQ TElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBVUERBVEUgdGVt cG9yYWxfbm9fa2V5IE5PVEhJTkciKTsKKworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIp ID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRl bXBvcmFsX25vX2tleSBXSEVSRSBpZCA9ICdbMyw0KSciKTsKK2lzKCAkc3RkZXJyLAorCXFx KHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVt cG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50 aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBm cm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUu KSwKKwkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX25vX2tleSBOT1RISU5HIik7CisKKyRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOworCiskcmVzdWx0ID0gJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00g dGVtcG9yYWxfbm9fa2V5IE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQs IHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpfGEKK1szLDQpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1s0LDUp fFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF9ub19r ZXkgTk9USElORycpOworCisjIHJlcGxpY2F0ZSB3aXRoIGEgcHJpbWFyeSBrZXk6CisKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRP IHRlbXBvcmFsX3BrIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMiwzKScsICdb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAgICAgKCdbMyw0KScsICdb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAgICAgKCdbNCw1KScsICdb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKworKCRyZXN1bHQsICRzdGRvdXQs ICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFU RSB0ZW1wb3JhbF9wayBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAk c3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFi bGUgInRlbXBvcmFsX3BrIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlk ZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDogIFRvIGVuYWJsZSB1cGRhdGlu ZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiks CisJImNhbid0IFVQREFURSB0ZW1wb3JhbF9wayBOT1RISU5HIik7CisKKygkcmVzdWx0LCAk c3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAor CSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBXSEVSRSBpZCA9ICdbMyw0KSciKTsKK2lzKCAk c3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJv bSB0YWJsZSAidGVtcG9yYWxfcGsiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxp Y2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAgVG8gZW5hYmxlIGRl bGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRF UiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgdGVtcG9yYWxfcGsgTk9USElORyIpOworCisk bm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKKworJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQs IHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpfGEKK1szLDQpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1s0LDUp fFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF9wayBO T1RISU5HJyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5OgorCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1w b3JhbF91bmlxdWUgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwg JHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRF IHRlbXBvcmFsX3VuaXF1ZSBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lz KCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUg dGFibGUgInRlbXBvcmFsX3VuaXF1ZSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVw bGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUg dXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBU QUJMRS4pLAorCSJjYW4ndCBVUERBVEUgdGVtcG9yYWxfdW5pcXVlIE5PVEhJTkciKTsKKwor KCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdw b3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBXSEVSRSBpZCA9ICdb Myw0KSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNh bm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRv ZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcwor SElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0Eg SURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3QgREVMRVRFIHRlbXBvcmFs X3VuaXF1ZSBOT1RISU5HIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgnc3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfdW5pcXVlIE9SREVSIEJZIGlk LCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAt MDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1szLDQpfFsyMDAw LTAxLTAxLDIwMTAtMDEtMDEpfGEKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9 LCAncmVwbGljYXRlZCB0ZW1wb3JhbF91bmlxdWUgTk9USElORycpOworCisjIGNsZWFudXAK KworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUg dGVtcG9yYWxfcGsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJEUk9QIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJT04gcHViMSIpOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3Br Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFC TEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHN1YjEiKTsKKworCitkb25lX3Rlc3Rpbmco KTsKKwotLSAKMi40Mi4wCgo= --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/x-patch; charset=UTF-8; name="v41-0004-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v41-0004-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSA3OGE4MWNmZGNmZDFlOWZiZDNjM2NiNDczYjVmOWNmYzk0NzgwZDEwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0MSA0LzddIEFkZCBzdXBwb3J0IGZ1bmNzIGZvciBGT1Ig UE9SVElPTiBPRgoKLSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoKICBUaGVzZSBq dXN0IGNhbGwgdGhlIGV4aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAgYnV0IHRoZXkg bGV0IHVzIGNvbXB1dGUgdGhlIHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1cGRhdGVkL2Rl bGV0ZWQKICBpbiBhIEZPUiBQT1JUSU9OIGNvbW1hbmQuCgotIEFkZHMge211bHRpLH1yYW5n ZV93aXRob3V0X3BvcnRpb24gc3VwcG9ydCBwcm9jcwoKICBUaGVzZSByZXR1cm4gU0VUT0Yg dGhlaXIgaW5wdXQgdHlwZSBhbmQgd29yayBsaWtlIG1pbnVzIGJ1dCBkb24ndAogIGZhaWwg b24gc3BsaXRzLiBUaGV5IG5ldmVyIGNvbnRhaW4gZW1wdHkgZWxlbWVudHMuIFdlIHdpbGwg dXNlIHRoaXMgdG8KICBjb21wdXRlIEZPUiBQT1JUSU9OIE9GIGxlZnRvdmVycy4KLS0tCiBj b250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU2 ICsrKysrKysrKysrKysrKystCiBkb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgICAgICAgICAg ICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFs aWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWxp ZGF0ZS5jICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 dmFsaWRhdGUuYyAgICAgICAgfCAgMzEgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gv aGFzaHZhbGlkYXRlLmMgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5k ZXgvYW12YWxpZGF0ZS5jICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0dmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNz L3NwZ2lzdC9zcGd2YWxpZGF0ZS5jICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC91dGls cy9hZHQvbXVsdGlyYW5nZXR5cGVzLmMgICAgICAgfCAgNzEgKysrKysrKysKIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMgICAgICAgICAgICB8IDE2MyArKysrKysrKysr KysrKysrKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmggICAgICAgICAgICAg ICB8ICAgNCArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAg ICAgICAgfCAgMTUgKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAg ICAgICAgICB8ICAgOCArCiBzcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVzLmggICAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tdWx0aXJhbmdl dHlwZXMub3V0IHwgMTE2ICsrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcmFuZ2V0eXBlcy5vdXQgICAgICB8ICA1NCArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL211bHRpcmFuZ2V0eXBlcy5zcWwgICAgICB8ICAyMiArKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3JhbmdldHlwZXMuc3FsICAgICAgICAgICB8ICAxMCArKwogMjIgZmlsZXMgY2hh bmdlZCwgNjgyIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0ZS5jIGIvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRl LmMKaW5kZXggODhjNWE3OTE5NzUuLjllMzllMzllMTc0IDEwMDY0NAotLS0gYS9jb250cmli L2Jsb29tL2JsdmFsaWRhdGUuYworKysgYi9jb250cmliL2Jsb29tL2JsdmFsaWRhdGUuYwpA QCAtMTA1LDcgKzEwNSw3IEBAIGJsdmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRj aCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBCTE9PTV9IQVNIX1BST0M6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElO VDRPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTEsIDEsIG9w Y2tleXR5cGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCTE9PTV9PUFRJT05TX1BST0M6CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IGQyYjU1OTM3NmYwLi5kZGI0MGMwMGI5MSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwKQEAgLTg2NSw3ICs4NjUsNyBAQAogICAgICAgPC9wYXJhPgogICAgICAgPHBh cmE+CiAgICAgICAgVGhlIEItdHJlZSBvcGVyYXRvciBmYW1pbHkgdGhpcyBlbnRyeSBzb3J0 cyBhY2NvcmRpbmcgdG8sIGlmIGFuCi0gICAgICAgb3JkZXJpbmcgb3BlcmF0b3I7IHplcm8g aWYgYSBzZWFyY2ggb3BlcmF0b3IKKyAgICAgICBvcmRlcmluZyBvcGVyYXRvcjsgemVybyBp ZiBhIHNlYXJjaCBvcGVyYXRvciBvciBwb3J0aW9uIG9wZXJhdG9yCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9naXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCmluZGV4IDYzOGQ5 MTJkYzJkLi5kMDBkZjVjNWZhMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dpc3Quc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCkBAIC0yNjYsNyArMjY2LDcgQEAgQ1JF QVRFIElOREVYIE9OIG15X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRf b3BzKTsKIAogIDxwYXJhPgogICAgVGhlcmUgYXJlIGZpdmUgbWV0aG9kcyB0aGF0IGFuIGlu ZGV4IG9wZXJhdG9yIGNsYXNzIGZvcgotICAgPGFjcm9ueW0+R2lTVDwvYWNyb255bT4gbXVz dCBwcm92aWRlLCBhbmQgc2V2ZW4gdGhhdCBhcmUgb3B0aW9uYWwuCisgICA8YWNyb255bT5H aVNUPC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCBuaW5lIHRoYXQgYXJlIG9wdGlvbmFs LgogICAgQ29ycmVjdG5lc3Mgb2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAgIGJ5IHByb3Bl ciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9uPiwgPGZ1 bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPgogICAgYW5kIDxmdW5jdGlvbj51bmlvbjwv ZnVuY3Rpb24+IG1ldGhvZHMsIHdoaWxlIGVmZmljaWVuY3kgKHNpemUgYW5kIHNwZWVkKSBv ZiB0aGUKQEAgLTI5NCw2ICsyOTQsMTIgQEAgQ1JFQVRFIElOREVYIE9OIG15X3RhYmxlIFVT SU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRfb3BzKTsKICAgIDxmaWxlbmFtZT5zcmMv aW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaDwvZmlsZW5hbWU+KSBpbnRvIHN0cmF0ZWd5IG51 bWJlcnMKICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzLiAgVGhpcyBsZXRzIHRoZSBj b3JlIGNvZGUgbG9vayB1cCBvcGVyYXRvcnMgZm9yCiAgICB0ZW1wb3JhbCBjb25zdHJhaW50 IGluZGV4ZXMuCisgICBUaGUgb3B0aW9uYWwgdGhpcnRlZW50aCBtZXRob2QgPGZ1bmN0aW9u PmludGVyc2VjdDwvZnVuY3Rpb24+IGlzIHVzZWQgYnkKKyAgIDxsaXRlcmFsPkZPUiBQT1JU SU9OIE9GPC9saXRlcmFsPiB0byBjb21wdXRlIHRoZSBuZXcgYm91bmRzIG9mIHRoZSB1cGRh dGVkLworICAgZGVsZXRlZCByZWNvcmQuCisgICBUaGUgb3B0aW9uYWwgZm91cnRlZW50aCBt ZXRob2QgPGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+IGlzIHVzZWQgYnkK KyAgIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiB0byBjb21wdXRlIHRoZSBs ZWZ0b3ZlciByZWNvcmRzIG91dHNpZGUgdGhlCisgICB0YXJnZXRlZCBib3VuZHMuCiAgPC9w YXJhPgogCiAgPHZhcmlhYmxlbGlzdD4KQEAgLTEyMzUsNiArMTI0MSwxNTQgQEAgbXlfc3Ry YXRudW0oUEdfRlVOQ1RJT05fQVJHUykKICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRl bT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVy bT48ZnVuY3Rpb24+aW50ZXJzZWN0PC9mdW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIEdpdmVuIHR3byB2YWx1ZXMgb2YgdGhpcyBvcGNs YXNzLCBpdCByZXR1cm5zIHRoZWlyIGludGVyc2VjdGlvbi4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFRoaXMgaXMgdXNlZCBmb3IgdGVtcG9yYWwgdXBkYXRlIGNv bW1hbmRzIHRvIGNvbXB1dGUgdGhlCisgICAgICAgbmV3IGJvdW5kcyBvZiB0aGUgY2hhbmdl ZCByb3cuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNy b255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxv b2sgbGlrZQorICAgICAgIHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15X2ludGVyc2VjdDwvbGl0 ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIG15X3JhbmdlX2ludGVyc2VjdChhbnlyYW5nZSwgYW55cmFuZ2Up CitSRVRVUk5TIGFueXJhbmdlCitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBT VFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0 aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVtCitt eV9yYW5nZV9pbnRlcnNlY3QoUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICBSYW5nZVR5cGUg ICpyMSA9IFBHX0dFVEFSR19SQU5HRV9QKDApOworICAgIFJhbmdlVHlwZSAgKnIyID0gUEdf R0VUQVJHX1JBTkdFX1AoMSk7CisgICAgVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCisg ICAgLyogRGlmZmVyZW50IHR5cGVzIHNob3VsZCBiZSBwcmV2ZW50ZWQgYnkgQU5ZUkFOR0Ug bWF0Y2hpbmcgcnVsZXMgKi8KKyAgICBpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5n ZVR5cGVHZXRPaWQocjIpKQorICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8g bm90IG1hdGNoIik7CisKKyAgICB0eXBjYWNoZSA9IHJhbmdlX2dldF90eXBjYWNoZShmY2lu Zm8sIFJhbmdlVHlwZUdldE9pZChyMSkpOworCisgICAgUEdfUkVUVVJOX1JBTkdFX1AocmFu Z2VfaW50ZXJzZWN0X2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIpKTsKK30KKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJs aXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPndp dGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFzcywgaXQg c3VidHJhY3RzIHRoZSBzZWNvbmQgZm9yIHRoZSBmaXJzdAorICAgICAgIGFuZCByZXR1cm5z IGFuIGFycmF5IG9mIHRoZSByZXN1bHRzLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhpcyBpcyB1c2VkIGZvciB0ZW1wb3JhbCB1cGRhdGUvZGVsZXRlIGNvbW1h bmRzIHRvIGNvbXB1dGUgdGhlCisgICAgICAgYm91bmRzIG9mIHRoZSB1bnRvdWNoZWQgZHVy YXRpb24uCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNy b255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxv b2sgbGlrZQorICAgICAgIHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15X3JhbmdlX3dpdGhvdXRf cG9ydGlvbjwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbihh bnlyYW5nZSwgYW55cmFuZ2UpCitSRVRVUk5TIGFueWFycmF5CitBUyAnTU9EVUxFX1BBVEhO QU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9w YXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRo ZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFt bGlzdGluZz4KK0RhdHVtCitteV9yYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05f QVJHUykKK3sKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIFJhbmdlVHlwZSAgKnJz WzJdOworICAgICAgICBpbnQgICAgICAgICBuOworICAgIH0gcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uX2ZjdHg7CisKKyAgICBGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisgICAgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisgICAgTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCisgICAgLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRo ZSBmdW5jdGlvbiAqLworICAgIGlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisgICAgeworICAg ICAgICBSYW5nZVR5cGUgICAgICAgKnIxOworICAgICAgICBSYW5nZVR5cGUgICAgICAgKnIy OworICAgICAgICBPaWQgICAgICAgICAgICAgIHJuZ3R5cGlkOworICAgICAgICBUeXBlQ2Fj aGVFbnRyeSAgKnR5cGNhY2hlOworCisgICAgICAgIC8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNv bnRleHQgZm9yIGNyb3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKyAgICAgICAgZnVuY2N0eCA9 IFNSRl9GSVJTVENBTExfSU5JVCgpOworCisgICAgICAgIC8qCisgICAgICAgICAqIHN3aXRj aCB0byBtZW1vcnkgY29udGV4dCBhcHByb3ByaWF0ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24g Y2FsbHMKKyAgICAgICAgICovCisgICAgICAgIG9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8oZnVuY2N0eC0mZ3Q7bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKworICAgICAg ICByMSA9IFBHX0dFVEFSR19SQU5HRV9QKDApOworICAgICAgICByMiA9IFBHX0dFVEFSR19S QU5HRV9QKDEpOworCisgICAgICAgIC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJl dmVudGVkIGJ5IEFOWVJBTkdFIG1hdGNoaW5nIHJ1bGVzICovCisgICAgICAgIGlmIChSYW5n ZVR5cGVHZXRPaWQocjEpICE9IFJhbmdlVHlwZUdldE9pZChyMikpCisgICAgICAgICAgICBl bG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICAgICAgLyog YWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNvbnRleHQgKi8KKyAgICAgICAgZmN0eCA9IChy YW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBwYWxsb2Moc2l6ZW9mKHJhbmdlX3dpdGhv dXRfcG9ydGlvbl9mY3R4KSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6 ZSBzdGF0ZS4KKyAgICAgICAgICogV2UgY2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5cGNhY2hl IGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNhbGxlcgorICAgICAgICAgKiB1c2VzIHRoYXQg Zm9yIHRoZSBTUkYgc3RhdGUuCisgICAgICAgICAqLworICAgICAgICBybmd0eXBpZCA9IFJh bmdlVHlwZUdldE9pZChyMSk7CisgICAgICAgIHR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2Fj aGUocm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKyAgICAgICAgaWYgKHR5cGNh Y2hlLSZndDtybmdlbGVtdHlwZSA9PSBOVUxMKQorICAgICAgICAgICAgZWxvZyhFUlJPUiwg InR5cGUgJXUgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsKKyAgICAgICAgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZjdHgtJmd0 O3JzLCAmYW1wO2ZjdHgtJmd0O24pOworCisgICAgICAgIGZ1bmNjdHgtJmd0O3VzZXJfZmN0 eCA9IGZjdHg7CisgICAgICAgIE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK KyAgICB9CisKKyAgICAvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0 aW9uICovCisgICAgZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisgICAgZmN0eCA9 IGZ1bmNjdHgtJmd0O3VzZXJfZmN0eDsKKworICAgIGlmIChmdW5jY3R4LSZndDtjYWxsX2Nu dHIgJmx0OyBmY3R4LSZndDtuKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2Ug bXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFyYXRlIGxpbmVzCisgICAgICAgICAqIGJlY2F1c2Ug U1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRyKys6CisgICAgICAgICAqLworICAgICAg ICBSYW5nZVR5cGUgKnJldCA9IGZjdHgtJmd0O3JzW2Z1bmNjdHgtJmd0O2NhbGxfY250cl07 CisgICAgICAgIFNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0o cmV0KSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgLyogZG8gd2hlbiB0aGVyZSBpcyBu byBtb3JlIGxlZnQgKi8KKyAgICAgICAgU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQor PC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAg ICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgPHBhcmE+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwveGluZGV4 LnNnbWwKaW5kZXggM2ExOWRhYjE1ZTAuLjQ4N2E1N2JmMDE1IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCkBA IC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNUIGlu ZGV4ZXMgaGF2ZSB0d2VsdmUgc3VwcG9ydCBmdW5jdGlvbnMsIHNldmVuIG9mIHdoaWNoIGFy ZSBvcHRpb25hbCwKKyAgIEdpU1QgaW5kZXhlcyBoYXZlIGZvdXJ0ZWVuIHN1cHBvcnQgZnVu Y3Rpb25zLCBuaW5lIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKICAgIGFzIHNob3duIGluIDx4 cmVmIGxpbmtlbmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUiLz4uCiAgICAoRm9yIG1v cmUgaW5mb3JtYXRpb24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4uKQogICA8L3BhcmE+ CkBAIC01OTYsNiArNTk2LDE4IEBACiAgICAgICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNs YXNzIChvcHRpb25hbCk8L2VudHJ5PgogICAgICAgIDxlbnRyeT4xMjwvZW50cnk+CiAgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj5pbnRlcnNl Y3Q8L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICAgPGVudHJ5PmNvbXB1dGVzIGludGVyc2Vj dGlvbiB3aXRoIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPgorICAgICAgICBi b3VuZHMgKG9wdGlvbmFsKTwvZW50cnk+CisgICAgICAgPGVudHJ5PjEzPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGZ1bmN0aW9uPndpdGhv dXRfcG9ydGlvbjwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+Y29tcHV0ZXMg cmVtYWluaW5nIGR1cmF0aW9uKHMpIG91dHNpZGUKKyAgICAgICA8bGl0ZXJhbD5GT1IgUE9S VElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzIChvcHRpb25hbCk8L2VudHJ5PgorICAgICAgIDxl bnRyeT4xNDwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rn cm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJp bi9icmluX3ZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlk YXRlLmMKaW5kZXggNTM5YWM5Y2IwNjQuLjA4MmY5NmI4NDdkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jCkBAIC04NywyMSArODcsMjEgQEAgYnJpbnZh bGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0p CiAJCXsKIAkJCWNhc2UgQlJJTl9QUk9DTlVNX09QQ0lORk86Ci0JCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAor CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRF Uk5BTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgQlJJTl9QUk9DTlVNX0FERFZBTFVFOgotCQkJCW9rID0g Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVl LAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBC T09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJNCwgNCwgSU5URVJOQUxPSUQsIElO VEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJ CWJyZWFrOwogCQkJY2FzZSBCUklOX1BST0NOVU1fQ09OU0lTVEVOVDoKLQkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwK KwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9P TE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTMsIDQsIElOVEVSTkFMT0lELCBJTlRF Uk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVDRPSUQpOwogCQkJCWJyZWFr OwogCQkJY2FzZSBCUklOX1BST0NOVU1fVU5JT046Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkzLCAzLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJ CQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aW4vZ2ludmFsaWRhdGUuYwppbmRleCA3NDQyMGExMjlhYS4uNzQ4Yjk0YTg5M2YgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRhdGUuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZhbGlkYXRlLmMKQEAgLTEwNCwzNyArMTA0LDM3IEBA IGdpbnZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXBy b2NudW0pCiAJCXsKIAkJCWNhc2UgR0lOX0NPTVBBUkVfUFJPQzoKLQkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsCisJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRP SUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMiwgMiwgb3Bja2V5dHlwZSwgb3Bja2V5 dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9FWFRSQUNUVkFMVUVfUFJPQzoKIAkJ CQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0IG51bGxGbGFncyAqLwotCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2Us CisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElO VEVSTkFMT0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTIsIDMsIG9wY2ludHlwZSwg SU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lOX0VYVFJBQ1RRVUVSWV9QUk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9t aXQgbnVsbEZsYWdzIGFuZCBzZWFyY2hNb2RlICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlv ayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxP SUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwgNywgb3BjaW50eXBlLCBJTlRFUk5B TE9JRCwKIAkJCQkJCQkJCQkJSU5UMk9JRCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAog CQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJ Y2FzZSBHSU5fQ09OU0lTVEVOVF9QUk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9taXQg cXVlcnlLZXlzIGFuZCBudWxsRmxhZ3MgKi8KLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCBm YWxzZSwKIAkJCQkJCQkJCQkJNiwgOCwgSU5URVJOQUxPSUQsIElOVDJPSUQsCiAJCQkJCQkJ CQkJCW9wY2ludHlwZSwgSU5UNE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVS TkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSBHSU5fQ09NUEFSRV9QQVJUSUFMX1BST0M6Ci0JCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLAor CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0 T0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTQsIDQsIG9wY2tleXR5cGUsIG9wY2tl eXR5cGUsCiAJCQkJCQkJCQkJCUlOVDJPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgR0lOX1RSSUNPTlNJU1RFTlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQ0hBUk9JRCwgZmFsc2UsCisJCQkJb2sg PSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIENIQVJPSUQsIGZh bHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNywgNywgSU5URVJOQUxPSUQsIElOVDJPSUQsCiAJ CQkJCQkJCQkJCW9wY2ludHlwZSwgSU5UNE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQs IElOVEVSTkFMT0lELApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwpp bmRleCAwOTAxNTQzYTYwYS4uZTFhZDY1YjlhNGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R2YWxpZGF0ZS5jCkBAIC0xMDYsMzYgKzEwNiwzNiBAQCBnaXN0dmFsaWRhdGUo T2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewog CQkJY2FzZSBHSVNUX0NPTlNJU1RFTlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNl LCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwgNSwgSU5URVJOQUxPSUQsIG9wY2ludHlwZSwKIAkJ CQkJCQkJCQkJSU5UMk9JRCwgT0lET0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIEdJU1RfVU5JT05fUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgb3Bja2V5dHlwZSwgZmFsc2UsCisJCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIG9wY2tleXR5cGUsIGZhbHNl LCBmYWxzZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9DT01QUkVTU19QUk9DOgogCQkJY2FzZSBHSVNU X0RFQ09NUFJFU1NfUFJPQzoKIAkJCWNhc2UgR0lTVF9GRVRDSF9QUk9DOgotCQkJCW9rID0g Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwg dHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgSU5URVJOQUxPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5B TE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfUEVOQUxUWV9QUk9DOgotCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9J RCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkzLCAzLCBJTlRF Uk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQli cmVhazsKIAkJCWNhc2UgR0lTVF9QSUNLU1BMSVRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVS TkFMT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElO VEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9FUVVBTF9QUk9DOgotCQkJ CW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5B TE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTMsIDMs IG9wY2tleXR5cGUsIG9wY2tleXR5cGUsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsKIAkJ CQlicmVhazsKIAkJCWNhc2UgR0lTVF9ESVNUQU5DRV9QUk9DOgotCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBGTE9BVDhPSUQsIGZhbHNlLAor CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBGTE9B VDhPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwgNSwgSU5URVJOQUxPSUQsIG9w Y2ludHlwZSwKIAkJCQkJCQkJCQkJSU5UMk9JRCwgT0lET0lELCBJTlRFUk5BTE9JRCk7CiAJ CQkJYnJlYWs7CkBAIC0xNDMsMTMgKzE0MywyMSBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xh c3NvaWQpCiAJCQkJb2sgPSBjaGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9TT1JUU1VQUE9SVF9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lE T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJO QUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNUX1NUUkFUTlVNX1BST0M6Ci0JCQkJ b2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQs IHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIElOVDJPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlQyT0lEKTsK IAkJCQlicmVhazsKKwkJCWNhc2UgR0lTVF9JTlRFUlNFQ1RfUFJPQzoKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSW52YWxpZE9pZCwgZmFs c2UsIHRydWUsCisJCQkJCQkJCQkJCTIsIDIsIG9wY2ludHlwZSwgb3BjaW50eXBlKTsKKwkJ CQlicmVhazsKKwkJCWNhc2UgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQzoKKwkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgb3BjaW50eXBlLCB0 cnVlLCB0cnVlLAorCQkJCQkJCQkJCQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CisJ CQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCkBAIC0yNzEsNyArMjc5 LDggQEAgZ2lzdHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJ U1RBTkNFX1BST0MgfHwgaSA9PSBHSVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9D T01QUkVTU19QUk9DIHx8IGkgPT0gR0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0g R0lTVF9PUFRJT05TX1BST0MgfHwgaSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJ CWkgPT0gR0lTVF9TVFJBVE5VTV9QUk9DKQorCQkJaSA9PSBHSVNUX1NUUkFUTlVNX1BST0Mg fHwgaSA9PSBHSVNUX0lOVEVSU0VDVF9QUk9DIHx8CisJCQlpID09IEdJU1RfV0lUSE9VVF9Q T1JUSU9OX1BST0MpCiAJCQljb250aW51ZTsJCQkvKiBvcHRpb25hbCBtZXRob2RzICovCiAJ CWVyZXBvcnQoSU5GTywKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLApAQCAtMzQ0LDYgKzM1Myw4IEBAIGdpc3RhZGp1c3RtZW1iZXJzKE9pZCBv cGZhbWlseW9pZCwKIAkJCWNhc2UgR0lTVF9PUFRJT05TX1BST0M6CiAJCQljYXNlIEdJU1Rf U09SVFNVUFBPUlRfUFJPQzoKIAkJCWNhc2UgR0lTVF9TVFJBVE5VTV9QUk9DOgorCQkJY2Fz ZSBHSVNUX0lOVEVSU0VDVF9QUk9DOgorCQkJY2FzZSBHSVNUX1dJVEhPVVRfUE9SVElPTl9Q Uk9DOgogCQkJCS8qIE9wdGlvbmFsLCBzbyBmb3JjZSBpdCB0byBiZSBhIHNvZnQgZmFtaWx5 IGRlcGVuZGVuY3kgKi8KIAkJCQlvcC0+cmVmX2lzX2hhcmQgPSBmYWxzZTsKIAkJCQlvcC0+ cmVmX2lzX2ZhbWlseSA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGFzaC9oYXNodmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxp ZGF0ZS5jCmluZGV4IDY2YTNiN2I0OWFkLi4zYThiZDYzNWIzOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKQEAgLTEwNCwxMSArMTA0LDExIEBAIGhhc2h2 YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVt KQogCQl7CiAJCQljYXNlIEhBU0hTVEFOREFSRF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1w cm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCB0cnVlLAorCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBm YWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBl KTsKIAkJCQlicmVhazsKIAkJCWNhc2UgSEFTSEVYVEVOREVEX1BST0M6Ci0JCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDhPSUQsIHRydWUs CisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElO VDhPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBwcm9jZm9ybS0+YW1wcm9j bGVmdHR5cGUsIElOVDhPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBIQVNIT1BUSU9OU19Q Uk9DOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMKaW5kZXggMzJiYjQ3 N2YzMjguLmIxMDMwOGI5YjY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5k ZXgvYW12YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlk YXRlLmMKQEAgLTE0OSw3ICsxNDksNyBAQCBpZGVudGlmeV9vcGZhbWlseV9ncm91cHMoQ2F0 Q0xpc3QgKm9wcmxpc3QsIENhdENMaXN0ICpwcm9jbGlzdCkKICAqIEluIGFueSBjYXNlIHRo ZSBmdW5jdGlvbiByZXN1bHQgdHlwZSBtdXN0IG1hdGNoIHJlc3R5cGUgZXhhY3RseS4KICAq LwogYm9vbAotY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlw ZSwgYm9vbCBleGFjdCwKK2NoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lk IHJlc3R5cGUsIGJvb2wgcmV0c2V0LCBib29sIGV4YWN0LAogCQkJCQkgICBpbnQgbWluYXJn cywgaW50IG1heGFyZ3MsLi4uKQogewogCWJvb2wJCXJlc3VsdCA9IHRydWU7CkBAIC0xNjMs OCArMTYzLDkgQEAgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVz dHlwZSwgYm9vbCBleGFjdCwKIAkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsKIAlwcm9jZm9ybSA9IChGb3JtX3BnX3Byb2Mp IEdFVFNUUlVDVCh0cCk7CiAKLQlpZiAocHJvY2Zvcm0tPnByb3JldHR5cGUgIT0gcmVzdHlw ZSB8fCBwcm9jZm9ybS0+cHJvcmV0c2V0IHx8Ci0JCXByb2Nmb3JtLT5wcm9uYXJncyA8IG1p bmFyZ3MgfHwgcHJvY2Zvcm0tPnByb25hcmdzID4gbWF4YXJncykKKwlpZiAoKHByb2Nmb3Jt LT5wcm9yZXR0eXBlICE9IHJlc3R5cGUgJiYgT2lkSXNWYWxpZChyZXN0eXBlKSkKKwkJfHwg cHJvY2Zvcm0tPnByb3JldHNldCAhPSByZXRzZXQgfHwgcHJvY2Zvcm0tPnByb25hcmdzIDwg bWluYXJncworCQl8fCBwcm9jZm9ybS0+cHJvbmFyZ3MgPiBtYXhhcmdzKQogCQlyZXN1bHQg PSBmYWxzZTsKIAogCXZhX3N0YXJ0KGFwLCBtYXhhcmdzKTsKQEAgLTE5MSw3ICsxOTIsNyBA QCBjaGVja19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29s IGV4YWN0LAogYm9vbAogY2hlY2tfYW1vcHRzcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCkK IHsKLQlyZXR1cm4gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShmdW5jaWQsIFZPSURPSUQsIHRy dWUsIDEsIDEsIElOVEVSTkFMT0lEKTsKKwlyZXR1cm4gY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShmdW5jaWQsIFZPSURPSUQsIGZhbHNlLCB0cnVlLCAxLCAxLCBJTlRFUk5BTE9JRCk7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlk YXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMKaW5kZXgg ZTlkNGNkNjBkZTMuLjA0ZTQzZWYxZGNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvbmJ0cmVlL25idHZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnR2YWxpZGF0ZS5jCkBAIC05MSwxNiArOTEsMTYgQEAgYnR2YWxpZGF0ZShPaWQgb3Bj bGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNl IEJUT1JERVJfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgSU5UNE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJ CQkJCTIsIDIsIHByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZSwKIAkJCQkJCQkJCQkJcHJvY2Zv cm0tPmFtcHJvY3JpZ2h0dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJUU09SVFNVUFBP UlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgVk9JRE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTEs IDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRJTlJBTkdFX1BST0M6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJP T0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQk1LCA1LAogCQkJ CQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUsCiAJCQkJCQkJCQkJCXByb2Nmb3Jt LT5hbXByb2NsZWZ0dHlwZSwKQEAgLTEwOCw3ICsxMDgsNyBAQCBidHZhbGlkYXRlKE9pZCBv cGNsYXNzb2lkKQogCQkJCQkJCQkJCQlCT09MT0lELCBCT09MT0lEKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgQlRFUVVBTElNQUdFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0 cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBPSURPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBC VE9QVElPTlNfUFJPQzoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qv c3BndmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUu YwppbmRleCA4NTBjM2I2NzVkNi4uZjdhMzk3Y2I4Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMKQEAgLTEwOSw3ICsxMDksNyBAQCBzcGd2YWxpZGF0 ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7 CiAJCQljYXNlIFNQR0lTVF9DT05GSUdfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgZmFsc2Us IHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJ CQkJY29uZmlnSW4uYXR0VHlwZSA9IHByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZTsKIAkJCQlt ZW1zZXQoJmNvbmZpZ091dCwgMCwgc2l6ZW9mKGNvbmZpZ091dCkpOwpAQCAtMTY0LDExICsx NjQsMTEgQEAgc3BndmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQljYXNlIFNQR0lTVF9D SE9PU0VfUFJPQzoKIAkJCWNhc2UgU1BHSVNUX1BJQ0tTUExJVF9QUk9DOgogCQkJY2FzZSBT UEdJU1RfSU5ORVJfQ09OU0lTVEVOVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwg dHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJ CQlicmVhazsKIAkJCWNhc2UgU1BHSVNUX0xFQUZfQ09OU0lTVEVOVF9QUk9DOgotCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0 cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQs IElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1BHSVNUX0NPTVBSRVNTX1BS T0M6CkBAIC0xNzcsNyArMTc3LDcgQEAgc3BndmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJ CQkJCW9rID0gZmFsc2U7CiAJCQkJZWxzZQogCQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywKLQkJCQkJCQkJCQkJCWNvbmZpZ091dExlYWZUeXBl LCB0cnVlLAorCQkJCQkJCQkJCQkJY29uZmlnT3V0TGVhZlR5cGUsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQkJMSwgMSwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgU1BHSVNUX09QVElPTlNfUFJPQzoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9tdWx0aXJhbmdldHlwZXMuYwppbmRleCA1NThjNmMxOGMzNC4uOGY3MjJiNjcyMmQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVzLmMKQEAgLTEyMjUsNiAr MTIyNSw3NyBAQCBtdWx0aXJhbmdlX21pbnVzX2ludGVybmFsKE9pZCBtbHRybmd0eXBvaWQs IFR5cGVDYWNoZUVudHJ5ICpyYW5nZXR5cCwKIAlyZXR1cm4gbWFrZV9tdWx0aXJhbmdlKG1s dHJuZ3R5cG9pZCwgcmFuZ2V0eXAsIHJhbmdlX2NvdW50MywgcmFuZ2VzMyk7CiB9CiAKKy8q CisgKiBtdWx0aXJhbmdlIG1pbnVzIGJ1dCByZXR1cm5pbmcgdGhlIHJlc3VsdCBhcyBhIFNS RiwKKyAqIHdpdGggbm8gcm93cyBpZiB0aGUgcmVzdWx0IHdvdWxkIGJlIGVtcHR5LgorICov CitEYXR1bQorbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykK K3sKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCisJaWYgKCFTUkZfSVNfRklSU1RDQUxMKCkpCisJeworCQkvKiBXZSBuZXZlciBo YXZlIG1vcmUgdGhhbiBvbmUgcmVzdWx0ICovCisJCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9T RVRVUCgpOworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7CisJfQorCWVsc2UKKwl7CisJ CU11bHRpcmFuZ2VUeXBlICptcjE7CisJCU11bHRpcmFuZ2VUeXBlICptcjI7CisJCU9pZAkJ CW1sdHJuZ3R5cG9pZDsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCQlUeXBlQ2Fj aGVFbnRyeSAqcmFuZ2V0eXA7CisJCWludDMyCQlyYW5nZV9jb3VudDE7CisJCWludDMyCQly YW5nZV9jb3VudDI7CisJCVJhbmdlVHlwZSAqKnJhbmdlczE7CisJCVJhbmdlVHlwZSAqKnJh bmdlczI7CisJCU11bHRpcmFuZ2VUeXBlICptcjsKKworCQlmdW5jY3R4ID0gU1JGX0ZJUlNU Q0FMTF9JTklUKCk7CisKKwkJLyoKKwkJICogc3dpdGNoIHRvIG1lbW9yeSBjb250ZXh0IGFw cHJvcHJpYXRlIGZvciBtdWx0aXBsZSBmdW5jdGlvbiBjYWxscworCQkgKi8KKwkJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhmdW5jY3R4LT5tdWx0aV9jYWxsX21lbW9y eV9jdHgpOworCisJCS8qIGdldCBhcmdzLCBkZXRvYXN0aW5nIGludG8gbXVsdGktY2FsbCBt ZW1vcnkgY29udGV4dCAqLworCQltcjEgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDApOwor CQltcjIgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDEpOworCisJCW1sdHJuZ3R5cG9pZCA9 IE11bHRpcmFuZ2VUeXBlR2V0T2lkKG1yMSk7CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVf Y2FjaGUobWx0cm5ndHlwb2lkLCBUWVBFQ0FDSEVfTVVMVElSQU5HRV9JTkZPKTsKKwkJaWYg KHR5cGNhY2hlLT5ybmd0eXBlID09IE5VTEwpCisJCQllbG9nKEVSUk9SLCAidHlwZSAldSBp cyBub3QgYSBtdWx0aXJhbmdlIHR5cGUiLCBtbHRybmd0eXBvaWQpOworCQlyYW5nZXR5cCA9 IHR5cGNhY2hlLT5ybmd0eXBlOworCisJCWlmIChNdWx0aXJhbmdlSXNFbXB0eShtcjEpIHx8 IE11bHRpcmFuZ2VJc0VtcHR5KG1yMikpCisJCQltciA9IG1yMTsKKwkJZWxzZQorCQl7CisJ CQltdWx0aXJhbmdlX2Rlc2VyaWFsaXplKHJhbmdldHlwLCBtcjEsICZyYW5nZV9jb3VudDEs ICZyYW5nZXMxKTsKKwkJCW11bHRpcmFuZ2VfZGVzZXJpYWxpemUocmFuZ2V0eXAsIG1yMiwg JnJhbmdlX2NvdW50MiwgJnJhbmdlczIpOworCisJCQltciA9IG11bHRpcmFuZ2VfbWludXNf aW50ZXJuYWwobWx0cm5ndHlwb2lkLAorCQkJCQkJCQkJCSAgIHJhbmdldHlwLAorCQkJCQkJ CQkJCSAgIHJhbmdlX2NvdW50MSwKKwkJCQkJCQkJCQkgICByYW5nZXMxLAorCQkJCQkJCQkJ CSAgIHJhbmdlX2NvdW50MiwKKwkJCQkJCQkJCQkgICByYW5nZXMyKTsKKwkJfQorCisJCU1l bW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKworCQlmdW5jY3R4ID0gU1JGX1BF UkNBTExfU0VUVVAoKTsKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5KG1yKSkKKwkJCVNSRl9S RVRVUk5fRE9ORShmdW5jY3R4KTsKKwkJZWxzZQorCQkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNj dHgsIE11bHRpcmFuZ2VUeXBlUEdldERhdHVtKG1yKSk7CisJfQorfQorCiAvKiBtdWx0aXJh bmdlIGludGVyc2VjdGlvbiAqLwogRGF0dW0KIG11bHRpcmFuZ2VfaW50ZXJzZWN0KFBHX0ZV TkNUSU9OX0FSR1MpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0 eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwppbmRleCAyZDk0 YTZiODc3NC4uY2QwZmZlMjMxZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9yYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMu YwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRl ICJjb21tb24vaGFzaGZuLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgImxp YnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9k ZXMvbWFrZWZ1bmNzLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW5jbHVkZSAib3B0aW1pemVy L2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvY29zdC5oIgogI2luY2x1ZGUgIm9w dGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1 ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMTIxMyw2ICsxMjE1LDE2NyBAQCByYW5nZV9z cGxpdF9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIGNvbnN0IFJhbmdlVHlw ZSAqcjEsIGNvbnN0IFJhbmdlVAogCXJldHVybiBmYWxzZTsKIH0KIAorLyogc3VidHJhY3Rp b24gYnV0IHJldHVybmluZyBhbiBhcnJheSB0byBhY2NvbW1vZGF0ZSBzcGxpdHMgKi8KK0Rh dHVtCityYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0eXBl ZGVmIHN0cnVjdCB7CisJCVJhbmdlVHlwZSAgKnJzWzJdOworCQlpbnQJCQluOworCX0gcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7 CisJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisJTWVtb3J5Q29udGV4dCBv bGRjb250ZXh0OworCisJLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9m IHRoZSBmdW5jdGlvbiAqLworCWlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisJeworCQlSYW5n ZVR5cGUJICAgKnIxOworCQlSYW5nZVR5cGUJICAgKnIyOworCQlPaWQJCQkJcm5ndHlwaWQ7 CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKworCQkvKiBjcmVhdGUgYSBmdW5jdGlv biBjb250ZXh0IGZvciBjcm9zcy1jYWxsIHBlcnNpc3RlbmNlICovCisJCWZ1bmNjdHggPSBT UkZfRklSU1RDQUxMX0lOSVQoKTsKKworCQkvKgorCQkgKiBzd2l0Y2ggdG8gbWVtb3J5IGNv bnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1bmN0aW9uIGNhbGxzCisJCSAqLwor CQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2Nh bGxfbWVtb3J5X2N0eCk7CisKKwkJcjEgPSBQR19HRVRBUkdfUkFOR0VfUCgwKTsKKwkJcjIg PSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKworCQkvKiBEaWZmZXJlbnQgdHlwZXMgc2hvdWxk IGJlIHByZXZlbnRlZCBieSBBTllSQU5HRSBtYXRjaGluZyBydWxlcyAqLworCQlpZiAoUmFu Z2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRPaWQocjIpKQorCQkJZWxvZyhFUlJP UiwgInJhbmdlIHR5cGVzIGRvIG5vdCBtYXRjaCIpOworCisJCS8qIGFsbG9jYXRlIG1lbW9y eSBmb3IgdXNlciBjb250ZXh0ICovCisJCWZjdHggPSAocmFuZ2Vfd2l0aG91dF9wb3J0aW9u X2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCkpOwor CisJCS8qCisJCSAqIEluaXRpYWxpemUgc3RhdGUuCisJCSAqIFdlIGNhbid0IHN0b3JlIHRo ZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRyYSBiZWNhdXNlIHRoZSBjYWxsZXIKKwkJICog dXNlcyB0aGF0IGZvciB0aGUgU1JGIHN0YXRlLgorCQkgKi8KKwkJcm5ndHlwaWQgPSBSYW5n ZVR5cGVHZXRPaWQocjEpOworCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKHJuZ3R5 cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7CisJCWlmICh0eXBjYWNoZS0+cm5nZWxlbXR5 cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBhIHJhbmdlIHR5 cGUiLCBybmd0eXBpZCk7CisJCXJhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbCh0eXBj YWNoZSwgcjEsIHIyLCBmY3R4LT5ycywgJmZjdHgtPm4pOworCisJCWZ1bmNjdHgtPnVzZXJf ZmN0eCA9IGZjdHg7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKwl9 CisKKwkvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICovCisJ ZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJZmN0eCA9IGZ1bmNjdHgtPnVzZXJf ZmN0eDsKKworCWlmIChmdW5jY3R4LT5jYWxsX2NudHIgPCBmY3R4LT5uKQorCXsKKwkJLyoK KwkJICogV2UgbXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFyYXRlIGxpbmVzCisJCSAqIGJlY2F1 c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRyKys6CisJCSAqLworCQlSYW5nZVR5 cGUgKnJldCA9IGZjdHgtPnJzW2Z1bmNjdHgtPmNhbGxfY250cl07CisJCVNSRl9SRVRVUk5f TkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0ocmV0KSk7CisJfQorCWVsc2UKKwkJ LyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8KKwkJU1JGX1JFVFVSTl9ET05F KGZ1bmNjdHgpOworfQorCisvKgorICogcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFs IC0gU2V0cyBvdXRwdXRzIGFuZCBvdXRwdXRuIHRvIHRoZSByYW5nZXMKKyAqIHJlbWFpbmlu ZyBhbmQgdGhlaXIgY291bnQgKHJlc3BlY3RpdmVseSkgYWZ0ZXIgc3VidHJhY3RpbmcgcjIg ZnJvbSByMS4KKyAqIFRoZSBhcnJheSBzaG91bGQgbmV2ZXIgY29udGFpbiBlbXB0eSByYW5n ZXMuCisgKiBUaGUgb3V0cHV0cyB3aWxsIGJlIG9yZGVyZWQuIFdlIGV4cGVjdCB0aGF0IG91 dHB1dHMgaXMgYW4gYXJyYXkgb2YKKyAqIFJhbmdlVHlwZSBwb2ludGVycywgYWxyZWFkeSBh bGxvY2F0ZWQgd2l0aCB0d28gZWxlbWVudHMuCisgKi8KK3ZvaWQKK3JhbmdlX3dpdGhvdXRf cG9ydGlvbl9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIFJhbmdlVHlwZSAq cjEsCisJCQkJCQkJICAgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBlICoqb3V0cHV0cywgaW50 ICpvdXRwdXRuKQoreworCWludAkJCWNtcF9sMWwyLAorCQkJCWNtcF9sMXUyLAorCQkJCWNt cF91MWwyLAorCQkJCWNtcF91MXUyOworCVJhbmdlQm91bmQJbG93ZXIxLAorCQkJCWxvd2Vy MjsKKwlSYW5nZUJvdW5kCXVwcGVyMSwKKwkJCQl1cHBlcjI7CisJYm9vbAkJZW1wdHkxLAor CQkJCWVtcHR5MjsKKworCXJhbmdlX2Rlc2VyaWFsaXplKHR5cGNhY2hlLCByMSwgJmxvd2Vy MSwgJnVwcGVyMSwgJmVtcHR5MSk7CisJcmFuZ2VfZGVzZXJpYWxpemUodHlwY2FjaGUsIHIy LCAmbG93ZXIyLCAmdXBwZXIyLCAmZW1wdHkyKTsKKworCWlmIChlbXB0eTEpCisJeworCQkv KiBpZiByMSBpcyBlbXB0eSB0aGVuIHIxIC0gcjIgaXMgZW1wdHksIHNvIHJldHVybiB6ZXJv IHJlc3VsdHMgKi8KKwkJKm91dHB1dG4gPSAwOworCQlyZXR1cm47CisJfQorCWVsc2UgaWYg KGVtcHR5MikKKwl7CisJCS8qIHIyIGlzIGVtcHR5IHNvIHRoZSByZXN1bHQgaXMganVzdCBy MSAod2hpY2ggd2Uga25vdyBpcyBub3QgZW1wdHkpICovCisJCW91dHB1dHNbMF0gPSByMTsK KwkJKm91dHB1dG4gPSAxOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBVc2UgdGhlIHNh bWUgbG9naWMgYXMgcmFuZ2VfbWludXNfaW50ZXJuYWwsCisJICogYnV0IHN1cHBvcnQgdGhl IHNwbGl0IGNhc2UKKwkgKi8KKwljbXBfbDFsMiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2Fj aGUsICZsb3dlcjEsICZsb3dlcjIpOworCWNtcF9sMXUyID0gcmFuZ2VfY21wX2JvdW5kcyh0 eXBjYWNoZSwgJmxvd2VyMSwgJnVwcGVyMik7CisJY21wX3UxbDIgPSByYW5nZV9jbXBfYm91 bmRzKHR5cGNhY2hlLCAmdXBwZXIxLCAmbG93ZXIyKTsKKwljbXBfdTF1MiA9IHJhbmdlX2Nt cF9ib3VuZHModHlwY2FjaGUsICZ1cHBlcjEsICZ1cHBlcjIpOworCisJaWYgKGNtcF9sMWwy IDwgMCAmJiBjbXBfdTF1MiA+IDApCisJeworCQlsb3dlcjIuaW5jbHVzaXZlID0gIWxvd2Vy Mi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dlciA9IGZhbHNlOwkvKiBpdCB3aWxsIGJlY29t ZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0cHV0c1swXSA9IG1ha2VfcmFuZ2UodHlwY2Fj aGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNlLCBOVUxMKTsKKworCQl1cHBlcjIuaW5jbHVz aXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7CisJCXVwcGVyMi5sb3dlciA9IHRydWU7CS8qIGl0 IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3VuZCAqLworCQlvdXRwdXRzWzFdID0gbWFrZV9y YW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVyMSwgZmFsc2UsIE5VTEwpOworCisJCSpv dXRwdXRuID0gMjsKKwl9CisJZWxzZSBpZiAoY21wX2wxdTIgPiAwIHx8IGNtcF91MWwyIDwg MCkKKwl7CisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91dHB1dG4gPSAxOworCX0KKwllbHNl IGlmIChjbXBfbDFsMiA+PSAwICYmIGNtcF91MXUyIDw9IDApCisJeworCQkqb3V0cHV0biA9 IDA7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyIDw9IDAgJiYgY21wX3UxbDIgPj0gMCAmJiBj bXBfdTF1MiA8PSAwKQorCXsKKwkJbG93ZXIyLmluY2x1c2l2ZSA9ICFsb3dlcjIuaW5jbHVz aXZlOworCQlsb3dlcjIubG93ZXIgPSBmYWxzZTsJLyogaXQgd2lsbCBiZWNvbWUgdGhlIHVw cGVyIGJvdW5kICovCisJCW91dHB1dHNbMF0gPSBtYWtlX3JhbmdlKHR5cGNhY2hlLCAmbG93 ZXIxLCAmbG93ZXIyLCBmYWxzZSwgTlVMTCk7CisJCSpvdXRwdXRuID0gMTsKKwl9CisJZWxz ZSBpZiAoY21wX2wxbDIgPj0gMCAmJiBjbXBfdTF1MiA+PSAwICYmIGNtcF9sMXUyIDw9IDAp CisJeworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7CisJCXVwcGVy Mi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3VuZCAqLwor CQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVyMSwg ZmFsc2UsIE5VTEwpOworCQkqb3V0cHV0biA9IDE7CisJfQorCWVsc2UKKwl7CisJCWVsb2co RVJST1IsICJ1bmV4cGVjdGVkIGNhc2UgaW4gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIik7CisJ fQorfQorCiAvKiByYW5nZSAtPiByYW5nZSBhZ2dyZWdhdGUgZnVuY3Rpb25zICovCiAKIERh dHVtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAppbmRleCA0MjRhYjYzZmE1YS4uNjEwMzk1 NDJkYWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaApAQCAtMjgsOCArMjgsOCBAQCB0 eXBlZGVmIHN0cnVjdCBPcEZhbWlseU9wRnVuY0dyb3VwCiAKIC8qIEZ1bmN0aW9ucyBpbiBh Y2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICovCiBleHRlcm4gTGlzdCAqaWRlbnRpZnlfb3Bm YW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlzdCAqcHJvY2xpc3QpOwot ZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVz dHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdz LC4uLik7CitleHRlcm4gYm9vbCBjaGVja19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQs IE9pZCByZXN0eXBlLCBib29sIHJldHNldCwKKwkJCQkJCQkJICAgYm9vbCBleGFjdCwgaW50 IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CiBleHRlcm4gYm9vbCBjaGVja19hbW9wdHNw cm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKTsKIGV4dGVybiBib29sIGNoZWNrX2Ftb3Bfc2ln bmF0dXJlKE9pZCBvcG5vLCBPaWQgcmVzdHlwZSwKIAkJCQkJCQkJIE9pZCBsZWZ0dHlwZSwg T2lkIHJpZ2h0dHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5o IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAppbmRleCAyMmRkMDRjMTQxOC4uMTYzNWFi MDBhZDIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL2dpc3QuaApAQCAtNDAsNyArNDAsOSBAQAogI2RlZmluZSBHSVNU X09QVElPTlNfUFJPQwkJCQkxMAogI2RlZmluZSBHSVNUX1NPUlRTVVBQT1JUX1BST0MJCQkx MQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BST0MJCQkJMTIKLSNkZWZpbmUgR0lTVE5Qcm9j cwkJCQkJMTIKKyNkZWZpbmUgR0lTVF9JTlRFUlNFQ1RfUFJPQwkJCQkxMworI2RlZmluZSBH SVNUX1dJVEhPVVRfUE9SVElPTl9QUk9DCQkxNAorI2RlZmluZSBHSVNUTlByb2NzCQkJCQkx NAogCiAvKgogICogUGFnZSBvcGFxdWUgZGF0YSBpbiBhIEdpU1QgaW5kZXggcGFnZS4KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCA1ZDdmZTI5MmJmNi4uN2I5NDA3NTQz YmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAgLTUwOSw2ICs1MDksOSBA QAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnMTIn LAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCit7IGFtcHJvY2Zh bWlseSA9PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JveCcsCisgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcxMycsCisgIGFtcHJvYyA9 PiAnYm94X2ludGVyc2VjdChib3gsYm94KScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0 L3BvbHlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BvbHlnb24nLAogICBhbXByb2NyaWdo dHR5cGUgPT4gJ3BvbHlnb24nLCBhbXByb2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ2dp c3RfcG9seV9jb25zaXN0ZW50JyB9LApAQCAtNjA5LDYgKzYxMiwxMiBAQAogeyBhbXByb2Nm YW1pbHkgPT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdl JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTIn LAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCit7IGFtcHJvY2Zh bWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2Un LAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMycs CisgIGFtcHJvYyA9PiAncmFuZ2VfaW50ZXJzZWN0KGFueXJhbmdlLGFueXJhbmdlKScgfSwK K3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3JhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55cmFuZ2UnLCBhbXByb2Nu dW0gPT4gJzE0JywKKyAgYW1wcm9jID0+ICdyYW5nZV93aXRob3V0X3BvcnRpb24oYW55cmFu Z2UsYW55cmFuZ2UpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbmV0d29ya19vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW5l dCcsIGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnaW5ldF9naXN0X2NvbnNpc3Rl bnQnIH0sCkBAIC02NDksNiArNjU4LDEyIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9t dWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAg YW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMics CiAgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11 bHRpcmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXBy b2NudW0gPT4gJzEzJywKKyAgYW1wcm9jID0+ICdtdWx0aXJhbmdlX2ludGVyc2VjdChhbnlt dWx0aXJhbmdlLGFueW11bHRpcmFuZ2UpJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2dpc3Qv bXVsdGlyYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAnMTQn LAorICBhbXByb2MgPT4gJ211bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKGFueW11bHRpcmFu Z2UsYW55bXVsdGlyYW5nZSknIH0sCiAKICMgZ2luCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lu L2FycmF5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlhcnJheScsCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCA3YzBiNzRmZTA1NS4uM2JhNjk0MjQ2ODIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTA3MzIsNiArMTA3MzIsMTAgQEAKIHsgb2lkID0+ ICczODY5JywKICAgcHJvbmFtZSA9PiAncmFuZ2VfbWludXMnLCBwcm9yZXR0eXBlID0+ICdh bnlyYW5nZScsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnlyYW5nZSBhbnlyYW5nZScsIHByb3Ny YyA9PiAncmFuZ2VfbWludXMnIH0sCit7IG9pZCA9PiAnODQwOCcsIGRlc2NyID0+ICdyZW1v dmUgcG9ydGlvbiBmcm9tIHJhbmdlJywKKyAgcHJvbmFtZSA9PiAncmFuZ2Vfd2l0aG91dF9w b3J0aW9uJywgcHJvcm93cyA9PiAnMicsCisgIHByb3JldHNldCA9PiAndCcsIHByb3JldHR5 cGUgPT4gJ2FueXJhbmdlJywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdl JywgcHJvc3JjID0+ICdyYW5nZV93aXRob3V0X3BvcnRpb24nIH0sCiB7IG9pZCA9PiAnMzg3 MCcsIGRlc2NyID0+ICdsZXNzLWVxdWFsLWdyZWF0ZXInLAogICBwcm9uYW1lID0+ICdyYW5n ZV9jbXAnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueXJh bmdlIGFueXJhbmdlJywgcHJvc3JjID0+ICdyYW5nZV9jbXAnIH0sCkBAIC0xMTAxOSw2ICsx MTAyMywxMCBAQAogeyBvaWQgPT4gJzQyNzEnLAogICBwcm9uYW1lID0+ICdtdWx0aXJhbmdl X21pbnVzJywgcHJvcmV0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCiAgIHByb2FyZ3R5cGVz ID0+ICdhbnltdWx0aXJhbmdlIGFueW11bHRpcmFuZ2UnLCBwcm9zcmMgPT4gJ211bHRpcmFu Z2VfbWludXMnIH0sCit7IG9pZCA9PiAnODQwNicsIGRlc2NyID0+ICdyZW1vdmUgcG9ydGlv biBmcm9tIG11bHRpcmFuZ2UnLAorICBwcm9uYW1lID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbicsIHByb3Jvd3MgPT4gJzEnLAorICBwcm9yZXRzZXQgPT4gJ3QnLCBwcm9yZXR0 eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueW11bHRpcmFu Z2UgYW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24nIH0sCiB7IG9pZCA9PiAnNDI3MicsCiAgIHByb25hbWUgPT4gJ211bHRpcmFuZ2VfaW50 ZXJzZWN0JywgcHJvcmV0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCiAgIHByb2FyZ3R5cGVz ID0+ICdhbnltdWx0aXJhbmdlIGFueW11bHRpcmFuZ2UnLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBl cy5oCmluZGV4IDJiNTc0ODczY2VmLi5lMWIyNTZiNjVmNCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3Jhbmdl dHlwZXMuaApAQCAtMTY0LDUgKzE2NCw3IEBAIGV4dGVybiBSYW5nZVR5cGUgKm1ha2VfZW1w dHlfcmFuZ2UoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlKTsKIGV4dGVybiBib29sIHJhbmdl X3NwbGl0X2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3QgUmFuZ2VU eXBlICpyMSwKIAkJCQkJCQkJIGNvbnN0IFJhbmdlVHlwZSAqcjIsIFJhbmdlVHlwZSAqKm91 dHB1dDEsCiAJCQkJCQkJCSBSYW5nZVR5cGUgKipvdXRwdXQyKTsKK2V4dGVybiB2b2lkIHJh bmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUs IFJhbmdlVHlwZSAqcjEsCisJCQkJCQkJCQlSYW5nZVR5cGUgKnIyLCBSYW5nZVR5cGUgKipv dXRwdXRzLCBpbnQgKm91dHB1dG4pOwogCiAjZW5kaWYJCQkJCQkJLyogUkFOR0VUWVBFU19I ICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0 eXBlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5v dXQKaW5kZXggYzYzNjNlYmViMjQuLjExYWEyODJmZjM1IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9tdWx0aXJhbmdldHlwZXMub3V0CkBAIC0yMjAwLDYgKzIyMDAs MTIyIEBAIFNFTEVDVCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQs NSkpIC0gbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwCiAge1sxLDIpLFs0LDUpfQogKDEg cm93KQogCistLSB3aXRob3V0X3BvcnRpb24KK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKCksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCBy b3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZSgpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisK K1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKCkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKX0KKygxIHJvdykK KworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVt cmFuZ2UoMSwyKSwgbnVtcmFuZ2UoMyw0KSksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg e1sxLDIpLFszLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSwgbnVtbXVsdGlyYW5nZShudW1y YW5nZSgxLDIpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSwgbnVtbXVsdGlyYW5n ZShudW1yYW5nZSgyLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7CisgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cisge1syLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5n ZSgyLDMpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFszLDQpfQorKDEgcm93KQorCitTRUxFQ1QgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDQpKSwg bnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDgpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDQpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDIpKSk7CisgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1syLDQpfQor KDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDgpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDIpLCBudW1y YW5nZSgzLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisge1syLDMpLFs0LDgpfQorKDEgcm93KQorCitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDgp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDMpLCBudW1yYW5nZSg1LG51bGwpKSk7Cisg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge1sxLDIpLFszLDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwKSkpOworIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1 KX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMiw0KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKworU0VM RUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2Uo MSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMyw1KSkpOwor IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHtbMSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9w b3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwz KSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw5KSkpOworIG11 bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHtbMSwyKX0KKygxIHJvdykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoOCw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9u IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJv dykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2Uo LTIsMCksIG51bXJhbmdlKDgsOSkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzQsNSl9CisoMSByb3cp CisKIC0tIGludGVyc2VjdGlvbgogU0VMRUNUIG51bW11bHRpcmFuZ2UoKSAqIG51bW11bHRp cmFuZ2UoKTsKICA/Y29sdW1uPyAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcmFuZ2V0eXBlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jhbmdl dHlwZXMub3V0CmluZGV4IGE3Y2MyMjBiZjBkLi5hYjIzMDllOGMxZCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5cGVzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CkBAIC00ODEsNiArNDgxLDYwIEBA IHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdl KDAuMCwxMjAuMiwnKF0nKSk7CiAgZW1wdHkKICgxIHJvdykKIAorc2VsZWN0IHJhbmdlX3dp dGhvdXRfcG9ydGlvbignZW1wdHknOjpudW1yYW5nZSwgbnVtcmFuZ2UoMi4wLCAzLjApKTsK KyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAg cm93cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIu MiksICdlbXB0eSc6Om51bXJhbmdlKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjEsMi4yKQorKDEgcm93KQorCitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgbnVtcmFuZ2UoMi4wLCAz LjApKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFsxLjEsMi4wKQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9u KG51bXJhbmdlKDEuMSwgMi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKKyByYW5nZV93aXRo b3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjEsMi4yKQorKDEg cm93KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4y LCdbXScpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjApCisoMSByb3cpCisKK3NlbGVj dCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4wLCAzLjApLCBudW1yYW5nZSgx LjUsIDIuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgWzEuMCwxLjUpCisgWzIuMCwzLjApCisoMiByb3dzKQorCitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2Uo MTEwLjAsMTIwLjIsJyhdJykpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgWzEwLjEsMTIuMl0KKygxIHJvdykKKworc2VsZWN0IHJhbmdl X3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDAu MCwxMjAuMiwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41LDIuMCwnKF0nKSk7CisgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4wLDEu NV0KKyAoMi4wLDMuMF0KKygyIHJvd3MpCisKIHNlbGVjdCBudW1yYW5nZSg0LjUsIDUuNSwg J1tdJykgJiYgbnVtcmFuZ2UoNS41LCA2LjUpOwogID9jb2x1bW4/IAogLS0tLS0tLS0tLQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwKaW5kZXggNDFkNTUy NDI4NWEuLjBiZmE3MWNhY2EwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9t dWx0aXJhbmdldHlwZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFu Z2V0eXBlcy5zcWwKQEAgLTQxNCw2ICs0MTQsMjggQEAgU0VMRUNUIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwzKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdl KDIsOSkKIFNFTEVDVCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQs NSkpIC0gbnVtbXVsdGlyYW5nZShudW1yYW5nZSg4LDkpKTsKIFNFTEVDVCBudW1tdWx0aXJh bmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpIC0gbnVtbXVsdGlyYW5nZShudW1y YW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5KSk7CiAKKy0tIHdpdGhvdXRfcG9ydGlvbgorU0VM RUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVs dGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKCksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51 bW11bHRpcmFuZ2UoKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVt bXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSgzLDQpKSwgbnVtbXVsdGlyYW5n ZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs MikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDMsNCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMikpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMykpKTsK K1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOCkpKTsKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMikpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDAsMiksIG51bXJhbmdlKDMsNCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJh bmdlKG51bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkpKTsKK1NFTEVDVCBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJh bmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApKSk7CitTRUxFQ1QgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBu dW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDQpKSk7CitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIp LCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUpKSk7CitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDkpKSk7CitT RUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5n ZSgxLDMpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDkpKSk7 CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1y YW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSg4LDkp KSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgt MiwwKSwgbnVtcmFuZ2UoOCw5KSkpOworCiAtLSBpbnRlcnNlY3Rpb24KIFNFTEVDVCBudW1t dWx0aXJhbmdlKCkgKiBudW1tdWx0aXJhbmdlKCk7CiBTRUxFQ1QgbnVtbXVsdGlyYW5nZSgp ICogbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmFu Z2V0eXBlcy5zcWwKaW5kZXggYTVlY2RmNTM3MmYuLjdmYzgwNWQ5ZmZhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbApAQCAtMTA3LDYgKzEwNywxNiBAQCBzZWxlY3Qg bnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJykgLSBudW1yYW5nZSgyLjAsIDMuMCk7CiBzZWxlY3Qg cmFuZ2VfbWludXMobnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwx MjAuMiwnKF0nKSk7CiBzZWxlY3QgcmFuZ2VfbWludXMobnVtcmFuZ2UoMTAuMSwxMi4yLCdb XScpLCBudW1yYW5nZSgwLjAsMTIwLjIsJyhdJykpOwogCitzZWxlY3QgcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKCdlbXB0eSc6Om51bXJhbmdlLCBudW1yYW5nZSgyLjAsIDMuMCkpOworc2Vs ZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIuMiksICdlbXB0eSc6 Om51bXJhbmdlKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4x LCAyLjIpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1yYW5nZSgxLjEsIDIuMiksIG51bXJhbmdlKDIuMiwgMy4wKSk7CitzZWxlY3Qg cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yLCdbXScpLCBudW1yYW5n ZSgyLjAsIDMuMCkpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgx LjAsIDMuMCksIG51bXJhbmdlKDEuNSwgMi4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9w b3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMTEwLjAsMTIwLjIs JyhdJykpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxMC4xLDEy LjIsJ1tdJyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CitzZWxlY3QgcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMCwzLjAsJ1tdJyksIG51bXJhbmdlKDEuNSwyLjAs JyhdJykpOworCiBzZWxlY3QgbnVtcmFuZ2UoNC41LCA1LjUsICdbXScpICYmIG51bXJhbmdl KDUuNSwgNi41KTsKIHNlbGVjdCBudW1yYW5nZSgxLjAsIDIuMCkgPDwgbnVtcmFuZ2UoMy4w LCA0LjApOwogc2VsZWN0IG51bXJhbmdlKDEuMCwgMy4wLCdbXScpIDw8IG51bXJhbmdlKDMu MCwgNC4wLCdbXScpOwotLSAKMi40Mi4wCgo= --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/x-patch; charset=UTF-8; name="v41-0005-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v41-0005-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSA0YmVhMDlmYTRlNWVlYjM5NDkxNmRkMjc0NjdiMGM4N2Y5YmEyNTRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0MSA1LzddIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JU SU9OIE9GCgotIEFkZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRh eC4gVGhlIGJvdW5kcyBtdXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4g cmVmZXJlbmNlcywgc3VicXVlcmllcywgZXRjLiBCdXQgd2UKICBwZXJtaXQgdGhlIG1hZ2lj IFVOQk9VTkRFRCBrZXl3b3JkIGFzIHRoZSBGUk9NIG9yIHRoZSBUTyAob3IgYm90aCkKICB0 byBwZXJmb3JtIGFuIHVuYm91bmRlZCB1cGRhdGUvZGVsZXRlLiBXZSBhbHNvIGFjY2VwdCBm dW5jdGlvbnMgbGlrZQogIE5PVygpLgotIEFkZGVkIGxvZ2ljIHRvIGV4ZWN1dG9yIHRvIGlu c2VydCBuZXcgcm93cyBmb3IgdGhlICJsZWZ0b3ZlciIgcGFydCBvZgogIGEgcmVjb3JkIHRv dWNoZWQgYnkgYSBGT1IgUE9SVElPTiBPRiBxdWVyeS4KLSBBZGRlZCB0Z190ZW1wb3JhbCBk ZXNjcmlwdG9yIHRvIHRoZSBUcmlnZ2VyRGF0YSBzdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvCiAg dHJpZ2dlciBmdW5jdGlvbnMuIE91ciB0cmlnZ2VycyB1c2UgdGhpcyB0byBsZWFybiB3aGF0 IGJvdW5kcyB3ZXJlCiAgZ2l2ZW4gaW4gdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZS4KLSBE b2N1bWVudGVkIEZPUiBQT1JUSU9OIE9GLgotIERvY3VtZW50ZWQgdGdfdGVtcG9yYWwgc3Ry dWN0LgotIEFkZGVkIHRlc3RzLgotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCAgICB8ICAgNSArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbCAgICAgfCAgIDQgKwogY29udHJpYi9zZXBnc3FsL3Byb2MuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBjb250cmliL3VuYWNjZW50L3VuYWNjZW50 LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZG9jL3NyYy9zZ21sL3JlZi9kZWxl dGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDcyICstCiBkb2Mvc3JjL3NnbWwvcmVmL3Vw ZGF0ZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgOTAgKystCiBkb2Mvc3JjL3NnbWwvdHJp Z2dlci5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgNjQgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jICAgICAgICB8ICAzNCArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgIDQ2ICsrCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgICAgICAgIHwgNDk3ICsrKysrKysr KysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAg fCAgMjQgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jICAgICAg IHwgICA2ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAg ICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYyAgICAg ICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAg ICAgICAgfCAyNDEgKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICAgICAgICAgfCAxMDAgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMg ICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxh dGUuYyAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMgICAgICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVu Yy5jICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21l cmdlLmMgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3Jp dGVIYW5kbGVyLmMgICAgICAgICAgfCAgNDAgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jp X3RyaWdnZXJzLmMgICAgICAgICAgIHwgIDc0ICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAgNjEgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3RyaWdnZXIuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMjUgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDQ2ICstCiBzcmMvaW5jbHVkZS9ub2Rl cy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9k ZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9v cHRpbWl6ZXIvcGF0aG5vZGUuaCAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRl L3BhcnNlci9hbmFseXplLmggICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0ICB8IDc1MyArKysrKysr KysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQg ICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0 ICAgICAgfCAgMTggKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmll d3Mub3V0IHwgIDMyICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMu b3V0ICAgICB8IDE4NiArKysrLQogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlv bl9vZi5zcWwgICAgICAgfCA1OTEgKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL29wcl9zYW5pdHkuc3FsICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9wcml2aWxlZ2VzLnNxbCAgICAgICAgICAgfCAgMTggKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbCAgICAgIHwgIDE0ICsKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsICAgICB8ICA5NiArKy0KIHNyYy90ZXN0L3N1 YnNjcmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbCAgICAgICB8IDExMCArKy0KIDUyIGZpbGVz IGNoYW5nZWQsIDMyMTggaW5zZXJ0aW9ucygrKSwgMTE1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yu b3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRp b25fb2Yuc3FsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQv cG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQKaW5kZXggZjJiY2Q2YWE5OGMuLjQzYmUzZmY5OTA4IDEwMDY0NAotLS0g YS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTYz NzMsNiArNjM3MywxMSBAQCBERUxFVEUgRlJPTSBmdDIKIAogREVMRVRFIEZST00gZnQyIFdI RVJFIGZ0Mi5jMSA+IDIwMDA7CiBBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQURE IGV4dGVuc2lvbnMgJ3Bvc3RncmVzX2ZkdycpOworLS0gVGVzdCBVUERBVEUvREVMRVRFIHdp dGggRk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAn YScgVE8gJ2InIFNFVCBjMSA9IDE7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1 cHBvcnQgRk9SIFBPUlRJT04gT0YKK0RFTEVURSBGUk9NIGZ0MiBGT1IgUE9SVElPTiBPRiBj MyBGUk9NICdhJyBUTyAnYic7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBv cnQgRk9SIFBPUlRJT04gT0YKIC0tIFRlc3QgdGhhdCB0cmlnZ2VyIG9uIHJlbW90ZSB0YWJs ZSB3b3JrcyBhcyBleHBlY3RlZAogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gIlMgMSIu Rl9CUlRSSUcoKSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKIEJFR0lOCmRpZmYgLS1naXQgYS9j b250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IDM3MmZlNmRhZDE1Li43ODZm NTcyMzFhMyAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVz X2Zkdy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5z cWwKQEAgLTE1NzksNiArMTU3OSwxMCBAQCBERUxFVEUgRlJPTSBmdDIKIERFTEVURSBGUk9N IGZ0MiBXSEVSRSBmdDIuYzEgPiAyMDAwOwogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElP TlMgKEFERCBleHRlbnNpb25zICdwb3N0Z3Jlc19mZHcnKTsKIAorLS0gVGVzdCBVUERBVEUv REVMRVRFIHdpdGggRk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0Yg YzMgRlJPTSAnYScgVE8gJ2InIFNFVCBjMSA9IDE7CitERUxFVEUgRlJPTSBmdDIgRk9SIFBP UlRJT04gT0YgYzMgRlJPTSAnYScgVE8gJ2InOworCiAtLSBUZXN0IHRoYXQgdHJpZ2dlciBv biByZW1vdGUgdGFibGUgd29ya3MgYXMgZXhwZWN0ZWQKIENSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OICJTIDEiLkZfQlJUUklHKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCiBCRUdJTgpk aWZmIC0tZ2l0IGEvY29udHJpYi9zZXBnc3FsL3Byb2MuYyBiL2NvbnRyaWIvc2VwZ3NxbC9w cm9jLmMKaW5kZXggNDg5OWJjMmEzZTMuLjIwMTIwZmQ1MzFmIDEwMDY0NAotLS0gYS9jb250 cmliL3NlcGdzcWwvcHJvYy5jCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKQEAgLTE2 MSw3ICsxNjEsNyBAQCBzZXBnc3FsX3Byb2NfZHJvcChPaWQgZnVuY3Rpb25JZCkKIAkgKiBj aGVjayBkYl9zY2hlbWE6e3JlbW92ZV9uYW1lfSBwZXJtaXNzaW9uCiAJICovCiAJb2JqZWN0 LmNsYXNzSWQgPSBOYW1lc3BhY2VSZWxhdGlvbklkOwotCW9iamVjdC5vYmplY3RJZCA9IGdl dF9mdW5jX25hbWVzcGFjZShmdW5jdGlvbklkKTsKKwlvYmplY3Qub2JqZWN0SWQgPSBnZXRf ZnVuY19uYW1lc3BhY2UoZnVuY3Rpb25JZCwgdHJ1ZSk7CiAJb2JqZWN0Lm9iamVjdFN1Yklk ID0gMDsKIAlhdWRpdF9uYW1lID0gZ2V0T2JqZWN0SWRlbnRpdHkoJm9iamVjdCwgZmFsc2Up OwogCmRpZmYgLS1naXQgYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMgYi9jb250cmli L3VuYWNjZW50L3VuYWNjZW50LmMKaW5kZXggNzA3OTYyMzA1ZjguLjNiNzY0NmVjNzJhIDEw MDY0NAotLS0gYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMKKysrIGIvY29udHJpYi91 bmFjY2VudC91bmFjY2VudC5jCkBAIC00NDksNyArNDQ5LDcgQEAgdW5hY2NlbnRfZGljdChQ R19GVU5DVElPTl9BUkdTKQogCQkgKiBVc2UgdGhlICJ1bmFjY2VudCIgZGljdGlvbmFyeSB0 aGF0IGlzIGluIHRoZSBzYW1lIHNjaGVtYSB0aGF0IHRoaXMKIAkJICogZnVuY3Rpb24gaXMg aW4uCiAJCSAqLwotCQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNp bmZvLT5mbGluZm8tPmZuX29pZCk7CisJCU9pZAkJCXByb2Nuc3BpZCA9IGdldF9mdW5jX25h bWVzcGFjZShmY2luZm8tPmZsaW5mby0+Zm5fb2lkLCB0cnVlKTsKIAkJY29uc3QgY2hhciAq ZGljdG5hbWUgPSAidW5hY2NlbnQiOwogCiAJCWRpY3RPaWQgPSBHZXRTeXNDYWNoZU9pZDIo VFNESUNUTkFNRU5TUCwgQW51bV9wZ190c19kaWN0X29pZCwKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5k ZXggZGRiNDBjMDBiOTEuLjNkMmEzMTBlODIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtODMz LDcgKzgzMyw3IEBACiAgICAgICAgPHN0cnVjdGZpZWxkPmFtb3BwdXJwb3NlPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+Y2hhcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgot ICAgICAgIE9wZXJhdG9yIHB1cnBvc2UsIGVpdGhlciA8bGl0ZXJhbD5zPC9saXRlcmFsPiBm b3Igc2VhcmNoIG9yCisgICAgICAgT3BlcmF0b3IgcHVycG9zZSwgZWl0aGVyIDxsaXRlcmFs PnM8L2xpdGVyYWw+IGZvciBzZWFyY2gsIG9yCiAgICAgICAgPGxpdGVyYWw+bzwvbGl0ZXJh bD4gZm9yIG9yZGVyaW5nCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CkBA IC04NjUsNyArODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAg IFRoZSBCLXRyZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMgYWNjb3JkaW5n IHRvLCBpZiBhbgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlmIGEgc2VhcmNo IG9wZXJhdG9yIG9yIHBvcnRpb24gb3BlcmF0b3IKKyAgICAgICBvcmRlcmluZyBvcGVyYXRv cjsgemVybyBpZiBhIHNlYXJjaCBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2RlbGV0ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAppbmRleCA3NzE3 ODU1YmM5ZS4uNjMzMGZkZmY0YzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGVs ZXRlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbApAQCAtMjIsNyAr MjIsOSBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8 c3lub3BzaXM+CiBbIFdJVEggWyBSRUNVUlNJVkUgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+d2l0aF9xdWVyeTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXQotREVMRVRFIEZS T00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8 L3JlcGxhY2VhYmxlPiBbICogXSBbIFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBdCitERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KiBdCisgICAgWyBGT1IgUE9SVElPTiBPRiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiBGUk9NIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5zdGFydF90aW1lPC9yZXBsYWNlYWJsZT4gVE8gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJsZT4gXQorICAg IFsgWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFj ZWFibGU+IF0KICAgICBbIFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5m cm9tX2l0ZW08L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0KICAgICBbIFdIRVJFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxlPiB8IFdIRVJF IENVUlJFTlQgT0YgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmN1cnNvcl9uYW1l PC9yZXBsYWNlYWJsZT4gXQogICAgIFsgUkVUVVJOSU5HIHsgKiB8IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5vdXRwdXRfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgWyBB UyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vdXRwdXRfbmFtZTwvcmVwbGFj ZWFibGU+IF0gfSBbLCAuLi5dIF0KQEAgLTU0LDYgKzU2LDM5IEBAIERFTEVURSBGUk9NIFsg T05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqCiAgICBjaXJjdW1zdGFuY2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+ CisgICBJZiB0aGUgdGFibGUgaGFzIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisg ICB5b3UgbWF5IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBj bGF1c2UsIGFuZCB5b3VyIGRlbGV0ZSB3aWxsCisgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQg b3ZlcmxhcCB0aGUgZ2l2ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNw YW4KKyAgIGV4dGVuZHMgb3V0c2lkZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xp dGVyYWw+IGJvdW5kcywgdGhlbiB5b3VyIGRlbGV0ZQorICAgd2lsbCBvbmx5IGNoYW5nZSB0 aGUgc3BhbiB3aXRoaW4gdGhvc2UgYm91bmRzLiBJbiBlZmZlY3QgeW91IGFyZSBkZWxldGlu ZyBhbnkKKyAgIG1vbWVudCB0YXJnZXRlZCBieSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwv bGl0ZXJhbD4gYW5kIG5vIG1vbWVudHMgb3V0c2lkZS4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgU3BlY2lmaWNhbGx5LCBhZnRlciA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJv ZHVjdG5hbWU+IGRlbGV0ZXMgdGhlIGV4aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgPGxpdGVy YWw+SU5TRVJUPC9saXRlcmFsPgorICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ugb3Igc3RhcnQv ZW5kIGNvbHVtbihzKSByZWNlaXZlIHRoZSByZW1haW5pbmcgc3BhbiBvdXRzaWRlCisgICB0 aGUgdGFyZ2V0ZWQgYm91bmRzLCBjb250YWluaW5nIHRoZSBvcmlnaW5hbCB2YWx1ZXMgaW4g b3RoZXIgY29sdW1ucy4KKyAgIFRoZXJlIHdpbGwgYmUgemVybyB0byB0d28gaW5zZXJ0ZWQg cmVjb3JkcywKKyAgIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBvcmlnaW5hbCBzcGFuIGV4 dGVuZGVkIGJlZm9yZSB0aGUgdGFyZ2V0ZWQKKyAgIDxsaXRlcmFsPkZST008L2xpdGVyYWw+ LCBhZnRlciB0aGUgdGFyZ2V0ZWQgPGxpdGVyYWw+VE88L2xpdGVyYWw+LCBib3RoLCBvciBu ZWl0aGVyLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVzZSBzZWNvbmRhcnkgaW5z ZXJ0cyBmaXJlIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4gdHJpZ2dlcnMuIEZpcnN0Cisg ICA8bGl0ZXJhbD5CRUZPUkUgREVMRVRFPC9saXRlcmFsPiB0cmlnZ2VycyBmaXJzdCwgdGhl bgorICAgPGxpdGVyYWw+QkVGT1JFIElOU0VSVDwvbGl0ZXJhbD4sIHRoZW4gPGxpdGVyYWw+ QUZURVIgSU5TRVJUPC9saXRlcmFsPiwKKyAgIHRoZW4gPGxpdGVyYWw+QUZURVIgREVMRVRF PC9saXRlcmFsPi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlc2Ugc2Vjb25kYXJ5 IGluc2VydHMgZG8gbm90IHJlcXVpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiBwcml2 aWxlZ2Ugb24gdGhlIHRhYmxlLgorICAgVGhpcyBpcyBiZWNhdXNlIGNvbmNlcHR1YWxseSBu byBuZXcgaW5mb3JtYXRpb24gaGFzIGJlZW4gYWRkZWQuIFRoZSBpbnNlcnRlZCByb3dzIG9u bHkgcHJlc2VydmUKKyAgIGV4aXN0aW5nIGRhdGEgYWJvdXQgdGhlIHVudGFyZ2V0ZWQgdGlt ZSBwZXJpb2QuIE5vdGUgdGhpcyBtYXkgcmVzdWx0IGluIHVzZXJzIGZpcmluZyA8bGl0ZXJh bD5JTlNFUlQ8L2xpdGVyYWw+CisgICB0cmlnZ2VycyB3aG8gZG9uJ3QgaGF2ZSBpbnNlcnQg cHJpdmlsZWdlcywgc28gYmUgY2FyZWZ1bCBhYm91dCA8bGl0ZXJhbD5TRUNVUklUWSBERUZJ TkVSPC9saXRlcmFsPiB0cmlnZ2VyIGZ1bmN0aW9ucyEKKyAgPC9wYXJhPgorCiAgIDxwYXJh PgogICAgVGhlIG9wdGlvbmFsIDxsaXRlcmFsPlJFVFVSTklORzwvbGl0ZXJhbD4gY2xhdXNl IGNhdXNlcyA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+CiAgICB0byBjb21wdXRlIGFuZCBy ZXR1cm4gdmFsdWUocykgYmFzZWQgb24gZWFjaCByb3cgYWN0dWFsbHkgZGVsZXRlZC4KQEAg LTExNiw2ICsxNTEsNDEgQEAgREVMRVRFIEZST00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICoKICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9u YW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSByYW5nZSBjb2x1bW4gb3IgcGVyaW9kIHRvIHVzZSB3aGVuIHBlcmZvcm1p bmcgYSB0ZW1wb3JhbCBkZWxldGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVhcmxpZXN0 IHRpbWUgKGluY2x1c2l2ZSkgdG8gY2hhbmdlIGluIGEgdGVtcG9yYWwgZGVsZXRlLgorICAg ICAgVGhpcyBtdXN0IGJlIGEgdmFsdWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUg cmFuZ2Ugb3IgcGVyaW9kIGZyb20KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0 ZXJhbD5OVUxMPC9saXRlcmFsPiBoZXJlIGluZGljYXRlcyBhIGRlbGV0ZSB3aG9zZSBiZWdp bm5pbmcgaXMKKyAgICAgIHVuYm91bmRlZCAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmVuZF90aW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFRoZSBsYXRlc3QgdGltZSAoZXhjbHVzaXZlKSB0byBjaGFuZ2UgaW4g YSB0ZW1wb3JhbCBkZWxldGUuCisgICAgICBUaGlzIG11c3QgYmUgYSB2YWx1ZSBtYXRjaGlu ZyB0aGUgYmFzZSB0eXBlIG9mIHRoZSByYW5nZSBvciBwZXJpb2QgZnJvbQorICAgICAgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBs YWNlYWJsZT4uIEEKKyAgICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGhlcmUgaW5kaWNh dGVzIGEgZGVsZXRlIHdob3NlIGVuZCBpcyB1bmJvdW5kZWQKKyAgICAgIChhcyB3aXRoIHJh bmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAg PGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKaW5kZXggMWM0MzNiZWMyYmIuLmM4OTNj Yzc5NWYyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKQEAgLTIyLDcgKzIyLDkgQEAgUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogWyBX SVRIIFsgUkVDVVJTSVZFIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPndpdGhf cXVlcnk8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0KLVVQREFURSBbIE9OTFkgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBd IFsgWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFj ZWFibGU+IF0KK1VQREFURSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCisgICAgWyBGT1IgUE9SVElPTiBP RiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8 L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Zm9yX3BvcnRp b25fb2ZfdGFyZ2V0PC9yZXBsYWNlYWJsZT4gXQorICAgIFsgWyBBUyBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0KICAgICBTRVQgeyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiA9IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiB8IERFRkFVTFQgfSB8CiAgICAgICAgICAgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgPSBbIFJP VyBdICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVw bGFjZWFibGU+IHwgREVGQVVMVCB9IFssIC4uLl0gKSB8CiAgICAgICAgICAgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dICkgPSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWItU0VMRUNUPC9y ZXBsYWNlYWJsZT4gKQpAQCAtNTEsNiArNTMsNDEgQEAgVVBEQVRFIFsgT05MWSBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq IF0gWwogICAgY2lyY3Vtc3RhbmNlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgSWYg dGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAorICAgeW91IG1h eSBzdXBwbHkgYSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBh bmQgeW91ciB1cGRhdGUgd2lsbAorICAgb25seSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAg dGhlIGdpdmVuIGludGVydmFsLiBGdXJ0aGVybW9yZSwgaWYgYSByb3cncyBzcGFuCisgICBl eHRlbmRzIG91dHNpZGUgdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBi b3VuZHMsIHRoZW4geW91ciB1cGRhdGUKKyAgIHdpbGwgb25seSBjaGFuZ2UgdGhlIHNwYW4g d2l0aGluIHRob3NlIGJvdW5kcy4gSW4gZWZmZWN0IHlvdSBhcmUgdXBkYXRpbmcgYW55Cisg ICBtb21lbnQgdGFyZ2V0ZWQgYnkgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+ IGFuZCBubyBtb21lbnRzIG91dHNpZGUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNw ZWNpZmljYWxseSwgd2hlbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ IHVwZGF0ZXMgdGhlIGV4aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgYWxzbyBjaGFuZ2UgdGhl IHJhbmdlIG9yIHN0YXJ0L2VuZCBjb2x1bW4ocykgc28gdGhhdCB0aGVpciBpbnRlcnZhbAor ICAgbm8gbG9uZ2VyIGV4dGVuZHMgYmV5b25kIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5GT1Ig UE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLgorICAgVGhlbiA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IHdpbGwgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgor ICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ugb3Igc3RhcnQvZW5kIGNvbHVtbihzKSByZWNlaXZl IHRoZSByZW1haW5pbmcgc3BhbiBvdXRzaWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRzLCBj b250YWluaW5nIHRoZSB1bi11cGRhdGVkIHZhbHVlcyBpbiBvdGhlciBjb2x1bW5zLgorICAg VGhlcmUgd2lsbCBiZSB6ZXJvIHRvIHR3byBpbnNlcnRlZCByZWNvcmRzLAorICAgZGVwZW5k aW5nIG9uIHdoZXRoZXIgdGhlIG9yaWdpbmFsIHNwYW4gZXh0ZW5kZWQgYmVmb3JlIHRoZSB0 YXJnZXRlZAorICAgPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4sIGFmdGVyIHRoZSB0YXJnZXRl ZCA8bGl0ZXJhbD5UTzwvbGl0ZXJhbD4sIGJvdGgsIG9yIG5laXRoZXIuCisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFRoZXNlIHNlY29uZGFyeSBpbnNlcnRzIGZpcmUgPGxpdGVyYWw+ SU5TRVJUPC9saXRlcmFsPiB0cmlnZ2Vycy4gRmlyc3QKKyAgIDxsaXRlcmFsPkJFRk9SRSBV UERBVEU8L2xpdGVyYWw+IHRyaWdnZXJzIGZpcnN0LCB0aGVuCisgICA8bGl0ZXJhbD5CRUZP UkUgSU5TRVJUPC9saXRlcmFsPiwgdGhlbiA8bGl0ZXJhbD5BRlRFUiBJTlNFUlQ8L2xpdGVy YWw+LAorICAgdGhlbiA8bGl0ZXJhbD5BRlRFUiBVUERBVEU8L2xpdGVyYWw+LgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUaGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBkbyBub3QgcmVx dWlyZSA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgdGFibGUu CisgICBUaGlzIGlzIGJlY2F1c2UgY29uY2VwdHVhbGx5IG5vIG5ldyBpbmZvcm1hdGlvbiBo YXMgYmVlbiBhZGRlZC4gVGhlIGluc2VydGVkIHJvd3Mgb25seSBwcmVzZXJ2ZQorICAgZXhp c3RpbmcgZGF0YSBhYm91dCB0aGUgdW50YXJnZXRlZCB0aW1lIHBlcmlvZC4gTm90ZSB0aGlz IG1heSByZXN1bHQgaW4gdXNlcnMgZmlyaW5nIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4K KyAgIHRyaWdnZXJzIHdobyBkb24ndCBoYXZlIGluc2VydCBwcml2aWxlZ2VzLCBzbyBiZSBj YXJlZnVsIGFib3V0IDxsaXRlcmFsPlNFQ1VSSVRZIERFRklORVI8L2xpdGVyYWw+IHRyaWdn ZXIgZnVuY3Rpb25zIQorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgb3B0aW9uYWwg PGxpdGVyYWw+UkVUVVJOSU5HPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIDxjb21tYW5kPlVQ REFURTwvY29tbWFuZD4KICAgIHRvIGNvbXB1dGUgYW5kIHJldHVybiB2YWx1ZShzKSBiYXNl ZCBvbiBlYWNoIHJvdyBhY3R1YWxseSB1cGRhdGVkLgpAQCAtMTE0LDYgKzE1MSw1NyBAQCBV UERBVEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25h bWU8L3JlcGxhY2VhYmxlPiBbICogXSBbCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgcmFuZ2UgY29s dW1uIG9yIHBlcmlvZCB0byB1c2Ugd2hlbiBwZXJmb3JtaW5nIGEgdGVtcG9yYWwgdXBkYXRl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5mb3JfcG9ydGlvbl9vZl90YXJnZXQ8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGludGVydmFsIHRvIHVwZGF0 ZS4gSWYgeW91IGFyZSB0YXJnZXRpbmcgYSByYW5nZSBjb2x1bW4gb3IgPGxpdGVyYWw+UEVS SU9EPC9saXRlcmFsPiwKKyAgICAgIHlvdSBtYXkgZ2l2ZSB0aGlzIGluIHRoZSBmb3JtIDxs aXRlcmFsPkZST008L2xpdGVyYWw+CisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+c3RhcnRfdGltZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPlRPPC9saXRlcmFsPgor ICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNl YWJsZT4uCisgICAgICBPdGhlcndpc2UgeW91IG11c3QgdXNlCisgICAgICA8bGl0ZXJhbD4o PC9saXRlcmFsPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9y ZXBsYWNlYWJsZT48bGl0ZXJhbD4pPC9saXRlcmFsPgorICAgICAgd2hlcmUgdGhlIGV4cHJl c3Npb24geWllbGRzIGEgdmFsdWUgZm9yIHRoZSBzYW1lIHR5cGUgYXMKKyAgICAgIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFj ZWFibGU+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zdGFydF90aW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBlYXJsaWVzdCB0aW1lIChpbmNsdXNp dmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIHVwZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBi ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlv ZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3Jf cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0 ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4gdXBkYXRlIHdob3NlIGJlZ2lubmluZyBpcworICAg ICAgdW5ib3VuZGVkIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIGxhdGVzdCB0aW1lIChleGNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIHVw ZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5 cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQor ICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4gdXBkYXRl IHdob3NlIGVuZCBpcyB1bmJvdW5kZWQKKyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21s L3RyaWdnZXIuc2dtbAppbmRleCBhOWFiYWFiOTA1Ni4uZTRmNjMwNzVhMzYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3RyaWdn ZXIuc2dtbApAQCAtMzY2LDYgKzM2NiwxNSBAQAogICAgIHJlc3BvbnNpYmlsaXR5IHRvIGF2 b2lkIHRoYXQuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIElmIGFuIDxjb21tYW5k PlVQREFURTwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiB1c2VzCisg ICAgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+LCBjYXVzaW5nIG5ldyByb3dz IHRvIGJlIGluc2VydGVkCisgICAgdG8gcHJlc2VydmUgdGhlIGxlZnRvdmVyIHVudGFyZ2V0 ZWQgcGFydCBvZiBtb2RpZmllZCByZWNvcmRzLCB0aGVuCisgICAgPGNvbW1hbmQ+SU5TRVJU PC9jb21tYW5kPiB0cmlnZ2VycyBhcmUgZmlyZWQgZm9yIGVhY2ggaW5zZXJ0ZWQKKyAgICBy b3cuIEVhY2ggcm93IGlzIGluc2VydGVkIHNlcGFyYXRlbHksIHNvIHRoZXkgZmlyZSB0aGVp ciBvd24KKyAgICBzdGF0ZW1lbnQgdHJpZ2dlcnMsIGFuZCB0aGV5IGhhdmUgdGhlaXIgb3du IHRyYW5zaXRpb24gdGFibGVzLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAgICA8aW5k ZXh0ZXJtPgogICAgICA8cHJpbWFyeT50cmlnZ2VyPC9wcmltYXJ5PgpAQCAtNTQ3LDE3ICs1 NTYsMTggQEAgQ0FMTEVEX0FTX1RSSUdHRVIoZmNpbmZvKQogPHByb2dyYW1saXN0aW5nPgog dHlwZWRlZiBzdHJ1Y3QgVHJpZ2dlckRhdGEKIHsKLSAgICBOb2RlVGFnICAgICAgICAgIHR5 cGU7Ci0gICAgVHJpZ2dlckV2ZW50ICAgICB0Z19ldmVudDsKLSAgICBSZWxhdGlvbiAgICAg ICAgIHRnX3JlbGF0aW9uOwotICAgIEhlYXBUdXBsZSAgICAgICAgdGdfdHJpZ3R1cGxlOwot ICAgIEhlYXBUdXBsZSAgICAgICAgdGdfbmV3dHVwbGU7Ci0gICAgVHJpZ2dlciAgICAgICAg ICp0Z190cmlnZ2VyOwotICAgIFR1cGxlVGFibGVTbG90ICAqdGdfdHJpZ3Nsb3Q7Ci0gICAg VHVwbGVUYWJsZVNsb3QgICp0Z19uZXdzbG90OwotICAgIFR1cGxlc3RvcmVzdGF0ZSAqdGdf b2xkdGFibGU7Ci0gICAgVHVwbGVzdG9yZXN0YXRlICp0Z19uZXd0YWJsZTsKLSAgICBjb25z dCBCaXRtYXBzZXQgKnRnX3VwZGF0ZWRjb2xzOworICAgIE5vZGVUYWcgICAgICAgICAgICB0 eXBlOworICAgIFRyaWdnZXJFdmVudCAgICAgICB0Z19ldmVudDsKKyAgICBSZWxhdGlvbiAg ICAgICAgICAgdGdfcmVsYXRpb247CisgICAgSGVhcFR1cGxlICAgICAgICAgIHRnX3RyaWd0 dXBsZTsKKyAgICBIZWFwVHVwbGUgICAgICAgICAgdGdfbmV3dHVwbGU7CisgICAgVHJpZ2dl ciAgICAgICAgICAgKnRnX3RyaWdnZXI7CisgICAgVHVwbGVUYWJsZVNsb3QgICAgKnRnX3Ry aWdzbG90OworICAgIFR1cGxlVGFibGVTbG90ICAgICp0Z19uZXdzbG90OworICAgIFR1cGxl c3RvcmVzdGF0ZSAgICp0Z19vbGR0YWJsZTsKKyAgICBUdXBsZXN0b3Jlc3RhdGUgICAqdGdf bmV3dGFibGU7CisgICAgY29uc3QgQml0bWFwc2V0ICAgKnRnX3VwZGF0ZWRjb2xzOworICAg IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbDsKIH0gVHJpZ2dlckRhdGE7CiA8L3By b2dyYW1saXN0aW5nPgogCkBAIC04MjUsNiArODM1LDM4IEBAIHR5cGVkZWYgc3RydWN0IFRy aWdnZXIKICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHN0cnVjdGZp ZWxkPnRnX3RlbXBvcmFsPC9zdHJ1Y3RmaWVsZD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFNldCBmb3IgPGxpdGVyYWw+VVBEQVRFPC9saXRl cmFsPiBhbmQgPGxpdGVyYWw+REVMRVRFPC9saXRlcmFsPiBxdWVyaWVzCisgICAgICAgIHRo YXQgdXNlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiwgb3RoZXJ3aXNlIDxz eW1ib2w+TlVMTDwvc3ltYm9sPi4KKyAgICAgICAgQ29udGFpbnMgYSBwb2ludGVyIHRvIGEg c3RydWN0dXJlIG9mIHR5cGUKKyAgICAgICAgPHN0cnVjdG5hbWU+Rm9yUG9ydGlvbk9mU3Rh dGU8L3N0cnVjdG5hbWU+LCBkZWZpbmVkIGluCisgICAgICAgIDxmaWxlbmFtZT5ub2Rlcy9l eGVjbm9kZXMuaDwvZmlsZW5hbWU+OgorCis8cHJvZ3JhbWxpc3Rpbmc+Cit0eXBlZGVmIHN0 cnVjdCBGb3JQb3J0aW9uT2ZTdGF0ZQoreworICAgIE5vZGVUYWcgdHlwZTsKKworICAgIGNo YXIgICAqZnBfcmFuZ2VOYW1lOyAgICAgICAvKiB0aGUgY29sdW1uIG5hbWVkIGluIEZPUiBQ T1JUSU9OIE9GICovCisgICAgT2lkICAgICBmcF9yYW5nZVR5cGU7ICAgICAgIC8qIHRoZSB0 eXBlIG9mIHRoZSBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uICovCisgICAgaW50ICAgICBm cF9yYW5nZUF0dG5vOyAgICAgIC8qIHRoZSBhdHRubyBvZiB0aGUgcmFuZ2UgY29sdW1uICov CisgICAgRGF0dW0gICBmcF90YXJnZXRSYW5nZTsgICAgIC8qIHRoZSByYW5nZSBmcm9tIEZP UiBQT1JUSU9OIE9GICovCit9IEZvclBvcnRpb25PZlN0YXRlOworPC9wcm9ncmFtbGlzdGlu Zz4KKworICAgICAgIHdoZXJlIDxzdHJ1Y3RmaWVsZD5mcF9yYW5nZU5hbWU8L3N0cnVjdGZp ZWxkPiBpcyB0aGUgcmFuZ2UKKyAgICAgICBjb2x1bW4gbmFtZWQgaW4gdGhlIDxsaXRlcmFs PkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsCisgICAgICAgPHN0cnVjdGZpZWxk PmZwX3JhbmdlVHlwZTwvc3RydWN0ZmllbGQ+IGlzIGl0cyByYW5nZSB0eXBlLAorICAgICAg IDxzdHJ1Y3RmaWVsZD5mcF9yYW5nZUF0dG5vPC9zdHJ1Y3RmaWVsZD4gaXMgaXRzIGF0dHJp YnV0ZSBudW1iZXIsCisgICAgICAgYW5kIDxzdHJ1Y3RmaWVsZD5mcF90YXJnZXRSYW5nZTwv c3RydWN0ZmllbGQ+IGlzIGEgcmFuZ2V0eXBlIHZhbHVlIGNyZWF0ZWQKKyAgICAgICBieSBl dmFsdWF0aW5nIHRoZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRz LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgogICAgIDwvdmFyaWFibGVsaXN0PgogICAgPC9wYXJhPgogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCmluZGV4IGUxYWQ2NWI5YTRmLi5kMDg4NmQ5MWYw NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKQEAgLTIwMSw3 ICsyMDEsNyBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCX0KIAogCQkvKiBH aVNUIHN1cHBvcnRzIE9SREVSIEJZIG9wZXJhdG9ycyAqLwotCQlpZiAob3ByZm9ybS0+YW1v cHB1cnBvc2UgIT0gQU1PUF9TRUFSQ0gpCisJCWlmIChvcHJmb3JtLT5hbW9wcHVycG9zZSA9 PSBBTU9QX09SREVSKQogCQl7CiAJCQkvKiAuLi4gYnV0IG11c3QgaGF2ZSBtYXRjaGluZyBk aXN0YW5jZSBwcm9jICovCiAJCQlpZiAoIU9pZElzVmFsaWQoZ2V0X29wZmFtaWx5X3Byb2Mo b3BmYW1pbHlvaWQsCkBAIC0yMjgsMjQgKzIyOCwzOCBAQCBnaXN0dmFsaWRhdGUoT2lkIG9w Y2xhc3NvaWQpCiAJCQkJcmVzdWx0ID0gZmFsc2U7CiAJCQl9CiAJCX0KLQkJZWxzZQorCQll bHNlIGlmIChvcHJmb3JtLT5hbW9wcHVycG9zZSA9PSBBTU9QX1NFQVJDSCkKIAkJewogCQkJ LyogU2VhcmNoIG9wZXJhdG9ycyBtdXN0IGFsd2F5cyByZXR1cm4gYm9vbCAqLwogCQkJb3Bf cmV0dHlwZSA9IEJPT0xPSUQ7CiAJCX0KLQotCQkvKiBDaGVjayBvcGVyYXRvciBzaWduYXR1 cmUgKi8KLQkJaWYgKCFjaGVja19hbW9wX3NpZ25hdHVyZShvcHJmb3JtLT5hbW9wb3ByLCBv cF9yZXR0eXBlLAotCQkJCQkJCQkgIG9wcmZvcm0tPmFtb3BsZWZ0dHlwZSwKLQkJCQkJCQkJ ICBvcHJmb3JtLT5hbW9wcmlnaHR0eXBlKSkKKwkJZWxzZQogCQl7CisJCQkvKiBOb3RoaW5n IGVsc2UgaXQgY291bGQgYmUgKi8KIAkJCWVyZXBvcnQoSU5GTywKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKLQkJCQkJIGVycm1zZygib3Bl cmF0b3IgZmFtaWx5IFwiJXNcIiBvZiBhY2Nlc3MgbWV0aG9kICVzIGNvbnRhaW5zIG9wZXJh dG9yICVzIHdpdGggd3Jvbmcgc2lnbmF0dXJlIiwKLQkJCQkJCQlvcGZhbWlseW5hbWUsICJn aXN0IiwKLQkJCQkJCQlmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+YW1vcG9wcikpKSk7CisJ CQkJCSBlcnJtc2coIm9wZXJhdG9yIGZhbWlseSBcIiVzXCIgb2YgYWNjZXNzIG1ldGhvZCAl cyBjb250YWlucyB1bmtub3duIHB1cnBvc2UgJWMgZm9yIG9wZXJhdG9yICVzIiwKKwkJCQkJ CSBvcGZhbWlseW5hbWUsICJnaXN0Iiwgb3ByZm9ybS0+YW1vcHB1cnBvc2UsCisJCQkJCQkg Zm9ybWF0X29wZXJhdG9yKG9wcmZvcm0tPmFtb3BvcHIpKSkpOworCQkJb3BfcmV0dHlwZSA9 IEludmFsaWRPaWQ7CiAJCQlyZXN1bHQgPSBmYWxzZTsKIAkJfQorCisJCS8qIENoZWNrIG9w ZXJhdG9yIHNpZ25hdHVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChvcF9yZXR0eXBlKSkKKwkJ eworCQkJaWYgKCFjaGVja19hbW9wX3NpZ25hdHVyZShvcHJmb3JtLT5hbW9wb3ByLCBvcF9y ZXR0eXBlLAorCQkJCQkJCQkJICBvcHJmb3JtLT5hbW9wbGVmdHR5cGUsCisJCQkJCQkJCQkg IG9wcmZvcm0tPmFtb3ByaWdodHR5cGUpKQorCQkJeworCQkJCWVyZXBvcnQoSU5GTywKKwkJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJ CQkgZXJybXNnKCJvcGVyYXRvciBmYW1pbHkgXCIlc1wiIG9mIGFjY2VzcyBtZXRob2QgJXMg Y29udGFpbnMgb3BlcmF0b3IgJXMgd2l0aCB3cm9uZyBzaWduYXR1cmUiLAorCQkJCQkJCQlv cGZhbWlseW5hbWUsICJnaXN0IiwKKwkJCQkJCQkJZm9ybWF0X29wZXJhdG9yKG9wcmZvcm0t PmFtb3BvcHIpKSkpOworCQkJCXJlc3VsdCA9IGZhbHNlOworCQkJfQorCQl9CiAJfQogCiAJ LyogTm93IGNoZWNrIGZvciBpbmNvbnNpc3RlbnQgZ3JvdXBzIG9mIG9wZXJhdG9ycy9mdW5j dGlvbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCAxOGE1YWY2YjkxOS4uNTQz OWFkYzBkMjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTQzOTYsNyArNDM5Niw3 IEBAIEV4cGxhaW5UYXJnZXRSZWwoUGxhbiAqcGxhbiwgSW5kZXggcnRpLCBFeHBsYWluU3Rh dGUgKmVzKQogCiAJCQkJCQlvYmplY3RuYW1lID0gZ2V0X2Z1bmNfbmFtZShmdW5jaWQpOwog CQkJCQkJaWYgKGVzLT52ZXJib3NlKQotCQkJCQkJCW5hbWVzcGFjZSA9IGdldF9uYW1lc3Bh Y2VfbmFtZV9vcl90ZW1wKGdldF9mdW5jX25hbWVzcGFjZShmdW5jaWQpKTsKKwkJCQkJCQlu YW1lc3BhY2UgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChnZXRfZnVuY19uYW1lc3Bh Y2UoZnVuY2lkLCB0cnVlKSk7CiAJCQkJCX0KIAkJCQl9CiAJCQkJb2JqZWN0dGFnID0gIkZ1 bmN0aW9uIE5hbWUiOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBmZjQ0MDJh OGJmMy4uZmQyYzhkZjU2ZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0x MjMyMyw2ICsxMjMyMyw3IEBAIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQoY2hhciAq Y29ubmFtZSwKIAkJdHJpZ2RhdGEudGdfdHJpZ3R1cGxlID0gRXhlY0ZldGNoU2xvdEhlYXBU dXBsZShzbG90LCBmYWxzZSwgTlVMTCk7CiAJCXRyaWdkYXRhLnRnX3RyaWdzbG90ID0gc2xv dDsKIAkJdHJpZ2RhdGEudGdfdHJpZ2dlciA9ICZ0cmlnOworCQl0cmlnZGF0YS50Z190ZW1w b3JhbCA9IE5VTEw7CiAKIAkJZmNpbmZvLT5jb250ZXh0ID0gKE5vZGUgKikgJnRyaWdkYXRh OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5kZXggMDkzNTZlNDZkMTYuLjU1YTI1YTM2 YzhiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5j bHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgogI2luY2x1 ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCiAj aW5jbHVkZSAidXRpbHMvaW52YWwuaCIKQEAgLTI2MzIsNiArMjYzMyw3IEBAIEV4ZWNCU0Rl bGV0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvKQog CUxvY1RyaWdnZXJEYXRhLnRnX2V2ZW50ID0gVFJJR0dFUl9FVkVOVF9ERUxFVEUgfAogCQlU UklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJl bGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9 IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2Mt Pm51bXRyaWdnZXJzOyBpKyspCiAJewogCQlUcmlnZ2VyICAgICp0cmlnZ2VyID0gJnRyaWdk ZXNjLT50cmlnZ2Vyc1tpXTsKQEAgLTI3MzEsNiArMjczMyw3IEBAIEV4ZWNCUkRlbGV0ZVRy aWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBFUFFTdGF0ZSAqZXBxc3RhdGUsCiAJCVRSSUdHRVJf RVZFTlRfUk9XIHwKIAkJVFJJR0dFUl9FVkVOVF9CRUZPUkU7CiAJTG9jVHJpZ2dlckRhdGEu dGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRh dGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAJZm9yIChpID0g MDsgaSA8IHRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsrKQogCXsKIAkJSGVhcFR1cGxlCW5l d3R1cGxlOwpAQCAtMjgyMiw2ICsyODI1LDcgQEAgRXhlY0lSRGVsZXRlVHJpZ2dlcnMoRVN0 YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCVRSSUdHRVJfRVZFTlRf Uk9XIHwKIAkJVFJJR0dFUl9FVkVOVF9JTlNURUFEOwogCUxvY1RyaWdnZXJEYXRhLnRnX3Jl bGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRn X3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCiAJRXhlY0ZvcmNlU3Rv cmVIZWFwVHVwbGUodHJpZ3R1cGxlLCBzbG90LCBmYWxzZSk7CiAKQEAgLTI4ODUsNiArMjg4 OSw3IEBAIEV4ZWNCU1VwZGF0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJ bmZvICpyZWxpbmZvKQogCQlUUklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0 YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKIAlMb2NUcmlnZ2Vy RGF0YS50Z191cGRhdGVkY29scyA9IHVwZGF0ZWRDb2xzOworCUxvY1RyaWdnZXJEYXRhLnRn X3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCWZvciAoaSA9IDA7IGkg PCB0cmlnZGVzYy0+bnVtdHJpZ2dlcnM7IGkrKykKIAl7CiAJCVRyaWdnZXIgICAgKnRyaWdn ZXIgPSAmdHJpZ2Rlc2MtPnRyaWdnZXJzW2ldOwpAQCAtMzAyMCw2ICszMDI1LDcgQEAgRXhl Y0JSVXBkYXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIEVQUVN0YXRlICplcHFzdGF0ZSwK IAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NU cmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlM b2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsK IAl1cGRhdGVkQ29scyA9IEV4ZWNHZXRBbGxVcGRhdGVkQ29scyhyZWxpbmZvLCBlc3RhdGUp OwogCUxvY1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gdXBkYXRlZENvbHM7CiAJZm9y IChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsrKQpAQCAtMzE2OSw2ICsz MTc1LDcgQEAgRXhlY0lSVXBkYXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJl bEluZm8gKnJlbGluZm8sCiAJCVRSSUdHRVJfRVZFTlRfUk9XIHwKIAkJVFJJR0dFUl9FVkVO VF9JTlNURUFEOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlf UmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+ cmlfZm9yUG9ydGlvbk9mOwogCiAJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUodHJpZ3R1cGxl LCBvbGRzbG90LCBmYWxzZSk7CiAKQEAgLTM2MzUsNiArMzY0Miw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFmdGVyVHJpZ2dlclNoYXJlZERhdGEKIAlPaWQJCQlhdHNfdGdvaWQ7CQkvKiB0aGUg dHJpZ2dlcidzIElEICovCiAJT2lkCQkJYXRzX3JlbGlkOwkJLyogdGhlIHJlbGF0aW9uIGl0 J3Mgb24gKi8KIAlDb21tYW5kSWQJYXRzX2ZpcmluZ19pZDsJLyogSUQgZm9yIGZpcmluZyBj eWNsZSAqLworCUZvclBvcnRpb25PZlN0YXRlICpmb3JfcG9ydGlvbl9vZjsJLyogdGhlIEZP UiBQT1JUSU9OIE9GIGNsYXVzZSAqLwogCXN0cnVjdCBBZnRlclRyaWdnZXJzVGFibGVEYXRh ICphdHNfdGFibGU7CS8qIHRyYW5zaXRpb24gdGFibGUgYWNjZXNzICovCiAJQml0bWFwc2V0 ICAqYXRzX21vZGlmaWVkY29sczsJLyogbW9kaWZpZWQgY29sdW1ucyAqLwogfSBBZnRlclRy aWdnZXJTaGFyZWREYXRhOwpAQCAtMzkwOCw2ICszOTE2LDcgQEAgc3RhdGljIFNldENvbnN0 cmFpbnRTdGF0ZSBTZXRDb25zdHJhaW50U3RhdGVDcmVhdGUoaW50IG51bWFsbG9jKTsKIHN0 YXRpYyBTZXRDb25zdHJhaW50U3RhdGUgU2V0Q29uc3RyYWludFN0YXRlQ29weShTZXRDb25z dHJhaW50U3RhdGUgb3JpZ3N0YXRlKTsKIHN0YXRpYyBTZXRDb25zdHJhaW50U3RhdGUgU2V0 Q29uc3RyYWludFN0YXRlQWRkSXRlbShTZXRDb25zdHJhaW50U3RhdGUgc3RhdGUsCiAJCQkJ CQkJCQkJCQkJT2lkIHRnb2lkLCBib29sIHRnaXNkZWZlcnJlZCk7CitzdGF0aWMgRm9yUG9y dGlvbk9mU3RhdGUgKkNvcHlGb3JQb3J0aW9uT2ZTdGF0ZShGb3JQb3J0aW9uT2ZTdGF0ZSAq c3JjKTsKIHN0YXRpYyB2b2lkIGNhbmNlbF9wcmlvcl9zdG10X3RyaWdnZXJzKE9pZCByZWxp ZCwgQ21kVHlwZSBjbWRUeXBlLCBpbnQgdGdldmVudCk7CiAKIApAQCAtNDEyMCw2ICs0MTI5 LDcgQEAgYWZ0ZXJUcmlnZ2VyQWRkRXZlbnQoQWZ0ZXJUcmlnZ2VyRXZlbnRMaXN0ICpldmVu dHMsCiAJCQluZXdzaGFyZWQtPmF0c19yZWxpZCA9PSBldnRzaGFyZWQtPmF0c19yZWxpZCAm JgogCQkJbmV3c2hhcmVkLT5hdHNfZXZlbnQgPT0gZXZ0c2hhcmVkLT5hdHNfZXZlbnQgJiYK IAkJCW5ld3NoYXJlZC0+YXRzX3RhYmxlID09IGV2dHNoYXJlZC0+YXRzX3RhYmxlICYmCisJ CQluZXdzaGFyZWQtPmZvcl9wb3J0aW9uX29mID09IGV2dHNoYXJlZC0+Zm9yX3BvcnRpb25f b2YgJiYKIAkJCW5ld3NoYXJlZC0+YXRzX2ZpcmluZ19pZCA9PSAwKQogCQkJYnJlYWs7CiAJ fQpAQCAtNDQ4OCw2ICs0NDk4LDcgQEAgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVz dGF0ZSwKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbDsKIAlpZiAoVFJJR0dF Ul9GT1JfVVBEQVRFKExvY1RyaWdnZXJEYXRhLnRnX3RyaWdnZXItPnRndHlwZSkpCiAJCUxv Y1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gZXZ0c2hhcmVkLT5hdHNfbW9kaWZpZWRj b2xzOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gZXZ0c2hhcmVkLT5mb3JfcG9y dGlvbl9vZjsKIAogCU1lbW9yeUNvbnRleHRSZXNldChwZXJfdHVwbGVfY29udGV4dCk7CiAK QEAgLTYwMjIsNiArNjAzMyw0MCBAQCBBZnRlclRyaWdnZXJQZW5kaW5nT25SZWwoT2lkIHJl bGlkKQogCXJldHVybiBmYWxzZTsKIH0KIAorLyogLS0tLS0tLS0tLQorICogRm9yUG9ydGlv bk9mU3RhdGUoKQorICoKKyAqIENvcHlzIGEgRm9yUG9ydGlvbk9mU3RhdGUgaW50byB0aGUg Y3VycmVudCBtZW1vcnkgY29udGV4dC4KKyAqLworc3RhdGljIEZvclBvcnRpb25PZlN0YXRl ICoKK0NvcHlGb3JQb3J0aW9uT2ZTdGF0ZShGb3JQb3J0aW9uT2ZTdGF0ZSAqc3JjKQorewor CUZvclBvcnRpb25PZlN0YXRlICpkc3QgPSBOVUxMOworCWlmIChzcmMpIHsKKwkJTWVtb3J5 Q29udGV4dCBvbGRjdHg7CisJCVJhbmdlVHlwZSAqcjsKKwkJVHlwZUNhY2hlRW50cnkgKnR5 cGNhY2hlOworCisJCS8qCisJCSAqIE5lZWQgdG8gbGlmdCB0aGUgRk9SIFBPUlRJT04gT0Yg ZGV0YWlscyBpbnRvIGEgaGlnaGVyIG1lbW9yeSBjb250ZXh0CisJCSAqIGJlY2F1c2UgY2Fz Y2FkaW5nIGZvcmVpZ24ga2V5IHVwZGF0ZS9kZWxldGVzIGNhbiBjYXVzZSB0cmlnZ2VycyB0 byBmaXJlCisJCSAqIHRyaWdnZXJzLCBhbmQgdGhlIEFmdGVyVHJpZ2dlckV2ZW50cyB3aWxs IG91dGxpdmUgdGhlIEZQTworCQkgKiBkZXRhaWxzIG9mIHRoZSBvcmlnaW5hbCBxdWVyeS4K KwkJICovCisJCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BUcmFuc2FjdGlv bkNvbnRleHQpOworCQlkc3QgPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZTdGF0ZSk7CisJCWRz dC0+ZnBfcmFuZ2VOYW1lID0gcHN0cmR1cChzcmMtPmZwX3JhbmdlTmFtZSk7CisJCWRzdC0+ ZnBfcmFuZ2VUeXBlID0gc3JjLT5mcF9yYW5nZVR5cGU7CisJCWRzdC0+ZnBfcmFuZ2VBdHRu byA9IHNyYy0+ZnBfcmFuZ2VBdHRubzsKKworCQlyID0gRGF0dW1HZXRSYW5nZVR5cGVQKHNy Yy0+ZnBfdGFyZ2V0UmFuZ2UpOworCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKFJh bmdlVHlwZUdldE9pZChyKSwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOworCQlkc3QtPmZwX3Rh cmdldFJhbmdlID0gZGF0dW1Db3B5KHNyYy0+ZnBfdGFyZ2V0UmFuZ2UsIHR5cGNhY2hlLT50 eXBieXZhbCwgdHlwY2FjaGUtPnR5cGxlbik7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhv bGRjdHgpOworCX0KKwlyZXR1cm4gZHN0OworfQorCiAvKiAtLS0tLS0tLS0tCiAgKiBBZnRl clRyaWdnZXJTYXZlRXZlbnQoKQogICoKQEAgLTY0MzcsNiArNjQ4Miw3IEBAIEFmdGVyVHJp Z2dlclNhdmVFdmVudChFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywK IAkJZWxzZQogCQkJbmV3X3NoYXJlZC5hdHNfdGFibGUgPSBOVUxMOwogCQluZXdfc2hhcmVk LmF0c19tb2RpZmllZGNvbHMgPSBhZnRlclRyaWdnZXJDb3B5Qml0bWFwKG1vZGlmaWVkQ29s cyk7CisJCW5ld19zaGFyZWQuZm9yX3BvcnRpb25fb2YgPSBDb3B5Rm9yUG9ydGlvbk9mU3Rh dGUocmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mKTsKIAogCQlhZnRlclRyaWdnZXJBZGRFdmVu dCgmYWZ0ZXJUcmlnZ2Vycy5xdWVyeV9zdGFja1thZnRlclRyaWdnZXJzLnF1ZXJ5X2RlcHRo XS5ldmVudHMsCiAJCQkJCQkJICZuZXdfZXZlbnQsICZuZXdfc2hhcmVkKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jCmluZGV4IGNjOWE1OTRjYmE1Li41NjFhYzY5ZmM3NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0xMjUyLDYgKzEyNTIsNyBAQCBJbml0UmVzdWx0 UmVsSW5mbyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCXJlc3VsdFJlbEluZm8t PnJpX3Byb2plY3RSZXR1cm5pbmcgPSBOVUxMOwogCXJlc3VsdFJlbEluZm8tPnJpX29uQ29u ZmxpY3RBcmJpdGVySW5kZXhlcyA9IE5JTDsKIAlyZXN1bHRSZWxJbmZvLT5yaV9vbkNvbmZs aWN0ID0gTlVMTDsKKwlyZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2YgPSBOVUxMOwog CXJlc3VsdFJlbEluZm8tPnJpX1JldHVybmluZ1Nsb3QgPSBOVUxMOwogCXJlc3VsdFJlbElu Zm8tPnJpX1RyaWdPbGRTbG90ID0gTlVMTDsKIAlyZXN1bHRSZWxJbmZvLT5yaV9UcmlnTmV3 U2xvdCA9IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9k aWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCmlu ZGV4IDExNjE1MjBmNzZiLi45ZjIyMzQzMjBmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZU1vZGlmeVRhYmxlLmMKQEAgLTUyLDYgKzUyLDcgQEAKIAogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNz L2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCiAjaW5jbHVk ZSAiYWNjZXNzL3hhY3QuaCIKQEAgLTU5LDE0ICs2MCwxOCBAQAogI2luY2x1ZGUgImV4ZWN1 dG9yL2V4ZWNQYXJ0aXRpb24uaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1 dG9yL3NwaS5oIgogI2luY2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAib3B0 aW1pemVyL29wdGltaXplci5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5o IgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9y YWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgogI2luY2x1ZGUgInV0aWxz L2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKKyNpbmNsdWRlICJ1dGls cy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGls cy9zbmFwbWdyLmgiCiAKQEAgLTEyMyw2ICsxMjgsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgVXBk YXRlQ29udGV4dAogCUxvY2tUdXBsZU1vZGUgbG9ja21vZGU7CiB9IFVwZGF0ZUNvbnRleHQ7 CiAKKy8qCisgKiBGUE9fUXVlcnlIYXNoRW50cnkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgRlBP X1F1ZXJ5SGFzaEVudHJ5IHsKKwlPaWQJCQlrZXk7CisJU1BJUGxhblB0cglwbGFuOworfSBG UE9fUXVlcnlIYXNoRW50cnk7CisKKy8qCisgKiBQbGFuIGNhY2hlIGZvciBGT1IgUE9SVElP TiBPRiBpbnNlcnRzCisgKi8KKyNkZWZpbmUgRlBPX0lOSVRfUVVFUllIQVNIU0laRSAzMgor c3RhdGljIEhUQUIgKmZwb19xdWVyeV9jYWNoZSA9IE5VTEw7CiAKIHN0YXRpYyB2b2lkIEV4 ZWNCYXRjaEluc2VydChNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCQkJCQkJCVJlc3Vs dFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCkBAIC0xNDQsNiArMTYyLDEzIEBAIHN0YXRpYyBi b29sIEV4ZWNPbkNvbmZsaWN0VXBkYXRlKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwK IAkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpleGNsdWRlZFNsb3QsCiAJCQkJCQkJCSBib29s IGNhblNldFRhZywKIAkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICoqcmV0dXJuaW5nKTsKK3N0 YXRpYyB2b2lkIGZwb19Jbml0SGFzaFRhYmxlKHZvaWQpOworc3RhdGljIFNQSVBsYW5QdHIg ZnBvX0ZldGNoUHJlcGFyZWRQbGFuKE9pZCByZWxpZCk7CitzdGF0aWMgdm9pZCBmcG9fSGFz aFByZXBhcmVkUGxhbihPaWQgcmVsaWQsIFNQSVBsYW5QdHIgcGxhbik7CitzdGF0aWMgdm9p ZCBFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4 dCwKKwkJCQkJCQkJCSAgRVN0YXRlICplc3RhdGUsCisJCQkJCQkJCQkgIFJlc3VsdFJlbElu Zm8gKnJlc3VsdFJlbEluZm8sCisJCQkJCQkJCQkgIEl0ZW1Qb2ludGVyIHR1cGxlaWQpOwog c3RhdGljIFR1cGxlVGFibGVTbG90ICpFeGVjUHJlcGFyZVR1cGxlUm91dGluZyhNb2RpZnlU YWJsZVN0YXRlICptdHN0YXRlLAogCQkJCQkJCQkJCQkgICBFU3RhdGUgKmVzdGF0ZSwKIAkJ CQkJCQkJCQkJICAgUGFydGl0aW9uVHVwbGVSb3V0aW5nICpwcm91dGUsCkBAIC0xNjYsNiAr MTkxLDcgQEAgc3RhdGljIFR1cGxlVGFibGVTbG90ICpFeGVjTWVyZ2VNYXRjaGVkKE1vZGlm eVRhYmxlQ29udGV4dCAqY29udGV4dCwKIHN0YXRpYyBUdXBsZVRhYmxlU2xvdCAqRXhlY01l cmdlTm90TWF0Y2hlZChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCQkJ ICAgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCQkJCQkJCQkgICBib29sIGNh blNldFRhZyk7CitzdGF0aWMgdm9pZCBFeGVjU2V0dXBUcmFuc2l0aW9uQ2FwdHVyZVN0YXRl KE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUsIEVTdGF0ZSAqZXN0YXRlKTsKIAogCiAvKgpA QCAtMTIxNCw2ICsxMjQwLDM2NyBAQCBFeGVjSW5zZXJ0KE1vZGlmeVRhYmxlQ29udGV4dCAq Y29udGV4dCwKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJZnBv X0luaXRIYXNoVGFibGUKKyAqCisgKgkJQ3JlYXRlcyBhIGhhc2ggdGFibGUgdG8gaG9sZCBT UEkgcGxhbnMgdG8gaW5zZXJ0IGxlZnRvdmVycworICoJCWZyb20gYSBQT1JUSU9OIE9GIFVQ REFURS9ERUxFVEUKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQKK2Zwb19Jbml0 SGFzaFRhYmxlKHZvaWQpCit7CisJSEFTSENUTAkJY3RsOworCisJY3RsLmtleXNpemUgPSBz aXplb2YoT2lkKTsKKwljdGwuZW50cnlzaXplID0gc2l6ZW9mKEZQT19RdWVyeUhhc2hFbnRy eSk7CisJZnBvX3F1ZXJ5X2NhY2hlID0gaGFzaF9jcmVhdGUoIkZQT19xdWVyeV9jYWNoZSIs CisJCQkJCQkJCSAgRlBPX0lOSVRfUVVFUllIQVNIU0laRSwKKwkJCQkJCQkJICAmY3RsLCBI QVNIX0VMRU0gfCBIQVNIX0JMT0JTKTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCWZwb19G ZXRjaFByZXBhcmVkUGxhbgorICoKKyAqCQlMb29rdXAgZm9yIGEgcXVlcnkga2V5IGluIG91 ciBwcml2YXRlIGhhc2ggdGFibGUgb2YKKyAqCQlwcmVwYXJlZCBhbmQgc2F2ZWQgU1BJIGV4 ZWN1dGlvbiBwbGFucy4gUmV0dXJucyB0aGUgcGxhbgorICoJCWlmIGZvdW5kIG9yIE5VTEwu CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KK3N0YXRpYyBTUElQbGFuUHRyCitmcG9fRmV0Y2hQcmVw YXJlZFBsYW4oT2lkIHJlbGlkKQoreworCUZQT19RdWVyeUhhc2hFbnRyeSAqZW50cnk7CisJ U1BJUGxhblB0cglwbGFuOworCisJaWYgKCFmcG9fcXVlcnlfY2FjaGUpCisJCWZwb19Jbml0 SGFzaFRhYmxlKCk7CisKKwkvKgorCSAqIExvb2t1cCBmb3IgdGhlIGtleQorCSAqLworCWVu dHJ5ID0gKEZQT19RdWVyeUhhc2hFbnRyeSAqKSBoYXNoX3NlYXJjaChmcG9fcXVlcnlfY2Fj aGUsCisJCQkJCQkJCQkJCSAgICZyZWxpZCwKKwkJCQkJCQkJCQkJICAgSEFTSF9GSU5ELCBO VUxMKTsKKworCWlmICghZW50cnkpCisJCXJldHVybiBOVUxMOworCisJLyoKKwkgKiBDaGVj ayB3aGV0aGVyIHRoZSBwbGFuIGlzIHN0aWxsIHZhbGlkLiAgSWYgaXQgaXNuJ3QsIHdlIGRv bid0IHdhbnQgdG8KKwkgKiBzaW1wbHkgcmVseSBvbiBwbGFuY2FjaGUuYyB0byByZWdlbmVy YXRlIGl0OyByYXRoZXIgd2Ugc2hvdWxkIHN0YXJ0CisJICogZnJvbSBzY3JhdGNoIGFuZCBy ZWJ1aWxkIHRoZSBxdWVyeSB0ZXh0IHRvby4gIFRoaXMgaXMgdG8gY292ZXIgY2FzZXMKKwkg KiBzdWNoIGFzIHRhYmxlL2NvbHVtbiByZW5hbWVzLiAgV2UgZGVwZW5kIG9uIHRoZSBwbGFu Y2FjaGUgbWFjaGluZXJ5IHRvCisJICogZGV0ZWN0IHBvc3NpYmxlIGludmFsaWRhdGlvbnMs IHRob3VnaC4KKwkgKgorCSAqIENBVVRJT046IHRoaXMgY2hlY2sgaXMgb25seSB0cnVzdHdv cnRoeSBpZiB0aGUgY2FsbGVyIGhhcyBhbHJlYWR5CisJICogbG9ja2VkIGJvdGggRksgYW5k IFBLIHJlbHMuCisJICovCisJcGxhbiA9IGVudHJ5LT5wbGFuOworCWlmIChwbGFuICYmIFNQ SV9wbGFuX2lzX3ZhbGlkKHBsYW4pKQorCQlyZXR1cm4gcGxhbjsKKworCS8qCisJICogT3Ro ZXJ3aXNlIHdlIG1pZ2h0IGFzIHdlbGwgZmx1c2ggdGhlIGNhY2hlZCBwbGFuIG5vdywgdG8g ZnJlZSBhIGxpdHRsZQorCSAqIG1lbW9yeSBzcGFjZSBiZWZvcmUgd2UgbWFrZSBhIG5ldyBv bmUuCisJICovCisJZW50cnktPnBsYW4gPSBOVUxMOworCWlmIChwbGFuKQorCQlTUElfZnJl ZXBsYW4ocGxhbik7CisKKwlyZXR1cm4gTlVMTDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJ CWZwb19IYXNoUHJlcGFyZWRQbGFuCisgKgorICoJCUFkZCBhbm90aGVyIHBsYW4gdG8gb3Vy IHByaXZhdGUgU1BJIHF1ZXJ5IHBsYW4gaGFzaHRhYmxlLgorICogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CitzdGF0aWMgdm9pZAorZnBvX0hhc2hQcmVwYXJlZFBsYW4oT2lkIHJlbGlkLCBTUElQbGFu UHRyIHBsYW4pCit7CisJRlBPX1F1ZXJ5SGFzaEVudHJ5ICplbnRyeTsKKwlib29sCQlmb3Vu ZDsKKworCS8qCisJICogT24gdGhlIGZpcnN0IGNhbGwgaW5pdGlhbGl6ZSB0aGUgaGFzaHRh YmxlCisJICovCisJaWYgKCFmcG9fcXVlcnlfY2FjaGUpCisJCWZwb19Jbml0SGFzaFRhYmxl KCk7CisKKwkvKgorCSAqIEFkZCB0aGUgbmV3IHBsYW4uIFdlIG1pZ2h0IGJlIG92ZXJ3cml0 aW5nIGFuIGVudHJ5IHByZXZpb3VzbHkgZm91bmQKKwkgKiBpbnZhbGlkIGJ5IGZwb19GZXRj aFByZXBhcmVkUGxhbi4KKwkgKi8KKwllbnRyeSA9IChGUE9fUXVlcnlIYXNoRW50cnkgKikg aGFzaF9zZWFyY2goZnBvX3F1ZXJ5X2NhY2hlLAorCQkJCQkJCQkJCQkgICAmcmVsaWQsCisJ CQkJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisJQXNzZXJ0KCFmb3VuZCB8fCBl bnRyeS0+cGxhbiA9PSBOVUxMKTsKKwllbnRyeS0+cGxhbiA9IHBsYW47Cit9CisKKy8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzCisgKgorICoJCUluc2Vy dCB0dXBsZXMgZm9yIHRoZSB1bnRvdWNoZWQgcG9ydGlvbiBvZiBhIHJvdyBpbiBhIEZPUgor ICoJCVBPUlRJT04gT0YgVVBEQVRFL0RFTEVURQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCitzdGF0 aWMgdm9pZAorRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhNb2RpZnlUYWJsZUNvbnRleHQg KmNvbnRleHQsCisJCQkJCQkgIEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJICBSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLAorCQkJCQkJICBJdGVtUG9pbnRlciB0dXBsZWlkKQorewor CU1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUgPSBjb250ZXh0LT5tdHN0YXRlOworCU1vZGlm eVRhYmxlICpub2RlID0gKE1vZGlmeVRhYmxlICopIG10c3RhdGUtPnBzLnBsYW47CisJRm9y UG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9k ZS0+Zm9yUG9ydGlvbk9mOworCUF0dHJOdW1iZXIJcmFuZ2VBdHRubzsKKwlPaWQJcmVsaWQ7 CisJVHVwbGVEZXNjIHR1cGRlc2M7CisJaW50CW5hdHRzOworCURhdHVtCW9sZFJhbmdlOwor CVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqZnBvU3Rh dGUgPSByZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CisJVHVwbGVUYWJsZVNsb3Qg Km9sZHR1cGxlU2xvdCA9IGZwb1N0YXRlLT5mcF9FeGlzdGluZzsKKwlUdXBsZVRhYmxlU2xv dCAqbGVmdG92ZXJTbG90OworCVR1cGxlQ29udmVyc2lvbk1hcCAqbWFwID0gTlVMTDsKKwlI ZWFwVHVwbGUgb2xkdHVwbGUgPSBOVUxMOworCUZtZ3JJbmZvIGZsaW5mbzsKKwlSZXR1cm5T ZXRJbmZvIHJzaTsKKwlSZWxhdGlvbiByZWw7CisJYm9vbCBkaWRJbml0ID0gZmFsc2U7CisJ Ym9vbCBzaG91bGRGcmVlID0gZmFsc2U7CisJTE9DQUxfRkNJTkZPKGZjaW5mbywgMik7CisK KwkvKgorCSAqIEdldCB0aGUgcmFuZ2Ugb2YgdGhlIG9sZCBwcmUtVVBEQVRFL0RFTEVURSB0 dXBsZSwKKwkgKiBzbyB3ZSBjYW4gaW50ZXJzZWN0IGl0IHdpdGggdGhlIEZPUiBQT1JUSU9O IE9GIHRhcmdldAorCSAqIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSAibGVmdG92ZXJzIiB0 byBpbnNlcnQuCisJICoKKwkgKiBXZSBoYXZlIGFscmVhZHkgbG9ja2VkIHRoZSB0dXBsZSBp biBFeGVjVXBkYXRlL0V4ZWNEZWxldGUKKwkgKiBhbmQgaXQgaGFzIHBhc3NlZCBFdmFsUGxh blF1YWwuCisJICogTWFrZSBzdXJlIHdlJ3JlIGxvb2tpbmcgYXQgdGhlIG1vc3QgcmVjZW50 IHZlcnNpb24uCisJICogT3RoZXJ3aXNlIGNvbmN1cnJlbnQgdXBkYXRlcyBvZiB0aGUgc2Ft ZSB0dXBsZSBpbiBSRUFEIENPTU1JVFRFRAorCSAqIGNvdWxkIGluc2VydCBjb25mbGljdGlu ZyAibGVmdG92ZXJzIi4KKwkgKi8KKwlpZiAoIXRhYmxlX3R1cGxlX2ZldGNoX3Jvd192ZXJz aW9uKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYywgdHVwbGVpZCwgU25hcHNob3RB bnksIG9sZHR1cGxlU2xvdCkpCisJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gZmV0Y2ggdHVw bGUgZm9yIEZPUiBQT1JUSU9OIE9GIik7CisKKwkvKgorCSAqIEdldCB0aGUgb2xkIHJhbmdl IG9mIHRoZSByZWNvcmQgYmVpbmcgdXBkYXRlZC9kZWxldGVkLgorCSAqIE11c3QgcmVhZCB3 aXRoIHRoZSBhdHRubyBvZiB0aGUgbGVhZiBwYXJ0aXRpb24uCisJICovCisKKwlyYW5nZUF0 dG5vID0gZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm87CisJaWYgKHJlc3VsdFJl bEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQltYXAgPSBFeGVjR2V0Q2hpbGRUb1Jv b3RNYXAocmVzdWx0UmVsSW5mbyk7CisJaWYgKG1hcCAhPSBOVUxMKQorCQlyYW5nZUF0dG5v ID0gbWFwLT5hdHRyTWFwLT5hdHRudW1zW3JhbmdlQXR0bm8gLSAxXTsKKwlzbG90X2dldGFs bGF0dHJzKG9sZHR1cGxlU2xvdCk7CisKKwlpZiAob2xkdHVwbGVTbG90LT50dHNfaXNudWxs W3JhbmdlQXR0bm8gLSAxXSkKKwkJZWxvZyhFUlJPUiwgImZvdW5kIGEgTlVMTCByYW5nZSBp biBhIHRlbXBvcmFsIHRhYmxlIik7CisJb2xkUmFuZ2UgPSBvbGR0dXBsZVNsb3QtPnR0c192 YWx1ZXNbcmFuZ2VBdHRubyAtIDFdOworCisJLyoKKwkgKiBHZXQgdGhlIHJhbmdlJ3MgdHlw ZSBjYWNoZSBlbnRyeS4gVGhpcyBpcyB3b3J0aCBjYWNoaW5nIGZvciB0aGUgd2hvbGUKKwkg KiBVUERBVEUvREVMRVRFIGFzIHJhbmdlIGZ1bmN0aW9ucyBkby4KKwkgKi8KKworCXR5cGNh Y2hlID0gZnBvU3RhdGUtPmZwX2xlZnRvdmVyc3R5cGNhY2hlOworCWlmICh0eXBjYWNoZSA9 PSBOVUxMKQorCXsKKwkJdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShmb3JQb3J0aW9u T2YtPnJhbmdlVHlwZSwgMCk7CisJCWZwb1N0YXRlLT5mcF9sZWZ0b3ZlcnN0eXBjYWNoZSA9 IHR5cGNhY2hlOworCX0KKworCS8qCisJICogR2V0IHRoZSByYW5nZXMgdG8gdGhlIGxlZnQv cmlnaHQgb2YgdGhlIHRhcmdldGVkIHJhbmdlLgorCSAqIFdlIGNhbGwgYSBTRVRPRiBzdXBw b3J0IGZ1bmN0aW9uIGFuZCBpbnNlcnQgYXMgbWFueSBsZWZ0b3ZlcnMKKwkgKiBhcyBpdCBn aXZlcyB1cy4gQWx0aG91Z2ggcmFuZ2V0eXBlcyBoYXZlIDAvMS8yIGxlZnRvdmVycywKKwkg KiBtdWx0aXJhbmdlcyBoYXZlIDAvMSwgYW5kIG90aGVyIHR5cGVzIG1heSBoYXZlIG1vcmUu CisJICovCisKKwlmbWdyX2luZm8oZm9yUG9ydGlvbk9mLT53aXRob3V0UG9ydGlvblByb2Ms ICZmbGluZm8pOworCXJzaS50eXBlID0gVF9SZXR1cm5TZXRJbmZvOworCXJzaS5lY29udGV4 dCA9IG10c3RhdGUtPnBzLnBzX0V4cHJDb250ZXh0OworCXJzaS5leHBlY3RlZERlc2MgPSBO VUxMOworCXJzaS5hbGxvd2VkTW9kZXMgPSAoaW50KSAoU0ZSTV9WYWx1ZVBlckNhbGwpOwor CXJzaS5yZXR1cm5Nb2RlID0gU0ZSTV9WYWx1ZVBlckNhbGw7CisJcnNpLnNldFJlc3VsdCA9 IE5VTEw7CisJcnNpLnNldERlc2MgPSBOVUxMOworCisJSW5pdEZ1bmN0aW9uQ2FsbEluZm9E YXRhKCpmY2luZm8sICZmbGluZm8sIDIsIEludmFsaWRPaWQsIE5VTEwsIChOb2RlICopICZy c2kpOworCWZjaW5mby0+YXJnc1swXS52YWx1ZSA9IG9sZFJhbmdlOworCWZjaW5mby0+YXJn c1swXS5pc251bGwgPSBmYWxzZTsKKwlmY2luZm8tPmFyZ3NbMV0udmFsdWUgPSBmcG9TdGF0 ZS0+ZnBfdGFyZ2V0UmFuZ2U7CisJZmNpbmZvLT5hcmdzWzFdLmlzbnVsbCA9IGZhbHNlOwor CisJLyoKKwkgKiBJZiB0aGVyZSBhcmUgcGFydGl0aW9ucywgd2UgbXVzdCBpbnNlcnQgaW50 byB0aGUgcm9vdCB0YWJsZSwKKwkgKiBzbyB3ZSBnZXQgdHVwbGUgcm91dGluZy4gV2UgYWxy ZWFkeSBzZXQgdXAgbGVmdG92ZXJTbG90CisJICogd2l0aCB0aGUgcm9vdCB0dXBsZSBkZXNj cmlwdG9yLgorCSAqLworCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5m bykKKwkJcmVzdWx0UmVsSW5mbyA9IHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJ bmZvOworCisJcmVsID0gcmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOworCXJlbGlk ID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOworCisJLyogSW5zZXJ0IGEgbGVmdG92ZXIgZm9y IGVhY2ggdmFsdWUgcmV0dXJuZWQgYnkgdGhlIHdpdGhvdXRfcG9ydGlvbiBoZWxwZXIgZnVu Y3Rpb24gKi8KKwl3aGlsZSAodHJ1ZSkKKwl7CisJCURhdHVtIGxlZnRvdmVyID0gRnVuY3Rp b25DYWxsSW52b2tlKGZjaW5mbyk7CisJCVNQSVBsYW5QdHIJcXBsYW4gPSBOVUxMOworCQlp bnQgc3BpX3Jlc3VsdDsKKworCQkvKiBBcmUgd2UgZG9uZT8gKi8KKwkJaWYgKHJzaS5pc0Rv bmUgPT0gRXhwckVuZFJlc3VsdCkKKwkJCWJyZWFrOworCisJCWlmIChmY2luZm8tPmlzbnVs bCkKKwkJCWVsb2coRVJST1IsICJHb3QgYSBudWxsIGZyb20gd2l0aG91dF9wb3J0aW9uIGZ1 bmN0aW9uIik7CisKKwkJaWYgKCFkaWRJbml0KQorCQl7CisJCQkvKgorCQkJICogQ29udmVy dCBvbGR0dXBsZSB0byB0aGUgYmFzZSB0YWJsZSdzIGZvcm1hdCBpZiBuZWNlc3NhcnkuCisJ CQkgKiBXZSBuZWVkIHRvIGluc2VydCBsZWZ0b3ZlcnMgdGhyb3VnaCB0aGUgcm9vdCBwYXJ0 aXRpb24KKwkJCSAqIHNvIHRoZXkgZ2V0IHJvdXRlZCBjb3JyZWN0bHkuCisJCQkgKi8KKwkJ CWlmIChtYXAgIT0gTlVMTCkKKwkJCXsKKwkJCQlsZWZ0b3ZlclNsb3QgPSBleGVjdXRlX2F0 dHJfbWFwX3Nsb3QobWFwLT5hdHRyTWFwLAorCQkJCQkJCQkJCQkJCSBvbGR0dXBsZVNsb3Qs CisJCQkJCQkJCQkJCQkJIGZwb1N0YXRlLT5mcF9MZWZ0b3Zlcik7CisJCQl9CisJCQllbHNl CisJCQkJbGVmdG92ZXJTbG90ID0gb2xkdHVwbGVTbG90OworCisJCQl0dXBkZXNjID0gbGVm dG92ZXJTbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yOworCQkJbmF0dHMgPSB0dXBkZXNjLT5u YXR0czsKKworCQkJLyoKKwkJCSAqIElmIHRhcmdldGluZyBhIGxlYWYgcGFydGl0aW9uLAor CQkJICogaXQgbWF5IG5vdCBoYXZlIGZwX3ZhbHVlcy9mcF9udWxscyB5ZXQuCisJCQkgKi8K KwkJCWlmICghZnBvU3RhdGUtPmZwX3ZhbHVlcykKKwkJCXsKKwkJCQlmcG9TdGF0ZS0+ZnBf dmFsdWVzID0gcGFsbG9jKG5hdHRzICogc2l6ZW9mKERhdHVtKSk7CisJCQkJZnBvU3RhdGUt PmZwX251bGxzID0gcGFsbG9jKG5hdHRzICogc2l6ZW9mKGNoYXIpKTsKKwkJCX0KKworCQkJ LyoKKwkJCSAqIENvcHkgKHBvdGVudGlhbGx5IG1hcHBlZCkgb2xkdHVwbGUgdmFsdWVzIGlu dG8gU1BJIGlucHV0IGFycmF5cy4KKwkJCSAqIFdlJ2xsIG92ZXJ3cml0ZSB0aGUgcmFuZ2Uv c3RhcnQvZW5kIGF0dHJpYnV0ZXMgYmVsb3cuCisJCQkgKi8KKwkJCW1lbWNweShmcG9TdGF0 ZS0+ZnBfdmFsdWVzLCBsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXMsIG5hdHRzICogc2l6ZW9m KERhdHVtKSk7CisKKwkJCVNQSV9jb25uZWN0KCk7CisKKwkJCWRpZEluaXQgPSB0cnVlOwor CQl9CisKKwkJLyoKKwkJICogQnVpbGQgYW4gU1BJIHBsYW4gaWYgd2UgZG9uJ3QgaGF2ZSBv bmUgeWV0LgorCQkgKiBXZSBhbHdheXMgaW5zZXJ0IGludG8gdGhlIHJvb3QgcGFydGl0aW9u LAorCQkgKiBzbyB0aGF0IHdlIGdldCB0dXBsZSByb3V0aW5nLgorCQkgKiBUaGVyZWZvcmUg dGhlIHBsYW4gaXMgdGhlIHNhbWUgbm8gbWF0dGVyIHdoaWNoIGxlYWYKKwkJICogd2UgYXJl IHVwZGF0aW5nL2RlbGV0aW5nLgorCQkgKi8KKwkJaWYgKCFxcGxhbiAmJiAhKHFwbGFuID0g ZnBvX0ZldGNoUHJlcGFyZWRQbGFuKHJlbGlkKSkpCisJCXsKKwkJCU9pZAkqdHlwZXMgPSBw YWxsb2MwKG5hdHRzICogc2l6ZW9mKE9pZCkpOworCQkJaW50IGk7CisJCQlib29sIHN0YXJ0 ZWQgPSBmYWxzZTsKKwkJCVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQkJU3RyaW5nSW5m b0RhdGEgcGFyYW1idWY7CisJCQljb25zdCBjaGFyICp0YWJsZW5hbWU7CisJCQljb25zdCBj aGFyICpzY2hlbWFuYW1lOworCQkJY29uc3QgY2hhciAqY29sbmFtZTsKKworCQkJaW5pdFN0 cmluZ0luZm8oJnF1ZXJ5YnVmKTsKKwkJCWluaXRTdHJpbmdJbmZvKCZwYXJhbWJ1Zik7CisK KwkJCXNjaGVtYW5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3Bh Y2UocmVsKSk7CisJCQl0YWJsZW5hbWUgPSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp OworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICJJTlNFUlQgSU5UTyAlcyAoIiwK KwkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hbmFtZSwgdGFibGVu YW1lKSk7CisKKwkJCWZvciAoaSA9IDA7IGkgPCBuYXR0czsgaSsrKSB7CisJCQkJLyogRG9u J3QgdHJ5IHRvIGluc2VydCBpbnRvIGRyb3BwZWQgb3IgZ2VuZXJhdGVkIGNvbHVtbnMgKi8K KwkJCQlpZiAodHVwZGVzYy0+YXR0cnNbaV0uYXR0aXNkcm9wcGVkIHx8IHR1cGRlc2MtPmF0 dHJzW2ldLmF0dGdlbmVyYXRlZCkKKwkJCQkJY29udGludWU7CisKKwkJCQl0eXBlc1tpXSA9 IHR1cGRlc2MtPmF0dHJzW2ldLmF0dHR5cGlkOworCisJCQkJY29sbmFtZSA9IHF1b3RlX2lk ZW50aWZpZXIoTmFtZVN0cigqYXR0bnVtQXR0TmFtZShyZWwsIGkgKyAxKSkpOworCQkJCWlm IChzdGFydGVkKQorCQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIs ICVzIiwgY29sbmFtZSk7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJnBhcmFtYnVmLCAiLCAk JWQiLCBpICsgMSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWFwcGVuZFN0cmlu Z0luZm8oJnF1ZXJ5YnVmLCAiJXMiLCBjb2xuYW1lKTsKKwkJCQkJYXBwZW5kU3RyaW5nSW5m bygmcGFyYW1idWYsICIkJWQiLCBpICsgMSk7CisJCQkJfQorCQkJCXN0YXJ0ZWQgPSB0cnVl OworCQkJfQorCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIpIFZBTFVFUyAoJXMp IiwgcGFyYW1idWYuZGF0YSk7CisKKwkJCXFwbGFuID0gU1BJX3ByZXBhcmUocXVlcnlidWYu ZGF0YSwgbmF0dHMsIHR5cGVzKTsKKwkJCWlmICghcXBsYW4pCisJCQkJZWxvZyhFUlJPUiwg IlNQSV9wcmVwYXJlIHJldHVybmVkICVzIGZvciAlcyIsCisJCQkJCQlTUElfcmVzdWx0X2Nv ZGVfc3RyaW5nKFNQSV9yZXN1bHQpLCBxdWVyeWJ1Zi5kYXRhKTsKKworCQkJU1BJX2tlZXBw bGFuKHFwbGFuKTsKKwkJCWZwb19IYXNoUHJlcGFyZWRQbGFuKHJlbGlkLCBxcGxhbik7CisJ CX0KKworCQkvKgorCQkgKiBTZXQgdXAgdGhlIFNQSSBwYXJhbXMuCisJCSAqIENvcHkgbW9z dCBhdHRyaWJ1dGVzJyBvbGQgdmFsdWVzLAorCQkgKiBidXQgZm9yIHRoZSByYW5nZS9zdGFy dC9lbmQgdXNlIHRoZSBsZWZ0b3Zlci4KKwkJICovCisKKwkJLyogQ29udmVydCBib29sIG51 bGwgYXJyYXkgdG8gU1BJIGNoYXIgYXJyYXkgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBu YXR0czsgaSsrKQorCQl7CisJCQkvKgorCQkJICogRG9uJ3QgdHJ5IHRvIGluc2VydCBpbnRv IGRyb3BwZWQgb3IgZ2VuZXJhdGVkIGNvbHVtbnMuCisJCQkgKiBUZWxsIFNQSSB0aGVzZSBw YXJhbXMgYXJlIG51bGwganVzdCB0byBiZSBzYWZlLgorCQkJICovCisJCQlpZiAodHVwZGVz Yy0+YXR0cnNbaV0uYXR0aXNkcm9wcGVkIHx8IHR1cGRlc2MtPmF0dHJzW2ldLmF0dGdlbmVy YXRlZCkKKwkJCQlmcG9TdGF0ZS0+ZnBfbnVsbHNbaV0gPSAnbic7CisJCQllbHNlCisJCQkJ ZnBvU3RhdGUtPmZwX251bGxzW2ldID0gbGVmdG92ZXJTbG90LT50dHNfaXNudWxsW2ldID8g J24nIDogJyAnOworCQl9CisKKwkJZnBvU3RhdGUtPmZwX251bGxzW2ZvclBvcnRpb25PZi0+ cmFuZ2VWYXItPnZhcmF0dG5vIC0gMV0gPSAnICc7CisJCWZwb1N0YXRlLT5mcF92YWx1ZXNb Zm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGxlZnRvdmVyOworCisJ CXNwaV9yZXN1bHQgPSBTUElfZXhlY3V0ZV9zbmFwc2hvdChxcGxhbiwKKwkJCQkJCQkJCQkg IGZwb1N0YXRlLT5mcF92YWx1ZXMsCisJCQkJCQkJCQkJICBmcG9TdGF0ZS0+ZnBfbnVsbHMs CisJCQkJCQkJCQkJICBHZXRMYXRlc3RTbmFwc2hvdCgpLAorCQkJCQkJCQkJCSAgSW52YWxp ZFNuYXBzaG90LCBmYWxzZSwgdHJ1ZSwgMCk7CisJCWlmIChzcGlfcmVzdWx0ICE9IFNQSV9P S19JTlNFUlQpCisJCQllbG9nKEVSUk9SLCAiU1BJX2V4ZWN1dGVfc25hcHNob3QgcmV0dXJu ZWQgJXMiLCBTUElfcmVzdWx0X2NvZGVfc3RyaW5nKHNwaV9yZXN1bHQpKTsKKwl9CisKKwlp ZiAoZGlkSW5pdCkKKwl7CisJCWlmIChTUElfZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkK KwkJCWVsb2coRVJST1IsICJTUElfZmluaXNoIGZhaWxlZCIpOworCisJCWlmIChzaG91bGRG cmVlKQorCQkJaGVhcF9mcmVldHVwbGUob2xkdHVwbGUpOworCX0KK30KKwogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICoJCUV4ZWNCYXRjaEluc2VydAogICoKQEAgLTEzNjYsNyArMTc1Myw4IEBAIEV4 ZWNEZWxldGVBY3QoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZv ICpyZXN1bHRSZWxJbmZvLAogICoKICAqIENsb3Npbmcgc3RlcHMgb2YgdHVwbGUgZGVsZXRp b247IHRoaXMgaW52b2tlcyBBRlRFUiBGT1IgRUFDSCBST1cgdHJpZ2dlcnMsCiAgKiBpbmNs dWRpbmcgdGhlIFVQREFURSB0cmlnZ2VycyBpZiB0aGUgZGVsZXRpb24gaXMgYmVpbmcgZG9u ZSBhcyBwYXJ0IG9mIGEKLSAqIGNyb3NzLXBhcnRpdGlvbiB0dXBsZSBtb3ZlLgorICogY3Jv c3MtcGFydGl0aW9uIHR1cGxlIG1vdmUuIEl0IGFsc28gaW5zZXJ0cyBsZWZ0b3ZlcnMgZnJv bSBhIEZPUiBQT1JUSU9OIE9GCisgKiBkZWxldGUuCiAgKi8KIHN0YXRpYyB2b2lkCiBFeGVj RGVsZXRlRXBpbG9ndWUoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLApAQCAtMTM5OSw2ICsxNzg3LDEwIEBAIEV4ZWNEZWxldGVF cGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8sCiAJCWFyX2RlbGV0ZV90cmlnX3RjcyA9IE5VTEw7CiAJfQogCisJLyog Q29tcHV0ZSBsZWZ0b3ZlcnMgaW4gRk9SIFBPUlRJT04gT0YgKi8KKwlpZiAoKChNb2RpZnlU YWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+Zm9yUG9ydGlvbk9mKQorCQlF eGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNvbnRleHQsIGVzdGF0ZSwgcmVzdWx0UmVsSW5m bywgdHVwbGVpZCk7CisKIAkvKiBBRlRFUiBST1cgREVMRVRFIFRyaWdnZXJzICovCiAJRXhl Y0FSRGVsZXRlVHJpZ2dlcnMoZXN0YXRlLCByZXN1bHRSZWxJbmZvLCB0dXBsZWlkLCBvbGR0 dXBsZSwKIAkJCQkJCSBhcl9kZWxldGVfdHJpZ190Y3MsIGNoYW5naW5nUGFydCk7CkBAIC0x Nzc5LDcgKzIxNzEsMTEgQEAgRXhlY0Nyb3NzUGFydGl0aW9uVXBkYXRlKE1vZGlmeVRhYmxl Q29udGV4dCAqY29udGV4dCwKIAlpZiAocmVzdWx0UmVsSW5mbyA9PSBtdHN0YXRlLT5yb290 UmVzdWx0UmVsSW5mbykKIAkJRXhlY1BhcnRpdGlvbkNoZWNrRW1pdEVycm9yKHJlc3VsdFJl bEluZm8sIHNsb3QsIGVzdGF0ZSk7CiAKLQkvKiBJbml0aWFsaXplIHR1cGxlIHJvdXRpbmcg aW5mbyBpZiBub3QgYWxyZWFkeSBkb25lLiAqLworCS8qCisJICogSW5pdGlhbGl6ZSB0dXBs ZSByb3V0aW5nIGluZm8gaWYgbm90IGFscmVhZHkgZG9uZS4KKwkgKiBOb3RlIHdoYXRldmVy IHdlIGRvIGhlcmUgbXVzdCBiZSBkb25lIGluIEV4ZWNJbml0TW9kaWZ5VGFibGUKKwkgKiBm b3IgRk9SIFBPUlRJT04gT0YgYXMgd2VsbC4KKwkgKi8KIAlpZiAobXRzdGF0ZS0+bXRfcGFy dGl0aW9uX3R1cGxlX3JvdXRpbmcgPT0gTlVMTCkKIAl7CiAJCVJlbGF0aW9uCXJvb3RSZWwg PSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOwpAQCAtMjE0 NSw2ICsyNTQxLDEwIEBAIEV4ZWNVcGRhdGVFcGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQg KmNvbnRleHQsIFVwZGF0ZUNvbnRleHQgKnVwZGF0ZUN4dCwKIAkJCQkJCQkJCQkJICAgTlVM TCwgTklMLAogCQkJCQkJCQkJCQkgICAodXBkYXRlQ3h0LT51cGRhdGVJbmRleGVzID09IFRV X1N1bW1hcml6aW5nKSk7CiAKKwkvKiBDb21wdXRlIGxlZnRvdmVycyBpbiBGT1IgUE9SVElP TiBPRiAqLworCWlmICgoKE1vZGlmeVRhYmxlICopIGNvbnRleHQtPm10c3RhdGUtPnBzLnBs YW4pLT5mb3JQb3J0aW9uT2YpCisJCUV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoY29udGV4 dCwgY29udGV4dC0+ZXN0YXRlLCByZXN1bHRSZWxJbmZvLCB0dXBsZWlkKTsKKwogCS8qIEFG VEVSIFJPVyBVUERBVEUgVHJpZ2dlcnMgKi8KIAlFeGVjQVJVcGRhdGVUcmlnZ2Vycyhjb250 ZXh0LT5lc3RhdGUsIHJlc3VsdFJlbEluZm8sCiAJCQkJCQkgTlVMTCwgTlVMTCwKQEAgLTQ2 NDAsNiArNTA0MCw5OSBAQCBFeGVjSW5pdE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlICpub2Rl LCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAkJfQogCX0KIAorCS8qCisJICogSWYg bmVlZGVkLCBpbml0aWFsaXplIHRoZSB0YXJnZXQgcmFuZ2UgZm9yIEZPUiBQT1JUSU9OIE9G LgorCSAqLworCWlmIChub2RlLT5mb3JQb3J0aW9uT2YpCisJeworCQlSZXN1bHRSZWxJbmZv ICpyb290UmVzdWx0UmVsSW5mbzsKKwkJVHVwbGVEZXNjIHR1cERlc2M7CisJCUZvclBvcnRp b25PZkV4cHIgKmZvclBvcnRpb25PZjsKKwkJRGF0dW0JdGFyZ2V0UmFuZ2U7CisJCWJvb2wJ aXNOdWxsOworCQlFeHByQ29udGV4dCAqZWNvbnRleHQ7CisJCUV4cHJTdGF0ZSAqZXhwclN0 YXRlOworCQlGb3JQb3J0aW9uT2ZTdGF0ZSAqZnBvU3RhdGU7CisKKwkJcm9vdFJlc3VsdFJl bEluZm8gPSBtdHN0YXRlLT5yZXN1bHRSZWxJbmZvOworCQlpZiAocm9vdFJlc3VsdFJlbElu Zm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQkJcm9vdFJlc3VsdFJlbEluZm8gPSByb290 UmVzdWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm87CisKKwkJdHVwRGVzYyA9IHJv b3RSZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MtPnJkX2F0dDsKKwkJZm9yUG9ydGlv bk9mID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZS0+Zm9yUG9ydGlvbk9mOworCisJCS8q IEV2YWwgdGhlIEZPUiBQT1JUSU9OIE9GIHRhcmdldCAqLworCQlpZiAobXRzdGF0ZS0+cHMu cHNfRXhwckNvbnRleHQgPT0gTlVMTCkKKwkJCUV4ZWNBc3NpZ25FeHByQ29udGV4dChlc3Rh dGUsICZtdHN0YXRlLT5wcyk7CisJCWVjb250ZXh0ID0gbXRzdGF0ZS0+cHMucHNfRXhwckNv bnRleHQ7CisKKwkJZXhwclN0YXRlID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGZvclBv cnRpb25PZi0+dGFyZ2V0UmFuZ2UsIGVzdGF0ZSk7CisJCXRhcmdldFJhbmdlID0gRXhlY0V2 YWxFeHByKGV4cHJTdGF0ZSwgZWNvbnRleHQsICZpc051bGwpOworCQlpZiAoaXNOdWxsKQor CQkJZWxvZyhFUlJPUiwgIkdvdCBhIE5VTEwgRk9SIFBPUlRJT04gT0YgdGFyZ2V0IHJhbmdl Iik7CisKKwkJLyogQ3JlYXRlIHN0YXRlIGZvciBGT1IgUE9SVElPTiBPRiBvcGVyYXRpb24g Ki8KKworCQlmcG9TdGF0ZSA9IG1ha2VOb2RlKEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZnBv U3RhdGUtPmZwX3JhbmdlTmFtZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VfbmFtZTsKKwkJZnBv U3RhdGUtPmZwX3JhbmdlVHlwZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VUeXBlOworCQlmcG9T dGF0ZS0+ZnBfcmFuZ2VBdHRubyA9IGZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5v OworCQlmcG9TdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2UgPSB0YXJnZXRSYW5nZTsKKworCQkvKiBJ bml0aWFsaXplIHNsb3QgZm9yIHRoZSBleGlzdGluZyB0dXBsZSAqLworCisJCWZwb1N0YXRl LT5mcF9FeGlzdGluZyA9CisJCQl0YWJsZV9zbG90X2NyZWF0ZShyb290UmVzdWx0UmVsSW5m by0+cmlfUmVsYXRpb25EZXNjLAorCQkJCQkJCSAgJm10c3RhdGUtPnBzLnN0YXRlLT5lc190 dXBsZVRhYmxlKTsKKworCQkvKiBDcmVhdGUgdGhlIHR1cGxlIHNsb3QgZm9yIElOU0VSVGlu ZyB0aGUgbGVmdG92ZXJzICovCisKKwkJZnBvU3RhdGUtPmZwX0xlZnRvdmVyID0KKwkJCUV4 ZWNJbml0RXh0cmFUdXBsZVNsb3QobXRzdGF0ZS0+cHMuc3RhdGUsIHR1cERlc2MsICZUVFNP cHNWaXJ0dWFsKTsKKworCQkvKiBBbGxvY2F0ZSBvdXIgU1BJIHBhcmFtIGFycmF5cyBoZXJl IHNvIHdlIGNhbiByZXVzZSB0aGVtICovCisJCWZwb1N0YXRlLT5mcF92YWx1ZXMgPSBwYWxs b2ModHVwRGVzYy0+bmF0dHMgKiBzaXplb2YoRGF0dW0pKTsKKwkJZnBvU3RhdGUtPmZwX251 bGxzID0gcGFsbG9jKHR1cERlc2MtPm5hdHRzICogc2l6ZW9mKGNoYXIpKTsKKworCQkvKgor CQkgKiBXZSBtdXN0IGF0dGFjaCB0aGUgRm9yUG9ydGlvbk9mU3RhdGUgdG8gYWxsIHJlc3Vs dCByZWxzLAorCQkgKiBpbiBjYXNlIG9mIGEgY3Jvc3MtcGFydGl0aW9uIHVwZGF0ZSBvciB0 cmlnZ2VycyBmaXJpbmcKKwkJICogb24gcGFydGl0aW9ucy4KKwkJICogWFhYOiBDYW4gd2Ug ZGVmZXIgdGhpcyB0byBvbmx5IHRoZSBsZWFmcyB3ZSB0b3VjaD8KKwkJICovCisJCWZvciAo aSA9IDA7IGkgPCBucmVsczsgaSsrKQorCQl7CisJCQlGb3JQb3J0aW9uT2ZTdGF0ZQkqbGVh ZlN0YXRlOworCQkJcmVzdWx0UmVsSW5mbyA9ICZtdHN0YXRlLT5yZXN1bHRSZWxJbmZvW2ld OworCisJCQlsZWFmU3RhdGUgPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZTdGF0ZSk7CisJCQls ZWFmU3RhdGUtPmZwX3JhbmdlTmFtZSA9IGZwb1N0YXRlLT5mcF9yYW5nZU5hbWU7CisJCQls ZWFmU3RhdGUtPmZwX3JhbmdlVHlwZSA9IGZwb1N0YXRlLT5mcF9yYW5nZVR5cGU7CisJCQls ZWFmU3RhdGUtPmZwX3JhbmdlQXR0bm8gPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VBdHRubzsKKwkJ CWxlYWZTdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2UgPSBmcG9TdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2U7 CisJCQlsZWFmU3RhdGUtPmZwX0xlZnRvdmVyID0gZnBvU3RhdGUtPmZwX0xlZnRvdmVyOwor CQkJLyogRWFjaCBwYXJ0aXRpb24gbmVlZHMgYSBzbG90IG1hdGNoaW5nIGl0cyB0dXBsZSBk ZXNjcmlwdG9yICovCisJCQlsZWFmU3RhdGUtPmZwX0V4aXN0aW5nID0KKwkJCQl0YWJsZV9z bG90X2NyZWF0ZShyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAg Jm10c3RhdGUtPnBzLnN0YXRlLT5lc190dXBsZVRhYmxlKTsKKwkJCS8qCisJCQkgKiBMZWFm cyBuZWVkIHRoZW0gb3duIFNQSSBpbnB1dCBhcnJheXMKKwkJCSAqIHNpbmNlIHRoZXkgbWln aHQgaGF2ZSBleHRyYSBhdHRyaWJ1dGVzLAorCQkJICogYnV0IHdlJ2xsIGFsbG9jYXRlIHRo b3NlIGFzIG5lZWRlZC4KKwkJCSAqLworCQkJbGVhZlN0YXRlLT5mcF92YWx1ZXMgPSBOVUxM OworCQkJbGVhZlN0YXRlLT5mcF9udWxscyA9IE5VTEw7CisKKwkJCXJlc3VsdFJlbEluZm8t PnJpX2ZvclBvcnRpb25PZiA9IGxlYWZTdGF0ZTsKKwkJfQorCisJCS8qIE1ha2Ugc3VyZSB0 aGUgcm9vdCByZWxhdGlvbiBoYXMgdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSB0b28uICov CisJCWlmIChub2RlLT5yb290UmVsYXRpb24gPiAwKQorCQkJbXRzdGF0ZS0+cm9vdFJlc3Vs dFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9IGZwb1N0YXRlOworCisJCS8qIERvbid0IGZy ZWUgdGhlIEV4cHJDb250ZXh0IGhlcmUgYmVjYXVzZSB0aGUgcmVzdWx0IG11c3QgbGFzdCBm b3IgdGhlIHdob2xlIHF1ZXJ5ICovCisJfQorCiAJLyoKIAkgKiBJZiB3ZSBoYXZlIGFueSBz ZWNvbmRhcnkgcmVsYXRpb25zIGluIGFuIFVQREFURSBvciBERUxFVEUsIHRoZXkgbmVlZCB0 bwogCSAqIGJlIHRyZWF0ZWQgbGlrZSBub24tbG9ja2VkIHJlbGF0aW9ucyBpbiBTRUxFQ1Qg Rk9SIFVQREFURSwgaS5lLiwgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IDJmYjJlNzM2MDRl Li5iMDdkODhjZTJmZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTc2NCw3ICs3NjQsNyBAQCBT UElfZXhlY3V0ZV9wbGFuX3dpdGhfcGFyYW1saXN0KFNQSVBsYW5QdHIgcGxhbiwgUGFyYW1M aXN0SW5mbyBwYXJhbXMsCiAgKiBlbmQgb2YgdGhlIGNvbW1hbmQuCiAgKgogICogVGhpcyBp cyBjdXJyZW50bHkgbm90IGRvY3VtZW50ZWQgaW4gc3BpLnNnbWwgYmVjYXVzZSBpdCBpcyBv bmx5IGludGVuZGVkCi0gKiBmb3IgdXNlIGJ5IFJJIHRyaWdnZXJzLgorICogZm9yIHVzZSBi eSBSSSB0cmlnZ2VycyBhbmQgRk9SIFBPUlRJT04gT0YuCiAgKgogICogUGFzc2luZyBzbmFw c2hvdCA9PSBJbnZhbGlkU25hcHNob3Qgd2lsbCBzZWxlY3QgdGhlIG5vcm1hbCBiZWhhdmlv ciBvZgogICogZmV0Y2hpbmcgYSBuZXcgc25hcHNob3QgZm9yIGVhY2ggcXVlcnkuCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCmluZGV4IGY3NjA3MjIyOGM5Li45NTAxMTEyMDQ5NSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQv bm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTI1NjEsNiArMjU2MSwxNCBAQCBleHByZXNzaW9uX3Ry ZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJ CQlicmVhazsKKwkJY2FzZSBUX0ZvclBvcnRpb25PZkV4cHI6CisJCQl7CisJCQkJRm9yUG9y dGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZTsK KworCQkJCWlmIChXQUxLKGZvclBvcnRpb25PZi0+dGFyZ2V0UmFuZ2UpKQorCQkJCQlyZXR1 cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUGFydGl0aW9uUHJ1bmVTdGVw T3A6CiAJCQl7CiAJCQkJUGFydGl0aW9uUHJ1bmVTdGVwT3AgKm9wc3RlcCA9IChQYXJ0aXRp b25QcnVuZVN0ZXBPcCAqKSBub2RlOwpAQCAtMjcwNyw2ICsyNzE1LDggQEAgcXVlcnlfdHJl ZV93YWxrZXJfaW1wbChRdWVyeSAqcXVlcnksCiAJCXJldHVybiB0cnVlOwogCWlmIChXQUxL KHF1ZXJ5LT5tZXJnZUpvaW5Db25kaXRpb24pKQogCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoV0FM SyhxdWVyeS0+Zm9yUG9ydGlvbk9mKSkKKwkJcmV0dXJuIHRydWU7CiAJaWYgKFdBTEsocXVl cnktPnJldHVybmluZ0xpc3QpKQogCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoV0FMSyhxdWVyeS0+ am9pbnRyZWUpKQpAQCAtMzU5MSw2ICszNjAxLDE5IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRh dG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJ CX0KIAkJCWJyZWFrOworCQljYXNlIFRfRm9yUG9ydGlvbk9mRXhwcjoKKwkJCXsKKwkJCQlG b3JQb3J0aW9uT2ZFeHByICpmcG8gPSAoRm9yUG9ydGlvbk9mRXhwciAqKSBub2RlOworCQkJ CUZvclBvcnRpb25PZkV4cHIgKm5ld25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBm cG8sIEZvclBvcnRpb25PZkV4cHIpOworCQkJCU1VVEFURShuZXdub2RlLT5yYW5nZVZhciwg ZnBvLT5yYW5nZVZhciwgVmFyICopOworCQkJCU1VVEFURShuZXdub2RlLT50YXJnZXRSYW5n ZSwgZnBvLT50YXJnZXRSYW5nZSwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+cmFu Z2VUYXJnZXRMaXN0LCBmcG8tPnJhbmdlVGFyZ2V0TGlzdCwgTGlzdCAqKTsKKworCQkJCXJl dHVybiAoTm9kZSAqKSBuZXdub2RlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9QYXJ0 aXRpb25QcnVuZVN0ZXBPcDoKIAkJCXsKIAkJCQlQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqb3Bz dGVwID0gKFBhcnRpdGlvblBydW5lU3RlcE9wICopIG5vZGU7CkBAIC0zNzcyLDYgKzM3OTUs NyBAQCBxdWVyeV90cmVlX211dGF0b3JfaW1wbChRdWVyeSAqcXVlcnksCiAJTVVUQVRFKHF1 ZXJ5LT5vbkNvbmZsaWN0LCBxdWVyeS0+b25Db25mbGljdCwgT25Db25mbGljdEV4cHIgKik7 CiAJTVVUQVRFKHF1ZXJ5LT5tZXJnZUFjdGlvbkxpc3QsIHF1ZXJ5LT5tZXJnZUFjdGlvbkxp c3QsIExpc3QgKik7CiAJTVVUQVRFKHF1ZXJ5LT5tZXJnZUpvaW5Db25kaXRpb24sIHF1ZXJ5 LT5tZXJnZUpvaW5Db25kaXRpb24sIE5vZGUgKik7CisJTVVUQVRFKHF1ZXJ5LT5mb3JQb3J0 aW9uT2YsIHF1ZXJ5LT5mb3JQb3J0aW9uT2YsIEZvclBvcnRpb25PZkV4cHIgKik7CiAJTVVU QVRFKHF1ZXJ5LT5yZXR1cm5pbmdMaXN0LCBxdWVyeS0+cmV0dXJuaW5nTGlzdCwgTGlzdCAq KTsKIAlNVVRBVEUocXVlcnktPmpvaW50cmVlLCBxdWVyeS0+am9pbnRyZWUsIEZyb21FeHBy ICopOwogCU1VVEFURShxdWVyeS0+c2V0T3BlcmF0aW9ucywgcXVlcnktPnNldE9wZXJhdGlv bnMsIE5vZGUgKik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9j cmVhdGVwbGFuLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMK aW5kZXggZjJlZDBkODFmNjEuLjIwMGQyOTg5ZjFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vY3JlYXRlcGxhbi5jCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIE1vZGlm eVRhYmxlICptYWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJw bGFuLAogCQkJCQkJCQkJIExpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1 cm5pbmdMaXN0cywKIAkJCQkJCQkJCSBMaXN0ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIg Km9uY29uZmxpY3QsCiAJCQkJCQkJCQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlzdCAq bWVyZ2VKb2luQ29uZGl0aW9ucywKLQkJCQkJCQkJCSBpbnQgZXBxUGFyYW0pOworCQkJCQkJ CQkJIEZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiwgaW50IGVwcVBhcmFtKTsKIHN0 YXRpYyBHYXRoZXJNZXJnZSAqY3JlYXRlX2dhdGhlcl9tZXJnZV9wbGFuKFBsYW5uZXJJbmZv ICpyb290LAogCQkJCQkJCQkJCQkgR2F0aGVyTWVyZ2VQYXRoICpiZXN0X3BhdGgpOwogCkBA IC0yODM4LDYgKzI4MzgsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGxhbihQbGFubmVySW5m byAqcm9vdCwgTW9kaWZ5VGFibGVQYXRoICpiZXN0X3BhdGgpCiAJCQkJCQkJYmVzdF9wYXRo LT5vbmNvbmZsaWN0LAogCQkJCQkJCWJlc3RfcGF0aC0+bWVyZ2VBY3Rpb25MaXN0cywKIAkJ CQkJCQliZXN0X3BhdGgtPm1lcmdlSm9pbkNvbmRpdGlvbnMsCisJCQkJCQkJYmVzdF9wYXRo LT5mb3JQb3J0aW9uT2YsCiAJCQkJCQkJYmVzdF9wYXRoLT5lcHFQYXJhbSk7CiAKIAljb3B5 X2dlbmVyaWNfcGF0aF9pbmZvKCZwbGFuLT5wbGFuLCAmYmVzdF9wYXRoLT5wYXRoKTsKQEAg LTcxMTEsNyArNzExMiw3IEBAIG1ha2VfbW9kaWZ5dGFibGUoUGxhbm5lckluZm8gKnJvb3Qs IFBsYW4gKnN1YnBsYW4sCiAJCQkJIExpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0 ICpyZXR1cm5pbmdMaXN0cywKIAkJCQkgTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHBy ICpvbmNvbmZsaWN0LAogCQkJCSBMaXN0ICptZXJnZUFjdGlvbkxpc3RzLCBMaXN0ICptZXJn ZUpvaW5Db25kaXRpb25zLAotCQkJCSBpbnQgZXBxUGFyYW0pCisJCQkJIEZvclBvcnRpb25P ZkV4cHIgKmZvclBvcnRpb25PZiwgaW50IGVwcVBhcmFtKQogewogCU1vZGlmeVRhYmxlICpu b2RlID0gbWFrZU5vZGUoTW9kaWZ5VGFibGUpOwogCUxpc3QJICAgKmZkd19wcml2YXRlX2xp c3Q7CkBAIC03MTc3LDYgKzcxNzgsNyBAQCBtYWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZv ICpyb290LCBQbGFuICpzdWJwbGFuLAogCQlub2RlLT5leGNsUmVsVGxpc3QgPSBvbmNvbmZs aWN0LT5leGNsUmVsVGxpc3Q7CiAJfQogCW5vZGUtPnVwZGF0ZUNvbG5vc0xpc3RzID0gdXBk YXRlQ29sbm9zTGlzdHM7CisJbm9kZS0+Zm9yUG9ydGlvbk9mID0gKE5vZGUgKikgZm9yUG9y dGlvbk9mOwogCW5vZGUtPndpdGhDaGVja09wdGlvbkxpc3RzID0gd2l0aENoZWNrT3B0aW9u TGlzdHM7CiAJbm9kZS0+cmV0dXJuaW5nTGlzdHMgPSByZXR1cm5pbmdMaXN0czsKIAlub2Rl LT5yb3dNYXJrcyA9IHJvd01hcmtzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jCmluZGV4IDBmNDIzZTk2ODQ3Li5lZGEyYjFjZjQ1ZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMjA0OCw2ICsyMDQ4LDcgQEAgZ3JvdXBpbmdfcGxh bm5lcihQbGFubmVySW5mbyAqcm9vdCwgZG91YmxlIHR1cGxlX2ZyYWN0aW9uLAogCQkJCQkJ CQkJCXBhcnNlLT5vbkNvbmZsaWN0LAogCQkJCQkJCQkJCW1lcmdlQWN0aW9uTGlzdHMsCiAJ CQkJCQkJCQkJbWVyZ2VKb2luQ29uZGl0aW9ucywKKwkJCQkJCQkJCQlwYXJzZS0+Zm9yUG9y dGlvbk9mLAogCQkJCQkJCQkJCWFzc2lnbl9zcGVjaWFsX2V4ZWNfcGFyYW0ocm9vdCkpOwog CQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2Rl LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCmluZGV4IGZjOTdi ZjZlZTI2Li5hNGNjNmUwOTYyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvcGF0aG5vZGUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRo bm9kZS5jCkBAIC0zODI3LDcgKzM4MjcsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQ bGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCQkJCQkJTGlzdCAqd2l0aENo ZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVybmluZ0xpc3RzLAogCQkJCQkJTGlzdCAqcm93 TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0LAogCQkJCQkJTGlzdCAqbWVyZ2VB Y3Rpb25MaXN0cywgTGlzdCAqbWVyZ2VKb2luQ29uZGl0aW9ucywKLQkJCQkJCWludCBlcHFQ YXJhbSkKKwkJCQkJCUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiwgaW50IGVwcVBh cmFtKQogewogCU1vZGlmeVRhYmxlUGF0aCAqcGF0aG5vZGUgPSBtYWtlTm9kZShNb2RpZnlU YWJsZVBhdGgpOwogCkBAIC0zODk0LDYgKzM4OTQsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVf cGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCXBhdGhub2RlLT5y ZXR1cm5pbmdMaXN0cyA9IHJldHVybmluZ0xpc3RzOwogCXBhdGhub2RlLT5yb3dNYXJrcyA9 IHJvd01hcmtzOwogCXBhdGhub2RlLT5vbmNvbmZsaWN0ID0gb25jb25mbGljdDsKKwlwYXRo bm9kZS0+Zm9yUG9ydGlvbk9mID0gZm9yUG9ydGlvbk9mOwogCXBhdGhub2RlLT5lcHFQYXJh bSA9IGVwcVBhcmFtOwogCXBhdGhub2RlLT5tZXJnZUFjdGlvbkxpc3RzID0gbWVyZ2VBY3Rp b25MaXN0czsKIAlwYXRobm9kZS0+bWVyZ2VKb2luQ29uZGl0aW9ucyA9IG1lcmdlSm9pbkNv bmRpdGlvbnM7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCA4YTZiYTE2OTJlOC4uODYxMGFi NDAzYmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjQsNyArMjQsMTAgQEAKIAogI2lu Y2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2lzdC5oIgorI2luY2x1 ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgpAQCAtNDcsMTAgKzUwLDEyIEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlci5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0 YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMv Z3VjLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMv cmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIApAQCAtNTksMTAgKzY0LDE2 IEBACiBwb3N0X3BhcnNlX2FuYWx5emVfaG9va190eXBlIHBvc3RfcGFyc2VfYW5hbHl6ZV9o b29rID0gTlVMTDsKIAogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1PcHRpb25hbFNlbGVjdElu dG8oUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpOworc3RhdGljIE5vZGUg KmFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0aW9u T2ZDbGF1c2UgKmZvclBvcnRpb25PZiwKKwkJCQkJCQkJCQkJTm9kZSAqd2hlcmVDbGF1c2Up Owogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgRGVsZXRlU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUluc2VydFN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KTsKIHN0YXRpYyBPbkNv bmZsaWN0RXhwciAqdHJhbnNmb3JtT25Db25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJCQkJCQkJCQkgT25Db25mbGljdENsYXVzZSAqb25Db25mbGljdENsYXVzZSk7 CitzdGF0aWMgRm9yUG9ydGlvbk9mRXhwciAqdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCQkJCQkgaW50IHJ0aW5kZXgsCisJCQkJ CQkJCQkJCQkJIEZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mQ2xhdXNlLAorCQkJ CQkJCQkJCQkJCSBib29sIGlzVXBkYXRlKTsKIHN0YXRpYyBpbnQJY291bnRfcm93ZXhwcl9j b2x1bW5zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgUXVlcnkg KnRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpz dG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCk7CkBAIC00ODIsNiArNDkzLDIwIEBAIHN0bXRf cmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCXJldHVybiBy ZXN1bHQ7CiB9CiAKK3N0YXRpYyBOb2RlICoKK2FkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0 aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwgTm9k ZSAqd2hlcmVDbGF1c2UpCit7CisJaWYgKGZvclBvcnRpb25PZikKKwl7CisJCWlmICh3aGVy ZUNsYXVzZSkKKwkJCXJldHVybiAoTm9kZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIGxp c3RfbWFrZTIocXJ5LT5mb3JQb3J0aW9uT2YtPm92ZXJsYXBzRXhwciwgd2hlcmVDbGF1c2Up LCAtMSk7CisJCWVsc2UKKwkJCXJldHVybiBxcnktPmZvclBvcnRpb25PZi0+b3ZlcmxhcHNF eHByOworCX0KKwllbHNlCisJCXJldHVybiB3aGVyZUNsYXVzZTsKK30KKwogLyoKICAqIGFu YWx5emVfcmVxdWlyZXNfc25hcHNob3QKICAqCQlSZXR1cm5zIHRydWUgaWYgYSBzbmFwc2hv dCBtdXN0IGJlIHNldCBiZWZvcmUgZG9pbmcgcGFyc2UgYW5hbHlzaXMKQEAgLTUxNSw2ICs1 NDAsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRl U3RtdCAqc3RtdCkKIHsKIAlRdWVyeQkgICAqcXJ5ID0gbWFrZU5vZGUoUXVlcnkpOwogCVBh cnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCU5v ZGUJICAgKnF1YWw7CiAKIAlxcnktPmNvbW1hbmRUeXBlID0gQ01EX0RFTEVURTsKQEAgLTU1 Myw3ICs1NzksMTEgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IERlbGV0ZVN0bXQgKnN0bXQpCiAJbnNpdGVtLT5wX2xhdGVyYWxfb25seSA9IGZhbHNlOwog CW5zaXRlbS0+cF9sYXRlcmFsX29rID0gdHJ1ZTsKIAotCXF1YWwgPSB0cmFuc2Zvcm1XaGVy ZUNsYXVzZShwc3RhdGUsIHN0bXQtPndoZXJlQ2xhdXNlLAorCWlmIChzdG10LT5mb3JQb3J0 aW9uT2YpCisJCXFyeS0+Zm9yUG9ydGlvbk9mID0gdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xh dXNlKHBzdGF0ZSwgcXJ5LT5yZXN1bHRSZWxhdGlvbiwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBm YWxzZSk7CisKKwl3aGVyZUNsYXVzZSA9IGFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9u cyhxcnksIHN0bXQtPmZvclBvcnRpb25PZiwgc3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwg PSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlF WFBSX0tJTkRfV0hFUkUsICJXSEVSRSIpOwogCiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJh bnNmb3JtUmV0dXJuaW5nTGlzdChwc3RhdGUsIHN0bXQtPnJldHVybmluZ0xpc3QsCkBAIC0x MTg5LDcgKzEyMTksNyBAQCB0cmFuc2Zvcm1PbkNvbmZsaWN0Q2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJICogTm93IHRyYW5zZm9ybSB0aGUgVVBEQVRFIHN1YmV4cHJlc3Npb25z LgogCQkgKi8KIAkJb25Db25mbGljdFNldCA9Ci0JCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRM aXN0KHBzdGF0ZSwgb25Db25mbGljdENsYXVzZS0+dGFyZ2V0TGlzdCk7CisJCQl0cmFuc2Zv cm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0ZSwgb25Db25mbGljdENsYXVzZS0+dGFyZ2V0TGlz dCwgTlVMTCk7CiAKIAkJb25Db25mbGljdFdoZXJlID0gdHJhbnNmb3JtV2hlcmVDbGF1c2Uo cHN0YXRlLAogCQkJCQkJCQkJCQkgICBvbkNvbmZsaWN0Q2xhdXNlLT53aGVyZUNsYXVzZSwK QEAgLTEyMTksNiArMTI0OSwxODYgQEAgdHJhbnNmb3JtT25Db25mbGljdENsYXVzZShQYXJz ZVN0YXRlICpwc3RhdGUsCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9y bUZvclBvcnRpb25PZkNsYXVzZQorICoKKyAqCSAgVHJhbnNmb3JtcyBhIEZvclBvcnRpb25P ZkNsYXVzZSBpbiBhbiBVUERBVEUvREVMRVRFIHN0YXRlbWVudC4KKyAqCisgKgkgIC0gTG9v ayB1cCB0aGUgcmFuZ2UvcGVyaW9kIHJlcXVlc3RlZC4KKyAqCSAgLSBCdWlsZCBhIGNvbXBh dGlibGUgcmFuZ2UgdmFsdWUgZnJvbSB0aGUgRlJPTSBhbmQgVE8gZXhwcmVzc2lvbnMuCisg KgkgIC0gQnVpbGQgYW4gIm92ZXJsYXBzIiBleHByZXNzaW9uIGZvciBmaWx0ZXJpbmcuCisg KgkgIC0gRm9yIFVQREFURXMsIGJ1aWxkIGFuICJpbnRlcnNlY3RzIiBleHByZXNzaW9uIHRo ZSByZXdyaXRlciBjYW4gYWRkCisgKgkJdG8gdGhlIHRhcmdldExpc3QgdG8gY2hhbmdlIHRo ZSB0ZW1wb3JhbCBib3VuZHMuCisgKi8KK3N0YXRpYyBGb3JQb3J0aW9uT2ZFeHByICoKK3Ry YW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJ aW50IHJ0aW5kZXgsCisJCQkJCQkJRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9uT2Ys CisJCQkJCQkJYm9vbCBpc1VwZGF0ZSkKK3sKKwlSZWxhdGlvbiB0YXJnZXRyZWwgPSBwc3Rh dGUtPnBfdGFyZ2V0X3JlbGF0aW9uOworCVJURVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVy bWluZm8gPSBwc3RhdGUtPnBfdGFyZ2V0X25zaXRlbS0+cF9wZXJtaW5mbzsKKwljaGFyICpy YW5nZV9uYW1lID0gZm9yUG9ydGlvbk9mLT5yYW5nZV9uYW1lOworCWNoYXIgKnJhbmdlX3R5 cGVfbmFtZXNwYWNlID0gTlVMTDsKKwljaGFyICpyYW5nZV90eXBlX25hbWUgPSBOVUxMOwor CWludCByYW5nZV9hdHRubyA9IEludmFsaWRBdHRyTnVtYmVyOworCUZvcm1fcGdfYXR0cmli dXRlIGF0dHI7CisJT2lkCW9wY2xhc3M7CisJT2lkIG9wZmFtaWx5OworCU9pZCBvcGNpbnR5 cGU7CisJT2lkIGZ1bmNpZCA9IEludmFsaWRPaWQ7CisJU3RyYXRlZ3lOdW1iZXIgc3RyYXQ7 CisJT2lkCW9waWQ7CisJRm9yUG9ydGlvbk9mRXhwciAqcmVzdWx0OworCVZhciAqcmFuZ2VW YXI7CisJTm9kZSAqdGFyZ2V0RXhwcjsKKworCS8qIFdlIGRvbid0IHN1cHBvcnQgRk9SIFBP UlRJT04gT0YgRkRXIHF1ZXJpZXMuICovCisJaWYgKHRhcmdldHJlbC0+cmRfcmVsLT5yZWxr aW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygi Zm9yZWlnbiB0YWJsZXMgZG9uJ3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRiIpKSk7CisKKwly ZXN1bHQgPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZFeHByKTsKKworCS8qIExvb2sgdXAgdGhl IEZPUiBQT1JUSU9OIE9GIG5hbWUgcmVxdWVzdGVkLiAqLworCXJhbmdlX2F0dG5vID0gYXR0 bmFtZUF0dE51bSh0YXJnZXRyZWwsIHJhbmdlX25hbWUsIGZhbHNlKTsKKwlpZiAocmFuZ2Vf YXR0bm8gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4g b3IgcGVyaW9kIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAor CQkJCQkJcmFuZ2VfbmFtZSwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdl dHJlbCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBmb3JQb3J0aW9uT2Yt PmxvY2F0aW9uKSkpOworCWF0dHIgPSBUdXBsZURlc2NBdHRyKHRhcmdldHJlbC0+cmRfYXR0 LCByYW5nZV9hdHRubyAtIDEpOworCisJcmFuZ2VWYXIgPSBtYWtlVmFyKAorCQkJcnRpbmRl eCwKKwkJCXJhbmdlX2F0dG5vLAorCQkJYXR0ci0+YXR0dHlwaWQsCisJCQlhdHRyLT5hdHR0 eXBtb2QsCisJCQlhdHRyLT5hdHRjb2xsYXRpb24sCisJCQkwKTsKKwlyYW5nZVZhci0+bG9j YXRpb24gPSBmb3JQb3J0aW9uT2YtPmxvY2F0aW9uOworCXJlc3VsdC0+cmFuZ2VWYXIgPSBy YW5nZVZhcjsKKwlyZXN1bHQtPnJhbmdlVHlwZSA9IGF0dHItPmF0dHR5cGlkOworCWlmICgh Z2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShhdHRyLT5hdHR0eXBpZCwgJnJhbmdlX3R5cGVf bmFtZSwgJnJhbmdlX3R5cGVfbmFtZXNwYWNlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHR5cGUgJXUiLCBhdHRyLT5hdHR0eXBpZCk7CisKKworCWlmIChm b3JQb3J0aW9uT2YtPnRhcmdldCkKKwkJLyoKKwkJICogV2Ugd2VyZSBhbHJlYWR5IGdpdmVu IGFuIGV4cHJlc3Npb24gZm9yIHRoZSB0YXJnZXQsCisJCSAqIHNvIHdlIGRvbid0IGhhdmUg dG8gYnVpbGQgYW55dGhpbmcuCisJCSAqLworCQl0YXJnZXRFeHByID0gZm9yUG9ydGlvbk9m LT50YXJnZXQ7CisJZWxzZQorCXsKKwkJLyogTWFrZSBzdXJlIGl0J3MgYSByYW5nZSBjb2x1 bW4gKi8KKwkJaWYgKCF0eXBlX2lzX3JhbmdlKGF0dHItPmF0dHR5cGlkKSkKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fUkVGRVJF TkNFKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIg aXMgbm90IGEgcmFuZ2UgdHlwZSIsCisJCQkJCQkJcmFuZ2VfbmFtZSwKKwkJCQkJCQlSZWxh dGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGZvclBvcnRpb25PZi0+bG9jYXRpb24pKSk7CisKKwkJLyoKKwkJICog QnVpbGQgYSByYW5nZSBmcm9tIHRoZSBGUk9NIC4uLiBUTyAuLi4uIGJvdW5kcy4KKwkJICog VGhpcyBzaG91bGQgZ2l2ZSBhIGNvbnN0YW50IHJlc3VsdCwgc28gd2UgYWNjZXB0IGZ1bmN0 aW9ucyBsaWtlIE5PVygpCisJCSAqIGJ1dCBub3QgY29sdW1uIHJlZmVyZW5jZXMsIHN1YnF1 ZXJpZXMsIGV0Yy4KKwkJICoKKwkJICogSXQgYWxzbyBwZXJtaXRzIFVOQk9VTkRFRCBpbiBl aXRoZXIgcGxhY2UuCisJCSAqLworCQl0YXJnZXRFeHByID0gKE5vZGUgKikgbWFrZUZ1bmND YWxsKAorCQkJCWxpc3RfbWFrZTIobWFrZVN0cmluZyhyYW5nZV90eXBlX25hbWVzcGFjZSks IG1ha2VTdHJpbmcocmFuZ2VfdHlwZV9uYW1lKSksCisJCQkJbGlzdF9tYWtlMihmb3JQb3J0 aW9uT2YtPnRhcmdldF9zdGFydCwgZm9yUG9ydGlvbk9mLT50YXJnZXRfZW5kKSwKKwkJCQlD T0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKKwl9 CisJcmVzdWx0LT50YXJnZXRSYW5nZSA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCB0YXJnZXRF eHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT04pOworCisJLyoKKwkgKiBCdWlsZCBvdmVy bGFwc0V4cHIgdG8gdXNlIGluIHRoZSB3aGVyZUNsYXVzZS4KKwkgKiBUaGlzIG1lYW5zIHdl IG9ubHkgaGl0IHJvd3MgbWF0Y2hpbmcgdGhlIEZST00gJiBUTyBib3VuZHMuCisJICogV2Ug bXVzdCBsb29rIHVwIHRoZSBvdmVybGFwcyBvcGVyYXRvciAodXN1YWxseSAiJiYiKS4KKwkg Ki8KKwlvcGNsYXNzID0gR2V0RGVmYXVsdE9wQ2xhc3MoYXR0ci0+YXR0dHlwaWQsIEdJU1Rf QU1fT0lEKTsKKwlzdHJhdCA9IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyOworCUdldE9wZXJh dG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KG9wY2xhc3MsIEludmFsaWRPaWQsICZvcGlkLCAm c3RyYXQpOworCXJlc3VsdC0+b3ZlcmxhcHNFeHByID0gKE5vZGUgKikgbWFrZVNpbXBsZUFf RXhwcihBRVhQUl9PUCwgZ2V0X29wbmFtZShvcGlkKSwKKwkJCShOb2RlICopIGNvcHlPYmpl Y3QocmFuZ2VWYXIpLCB0YXJnZXRFeHByLAorCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7 CisKKwkvKgorCSAqIExvb2sgdXAgdGhlIHdpdGhvdXRQb3J0aW9uT3BlciBzbyB3ZSBjYW4g Y29tcHV0ZSB0aGUgbGVmdG92ZXJzLgorCSAqIExlZnRvdmVycyB3aWxsIGJlIG9sZF9yYW5n ZSBALSB0YXJnZXRfcmFuZ2UKKwkgKiAob25lIHBlciBlbGVtZW50IG9mIHRoZSByZXN1bHQp LgorCSAqLworCWZ1bmNpZCA9IEludmFsaWRPaWQ7CisJaWYgKGdldF9vcGNsYXNzX29wZmFt aWx5X2FuZF9pbnB1dF90eXBlKG9wY2xhc3MsICZvcGZhbWlseSwgJm9wY2ludHlwZSkpCisJ CWZ1bmNpZCA9IGdldF9vcGZhbWlseV9wcm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2lu dHlwZSwgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQyk7CisKKwlpZiAoIU9pZElzVmFsaWQo ZnVuY2lkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJ TkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYSB3aXRob3V0 X292ZXJsYXBzIHN1cHBvcnQgZnVuY3Rpb24gZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9i ZShvcGNpbnR5cGUpKSwKKwkJCQllcnJoaW50KCJEZWZpbmUgYSB3aXRob3V0X292ZXJsYXBz IHN1cHBvcnQgZnVuY3Rpb24gZm9yIG9wZXJhdG9yIGNsYXNzIFwiJWRcIiBmb3IgYWNjZXNz IG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJIG9wY2xhc3MsICJnaXN0IikpOworCisJcmVzdWx0 LT53aXRob3V0UG9ydGlvblByb2MgPSBmdW5jaWQ7CisKKwlpZiAoaXNVcGRhdGUpCisJewor CQkvKgorCQkgKiBOb3cgbWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgc3RhcnQvZW5kIHRpbWUg b2YgdGhlIHJlY29yZC4KKwkJICogRm9yIGEgcmFuZ2UgY29sIChyKSB0aGlzIGlzIGByID0g ciAqIHRhcmdldFJhbmdlYC4KKwkJICovCisJCU9pZCBmdW5jbmFtZXNwYWNlOworCQljaGFy ICpmdW5jbmFtZTsKKwkJY2hhciAqZnVuY25hbWVzcGFjZW5hbWU7CisJCUV4cHIgKnJhbmdl VExFRXhwcjsKKwkJVGFyZ2V0RW50cnkgKnRsZTsKKworCQlmdW5jaWQgPSBnZXRfb3BmYW1p bHlfcHJvYyhvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5URVJTRUNU X1BST0MpOworCQlpZiAoIU9pZElzVmFsaWQoZnVuY2lkKSkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJZXJybXNn KCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gaW50ZXJzZWN0IHN1cHBvcnQgZnVuY3Rpb24gZm9y IHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShvcGNpbnR5cGUpKSwKKwkJCQkJZXJyaGludCgi RGVmaW5lIGFuIGludGVyc2VjdCBzdXBwb3J0IGZ1bmN0aW9uIGZvciBvcGVyYXRvciBjbGFz cyBcIiVkXCIgZm9yIGFjY2VzcyBtZXRob2QgXCIlc1wiLiIsCisJCQkJCQkgb3BjbGFzcywg Imdpc3QiKSk7CisKKwkJZnVuY25hbWUgPSBnZXRfZnVuY19uYW1lKGZ1bmNpZCk7CisJCWlm ICghZnVuY25hbWUpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig ZnVuY3Rpb24gJXUiLCBmdW5jaWQpOworCQlmdW5jbmFtZXNwYWNlID0gZ2V0X2Z1bmNfbmFt ZXNwYWNlKGZ1bmNpZCwgZmFsc2UpOworCQlmdW5jbmFtZXNwYWNlbmFtZSA9IGdldF9uYW1l c3BhY2VfbmFtZShmdW5jbmFtZXNwYWNlKTsKKwkJaWYgKCFmdW5jbmFtZXNwYWNlbmFtZSkK KwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBuYW1lc3BhY2UgJXUi LCBmdW5jbmFtZXNwYWNlKTsKKworCQlyYW5nZVRMRUV4cHIgPSAoRXhwciAqKSBtYWtlRnVu Y0NhbGwoCisJCQkJbGlzdF9tYWtlMihtYWtlU3RyaW5nKGZ1bmNuYW1lc3BhY2VuYW1lKSwg bWFrZVN0cmluZyhmdW5jbmFtZSkpLAorCQkJCWxpc3RfbWFrZTIoY29weU9iamVjdChyYW5n ZVZhciksIHRhcmdldEV4cHIpLAorCQkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAorCQkJCWZv clBvcnRpb25PZi0+bG9jYXRpb24pOworCQlyYW5nZVRMRUV4cHIgPSAoRXhwciAqKSB0cmFu c2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgcmFuZ2VUTEVFeHByLCBFWFBSX0tJTkRfVVBE QVRFX1BPUlRJT04pOworCisJCS8qIE1ha2UgYSBUTEUgdG8gc2V0IHRoZSByYW5nZSBjb2x1 bW4gKi8KKwkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBOSUw7CisJCXRsZSA9IG1ha2VU YXJnZXRFbnRyeShyYW5nZVRMRUV4cHIsIHJhbmdlX2F0dG5vLCByYW5nZV9uYW1lLCBmYWxz ZSk7CisJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQtPnJhbmdl VGFyZ2V0TGlzdCwgdGxlKTsKKworCQkvKiBNYXJrIHRoZSByYW5nZSBjb2x1bW4gYXMgcmVx dWlyaW5nIHVwZGF0ZSBwZXJtaXNzaW9ucyAqLworCQl0YXJnZXRfcGVybWluZm8tPnVwZGF0 ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scywK KwkJCQkJCQkJCQkJCQkgIHJhbmdlX2F0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJp YnV0ZU51bWJlcik7CisJfQorCWVsc2UKKwkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBO SUw7CisKKwlyZXN1bHQtPnJhbmdlX25hbWUgPSByYW5nZV9uYW1lOworCisJcmV0dXJuIHJl c3VsdDsKK30KIAogLyoKICAqIEJ1aWxkT25Db25mbGljdEV4Y2x1ZGVkVGFyZ2V0bGlzdApA QCAtMjQyNyw2ICsyNjM3LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpw c3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiB7CiAJUXVlcnkJICAgKnFyeSA9IG1ha2VOb2Rl KFF1ZXJ5KTsKIAlQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbTsKKwlOb2RlCSAgICp3aGVy ZUNsYXVzZTsKIAlOb2RlCSAgICpxdWFsOwogCiAJcXJ5LT5jb21tYW5kVHlwZSA9IENNRF9V UERBVEU7CkBAIC0yNDQ0LDYgKzI2NTUsMTAgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAJCQkJCQkJCQkJIHN0bXQtPnJl bGF0aW9uLT5pbmgsCiAJCQkJCQkJCQkJIHRydWUsCiAJCQkJCQkJCQkJIEFDTF9VUERBVEUp OworCisJaWYgKHN0bXQtPmZvclBvcnRpb25PZikKKwkJcXJ5LT5mb3JQb3J0aW9uT2YgPSB0 cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UocHN0YXRlLCBxcnktPnJlc3VsdFJlbGF0aW9u LCBzdG10LT5mb3JQb3J0aW9uT2YsIHRydWUpOworCiAJbnNpdGVtID0gcHN0YXRlLT5wX3Rh cmdldF9uc2l0ZW07CiAKIAkvKiBzdWJxdWVyaWVzIGluIEZST00gY2Fubm90IGFjY2VzcyB0 aGUgcmVzdWx0IHJlbGF0aW9uICovCkBAIC0yNDYwLDcgKzI2NzUsOCBAQCB0cmFuc2Zvcm1V cGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAluc2l0 ZW0tPnBfbGF0ZXJhbF9vbmx5ID0gZmFsc2U7CiAJbnNpdGVtLT5wX2xhdGVyYWxfb2sgPSB0 cnVlOwogCi0JcXVhbCA9IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwgc3RtdC0+d2hl cmVDbGF1c2UsCisJd2hlcmVDbGF1c2UgPSBhZGRGb3JQb3J0aW9uT2ZXaGVyZUNvbmRpdGlv bnMocXJ5LCBzdG10LT5mb3JQb3J0aW9uT2YsIHN0bXQtPndoZXJlQ2xhdXNlKTsKKwlxdWFs ID0gdHJhbnNmb3JtV2hlcmVDbGF1c2UocHN0YXRlLCB3aGVyZUNsYXVzZSwKIAkJCQkJCQkJ RVhQUl9LSU5EX1dIRVJFLCAiV0hFUkUiKTsKIAogCXFyeS0+cmV0dXJuaW5nTGlzdCA9IHRy YW5zZm9ybVJldHVybmluZ0xpc3QocHN0YXRlLCBzdG10LT5yZXR1cm5pbmdMaXN0LApAQCAt MjQ3MCw3ICsyNjg2LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAJICogTm93IHdlIGFyZSBkb25lIHdpdGggU0VMRUNU LWxpa2UgcHJvY2Vzc2luZywgYW5kIGNhbiBnZXQgb24gd2l0aAogCSAqIHRyYW5zZm9ybWlu ZyB0aGUgdGFyZ2V0IGxpc3QgdG8gbWF0Y2ggdGhlIFVQREFURSB0YXJnZXQgY29sdW1ucy4K IAkgKi8KLQlxcnktPnRhcmdldExpc3QgPSB0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBz dGF0ZSwgc3RtdC0+dGFyZ2V0TGlzdCk7CisJcXJ5LT50YXJnZXRMaXN0ID0gdHJhbnNmb3Jt VXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIHN0bXQtPnRhcmdldExpc3QsIHFyeS0+Zm9yUG9y dGlvbk9mKTsKIAogCXFyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKIAlxcnktPnJ0 ZXBlcm1pbmZvcyA9IHBzdGF0ZS0+cF9ydGVwZXJtaW5mb3M7CkBAIC0yNDg5LDcgKzI3MDUs NyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3Rt dCAqc3RtdCkKICAqCWhhbmRsZSBTRVQgY2xhdXNlIGluIFVQREFURS9NRVJHRS9JTlNFUlQg Li4uIE9OIENPTkZMSUNUIFVQREFURQogICovCiBMaXN0ICoKLXRyYW5zZm9ybVVwZGF0ZVRh cmdldExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxpc3QpCit0cmFuc2Zv cm1VcGRhdGVUYXJnZXRMaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3JpZ1RsaXN0 LCBGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YpCiB7CiAJTGlzdAkgICAqdGxpc3Qg PSBOSUw7CiAJUlRFUGVybWlzc2lvbkluZm8gKnRhcmdldF9wZXJtaW5mbzsKQEAgLTI1NDIs NiArMjc1OCwyMSBAQCB0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGlzdCAqb3JpZ1RsaXN0KQogCQkJCQkgZXJyaGludCgiU0VUIHRhcmdldCBjb2x1 bW5zIGNhbm5vdCBiZSBxdWFsaWZpZWQgd2l0aCB0aGUgcmVsYXRpb24gbmFtZS4iKSA6IDAs CiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBvcmlnVGFyZ2V0LT5sb2NhdGlv bikpKTsKIAorCQkvKgorCQkgKiBJZiB0aGlzIGlzIGEgRk9SIFBPUlRJT04gT0YgdXBkYXRl LAorCQkgKiBmb3JiaWQgZGlyZWN0bHkgc2V0dGluZyB0aGUgcmFuZ2UgY29sdW1uLAorCQkg KiBzaW5jZSB0aGF0IHdvdWxkIGNvbmZsaWN0IHdpdGggdGhlIGltcGxpY2l0IHVwZGF0ZXMu CisJCSAqLworCQlpZiAoZm9yUG9ydGlvbk9mICE9IE5VTEwpCisJCXsKKwkJCWlmIChhdHRy bm8gPT0gZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8pCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBl cnJtc2coImNhbid0IGRpcmVjdGx5IGFzc2lnbiB0byBcIiVzXCIgaW4gYSBGT1IgUE9SVElP TiBPRiB1cGRhdGUiLAorCQkJCQkJCQlvcmlnVGFyZ2V0LT5uYW1lKSwKKwkJCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBvcmlnVGFyZ2V0LT5sb2NhdGlvbikpKTsKKwkJfQor CiAJCXVwZGF0ZVRhcmdldExpc3RFbnRyeShwc3RhdGUsIHRsZSwgb3JpZ1RhcmdldC0+bmFt ZSwKIAkJCQkJCQkgIGF0dHJubywKIAkJCQkJCQkgIG9yaWdUYXJnZXQtPmluZGlyZWN0aW9u LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKaW5kZXggNGFhODY0NmFmN2IuLmVjZWQ4MmVmZDIzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTI1Nyw2ICsyNTcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCVJhbmdlVmFyICAgKnJhbmdlOwogCUludG9DbGF1c2UgKmludG87CiAJV2l0aENsYXVz ZSAqd2l0aDsKKwlGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvcnBvcnRpb25vZjsKIAlJbmZlckNs YXVzZQkqaW5mZXI7CiAJT25Db25mbGljdENsYXVzZSAqb25jb25mbGljdDsKIAlBX0luZGlj ZXMgICphaW5kOwpAQCAtNTUzLDYgKzU1NCw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAldHlwZSA8cmFuZ2U+CXJlbGF0aW9uX2V4cHIKICV0eXBlIDxyYW5nZT4JZXh0ZW5k ZWRfcmVsYXRpb25fZXhwcgogJXR5cGUgPHJhbmdlPglyZWxhdGlvbl9leHByX29wdF9hbGlh cworJXR5cGUgPGFsaWFzPglvcHRfYWxpYXMKKyV0eXBlIDxmb3Jwb3J0aW9ub2Y+IGZvcl9w b3J0aW9uX29mX2NsYXVzZQogJXR5cGUgPG5vZGU+CXRhYmxlc2FtcGxlX2NsYXVzZSBvcHRf cmVwZWF0YWJsZV9jbGF1c2UKICV0eXBlIDx0YXJnZXQ+CXRhcmdldF9lbCBzZXRfdGFyZ2V0 IGluc2VydF9jb2x1bW5faXRlbQogCkBAIC03NjIsNyArNzY1LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlPVkVSIE9WRVJMQVBTIE9WRVJMQVkgT1ZFUlJJRElORyBPV05F RCBPV05FUgogCiAJUEFSQUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElP TiBQQVNTSU5HIFBBU1NXT1JEIFBBVEgKLQlQRVJJT0QgUExBQ0lORyBQTEFOIFBMQU5TIFBP TElDWQorCVBFUklPRCBQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZIFBPUlRJT04KIAlQT1NJ VElPTiBQUkVDRURJTkcgUFJFQ0lTSU9OIFBSRVNFUlZFIFBSRVBBUkUgUFJFUEFSRUQgUFJJ TUFSWQogCVBSSU9SIFBSSVZJTEVHRVMgUFJPQ0VEVVJBTCBQUk9DRURVUkUgUFJPQ0VEVVJF UyBQUk9HUkFNIFBVQkxJQ0FUSU9OCiAKQEAgLTg4MSwxMiArODg0LDE1IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAgKiBqc29uX3ByZWRpY2F0ZV90eXBlX2NvbnN0cmFpbnQg YW5kIGpzb25fa2V5X3VuaXF1ZW5lc3NfY29uc3RyYWludF9vcHQKICAqIHByb2R1Y3Rpb25z IChzZWUgY29tbWVudHMgdGhlcmUpLgogICoKKyAqIFRPIGlzIGFzc2lnbmVkIHRoZSBzYW1l IHByZWNlZGVuY2UgYXMgSURFTlQsIHRvIHN1cHBvcnQgdGhlIG9wdF9pbnRlcnZhbAorICog cHJvZHVjdGlvbiAoc2VlIGNvbW1lbnQgdGhlcmUpLgorICoKICAqIExpa2UgdGhlIFVOQk9V TkRFRCBQUkVDRURJTkcvRk9MTE9XSU5HIGNhc2UsIE5FU1RFRCBpcyBhc3NpZ25lZCBhIGxv d2VyCiAgKiBwcmVjZWRlbmNlIHRoYW4gUEFUSCB0byBmaXggYW1iaWd1aXR5IGluIHRoZSBq c29uX3RhYmxlIHByb2R1Y3Rpb24uCiAgKi8KICVub25hc3NvYwlVTkJPVU5ERUQgTkVTVEVE IC8qIGlkZWFsbHkgd291bGQgaGF2ZSBzYW1lIHByZWNlZGVuY2UgYXMgSURFTlQgKi8KICVu b25hc3NvYwlJREVOVCBQQVJUSVRJT04gUkFOR0UgUk9XUyBHUk9VUFMgUFJFQ0VESU5HIEZP TExPV0lORyBDVUJFIFJPTExVUAotCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVF X1AgV0lUSCBXSVRIT1VUIFBBVEgKKwkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBUTyBV U0lORyBWQUxVRV9QIFdJVEggV0lUSE9VVCBQQVRICiAlbGVmdAkJT3AgT1BFUkFUT1IJCS8q IG11bHRpLWNoYXJhY3RlciBvcHMgYW5kIHVzZXItZGVmaW5lZCBvcGVyYXRvcnMgKi8KICVs ZWZ0CQknKycgJy0nCiAlbGVmdAkJJyonICcvJyAnJScKQEAgLTEyMzI1LDYgKzEyMzMxLDIw IEBAIERlbGV0ZVN0bXQ6IG9wdF93aXRoX2NsYXVzZSBERUxFVEVfUCBGUk9NIHJlbGF0aW9u X2V4cHJfb3B0X2FsaWFzCiAJCQkJCW4tPndpdGhDbGF1c2UgPSAkMTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgb3B0X3dpdGhfY2xhdXNlIERFTEVURV9QIEZST00g cmVsYXRpb25fZXhwciBmb3JfcG9ydGlvbl9vZl9jbGF1c2Ugb3B0X2FsaWFzCisJCQl1c2lu Z19jbGF1c2Ugd2hlcmVfb3JfY3VycmVudF9jbGF1c2UgcmV0dXJuaW5nX2NsYXVzZQorCQkJ CXsKKwkJCQkJRGVsZXRlU3RtdCAqbiA9IG1ha2VOb2RlKERlbGV0ZVN0bXQpOworCisJCQkJ CW4tPnJlbGF0aW9uID0gJDQ7CisJCQkJCW4tPmZvclBvcnRpb25PZiA9ICQ1OworCQkJCQlu LT5yZWxhdGlvbi0+YWxpYXMgPSAkNjsKKwkJCQkJbi0+dXNpbmdDbGF1c2UgPSAkNzsKKwkJ CQkJbi0+d2hlcmVDbGF1c2UgPSAkODsKKwkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ5Owor CQkJCQluLT53aXRoQ2xhdXNlID0gJDE7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCTsKIAogdXNpbmdfY2xhdXNlOgpAQCAtMTIzOTksNiArMTI0MTksMjUgQEAgVXBkYXRl U3RtdDogb3B0X3dpdGhfY2xhdXNlIFVQREFURSByZWxhdGlvbl9leHByX29wdF9hbGlhcwog CQkJCQluLT53aXRoQ2xhdXNlID0gJDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 CisJCQl8IG9wdF93aXRoX2NsYXVzZSBVUERBVEUgcmVsYXRpb25fZXhwcgorCQkJZm9yX3Bv cnRpb25fb2ZfY2xhdXNlIG9wdF9hbGlhcworCQkJU0VUIHNldF9jbGF1c2VfbGlzdAorCQkJ ZnJvbV9jbGF1c2UKKwkJCXdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCisJCQlyZXR1cm5pbmdf Y2xhdXNlCisJCQkJeworCQkJCQlVcGRhdGVTdG10ICpuID0gbWFrZU5vZGUoVXBkYXRlU3Rt dCk7CisKKwkJCQkJbi0+cmVsYXRpb24gPSAkMzsKKwkJCQkJbi0+Zm9yUG9ydGlvbk9mID0g JDQ7CisJCQkJCW4tPnJlbGF0aW9uLT5hbGlhcyA9ICQ1OworCQkJCQluLT50YXJnZXRMaXN0 ID0gJDc7CisJCQkJCW4tPmZyb21DbGF1c2UgPSAkODsKKwkJCQkJbi0+d2hlcmVDbGF1c2Ug PSAkOTsKKwkJCQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQxMDsKKwkJCQkJbi0+d2l0aENsYXVz ZSA9ICQxOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIHNldF9jbGF1 c2VfbGlzdDoKQEAgLTEzODY0LDYgKzEzOTAzLDQ0IEBAIHJlbGF0aW9uX2V4cHJfb3B0X2Fs aWFzOiByZWxhdGlvbl9leHByCQkJCQklcHJlYyBVTUlOVVMKIAkJCQl9CiAJCTsKIAorb3B0 X2FsaWFzOgorCQkJQVMgQ29sSWQKKwkJCQl7CisJCQkJCUFsaWFzCSAgICphbGlhcyA9IG1h a2VOb2RlKEFsaWFzKTsKKworCQkJCQlhbGlhcy0+YWxpYXNuYW1lID0gJDI7CisJCQkJCSQk ID0gYWxpYXM7CisJCQkJfQorCQkJfCBCYXJlQ29sTGFiZWwKKwkJCQl7CisJCQkJCUFsaWFz CSAgICphbGlhcyA9IG1ha2VOb2RlKEFsaWFzKTsKKworCQkJCQlhbGlhcy0+YWxpYXNuYW1l ID0gJDE7CisJCQkJCSQkID0gYWxpYXM7CisJCQkJfQorCQkJfCAvKiBlbXB0eSAqLyAlcHJl YyBVTUlOVVMgeyAkJCA9IE5VTEw7IH0KKwkJOworCQkJCQorZm9yX3BvcnRpb25fb2ZfY2xh dXNlOgorCQkJRk9SIFBPUlRJT04gT0YgQ29sSWQgJygnIGFfZXhwciAnKScKKwkJCQl7CisJ CQkJCUZvclBvcnRpb25PZkNsYXVzZSAqbiA9IG1ha2VOb2RlKEZvclBvcnRpb25PZkNsYXVz ZSk7CisJCQkJCW4tPnJhbmdlX25hbWUgPSAkNDsKKwkJCQkJbi0+bG9jYXRpb24gPSBANDsK KwkJCQkJbi0+dGFyZ2V0ID0gJDY7CisJCQkJCSQkID0gbjsKKwkJCQl9CisJCQl8IEZPUiBQ T1JUSU9OIE9GIENvbElkIEZST00gYV9leHByIFRPIGFfZXhwcgorCQkJCXsKKwkJCQkJRm9y UG9ydGlvbk9mQ2xhdXNlICpuID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mQ2xhdXNlKTsKKwkJ CQkJbi0+cmFuZ2VfbmFtZSA9ICQ0OworCQkJCQluLT5sb2NhdGlvbiA9IEA0OworCQkJCQlu LT50YXJnZXRfc3RhcnQgPSAkNjsKKwkJCQkJbi0+dGFyZ2V0X2VuZCA9ICQ4OworCQkJCQkk JCA9IG47CisJCQkJfQorCQk7CisKIC8qCiAgKiBUQUJMRVNBTVBMRSBkZWNvcmF0aW9uIGlu IGEgRlJPTSBpdGVtCiAgKi8KQEAgLTE0Njk3LDE3ICsxNDc3NCwyNiBAQCBvcHRfdGltZXpv bmU6CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAorLyoK KyAqIFdlIG5lZWQgdG8gaGFuZGxlIHRoaXMgc2hpZnQvcmVkdWNlIGNvbmZsaWN0OgorICog Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSB0ICsgSU5URVJWQUwgJzEnIFlFQVIgVE8g TU9OVEguCisgKiBXZSBkb24ndCBzZWUgZmFyIGVub3VnaCBhaGVhZCB0byBrbm93IGlmIHRo ZXJlIGlzIGFub3RoZXIgVE8gY29taW5nLgorICogV2UgcHJlZmVyIHRvIGludGVycHJldCB0 aGlzIGFzIEZST00gKHQgKyBJTlRFUlZBTCAnMScgWUVBUiBUTyBNT05USCksCisgKiBpLmUu IHRvIHNoaWZ0LgorICogVGhhdCBnaXZlcyB0aGUgdXNlciB0aGUgb3B0aW9uIG9mIGFkZGlu ZyBwYXJlbnRoZXNlcyB0byBnZXQgdGhlIG90aGVyIG1lYW5pbmcuCisgKiBJZiB3ZSByZWR1 Y2VkLCBpbnRlcnZhbHMgY291bGQgbmV2ZXIgaGF2ZSBhIFRPLgorICovCiBvcHRfaW50ZXJ2 YWw6Ci0JCQlZRUFSX1AKKwkJCVlFQVJfUAkJCQkJCQkJCQkJCQkJCQklcHJlYyBJUwogCQkJ CXsgJCQgPSBsaXN0X21ha2UxKG1ha2VJbnRDb25zdChJTlRFUlZBTF9NQVNLKFlFQVIpLCBA MSkpOyB9CiAJCQl8IE1PTlRIX1AKIAkJCQl7ICQkID0gbGlzdF9tYWtlMShtYWtlSW50Q29u c3QoSU5URVJWQUxfTUFTSyhNT05USCksIEAxKSk7IH0KLQkJCXwgREFZX1AKKwkJCXwgREFZ X1AJCQkJCQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQkID0gbGlzdF9tYWtlMShtYWtl SW50Q29uc3QoSU5URVJWQUxfTUFTSyhEQVkpLCBAMSkpOyB9Ci0JCQl8IEhPVVJfUAorCQkJ fCBIT1VSX1AJCQkJCQkJCQkJCQkJCQklcHJlYyBJUwogCQkJCXsgJCQgPSBsaXN0X21ha2Ux KG1ha2VJbnRDb25zdChJTlRFUlZBTF9NQVNLKEhPVVIpLCBAMSkpOyB9CiAJCQl8IE1JTlVU RV9QCi0JCQkJeyAkJCA9IGxpc3RfbWFrZTEobWFrZUludENvbnN0KElOVEVSVkFMX01BU0so TUlOVVRFKSwgQDEpKTsgfQorCQkJCXsgJCQgPSBsaXN0X21ha2UxKG1ha2VJbnRDb25zdChJ TlRFUlZBTF9NQVNLKE1JTlVURSksIEAxKSk7IH0JJXByZWMgSVMKIAkJCXwgaW50ZXJ2YWxf c2Vjb25kCiAJCQkJeyAkJCA9ICQxOyB9CiAJCQl8IFlFQVJfUCBUTyBNT05USF9QCkBAIC0x Nzc1Nyw2ICsxNzg0Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUExBTgogCQkJ fCBQTEFOUwogCQkJfCBQT0xJQ1kKKwkJCXwgUE9SVElPTgogCQkJfCBQUkVDRURJTkcKIAkJ CXwgUFJFUEFSRQogCQkJfCBQUkVQQVJFRApAQCAtMTgzODIsNiArMTg0NjksNyBAQCBiYXJl X2xhYmVsX2tleXdvcmQ6CiAJCQl8IFBMQU4KIAkJCXwgUExBTlMKIAkJCXwgUE9MSUNZCisJ CQl8IFBPUlRJT04KIAkJCXwgUE9TSVRJT04KIAkJCXwgUFJFQ0VESU5HCiAJCQl8IFBSRVBB UkUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCBlZmE3MzBjMTY3Ni4uNTM5ODVmNzRk ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU3OSw2ICs1NzksMTMgQEAgY2hl Y2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg KmV4cHIpCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1 ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWlm IChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9ucyIpOworCQkJZWxzZQorCQkJCWVy ciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEZPUiBQT1JU SU9OIE9GIGV4cHJlc3Npb25zIik7CisKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhl cmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhl CkBAIC05NzAsNiArOTc3LDkgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVf TUFSSzoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5E X1VQREFURV9QT1JUSU9OOgorCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90 IGFsbG93ZWQgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwog CiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNl IGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY29sbGF0ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYwppbmRl eCA0NDUyOWJiNDllNi4uMTRmZmI3YmE2NDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jb2xsYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Nv bGxhdGUuYwpAQCAtNDg0LDYgKzQ4NCw3IEBAIGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlcihO b2RlICpub2RlLCBhc3NpZ25fY29sbGF0aW9uc19jb250ZXh0ICpjb250ZXh0KQogCQljYXNl IFRfSm9pbkV4cHI6CiAJCWNhc2UgVF9Gcm9tRXhwcjoKIAkJY2FzZSBUX09uQ29uZmxpY3RF eHByOgorCQljYXNlIFRfRm9yUG9ydGlvbk9mRXhwcjoKIAkJY2FzZSBUX1NvcnRHcm91cENs YXVzZToKIAkJY2FzZSBUX01lcmdlQWN0aW9uOgogCQkJKHZvaWQpIGV4cHJlc3Npb25fdHJl ZV93YWxrZXIobm9kZSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGVmMGI1NjBm NWUzLi4wZjIxNjVjNDcwMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC01ODYs NiArNTg2LDkgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29s dW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CiAJCQll cnIgPSBfKCJjYW5ub3QgdXNlIGNvbHVtbiByZWZlcmVuY2UgaW4gcGFydGl0aW9uIGJvdW5k IGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9S VElPTjoKKwkJCWVyciA9IF8oImNhbm5vdCB1c2UgY29sdW1uIHJlZmVyZW5jZSBpbiBGT1Ig UE9SVElPTiBPRiBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRo ZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRo ZQpAQCAtMTg2MCw2ICsxODYzLDkgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpw c3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9D T0xVTU46CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5l cmF0aW9uIGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9VUERB VEVfUE9SVElPTjoKKwkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gRk9SIFBP UlRJT04gT0YgZXhwcmVzc2lvbiIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVy ZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUK QEAgLTMxNTMsNiArMzE1OSw4IEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQg ZXhwcktpbmQpCiAJCQlyZXR1cm4gIlVQREFURSI7CiAJCWNhc2UgRVhQUl9LSU5EX01FUkdF X1dIRU46CiAJCQlyZXR1cm4gIk1FUkdFIFdIRU4iOworCQljYXNlIEVYUFJfS0lORF9VUERB VEVfUE9SVElPTjoKKwkJCXJldHVybiAiRk9SIFBPUlRJT04gT0YiOwogCQljYXNlIEVYUFJf S0lORF9HUk9VUF9CWToKIAkJCXJldHVybiAiR1JPVVAgQlkiOwogCQljYXNlIEVYUFJfS0lO RF9PUkRFUl9CWToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5j LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDliMjMzNDRhM2Ix Li45OTkyMWQ3MTNiZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1 bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNjU4LDYg KzI2NTgsOSBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQljYXNlIEVYUFJfS0lORF9DWUNM RV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJ TkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbnMiKTsKKwkJ CWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZh dWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfbWVyZ2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5j CmluZGV4IDg3ZGY3OTAyN2Q3Li41NmY2NzZhMWYxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X21lcmdlLmMKQEAgLTM4NSw3ICszODUsNyBAQCB0cmFuc2Zvcm1NZXJnZVN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBNZXJnZVN0bXQgKnN0bXQpCiAJCQkJCXBzdGF0ZS0+cF9pc19pbnNl cnQgPSBmYWxzZTsKIAkJCQkJYWN0aW9uLT50YXJnZXRMaXN0ID0KIAkJCQkJCXRyYW5zZm9y bVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLAotCQkJCQkJCQkJCQkJICBtZXJnZVdoZW5DbGF1 c2UtPnRhcmdldExpc3QpOworCQkJCQkJCQkJCQkJICBtZXJnZVdoZW5DbGF1c2UtPnRhcmdl dExpc3QsIE5VTEwpOwogCQkJCX0KIAkJCQlicmVhazsKIAkJCWNhc2UgQ01EX0RFTEVURToK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3Ny Yy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwppbmRleCA2ZDU5YTJiYjhkYy4u ZTlmNjRlNzRiYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhh bmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAg LTM2ODQsNiArMzY4NCwzMCBAQCByZXdyaXRlVGFyZ2V0VmlldyhRdWVyeSAqcGFyc2V0cmVl LCBSZWxhdGlvbiB2aWV3KQogCQkJCQkJCQkJICAmcGFyc2V0cmVlLT5oYXNTdWJMaW5rcyk7 CiAJfQogCisJaWYgKHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mICYmIHBhcnNldHJlZS0+Y29t bWFuZFR5cGUgPT0gQ01EX1VQREFURSkKKwl7CisJCS8qCisJCSAqIExpa2UgdGhlIElOU0VS VC9VUERBVEUgY29kZSBhYm92ZSwgdXBkYXRlIHRoZSByZXNub3MgaW4gdGhlCisJCSAqIGF1 eGlsaWFyeSBVUERBVEUgdGFyZ2V0bGlzdCB0byByZWZlciB0byBjb2x1bW5zIG9mIHRoZSBi YXNlCisJCSAqIHJlbGF0aW9uLgorCQkgKi8KKwkJZm9yZWFjaChsYywgcGFyc2V0cmVlLT5m b3JQb3J0aW9uT2YtPnJhbmdlVGFyZ2V0TGlzdCkKKwkJeworCQkJVGFyZ2V0RW50cnkgKnRs ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCQkJVGFyZ2V0RW50cnkgKnZpZXdf dGxlOworCisJCQlpZiAodGxlLT5yZXNqdW5rKQorCQkJCWNvbnRpbnVlOworCisJCQl2aWV3 X3RsZSA9IGdldF90bGVfYnlfcmVzbm8odmlld190YXJnZXRsaXN0LCB0bGUtPnJlc25vKTsK KwkJCWlmICh2aWV3X3RsZSAhPSBOVUxMICYmICF2aWV3X3RsZS0+cmVzanVuayAmJiBJc0Eo dmlld190bGUtPmV4cHIsIFZhcikpCisJCQkJdGxlLT5yZXNubyA9ICgoVmFyICopIHZpZXdf dGxlLT5leHByKS0+dmFyYXR0bm87CisJCQllbHNlCisJCQkJZWxvZyhFUlJPUiwgImF0dHJp YnV0ZSBudW1iZXIgJWQgbm90IGZvdW5kIGluIHZpZXcgdGFyZ2V0bGlzdCIsCisJCQkJCSB0 bGUtPnJlc25vKTsKKwkJfQorCX0KKwogCS8qCiAJICogRm9yIFVQREFURS9ERUxFVEUvTUVS R0UsIHB1bGwgdXAgYW55IFdIRVJFIHF1YWxzIGZyb20gdGhlIHZpZXcuICBXZQogCSAqIGtu b3cgdGhhdCBhbnkgVmFycyBpbiB0aGUgcXVhbHMgbXVzdCByZWZlcmVuY2UgdGhlIG9uZSBi YXNlIHJlbGF0aW9uLApAQCAtNDAyMyw2ICs0MDQ3LDIyIEBAIFJld3JpdGVRdWVyeShRdWVy eSAqcGFyc2V0cmVlLCBMaXN0ICpyZXdyaXRlX2V2ZW50cywgaW50IG9yaWdfcnRfbGVuZ3Ro KQogCQllbHNlIGlmIChldmVudCA9PSBDTURfVVBEQVRFKQogCQl7CiAJCQlBc3NlcnQocGFy c2V0cmVlLT5vdmVycmlkZSA9PSBPVkVSUklESU5HX05PVF9TRVQpOworCQkJLyoKKwkJCSAq IFVwZGF0ZSBGT1IgUE9SVElPTiBPRiBjb2x1bW4ocykgYXV0b21hdGljYWxseS4gRG9uJ3QK KwkJCSAqIGRvIHRoaXMgdW50aWwgd2UncmUgZG9uZSByZXdyaXRpbmcgYSB2aWV3IHVwZGF0 ZSwgc28KKwkJCSAqIHRoYXQgd2UgZG9uJ3QgYWRkIHRoZSBzYW1lIHVwZGF0ZSBvbiB0aGUg cmVjdXJzaW9uLgorCQkJICovCisJCQlpZiAocGFyc2V0cmVlLT5mb3JQb3J0aW9uT2YgJiYK KwkJCQlydF9lbnRyeV9yZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfVklF VykKKwkJCXsKKwkJCQlMaXN0Q2VsbCAqdGw7CisJCQkJZm9yZWFjaCh0bCwgcGFyc2V0cmVl LT5mb3JQb3J0aW9uT2YtPnJhbmdlVGFyZ2V0TGlzdCkKKwkJCQl7CisJCQkJCVRhcmdldEVu dHJ5ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KHRsKTsKKwkJCQkJcGFyc2V0cmVl LT50YXJnZXRMaXN0ID0gbGFwcGVuZChwYXJzZXRyZWUtPnRhcmdldExpc3QsIHRsZSk7CisJ CQkJfQorCQkJfQorCiAJCQlwYXJzZXRyZWUtPnRhcmdldExpc3QgPQogCQkJCXJld3JpdGVU YXJnZXRMaXN0SVUocGFyc2V0cmVlLT50YXJnZXRMaXN0LAogCQkJCQkJCQkJcGFyc2V0cmVl LT5jb21tYW5kVHlwZSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKaW5kZXgg Njg5NmUxYWU2MzguLjI5N2ZiYTcxYmI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcmlfdHJpZ2dlcnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJp Z2dlcnMuYwpAQCAtMjI4LDYgKzIyOCw3IEBAIHN0YXRpYyBib29sIHJpX1BlcmZvcm1DaGVj ayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQkJCQkJCVJJX1F1ZXJ5S2V5 ICpxa2V5LCBTUElQbGFuUHRyIHFwbGFuLAogCQkJCQkJCVJlbGF0aW9uIGZrX3JlbCwgUmVs YXRpb24gcGtfcmVsLAogCQkJCQkJCVR1cGxlVGFibGVTbG90ICpvbGRzbG90LCBUdXBsZVRh YmxlU2xvdCAqbmV3c2xvdCwKKwkJCQkJCQlpbnQgZm9yUG9ydGlvbk9mUGFyYW0sIERhdHVt IGZvclBvcnRpb25PZiwKIAkJCQkJCQlib29sIGRldGVjdE5ld1Jvd3MsIGludCBleHBlY3Rf T0spOwogc3RhdGljIHZvaWQgcmlfRXh0cmFjdFZhbHVlcyhSZWxhdGlvbiByZWwsIFR1cGxl VGFibGVTbG90ICpzbG90LAogCQkJCQkJCSBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlp bmZvLCBib29sIHJlbF9pc19waywKQEAgLTIzNiw2ICsyMzcsMTEgQEAgc3RhdGljIHZvaWQg cmlfUmVwb3J0VmlvbGF0aW9uKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJ CQkJCQkJICAgUmVsYXRpb24gcGtfcmVsLCBSZWxhdGlvbiBma19yZWwsCiAJCQkJCQkJICAg VHVwbGVUYWJsZVNsb3QgKnZpb2xhdG9yc2xvdCwgVHVwbGVEZXNjIHR1cGRlc2MsCiAJCQkJ CQkJICAgaW50IHF1ZXJ5bm8sIGJvb2wgcGFydGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3JldHVy bigpOworc3RhdGljIGJvb2wgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlv bk9mU3RhdGUgKnRnX3RlbXBvcmFsLAorCQkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludElu Zm8gKnJpaW5mbyk7CitzdGF0aWMgRGF0dW0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKGNv bnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwKKwkJCQkJCQkJCSAgY29uc3Qg UklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKKwkJCQkJCQkJCSAgVHVwbGVUYWJsZVNsb3Qg Km9sZHNsb3QpOwogCiAKIC8qCkBAIC00NDksNiArNDU1LDcgQEAgUklfRktleV9jaGVjayhU cmlnZ2VyRGF0YSAqdHJpZ2RhdGEpCiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXks IHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3JlbCwKIAkJCQkJTlVMTCwgbmV3c2xvdCwKKwkJ CQkJLTEsIChEYXR1bSkgMCwKIAkJCQkJcGtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVM S0lORF9QQVJUSVRJT05FRF9UQUJMRSwKIAkJCQkJU1BJX09LX1NFTEVDVCk7CiAKQEAgLTYx Myw2ICs2MjAsNyBAQCByaV9DaGVja19Qa19NYXRjaChSZWxhdGlvbiBwa19yZWwsIFJlbGF0 aW9uIGZrX3JlbCwKIAlyZXN1bHQgPSByaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwg cXBsYW4sCiAJCQkJCQkJIGZrX3JlbCwgcGtfcmVsLAogCQkJCQkJCSBvbGRzbG90LCBOVUxM LAorCQkJCQkJCSAtMSwgKERhdHVtKSAwLAogCQkJCQkJCSB0cnVlLAkvKiB0cmVhdCBsaWtl IHVwZGF0ZSAqLwogCQkJCQkJCSBTUElfT0tfU0VMRUNUKTsKIApAQCAtNzEyLDYgKzcyMCw4 IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rp b24pCiAJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7CiAJUklfUXVlcnlLZXkgcWtleTsKIAlT UElQbGFuUHRyCXFwbGFuOworCWludAkJCXRhcmdldFJhbmdlUGFyYW0gPSAtMTsKKwlEYXR1 bQkJdGFyZ2V0UmFuZ2UgPSAoRGF0dW0pIDA7CiAKIAlyaWluZm8gPSByaV9GZXRjaENvbnN0 cmFpbnRJbmZvKHRyaWdkYXRhLT50Z190cmlnZ2VyLAogCQkJCQkJCQkJdHJpZ2RhdGEtPnRn X3JlbGF0aW9uLCB0cnVlKTsKQEAgLTgwMSw5ICs4MTEsMTYgQEAgcmlfcmVzdHJpY3QoVHJp Z2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAkvKgogCSAqIFdlIGhh dmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRvIGNoZWNrIGZvciBleGlzdGluZyByZWZlcmVuY2Vz LgogCSAqLworCWlmICh0cmlnZGF0YS0+dGdfdGVtcG9yYWwpCisJeworCQl0YXJnZXRSYW5n ZVBhcmFtID0gcmlpbmZvLT5ua2V5cyAtIDE7CisJCXRhcmdldFJhbmdlID0gcmVzdHJpY3Rf Y2FzY2FkaW5nX3JhbmdlKHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90 KTsKKwl9CisKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJ CWZrX3JlbCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBOVUxMLAorCQkJCQl0YXJnZXRSYW5n ZVBhcmFtLCB0YXJnZXRSYW5nZSwKIAkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyBy b3dzICovCiAJCQkJCVNQSV9PS19TRUxFQ1QpOwogCkBAIC05MDksNiArOTI2LDcgQEAgUklf RktleV9jYXNjYWRlX2RlbChQR19GVU5DVElPTl9BUkdTKQogCXJpX1BlcmZvcm1DaGVjayhy aWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNs b3QsIE5VTEwsCisJCQkJCS0xLCAoRGF0dW0pIDAsCiAJCQkJCXRydWUsCQkvKiBtdXN0IGRl dGVjdCBuZXcgcm93cyAqLwogCQkJCQlTUElfT0tfREVMRVRFKTsKIApAQCAtMTAyOSw2ICsx MDQ3LDcgQEAgUklfRktleV9jYXNjYWRlX3VwZChQR19GVU5DVElPTl9BUkdTKQogCXJpX1Bl cmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWws CiAJCQkJCW9sZHNsb3QsIG5ld3Nsb3QsCisJCQkJCS0xLCAoRGF0dW0pIDAsCiAJCQkJCXRy dWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLwogCQkJCQlTUElfT0tfVVBEQVRFKTsK IApAQCAtMTI2MCw2ICsxMjc5LDcgQEAgcmlfc2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwg Ym9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCkKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZv LCAmcWtleSwgcXBsYW4sCiAJCQkJCWZrX3JlbCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBO VUxMLAorCQkJCQktMSwgKERhdHVtKSAwLAogCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3Qg bmV3IHJvd3MgKi8KIAkJCQkJU1BJX09LX1VQREFURSk7CiAKQEAgLTI0MDUsNiArMjQyNSw3 IEBAIHJpX1BlcmZvcm1DaGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAog CQkJCVJJX1F1ZXJ5S2V5ICpxa2V5LCBTUElQbGFuUHRyIHFwbGFuLAogCQkJCVJlbGF0aW9u IGZrX3JlbCwgUmVsYXRpb24gcGtfcmVsLAogCQkJCVR1cGxlVGFibGVTbG90ICpvbGRzbG90 LCBUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKKwkJCQlpbnQgZm9yUG9ydGlvbk9mUGFyYW0s IERhdHVtIGZvclBvcnRpb25PZiwKIAkJCQlib29sIGRldGVjdE5ld1Jvd3MsIGludCBleHBl Y3RfT0spCiB7CiAJUmVsYXRpb24JcXVlcnlfcmVsLApAQCAtMjQ2MCw2ICsyNDgxLDEyIEBA IHJpX1BlcmZvcm1DaGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQly aV9FeHRyYWN0VmFsdWVzKHNvdXJjZV9yZWwsIG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lz X3BrLAogCQkJCQkJIHZhbHMsIG51bGxzKTsKIAl9CisJLyogQWRkIG9uZSBtb3JlIHF1ZXJ5 IHBhcmFtIGlmIHdlIGFyZSB1c2luZyBGT1IgUE9SVElPTiBPRiAqLworCWlmIChmb3JQb3J0 aW9uT2YpCisJeworCQl2YWxzW2ZvclBvcnRpb25PZlBhcmFtXSA9IGZvclBvcnRpb25PZjsK KwkJbnVsbHNbZm9yUG9ydGlvbk9mUGFyYW1dID0gJyAnOworCX0KIAogCS8qCiAJICogSW4g UkVBRCBDT01NSVRURUQgbW9kZSwgd2UganVzdCBuZWVkIHRvIHVzZSBhbiB1cC10by1kYXRl IHJlZ3VsYXIKQEAgLTMxMzYsMyArMzE2Myw1MCBAQCBSSV9GS2V5X3RyaWdnZXJfdHlwZShP aWQgdGdmb2lkKQogCiAJcmV0dXJuIFJJX1RSSUdHRVJfTk9ORTsKIH0KKworLyoKKyAqIGZw b190YXJnZXRzX3BrX3JhbmdlCisgKgorICogUmV0dXJucyB0cnVlIGlmZiB0aGUgcHJpbWFy eSBrZXkgcmVmZXJlbmNlZCBieSByaWluZm8gaW5jbHVkZXMgdGhlIHJhbmdlCisgKiBjb2x1 bW4gdGFyZ2V0ZWQgYnkgdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAoYWNjb3JkaW5nIHRv IHRnX3RlbXBvcmFsKS4KKyAqLworc3RhdGljIGJvb2wKK2Zwb190YXJnZXRzX3BrX3Jhbmdl KGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwgY29uc3QgUklfQ29uc3Ry YWludEluZm8gKnJpaW5mbykKK3sKKwlpZiAodGdfdGVtcG9yYWwgPT0gTlVMTCkKKwkJcmV0 dXJuIGZhbHNlOworCisJcmV0dXJuIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlz IC0gMV0gPT0gdGdfdGVtcG9yYWwtPmZwX3JhbmdlQXR0bm87Cit9CisKKy8qCisgKiByZXN0 cmljdF9jYXNjYWRpbmdfcmFuZ2UgLQorICoKKyAqIFJldHVybnMgYSBEYXR1bSBvZiBSYW5n ZVR5cGVQIGhvbGRpbmcgdGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFuCisgKiB0byB0YXJnZXQg Y2hpbGQgcmVjb3JkcyB3aGVuIHdlIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQuCisg KgorICogSW4gYSBub3JtYWwgVVBEQVRFL0RFTEVURSB0aGlzIHNob3VsZCBiZSB0aGUgcGFy ZW50J3Mgb3duIHZhbGlkIHRpbWUsCisgKiBidXQgaWYgdGhlcmUgd2FzIGEgRk9SIFBPUlRJ T04gT0YgY2xhdXNlLCB0aGVuIHdlIHNob3VsZCB1c2UgdGhhdCB0bworICogdHJpbSBkb3du IHRoZSBwYXJlbnQncyBzcGFuIGZ1cnRoZXIuCisgKi8KK3N0YXRpYyBEYXR1bQorcmVzdHJp Y3RfY2FzY2FkaW5nX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3Jh bCwgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgVHVwbGVUYWJsZVNsb3QgKm9s ZHNsb3QpCit7CisJRGF0dW0JcGtSZWNvcmRSYW5nZTsKKwlib29sCWlzbnVsbDsKKworCXBr UmVjb3JkUmFuZ2UgPSBzbG90X2dldGF0dHIob2xkc2xvdCwgcmlpbmZvLT5wa19hdHRudW1z W3JpaW5mby0+bmtleXMgLSAxXSwgJmlzbnVsbCk7CisJaWYgKGlzbnVsbCkKKwkJZWxvZyhF UlJPUiwgImFwcGxpY2F0aW9uIHRpbWUgc2hvdWxkIG5vdCBiZSBudWxsIik7CisKKwlpZiAo ZnBvX3RhcmdldHNfcGtfcmFuZ2UodGdfdGVtcG9yYWwsIHJpaW5mbykpCisJeworCQlSYW5n ZVR5cGUgKnIxID0gRGF0dW1HZXRSYW5nZVR5cGVQKHBrUmVjb3JkUmFuZ2UpOworCQlSYW5n ZVR5cGUgKnIyID0gRGF0dW1HZXRSYW5nZVR5cGVQKHRnX3RlbXBvcmFsLT5mcF90YXJnZXRS YW5nZSk7CisJCU9pZCBybmd0eXBpZCA9IFJhbmdlVHlwZUdldE9pZChyMSk7CisJCVR5cGVD YWNoZUVudHJ5ICp0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBF Q0FDSEVfUkFOR0VfSU5GTyk7CisJCXJldHVybiBSYW5nZVR5cGVQR2V0RGF0dW0ocmFuZ2Vf aW50ZXJzZWN0X2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIpKTsKKwl9CisJZWxzZQorCQly ZXR1cm4gcGtSZWNvcmRSYW5nZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMKaW5kZXggYTg1ZGMwZDg5MWYuLjI1NDczMTgzMGJhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYwpAQCAtMTYyOSw3ICsxNjI5LDcgQEAgZ2V0X2Z1bmNfbmFtZShP aWQgZnVuY2lkKQogICoJCVJldHVybnMgdGhlIHBnX25hbWVzcGFjZSBPSUQgYXNzb2NpYXRl ZCB3aXRoIGEgZ2l2ZW4gZnVuY3Rpb24uCiAgKi8KIE9pZAotZ2V0X2Z1bmNfbmFtZXNwYWNl KE9pZCBmdW5jaWQpCitnZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCwgYm9vbCBtaXNz aW5nX29rKQogewogCUhlYXBUdXBsZQl0cDsKIApAQCAtMTY0Myw4ICsxNjQzLDEwIEBAIGdl dF9mdW5jX25hbWVzcGFjZShPaWQgZnVuY2lkKQogCQlSZWxlYXNlU3lzQ2FjaGUodHApOwog CQlyZXR1cm4gcmVzdWx0OwogCX0KLQllbHNlCi0JCXJldHVybiBJbnZhbGlkT2lkOworCWVs c2UgaWYgKCFtaXNzaW5nX29rKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgZnVuY3Rpb24gJXUiLCBmdW5jaWQpOworCisJcmV0dXJuIEludmFsaWRPaWQ7CiB9 CiAKIC8qCkBAIC0yMTg4LDYgKzIxOTAsNTkgQEAgZ2V0X3R5cGlzZGVmaW5lZChPaWQgdHlw aWQpCiAJCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIGdldF90eXBuYW1lCisgKgorICoJ ICBSZXR1cm5zIHRoZSBuYW1lIG9mIGEgZ2l2ZW4gdHlwZQorICoKKyAqIFJldHVybnMgYSBw YWxsb2MnZCBjb3B5IG9mIHRoZSBzdHJpbmcsIG9yIE5VTEwgaWYgbm8gc3VjaCB0eXBlLgor ICovCitjaGFyICoKK2dldF90eXBuYW1lKE9pZCB0eXBpZCkKK3sKKwlIZWFwVHVwbGUgICB0 cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0o dHlwaWQpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5 cGUgdHlwdHVwID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwkJY2hhcgkgICAq cmVzdWx0OworCisJCXJlc3VsdCA9IHBzdHJkdXAoTmFtZVN0cih0eXB0dXAtPnR5cG5hbWUp KTsKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJZWxz ZQorCQlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIGdldF90eXBuYW1lX2FuZF9uYW1lc3Bh Y2UKKyAqCisgKgkgIFJldHVybnMgdGhlIG5hbWUgYW5kIG5hbWVzcGFjZSBvZiBhIGdpdmVu IHR5cGUKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgb25lIGZvdW5kLCBvciBmYWxzZSBpZiBu b3QuCisgKi8KK2Jvb2wKK2dldF90eXBuYW1lX2FuZF9uYW1lc3BhY2UoT2lkIHR5cGlkLCBj aGFyICoqdHlwbmFtZSwgY2hhciAqKnR5cG5hbWVzcGFjZSkKK3sKKwlIZWFwVHVwbGUJdHA7 CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShUWVBFT0lELCBPYmplY3RJZEdldERhdHVtKHR5 cGlkKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ190eXBl IHR5cHR1cCA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0cCk7CisKKwkJKnR5cG5hbWUg PSBwc3RyZHVwKE5hbWVTdHIodHlwdHVwLT50eXBuYW1lKSk7CisJCSp0eXBuYW1lc3BhY2Ug PSBnZXRfbmFtZXNwYWNlX25hbWUodHlwdHVwLT50eXBuYW1lc3BhY2UpOworCQlSZWxlYXNl U3lzQ2FjaGUodHApOworCQkvKiAqdHlwbmFtZXNwYWNlIGlzIE5VTEwgaWYgaXQgd2Fzbid0 IGZvdW5kOiAqLworCQlyZXR1cm4gKnR5cG5hbWVzcGFjZTsKKwl9CisJZWxzZQorCQlyZXR1 cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBnZXRfdHlwbGVuCiAgKgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJp Z2dlci5oCmluZGV4IDhhNWE5ZmU2NDIyLi4zZDE1NjQ4MzMyNSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3RyaWdnZXIuaApAQCAtNDEsNiArNDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBUcmlnZ2VyRGF0 YQogCVR1cGxlc3RvcmVzdGF0ZSAqdGdfb2xkdGFibGU7CiAJVHVwbGVzdG9yZXN0YXRlICp0 Z19uZXd0YWJsZTsKIAljb25zdCBCaXRtYXBzZXQgKnRnX3VwZGF0ZWRjb2xzOworCUZvclBv cnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbDsKIH0gVHJpZ2dlckRhdGE7CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCmluZGV4IGU0Njk4YTI4YzRmLi44ZGE1NjE4ZWUxOSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmgKQEAgLTQyLDEyICs0MiwxNCBAQAogI2luY2x1ZGUgInN0b3Jh Z2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAidXRpbHMvaHNlYXJjaC5oIgog I2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIKKyNpbmNsdWRlICJ1dGlscy9y YW5nZXR5cGVzLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsdHJpZ2dlci5oIgogI2luY2x1ZGUg InV0aWxzL3NoYXJlZHR1cGxlc3RvcmUuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwc2hvdC5o IgogI2luY2x1ZGUgInV0aWxzL3NvcnRzdXBwb3J0LmgiCiAjaW5jbHVkZSAidXRpbHMvdHVw bGVzb3J0LmgiCiAjaW5jbHVkZSAidXRpbHMvdHVwbGVzdG9yZS5oIgorI2luY2x1ZGUgInV0 aWxzL3R5cGNhY2hlLmgiCiAKIHN0cnVjdCBQbGFuU3RhdGU7CQkJCS8qIGZvcndhcmQgcmVm ZXJlbmNlcyBpbiB0aGlzIGZpbGUgKi8KIHN0cnVjdCBQYXJhbGxlbEhhc2hKb2luU3RhdGU7 CkBAIC00MzEsNiArNDMzLDI2IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlQWN0aW9uU3RhdGUK IAlFeHByU3RhdGUgICptYXNfd2hlbnF1YWw7CS8qIFdIRU4gW05PVF0gTUFUQ0hFRCBBTkQg Y29uZGl0aW9ucyAqLwogfSBNZXJnZUFjdGlvblN0YXRlOwogCisvKgorICogRm9yUG9ydGlv bk9mU3RhdGUKKyAqCisgKiBFeGVjdXRvciBzdGF0ZSBvZiBhIEZPUiBQT1JUSU9OIE9GIG9w ZXJhdGlvbi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mU3RhdGUKK3sKKwlO b2RlVGFnCQl0eXBlOworCisJY2hhciAgICpmcF9yYW5nZU5hbWU7CQkvKiB0aGUgY29sdW1u IG5hbWVkIGluIEZPUiBQT1JUSU9OIE9GICovCisJT2lkCQlmcF9yYW5nZVR5cGU7CQkvKiB0 aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLworCWludAkJZnBf cmFuZ2VBdHRubzsJCS8qIHRoZSBhdHRubyBvZiB0aGUgcmFuZ2UgY29sdW1uICovCisJRGF0 dW0JZnBfdGFyZ2V0UmFuZ2U7CQkvKiB0aGUgcmFuZ2UgZnJvbSBGT1IgUE9SVElPTiBPRiAq LworCVR5cGVDYWNoZUVudHJ5ICpmcF9sZWZ0b3ZlcnN0eXBjYWNoZTsJLyogdHlwZSBjYWNo ZSBlbnRyeSBvZiB0aGUgcmFuZ2UgKi8KKwlUdXBsZVRhYmxlU2xvdCAqZnBfRXhpc3Rpbmc7 CQkvKiBzbG90IHRvIHN0b3JlIG9sZCB0dXBsZSAqLworCVR1cGxlVGFibGVTbG90ICpmcF9M ZWZ0b3ZlcjsJCS8qIHNsb3QgdG8gc3RvcmUgbGVmdG92ZXIgKi8KKwlEYXR1bSAgKmZwX3Zh bHVlczsJLyogU1BJIGlucHV0IGZvciBsZWZ0b3ZlciB2YWx1ZXMgKi8KKwljaGFyICAgKmZw X251bGxzOwkvKiBTUEkgaW5wdXQgZm9yIG51bGxzICovCit9IEZvclBvcnRpb25PZlN0YXRl OworCiAvKgogICogUmVzdWx0UmVsSW5mbwogICoKQEAgLTU1OCw2ICs1ODAsOSBAQCB0eXBl ZGVmIHN0cnVjdCBSZXN1bHRSZWxJbmZvCiAJLyogZm9yIE1FUkdFLCBleHByIHN0YXRlIGZv ciBjaGVja2luZyB0aGUgam9pbiBjb25kaXRpb24gKi8KIAlFeHByU3RhdGUgICpyaV9NZXJn ZUpvaW5Db25kaXRpb247CiAKKwkvKiBGT1IgUE9SVElPTiBPRiBldmFsdWF0aW9uIHN0YXRl ICovCisJRm9yUG9ydGlvbk9mU3RhdGUgKnJpX2ZvclBvcnRpb25PZjsKKwogCS8qIHBhcnRp dGlvbiBjaGVjayBleHByZXNzaW9uIHN0YXRlIChOVUxMIGlmIG5vdCBzZXQgdXAgeWV0KSAq LwogCUV4cHJTdGF0ZSAgKnJpX1BhcnRpdGlvbkNoZWNrRXhwcjsKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IGM5MmNlZjNkMTZkLi5lODZjM2E1YTBlZCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5 CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCisJLyogRk9SIFBPUlRJT04gT0YgY2xhdXNlIGZvciBVUERBVEUvREVM RVRFICovCisJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mOworCiAJLyogaGFzIGFn Z3JlZ2F0ZXMgaW4gdGxpc3Qgb3IgaGF2aW5nUXVhbCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rp b25zIGluIHRsaXN0ICovCkBAIC0xNTgyLDYgKzE1ODUsMjEgQEAgdHlwZWRlZiBzdHJ1Y3Qg Um93TWFya0NsYXVzZQogCWJvb2wJCXB1c2hlZERvd247CQkvKiBwdXNoZWQgZG93biBmcm9t IGhpZ2hlciBxdWVyeSBsZXZlbD8gKi8KIH0gUm93TWFya0NsYXVzZTsKIAorLyoKKyAqIEZv clBvcnRpb25PZkNsYXVzZQorICoJCXJlcHJlc2VudGF0aW9uIG9mIEZPUiBQT1JUSU9OIE9G IDxwZXJpb2QtbmFtZT4gRlJPTSA8dHM+IFRPIDx0ZT4KKyAqCQlvciBGT1IgUE9SVElPTiBP RiA8cGVyaW9kLW5hbWU+ICg8dGFyZ2V0PikKKyAqLwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9y dGlvbk9mQ2xhdXNlCit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpyYW5nZV9uYW1l OworCWludAkJCWxvY2F0aW9uOworCU5vZGUJICAgKnRhcmdldDsKKwlOb2RlCSAgICp0YXJn ZXRfc3RhcnQ7CisJTm9kZQkgICAqdGFyZ2V0X2VuZDsKK30gRm9yUG9ydGlvbk9mQ2xhdXNl OworCiAvKgogICogV2l0aENsYXVzZSAtCiAgKgkgICByZXByZXNlbnRhdGlvbiBvZiBXSVRI IGNsYXVzZQpAQCAtMjA1NCwxMiArMjA3MiwxMyBAQCB0eXBlZGVmIHN0cnVjdCBJbnNlcnRT dG10CiAgKi8KIHR5cGVkZWYgc3RydWN0IERlbGV0ZVN0bXQKIHsKLQlOb2RlVGFnCQl0eXBl OwotCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gZGVsZXRlIGZyb20g Ki8KLQlMaXN0CSAgICp1c2luZ0NsYXVzZTsJLyogb3B0aW9uYWwgdXNpbmcgY2xhdXNlIGZv ciBtb3JlIHRhYmxlcyAqLwotCU5vZGUJICAgKndoZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0 aW9ucyAqLwotCUxpc3QJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lv bnMgdG8gcmV0dXJuICovCi0JV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xh dXNlICovCisJTm9kZVRhZwkJCQl0eXBlOworCVJhbmdlVmFyCQkgICAqcmVsYXRpb247CQkv KiByZWxhdGlvbiB0byBkZWxldGUgZnJvbSAqLworCUZvclBvcnRpb25PZkNsYXVzZSAqZm9y UG9ydGlvbk9mOwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgKi8KKwlMaXN0CQkJICAgKnVz aW5nQ2xhdXNlOwkvKiBvcHRpb25hbCB1c2luZyBjbGF1c2UgZm9yIG1vcmUgdGFibGVzICov CisJTm9kZQkJCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KKwlMaXN0 CQkJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJu ICovCisJV2l0aENsYXVzZQkJICAgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwog fSBEZWxldGVTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDY4LDEz ICsyMDg3LDE0IEBAIHR5cGVkZWYgc3RydWN0IERlbGV0ZVN0bXQKICAqLwogdHlwZWRlZiBz dHJ1Y3QgVXBkYXRlU3RtdAogewotCU5vZGVUYWcJCXR5cGU7Ci0JUmFuZ2VWYXIgICAqcmVs YXRpb247CQkvKiByZWxhdGlvbiB0byB1cGRhdGUgKi8KLQlMaXN0CSAgICp0YXJnZXRMaXN0 OwkJLyogdGhlIHRhcmdldCBsaXN0IChvZiBSZXNUYXJnZXQpICovCi0JTm9kZQkgICAqd2hl cmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCi0JTGlzdAkgICAqZnJvbUNsYXVzZTsJ CS8qIG9wdGlvbmFsIGZyb20gY2xhdXNlIGZvciBtb3JlIHRhYmxlcyAqLwotCUxpc3QJICAg KnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJuICovCi0J V2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCisJTm9kZVRhZwkJ CQl0eXBlOworCVJhbmdlVmFyCQkgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byB1cGRh dGUgKi8KKwlGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZjsJLyogRk9SIFBPUlRJ T04gT0YgY2xhdXNlICovCisJTGlzdAkJCSAgICp0YXJnZXRMaXN0OwkJLyogdGhlIHRhcmdl dCBsaXN0IChvZiBSZXNUYXJnZXQpICovCisJTm9kZQkJCSAgICp3aGVyZUNsYXVzZTsJLyog cXVhbGlmaWNhdGlvbnMgKi8KKwlMaXN0CQkJICAgKmZyb21DbGF1c2U7CQkvKiBvcHRpb25h bCBmcm9tIGNsYXVzZSBmb3IgbW9yZSB0YWJsZXMgKi8KKwlMaXN0CQkJICAgKnJldHVybmlu Z0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJuICovCisJV2l0aENsYXVz ZQkJICAgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBVcGRhdGVTdG10Owog CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4 IDA3ZTI0MTUzOThlLi5kNTM4YWUyMzgwOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAg LTIzOTIsNiArMjM5Miw3IEBAIHR5cGVkZWYgc3RydWN0IE1vZGlmeVRhYmxlUGF0aAogCUxp c3QJICAgKnJldHVybmluZ0xpc3RzOyAvKiBwZXItdGFyZ2V0LXRhYmxlIFJFVFVSTklORyB0 bGlzdHMgKi8KIAlMaXN0CSAgICpyb3dNYXJrczsJCS8qIFBsYW5Sb3dNYXJrcyAobm9uLWxv Y2tpbmcgb25seSkgKi8KIAlPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdDsgLyogT04gQ09O RkxJQ1QgY2xhdXNlLCBvciBOVUxMICovCisJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlv bk9mOwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQREFURS9ERUxFVEUgKi8KIAlp bnQJCQllcHFQYXJhbTsJCS8qIElEIG9mIFBhcmFtIGZvciBFdmFsUGxhblF1YWwgcmUtZXZh bCAqLwogCUxpc3QJICAgKm1lcmdlQWN0aW9uTGlzdHM7CS8qIHBlci10YXJnZXQtdGFibGUg bGlzdHMgb2YgYWN0aW9ucyBmb3IKIAkJCQkJCQkJCSAqIE1FUkdFICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bs YW5ub2Rlcy5oCmluZGV4IDUyZjI5YmNkYjY5Li43M2YzMTcxY2RkYiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmgKQEAgLTI0NCw2ICsyNDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBNb2RpZnlU YWJsZQogCUxpc3QJICAgKnJvd01hcmtzOwkJLyogUGxhblJvd01hcmtzIChub24tbG9ja2lu ZyBvbmx5KSAqLwogCWludAkJCWVwcVBhcmFtOwkJLyogSUQgb2YgUGFyYW0gZm9yIEV2YWxQ bGFuUXVhbCByZS1ldmFsICovCiAJT25Db25mbGljdEFjdGlvbiBvbkNvbmZsaWN0QWN0aW9u OwkvKiBPTiBDT05GTElDVCBhY3Rpb24gKi8KKwlOb2RlCSAgICpmb3JQb3J0aW9uT2Y7CS8q IEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBEQVRFL0RFTEVURSAqLwogCUxpc3QJICAg KmFyYml0ZXJJbmRleGVzOyAvKiBMaXN0IG9mIE9OIENPTkZMSUNUIGFyYml0ZXIgaW5kZXgg T0lEcyAgKi8KIAlMaXN0CSAgICpvbkNvbmZsaWN0U2V0OwkvKiBJTlNFUlQgT04gQ09ORkxJ Q1QgRE8gVVBEQVRFIHRhcmdldGxpc3QgKi8KIAlMaXN0CSAgICpvbkNvbmZsaWN0Q29sczsg LyogdGFyZ2V0IGNvbHVtbiBudW1iZXJzIGZvciBvbkNvbmZsaWN0U2V0ICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oCmluZGV4IGIwZWYxOTUyZThmLi44MzkyMDE4YTgyMSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcHJpbW5vZGVzLmgKQEAgLTIzMzYsNCArMjMzNiwzMCBAQCB0eXBlZGVmIHN0cnVjdCBP bkNvbmZsaWN0RXhwcgogCUxpc3QJICAgKmV4Y2xSZWxUbGlzdDsJLyogdGxpc3Qgb2YgdGhl IEVYQ0xVREVEIHBzZXVkbyByZWxhdGlvbiAqLwogfSBPbkNvbmZsaWN0RXhwcjsKIAorLyot LS0tLS0tLS0tCisgKiBGb3JQb3J0aW9uT2ZFeHByIC0gcmVwcmVzZW50cyBhIEZPUiBQT1JU SU9OIE9GIC4uLiBleHByZXNzaW9uCisgKgorICogV2Ugc2V0IHVwIGFuIGV4cHJlc3Npb24g dG8gbWFrZSBhIHJhbmdlIGZyb20gdGhlIEZST00vVE8gYm91bmRzLAorICogc28gdGhhdCB3 ZSBjYW4gdXNlIHJhbmdlIG9wZXJhdG9ycyB3aXRoIGl0LgorICoKKyAqIFRoZW4gd2Ugc2V0 IHVwIGFuIG92ZXJsYXBzIGV4cHJlc3Npb24gYmV0d2VlbiB0aGF0IGFuZCB0aGUgcmFuZ2Ug Y29sdW1uLAorICogc28gdGhhdCB3ZSBjYW4gZmluZCB0aGUgcm93cyB3ZSBuZWVkIHRvIHVw ZGF0ZS9kZWxldGUuCisgKgorICogSW4gdGhlIGV4ZWN1dG9yIHdlJ2xsIGFsc28gYnVpbGQg YW4gaW50ZXJzZWN0IGV4cHJlc3Npb24gYmV0d2VlbiB0aGUKKyAqIHRhcmdldGVkIHJhbmdl IGFuZCB0aGUgcmFuZ2UgY29sdW1uLCBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgdGhlIHN0YXJ0 L2VuZAorICogYm91bmRzIG9mIHRoZSBVUERBVEUnZCByZWNvcmQuCisgKi0tLS0tLS0tLS0K KyAqLwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mRXhwcgoreworCU5vZGVUYWcJCXR5 cGU7CisJVmFyCQkgICAqcmFuZ2VWYXI7CQkJLyogUmFuZ2UgY29sdW1uICovCisJY2hhcgkg ICAqcmFuZ2VfbmFtZTsJCQkvKiBSYW5nZSBuYW1lICovCisJTm9kZQkgICAqdGFyZ2V0UmFu Z2U7CQkvKiBGT1IgUE9SVElPTiBPRiBib3VuZHMgYXMgYSByYW5nZSAqLworCU9pZAkJCXJh bmdlVHlwZTsJCQkvKiB0eXBlIG9mIHRhcmdldFJhbmdlICovCisJTm9kZQkgICAqb3Zlcmxh cHNFeHByOwkJLyogcmFuZ2UgJiYgdGFyZ2V0UmFuZ2UgKi8KKwlMaXN0CSAgICpyYW5nZVRh cmdldExpc3Q7CS8qIExpc3Qgb2YgVGFyZ2V0RW50cnlzIHRvIHNldCB0aGUgdGltZSBjb2x1 bW4ocykgKi8KKwlPaWQJCQl3aXRob3V0UG9ydGlvblByb2M7CS8qIHByb2MgZm9yIG9sZF9y YW5nZSBALSB0YXJnZXRfcmFuZ2UgKi8KK30gRm9yUG9ydGlvbk9mRXhwcjsKKwogI2VuZGlm CQkJCQkJCS8qIFBSSU1OT0RFU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oCmlu ZGV4IDEwMzVlNjU2MGMxLi5iNTk0Y2NjYWI5MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv b3B0aW1pemVyL3BhdGhub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhu b2RlLmgKQEAgLTI4OSw3ICsyODksNyBAQCBleHRlcm4gTW9kaWZ5VGFibGVQYXRoICpjcmVh dGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCUxp c3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywKIAkJCQkJ CQkJCQkJCUxpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdCwKIAkJ CQkJCQkJCQkJCUxpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIExpc3QgKm1lcmdlSm9pbkNvbmRp dGlvbnMsCi0JCQkJCQkJCQkJCQlpbnQgZXBxUGFyYW0pOworCQkJCQkJCQkJCQkJRm9yUG9y dGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mLCBpbnQgZXBxUGFyYW0pOwogZXh0ZXJuIExpbWl0 UGF0aCAqY3JlYXRlX2xpbWl0X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8g KnJlbCwKIAkJCQkJCQkJCVBhdGggKnN1YnBhdGgsCiAJCQkJCQkJCQlOb2RlICpsaW1pdE9m ZnNldCwgTm9kZSAqbGltaXRDb3VudCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9hbmFseXplLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCmluZGV4IDI4YjY2 ZmNjYjQzLi42YzcwZGFlMTQ1MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2Fu YWx5emUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC00Myw3ICs0 Myw4IEBAIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1JbnNlcnRSb3coUGFyc2VTdGF0ZSAqcHN0 YXRlLCBMaXN0ICpleHBybGlzdCwKIAkJCQkJCQkJTGlzdCAqc3RtdGNvbHMsIExpc3QgKmlj b2x1bW5zLCBMaXN0ICphdHRybm9zLAogCQkJCQkJCQlib29sIHN0cmlwX2luZGlyZWN0aW9u KTsKIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KFBhcnNlU3RhdGUg KnBzdGF0ZSwKLQkJCQkJCQkJCSAgIExpc3QgKm9yaWdUbGlzdCk7CisJCQkJCQkJCQkgICBM aXN0ICpvcmlnVGxpc3QsCisJCQkJCQkJCQkgICBGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0 aW9uT2YpOwogZXh0ZXJuIExpc3QgKnRyYW5zZm9ybVJldHVybmluZ0xpc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICpyZXR1cm5pbmdMaXN0LAogCQkJCQkJCQkJUGFyc2VFeHByS2lu ZCBleHByS2luZCk7CiBleHRlcm4gUXVlcnkgKnRyYW5zZm9ybVRvcExldmVsU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIFJhd1N0bXQgKnBhcnNlVHJlZSk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK aW5kZXggODk5ZDY0YWQ1NWYuLjQyNTk4N2FmZWU3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBA IC0zNDMsNiArMzQzLDcgQEAgUEdfS0VZV09SRCgicGxhY2luZyIsIFBMQUNJTkcsIFJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFuIiwgUExBTiwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhbnMiLCBQTEFO UywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicG9saWN5 IiwgUE9MSUNZLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JE KCJwb3J0aW9uIiwgUE9SVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgicG9zaXRpb24iLCBQT1NJVElPTiwgQ09MX05BTUVfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInByZWNlZGluZyIsIFBSRUNFRElORywgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicHJlY2lzaW9uIiwgUFJFQ0lT SU9OLCBDT0xfTkFNRV9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oCmluZGV4IDU0M2RmNTY4MTQ3Li44YzI3M2RhOTRlNyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCkBAIC01Niw2ICs1Niw3IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5k CiAJRVhQUl9LSU5EX1VQREFURV9TT1VSQ0UsCS8qIFVQREFURSBhc3NpZ25tZW50IHNvdXJj ZSBpdGVtICovCiAJRVhQUl9LSU5EX1VQREFURV9UQVJHRVQsCS8qIFVQREFURSBhc3NpZ25t ZW50IHRhcmdldCBpdGVtICovCiAJRVhQUl9LSU5EX01FUkdFX1dIRU4sCQkvKiBNRVJHRSBX SEVOIFtOT1RdIE1BVENIRUQgY29uZGl0aW9uICovCisJRVhQUl9LSU5EX1VQREFURV9QT1JU SU9OLAkvKiBVUERBVEUgRk9SIFBPUlRJT04gT0YgaXRlbSAqLwogCUVYUFJfS0lORF9HUk9V UF9CWSwJCQkvKiBHUk9VUCBCWSAqLwogCUVYUFJfS0lORF9PUkRFUl9CWSwJCQkvKiBPUkRF UiBCWSAqLwogCUVYUFJfS0lORF9ESVNUSU5DVF9PTiwJCS8qIERJU1RJTkNUIE9OICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IDIwNDQ2ZjZmODM2Li5lN2FkNTEzMTQ2YSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1 ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBleHRlcm4gT2lkCWdl dF9uZWdhdG9yKE9pZCBvcG5vKTsKIGV4dGVybiBSZWdQcm9jZWR1cmUgZ2V0X29wcnJlc3Qo T2lkIG9wbm8pOwogZXh0ZXJuIFJlZ1Byb2NlZHVyZSBnZXRfb3Byam9pbihPaWQgb3Bubyk7 CiBleHRlcm4gY2hhciAqZ2V0X2Z1bmNfbmFtZShPaWQgZnVuY2lkKTsKLWV4dGVybiBPaWQJ Z2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5jaWQpOworZXh0ZXJuIE9pZAlnZXRfZnVuY19u YW1lc3BhY2UoT2lkIGZ1bmNpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0 X2Z1bmNfcmV0dHlwZShPaWQgZnVuY2lkKTsKIGV4dGVybiBpbnQJZ2V0X2Z1bmNfbmFyZ3Mo T2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9mdW5jX3NpZ25hdHVyZShPaWQgZnVuY2lk LCBPaWQgKiphcmd0eXBlcywgaW50ICpuYXJncyk7CkBAIC0xNDUsNiArMTQ1LDggQEAgZXh0 ZXJuIE9pZAlnZXRfcmVsX3JlbGFtKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF90cmFu c2Zvcm1fZnJvbXNxbChPaWQgdHlwaWQsIE9pZCBsYW5naWQsIExpc3QgKnRyZnR5cGVzKTsK IGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9ybV90b3NxbChPaWQgdHlwaWQsIE9pZCBsYW5naWQs IExpc3QgKnRyZnR5cGVzKTsKIGV4dGVybiBib29sIGdldF90eXBpc2RlZmluZWQoT2lkIHR5 cGlkKTsKK2V4dGVybiBjaGFyICpnZXRfdHlwbmFtZShPaWQgdHlwaWQpOworZXh0ZXJuIGJv b2wgZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShPaWQgdHlwaWQsIGNoYXIgKip0eXBuYW1l LCBjaGFyICoqdHlwbmFtZXNwYWNlKTsKIGV4dGVybiBpbnQxNiBnZXRfdHlwbGVuKE9pZCB0 eXBpZCk7CiBleHRlcm4gYm9vbCBnZXRfdHlwYnl2YWwoT2lkIHR5cGlkKTsKIGV4dGVybiB2 b2lkIGdldF90eXBsZW5ieXZhbChPaWQgdHlwaWQsIGludDE2ICp0eXBsZW4sIGJvb2wgKnR5 cGJ5dmFsKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3Bv cnRpb25fb2Yub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9v Zi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRiMjE3YzYx ZDJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3Jf cG9ydGlvbl9vZi5vdXQKQEAgLTAsMCArMSw3NTMgQEAKKy0tIFRlc3RzIGZvciBVUERBVEUv REVMRVRFIEZPUiBQT1JUSU9OIE9GCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworLS0g V29ya3Mgb24gbm9uLVBLIGNvbHVtbnMKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUg dGV4dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFM VUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMjAtMDEtMDEpJywgJ29uZScpOworVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjEnOworREVM RVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0xNScgVE8gJzIwMTktMDEtMjAnOworLS0gV2l0aCBhIHRhYmxlIGFs aWFzIHdpdGggQVMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAyLTAxJyBUTyAnMjAxOS0wMi0wMycgQVMgdAorU0VU IG5hbWUgPSAnb25lXjInOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wMycgVE8gJzIwMTktMDItMDQn IEFTIHQ7CistLSBXaXRoIGEgdGFibGUgYWxpYXMgd2l0aG91dCBBUworVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDIt MDQnIFRPICcyMDE5LTAyLTA1JyB0CitTRVQgbmFtZSA9ICdvbmVeMyc7CitERUxFVEUgRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAyLTA1JyBUTyAnMjAxOS0wMi0wNicgdDsKKy0tIFVQREFURSB3aXRoIEZST00KK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAzLTAxJyB0byAnMjAxOS0wMy0wMicKK1NFVCBuYW1lID0gJ29uZV40JworRlJP TSAoU0VMRUNUICdbMSwyKSc6OmludDRyYW5nZSkgQVMgdDIoaWQpCitXSEVSRSBmb3JfcG9y dGlvbl9vZl90ZXN0LmlkID0gdDIuaWQ7CistLSBERUxFVEUgd2l0aCBVU0lORworREVMRVRF IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMy0wMicgVE8gJzIwMTktMDMtMDMnCitVU0lORyAoU0VMRUNUICdbMSwyKSc6 OmludDRyYW5nZSkgQVMgdDIoaWQpCitXSEVSRSBmb3JfcG9ydGlvbl9vZl90ZXN0LmlkID0g dDIuaWQ7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCBb MjAxOC0wMS0wMiwyMDE4LTAxLTE1KSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMTUsMjAx OS0wMS0wMSkgfCBvbmVeMQorIFsxLDIpIHwgWzIwMTktMDEtMDEsMjAxOS0wMS0xNSkgfCBv bmUKKyBbMSwyKSB8IFsyMDE5LTAxLTIwLDIwMTktMDItMDEpIHwgb25lCisgWzEsMikgfCBb MjAxOS0wMi0wMSwyMDE5LTAyLTAzKSB8IG9uZV4yCisgWzEsMikgfCBbMjAxOS0wMi0wNCwy MDE5LTAyLTA1KSB8IG9uZV4zCisgWzEsMikgfCBbMjAxOS0wMi0wNiwyMDE5LTAzLTAxKSB8 IG9uZQorIFsxLDIpIHwgWzIwMTktMDMtMDEsMjAxOS0wMy0wMikgfCBvbmVeNAorIFsxLDIp IHwgWzIwMTktMDMtMDMsMjAyMC0wMS0wMSkgfCBvbmUKKyg5IHJvd3MpCisKKy0tIFdvcmtz IG9uIG1vcmUgdGhhbiBvbmUgcmFuZ2UKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVz dDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZDFfYXQgZGF0ZXJhbmdlLAorICB2YWxpZDJfYXQgZGF0ZXJhbmdlLAorICBu YW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0 IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdbMjAxNS0w MS0wMSwyMDI1LTAxLTAxKScsICdvbmUnKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gTlVMTAor U0VUIG5hbWUgPSAnZm9vJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBP UkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisgIGlkICAgfCAgICAgICAgdmFs aWQxX2F0ICAgICAgICB8ICAgICAgICB2YWxpZDJfYXQgICAgICAgIHwgbmFtZSAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBbMjAxNS0wMS0w MSwyMDI1LTAxLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMTUsMjAxOC0wMi0wMykg fCBbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKSB8IGZvbworKDIgcm93cykKKworVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4 LTAxLTE1JyBUTyBOVUxMCitTRVQgbmFtZSA9ICdiYXInOworU0VMRUNUICogRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZDFfYXQsIHZhbGlkMl9hdDsKKyAg aWQgICB8ICAgICAgICB2YWxpZDFfYXQgICAgICAgIHwgICAgICAgIHZhbGlkMl9hdCAgICAg ICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAx LTE1KSB8IFsyMDE1LTAxLTAxLDIwMTgtMDEtMTUpIHwgb25lCisgWzEsMikgfCBbMjAxOC0w MS0wMiwyMDE4LTAxLTE1KSB8IFsyMDE4LTAxLTE1LDIwMjUtMDEtMDEpIHwgYmFyCisgWzEs MikgfCBbMjAxOC0wMS0xNSwyMDE4LTAyLTAzKSB8IFsyMDE1LTAxLTAxLDIwMTgtMDEtMTUp IHwgZm9vCisgWzEsMikgfCBbMjAxOC0wMS0xNSwyMDE4LTAyLTAzKSB8IFsyMDE4LTAxLTE1 LDIwMjUtMDEtMDEpIHwgYmFyCisoNCByb3dzKQorCitERUxFVEUgRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0yMCcg VE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBp ZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWQxX2F0ICAg ICAgICB8ICAgICAgICB2YWxpZDJfYXQgICAgICAgIHwgbmFtZSAKKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQor IFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBbMjAxNS0wMS0wMSwyMDE4LTAx LTE1KSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBbMjAxOC0w MS0xNSwyMDI1LTAxLTAxKSB8IGJhcgorIFsxLDIpIHwgWzIwMTgtMDEtMTUsMjAxOC0wMS0y MCkgfCBbMjAxNS0wMS0wMSwyMDE4LTAxLTE1KSB8IGZvbworIFsxLDIpIHwgWzIwMTgtMDEt MTUsMjAxOC0wMS0yMCkgfCBbMjAxOC0wMS0xNSwyMDI1LTAxLTAxKSB8IGJhcgorKDQgcm93 cykKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg dmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQyX2F0Owor ICBpZCAgIHwgICAgICAgIHZhbGlkMV9hdCAgICAgICAgfCAgICAgICAgdmFsaWQyX2F0ICAg ICAgICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KKyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgt MDEtMTUpIHwgWzIwMTUtMDEtMDEsMjAxOC0wMS0xNSkgfCBvbmUKKyBbMSwyKSB8IFsyMDE4 LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIwMTgtMDEtMTUsMjAxOC0wMS0yMCkgfCBiYXIKKyBb MSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEtMjApIHwgWzIwMTUtMDEtMDEsMjAxOC0wMS0x NSkgfCBmb28KKyBbMSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEtMjApIHwgWzIwMTgtMDEt MTUsMjAxOC0wMS0yMCkgfCBiYXIKKyg0IHJvd3MpCisKKy0tIFRlc3Qgd2l0aCBOVUxMcyBp biB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5zLgorLS0gVGhpcyB3b24ndCBoYXBwZW4g aWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklRVUUgY29uc3RyYWludAorLS0gYnV0 IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRoYXQuCitEUk9QIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQgVEFCTEUgZm9yX3BvcnRpb25f b2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBu YW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUwor ICAoJ1sxLDIpJywgTlVMTCwgJzEgbnVsbCcpLAorICAoJ1sxLDIpJywgJygsKScsICcxIHVu Ym91bmRlZCcpLAorICAoJ1sxLDIpJywgJ2VtcHR5JywgJzEgZW1wdHknKSwKKyAgKE5VTEws IE5VTEwsIE5VTEwpLAorICAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTkt MDEtMDEnKSwgJ251bGwga2V5Jyk7CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorICBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorICBTRVQgbmFtZSA9 ICdOVUxMIHRvIE5VTEwnOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgICAgIG5hbWUgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tCisgWzEsMikgfCBlbXB0eSAgICAgICAgICAgICAgICAgICB8IDEgZW1w dHkKKyBbMSwyKSB8ICgsKSAgICAgICAgICAgICAgICAgICAgIHwgTlVMTCB0byBOVUxMCisg WzEsMikgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgbnVsbAorICAgICAgIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBOVUxMIHRvIE5VTEwKKyAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisoNSByb3dzKQorCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGlu dDRyYW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBu YW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJ TlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0w MiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0w My0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywg J29uZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KScsICd0d28nKSwK KygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpLAorKCdbNCw1KScsICcoLDIw MTgtMDQtMDEpJywgJ2ZvdXInKSwKKygnWzUsNiknLCAnKCwpJywgJ2ZpdmUnKQorOworLS0K Ky0tIFVQREFURSB0ZXN0cworLS0KKy0tIFNldHRpbmcgd2l0aCBhIG1pc3NpbmcgY29sdW1u IGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52 YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb28nCitX SEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBwZXJpb2QgImludmFsaWRf YXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBkb2VzIG5vdCBleGlzdAor TElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRP IE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gU2V0dGluZyB0aGUgcmFuZ2Ug ZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgdmFsaWRfYXQgPSAnWzE5OTAt MDEtMDEsMTk5OS0wMS0wMSknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNhbid0 IGRpcmVjdGx5IGFzc2lnbiB0byAidmFsaWRfYXQiIGluIGEgRk9SIFBPUlRJT04gT0YgdXBk YXRlCitMSU5FIDM6IFNFVCB2YWxpZF9hdCA9ICdbMTk5MC0wMS0wMSwxOTk5LTAxLTAxKScK KyAgICAgICAgICAgIF4KKy0tIFRoZSB3cm9uZyB0eXBlIGZhaWxzCitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAxIFRPIDQKK1NF VCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJPUjogIGZ1bmN0aW9u IHBnX2NhdGFsb2cuZGF0ZXJhbmdlKGludGVnZXIsIGludGVnZXIpIGRvZXMgbm90IGV4aXN0 CitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMSBUTyA0CisgICAgICAg ICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBObyBmdW5jdGlvbiBtYXRjaGVzIHRoZSBnaXZl biBuYW1lIGFuZCBhcmd1bWVudCB0eXBlcy4gWW91IG1pZ2h0IG5lZWQgdG8gYWRkIGV4cGxp Y2l0IHR5cGUgY2FzdHMuCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyByZXZlcnNlZCBm YWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworU0VUIG5hbWUgPSAndGhy ZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFuZ2UgbG93ZXIgYm91bmQg bXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBwZXIgYm91bmQKKy0tIFNl dHRpbmcgd2l0aCBhIHN1YnF1ZXJ5IGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNUICcyMDE4LTAxLTAxJykg VE8gJzIwMTgtMDYtMDEnCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUgaWQgPSAnWzMsNCkn OworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIEZPUiBQT1JUSU9OIE9GIGV4cHJl c3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNUICcy MDE4LTAxLTAxJykgVE8gJzIwMTgtLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorLS0gU2V0dGluZyB3aXRoIGEgY29sdW1uIGZhaWxzCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBsb3dlcih2 YWxpZF9hdCkgVE8gTlVMTAorU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQp JzsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGluIEZPUiBQT1JUSU9O IE9GIGV4cHJlc3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBs b3dlcih2YWxpZF9hdCkgVE8gTlVMTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKy0tIFNldHRpbmcgd2l0aCB0aW1lc3RhbXBzIGVxdWFsIGRvZXMg bm90aGluZworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworU0VUIG5hbWUgPSAn dGhyZWVeMCcKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIFVwZGF0aW5nIGEgZmluaXRlL29w ZW4gcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScg VE8gTlVMTAorU0VUIG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0t IFVwZGF0aW5nIGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGFuIG9wZW4vZmluaXRlIHRh cmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMy0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjInCitX SEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0aW9u IHdpdGggYW4gb3Blbi9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTAxJwor U0VUIG5hbWUgPSAnZm91cl4xJworV0hFUkUgaWQgPSAnWzQsNSknOworLS0gVXBkYXRpbmcg YW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxNy0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm91cl4yJworV0hFUkUgaWQgPSAn WzQsNSknOworLS0gVXBkYXRpbmcgYSBmaW5pdGUvZmluaXRlIHBvcnRpb24gd2l0aCBhbiBl eGFjdCBmaXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyAnMjAxOC0wMi0wMScKK1NFVCBuYW1lID0g J2ZvdXJeMycKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5nIGFuIGVuY2xvc2Vk IHNwYW4KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAndHdvXjInCitXSEVSRSBpZCA9 ICdbMiwzKSc7CistLSBVcGRhdGluZyBhbiBvcGVuL29wZW4gcG9ydGlvbiB3aXRoIGEgZmlu aXRlL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAxJyBUTyAnMjAxOS0wMS0wMScKK1NF VCBuYW1lID0gJ2ZpdmVeMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIFVwZGF0aW5nIGFu IGVuY2xvc2VkIHNwYW4gd2l0aCBzZXBhcmF0ZSBwcm90cnVkaW5nIHNwYW5zCitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx Ny0wMS0wMScgVE8gJzIwMjAtMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjInCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSBVcGRhdGluZyBtdWx0aXBsZSBlbmNsb3NlZCBzcGFucworVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g TlVMTCBUTyBOVUxMCitTRVQgbmFtZSA9ICdvbmVeMicKK1dIRVJFIGlkID0gJ1sxLDIpJzsK Ky0tIFdpdGggYSBkaXJlY3QgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVyYW5nZSgnMjAxOC0wMy0xMCcsICcyMDE4 LTAzLTE3JykpCitTRVQgbmFtZSA9ICdvbmVeMycKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKy0t IFVwZGF0aW5nIHRoZSBub24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6CitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMi0x NScgVE8gTlVMTAorU0VUIGlkID0gJ1s2LDcpJworV0hFUkUgaWQgPSAnWzEsMiknOworLS0g VVBEQVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAzMC0wMS0wMScgVE8gTlVMTAor U0VUIG5hbWUgPSBuYW1lIHx8ICcqJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8ICAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDItMDMpIHwgb25lXjIK KyBbMSwyKSB8IFsyMDE4LTAyLTAzLDIwMTgtMDItMTUpIHwgb25lXjIKKyBbMiwzKSB8IFsy MDE4LTAxLTAxLDIwMTgtMDEtMDUpIHwgdHdvXjIKKyBbMyw0KSB8IFsyMDE4LTAxLTAxLDIw MTgtMDMtMDEpIHwgdGhyZWVeMgorIFszLDQpIHwgWzIwMTgtMDMtMDEsMjAxOC0wNi0wMSkg fCB0aHJlZQorIFszLDQpIHwgWzIwMTgtMDYtMDEsMjAzMC0wMS0wMSkgfCB0aHJlZV4xCisg WzMsNCkgfCBbMjAzMC0wMS0wMSwpICAgICAgICAgICB8IHRocmVlXjEqCisgWzQsNSkgfCAo LDIwMTctMDEtMDEpICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWzIwMTctMDEtMDEs MjAxOC0wMi0wMSkgfCBmb3VyXjMKKyBbNCw1KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDQtMDEp IHwgZm91cl4yCisgWzUsNikgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZpdmUKKyBb NSw2KSB8IFsyMDE3LTAxLTAxLDIwMTgtMDEtMDEpIHwgZml2ZV4yCisgWzUsNikgfCBbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSB8IGZpdmVeMgorIFs1LDYpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCBmaXZlXjIKKyBbNSw2KSB8IFsyMDIwLTAxLTAxLDIwMzAtMDEtMDEpIHwg Zml2ZQorIFs1LDYpIHwgWzIwMzAtMDEtMDEsKSAgICAgICAgICAgfCBmaXZlKgorIFs2LDcp IHwgWzIwMTgtMDItMTUsMjAxOC0wMy0wMykgfCBvbmVeMgorIFs2LDcpIHwgWzIwMTgtMDMt MDMsMjAxOC0wMy0xMCkgfCBvbmVeMgorIFs2LDcpIHwgWzIwMTgtMDMtMTAsMjAxOC0wMy0x NykgfCBvbmVeMworIFs2LDcpIHwgWzIwMTgtMDMtMTcsMjAxOC0wNC0wNCkgfCBvbmVeMgor KDIwIHJvd3MpCisKKy0tIFVwZGF0aW5nIHdpdGggYSBzaGlmdC9yZWR1Y2UgY29uZmxpY3QK Ky0tIChyZXF1aXJlcyBhIHRzcmFuZ2UgY29sdW1uKQorQ1JFQVRFIFVOTE9HR0VEIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0 c3JhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90 ZXN0MiAoaWQsIHZhbGlkX2F0LCBuYW1lKQorICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0w MS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKKy0tIHVwZGF0ZXMgWzIwMTEtMDMtMDEgMDE6 MDI6MDAsIDIwMTItMDEtMDEpIChub3RlIDIgbWludXRlcykKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAnMjAxMS0wMy0w MSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAyOjAzJyBIT1VSIFRPIE1JTlVURQorICBU TyAnMjAxMi0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMikn OworLS0gVE8gaXMgdXNlZCBmb3IgdGhlIGJvdW5kIGJ1dCBub3QgdGhlIElOVEVSVkFMOgor LS0gc3ludGF4IGVycm9yCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTMtMDMtMDEnOjp0aW1lc3RhbXAgKyBJTlRF UlZBTCAnMTowMjowMycgSE9VUgorICBUTyAnMjAxNC0wMS0wMScKK1NFVCBuYW1lID0gJ29u ZV4yJworV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3Ig bmVhciAiJzIwMTQtMDEtMDEnIgorTElORSA0OiAgIFRPICcyMDE0LTAxLTAxJworICAgICAg ICAgICAgIF4KKy0tIGFkZGluZyBwYXJlbnMgZml4ZXMgaXQKKy0tIHVwZGF0ZXMgWzIwMTUt MDMtMDEgMDE6MDA6MDAsIDIwMTYtMDEtMDEpIChubyBtaW51dGVzKQorVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBGUk9NICgnMjAx NS0wMy0wMSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAyOjAzJyBIT1VSKQorICBUTyAn MjAxNi0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4zJworV0hFUkUgaWQgPSAnWzEsMiknOwor U0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAg ICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWyIyMDAwLTAxLTAxIDAwOjAw OjAwIiwiMjAxMS0wMy0wMSAwMTowMjowMCIpIHwgb25lCisgWzEsMikgfCBbIjIwMTEtMDMt MDEgMDE6MDI6MDAiLCIyMDEyLTAxLTAxIDAwOjAwOjAwIikgfCBvbmVeMQorIFsxLDIpIHwg WyIyMDEyLTAxLTAxIDAwOjAwOjAwIiwiMjAxNS0wMy0wMSAwMTowMDowMCIpIHwgb25lCisg WzEsMikgfCBbIjIwMTUtMDMtMDEgMDE6MDA6MDAiLCIyMDE2LTAxLTAxIDAwOjAwOjAwIikg fCBvbmVeMworIFsxLDIpIHwgWyIyMDE2LTAxLTAxIDAwOjAwOjAwIiwiMjAyMC0wMS0wMSAw MDowMDowMCIpIHwgb25lCisoNSByb3dzKQorCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29m X3Rlc3QyOworLS0KKy0tIERFTEVURSB0ZXN0cworLS0KKy0tIERlbGV0aW5nIHdpdGggYSBt aXNzaW5nIGNvbHVtbiBmYWlscworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitX SEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBwZXJpb2QgImludmFsaWRf YXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBkb2VzIG5vdCBleGlzdAor TElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRP IE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRGVsZXRpbmcgd2l0aCB0aW1l c3RhbXBzIHJldmVyc2VkIGZhaWxzCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAxOC0w MS0wMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFuZ2UgbG93ZXIgYm91bmQg bXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBwZXIgYm91bmQKKy0tIERl bGV0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcKK0RFTEVURSBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworV0hFUkUgaWQgPSAnWzMsNCknOworLS0gRGVs ZXRpbmcgd2l0aCBhIGNsb3NlZC9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAx JyBUTyAnMjAyMC0wNi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIERlbGV0aW5nIHdp dGggYSBjbG9zZWQvb3BlbiB0YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPIE5VTEwK K1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIERlbGV0aW5nIHdpdGggYW4gb3Blbi9jbG9zZWQg dGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDgnCitXSEVSRSBpZCA9ICdbMSwy KSc7CistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4vb3BlbiB0YXJnZXQKK0RFTEVURSBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVM TCBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBERUxFVEUgd2l0aCBubyBXSEVS RSBjbGF1c2UKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMjUtMDEtMDEnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDItMDgsMjAxOC0w Mi0xNSkgfCBvbmVeMgorIFsyLDMpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkgfCB0d29e MgorIFszLDQpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSkgfCB0aHJlZV4yCisgWzMsNCkg fCBbMjAxOC0wMy0wMSwyMDE4LTA0LTAxKSB8IHRocmVlCisgWzQsNSkgfCAoLDIwMTctMDEt MDEpICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWzIwMTctMDEtMDEsMjAxOC0wMi0w MSkgfCBmb3VyXjMKKyBbNCw1KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDQtMDEpIHwgZm91cl4y CisgWzUsNikgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZpdmUKKyBbNSw2KSB8IFsy MDE3LTAxLTAxLDIwMTgtMDEtMDEpIHwgZml2ZV4yCisgWzUsNikgfCBbMjAxOC0wMS0wMSwy MDE4LTA2LTAxKSB8IGZpdmVeMgorIFs1LDYpIHwgWzIwMjAtMDYtMDEsMjAyNS0wMS0wMSkg fCBmaXZlCisoMTEgcm93cykKKworLS0gVVBEQVRFIC4uLiBSRVRVUk5JTkcgcmV0dXJucyBv bmx5IHRoZSB1cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRlZCBzaWRlIHZhbHVlcykK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBuYW1lID0gJ3RocmVlXjMn CitXSEVSRSBpZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworICBpZCAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDItMDEsMjAxOC0wMi0xNSkgfCB0 aHJlZV4zCisoMSByb3cpCisKKy0tIHRlc3QgdGhhdCB3ZSBydW4gdHJpZ2dlcnMgb24gdGhl IFVQREFURS9ERUxFVEVkIHJvdyBhbmQgdGhlIElOU0VSVGVkIHJvd3MKK0NSRUFURSBGVU5D VElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCkKK1JFVFVSTlMgdHJpZ2dlcgorQVMKKyQk CitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUgJSAlICUgb2YgJScsIFRHX1dIRU4sIFRHX09Q LCBUR19MRVZFTCwgTkVXLnZhbGlkX2F0LCBPTEQudmFsaWRfYXQ7CisgIElGIFRHX09QID0g J0RFTEVURScgVEhFTgorICAgIFJFVFVSTiBPTEQ7CisgIEVMU0UKKyAgICBSRVRVUk4gTkVX OworICBFTkQgSUY7CitFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBUUklH R0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZvcmUKKyAgQkVGT1JFIElOU0VSVCBPUiBVUERB VEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIEVBQ0ggUk9XCisg IEVYRUNVVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlcigpOworQ1JFQVRFIFRS SUdHRVIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyCisgIEFGVEVSIElOU0VSVCBPUiBVUERB VEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIEVBQ0ggUk9XCisg IEVYRUNVVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlcigpOworQ1JFQVRFIFRS SUdHRVIgdHJnX2Zvcl9wb3J0aW9uX29mX2JlZm9yZV9zdG10CisgIEJFRk9SRSBJTlNFUlQg T1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNI IFNUQVRFTUVOVAorICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIo KTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9hZnRlcl9zdG10CisgIEFG VEVSIElOU0VSVCBPUiBVUERBVEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QK KyAgRk9SIEVBQ0ggU1RBVEVNRU5UCisgIEVYRUNVVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25f b2ZfdHJpZ2dlcigpOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMjEtMDEtMDEnIFRPICcyMDIyLTAxLTAxJworU0VUIG5h bWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAnWzUsNiknOworTk9USUNFOiAgQkVGT1JFIFVQ REFURSBTVEFURU1FTlQgPE5VTEw+IG9mIDxOVUxMPgorTk9USUNFOiAgQkVGT1JFIFVQREFU RSBST1cgWzIwMjEtMDEtMDEsMjAyMi0wMS0wMSkgb2YgWzIwMjAtMDYtMDEsMjAyNS0wMS0w MSkKK05PVElDRTogIEJFRk9SRSBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4K K05PVElDRTogIEJFRk9SRSBJTlNFUlQgUk9XIFsyMDIwLTA2LTAxLDIwMjEtMDEtMDEpIG9m IDxOVUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFJPVyBbMjAyMC0wNi0wMSwyMDIxLTAx LTAxKSBvZiA8TlVMTD4KK05PVElDRTogIEFGVEVSIElOU0VSVCBTVEFURU1FTlQgPE5VTEw+ IG9mIDxOVUxMPgorTk9USUNFOiAgQkVGT1JFIElOU0VSVCBTVEFURU1FTlQgPE5VTEw+IG9m IDxOVUxMPgorTk9USUNFOiAgQkVGT1JFIElOU0VSVCBST1cgWzIwMjItMDEtMDEsMjAyNS0w MS0wMSkgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBJTlNFUlQgUk9XIFsyMDIyLTAxLTAx LDIwMjUtMDEtMDEpIG9mIDxOVUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFNUQVRFTUVO VCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBVUERBVEUgUk9XIFsyMDIxLTAx LTAxLDIwMjItMDEtMDEpIG9mIFsyMDIwLTA2LTAxLDIwMjUtMDEtMDEpCitOT1RJQ0U6ICBB RlRFUiBVUERBVEUgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK0RFTEVURSBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjMt MDEtMDEnIFRPICcyMDI0LTAxLTAxJworV0hFUkUgaWQgPSAnWzUsNiknOworTk9USUNFOiAg QkVGT1JFIERFTEVURSBTVEFURU1FTlQgPE5VTEw+IG9mIDxOVUxMPgorTk9USUNFOiAgQkVG T1JFIERFTEVURSBST1cgPE5VTEw+IG9mIFsyMDIyLTAxLTAxLDIwMjUtMDEtMDEpCitOT1RJ Q0U6ICBCRUZPUkUgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6 ICBCRUZPUkUgSU5TRVJUIFJPVyBbMjAyMi0wMS0wMSwyMDIzLTAxLTAxKSBvZiA8TlVMTD4K K05PVElDRTogIEFGVEVSIElOU0VSVCBST1cgWzIwMjItMDEtMDEsMjAyMy0wMS0wMSkgb2Yg PE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVM TD4KK05PVElDRTogIEJFRk9SRSBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4K K05PVElDRTogIEJFRk9SRSBJTlNFUlQgUk9XIFsyMDI0LTAxLTAxLDIwMjUtMDEtMDEpIG9m IDxOVUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFJPVyBbMjAyNC0wMS0wMSwyMDI1LTAx LTAxKSBvZiA8TlVMTD4KK05PVElDRTogIEFGVEVSIElOU0VSVCBTVEFURU1FTlQgPE5VTEw+ IG9mIDxOVUxMPgorTk9USUNFOiAgQUZURVIgREVMRVRFIFJPVyA8TlVMTD4gb2YgWzIwMjIt MDEtMDEsMjAyNS0wMS0wMSkKK05PVElDRTogIEFGVEVSIERFTEVURSBTVEFURU1FTlQgPE5V TEw+IG9mIDxOVUxMPgorU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg IG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K KyBbMSwyKSB8IFsyMDE4LTAyLTA4LDIwMTgtMDItMTUpIHwgb25lXjIKKyBbMiwzKSB8IFsy MDE4LTAxLTAxLDIwMTgtMDEtMDUpIHwgdHdvXjIKKyBbMyw0KSB8IFsyMDE4LTAxLTAxLDIw MTgtMDItMDEpIHwgdGhyZWVeMgorIFszLDQpIHwgWzIwMTgtMDItMDEsMjAxOC0wMi0xNSkg fCB0aHJlZV4zCisgWzMsNCkgfCBbMjAxOC0wMi0xNSwyMDE4LTAzLTAxKSB8IHRocmVlXjIK KyBbMyw0KSB8IFsyMDE4LTAzLTAxLDIwMTgtMDQtMDEpIHwgdGhyZWUKKyBbNCw1KSB8ICgs MjAxNy0wMS0wMSkgICAgICAgICAgIHwgZm91cl4xCisgWzQsNSkgfCBbMjAxNy0wMS0wMSwy MDE4LTAyLTAxKSB8IGZvdXJeMworIFs0LDUpIHwgWzIwMTgtMDItMDEsMjAxOC0wNC0wMSkg fCBmb3VyXjIKKyBbNSw2KSB8ICgsMjAxNy0wMS0wMSkgICAgICAgICAgIHwgZml2ZQorIFs1 LDYpIHwgWzIwMTctMDEtMDEsMjAxOC0wMS0wMSkgfCBmaXZlXjIKKyBbNSw2KSB8IFsyMDE4 LTAxLTAxLDIwMTgtMDYtMDEpIHwgZml2ZV4yCisgWzUsNikgfCBbMjAyMC0wNi0wMSwyMDIx LTAxLTAxKSB8IGZpdmUKKyBbNSw2KSB8IFsyMDIxLTAxLTAxLDIwMjItMDEtMDEpIHwgZml2 ZV4zCisgWzUsNikgfCBbMjAyMi0wMS0wMSwyMDIzLTAxLTAxKSB8IGZpdmUKKyBbNSw2KSB8 IFsyMDI0LTAxLTAxLDIwMjUtMDEtMDEpIHwgZml2ZQorKDE2IHJvd3MpCisKK0RST1AgRlVO Q1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlciBDQVNDQURFOworTk9USUNFOiAgZHJvcCBj YXNjYWRlcyB0byA0IG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8g dHJpZ2dlciB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3JlIG9uIHRhYmxlIGZvcl9wb3J0aW9u X29mX3Rlc3QKK2Ryb3AgY2FzY2FkZXMgdG8gdHJpZ2dlciB0cmdfZm9yX3BvcnRpb25fb2Zf YWZ0ZXIgb24gdGFibGUgZm9yX3BvcnRpb25fb2ZfdGVzdAorZHJvcCBjYXNjYWRlcyB0byB0 cmlnZ2VyIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZvcmVfc3RtdCBvbiB0YWJsZSBmb3JfcG9y dGlvbl9vZl90ZXN0Citkcm9wIGNhc2NhZGVzIHRvIHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9u X29mX2FmdGVyX3N0bXQgb24gdGFibGUgZm9yX3BvcnRpb25fb2ZfdGVzdAorLS0gVHJpZ2dl cnMgd2l0aCBhIGN1c3RvbSB0cmFuc2l0aW9uIHRhYmxlIG5hbWU6CitEUk9QIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQK Kyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUyAoJ1sxLDIpJywg J1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJywgJ29uZScpOworQ1JFQVRFIEZVTkNUSU9OIGR1 bXBfdHJpZ2dlcigpCitSRVRVUk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQK K0JFR0lOCisgIElGIFRHX09QID0gJ0lOU0VSVCcgVEhFTgorICAgIFJBSVNFIE5PVElDRSAn JTogJSAlLCBORVcgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZF TCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBp ZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAg ICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xEIHRhYmxlID0gJSwgTkVXIHRhYmxlID0gJScs CisgICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmlu Z19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJs ZSksCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9S REVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7CisgIEVMU0lGIFRHX09QID0gJ0RFTEVURScg VEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBPTEQgdGFibGUgPSAlJywKKyAgICAg IFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJs ZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpOworICBFTkQgSUY7 CisgIFJFVFVSTiBOVUxMOworRU5EOworJCQ7CitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlv bl9vZl90ZXN0X2luc2VydF90cmlnCitBRlRFUiBJTlNFUlQgT04gZm9yX3BvcnRpb25fb2Zf dGVzdAorUkVGRVJFTkNJTkcgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9X IEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9y X3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10CitBRlRFUiBJTlNFUlQgT04gZm9y X3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgTkVXIFRBQkxFIEFTIG5ld190YWJsZQor Rk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOwor Q1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZworQUZURVIg VVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBB UyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNV VEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRp b25fb2ZfdGVzdF91cGRhdGVfdHJpZ19zdG10CitBRlRFUiBVUERBVEUgT04gZm9yX3BvcnRp b25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZSBORVcgVEFC TEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUg ZHVtcF90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2Rl bGV0ZV90cmlnCitBRlRFUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJF TkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJP Q0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2Zf dGVzdF9kZWxldGVfdHJpZ19zdG10CitBRlRFUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2Zf dGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZQorRk9SIEVBQ0ggU1RB VEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQkVHSU47CitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKKyAgU0VUIG5hbWUgPSAnMjAxOC0wMS0x NV90b18yMDE5LTAxLTAxJzsKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0 X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwy MDE4LTAxLTE1KSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRf dHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIw MTgtMDEtMDEsMjAxOC0wMS0xNSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rl c3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVz dF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFibGUgPSAoIlsx LDIpIiwiWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0 aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWc6IFVQREFURSBST1csIE9MRCB0YWJsZSA9ICgiWzEs MikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwy KSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEp CitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0bXQ6IFVQREFU RSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAx LTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEt MDEpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEpCitST0xMQkFDSzsKK0JFR0lOOworREVM RVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOworTk9USUNFOiAgZm9yX3BvcnRpb25fb2Zf dGVzdF9pbnNlcnRfdHJpZzogSU5TRVJUIFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsy MDE4LTAxLTIxLDIwMjAtMDEtMDEpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90 ZXN0X2luc2VydF90cmlnX3N0bXQ6IElOU0VSVCBTVEFURU1FTlQsIE5FVyB0YWJsZSA9ICgi WzEsMikiLCJbMjAxOC0wMS0yMSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3Bv cnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZzogREVMRVRFIFJPVywgT0xEIHRhYmxlID0gKCJb MSwyKSIsIlsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9y dGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnX3N0bXQ6IERFTEVURSBTVEFURU1FTlQsIE9MRCB0 YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKQorUk9MTEJB Q0s7CitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMS0wMicKKyAgU0VUIG5hbWUgPSAn TlVMTF90b18yMDE4LTAxLTAxJzsKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5z ZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0w MiwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNl cnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFibGUgPSAoIlsxLDIpIiwi WzIwMTgtMDEtMDIsMjAyMC0wMS0wMSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29m X3Rlc3RfdXBkYXRlX3RyaWc6IFVQREFURSBST1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJb MjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsy MDE4LTAxLTAxLDIwMTgtMDEtMDIpIixOVUxMX3RvXzIwMTgtMDEtMDEpCitOT1RJQ0U6ICBm b3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0bXQ6IFVQREFURSBTVEFURU1FTlQs IE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwg TkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpIixOVUxMX3Rv XzIwMTgtMDEtMDEpCitST0xMQkFDSzsKKy0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcworQ1JF QVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBO VUxMLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0 IE5PVCBOVUxMLAorICBDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5U TyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMpJyksIGRhdGVyYW5nZSgn MjAxOC0wMi0wNCcsICcyMDE4LTAzLTAzJykpLCAnb25lJyksCisoJ1sxLDIpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQpJykpLCAnb25l JyksCisoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDUtMDEpJykpLCAndHdvJyksCisoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgbnVsbCkpLCAndGhyZWUnKTsKKzsKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xMCcsICcyMDE4LTAyLTEwJyksIGRhdGVyYW5nZSgn MjAxOC0wMy0wNScsICcyMDE4LTA1LTAxJykpKQorU0VUIG5hbWUgPSAnb25lXjEnCitXSEVS RSBpZCA9ICdbMSwyKSc7CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0xNScsICcyMDE4LTAyLTE1JyksIGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTAz LTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMyknOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tCisgWzEsMikgfCB7WzIwMTgtMDEtMDIsMjAxOC0wMS0xMCksWzIwMTgtMDItMTAsMjAx OC0wMy0wMyl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25lCisgWzEsMikgfCB7WzIw MTgtMDEtMTAsMjAxOC0wMi0wMyksWzIwMTgtMDItMDQsMjAxOC0wMi0xMCl9ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgb25lXjEKKyBbMSwyKSB8IHtbMjAxOC0wMy0wMywyMDE4LTAz LTA1KX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBvbmUKKyBbMSwyKSB8IHtbMjAxOC0wMy0wNSwyMDE4LTA0LTA0KX0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvbmVeMQorIFsyLDMpIHwg e1syMDE4LTAxLTAxLDIwMTgtMDEtMTUpLFsyMDE4LTAyLTE1LDIwMTgtMDMtMDEpLFsyMDE4 LTAzLTE1LDIwMTgtMDUtMDEpfSB8IHR3bworIFszLDQpIHwge1syMDE4LTAxLTAxLCl9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHRocmVlCisoNiByb3dzKQorCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Qy OworLS0gVGVzdCB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKK0NSRUFURSBUWVBFIG15ZGF0 ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRp b25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IG15 ZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJ TlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3Qy CitWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknLCAnb25lJyks CisoJ1sxLDIpJywgJ1syMDE4LTAyLTAzLDIwMTgtMDMtMDMpJywgJ29uZScpLAorKCdbMSwy KScsICdbMjAxOC0wMy0wMywyMDE4LTA0LTA0KScsICdvbmUnKSwKKygnWzIsMyknLCAnWzIw MTgtMDEtMDEsMjAxOC0wNS0wMSknLCAndHdvJyksCisoJ1szLDQpJywgJ1syMDE4LTAxLTAx LCknLCAndGhyZWUnKTsKKzsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitT RVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKK0RFTEVURSBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dIRVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBp ZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4 LTAxLTEwKSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMTAsMjAxOC0wMi0wMykgfCBvbmVe MQorIFsxLDIpIHwgWzIwMTgtMDItMDMsMjAxOC0wMi0xMCkgfCBvbmVeMQorIFsxLDIpIHwg WzIwMTgtMDItMTAsMjAxOC0wMy0wMykgfCBvbmUKKyBbMSwyKSB8IFsyMDE4LTAzLTAzLDIw MTgtMDQtMDQpIHwgb25lCisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTE1KSB8IHR3 bworIFsyLDMpIHwgWzIwMTgtMDItMTUsMjAxOC0wNS0wMSkgfCB0d28KKyBbMyw0KSB8IFsy MDE4LTAxLTAxLCkgICAgICAgICAgIHwgdGhyZWUKKyg4IHJvd3MpCisKK0RST1AgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDI7CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CistLSBUZXN0 IEZPUiBQT1JUSU9OIE9GIGFnYWluc3QgYSBwYXJ0aXRpb25lZCB0YWJsZS4KKy0tIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzEgaGFzIHRoZSBzYW1lIGF0dG51bXMgYXMgdGhlIHJvb3QKKy0t IHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgaGFzIHRoZSBkaWZmZXJlbnQgYXR0bnVtcyBmcm9t IHRoZSByb290CistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IGhhcyB0aGUgZGlmZmVyZW50 IGF0dG51bXMgdG9vLCBidXQgcmV2ZXJzZWQKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBu YW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF91cSBVTklRVUUg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAo aWQpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgUEFSVElUSU9OIE9G IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMiwzKScp OworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgUEFSVElUSU9OIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOwor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgUEFSVElUSU9OIE9GIHRlbXBv cmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8zOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBE Uk9QIENPTFVNTiBpZCwgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF8zIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMLCBB REQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkIEFUVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9u ZWRfMyBGT1IgVkFMVUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkIERFVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9u ZWRfNTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgRFJPUCBDT0xVTU4g aWQsIERST1AgQ09MVU1OIHZhbGlkX2F0OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfNSBBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTCwgQUREIENP TFVNTiBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEw7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBBVFRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgRk9SIFZB TFVFUyBJTiAoJ1s1LDYpJywgJ1s2LDcpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJyksICdvbmUnKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ2ZpdmUnKTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBb MSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgb25lCisgWzMsNCkgfCBbMjAwMC0w MS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgWzUsNikgfCBbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKSB8IGZpdmUKKygzIHJvd3MpCisKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRo aW4gcGFydGl0aW9uIDEKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VU IG5hbWUgPSAnb25lXjEnCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIFVwZGF0ZSB3aXRo b3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAw MC0wNC0wMScKKyAgU0VUIG5hbWUgPSAndGhyZWVeMScKKyAgV0hFUkUgaWQgPSAnWzMsNCkn OworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gNQorVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjEnCisgIFdI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gMSB0byBwYXJ0aXRp b24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdv bmVeMicsCisgICAgICBpZCA9ICdbNCw1KScKKyAgV0hFUkUgaWQgPSAnWzEsMiknOworLS0g TW92ZSBmcm9tIHBhcnRpdGlvbiAzIHRvIHBhcnRpdGlvbiAxCitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScg VE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ3RocmVlXjInLAorICAgICAgaWQgPSAn WzIsMyknCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24g NSB0byBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBT RVQgbmFtZSA9ICdmaXZlXjInLAorICAgICAgaWQgPSAnWzMsNCknCisgIFdIRVJFIGlkID0g J1s1LDYpJzsKKy0tIFVwZGF0ZSBhbGwgcGFydGl0aW9ucyBhdCBvbmNlIChlYWNoIHdpdGgg bGVmdG92ZXJzKQorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBu YW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisg WzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAzLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAt MDMtMDEsMjAwMC0wNC0wMSkgfCBvbmVeMQorIFsxLDIpIHwgWzIwMDAtMDQtMDEsMjAwMC0w Ni0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgb25lCisg WzIsMykgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAxKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsy MDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAzLTAxLDIw MDAtMDQtMDEpIHwgdGhyZWVeMQorIFszLDQpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkg fCB0aHJlZQorIFszLDQpIHwgWzIwMDAtMDYtMDEsMjAwMC0wNy0wMSkgfCBmaXZlXjIKKyBb Myw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKyBbNCw1KSB8IFsyMDAw LTA2LTAxLDIwMDAtMDctMDEpIHwgb25lXjIKKyBbNSw2KSB8IFsyMDAwLTAxLTAxLDIwMDAt MDMtMDEpIHwgZml2ZQorIFs1LDYpIHwgWzIwMDAtMDMtMDEsMjAwMC0wNC0wMSkgfCBmaXZl XjEKKyBbNSw2KSB8IFsyMDAwLTA0LTAxLDIwMDAtMDYtMDEpIHwgZml2ZQorIFs1LDYpIHwg WzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBmaXZlCisoMTUgcm93cykKKworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAx LDIwMDAtMDMtMDEpIHwgb25lCisgWzEsMikgfCBbMjAwMC0wMy0wMSwyMDAwLTA0LTAxKSB8 IG9uZV4xCisgWzEsMikgfCBbMjAwMC0wNC0wMSwyMDAwLTA2LTAxKSB8IG9uZQorIFsxLDIp IHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBvbmUKKyBbMiwzKSB8IFsyMDAwLTA2LTAx LDIwMDAtMDctMDEpIHwgdGhyZWVeMgorKDUgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF8zIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgbmFtZSAgIHwg IGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0aHJlZSAgIHwgWzMsNCkgfCBbMjAwMC0wMS0w MSwyMDAwLTAzLTAxKQorIHRocmVlXjEgfCBbMyw0KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQt MDEpCisgdGhyZWUgICB8IFszLDQpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkKKyBmaXZl XjIgIHwgWzMsNCkgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAxKQorIHRocmVlICAgfCBbMyw0 KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpCisgb25lXjIgICB8IFs0LDUpIHwgWzIwMDAt MDYtMDEsMjAwMC0wNy0wMSkKKyg2IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfNSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIG5hbWUgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCAgaWQgICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLQorIGZpdmUgICB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwg WzUsNikKKyBmaXZlXjEgfCBbMjAwMC0wMy0wMSwyMDAwLTA0LTAxKSB8IFs1LDYpCisgZml2 ZSAgIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBbNSw2KQorIGZpdmUgICB8IFsyMDAw LTA3LTAxLDIwMTAtMDEtMDEpIHwgWzUsNikKKyg0IHJvd3MpCisKK0RST1AgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWQ7CitSRVNFVCBkYXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRleCAzNGEzMmJkMTFkMi4uNzA0OGVhMGE1 OWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dApAQCAt MTk0OCw2ICsxOTQ4LDcgQEAgV0hFUkUgYTEuYW1vcGZhbWlseSA9IDAgT1IgYTEuYW1vcGxl ZnR0eXBlID0gMCBPUiBhMS5hbW9wcmlnaHR0eXBlID0gMAogU0VMRUNUIGExLmFtb3BmYW1p bHksIGExLmFtb3BzdHJhdGVneQogRlJPTSBwZ19hbW9wIGFzIGExCiBXSEVSRSBOT1QgKChh MS5hbW9wcHVycG9zZSA9ICdzJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPSAwKSBPUgorICAg ICAgICAgICAoYTEuYW1vcHB1cnBvc2UgPSAncCcgQU5EIGExLmFtb3Bzb3J0ZmFtaWx5ID0g MCkgT1IKICAgICAgICAgICAgKGExLmFtb3BwdXJwb3NlID0gJ28nIEFORCBhMS5hbW9wc29y dGZhbWlseSA8PiAwKSk7CiAgYW1vcGZhbWlseSB8IGFtb3BzdHJhdGVneSAKIC0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wcml2aWxlZ2VzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmls ZWdlcy5vdXQKaW5kZXggMWQ5MDNiYWJkMzMuLmJhODc2MWNjOWY4IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKQEAgLTEwMzgsNiArMTAzOCwyNCBA QCBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZXJydHN0 X3BhcnRfMiIgdmlvbGF0ZXMgbm90LW51bGwgYwogREVUQUlMOiAgRmFpbGluZyByb3cgY29u dGFpbnMgKGEsIGIsIGMpID0gKGFhYWEsIG51bGwsIGNjYykuCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIERST1AgVEFCTEUgZXJydHN0OworLS0g dGVzdCBjb2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyBvbiB0aGUgcmFuZ2UvUEVSSU9EIHVzZWQg aW4gRk9SIFBPUlRJT04gT0YKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19w cml2X3VzZXIxOworQ1JFQVRFIFRBQkxFIHQxICgKKyAgYzEgaW50NHJhbmdlLAorICB2YWxp ZF9hdCB0c3JhbmdlLAorCUNPTlNUUkFJTlQgdDFwayBQUklNQVJZIEtFWSAoYzEsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jl c3NfcHJpdl91c2VyMjsKK0dSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNl cjM7CitHUkFOVCBVUERBVEUgKGMxKSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitH UkFOVCBVUERBVEUgKGMxLCB2YWxpZF9hdCkgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIz OworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjI7CitVUERB VEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0wMScgVE8gJzIw MDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciB0YWJsZSB0MQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZf dXNlcjM7CitVUERBVEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0w MS0wMScgVE8gJzIwMDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CitTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKK0RST1AgVEFCTEUgdDE7CiAtLSB0 ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxFVEUK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIg VEFCTEUgYXRlc3Q2IEFERCBDT0xVTU4gdGhyZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dAppbmRleCA4Nzg2MDU4ZWQw Yy4uNTM5MDM3MDU0OTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dXBkYXRhYmxlX3ZpZXdzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Vw ZGF0YWJsZV92aWV3cy5vdXQKQEAgLTM2NjYsNiArMzY2NiwzOCBAQCBzZWxlY3QgKiBmcm9t IHV2X2lvY3VfdGFiOwogCiBkcm9wIHZpZXcgdXZfaW9jdV92aWV3OwogZHJvcCB0YWJsZSB1 dl9pb2N1X3RhYjsKKy0tIENoZWNrIFVQREFURSBGT1IgUE9SVElPTiBPRiB3b3JrcyBjb3Jy ZWN0bHkKK2NyZWF0ZSB0YWJsZSB1dl9mcG9fdGFiIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0 IHRzcmFuZ2UsIGIgZmxvYXQsCisgICAgY29uc3RyYWludCBwa191dl9mcG9fdGFiIHByaW1h cnkga2V5IChpZCwgdmFsaWRfYXQgd2l0aG91dCBvdmVybGFwcykpOworaW5zZXJ0IGludG8g dXZfZnBvX3RhYiB2YWx1ZXMgKCdbMSwxXScsICdbMjAyMC0wMS0wMSwgMjAzMC0wMS0wMSkn LCAwKTsKK2NyZWF0ZSB2aWV3IHV2X2Zwb192aWV3IGFzCisgICAgc2VsZWN0IGIsIGIrMSBh cyBjLCB2YWxpZF9hdCwgaWQsICcyLjAnOjp0ZXh0IGFzIHR3byBmcm9tIHV2X2Zwb190YWI7 CitpbnNlcnQgaW50byB1dl9mcG9fdmlldyAoaWQsIHZhbGlkX2F0LCBiKSB2YWx1ZXMgKCdb MSwxXScsICdbMjAxMC0wMS0wMSwgMjAyMC0wMS0wMSknLCAxKTsKK3NlbGVjdCAqIGZyb20g dXZfZnBvX3ZpZXc7CisgYiB8IGMgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGlkICAgfCB0d28gCistLS0rLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tCisgMCB8IDEgfCBbIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIsIlR1 ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgWzEsMikgfCAyLjAKKyAxIHwgMiB8IFsiRnJp IEphbiAwMSAwMDowMDowMCAyMDEwIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDIwIikgfCBb MSwyKSB8IDIuMAorKDIgcm93cykKKwordXBkYXRlIHV2X2Zwb192aWV3IGZvciBwb3J0aW9u IG9mIHZhbGlkX2F0IGZyb20gJzIwMTUtMDEtMDEnIHRvICcyMDIwLTAxLTAxJyBzZXQgYiA9 IDIgd2hlcmUgaWQgPSAnWzEsMV0nOworc2VsZWN0ICogZnJvbSB1dl9mcG9fdmlldzsKKyBi IHwgYyB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgaWQgICB8IHR3byAKKy0tLSstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0KKyAw IHwgMSB8IFsiV2VkIEphbiAwMSAwMDowMDowMCAyMDIwIiwiVHVlIEphbiAwMSAwMDowMDow MCAyMDMwIikgfCBbMSwyKSB8IDIuMAorIDIgfCAzIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAw IDIwMTUiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiKSB8IFsxLDIpIHwgMi4wCisgMSB8 IDIgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAxMCIsIlRodSBKYW4gMDEgMDA6MDA6MDAg MjAxNSIpIHwgWzEsMikgfCAyLjAKKygzIHJvd3MpCisKK2RlbGV0ZSBmcm9tIHV2X2Zwb192 aWV3IGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTctMDEtMDEnIHRvICcyMDIy LTAxLTAxJyB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3 OworIGIgfCBjIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LQorIDEgfCAyIHwgWyJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMTAiLCJUaHUgSmFuIDAxIDAw OjAwOjAwIDIwMTUiKSB8IFsxLDIpIHwgMi4wCisgMCB8IDEgfCBbIlNhdCBKYW4gMDEgMDA6 MDA6MDAgMjAyMiIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgWzEsMikgfCAyLjAK KyAyIHwgMyB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiU3VuIEphbiAwMSAwMDow MDowMCAyMDE3IikgfCBbMSwyKSB8IDIuMAorKDMgcm93cykKKwogLS0gVGVzdCB3aG9sZS1y b3cgcmVmZXJlbmNlcyB0byB0aGUgdmlldwogY3JlYXRlIHRhYmxlIHV2X2lvY3VfdGFiIChh IGludCB1bmlxdWUsIGIgdGV4dCk7CiBjcmVhdGUgdmlldyB1dl9pb2N1X3ZpZXcgYXMKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0Cmlu ZGV4IGEwNWI2NGUyZjc4Li4yZjg1N2Q0OTYxZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBAIC04ODksNiArODg5LDM2IEBA IElOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCiAgICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzcsOCkn LCAnZm9vJyksCiAgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpLCAnWzksMTApJywgJ2JhcicpCiA7CitVUERBVEUgdGVtcG9yYWwzIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDUtMDEnIFRPICcyMDAwLTA3LTAxJworICBT RVQgbmFtZSA9IG5hbWUgfHwgJzEnOworVVBEQVRFIHRlbXBvcmFsMyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDAwLTA0LTAxJyBUTyAnMjAwMC0wNi0wMScKKyAgU0VUIG5h bWUgPSBuYW1lIHx8ICcyJworICBXSEVSRSBpZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8ICBpZDIgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIw MDAtMDUtMDEpIHwgWzcsOCkgIHwgZm9vCisgWzEsMikgfCBbMjAwMC0wNS0wMSwyMDAwLTA3 LTAxKSB8IFs3LDgpICB8IGZvbzEKKyBbMSwyKSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEp IHwgWzcsOCkgIHwgZm9vCisgWzIsMykgfCBbMjAwMC0wMS0wMSwyMDAwLTA0LTAxKSB8IFs5 LDEwKSB8IGJhcgorIFsyLDMpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNS0wMSkgfCBbOSwxMCkg fCBiYXIyCisgWzIsMykgfCBbMjAwMC0wNS0wMSwyMDAwLTA2LTAxKSB8IFs5LDEwKSB8IGJh cjEyCisgWzIsMykgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAxKSB8IFs5LDEwKSB8IGJhcjEK KyBbMiwzKSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgWzksMTApIHwgYmFyCisoOCBy b3dzKQorCistLSBjb25mbGljdGluZyBpZCBvbmx5OgorSU5TRVJUIElOVE8gdGVtcG9yYWwz IChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKKyAgVkFMVUVTCisgICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpLCAnWzgsOSknLCAnZm9vMycpOwor RVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0 cmFpbnQgInRlbXBvcmFsM19wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIFsyMDA1LTAxLTAxLDIwMDYtMDEtMDEpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBr ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSkuCist LSBjb25mbGljdGluZyBpZDIgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZh bGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXIzJyk7CitFUlJPUjog IGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAi dGVtcG9yYWwzX3VuaXEiCitERVRBSUw6ICBLZXkgKGlkMiwgdmFsaWRfYXQpPShbOSwxMCks IFsyMDA1LTAxLTAxLDIwMTAtMDEtMDEpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkg KGlkMiwgdmFsaWRfYXQpPShbOSwxMCksIFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpKS4KIERS T1AgVEFCTEUgdGVtcG9yYWwzOwogLS0KIC0tIHRlc3QgY2hhbmdpbmcgdGhlIFBLJ3MgZGVw ZW5kZW5jaWVzCkBAIC05MjAsMjYgKzk1MCw0MyBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKICAg KCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJl ZScpOwotU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7Ci0gIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAot LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KLSBbMSwyKSB8IFsy MDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCi0gWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAw LTAzLTAxKSB8IG9uZQotIFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJl ZQorU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyB0YWJsZW9pZCB8ICBpZCAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAt MDEtMDEsMjAwMC0wMi0wMSkgfCBvbmUKKyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDIt MDEsMjAwMC0wMy0wMSkgfCBvbmUKKyB0cDIgICAgICB8IFszLDQpIHwgWzIwMDAtMDEtMDEs MjAxMC0wMS0wMSkgfCB0aHJlZQogKDMgcm93cykKIAotU0VMRUNUICogRlJPTSB0cDEgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwotICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBuYW1lIAotLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQotIFsx LDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMi0wMSkgfCBvbmUKLSBbMSwyKSB8IFsyMDAwLTAy LTAxLDIwMDAtMDMtMDEpIHwgb25lCi0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIHRwMiBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci0gIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IG5hbWUgIAotLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0K LSBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKLSgxIHJvdykKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTIn CisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAt MDItMjUnCisgIFNFVCBpZCA9ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBE QVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJwor ICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcy MDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgdGFibGVvaWQ6OnJl Z2NsYXNzLCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworIHRhYmxlb2lkIHwgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5h bWUgIAorLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLQorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAxLTE1KSB8IG9u ZQorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAwMC0wMS0xNSwyMDAwLTAyLTAxKSB8IG9uZTIK KyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMi0xNSkgfCBvbmUyCisg dHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAyLTE1LDIwMDAtMDItMjApIHwgb25lCisgdHAx ICAgICAgfCBbMSwyKSB8IFsyMDAwLTAyLTI1LDIwMDAtMDMtMDEpIHwgb25lCisgdHAxICAg ICAgfCBbMiwzKSB8IFsyMDAyLTAxLTAxLDIwMDMtMDEtMDEpIHwgdGhyZWUKKyB0cDIgICAg ICB8IFszLDQpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMS0xNSkgfCB0aHJlZQorIHRwMiAgICAg IHwgWzMsNCkgfCBbMjAwMC0wMi0xNSwyMDAyLTAxLTAxKSB8IHRocmVlCisgdHAyICAgICAg fCBbMyw0KSB8IFsyMDAzLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKyB0cDIgICAgICB8 IFs0LDUpIHwgWzIwMDAtMDItMjAsMjAwMC0wMi0yNSkgfCBvbmUKKygxMCByb3dzKQogCiBE Uk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogLS0gdGVtcG9yYWwgVU5JUVVFOgpA QCAtOTU1LDI2ICsxMDAyLDQzIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk IChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUwogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAogICAoJ1sxLDIpJywgZGF0ZXJh bmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAogICAoJ1szLDQpJywg ZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3RocmVlJyk7Ci1TRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK LSAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCi0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQotIFsxLDIpIHwgWzIwMDAtMDEtMDEs MjAwMC0wMi0wMSkgfCBvbmUKLSBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDMtMDEpIHwg b25lCi0gWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCitTRUxFQ1Qg dGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworIHRhYmxlb2lkIHwgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IG5hbWUgIAorLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLQorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAw LTAyLTAxKSB8IG9uZQorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAz LTAxKSB8IG9uZQorIHRwMiAgICAgIHwgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KSB8IHRocmVlCiAoMyByb3dzKQogCi1TRUxFQ1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7Ci0gIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgCi0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCi0gWzEsMikgfCBbMjAw MC0wMS0wMSwyMDAwLTAyLTAxKSB8IG9uZQotIFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0w My0wMSkgfCBvbmUKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKLSAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAg Ci0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQotIFszLDQpIHwg WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQotKDEgcm93KQorVVBEQVRFICB0ZW1w b3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAw LTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgU0VUIG5hbWUgPSAnb25lMicKKyAgV0hFUkUg aWQgPSAnWzEsMiknOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAyLTIwJyBUTyAnMjAwMC0wMi0yNScKKyAg U0VUIGlkID0gJ1s0LDUpJworICBXSEVSRSBuYW1lID0gJ29uZSc7CitVUERBVEUgIHRlbXBv cmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDIt MDEtMDEnIFRPICcyMDAzLTAxLTAxJworICBTRVQgaWQgPSAnWzIsMyknCisgIFdIRVJFIG5h bWUgPSAndGhyZWUnOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUn CisgIFdIRVJFIGlkID0gJ1szLDQpJzsKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgdGFi bGVvaWQgfCAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgdHAx ICAgICAgfCBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwgb25lCisgdHAxICAg ICAgfCBbMSwyKSB8IFsyMDAwLTAxLTE1LDIwMDAtMDItMDEpIHwgb25lMgorIHRwMSAgICAg IHwgWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAyLTE1KSB8IG9uZTIKKyB0cDEgICAgICB8 IFsxLDIpIHwgWzIwMDAtMDItMTUsMjAwMC0wMi0yMCkgfCBvbmUKKyB0cDEgICAgICB8IFsx LDIpIHwgWzIwMDAtMDItMjUsMjAwMC0wMy0wMSkgfCBvbmUKKyB0cDEgICAgICB8IFsyLDMp IHwgWzIwMDItMDEtMDEsMjAwMy0wMS0wMSkgfCB0aHJlZQorIHRwMiAgICAgIHwgWzMsNCkg fCBbMjAwMC0wMS0wMSwyMDAwLTAxLTE1KSB8IHRocmVlCisgdHAyICAgICAgfCBbMyw0KSB8 IFsyMDAwLTAyLTE1LDIwMDItMDEtMDEpIHwgdGhyZWUKKyB0cDIgICAgICB8IFszLDQpIHwg WzIwMDMtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQorIHRwMiAgICAgIHwgWzQsNSkgfCBb MjAwMC0wMi0yMCwyMDAwLTAyLTI1KSB8IG9uZQorKDEwIHJvd3MpCiAKIERST1AgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAtLSBBTFRFUiBUQUJMRSBSRVBMSUNBIElERU5USVRZ CkBAIC0xNzE0LDYgKzE3NzgsMTggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAn WzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToK K1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQg PSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVt cG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBU TyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBkZWxldGUg dGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVk czoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCkn OwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYt MDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xNzY3LDYgKzE4NDMsMTggQEAgVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKIEVSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZl cmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlk ID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBh cnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScK K1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJy bmciLgogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xODAzLDkg KzE4OTEsMjIgQEAgQkVHSU47CiBDT01NSVQ7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUg b24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJy bmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwy MDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9m a19ybmcycm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOwor LS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4 LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcy cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf Zmtfcm5nMnJuZyIuCiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjbGVhbiB1cDoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAtLQogLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKIC0tCkBAIC0xODM0LDkgKzE5MzUsMjIgQEAg QkVHSU47CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Ju ZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJu Z19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlk LCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KIFJPTExCQUNL OworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGlu ZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitX SEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAx KSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5n Ii4KIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2Ft ZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKTsKKy0tIGNsZWFuIHVwOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCiAtLSB0ZXN0IE9OIFVQREFURS9ERUxF VEUgb3B0aW9ucwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDgx ZTQyMjJkMjZhLi5hNGU1NTlmZTQxOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCkBAIC00OCw3ICs0OCw3IEBAIHRlc3Q6IGNyZWF0ZV9pbmRleCBjcmVhdGVfaW5kZXhf c3BnaXN0IGNyZWF0ZV92aWV3IGluZGV4X2luY2x1ZGluZyBpbmRleF9pbmNsdWRpCiAjIC0t LS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwogIyAtLS0tLS0t LS0tCi10ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9zcWwgY3JlYXRl X2Nhc3QgY29uc3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRfdGFibGUg dmFjdXVtIGRyb3BfaWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmlidXRlcyBj cmVhdGVfYW0gaGFzaF9mdW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlCit0ZXN0OiBjcmVh dGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29uc3RyYWlu dHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZf ZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9m dW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlIGZvcl9wb3J0aW9uX29mCiAKICMgLS0tLS0t LS0tLQogIyBzYW5pdHlfY2hlY2sgZG9lcyBhIHZhY3V1bSwgYWZmZWN0aW5nIHRoZSBzb3J0 IG9yZGVyIG9mIFNFTEVDVCAqCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9m b3JfcG9ydGlvbl9vZi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9v Zi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjExNWU0YmYz ZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRp b25fb2Yuc3FsCkBAIC0wLDAgKzEsNTkxIEBACistLSBUZXN0cyBmb3IgVVBEQVRFL0RFTEVU RSBGT1IgUE9SVElPTiBPRgorCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworCistLSBX b3JrcyBvbiBub24tUEsgY29sdW1ucworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rl c3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0 ZXh0IE5PVCBOVUxMCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxV RVMKKygnWzEsMiknLCAnWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSknLCAnb25lJyk7CisKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4xJzsKKwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0xNScgVE8gJzIwMTktMDEtMjAnOworCistLSBXaXRoIGEgdGFi bGUgYWxpYXMgd2l0aCBBUworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wMScgVE8gJzIwMTktMDItMDMnIEFT IHQKK1NFVCBuYW1lID0gJ29uZV4yJzsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wMycgVE8gJzIw MTktMDItMDQnIEFTIHQ7CisKKy0tIFdpdGggYSB0YWJsZSBhbGlhcyB3aXRob3V0IEFTCisK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAyLTA0JyBUTyAnMjAxOS0wMi0wNScgdAorU0VUIG5hbWUgPSAnb25lXjMn OworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAyLTA1JyBUTyAnMjAxOS0wMi0wNicgdDsKKworLS0gVVBE QVRFIHdpdGggRlJPTQorCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMy0wMScgdG8gJzIwMTktMDMtMDInCitTRVQg bmFtZSA9ICdvbmVeNCcKK0ZST00gKFNFTEVDVCAnWzEsMiknOjppbnQ0cmFuZ2UpIEFTIHQy KGlkKQorV0hFUkUgZm9yX3BvcnRpb25fb2ZfdGVzdC5pZCA9IHQyLmlkOworCistLSBERUxF VEUgd2l0aCBVU0lORworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAzLTAyJyBUTyAnMjAxOS0wMy0wMycK K1VTSU5HIChTRUxFQ1QgJ1sxLDIpJzo6aW50NHJhbmdlKSBBUyB0MihpZCkKK1dIRVJFIGZv cl9wb3J0aW9uX29mX3Rlc3QuaWQgPSB0Mi5pZDsKKworU0VMRUNUICogRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gV29ya3Mgb24gbW9y ZSB0aGFuIG9uZSByYW5nZQorRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JF QVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkMV9hdCBkYXRlcmFuZ2UsCisgIHZhbGlkMl9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4 dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVT CisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ1syMDE1LTAxLTAxLDIw MjUtMDEtMDEpJywgJ29uZScpOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWQxX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPIE5VTEwKK1NFVCBu YW1lID0gJ2Zvbyc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIg QlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQyX2F0OworCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPIE5V TEwKK1NFVCBuYW1lID0gJ2Jhcic7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QgT1JERVIgQlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQyX2F0OworCitERUxFVEUgRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJPTSAnMjAx OC0wMS0yMCcgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBP UkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisKK0RFTEVURSBGUk9NIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4LTAx LTIwJyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVS IEJZIGlkLCB2YWxpZDFfYXQsIHZhbGlkMl9hdDsKKworLS0gVGVzdCB3aXRoIE5VTExzIGlu IHRoZSBzY2FsYXIvcmFuZ2Uga2V5IGNvbHVtbnMuCistLSBUaGlzIHdvbid0IGhhcHBlbiBp ZiB0aGVyZSBpcyBhIFBSSU1BUlkgS0VZIG9yIFVOSVFVRSBjb25zdHJhaW50CistLSBidXQg Rk9SIFBPUlRJT04gT0Ygc2hvdWxkbid0IHJlcXVpcmUgdGhhdC4KK0RST1AgVEFCTEUgZm9y X3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBVTkxPR0dFRCBUQUJMRSBmb3JfcG9ydGlvbl9v Zl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5h bWUgdGV4dAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVTCisg ICgnWzEsMiknLCBOVUxMLCAnMSBudWxsJyksCisgICgnWzEsMiknLCAnKCwpJywgJzEgdW5i b3VuZGVkJyksCisgICgnWzEsMiknLCAnZW1wdHknLCAnMSBlbXB0eScpLAorICAoTlVMTCwg TlVMTCwgTlVMTCksCisgIChOVUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOS0w MS0wMScpLCAnbnVsbCBrZXknKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCisgIFNFVCBuYW1lID0g J05VTEwgdG8gTlVMTCc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7 CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSBO T1QgTlVMTCwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQg Tk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9w b3J0aW9uX29mX3Rlc3QKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAy LTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknLCAn b25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywgJ29uZScpLAor KCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KScsICd0d28nKSwKKygnWzMsNCkn LCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpLAorKCdbNCw1KScsICcoLDIwMTgtMDQtMDEp JywgJ2ZvdXInKSwKKygnWzUsNiknLCAnKCwpJywgJ2ZpdmUnKQorOworCistLQorLS0gVVBE QVRFIHRlc3RzCistLQorCistLSBTZXR0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWls cworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRf YXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJworV0hFUkUg aWQgPSAnWzUsNiknOworCistLSBTZXR0aW5nIHRoZSByYW5nZSBmYWlscworVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDYtMDEnIFRPIE5VTEwKK1NFVCB2YWxpZF9hdCA9ICdbMTk5MC0wMS0wMSwxOTk5LTAxLTAx KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVGhlIHdyb25nIHR5cGUgZmFpbHMKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N IDEgVE8gNAorU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0g U2V0dGluZyB3aXRoIHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAx JyBUTyAnMjAxOC0wMS0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdb Myw0KSc7CisKKy0tIFNldHRpbmcgd2l0aCBhIHN1YnF1ZXJ5IGZhaWxzCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNU ICcyMDE4LTAxLTAxJykgVE8gJzIwMTgtMDYtMDEnCitTRVQgbmFtZSA9ICdub3BlJworV0hF UkUgaWQgPSAnWzMsNCknOworCistLSBTZXR0aW5nIHdpdGggYSBjb2x1bW4gZmFpbHMKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N IGxvd2VyKHZhbGlkX2F0KSBUTyBOVUxMCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUgaWQg PSAnWzMsNCknOworCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5v dGhpbmcKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScKK1NFVCBuYW1lID0gJ3Ro cmVlXjAnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFVwZGF0aW5nIGEgZmluaXRlL29w ZW4gcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScg VE8gTlVMTAorU0VUIG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKwor LS0gVXBkYXRpbmcgYSBmaW5pdGUvb3BlbiBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUg dGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAzLTAxJworU0VUIG5hbWUgPSAndGhyZWVeMicK K1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUgcG9y dGlvbiB3aXRoIGFuIG9wZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMi0w MScKK1NFVCBuYW1lID0gJ2ZvdXJeMScKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKworLS0gVXBk YXRpbmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0 CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxNy0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm91cl4yJworV0hFUkUg aWQgPSAnWzQsNSknOworCistLSBVcGRhdGluZyBhIGZpbml0ZS9maW5pdGUgcG9ydGlvbiB3 aXRoIGFuIGV4YWN0IGZpdAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPICcyMDE4LTAyLTAxJworU0VU IG5hbWUgPSAnZm91cl4zJworV0hFUkUgaWQgPSAnWzQsNSknOworCistLSBVcGRhdGluZyBh biBlbmNsb3NlZCBzcGFuCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3R3b14yJwor V0hFUkUgaWQgPSAnWzIsMyknOworCistLSBVcGRhdGluZyBhbiBvcGVuL29wZW4gcG9ydGlv biB3aXRoIGEgZmluaXRlL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAxJyBUTyAnMjAx OS0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKwor LS0gVXBkYXRpbmcgYW4gZW5jbG9zZWQgc3BhbiB3aXRoIHNlcGFyYXRlIHByb3RydWRpbmcg c3BhbnMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScKK1NFVCBuYW1lID0gJ2Zp dmVeMicKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVXBkYXRpbmcgbXVsdGlwbGUgZW5j bG9zZWQgc3BhbnMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAnb25lXjInCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKKy0tIFdpdGggYSBkaXJlY3QgdGFyZ2V0CitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVyYW5nZSgn MjAxOC0wMy0xMCcsICcyMDE4LTAzLTE3JykpCitTRVQgbmFtZSA9ICdvbmVeMycKK1dIRVJF IGlkID0gJ1sxLDIpJzsKKworLS0gVXBkYXRpbmcgdGhlIG5vbi1yYW5nZSBwYXJ0IG9mIHRo ZSBQSzoKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAyLTE1JyBUTyBOVUxMCitTRVQgaWQgPSAnWzYsNyknCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKKy0tIFVQREFURSB3aXRoIG5vIFdIRVJFIGNsYXVzZQorVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMzAtMDEtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gbmFtZSB8fCAnKic7CisKK1NFTEVD VCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK Ky0tIFVwZGF0aW5nIHdpdGggYSBzaGlmdC9yZWR1Y2UgY29uZmxpY3QKKy0tIChyZXF1aXJl cyBhIHRzcmFuZ2UgY29sdW1uKQorQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3JhbmdlLAorICBu YW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoaWQsIHZh bGlkX2F0LCBuYW1lKQorICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwyMDIwLTAx LTAxKScsICdvbmUnKTsKKy0tIHVwZGF0ZXMgWzIwMTEtMDMtMDEgMDE6MDI6MDAsIDIwMTIt MDEtMDEpIChub3RlIDIgbWludXRlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0Mgor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAnMjAxMS0wMy0wMSc6OnRpbWVzdGFt cCArIElOVEVSVkFMICcxOjAyOjAzJyBIT1VSIFRPIE1JTlVURQorICBUTyAnMjAxMi0wMS0w MScKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBUTyBp cyB1c2VkIGZvciB0aGUgYm91bmQgYnV0IG5vdCB0aGUgSU5URVJWQUw6CistLSBzeW50YXgg ZXJyb3IKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQKKyAgRlJPTSAnMjAxMy0wMy0wMSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAy OjAzJyBIT1VSCisgIFRPICcyMDE0LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjInCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKKy0tIGFkZGluZyBwYXJlbnMgZml4ZXMgaXQKKy0tIHVwZGF0 ZXMgWzIwMTUtMDMtMDEgMDE6MDA6MDAsIDIwMTYtMDEtMDEpIChubyBtaW51dGVzKQorVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBG Uk9NICgnMjAxNS0wMy0wMSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAyOjAzJyBIT1VS KQorICBUTyAnMjAxNi0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4zJworV0hFUkUgaWQgPSAn WzEsMiknOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CisKKy0t CistLSBERUxFVEUgdGVzdHMKKy0tCisKKy0tIERlbGV0aW5nIHdpdGggYSBtaXNzaW5nIGNv bHVtbiBmYWlscworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9 ICdbNSw2KSc7CisKKy0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyByZXZlcnNlZCBmYWls cworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMTgtMDEtMDEnCitXSEVSRSBpZCA9ICdb Myw0KSc7CisKKy0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhp bmcKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworV0hFUkUgaWQgPSAn WzMsNCknOworCistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL2Nsb3NlZCB0YXJnZXQKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDIwLTA2LTAxJworV0hFUkUgaWQgPSAnWzUsNikn OworCistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0CitERUxFVEUgRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE4LTA0LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIERlbGV0aW5n IHdpdGggYW4gb3Blbi9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDIt MDgnCitXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIERlbGV0aW5nIHdpdGggYW4gb3Blbi9v cGVuIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1dIRVJFIGlkID0gJ1s2LDcpJzsK KworLS0gREVMRVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI1LTAxLTAx JyBUTyBOVUxMOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCistLSBVUERBVEUgLi4uIFJFVFVSTklORyByZXR1cm5zIG9u bHkgdGhlIHVwZGF0ZWQgdmFsdWVzIChub3QgdGhlIGluc2VydGVkIHNpZGUgdmFsdWVzKQor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDItMDEnIFRPICcyMDE4LTAyLTE1JworU0VUIG5hbWUgPSAndGhyZWVeMycK K1dIRVJFIGlkID0gJ1szLDQpJworUkVUVVJOSU5HICo7CisKKy0tIHRlc3QgdGhhdCB3ZSBy dW4gdHJpZ2dlcnMgb24gdGhlIFVQREFURS9ERUxFVEVkIHJvdyBhbmQgdGhlIElOU0VSVGVk IHJvd3MKKworQ1JFQVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKQorUkVU VVJOUyB0cmlnZ2VyCitBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlICUgJSBv ZiAlJywgVEdfV0hFTiwgVEdfT1AsIFRHX0xFVkVMLCBORVcudmFsaWRfYXQsIE9MRC52YWxp ZF9hdDsKKyAgSUYgVEdfT1AgPSAnREVMRVRFJyBUSEVOCisgICAgUkVUVVJOIE9MRDsKKyAg RUxTRQorICAgIFJFVFVSTiBORVc7CisgIEVORCBJRjsKK0VORDsKKyQkCitMQU5HVUFHRSBw bHBnc3FsOworCitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3JlCisg IEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90 ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29m X3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9hZnRlcgor ICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90 ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29m X3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZvcmVf c3RtdAorICBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRp b25fb2ZfdGVzdAorICBGT1IgRUFDSCBTVEFURU1FTlQKKyAgRVhFQ1VURSBGVU5DVElPTiBm b3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRp b25fb2ZfYWZ0ZXJfc3RtdAorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBP TiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFNUQVRFTUVOVAorICBFWEVDVVRF IEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKKworVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjEtMDEtMDEn IFRPICcyMDIyLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAnWzUs NiknOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0wMScKK1dIRVJFIGlk ID0gJ1s1LDYpJzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKK0RST1AgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dl ciBDQVNDQURFOworCistLSBUcmlnZ2VycyB3aXRoIGEgY3VzdG9tIHRyYW5zaXRpb24gdGFi bGUgbmFtZToKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRB QkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0 IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25f b2ZfdGVzdCBWQUxVRVMgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScsICdv bmUnKTsKKworQ1JFQVRFIEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRVUk5TIFRSSUdH RVIgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQKK0JFR0lOCisgIElGIFRHX09QID0gJ0lOU0VS VCcgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBORVcgdGFibGUgPSAlJywKKyAg ICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190 YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJ RiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xE IHRhYmxlID0gJSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdf TEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAn IE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAgICAoU0VMRUNUIHN0cmluZ19h Z2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7 CisgIEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTog JSAlLCBPTEQgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwg KFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkg RlJPTSBvbGRfdGFibGUpOworICBFTkQgSUY7CisgIFJFVFVSTiBOVUxMOworRU5EOworJCQ7 CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcKK0FG VEVSIElOU0VSVCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBORVcgVEFC TEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90 cmlnZ2VyKCk7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0 X3RyaWdfc3RtdAorQUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVS RU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVD VVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3Bv cnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZworQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9u X29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxF IEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJp Z2dlcigpOworCitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90 cmlnX3N0bXQKK0FGVEVSIFVQREFURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVO Q0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZP UiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKwor Q1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZworQUZURVIg REVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBB UyBvbGRfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdn ZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJp Z19zdG10CitBRlRFUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJ TkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUg UFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworCitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUn IFRPICcyMDE5LTAxLTAxJworICBTRVQgbmFtZSA9ICcyMDE4LTAxLTE1X3RvXzIwMTktMDEt MDEnOworUk9MTEJBQ0s7CisKK0JFR0lOOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEt MjEnOworUk9MTEJBQ0s7CisKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTAyJwor ICBTRVQgbmFtZSA9ICdOVUxMX3RvXzIwMTgtMDEtMDEnOworUk9MTEJBQ0s7CisKKy0tIFRl c3Qgd2l0aCBtdWx0aXJhbmdlcworCitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVz dDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJh bmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9y X3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxV RVMKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAn MjAxOC0wMi0wMyknKSwgZGF0ZXJhbmdlKCcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMnKSks ICdvbmUnKSwKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMt MDMnLCAnMjAxOC0wNC0wNCknKSksICdvbmUnKSwKKygnWzIsMyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wNS0wMSknKSksICd0d28nKSwKKygn WzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBudWxsKSks ICd0aHJlZScpOworOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTAn LCAnMjAxOC0wMi0xMCcpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wMScp KSkKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworCitERUxFVEUg RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRh dGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIs MyknOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKworLS0g VGVzdCB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKKworQ1JFQVRFIFRZUEUgbXlkYXRlcmFu Z2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9u X29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBteWRh dGVyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5U IGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0Mgor VkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAor KCdbMSwyKScsICdbMjAxOC0wMi0wMywyMDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMikn LCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCknLCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4 LTAxLTAxLDIwMTgtMDUtMDEpJywgJ3R3bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwp JywgJ3RocmVlJyk7Cis7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitT RVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVMRVRFIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMTUnIFRPICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworCitTRUxF Q1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKK0RST1AgVFlQRSBteWRhdGVy YW5nZTsKKworLS0gVGVzdCBGT1IgUE9SVElPTiBPRiBhZ2FpbnN0IGEgcGFydGl0aW9uZWQg dGFibGUuCistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIGhhcyB0aGUgc2FtZSBhdHRudW1z IGFzIHRoZSByb290CistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIGhhcyB0aGUgZGlmZmVy ZW50IGF0dG51bXMgZnJvbSB0aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBo YXMgdGhlIGRpZmZlcmVudCBhdHRudW1zIHRvbywgYnV0IHJldmVyc2VkCisKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf YXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy aXRpb25lZF91cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKSBQ QVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkXzEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4g KCdbMSwyKScsICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk XzMgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdb Myw0KScsICdbNCw1KScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUg UEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbNSw2 KScsICdbNiw3KScpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBERVRB Q0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzM7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF8zIERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9h dDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgQUREIENPTFVNTiBpZCBp bnQ0cmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBO VUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElP TiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1 KScpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFSVElU SU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzU7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF81IERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgQUREIENPTFVNTiB2YWxpZF9hdCBkYXRl cmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF81IEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScpOworCitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBWQUxVRVMKKyAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdvbmUnKSwKKyAgKCdbMyw0 KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpLAor ICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ2Zp dmUnKTsKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKworLS0gVXBk YXRlIHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEn IFRPICcyMDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMScKKyAgV0hFUkUgaWQgPSAn WzEsMiknOworCistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiAz CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1lID0gJ3RocmVl XjEnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5n IHdpdGhpbiBwYXJ0aXRpb24gNQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJwor ICBTRVQgbmFtZSA9ICdmaXZlXjEnCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gTW92 ZSBmcm9tIHBhcnRpdGlvbiAxIHRvIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScgVE8g JzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ29uZV4yJywKKyAgICAgIGlkID0gJ1s0LDUp JworICBXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gMyB0 byBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQg bmFtZSA9ICd0aHJlZV4yJywKKyAgICAgIGlkID0gJ1syLDMpJworICBXSEVSRSBpZCA9ICdb Myw0KSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gNSB0byBwYXJ0aXRpb24gMworVVBE QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjInLAor ICAgICAgaWQgPSAnWzMsNCknCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVXBkYXRl IGFsbCBwYXJ0aXRpb25zIGF0IG9uY2UgKGVhY2ggd2l0aCBsZWZ0b3ZlcnMpCisKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk OworCitSRVNFVCBkYXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9vcHJfc2FuaXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29wcl9zYW5pdHkuc3Fs CmluZGV4IDJmZTdiNmRjYzQ5Li4yZGZmZTdjNWI2YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv b3ByX3Nhbml0eS5zcWwKQEAgLTEyNDEsNiArMTI0MSw3IEBAIFdIRVJFIGExLmFtb3BmYW1p bHkgPSAwIE9SIGExLmFtb3BsZWZ0dHlwZSA9IDAgT1IgYTEuYW1vcHJpZ2h0dHlwZSA9IDAK IFNFTEVDVCBhMS5hbW9wZmFtaWx5LCBhMS5hbW9wc3RyYXRlZ3kKIEZST00gcGdfYW1vcCBh cyBhMQogV0hFUkUgTk9UICgoYTEuYW1vcHB1cnBvc2UgPSAncycgQU5EIGExLmFtb3Bzb3J0 ZmFtaWx5ID0gMCkgT1IKKyAgICAgICAgICAgKGExLmFtb3BwdXJwb3NlID0gJ3AnIEFORCBh MS5hbW9wc29ydGZhbWlseSA9IDApIE9SCiAgICAgICAgICAgIChhMS5hbW9wcHVycG9zZSA9 ICdvJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPD4gMCkpOwogCiAtLSBhbW9wbWV0aG9kIG11 c3QgbWF0Y2ggb3duaW5nIG9wZmFtaWx5J3Mgb3BmbWV0aG9kCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3ByaXZpbGVnZXMuc3FsCmluZGV4IDNmNTRiMGY4ZjA1Li4xZDlmOTE1NjdmYiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKQEAgLTcyMyw2ICs3MjMsMjQgQEAgVVBE QVRFIGVycnRzdCBTRVQgYSA9ICdhYWFhJywgYiA9IE5VTEwgV0hFUkUgYSA9ICdhYWEnOwog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CiBEUk9QIFRB QkxFIGVycnRzdDsKIAorLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyBvbiB0aGUg cmFuZ2UvUEVSSU9EIHVzZWQgaW4gRk9SIFBPUlRJT04gT0YKK1NFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOworQ1JFQVRFIFRBQkxFIHQxICgKKyAgYzEg aW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3JhbmdlLAorCUNPTlNUUkFJTlQgdDFwayBQUklN QVJZIEtFWSAoYzEsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworR1JBTlQgU0VM RUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFNFTEVDVCBPTiB0MSBU TyByZWdyZXNzX3ByaXZfdXNlcjM7CitHUkFOVCBVUERBVEUgKGMxKSBPTiB0MSBUTyByZWdy ZXNzX3ByaXZfdXNlcjI7CitHUkFOVCBVUERBVEUgKGMxLCB2YWxpZF9hdCkgT04gdDEgVE8g cmVncmVzc19wcml2X3VzZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjI7CitVUERBVEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CitTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK1VQREFURSB0MSBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScg U0VUIGMxID0gJ1syLDMpJzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19w cml2X3VzZXIxOworRFJPUCBUQUJMRSB0MTsKKwogLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJp dmlsZWdlcyB3aGVuIGludm9sdmVkIHdpdGggREVMRVRFCiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIEFMVEVSIFRBQkxFIGF0ZXN0NiBBREQgQ09M VU1OIHRocmVlIGludGVnZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC91 cGRhdGFibGVfdmlld3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3Zp ZXdzLnNxbAppbmRleCA5M2I2OTNhZTgzNy4uOWJmMjM3YzcxZDQgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92aWV3cy5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbApAQCAtMTg2NSw2ICsxODY1LDIwIEBA IHNlbGVjdCAqIGZyb20gdXZfaW9jdV90YWI7CiBkcm9wIHZpZXcgdXZfaW9jdV92aWV3Owog ZHJvcCB0YWJsZSB1dl9pb2N1X3RhYjsKIAorLS0gQ2hlY2sgVVBEQVRFIEZPUiBQT1JUSU9O IE9GIHdvcmtzIGNvcnJlY3RseQorY3JlYXRlIHRhYmxlIHV2X2Zwb190YWIgKGlkIGludDRy YW5nZSwgdmFsaWRfYXQgdHNyYW5nZSwgYiBmbG9hdCwKKyAgICBjb25zdHJhaW50IHBrX3V2 X2Zwb190YWIgcHJpbWFyeSBrZXkgKGlkLCB2YWxpZF9hdCB3aXRob3V0IG92ZXJsYXBzKSk7 CitpbnNlcnQgaW50byB1dl9mcG9fdGFiIHZhbHVlcyAoJ1sxLDFdJywgJ1syMDIwLTAxLTAx LCAyMDMwLTAxLTAxKScsIDApOworY3JlYXRlIHZpZXcgdXZfZnBvX3ZpZXcgYXMKKyAgICBz ZWxlY3QgYiwgYisxIGFzIGMsIHZhbGlkX2F0LCBpZCwgJzIuMCc6OnRleHQgYXMgdHdvIGZy b20gdXZfZnBvX3RhYjsKKworaW5zZXJ0IGludG8gdXZfZnBvX3ZpZXcgKGlkLCB2YWxpZF9h dCwgYikgdmFsdWVzICgnWzEsMV0nLCAnWzIwMTAtMDEtMDEsIDIwMjAtMDEtMDEpJywgMSk7 CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3OwordXBkYXRlIHV2X2Zwb192aWV3IGZvciBw b3J0aW9uIG9mIHZhbGlkX2F0IGZyb20gJzIwMTUtMDEtMDEnIHRvICcyMDIwLTAxLTAxJyBz ZXQgYiA9IDIgd2hlcmUgaWQgPSAnWzEsMV0nOworc2VsZWN0ICogZnJvbSB1dl9mcG9fdmll dzsKK2RlbGV0ZSBmcm9tIHV2X2Zwb192aWV3IGZvciBwb3J0aW9uIG9mIHZhbGlkX2F0IGZy b20gJzIwMTctMDEtMDEnIHRvICcyMDIyLTAxLTAxJyB3aGVyZSBpZCA9ICdbMSwxXSc7Citz ZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3OworCiAtLSBUZXN0IHdob2xlLXJvdyByZWZlcmVu Y2VzIHRvIHRoZSB2aWV3CiBjcmVhdGUgdGFibGUgdXZfaW9jdV90YWIgKGEgaW50IHVuaXF1 ZSwgYiB0ZXh0KTsKIGNyZWF0ZSB2aWV3IHV2X2lvY3VfdmlldyBhcwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRleCBlYmVlMmYyOTMyZS4uZjY4 Zjc4ZmZhMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3Zl cmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMu c3FsCkBAIC02MzIsNiArNjMyLDIwIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZh bGlkX2F0LCBpZDIsIG5hbWUpCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpLCAnWzcsOCknLCAnZm9vJyksCiAgICgnWzIsMyknLCBkYXRlcmFu Z2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzksMTApJywgJ2JhcicpCiA7CitV UERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDUt MDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzEnOworVVBEQVRF IHRlbXBvcmFsMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA0LTAxJyBU TyAnMjAwMC0wNi0wMScKKyAgU0VUIG5hbWUgPSBuYW1lIHx8ICcyJworICBXSEVSRSBpZCA9 ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBjb25mbGljdGluZyBpZCBvbmx5OgorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChp ZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKKyAgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpLCAnWzgsOSknLCAnZm9vMycpOworLS0g Y29uZmxpY3RpbmcgaWQyIG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxp ZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAw NS0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAnYmFyMycpOwogRFJPUCBUQUJM RSB0ZW1wb3JhbDM7CiAKIC0tCkBAIC02NjcsOSArNjgxLDIzIEBAIElOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVFUwogICAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAog ICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29u ZScpLAogICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEn KSwgJ3RocmVlJyk7Ci1TRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKLVNFTEVDVCAqIEZST00gdHAxIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKLVNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVD VCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1 JworICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERBVEUg IHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisgIFdI RVJFIG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEn CisgIFNFVCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCkn OworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0 aW9uZWQ7CiAKIC0tIHRlbXBvcmFsIFVOSVFVRToKQEAgLTY4NSw5ICs3MTMsMjMgQEAgSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFM VUVTCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScp LCAnb25lJyksCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0w My0wMScpLCAnb25lJyksCiAgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpLCAndGhyZWUnKTsKLVNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwotU0VMRUNUICogRlJPTSB0cDEgT1JERVIg QlkgaWQsIHZhbGlkX2F0OwotU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0 aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8g JzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sxLDIp JzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9ICdb NCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRp b25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAn MjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVl JzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBp ZCA9ICdbMyw0KSc7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogRFJPUCBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZDsKIAogLS0gQUxURVIgVEFCTEUgUkVQTElDQSBJREVOVElUWQpA QCAtMTI2Miw2ICsxMzA0LDE2IEBAIENPTU1JVDsKIC0tIGNoYW5naW5nIHRoZSBzY2FsYXIg cGFydCBmYWlsczoKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBv a2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFU RSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUs NiknOwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xMzExLDYg KzEzNjMsMTYgQEAgUk9MTEJBQ0s7CiAtLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFp bHM6CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQ REFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAn WzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9y YWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAn MjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtMTM0Niw5ICsxNDA4LDIw IEBAIEJFR0lOOwogCiAgIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKTsKIENPTU1JVDsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9r YXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNikn OworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcy MDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOwogLS0gdGhlbiBkZWxldGUgdGhlIG9i amVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERF TEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2xlYW4gdXA6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdb NSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScp OwogCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKQEAgLTEz NzcsOSArMTQ1MCwyMCBAQCBCRUdJTjsKICAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZF UlJFRDsKICAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwog Uk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5Ogor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0t IGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rp bmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNsZWFuIHVwOgorREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNikn OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIAog LS0KIC0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzRfdGVtcG9yYWwucGwgYi9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzRfdGVtcG9yYWwucGwKaW5kZXggM2VmNDI0OWE5ZmUuLjdhNmQ4NGVkZjQ1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzRfdGVtcG9yYWwucGwK KysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM0X3RlbXBvcmFsLnBsCkBAIC0xMDgs NiArMTA4LDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjog IGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX25vX2tleSIgYmVjYXVzZSBpdCBkb2Vz IG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIHVwZGF0ZXMKIEhJ TlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElU WSB1c2luZyBBTFRFUiBUQUJMRS4pLAogCSJjYW4ndCBVUERBVEUgdGVtcG9yYWxfbm9fa2V5 IERFRkFVTFQiKTsKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxp c2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfbm9fa2V5IEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAxJyBT RVQgYSA9ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBz cWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX25v X2tleSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQg cHVibGlzaGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxl LCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBV UERBVEUgRk9SIFBPUlRJT04gT0YgdGVtcG9yYWxfbm9fa2V5IERFRkFVTFQiKTsKIAogKCRy ZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0 Z3JlcycsCiAJIkRFTEVURSBGUk9NIHRlbXBvcmFsX25vX2tleSBXSEVSRSBpZCA9ICdbMyw0 KSciKTsKQEAgLTExNSw2ICsxMjEsMTIgQEAgaXMoICRzdGRlcnIsCiAJcXEocHNxbDo8c3Rk aW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ub19r ZXkiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1 Ymxpc2hlcyBkZWxldGVzCiBISU5UOiAgVG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRh YmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAogCSJjYW4n dCBERUxFVEUgdGVtcG9yYWxfbm9fa2V5IERFRkFVTFQiKTsKKygkcmVzdWx0LCAkc3Rkb3V0 LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJERUxF VEUgRlJPTSB0ZW1wb3JhbF9ub19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOworaXMo ICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ub19rZXkiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBh IHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAgVG8gZW5h YmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2lu ZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgRk9SIFBPUlRJT04gT0YgdGVtcG9y YWxfbm9fa2V5IERFRkFVTFQiKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCdzdWIxJyk7CiAKQEAgLTEzNiwxNiArMTQ4LDIyIEBAICRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKAogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAog CSJVUERBVEUgdGVtcG9yYWxfcGsgU0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVt cG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMS0wMS0wMScgVE8g JzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAkbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1w b3JhbF9wayBXSEVSRSBpZCA9ICdbMyw0KSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVSRSBp ZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdz dWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKIAkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wayBPUkRFUiBCWSBpZCwgdmFsaWRf YXQiKTsKIGlzKCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxh Ci1bMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbMiwzKXxbMjAwMC0wMS0wMSwy MDAxLTAxLTAxKXxiCitbMiwzKXxbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKXxjCitbMiwzKXxb MjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxiCiBbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfcGsgREVGQVVMVCcpOwogCiAjIHJlcGxpY2F0 ZSB3aXRoIGEgdW5pcXVlIGtleToKQEAgLTE2Myw2ICsxODEsMTIgQEAgaXMoICRzdGRlcnIs CiAJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAidGVt cG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50 aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcwogSElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0 aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCiAJ ImNhbid0IFVQREFURSB0ZW1wb3JhbF91bmlxdWUgREVGQVVMVCIpOworKCRyZXN1bHQsICRz dGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJ IlVQREFURSB0ZW1wb3JhbF91bmlxdWUgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1sy LDMpJyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fu bm90IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90 IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDog IFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVz aW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSBGT1IgUE9SVElPTiBPRiB0ZW1w b3JhbF91bmlxdWUgREVGQVVMVCIpOwogCiAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikg PSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVt cG9yYWxfdW5pcXVlIFdIRVJFIGlkID0gJ1szLDQpJyIpOwpAQCAtMTcwLDYgKzE5NCwxMiBA QCBpcyggJHN0ZGVyciwKIAlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgZGVs ZXRlIGZyb20gdGFibGUgInRlbXBvcmFsX3VuaXF1ZSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBo YXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKIEhJTlQ6ICBU byBlbmFibGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZ IHVzaW5nIEFMVEVSIFRBQkxFLiksCiAJImNhbid0IERFTEVURSB0ZW1wb3JhbF91bmlxdWUg REVGQVVMVCIpOworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlz aGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0w MScgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwKKwlxcShwc3FsOjxzdGRp bj46MTogRVJST1I6ICBjYW5ub3QgZGVsZXRlIGZyb20gdGFibGUgInRlbXBvcmFsX3VuaXF1 ZSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVi bGlzaGVzIGRlbGV0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFi bGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0 IERFTEVURSBGT1IgUE9SVElPTiBPRiB0ZW1wb3JhbF91bmlxdWUgREVGQVVMVCIpOwogCiAk bm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIApAQCAtMjg1LDE2 ICszMTUsMjIgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAKICRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0ZW1wb3JhbF9ub19rZXkg U0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfbm9fa2V5IEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAxJyBTRVQg YSA9ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVtcG9yYWxfbm9fa2V5IFdIRVJF IGlkID0gJ1szLDQpJyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfbm9fa2V5IEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVSRSBpZCA9ICdbMiwz KSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CiAK ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAki U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ub19rZXkgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7 CiBpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQotWzIs Myl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgorWzIsMyl8WzIwMDAtMDEtMDEsMjAwMS0w MS0wMSl8YgorWzIsMyl8WzIwMDEtMDEtMDEsMjAwMi0wMS0wMSl8YworWzIsMyl8WzIwMDMt MDEtMDEsMjAxMC0wMS0wMSl8YgogWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0s ICdyZXBsaWNhdGVkIHRlbXBvcmFsX25vX2tleSBGVUxMJyk7CiAKICMgcmVwbGljYXRlIHdp dGggYSBwcmltYXJ5IGtleToKQEAgLTMwOCwxNiArMzQ0LDIyIEBAICRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAogCSJVUERBVEUgdGVtcG9yYWxfcGsgU0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMykn Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUg dGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMS0wMS0wMScg VE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wayBXSEVSRSBpZCA9ICdbMyw0KSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVS RSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVw KCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKIAkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wayBPUkRFUiBCWSBpZCwgdmFs aWRfYXQiKTsKIGlzKCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KXxhCi1bMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbMiwzKXxbMjAwMC0wMS0w MSwyMDAxLTAxLTAxKXxiCitbMiwzKXxbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKXxjCitbMiwz KXxbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxiCiBbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfcGsgRlVMTCcpOwogCiAjIHJlcGxpY2F0 ZSB3aXRoIGEgdW5pcXVlIGtleToKQEAgLTMzMSwxNyArMzczLDIzIEBAICRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAogCSJVUERBVEUgdGVtcG9yYWxfdW5pcXVlIFNFVCBhID0gJ2InIFdIRVJFIGlkID0g J1syLDMpJyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki VVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDAxLTAxLTAxJyBUTyAnMjAwMi0wMS0wMScgU0VUIGEgPSAnYycgV0hFUkUgaWQgPSAnWzIs MyknIik7CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIkRF TEVURSBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBXSEVSRSBpZCA9ICdbMyw0KSciKTsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBv cmFsX3VuaXF1ZSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBU TyAnMjAwMy0wMS0wMScgV0hFUkUgaWQgPSAnWzIsMyknIik7CiAKICRub2RlX3B1Ymxpc2hl ci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCiAkcmVzdWx0ID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxf dW5pcXVlIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOwogaXMoICRyZXN1bHQsIHFxe1sxLDIp fFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKLVsyLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEt MDEpfGIKLVs0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0 ZW1wb3JhbF91bmlxdWUgRlVMTCcpOworWzIsMyl8WzIwMDAtMDEtMDEsMjAwMS0wMS0wMSl8 YgorWzIsMyl8WzIwMDEtMDEtMDEsMjAwMi0wMS0wMSl8YworWzIsMyl8WzIwMDMtMDEtMDEs MjAxMC0wMS0wMSl8YgorWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBs aWNhdGVkIHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxUJyk7CiAKICMgY2xlYW51cAogCkBAIC00 MzAsMTYgKzQ3OCwyMiBAQCAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAogJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiVVBEQVRFIHRlbXBvcmFsX3Br IFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3BrIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAxJyBTRVQgYSA9 ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVtcG9yYWxfcGsgV0hFUkUgaWQgPSAn WzMsNCknIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0wMScgV0hFUkUgaWQgPSAnWzIsMyknIik7CiAKICRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCiAkcmVzdWx0ID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CiBpcyggJHJlc3VsdCwg cXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQotWzIsMyl8WzIwMDAtMDEtMDEs MjAxMC0wMS0wMSl8YgorWzIsMyl8WzIwMDAtMDEtMDEsMjAwMS0wMS0wMSl8YgorWzIsMyl8 WzIwMDEtMDEtMDEsMjAwMi0wMS0wMSl8YworWzIsMyl8WzIwMDMtMDEtMDEsMjAxMC0wMS0w MSl8YgogWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRl bXBvcmFsX3BrIFVTSU5HIElOREVYJyk7CiAKICMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUg a2V5OgpAQCAtNDUzLDE2ICs1MDcsMjIgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0 ZW1wb3JhbF91bmlxdWUgU0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxf dW5pcXVlIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcy MDAyLTAxLTAxJyBTRVQgYSA9ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVtcG9y YWxfdW5pcXVlIFdIRVJFIGlkID0gJ1szLDQpJyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBX SEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKIAkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkg aWQsIHZhbGlkX2F0Iik7CiBpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAx MC0wMS0wMSl8YQotWzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgorWzIsMyl8WzIw MDAtMDEtMDEsMjAwMS0wMS0wMSl8YgorWzIsMyl8WzIwMDEtMDEtMDEsMjAwMi0wMS0wMSl8 YworWzIsMyl8WzIwMDMtMDEtMDEsMjAxMC0wMS0wMSl8YgogWzQsNSl8WzIwMDAtMDEtMDEs MjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3VuaXF1ZSBVU0lORyBJTkRF WCcpOwogCiAjIGNsZWFudXAKQEAgLTU3Myw2ICs2MzMsMTIgQEAgaXMoICRzdGRlcnIsCiAJ cXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAidGVtcG9y YWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5 IGFuZCBwdWJsaXNoZXMgdXBkYXRlcwogSElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUg dGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCiAJImNh bid0IFVQREFURSB0ZW1wb3JhbF9ub19rZXkgTk9USElORyIpOworKCRyZXN1bHQsICRzdGRv dXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIlVQ REFURSB0ZW1wb3JhbF9ub19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw MS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1syLDMp JyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90 IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhh dmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDogIFRv IGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5n IEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSB0ZW1wb3JhbF9ub19rZXkgTk9USElO RyIpOwogCiAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXIt PnBzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVtcG9yYWxfbm9fa2V5IFdIRVJF IGlkID0gJ1szLDQpJyIpOwpAQCAtNTgwLDYgKzY0NiwxMiBAQCBpcyggJHN0ZGVyciwKIAlx cShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgZGVsZXRlIGZyb20gdGFibGUgInRl bXBvcmFsX25vX2tleSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVu dGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKIEhJTlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcg ZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxF LiksCiAJImNhbid0IERFTEVURSB0ZW1wb3JhbF9ub19rZXkgTk9USElORyIpOworKCRyZXN1 bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3Jl cycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX25vX2tleSBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0wMScgV0hFUkUgaWQgPSAnWzIs MyknIik7CitpcyggJHN0ZGVyciwKKwlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5u b3QgZGVsZXRlIGZyb20gdGFibGUgInRlbXBvcmFsX25vX2tleSIgYmVjYXVzZSBpdCBkb2Vz IG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKK0hJ TlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElE RU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IERFTEVURSB0ZW1wb3JhbF9u b19rZXkgTk9USElORyIpOwogCiAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAo J3N1YjEnKTsKIApAQCAtNjA1LDYgKzY3NywxMiBAQCBpcyggJHN0ZGVyciwKIAlxcShwc3Fs OjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF9wayIg YmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlz aGVzIHVwZGF0ZXMKIEhJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQg UkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAogCSJjYW4ndCBVUERBVEUg dGVtcG9yYWxfcGsgTk9USElORyIpOworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0g JG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9w ayBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0w MS0wMScgU0VUIGEgPSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwK KwlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1w b3JhbF9wayIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBh bmQgcHVibGlzaGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRh YmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4n dCBVUERBVEUgdGVtcG9yYWxfcGsgTk9USElORyIpOwogCiAoJHJlc3VsdCwgJHN0ZG91dCwg JHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRF IEZST00gdGVtcG9yYWxfcGsgV0hFUkUgaWQgPSAnWzMsNCknIik7CkBAIC02MTIsNiArNjkw LDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5v dCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGsiIGJlY2F1c2UgaXQgZG9lcyBub3Qg aGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCiBISU5UOiAg VG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElU WSB1c2luZyBBTFRFUiBUQUJMRS4pLAogCSJjYW4ndCBERUxFVEUgdGVtcG9yYWxfcGsgTk9U SElORyIpOworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVy LT5wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVS RSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBF UlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGsiIGJlY2F1c2Ug aXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxl dGVzCitISU5UOiAgVG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQ TElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgdGVt cG9yYWxfcGsgTk9USElORyIpOwogCiAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNo dXAoJ3N1YjEnKTsKIApAQCAtNjM3LDYgKzcyMSwxMiBAQCBpcyggJHN0ZGVyciwKIAlxcShw c3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF91 bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5k IHB1Ymxpc2hlcyB1cGRhdGVzCiBISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJs ZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2FuJ3Qg VVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBOT1RISU5HIik7CisoJHJlc3VsdCwgJHN0ZG91dCwg JHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRF IHRlbXBvcmFsX3VuaXF1ZSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAx LTAxJyBUTyAnMjAwMi0wMS0wMScgU0VUIGEgPSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7 CitpcyggJHN0ZGVyciwKKwlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBk YXRlIHRhYmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBh IHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyB1cGRhdGVzCitISU5UOiAgVG8gZW5h YmxlIHVwZGF0aW5nIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxU RVIgVEFCTEUuKSwKKwkiY2FuJ3QgVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHRlbXBvcmFsX3Vu aXF1ZSBOT1RISU5HIik7CiAKICgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2Rl X3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91 bmlxdWUgV0hFUkUgaWQgPSAnWzMsNCknIik7CkBAIC02NDQsNiArNzM0LDEyIEBAIGlzKCAk c3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJv bSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSBy ZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcwogSElOVDogIFRvIGVuYWJs ZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcg QUxURVIgVEFCTEUuKSwKIAkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX3VuaXF1ZSBOT1RISU5H Iik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBz cWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVS RSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBF UlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNh dXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMg ZGVsZXRlcworSElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0 IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3QgREVMRVRF IEZPUiBQT1JUSU9OIE9GIHRlbXBvcmFsX3VuaXF1ZSBOT1RISU5HIik7CiAKICRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCi0tIAoyLjQyLjAKCg== --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/x-patch; charset=UTF-8; name="v41-0006-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename*0="v41-0006-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5YTM3MzI4ZjBkNTQ4YmFiMzAwYzI5YWJkYjk1MjQ3ODkxNWJmMzRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggdjQxIDYvN10gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERF RkFVTFQgZm9yIHRlbXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICAyMCArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA4MyArLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgICAgICAgICAgIHwgIDU4NCArKysrKy0K IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oICAgICAgICAgICB8ICAgIDcg Ky0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAg MjIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQgICAgIHwg ICAxOCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgICAg IHwgMTczMiArKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91 dF9vdmVybGFwcy5zcWwgICAgIHwgIDk3NyArKysrKysrKystCiA5IGZpbGVzIGNoYW5nZWQs IDMzNDAgaW5zZXJ0aW9ucygrKSwgMTE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCmluZGV4IDgzODU5YmFjNzZmLi5jZjdhYTUxMzY0MSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0xMjc2LDcgKzEyNzYsOSBAQCBXSVRI ICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRl cmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8 cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlv biBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBr ZXksIHRoZSBkZWxldGUvdXBkYXRlIHdpbGwgdXNlCisgICAgICAgICAgPGxpdGVyYWw+Rk9S IFBPUlRJT04gT0Y8L2xpdGVyYWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlCisgICAg ICAgICAgZWZmZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcgZGVsZXRlZC91cGRhdGVkIGluIHRo ZSByZWZlcmVuY2VkIHJvdy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRl bT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTEyOTEsNyArMTI5MywxMCBAQCBXSVRI ICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRl cmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8 cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlv biBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBr ZXksIHRoZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVyYWw+Rk9SIFBPUlRJT04KKyAgICAgICAg ICBPRjwvbGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNvbnN0cmFpbiB0aGUgZWZmZWN0IHRvIHRo ZSBib3VuZHMgYmVpbmcKKyAgICAgICAgICBkZWxldGVkL3VwZGF0ZWQgaW4gdGhlIHJlZmVy ZW5jZWQgcm93LiBUaGUgY29sdW1uIG1ha2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJhbD5Q RVJJT0Q8L2xpdGVyYWw+IHdpbGwgbm90IGJlIHNldCB0byBudWxsLgogICAgICAgICAgPC9w YXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAt MTMwOCw3ICsxMzEzLDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAg ICA8L3BhcmE+CiAKICAgICAgICAgIDxwYXJhPgotICAgICAgICAgIEluIGEgdGVtcG9yYWwg Zm9yZWlnbiBrZXksIHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAg SW4gYSB0ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhlIGNoYW5nZSB3aWxsIHVzZSA8bGl0ZXJh bD5GT1IgUE9SVElPTgorICAgICAgICAgIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29u c3RyYWluIHRoZSBlZmZlY3QgdG8gdGhlIGJvdW5kcyBiZWluZworICAgICAgICAgIGRlbGV0 ZWQvdXBkYXRlZCBpbiB0aGUgcmVmZXJlbmNlZCByb3cuIFRoZSBjb2x1bW4gbWFya2VkIHdp dGgKKyAgICAgICAgICA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHdpdGggbm90IGJlIHNl dCB0byBhIGRlZmF1bHQgdmFsdWUuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlz dGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29u c3RyYWludC5jCmluZGV4IDU0ZjNmYjUwYTU3Li5hMjFiMzRlMjY3MCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTEzNTMsNyArMTM1Myw3IEBAIERlY29uc3Ry dWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiB9CiAK IC8qCi0gKiBGaW5kRmtQZXJpb2RPcGVycyAtCisgKiBGaW5kRmtQZXJpb2RPcGVyc0FuZFBy b2NzIC0KICAqCiAgKiBMb29rcyB1cCB0aGUgb3BlcmF0b3Igb2lkcyB1c2VkIGZvciB0aGUg UEVSSU9EIHBhcnQgb2YgYSB0ZW1wb3JhbCBmb3JlaWduIGtleS4KICAqIFRoZSBvcGNsYXNz IHNob3VsZCBiZSB0aGUgb3BjbGFzcyBvZiB0aGF0IFBFUklPRCBlbGVtZW50LgpAQCAtMTM2 MiwxMSArMTM2MiwxNCBAQCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUg dHVwbGUsIGludCAqbnVtZmtzLAogICogYWdnZWRjb250YWluZWRieW9wZXJvaWQgaXMgYWxz byBhIENvbnRhaW5lZEJ5IG9wZXJhdG9yLAogICogYnV0IG9uZSB3aG9zZSByaHMgaXMgYSBt dWx0aXJhbmdlLgogICogVGhhdCB3YXkgZm9yZWlnbiBrZXlzIGNhbiBjb21wYXJlIGZrYXR0 ciA8QCByYW5nZV9hZ2cocGthdHRyKS4KKyAqIGludGVyc2VjdHByb2NvaWQgaXMgdXNlZCB0 byBsaW1pdCB0aGUgZWZmZWN0IG9mIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQKKyAq IHdoZW4gdGhlIFBLIHJlY29yZCBpcyBjaGFuZ2VkIHdpdGggRk9SIFBPUlRJT04gT0YuCiAg Ki8KIHZvaWQKLUZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAotCQkJCSAgT2lkICpj b250YWluZWRieW9wZXJvaWQsCi0JCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lk KQorRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywKKwkJCQkJCSAgT2lk ICpjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9w ZXJvaWQsCisJCQkJCQkgIE9pZCAqaW50ZXJzZWN0cHJvY29pZCkKIHsKIAlPaWQJCQlvcGZh bWlseSA9IEludmFsaWRPaWQ7CiAJT2lkCQkJb3BjaW50eXBlID0gSW52YWxpZE9pZDsKQEAg LTE0MDcsNiArMTQxMCwxNSBAQCBGaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKIAkJ CQkJCQkJCSBBTllNVUxUSVJBTkdFT0lELAogCQkJCQkJCQkJIGFnZ2VkY29udGFpbmVkYnlv cGVyb2lkLAogCQkJCQkJCQkJICZzdHJhdCk7CisKKwkvKgorCSAqIElmIHRoZSBjb21tYW5k IHVzZXMgRk9SIFBPUlRJT04gT0YsCisJICogd2Ugd2lsbCBhbHNvIG5lZWQgYW4gaW50ZXJz ZWN0IHN1cHBvcnQgcHJvYy4KKwkgKiBJZiB0aGlzIGlzIG1pc3Npbmcgd2UgZG9uJ3QgbmVl ZCB0byBjb21wbGFpbiBoZXJlLAorCSAqIGJlY2F1c2UgRk9SIFBPUlRJT04gT0Ygd2lsbCBu b3QgYmUgYWxsb3dlZC4KKwkgKi8KKwlpZiAob3BmYW1pbHkgIT0gSW52YWxpZE9pZCAmJiBv cGNpbnR5cGUgIT0gSW52YWxpZE9pZCkKKwkJKmludGVyc2VjdHByb2NvaWQgPSBnZXRfb3Bm YW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5URVJT RUNUX1BST0MpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBm ZDJjOGRmNTZkNi4uMDJhZGMwODk4NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CkBAIC01MTYsNyArNTE2LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgYWRkRmtSZWN1cnNl UmVmZXJlbmNlZChMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmEKIAkJCQkJ CQkJCQkJYm9vbCBvbGRfY2hlY2tfb2ssCiAJCQkJCQkJCQkJCU9pZCBwYXJlbnREZWxUcmln Z2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlciwKIAkJCQkJCQkJCQkJYm9vbCB3aXRoX3Blcmlv ZCk7Ci1zdGF0aWMgdm9pZCB2YWxpZGF0ZUZrT25EZWxldGVTZXRDb2x1bW5zKGludCBudW1m a3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMsCitzdGF0aWMgdm9pZCB2YWxpZGF0ZUZrT25E ZWxldGVTZXRDb2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMsIGNv bnN0IGludDE2IGZrcGVyaW9kYXR0bnVtLAogCQkJCQkJCQkJCSBpbnQgbnVtZmtzZXRjb2xz LCBjb25zdCBpbnQxNiAqZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkJCQkgTGlzdCAqZmtz ZXRjb2xzKTsKIHN0YXRpYyB2b2lkIGFkZEZrUmVjdXJzZVJlZmVyZW5jaW5nKExpc3QgKip3 cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYWludCwKQEAgLTk1NzcsNiArOTU3Nyw3IEBA IEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxl SW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJaW50MTYJCWZrZGVsc2V0Y29sc1tJTkRFWF9N QVhfS0VZU10gPSB7MH07CiAJYm9vbAkJd2l0aF9wZXJpb2Q7CiAJYm9vbAkJcGtfaGFzX3dp dGhvdXRfb3ZlcmxhcHM7CisJaW50MTYJCWZrcGVyaW9kYXR0bnVtID0gSW52YWxpZEF0dHJO dW1iZXI7CiAJaW50CQkJaTsKIAlpbnQJCQludW1ma3MsCiAJCQkJbnVtcGtzLApAQCAtOTY3 MiwxNSArOTY3MywxOSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJCQkJIGZr Y29uc3RyYWludC0+ZmtfYXR0cnMsCiAJCQkJCQkJCQkgZmthdHRudW0sIGZrdHlwb2lkKTsK IAl3aXRoX3BlcmlvZCA9IGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QgfHwgZmtjb25z dHJhaW50LT5wa193aXRoX3BlcmlvZDsKLQlpZiAod2l0aF9wZXJpb2QgJiYgIWZrY29uc3Ry YWludC0+Zmtfd2l0aF9wZXJpb2QpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAotCQkJCWVycm1zZygiZm9yZWlnbiBrZXkg dXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJl bmNpbmcgdGFibGUiKSk7CisJaWYgKHdpdGhfcGVyaW9kKQorCXsKKwkJaWYgKCFma2NvbnN0 cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX0ZPUkVJR05fS0VZKSwKKwkJCQkJZXJybXNnKCJmb3JlaWdu IGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSBy ZWZlcmVuY2luZyB0YWJsZSIpKSk7CisJCWZrcGVyaW9kYXR0bnVtID0gZmthdHRudW1bbnVt ZmtzIC0gMV07CisJfQogCiAJbnVtZmtkZWxzZXRjb2xzID0gdHJhbnNmb3JtQ29sdW1uTmFt ZUxpc3QoUmVsYXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCQkgIGZrY29uc3RyYWlu dC0+ZmtfZGVsX3NldF9jb2xzLAogCQkJCQkJCQkJCQkgIGZrZGVsc2V0Y29scywgTlVMTCk7 Ci0JdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhudW1ma3MsIGZrYXR0bnVtLAorCXZh bGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMobnVtZmtzLCBma2F0dG51bSwgZmtwZXJpb2Rh dHRudW0sCiAJCQkJCQkJCSBudW1ma2RlbHNldGNvbHMsIGZrZGVsc2V0Y29scywKIAkJCQkJ CQkJIGZrY29uc3RyYWludC0+ZmtfZGVsX3NldF9jb2xzKTsKIApAQCAtOTc2MiwyOCArOTc2 Nyw2IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCX0KIAl9CiAKLQkvKgotCSAqIFNv bWUgYWN0aW9ucyBhcmUgY3VycmVudGx5IHVuc3VwcG9ydGVkIGZvciBmb3JlaWduIGtleXMg dXNpbmcgUEVSSU9ELgotCSAqLwotCWlmIChma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9k KQotCXsKLQkJaWYgKGZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlvbiA9PSBGS0NPTlNUUl9B Q1RJT05fQ0FTQ0FERSB8fAotCQkJZmtjb25zdHJhaW50LT5ma191cGRfYWN0aW9uID09IEZL Q09OU1RSX0FDVElPTl9TRVROVUxMIHx8Ci0JCQlma2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rp b24gPT0gRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQpCi0JCQllcmVwb3J0KEVSUk9SLAot CQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJZXJy bXNnKCJ1bnN1cHBvcnRlZCAlcyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg dXNpbmcgUEVSSU9EIiwKLQkJCQkJCSAgICJPTiBVUERBVEUiKSk7Ci0KLQkJaWYgKGZrY29u c3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAot CQkJZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVRO VUxMIHx8Ci0JCQlma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNU SU9OX1NFVERFRkFVTFQpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJZXJybXNnKCJ1bnN1cHBvcnRlZCAl cyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9EIiwKLQkJ CQkJCSAgICJPTiBERUxFVEUiKSk7Ci0JfQotCiAJLyoKIAkgKiBMb29rIHVwIHRoZSBlcXVh bGl0eSBvcGVyYXRvcnMgdG8gdXNlIGluIHRoZSBjb25zdHJhaW50LgogCSAqCkBAIC0xMDA0 MSw4ICsxMDAyNCwxMiBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCXsKIAkJT2lkCQkJ cGVyaW9kb3Blcm9pZDsKIAkJT2lkCQkJYWdnZWRwZXJpb2RvcGVyb2lkOworCQlPaWQJCQlp bnRlcnNlY3Rwcm9jb2lkOwogCi0JCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3Nlc1tudW1w a3MgLSAxXSwgJnBlcmlvZG9wZXJvaWQsICZhZ2dlZHBlcmlvZG9wZXJvaWQpOworCQlGaW5k RktQZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xhc3Nlc1tudW1wa3MgLSAxXSwKKwkJCQkJCQkJ ICAmcGVyaW9kb3Blcm9pZCwKKwkJCQkJCQkJICAmYWdnZWRwZXJpb2RvcGVyb2lkLAorCQkJ CQkJCQkgICZpbnRlcnNlY3Rwcm9jb2lkKTsKIAl9CiAKIAkvKgpAQCAtMTAwOTYsNiArMTAw ODMsNyBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVy ZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogICovCiB2b2lkCiB2YWxpZGF0ZUZr T25EZWxldGVTZXRDb2x1bW5zKGludCBudW1ma3MsIGNvbnN0IGludDE2ICpma2F0dG51bXMs CisJCQkJCQkJIGNvbnN0IGludDE2IGZrcGVyaW9kYXR0bnVtLAogCQkJCQkJCSBpbnQgbnVt ZmtzZXRjb2xzLCBjb25zdCBpbnQxNiAqZmtzZXRjb2xzYXR0bnVtcywKIAkJCQkJCQkgTGlz dCAqZmtzZXRjb2xzKQogewpAQCAtMTAxMDYsNiArMTAwOTQsMTMgQEAgdmFsaWRhdGVGa09u RGVsZXRlU2V0Q29sdW1ucyhpbnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAog CiAJCWZvciAoaW50IGogPSAwOyBqIDwgbnVtZmtzOyBqKyspCiAJCXsKKwkJCWlmIChma3Bl cmlvZGF0dG51bSA9PSBzZXRjb2xfYXR0bnVtKQorCQkJeworCQkJCWNoYXIJICAgKmNvbCA9 IHN0clZhbChsaXN0X250aChma3NldGNvbHMsIGkpKTsKKwkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJ CQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQg YWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QiLCBjb2wpKSk7CisJCQl9CiAJCQlpZiAoZmthdHRu dW1zW2pdID09IHNldGNvbF9hdHRudW0pCiAJCQl7CiAJCQkJc2VlbiA9IHRydWU7CkBAIC0x MjQ1MSwxNyArMTI0NDYsMjYgQEAgY3JlYXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJzKFJl bGF0aW9uIHJlbCwgT2lkIHJlZlJlbE9pZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAkJY2Fz ZSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERToKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUg PSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtf dHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNjYWRlX2Rl bCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJp Z2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2RfY2FzY2Fk ZV9kZWwiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1 bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVfZGVsIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NP TlNUUl9BQ1RJT05fU0VUTlVMTDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxz ZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dl ci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX2RlbCIpOwor CQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwi KTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1l KCJSSV9GS2V5X3NldG51bGxfZGVsIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9B Q1RJT05fU0VUREVGQVVMVDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsK IAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRkZWZhdWx0X2RlbCIpOwor CQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9k ZWwiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNO YW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfZGVsIik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRksgYWN0aW9uIHR5cGU6ICVkIiwKQEAg LTEyNTEyLDE3ICsxMjUxNiwyNiBAQCBjcmVhdGVGb3JlaWduS2V5QWN0aW9uVHJpZ2dlcnMo UmVsYXRpb24gcmVsLCBPaWQgcmVmUmVsT2lkLCBDb25zdHJhaW50ICpma2NvbnN0cgogCQlj YXNlIEZLQ09OU1RSX0FDVElPTl9DQVNDQURFOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJs ZSA9IGZhbHNlOwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlm a190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVf dXBkIik7CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190 cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9jYXNj YWRlX3VwZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVt RnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV91cGQiKTsKIAkJCWJyZWFrOwogCQljYXNlIEZL Q09OU1RSX0FDVElPTl9TRVROVUxMOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IGZh bHNlOwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlma190cmln Z2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldG51bGxfdXBkIik7 CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3Vw ZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05h bWUoIlJJX0ZLZXlfc2V0bnVsbF91cGQiKTsKIAkJCWJyZWFrOwogCQljYXNlIEZLQ09OU1RS X0FDVElPTl9TRVRERUZBVUxUOgogCQkJZmtfdHJpZ2dlci0+ZGVmZXJyYWJsZSA9IGZhbHNl OwogCQkJZmtfdHJpZ2dlci0+aW5pdGRlZmVycmVkID0gZmFsc2U7Ci0JCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfdXBkIik7 CisJCQlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0 X3VwZCIpOworCQkJZWxzZQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfc2V0ZGVmYXVsdF91cGQiKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0 OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBGSyBhY3Rpb24gdHlwZTogJWQiLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCAyOTdmYmE3MWJiNS4uZTRj ZDBhYzg1MWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vy cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCkBAIC04MCw2 ICs4MCwxMiBAQAogI2RlZmluZSBSSV9QTEFOX1NFVE5VTExfT05VUERBVEUJCTcKICNkZWZp bmUgUklfUExBTl9TRVRERUZBVUxUX09OREVMRVRFCQk4CiAjZGVmaW5lIFJJX1BMQU5fU0VU REVGQVVMVF9PTlVQREFURQkJOQorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09O REVMRVRFCQkxMAorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09OVVBEQVRFCQkx MQorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OVVBEQVRFCQkxMgorI2RlZmlu ZSBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OREVMRVRFCQkxMworI2RlZmluZSBSSV9QTEFO X1BFUklPRF9TRVRERUZBVUxUX09OVVBEQVRFCTE0CisjZGVmaW5lIFJJX1BMQU5fUEVSSU9E X1NFVERFRkFVTFRfT05ERUxFVEUJMTUKIAogI2RlZmluZSBNQVhfUVVPVEVEX05BTUVfTEVO ICAoTkFNRURBVEFMRU4qMiszKQogI2RlZmluZSBNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTiAg KE1BWF9RVU9URURfTkFNRV9MRU4qMikKQEAgLTEyOCw3ICsxMzQsOCBAQCB0eXBlZGVmIHN0 cnVjdCBSSV9Db25zdHJhaW50SW5mbwogCU9pZAkJCXBwX2VxX29wcnNbUklfTUFYX05VTUtF WVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKFBLID0gUEspICovCiAJT2lkCQkJZmZfZXFf b3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoRksgPSBGSykg Ki8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIGFu eXJhbmdlICovCi0JT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAvKiBm a2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KKwlPaWQJCQlhZ2dlZF9wZXJpb2RfY29u dGFpbmVkX2J5X29wZXI7CS8qIGZrYXR0ciA8QCByYW5nZV9hZ2cocGthdHRyKSAqLworCU9p ZAkJCXBlcmlvZF9pbnRlcnNlY3RfcHJvYzsJLyogYW55cmFuZ2UgKiBhbnlyYW5nZSAob3Ig bXVsdGlyYW5nZSkgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxp c3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJhaW50SW5mbzsKIApAQCAtMTky LDYgKzE5OSw3IEBAIHN0YXRpYyBib29sIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBr X3JlbCwgUmVsYXRpb24gZmtfcmVsLAogCQkJCQkJCSAgY29uc3QgUklfQ29uc3RyYWludElu Zm8gKnJpaW5mbyk7CiBzdGF0aWMgRGF0dW0gcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRy aWdkYXRhLCBib29sIGlzX25vX2FjdGlvbik7CiBzdGF0aWMgRGF0dW0gcmlfc2V0KFRyaWdn ZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCk7CitzdGF0 aWMgRGF0dW0gdHJpX3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251 bGwsIGludCB0Z2tpbmQpOwogc3RhdGljIHZvaWQgcXVvdGVPbmVOYW1lKGNoYXIgKmJ1ZmZl ciwgY29uc3QgY2hhciAqbmFtZSk7CiBzdGF0aWMgdm9pZCBxdW90ZVJlbGF0aW9uTmFtZShj aGFyICpidWZmZXIsIFJlbGF0aW9uIHJlbCk7CiBzdGF0aWMgdm9pZCByaV9HZW5lcmF0ZVF1 YWwoU3RyaW5nSW5mbyBidWYsCkBAIC0yMzksNyArMjQ3LDcgQEAgc3RhdGljIHZvaWQgcmlf UmVwb3J0VmlvbGF0aW9uKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJ CQkJICAgaW50IHF1ZXJ5bm8sIGJvb2wgcGFydGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3JldHVy bigpOwogc3RhdGljIGJvb2wgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlv bk9mU3RhdGUgKnRnX3RlbXBvcmFsLAogCQkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludElu Zm8gKnJpaW5mbyk7Ci1zdGF0aWMgRGF0dW0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKGNv bnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwKK3N0YXRpYyBEYXR1bSByZXN0 cmljdF9jYXNjYWRpbmdfcmFuZ2UoUmVsYXRpb24gcmVsLCBjb25zdCBGb3JQb3J0aW9uT2ZT dGF0ZSAqdGdfdGVtcG9yYWwsCiAJCQkJCQkJCQkgIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZv ICpyaWluZm8sCiAJCQkJCQkJCQkgIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KTsKIApAQCAt ODE0LDcgKzgyMiw3IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9v bCBpc19ub19hY3Rpb24pCiAJaWYgKHRyaWdkYXRhLT50Z190ZW1wb3JhbCkKIAl7CiAJCXRh cmdldFJhbmdlUGFyYW0gPSByaWluZm8tPm5rZXlzIC0gMTsKLQkJdGFyZ2V0UmFuZ2UgPSBy ZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UodHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8s IG9sZHNsb3QpOworCQl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShw a19yZWwsIHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90KTsKIAl9CiAK IAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCkBAIC0xMzEwLDYgKzEz MTgsNTM1IEBAIHJpX3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251 bGwsIGludCB0Z2tpbmQpCiB9CiAKIAorLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVf ZGVsIC0KKyAqCisgKiBDYXNjYWRlZCBkZWxldGUgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyBh dCBkZWxldGUgZXZlbnQgb24gdGVtcG9yYWwgUEsgdGFibGUuCisgKi8KK0RhdHVtCitSSV9G S2V5X3BlcmlvZF9jYXNjYWRlX2RlbChQR19GVU5DVElPTl9BUkdTKQoreworCVRyaWdnZXJE YXRhICp0cmlnZGF0YSA9IChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQ7CisJY29u c3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7CisJUmVs YXRpb24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVJJX1F1ZXJ5S2V5 IHFrZXk7CisJU1BJUGxhblB0ciAgcXBsYW47CisJRGF0dW0gdGFyZ2V0UmFuZ2U7CisKKwkv KiBDaGVjayB0aGF0IHRoaXMgaXMgYSB2YWxpZCB0cmlnZ2VyIGNhbGwgb24gdGhlIHJpZ2h0 IHRpbWUgYW5kIGV2ZW50LiAqLworCXJpX0NoZWNrVHJpZ2dlcihmY2luZm8sICJSSV9GS2V5 X3BlcmlvZF9jYXNjYWRlX2RlbCIsIFJJX1RSSUdUWVBFX0RFTEVURSk7CisKKwlyaWluZm8g PSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRyaWdkYXRhLT50Z190cmlnZ2VyLAorCQkJCQkJ CQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0cnVlKTsKKworCS8qCisJICogR2V0IHRoZSBy ZWxhdGlvbiBkZXNjcmlwdG9ycyBvZiB0aGUgRksgYW5kIFBLIHRhYmxlcyBhbmQgdGhlIG9s ZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVuZWQgaW4gUm93RXhjbHVzaXZlTG9j ayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAqIGV2ZW50dWFsIERFTEVURSB3aWxs IGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJsZV9vcGVuKHJpaW5mby0+ZmtfcmVs aWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9IHRyaWdkYXRhLT50Z19yZWxhdGlv bjsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdzbG90OworCisJLyoKKwkgKiBEb24n dCBkZWxldGUgdGhhbiBtb3JlIHRoYW4gdGhlIFBLJ3MgZHVyYXRpb24sCisJICogdHJpbW1l ZCBieSBhbiBvcmlnaW5hbCBGT1IgUE9SVElPTiBPRiBpZiBuZWNlc3NhcnkuCisJICovCisJ dGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UocGtfcmVsLCB0cmlnZGF0 YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CisKKwlpZiAoU1BJX2Nvbm5lY3Qo KSAhPSBTUElfT0tfQ09OTkVDVCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9jb25uZWN0IGZhaWxl ZCIpOworCisJLyogRmV0Y2ggb3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSBjYXNj YWRlZCBkZWxldGUgKi8KKwlyaV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8sIFJJX1BM QU5fUEVSSU9EX0NBU0NBREVfT05ERUxFVEUpOworCisJaWYgKChxcGxhbiA9IHJpX0ZldGNo UHJlcGFyZWRQbGFuKCZxa2V5KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9EYXRhIHF1 ZXJ5YnVmOworCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU5dOwor CQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFyCQlwYXJhbW5h bWVbMTZdOworCQljb25zdCBjaGFyICpxdWVyeXNlcDsKKwkJT2lkCQkJcXVlcnlvaWRzW1JJ X01BWF9OVU1LRVlTICsgMV07CisJCWNvbnN0IGNoYXIgKmZrX29ubHk7CisKKwkJLyogLS0t LS0tLS0tLQorCQkgKiBUaGUgcXVlcnkgc3RyaW5nIGJ1aWx0IGlzCisJCSAqICBERUxFVEUg RlJPTSBbT05MWV0gPGZrdGFibGU+CisJCSAqICBGT1IgUE9SVElPTiBPRiAkZmthdHQgKCR7 bisxfSkKKwkJICogIFdIRVJFICQxID0gZmthdHQxIFtBTkQgLi4uXQorCQkgKiBUaGUgdHlw ZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9zZSBvZiB0aGUKKwkJICogY29y cmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLgorCQkgKiAtLS0tLS0tLS0tCisJCSAqLworCQlp bml0U3RyaW5nSW5mbygmcXVlcnlidWYpOworCQlma19vbmx5ID0gZmtfcmVsLT5yZF9yZWwt PnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CisJCQkiIiA6ICJPTkxZ ICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZrcmVsbmFtZSwgZmtfcmVsKTsKKwkJcXVvdGVP bmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1ty aWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1Ziwg IkRFTEVURSBGUk9NICVzJXMgRk9SIFBPUlRJT04gT0YgJXMgKCQlZCkiLAorCQkJCQkJIGZr X29ubHksIGZrcmVsbmFtZSwgYXR0bmFtZSwgcmlpbmZvLT5ua2V5cyArIDEpOworCQlxdWVy eXNlcCA9ICJXSEVSRSI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsg aSsrKQorCQl7CisJCQlPaWQgcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+ cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQgcGtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKHBrX3Jl bCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZCBma190eXBlID0gUklBdHRUeXBl KGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKwkJCU9pZCBma19jb2xsID0gUklB dHRDb2xsYXRpb24oZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCisJCQlxdW90 ZU9uZU5hbWUoYXR0bmFtZSwKKwkJCQkJCSBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZr X2F0dG51bXNbaV0pKTsKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgaSArIDEpOwor CQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVyeWJ1ZiwgcXVlcnlzZXAsCisJCQkJCQkJcGFyYW1u YW1lLCBwa190eXBlLAorCQkJCQkJCXJpaW5mby0+cGZfZXFfb3Byc1tpXSwKKwkJCQkJCQlh dHRuYW1lLCBma190eXBlKTsKKwkJCWlmIChwa19jb2xsICE9IGZrX2NvbGwgJiYgIWdldF9j b2xsYXRpb25faXNkZXRlcm1pbmlzdGljKHBrX2NvbGwpKQorCQkJCXJpX0dlbmVyYXRlUXVh bENvbGxhdGlvbigmcXVlcnlidWYsIHBrX2NvbGwpOworCQkJcXVlcnlzZXAgPSAiQU5EIjsK KwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCX0KKworCQkvKiBTZXQgYSBwYXJhbSBm b3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVyeW9pZHNbcmlpbmZvLT5ua2V5 c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5 cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCisJCXFwbGFu ID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMgKyAxLCBxdWVy eW9pZHMsCisJCQkJCQkJICZxa2V5LCBma19yZWwsIHBrX3JlbCk7CisJfQorCisJLyoKKwkg KiBXZSBoYXZlIGEgcGxhbiBub3cuIEJ1aWxkIHVwIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUg a2V5IHZhbHVlcyBpbiB0aGUKKwkgKiBkZWxldGVkIFBLIHR1cGxlIGFuZCBkZWxldGUgdGhl IHJlZmVyZW5jaW5nIHJvd3MKKwkgKi8KKwlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtl eSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlvbGRzbG90LCBOVUxMLAor CQkJCQlyaWluZm8tPm5rZXlzLCB0YXJnZXRSYW5nZSwKKwkJCQkJdHJ1ZSwJICAgLyogbXVz dCBkZXRlY3QgbmV3IHJvd3MgKi8KKwkJCQkJU1BJX09LX0RFTEVURSk7CisKKwlpZiAoU1BJ X2ZpbmlzaCgpICE9IFNQSV9PS19GSU5JU0gpCisJCWVsb2coRVJST1IsICJTUElfZmluaXNo IGZhaWxlZCIpOworCisJdGFibGVfY2xvc2UoZmtfcmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsK KworCXJldHVybiBQb2ludGVyR2V0RGF0dW0oTlVMTCk7Cit9CisKKy8qCisgKiBSSV9GS2V5 X3BlcmlvZF9jYXNjYWRlX3VwZCAtCisgKgorICogQ2FzY2FkZWQgdXBkYXRlIGZvcmVpZ24g a2V5IHJlZmVyZW5jZXMgYXQgdXBkYXRlIGV2ZW50IG9uIHRlbXBvcmFsIFBLIHRhYmxlLgor ICovCitEYXR1bQorUklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEgPSAoVHJpZ2dlckRhdGEgKikgZmNpbmZv LT5jb250ZXh0OworCWNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm87CisJUmVsYXRp b24JZmtfcmVsOworCVJlbGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xvdCAqb2xkc2xv dDsKKwlUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdDsKKwlSSV9RdWVyeUtleSBxa2V5OworCVNQ SVBsYW5QdHIgIHFwbGFuOworCURhdHVtIHRhcmdldFJhbmdlOworCisJLyogQ2hlY2sgdGhh dCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBl dmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2RfY2Fz Y2FkZV91cGQiLCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJcmlpbmZvID0gcmlfRmV0Y2hD b25zdHJhaW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJCQkJCQkJCXRyaWdkYXRh LT50Z19yZWxhdGlvbiwgdHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUgcmVsYXRpb24gZGVz Y3JpcHRvcnMgb2YgdGhlIEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBuZXcgYW5kCisJICog b2xkIHR1cGxlLgorCSAqCisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dFeGNsdXNpdmVM b2NrIG1vZGUgc2luY2UgdGhhdCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwgVVBEQVRFIHdp bGwgZ2V0IG9uIGl0LgorCSAqLworCWZrX3JlbCA9IHRhYmxlX29wZW4ocmlpbmZvLT5ma19y ZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7CisJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3JlbGF0 aW9uOworCW5ld3Nsb3QgPSB0cmlnZGF0YS0+dGdfbmV3c2xvdDsKKwlvbGRzbG90ID0gdHJp Z2RhdGEtPnRnX3RyaWdzbG90OworCisJLyoKKwkgKiBEb24ndCBkZWxldGUgdGhhbiBtb3Jl IHRoYW4gdGhlIFBLJ3MgZHVyYXRpb24sCisJICogdHJpbW1lZCBieSBhbiBvcmlnaW5hbCBG T1IgUE9SVElPTiBPRiBpZiBuZWNlc3NhcnkuCisJICovCisJdGFyZ2V0UmFuZ2UgPSByZXN0 cmljdF9jYXNjYWRpbmdfcmFuZ2UocGtfcmVsLCB0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJp aW5mbywgb2xkc2xvdCk7CisKKwlpZiAoU1BJX2Nvbm5lY3QoKSAhPSBTUElfT0tfQ09OTkVD VCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9jb25uZWN0IGZhaWxlZCIpOworCisJLyogRmV0Y2gg b3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSBjYXNjYWRlZCB1cGRhdGUgKi8KKwly aV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8sIFJJX1BMQU5fUEVSSU9EX0NBU0NBREVf T05VUERBVEUpOworCisJaWYgKChxcGxhbiA9IHJpX0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5 KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQlTdHJpbmdJ bmZvRGF0YSBxdWFsYnVmOworCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFN RV9MRU5dOworCQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFy CQlwYXJhbW5hbWVbMTZdOworCQljb25zdCBjaGFyICpxdWVyeXNlcDsKKwkJY29uc3QgY2hh ciAqcXVhbHNlcDsKKwkJT2lkCQkgcXVlcnlvaWRzWzIgKiBSSV9NQVhfTlVNS0VZUyArIDFd OworCQljb25zdCBjaGFyICpma19vbmx5OworCisJCS8qIC0tLS0tLS0tLS0KKwkJICogVGhl IHF1ZXJ5IHN0cmluZyBidWlsdCBpcworCQkgKiAgVVBEQVRFIFtPTkxZXSA8Zmt0YWJsZT4K KwkJICoJCSAgRk9SIFBPUlRJT04gT0YgJGZrYXR0ICgkezJuKzF9KQorCQkgKgkJICBTRVQg ZmthdHQxID0gJDEsIFssIC4uLl0KKwkJICoJCSAgV0hFUkUgJG4gPSBma2F0dDEgW0FORCAu Li5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9yIHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3Nl IG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5nIFBLIGF0dHJpYnV0ZXMuICBOb3RlIHRoYXQg d2UgYXJlIGFzc3VtaW5nCisJCSAqIHRoZXJlIGlzIGFuIGFzc2lnbm1lbnQgY2FzdCBmcm9t IHRoZSBQSyB0byB0aGUgRksgdHlwZTsKKwkJICogZWxzZSB0aGUgcGFyc2VyIHdpbGwgZmFp bC4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJaW5pdFN0cmluZ0luZm8oJnF1ZXJ5YnVm KTsKKwkJaW5pdFN0cmluZ0luZm8oJnF1YWxidWYpOworCQlma19vbmx5ID0gZmtfcmVsLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CisJCQkiIiA6 ICJPTkxZICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZrcmVsbmFtZSwgZmtfcmVsKTsKKwkJ cXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0 bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVy eWJ1ZiwgIlVQREFURSAlcyVzIEZPUiBQT1JUSU9OIE9GICVzICgkJWQpIFNFVCIsCisJCQkJ CQkgZmtfb25seSwgZmtyZWxuYW1lLCBhdHRuYW1lLCAyICogcmlpbmZvLT5ua2V5cyArIDEp OworCisJCXF1ZXJ5c2VwID0gIiI7CisJCXF1YWxzZXAgPSAiV0hFUkUiOworCQlmb3IgKGlu dCBpID0gMCwgaiA9IHJpaW5mby0+bmtleXM7IGkgPCByaWluZm8tPm5rZXlzOyBpKyssIGor KykKKwkJeworCQkJT2lkIHBrX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBr X2F0dG51bXNbaV0pOworCQkJT2lkIHBrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihwa19yZWws IHJpaW5mby0+cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfdHlwZSA9IFJJQXR0VHlwZShm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisJCQlPaWQgZmtfY29sbCA9IFJJQXR0 Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKworCQkJcXVvdGVP bmVOYW1lKGF0dG5hbWUsCisJCQkJCQkgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19h dHRudW1zW2ldKSk7CisJCQkvKgorCQkJICogRG9uJ3Qgc2V0IHRoZSB0ZW1wb3JhbCBjb2x1 bW4ocykuCisJCQkgKiBGT1IgUE9SVElPTiBPRiB3aWxsIHRha2UgY2FyZSBvZiB0aGF0Lgor CQkJICovCisJCQlpZiAoaSA8IHJpaW5mby0+bmtleXMgLSAxKQorCQkJCWFwcGVuZFN0cmlu Z0luZm8oJnF1ZXJ5YnVmLAorCQkJCQkJCQkgIiVzICVzID0gJCVkIiwKKwkJCQkJCQkJIHF1 ZXJ5c2VwLCBhdHRuYW1lLCBpICsgMSk7CisKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVk IiwgaiArIDEpOworCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWFsYnVmLCBxdWFsc2VwLAorCQkJ CQkJCXBhcmFtbmFtZSwgcGtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPnBmX2VxX29wcnNbaV0s CisJCQkJCQkJYXR0bmFtZSwgZmtfdHlwZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19jb2xs ICYmICFnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9H ZW5lcmF0ZVF1YWxDb2xsYXRpb24oJnF1ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1ZXJ5c2Vw ID0gIiwiOworCQkJcXVhbHNlcCA9ICJBTkQiOworCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlw ZTsKKwkJCXF1ZXJ5b2lkc1tqXSA9IHBrX3R5cGU7CisJCX0KKwkJYXBwZW5kQmluYXJ5U3Ry aW5nSW5mbygmcXVlcnlidWYsIHF1YWxidWYuZGF0YSwgcXVhbGJ1Zi5sZW4pOworCisJCS8q IFNldCBhIHBhcmFtIGZvciBGT1IgUE9SVElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lk c1syICogcmlpbmZvLT5ua2V5c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0 dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRo ZSBwbGFuICovCisJCXFwbGFuID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIDIgKiBy aWluZm8tPm5rZXlzICsgMSwgcXVlcnlvaWRzLAorCQkJCQkJCSAmcWtleSwgZmtfcmVsLCBw a19yZWwpOworCX0KKworCS8qCisJICogV2UgaGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8g dXBkYXRlIHRoZSBleGlzdGluZyByZWZlcmVuY2VzLgorCSAqLworCXJpX1BlcmZvcm1DaGVj ayhyaWluZm8sICZxa2V5LCBxcGxhbiwKKwkJCQkJZmtfcmVsLCBwa19yZWwsCisJCQkJCW9s ZHNsb3QsIG5ld3Nsb3QsCisJCQkJCXJpaW5mby0+bmtleXMgKiAyLCB0YXJnZXRSYW5nZSwK KwkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19V UERBVEUpOworCisJaWYgKFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9n KEVSUk9SLCAiU1BJX2ZpbmlzaCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOwor fQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwgLQorICoKKyAqIFNldCBm b3JlaWduIGtleSByZWZlcmVuY2VzIHRvIE5VTEwgdmFsdWVzIGF0IGRlbGV0ZSBldmVudCBv biBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsKFBH X0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJp Z2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9DaGVja1Ry aWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwiLCBSSV9UUklHVFlQ RV9ERUxFVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIFVQREFURSBjYXNlICovCisJcmV0 dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dCwgdHJ1ZSwgUklf VFJJR1RZUEVfREVMRVRFKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX3NldG51bGxf dXBkIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBOVUxMIGF0IHVw ZGF0ZSBldmVudCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3Nl dG51bGxfdXBkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlz IGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8K KwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQi LCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIERFTEVURSBj YXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4 dCwgdHJ1ZSwgUklfVFJJR1RZUEVfVVBEQVRFKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVy aW9kX3NldGRlZmF1bHRfZGVsIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNl cyB0byBkZWZhdWx0cyBhdCBkZWxldGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8KK0RhdHVt CitSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbChQR19GVU5DVElPTl9BUkdTKQorewor CS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmln aHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZL ZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCS8q IFNoYXJlIGNvZGUgd2l0aCBVUERBVEUgY2FzZSAqLworCXJldHVybiB0cmlfc2V0KChUcmln Z2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIGZhbHNlLCBSSV9UUklHVFlQRV9ERUxFVEUp OworfQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQgLQorICoKKyAq IFNldCBmb3JlaWduIGtleSByZWZlcmVuY2VzIHRvIGRlZmF1bHRzIGF0IHVwZGF0ZSBldmVu dCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRf dXBkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFs aWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9D aGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQiLCBS SV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIERFTEVURSBjYXNl ICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dCwg ZmFsc2UsIFJJX1RSSUdUWVBFX1VQREFURSk7Cit9CisKKy8qCisgKiB0cmlfc2V0IC0KKyAq CisgKiBDb21tb24gY29kZSBmb3IgdGVtcG9yYWwgT04gREVMRVRFIFNFVCBOVUxMLCBPTiBE RUxFVEUgU0VUIERFRkFVTFQsIE9OCisgKiBVUERBVEUgU0VUIE5VTEwsIGFuZCBPTiBVUERB VEUgU0VUIERFRkFVTFQuCisgKi8KK3N0YXRpYyBEYXR1bQordHJpX3NldChUcmlnZ2VyRGF0 YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpCit7CisJY29uc3Qg UklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7CisJUmVsYXRp b24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVJJX1F1ZXJ5S2V5IHFr ZXk7CisJU1BJUGxhblB0cglxcGxhbjsKKwlEYXR1bQkJdGFyZ2V0UmFuZ2U7CisJaW50MzIJ CXF1ZXJ5bm87CisKKwlyaWluZm8gPSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRyaWdkYXRh LT50Z190cmlnZ2VyLAorCQkJCQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0cnVlKTsK KworCS8qCisJICogR2V0IHRoZSByZWxhdGlvbiBkZXNjcmlwdG9ycyBvZiB0aGUgRksgYW5k IFBLIHRhYmxlcyBhbmQgdGhlIG9sZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVu ZWQgaW4gUm93RXhjbHVzaXZlTG9jayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAq IGV2ZW50dWFsIFVQREFURSB3aWxsIGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJs ZV9vcGVuKHJpaW5mby0+ZmtfcmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9 IHRyaWdkYXRhLT50Z19yZWxhdGlvbjsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdz bG90OworCisJLyoKKwkgKiBEb24ndCBTRVQgTlVMTC9ERUZBVUxUIHRoYW4gbW9yZSB0aGFu IHRoZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1tZWQgYnkgYW4gb3JpZ2luYWwgRk9SIFBP UlRJT04gT0YgaWYgbmVjZXNzYXJ5LgorCSAqLworCXRhcmdldFJhbmdlID0gcmVzdHJpY3Rf Y2FzY2FkaW5nX3JhbmdlKHBrX3JlbCwgdHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8s IG9sZHNsb3QpOworCisJaWYgKFNQSV9jb25uZWN0KCkgIT0gU1BJX09LX0NPTk5FQ1QpCisJ CWVsb2coRVJST1IsICJTUElfY29ubmVjdCBmYWlsZWQiKTsKKworCS8qCisJICogRmV0Y2gg b3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4gZm9yIHRoZSB0cmlnZ2VyLgorCSAqLworCXN3aXRj aCAodGdraW5kKQorCXsKKwkJY2FzZSBSSV9UUklHVFlQRV9VUERBVEU6CisJCQlxdWVyeW5v ID0gaXNfc2V0X251bGwKKwkJCQk/IFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05VUERBVEUK KwkJCQk6IFJJX1BMQU5fUEVSSU9EX1NFVERFRkFVTFRfT05VUERBVEU7CisJCQlicmVhazsK KwkJY2FzZSBSSV9UUklHVFlQRV9ERUxFVEU6CisJCQlxdWVyeW5vID0gaXNfc2V0X251bGwK KwkJCQk/IFJJX1BMQU5fUEVSSU9EX1NFVE5VTExfT05ERUxFVEUKKwkJCQk6IFJJX1BMQU5f UEVSSU9EX1NFVERFRkFVTFRfT05ERUxFVEU7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJ CWVsb2coRVJST1IsICJpbnZhbGlkIHRna2luZCBwYXNzZWQgdG8gcmlfc2V0Iik7CisJfQor CisJcmlfQnVpbGRRdWVyeUtleSgmcWtleSwgcmlpbmZvLCBxdWVyeW5vKTsKKworCWlmICgo cXBsYW4gPSByaV9GZXRjaFByZXBhcmVkUGxhbigmcWtleSkpID09IE5VTEwpCisJeworCQlT dHJpbmdJbmZvRGF0YSBxdWVyeWJ1ZjsKKwkJU3RyaW5nSW5mb0RhdGEgcXVhbGJ1ZjsKKwkJ Y2hhcgkJZmtyZWxuYW1lW01BWF9RVU9URURfUkVMX05BTUVfTEVOXTsKKwkJY2hhcgkJYXR0 bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVOXTsKKwkJY2hhcgkJcGFyYW1uYW1lWzE2XTsKKwkJ Y29uc3QgY2hhciAqcXVlcnlzZXA7CisJCWNvbnN0IGNoYXIgKnF1YWxzZXA7CisJCU9pZAkJ CXF1ZXJ5b2lkc1tSSV9NQVhfTlVNS0VZUyArIDFdOyAvKiArMSBmb3IgRk9SIFBPUlRJT04g T0YgKi8KKwkJY29uc3QgY2hhciAqZmtfb25seTsKKwkJaW50CQkJbnVtX2NvbHNfdG9fc2V0 OworCQljb25zdCBpbnQxNiAqc2V0X2NvbHM7CisKKwkJc3dpdGNoICh0Z2tpbmQpCisJCXsK KwkJCWNhc2UgUklfVFJJR1RZUEVfVVBEQVRFOgorCQkJCS8qIC0xIHNvIHdlIGxldCBGT1Ig UE9SVElPTiBPRiBzZXQgdGhlIHJhbmdlLiAqLworCQkJCW51bV9jb2xzX3RvX3NldCA9IHJp aW5mby0+bmtleXMgLSAxOworCQkJCXNldF9jb2xzID0gcmlpbmZvLT5ma19hdHRudW1zOwor CQkJCWJyZWFrOworCQkJY2FzZSBSSV9UUklHVFlQRV9ERUxFVEU6CisJCQkJLyoKKwkJCQkg KiBJZiBjb25mZGVsc2V0Y29scyBhcmUgcHJlc2VudCwgdGhlbiB3ZSBvbmx5IHVwZGF0ZSB0 aGUKKwkJCQkgKiBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGF0IGFycmF5LCBvdGhlcndpc2Ug d2UgdXBkYXRlIGFsbAorCQkJCSAqIHRoZSByZWZlcmVuY2luZyBjb2x1bW5zLgorCQkJCSAq LworCQkJCWlmIChyaWluZm8tPm5kZWxzZXRjb2xzICE9IDApCisJCQkJeworCQkJCQludW1f Y29sc190b19zZXQgPSByaWluZm8tPm5kZWxzZXRjb2xzOworCQkJCQlzZXRfY29scyA9IHJp aW5mby0+Y29uZmRlbHNldGNvbHM7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8q IC0xIHNvIHdlIGxldCBGT1IgUE9SVElPTiBPRiBzZXQgdGhlIHJhbmdlLiAqLworCQkJCQlu dW1fY29sc190b19zZXQgPSByaWluZm8tPm5rZXlzIC0gMTsKKwkJCQkJc2V0X2NvbHMgPSBy aWluZm8tPmZrX2F0dG51bXM7CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJ CQllbG9nKEVSUk9SLCAiaW52YWxpZCB0Z2tpbmQgcGFzc2VkIHRvIHJpX3NldCIpOworCQl9 CisKKwkJLyogLS0tLS0tLS0tLQorCQkgKiBUaGUgcXVlcnkgc3RyaW5nIGJ1aWx0IGlzCisJ CSAqCVVQREFURSBbT05MWV0gPGZrdGFibGU+CisJCSAqCQkJRk9SIFBPUlRJT04gT0YgJGZr YXR0ICgke24rMX0pCisJCSAqCQkJU0VUIGZrYXR0MSA9IHtOVUxMfERFRkFVTFR9IFssIC4u Ll0KKwkJICoJCQlXSEVSRSAkMSA9IGZrYXR0MSBbQU5EIC4uLl0KKwkJICogVGhlIHR5cGUg aWQncyBmb3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ugb2YgdGhlCisJCSAqIGNvcnJl c3BvbmRpbmcgUEsgYXR0cmlidXRlcy4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJaW5p dFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKKwkJaW5pdFN0cmluZ0luZm8oJnF1YWxidWYpOwor CQlma19vbmx5ID0gZmtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJ T05FRF9UQUJMRSA/CisJCQkiIiA6ICJPTkxZICI7CisJCXF1b3RlUmVsYXRpb25OYW1lKGZr cmVsbmFtZSwgZmtfcmVsKTsKKwkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKworCQlh cHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIlVQREFURSAlcyVzIEZPUiBQT1JUSU9OIE9G ICVzICgkJWQpIFNFVCIsCisJCQkJCQkgZmtfb25seSwgZmtyZWxuYW1lLCBhdHRuYW1lLCBy aWluZm8tPm5rZXlzICsgMSk7CisKKwkJLyoKKwkJICogQWRkIGFzc2lnbm1lbnQgY2xhdXNl cworCQkgKi8KKwkJcXVlcnlzZXAgPSAiIjsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1f Y29sc190b19zZXQ7IGkrKykKKwkJeworCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0 TmFtZShma19yZWwsIHNldF9jb2xzW2ldKSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVy eWJ1ZiwKKwkJCQkJCQkgIiVzICVzID0gJXMiLAorCQkJCQkJCSBxdWVyeXNlcCwgYXR0bmFt ZSwKKwkJCQkJCQkgaXNfc2V0X251bGwgPyAiTlVMTCIgOiAiREVGQVVMVCIpOworCQkJcXVl cnlzZXAgPSAiLCI7CisJCX0KKworCQkvKgorCQkgKiBBZGQgV0hFUkUgY2xhdXNlCisJCSAq LworCQlxdWFsc2VwID0gIldIRVJFIjsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8t Pm5rZXlzOyBpKyspCisJCXsKKwkJCU9pZAlwa190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwg cmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZAlma190eXBlID0gUklBdHRUeXBlKGZr X3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKwkJCU9pZAlwa19jb2xsID0gUklBdHRD b2xsYXRpb24ocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCQkJT2lkCWZrX2Nv bGwgPSBSSUF0dENvbGxhdGlvbihma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisK KwkJCXF1b3RlT25lTmFtZShhdHRuYW1lLAorCQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJp aW5mby0+ZmtfYXR0bnVtc1tpXSkpOworCisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIs IGkgKyAxKTsKKwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVlcnlidWYsIHF1YWxzZXAsCisJCQkJ CQkJcGFyYW1uYW1lLCBwa190eXBlLAorCQkJCQkJCXJpaW5mby0+cGZfZXFfb3Byc1tpXSwK KwkJCQkJCQlhdHRuYW1lLCBma190eXBlKTsKKwkJCWlmIChwa19jb2xsICE9IGZrX2NvbGwg JiYgIWdldF9jb2xsYXRpb25faXNkZXRlcm1pbmlzdGljKHBrX2NvbGwpKQorCQkJCXJpX0dl bmVyYXRlUXVhbENvbGxhdGlvbigmcXVlcnlidWYsIHBrX2NvbGwpOworCQkJcXVhbHNlcCA9 ICJBTkQiOworCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKKwkJfQorCisJCS8qIFNldCBh IHBhcmFtIGZvciBGT1IgUE9SVElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lkc1tyaWlu Zm8tPm5rZXlzXSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWlu Zm8tPm5rZXlzIC0gMV0pOworCisJCS8qIFByZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8K KwkJcXBsYW4gPSByaV9QbGFuQ2hlY2socXVlcnlidWYuZGF0YSwgcmlpbmZvLT5ua2V5cyAr IDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkgJnFrZXksIGZrX3JlbCwgcGtfcmVsKTsKKwl9CisK KwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRvIHVwZGF0ZSB0aGUgZXhp c3RpbmcgcmVmZXJlbmNlcy4KKwkgKi8KKwlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtl eSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlvbGRzbG90LCBOVUxMLAor CQkJCQlyaWluZm8tPm5rZXlzLCB0YXJnZXRSYW5nZSwKKwkJCQkJdHJ1ZSwJCS8qIG11c3Qg ZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19VUERBVEUpOworCisJaWYgKFNQSV9m aW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9nKEVSUk9SLCAiU1BJX2ZpbmlzaCBm YWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwlpZiAoaXNfc2V0X251bGwpCisJCXJldHVybiBQb2ludGVyR2V0RGF0dW0oTlVMTCk7CisJ ZWxzZQorCXsKKwkJLyoKKwkJICogSWYgd2UganVzdCBkZWxldGVkIG9yIHVwZGF0ZWQgdGhl IFBLIHJvdyB3aG9zZSBrZXkgd2FzIGVxdWFsIHRvIHRoZQorCQkgKiBGSyBjb2x1bW5zJyBk ZWZhdWx0IHZhbHVlcywgYW5kIGEgcmVmZXJlbmNpbmcgcm93IGV4aXN0cyBpbiB0aGUgRksK KwkJICogdGFibGUsIHdlIHdvdWxkIGhhdmUgdXBkYXRlZCB0aGF0IHJvdyB0byB0aGUgc2Ft ZSB2YWx1ZXMgaXQgYWxyZWFkeQorCQkgKiBoYWQgLS0tIGFuZCBSSV9GS2V5X2ZrX3VwZF9j aGVja19yZXF1aXJlZCB3b3VsZCBoZW5jZSBiZWxpZXZlIG5vCisJCSAqIGNoZWNrIGlzIG5l Y2Vzc2FyeS4gIFNvIHdlIG5lZWQgdG8gZG8gYW5vdGhlciBsb29rdXAgbm93IGFuZCBpbgor CQkgKiBjYXNlIGEgcmVmZXJlbmNlIHN0aWxsIGV4aXN0cywgYWJvcnQgdGhlIG9wZXJhdGlv bi4gIFRoYXQgaXMKKwkJICogYWxyZWFkeSBpbXBsZW1lbnRlZCBpbiB0aGUgTk8gQUNUSU9O IHRyaWdnZXIsIHNvIGp1c3QgcnVuIGl0LiAoVGhpcworCQkgKiByZWNoZWNrIGlzIG9ubHkg bmVlZGVkIGluIHRoZSBTRVQgREVGQVVMVCBjYXNlLCBzaW5jZSBDQVNDQURFIHdvdWxkCisJ CSAqIHJlbW92ZSBzdWNoIHJvd3MgaW4gY2FzZSBvZiBhIERFTEVURSBvcGVyYXRpb24gb3Ig d291bGQgY2hhbmdlIHRoZQorCQkgKiBGSyBrZXkgdmFsdWVzIGluIGNhc2Ugb2YgYW4gVVBE QVRFLCB3aGlsZSBTRVQgTlVMTCBpcyBjZXJ0YWluIHRvCisJCSAqIHJlc3VsdCBpbiByb3dz IHRoYXQgc2F0aXNmeSB0aGUgRksgY29uc3RyYWludC4pCisJCSAqLworCQlyZXR1cm4gcmlf cmVzdHJpY3QodHJpZ2RhdGEsIHRydWUpOworCX0KK30KKwogLyoKICAqIFJJX0ZLZXlfcGtf dXBkX2NoZWNrX3JlcXVpcmVkIC0KICAqCkBAIC0yMjgwLDkgKzI4MTcsMTAgQEAgcmlfTG9h ZENvbnN0cmFpbnRJbmZvKE9pZCBjb25zdHJhaW50T2lkKQogCXsKIAkJT2lkCQkJb3BjbGFz cyA9IGdldF9pbmRleF9jb2x1bW5fb3BjbGFzcyhjb25Gb3JtLT5jb25pbmRpZCwgcmlpbmZv LT5ua2V5cyk7CiAKLQkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzcywKLQkJCQkJCSAgJnJp aW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAotCQkJCQkJICAmcmlpbmZvLT5hZ2dl ZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIpOworCQlGaW5kRktQZXJpb2RPcGVyc0FuZFBy b2NzKG9wY2xhc3MsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9v cGVyLAorCQkJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3Bl ciwKKwkJCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X3Byb2MpOwogCX0KIAog CVJlbGVhc2VTeXNDYWNoZSh0dXApOwpAQCAtMjQzNyw4ICsyOTc1LDggQEAgcmlfUGVyZm9y bUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJaW50CQkJc3BpX3Jl c3VsdDsKIAlPaWQJCQlzYXZlX3VzZXJpZDsKIAlpbnQJCQlzYXZlX3NlY19jb250ZXh0Owot CURhdHVtCQl2YWxzW1JJX01BWF9OVU1LRVlTICogMl07Ci0JY2hhcgkJbnVsbHNbUklfTUFY X05VTUtFWVMgKiAyXTsKKwlEYXR1bQkJdmFsc1tSSV9NQVhfTlVNS0VZUyAqIDIgKyAxXTsK KwljaGFyCQludWxsc1tSSV9NQVhfTlVNS0VZUyAqIDIgKyAxXTsKIAogCS8qCiAJICogVXNl IHRoZSBxdWVyeSB0eXBlIGNvZGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHF1ZXJ5IGlz IHJ1biBhZ2FpbnN0CkBAIC0yNDczLDggKzMwMTEsMTAgQEAgcmlfUGVyZm9ybUNoZWNrKGNv bnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCXJpX0V4dHJhY3RWYWx1ZXMoc291 cmNlX3JlbCwgbmV3c2xvdCwgcmlpbmZvLCBzb3VyY2VfaXNfcGssCiAJCQkJCQkgdmFscywg bnVsbHMpOwogCQlpZiAob2xkc2xvdCkKKwkJewogCQkJcmlfRXh0cmFjdFZhbHVlcyhzb3Vy Y2VfcmVsLCBvbGRzbG90LCByaWluZm8sIHNvdXJjZV9pc19waywKIAkJCQkJCQkgdmFscyAr IHJpaW5mby0+bmtleXMsIG51bGxzICsgcmlpbmZvLT5ua2V5cyk7CisJCX0KIAl9CiAJZWxz ZQogCXsKQEAgLTMxNTQsNiArMzY5NCwxMiBAQCBSSV9GS2V5X3RyaWdnZXJfdHlwZShPaWQg dGdmb2lkKQogCQljYXNlIEZfUklfRktFWV9TRVRERUZBVUxUX1VQRDoKIAkJY2FzZSBGX1JJ X0ZLRVlfTk9BQ1RJT05fREVMOgogCQljYXNlIEZfUklfRktFWV9OT0FDVElPTl9VUEQ6CisJ CWNhc2UgRl9SSV9GS0VZX1BFUklPRF9DQVNDQURFX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlf UEVSSU9EX0NBU0NBREVfVVBEOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUTlVMTF9E RUw6CisJCWNhc2UgRl9SSV9GS0VZX1BFUklPRF9TRVROVUxMX1VQRDoKKwkJY2FzZSBGX1JJ X0ZLRVlfUEVSSU9EX1NFVERFRkFVTFRfREVMOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0Rf U0VUREVGQVVMVF9VUEQ6CiAJCQlyZXR1cm4gUklfVFJJR0dFUl9QSzsKIAogCQljYXNlIEZf UklfRktFWV9DSEVDS19JTlM6CkBAIC0zMTgyLDMwICszNzI4LDMwIEBAIGZwb190YXJnZXRz X3BrX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwgY29uc3Qg UklfQ29uc3RyYWludEluCiAvKgogICogcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlIC0KICAq Ci0gKiBSZXR1cm5zIGEgRGF0dW0gb2YgUmFuZ2VUeXBlUCBob2xkaW5nIHRoZSBhcHByb3By aWF0ZSB0aW1lc3BhbgotICogdG8gdGFyZ2V0IGNoaWxkIHJlY29yZHMgd2hlbiB3ZSBDQVND QURFL1NFVCBOVUxML1NFVCBERUZBVUxULgorICogUmV0dXJucyBhIERhdHVtIGhvbGRpbmcg dGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFuCisgKiB0byB0YXJnZXQgcmVmZXJlbmNpbmcgcmVj b3JkcyB3aGVuIHdlIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQuCiAgKgotICogSW4g YSBub3JtYWwgVVBEQVRFL0RFTEVURSB0aGlzIHNob3VsZCBiZSB0aGUgcGFyZW50J3Mgb3du IHZhbGlkIHRpbWUsCisgKiBJbiBhIG5vcm1hbCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxk IGJlIHRoZSByZWZlcmVuY2VkIHJvdydzIG93biB2YWxpZCB0aW1lLAogICogYnV0IGlmIHRo ZXJlIHdhcyBhIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSwgdGhlbiB3ZSBzaG91bGQgdXNlIHRo YXQgdG8KLSAqIHRyaW0gZG93biB0aGUgcGFyZW50J3Mgc3BhbiBmdXJ0aGVyLgorICogdHJp bSBkb3duIHRoZSBzcGFuIGZ1cnRoZXIuCiAgKi8KIHN0YXRpYyBEYXR1bQotcmVzdHJpY3Rf Y2FzY2FkaW5nX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwg Y29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgVHVwbGVUYWJsZVNsb3QgKm9sZHNs b3QpCityZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UoUmVsYXRpb24gcmVsLCBjb25zdCBGb3JQ b3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpy aWluZm8sIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KQogewogCURhdHVtCXBrUmVjb3JkUmFu Z2U7CiAJYm9vbAlpc251bGw7CisJaW50CQlhdHRubyA9IHJpaW5mby0+cGtfYXR0bnVtc1ty aWluZm8tPm5rZXlzIC0gMV07CiAKLQlwa1JlY29yZFJhbmdlID0gc2xvdF9nZXRhdHRyKG9s ZHNsb3QsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0sICZpc251bGwp OworCXBrUmVjb3JkUmFuZ2UgPSBzbG90X2dldGF0dHIob2xkc2xvdCwgYXR0bm8sICZpc251 bGwpOwogCWlmIChpc251bGwpCiAJCWVsb2coRVJST1IsICJhcHBsaWNhdGlvbiB0aW1lIHNo b3VsZCBub3QgYmUgbnVsbCIpOwogCiAJaWYgKGZwb190YXJnZXRzX3BrX3JhbmdlKHRnX3Rl bXBvcmFsLCByaWluZm8pKQogCXsKLQkJUmFuZ2VUeXBlICpyMSA9IERhdHVtR2V0UmFuZ2VU eXBlUChwa1JlY29yZFJhbmdlKTsKLQkJUmFuZ2VUeXBlICpyMiA9IERhdHVtR2V0UmFuZ2VU eXBlUCh0Z190ZW1wb3JhbC0+ZnBfdGFyZ2V0UmFuZ2UpOwotCQlPaWQgcm5ndHlwaWQgPSBS YW5nZVR5cGVHZXRPaWQocjEpOwotCQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUgPSBsb29r dXBfdHlwZV9jYWNoZShybmd0eXBpZCwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOwotCQlyZXR1 cm4gUmFuZ2VUeXBlUEdldERhdHVtKHJhbmdlX2ludGVyc2VjdF9pbnRlcm5hbCh0eXBjYWNo ZSwgcjEsIHIyKSk7CisJCWlmICghT2lkSXNWYWxpZChyaWluZm8tPnBlcmlvZF9pbnRlcnNl Y3RfcHJvYykpCisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBpbnRlcnNlY3Qgc3VwcG9ydCBm dW5jdGlvbiIpOworCisJCXJldHVybiBPaWRGdW5jdGlvbkNhbGwyKHJpaW5mby0+cGVyaW9k X2ludGVyc2VjdF9wcm9jLCBwa1JlY29yZFJhbmdlLCB0Z190ZW1wb3JhbC0+ZnBfdGFyZ2V0 UmFuZ2UpOwogCX0KIAllbHNlCiAJCXJldHVybiBwa1JlY29yZFJhbmdlOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2NvbnN0cmFpbnQuaAppbmRleCAzNTc4ODMxNWJjNC4uZmM1MjZjNzY3ZTUg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCkBAIC0yNzksOSArMjc5LDEw IEBAIGV4dGVybiB2b2lkIERlY29uc3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0 dXBsZSwgaW50ICpudW1ma3MsCiAJCQkJCQkJCQkgICBBdHRyTnVtYmVyICpjb25rZXksIEF0 dHJOdW1iZXIgKmNvbmZrZXksCiAJCQkJCQkJCQkgICBPaWQgKnBmX2VxX29wcnMsIE9pZCAq cHBfZXFfb3BycywgT2lkICpmZl9lcV9vcHJzLAogCQkJCQkJCQkJICAgaW50ICpudW1fZmtf ZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0X2NvbHMpOwotZXh0ZXJuIHZv aWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCi0JCQkJCQkJICBPaWQgKmNvbnRh aW5lZGJ5b3Blcm9pZCwKLQkJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQp OworZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywK KwkJCQkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAq YWdnZWRjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAqaW50ZXJzZWN0cHJv Y29pZCk7CiAKIGV4dGVybiBib29sIGNoZWNrX2Z1bmN0aW9uYWxfZ3JvdXBpbmcoT2lkIHJl bGlkLAogCQkJCQkJCQkJICBJbmRleCB2YXJubywgSW5kZXggdmFybGV2ZWxzdXAsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAzYmE2OTQyNDY4Mi4uMjE2NWNmYzIwZjQgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNDAzNiw2ICs0MDM2LDI4IEBACiAgIHBy b3JldHR5cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ ICdSSV9GS2V5X25vYWN0aW9uX3VwZCcgfSwKIAorIyBUZW1wb3JhbCByZWZlcmVudGlhbCBp bnRlZ3JpdHkgY29uc3RyYWludCB0cmlnZ2VycworeyBvaWQgPT4gJzYxMjQnLCBkZXNjciA9 PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVURSBDQVNDQURFJywK KyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwnLCBwcm92b2xhdGls ZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAn JywgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbCcgfSwKK3sgb2lkID0+ ICc2MTI1JywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBV UERBVEUgQ0FTQ0FERScsCisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVf dXBkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywKKyAg cHJvYXJndHlwZXMgPT4gJycsIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2RfY2FzY2FkZV91 cGQnIH0sCit7IG9pZCA9PiAnNjEyOCcsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlh bCBpbnRlZ3JpdHkgT04gREVMRVRFIFNFVCBOVUxMJywKKyAgcHJvbmFtZSA9PiAnUklfRktl eV9wZXJpb2Rfc2V0bnVsbF9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUg PT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5 X3BlcmlvZF9zZXRudWxsX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI5JywgZGVzY3IgPT4gJ3Rl bXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBVUERBVEUgU0VUIE5VTEwnLAorICBw cm9uYW1lID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCcsIHByb3ZvbGF0aWxlID0+ ICd2JywgcHJvcmV0dHlwZSA9PiAndHJpZ2dlcicsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBw cm9zcmMgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBkJyB9LAoreyBvaWQgPT4gJzYx MzAnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVU RSBTRVQgREVGQVVMVCcsCisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1 bHRfZGVsJywgcHJvdm9sYXRpbGUgPT4gJ3YnLAorICBwcm9yZXR0eXBlID0+ICd0cmlnZ2Vy JywgcHJvYXJndHlwZXMgPT4gJycsCisgIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2Rfc2V0 ZGVmYXVsdF9kZWwnIH0sCit7IG9pZCA9PiAnNjEzMScsIGRlc2NyID0+ICd0ZW1wb3JhbCBy ZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gVVBEQVRFIFNFVCBERUZBVUxUJywKKyAgcHJvbmFt ZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQnLCBwcm92b2xhdGlsZSA9PiAn dicsCisgIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKKyAg cHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCcgfSwKKwogeyBvaWQg PT4gJzE2NjYnLAogICBwcm9uYW1lID0+ICd2YXJiaXRlcScsIHByb2xlYWtwcm9vZiA9PiAn dCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAogICBwcm9hcmd0eXBlcyA9PiAndmFyYml0IHZh cmJpdCcsIHByb3NyYyA9PiAnYml0ZXEnIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYnRyZWVfaW5kZXgub3V0CmluZGV4IGRlZjc4ZWY4NTgzLi5kNjY5YTNhODliYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKQEAgLTI1OCwx NCArMjU4LDE3IEBAIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1l IGxpa2UgRSdSSVxcX0ZLZXklZGVsJyBvcmRlciBieSAxOwogKDMgcm93cykKIAogc2VsZWN0 IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVk ZWwnIG9yZGVyIGJ5IDE7Ci0gICAgICAgIHByb25hbWUgICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgcHJvbmFtZSAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJJX0ZLZXlfY2FzY2FkZV9kZWwKICBSSV9G S2V5X25vYWN0aW9uX2RlbAorIFJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsCisgUklfRktl eV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbAog IFJJX0ZLZXlfcmVzdHJpY3RfZGVsCiAgUklfRktleV9zZXRkZWZhdWx0X2RlbAogIFJJX0ZL ZXlfc2V0bnVsbF9kZWwKLSg1IHJvd3MpCisoOCByb3dzKQogCiBleHBsYWluIChjb3N0cyBv ZmYpCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBpbGlrZSAn MDAlZm9vJyBvcmRlciBieSAxOwpAQCAtMzA0LDE0ICszMDcsMTcgQEAgc2VsZWN0IHByb25h bWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9y ZGVyIGJ5IDE7CiAoNiByb3dzKQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hl cmUgcHJvbmFtZSBsaWtlIEUnUklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKLSAgICAgICAg cHJvbmFtZSAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICBwcm9uYW1lICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgUklfRktleV9jYXNjYWRlX2RlbAogIFJJX0ZLZXlfbm9hY3Rpb25fZGVsCisgUklfRktl eV9wZXJpb2RfY2FzY2FkZV9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbAor IFJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsCiAgUklfRktleV9yZXN0cmljdF9kZWwKICBS SV9GS2V5X3NldGRlZmF1bHRfZGVsCiAgUklfRktleV9zZXRudWxsX2RlbAotKDUgcm93cykK Kyg4IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCBwcm9uYW1lIGZyb20g cGdfcHJvYyB3aGVyZSBwcm9uYW1lIGlsaWtlICcwMCVmb28nIG9yZGVyIGJ5IDE7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRl eCAyZjg1N2Q0OTYxZi4uODhhYjMwOWUxMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMiw3ICsyLDcgQEAKIC0tCiAt LSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBwZ19kdW1wIGV0YzoK IC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRlbXBvcmFsX2ZrX3JuZzJy bmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJfcm5nMnJuZy4KIFNF VCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CiAtLQogLS0gdGVzdCBpbnB1dCBwYXJzZXIKQEAg LTE3OTAsNiArMTc5MCwyMSBAQCBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2 KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2 YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTYtMDItMDEs MjAxNi0wMy0wMSkKKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpCisgWzUsNikg fCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorIFs3LDgpIHwgWzIwMTgtMDEtMDIsMjAxOC0w MS0wMykKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAxLTA1LDIw MTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAn MjAxNi0wMi0wMScpCkBAIC0xODU1LDYgKzE4NzAsMjEgQEAgU0VUIGlkID0gJ1s3LDgpJwog V0hFUkUgaWQgPSAnWzUsNiknOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywg J1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2 KSB8IFsyMDE2LTAyLTAxLDIwMTYtMDMtMDEpCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4 LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKyBbNyw4KSB8IFsy MDE4LTAxLTAyLDIwMTgtMDEtMDMpCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkg fCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUg c3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtMTkwMSwxMiArMTkzMSwyMiBAQCBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0x MCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIK IERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2 KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg WzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMs MjAxOC0wMi0wMSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBp ZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAx LTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoK IERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwog REVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotLS0gY2xlYW4g dXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9 ICdbNSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2 KScpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpA QCAtMTk0NSwzOSArMTk4NSwyMDYgQEAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdbNSw2KSc7CiBFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0w MikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisoMiByb3dzKQorCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSBy b3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCi0tLSB0ZXN0IE9OIFVQREFURS9E RUxFVEUgb3B0aW9ucworLS0gcm5nMnJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9u cworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxM CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBz dWJzZXQpCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAg T04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7Ci1FUlJPUjogIHVuc3VwcG9y dGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcg UEVSSU9ECistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9y bmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKwor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbNyw4KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBX SEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAx LTAxKSB8IFs5LDEwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg WzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBD QVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBb MTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMiByb3dzKQor CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9h dCB8IHBhcmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykK KworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygxIHJvdykKKworLS0KIC0tIHRlc3QgRksgcmVm ZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CistLQorVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQg TlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWln biBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIw MjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb Niw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTAp JyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKSB8IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0w MSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAs MTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcg V0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0w MS0wMSkgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkp CisoMiByb3dzKQorCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7 CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0x LC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50 X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmssCkBAIC0xOTg1LDcgKzIxOTIsNDMyIEBAIEFMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKICAgICBPTiBERUxFVEUg U0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwotRVJST1I6ICB1bnN1cHBvcnRl ZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBF UklPRAorLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5n IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAw LDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCist LSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgp JyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCkn IFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAt MDEtMDEpIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19y bmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSww KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg dXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBD QVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxf cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBb Niw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzcsOCkgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBE QVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzksMTApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2Nh bGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3Ju ZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNykn KTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIw MTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Ju ZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERF TEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRh dGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAgICAgICAg ICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAg ICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAg ICAgIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScp OworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8ICAgICAgICAg ICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIw MjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VU IE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2Zr Ml9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1 bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitF UlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBh Y3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmss CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVu dF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg ICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxf cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsy MDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQg KHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3Jh bF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGws IG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFst MSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSww KQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEs LTFdJywgJ1s2LDcpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5 b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlk X2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQi IHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAor LS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAg IE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZB VUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0x LDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkg fCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBk YXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsy MDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJv d3MpCisKIC0tCiAtLSB0ZXN0IEZPUkVJR04gS0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMg bXVsdGlyYW5nZQogLS0KQEAgLTIzMTYsNiArMjk0OCwyMiBAQCBVUERBVEUgdGVtcG9yYWxf bWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0 cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKIERF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQor U0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVz dCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wMiksWzIw MTgtMDEtMDMsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOwor VVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKQorV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFJFU1RSSUNUCiAtLQpAQCAtMjM2NSw2ICszMDEzLDIyIEBAIFVQREFURSB0ZW1wb3JhbF9t bHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRy bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIi4KKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitT RVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0 IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAx OC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAi dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg Tk8gQUNUSU9OCiAtLQpAQCAtMjM5Nyw2ICszMDYxLDE5IEBAIEJFR0lOOwogQ09NTUlUOwog RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1dI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitX SEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgt MDEtMDEsMjAxOC0wMS0wMiksWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0g dGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRl bGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBSRVNUUklDVAogLS0KQEAgLTI0MjUsNiArMzEwMiw2MzggQEAgQkVHSU47 CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9 KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmciLgogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBp cyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgt MDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFy dCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4 LTAxLTEwJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb NSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDItMDEp fSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0 aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CistLQorLS0gbWx0 cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoK Ky0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg Q0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAor LS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVM TCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0 d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg REVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEt MDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpCisoMiByb3dzKQorCistLSBu b24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgp JyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAg ICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbNyw4KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAg ICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KQorKDIgcm93cykKKworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFs5LDEwKQorIFsyMDAsMjAx KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDIgcm93cykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScs ICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxp ZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorKDEgcm93KQorCistLSBub24tRlBPIGRlbGV0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBhcmVu dF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVt cG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyAgICBPTiBERUxFVEUgU0VU IE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VU IGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIw LTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IAorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAg ICAgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5 LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtb MjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAg ICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAg ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0w MS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgCisgWzEwMCwxMDEpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgCisgWzIwMCwyMDEp IHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dzKQorCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIFNFVCBERUZB VUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNF VCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0g J1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxf bWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApCisg WzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn Wy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTkt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCiso MiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7WzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisg ICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAg ICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAx LDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpICAgICAgfCBb Niw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf bWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkgICAgICB8IFs2LDcp CisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScp OworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlk MSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxp ZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzksMTApICAgICB8 IFs4LDkpCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkp ICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBk ZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAn WzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAg ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAx LTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKygx IHJvdykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAg ICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg CisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIgcm93cykKKwor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1w b3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg e1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3 byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcp Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8IAorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4 LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KX0gfCAgICAgICAgICAgIHwgCisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEt MDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxM IHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7Cist LSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUg U0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04g REVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJu ZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAg IHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAg ICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IFs2LDcpCisoMiBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4 LTAxLTAxLDIwMjAtMDEtMDEpfSB8ICAgICAgICAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8 IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScs CisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9O IFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQx ID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8IFstMSww KQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0 cm5nMiBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwge1sy MDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSww KSAgICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4 LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5 LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEt MDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAg IHwgWy0xLDApICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAg ICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEt MDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8 IFstMSwwKQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDAp CisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShu dWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0t IGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNF VCBERUZBVUxUOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9O IERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9p ZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIK KyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQg REVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEs MCkgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0w MS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8IFs2LDcpCiso MiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApICAgICB8IFs4LDkp CisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0gRksgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCitD UkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15 ZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9mazNfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgbXlkYXRl cmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmszX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmczIChpZCwgUEVSSU9EIHZhbGlkX2F0KSBPTiBERUxFVEUgQ0FTQ0FERQorKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmszX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbNSw2KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmczIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdb OCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrM19ybmcycm5nIFdIRVJFIGlkID0g J1s1LDYpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lk IAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUs NikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBv cmFsX2ZrM19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBF IG15ZGF0ZXJhbmdlOwogLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiBy YW5nZXMKIC0tCkBAIC0yNDM0LDggKzM3NDMsOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nICgKICAgbmFtZSB0ZXh0LAogICBDT05TVFJBSU5UIHRlbXBvcmFs X3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0cDEg cGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgn WzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMikn KTsKLUNSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSkn LCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1sz LDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCkn LCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQp Jyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcp JywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNykn LCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZB TFVFUwogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEn KSwgJ29uZScpLAogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAt MDMtMDEnKSwgJ29uZScpLApAQCAtMjQ0OCw4ICszNzU3LDggQEAgQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAogICBDT05TVFJBSU5UIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JF QVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4 KScsICdbOSwxMCknLCAnWzExLDEyKScpOwotQ1JFQVRFIFRBQkxFIHRma3AyIHBhcnRpdGlv biBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdb MiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMykn KTsKK0NSRUFURSBUQUJMRSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNikn LCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywg J1sxNywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBU QUJMRSB0ZmtwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBGT1IgVkFMVUVTIElOICgnWzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAn WzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdb MTgsMTkpJywgJ1syMCwyMSknLCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CiAtLQogLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwogLS0KQEAgLTI0OTEsNyArMzgwMCw3 IEBAIFVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtCiAtLSBzaG91bGQgZmFpbDoKIFVQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQogICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLUVSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9p ZF92YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyIKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nX3BhcmVudF9pZF92YWxpZF9hdF9ma2V5MSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRh YmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KIC0tCiAtLSBwYXJ0aXRp b25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCkBAIC0yNTAzLDcgKzM4MTIs NyBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxkIGZhaWw6CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19w YXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0yNTI1LDcg KzM4MzQsNyBAQCBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLQogLS0gc2hvdWxkIGZhaWw6 CiBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKICAgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19w YXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC0yNTM3LDM3 ICszODQ2LDE2MiBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxk IGZhaWw6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFi bGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIu CiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0t CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKICAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawogICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZwogICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVND QURFOwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWdu IGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzQsNSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNCw1 KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbNCw1KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWzYsNykKKygzIHJvd3MpCisKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzQsNSknOwor ICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNCw1KSB8IFsyMDE5 LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDE4LTAxLTAxLDIwMTkt MDEtMDEpIHwgWzcsOCkKKyBbNCw1KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzcs OCkKKygzIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwx MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScp OworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScg V0hFUkUgaWQgPSAnWzE1LDE2KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAsMTEpJzsKKyAgIGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsxMCwxMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFsxNiwxNykK KyBbMTAsMTEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTUsMTYpCisoMiByb3dz KQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUK IC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzUsNiknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzgsOSkKKyBbNSw2KSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzUsNiknOworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQgCistLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzE3LDE4KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJF IGlkID0gJ1sxNywxOCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzExLDEyKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTEsMTIpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTcsMTgpCisoMSBy b3cpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAogICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAgICAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQ REFURSBTRVQgTlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBm b3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdb OSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1s2LDcpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzYsNykgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs2LDcpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbOSwxMCkKKyBbNiw3KSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzksMTApCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1s2LDcpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzYsNykgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs2LDcpIHwgWzIwMTgtMDEt MDEsMjAxOS0wMS0wMSkgfCAKKyBbNiw3KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg CisoMyByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4LDE5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTIsMTMp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxOCwxOSknKTsK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdI RVJFIGlkID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEyLDEzKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTIsMTMpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTIsMTMp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTgsMTkpCisoMiByb3dzKQorCiAtLQog LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCiAtLQorVFJV TkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNyw4KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTEsMTIpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxMSwxMikn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s3LDgpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzcsOCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFs3LDgpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbMTEsMTIpCisgWzcsOCkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFsxMSwxMikKKygzIHJvd3MpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CisgIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs3LDgpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCAKKyBbNyw4KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg CisgWzcsOCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syMCwyMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEzLDE0KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKyAgIGlkICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMywxNCkgfCBbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKSB8IAorIFsxMywxNCkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsy MCwyMSkKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVw ZGF0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBk YXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb OCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTIsMTMp Jyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgIEFM VEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAogICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKQEAgLTI1NzUs MTAgKzQwMDksNzMgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZwogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7Ci1FUlJPUjogIHVuc3VwcG9ydGVk IE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVS SU9ECitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEz LDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUg b24gdGFibGUgInRma3AyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRf aWQsIHZhbGlkX2F0KT0oWy0xLDApLCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSkgaXMgbm90 IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzgs OSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOCw5KSB8 IFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzEyLDEzKQorKDEgcm93KQorCitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9 ICdbMTIsMTMpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDIi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShb LTEsMCksIFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJs ZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs4LDkpIHwgWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSkgfCBbMTIsMTMpCisoMSByb3cpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzIyLDIzKScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQg aWQgPSAnWzIzLDI0KScgV0hFUkUgaWQgPSAnWzIyLDIzKScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAi dGZrcDIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRf YXQpPShbLTEsMCksIFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKKyAg IGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxNCwxNSkgfCBb MjAxOC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsyMiwyMykKKygxIHJvdykKKwogLS0KIC0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAogLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sxNCwxNSknOworRVJST1I6ICBpbnNl cnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDog IEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFstMSwwKSwgWzIwMTktMDEtMDEsMjAyMC0w MS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1s5LDEwKSc7CisgICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzksMTApIHwgWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTQsMTUpCiso MSByb3cpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBp ZCA9ICdbMTQsMTUpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZr cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQp PShbLTEsMCksIFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0 YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAgaWQg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs5LDEwKSB8IFsyMDE4LTAx LTAxLDIwMjEtMDEtMDEpIHwgWzE0LDE1KQorKDEgcm93KQorCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwy NSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1syNCwyNSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBXSEVSRSBpZCA9ICdbMjQsMjUpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFst MSwwKSwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxl ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxNSwxNiknOworICAgaWQgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzE1LDE2KSB8IFsyMDE4LTAx LTAxLDIwMjEtMDEtMDEpIHwgWzI0LDI1KQorKDEgcm93KQorCiBEUk9QIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZzsKIC0tCkBAIC0yNjk4LDMyICs0MTk1LDE1MCBAQCBERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBz dGlsbCByZWZlcmVuYwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScp OwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwog ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu Z19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAgIE9O IERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwotRVJST1I6ICB1bnN1cHBvcnRl ZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBF UklPRAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFs0LDUpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAg ICAgICB8IFs3LDgpCisgWzQsNSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKygyIHJvd3MpCisKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzQsNSknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzQsNSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgWzcsOCkKKyBbNCw1KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNyw4KQorKDIgcm93cykKKworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxNSwxNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdb MTUsMTYpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMCwxMSknOworICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMCwxMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzE2LDE3KQor IFsxMCwxMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzE1LDE2KQorKDIgcm93 cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURF CiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8 ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs1LDYpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMSByb3cpCisK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdb OCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQg CistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTcsMTgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE3LDE4KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxNywxOCknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CisgICBpZCAg ICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzExLDEyKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbMTcsMTgpCisoMSByb3cpCisKIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKIC0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOSwxMCknKTsKIEFMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcKICAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfZmssCiAgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfZmsKICAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcKICAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04g VVBEQVRFIFNFVCBOVUxMOwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9u IGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBp ZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsK KyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs2LDcpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIFs2LDcp IHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8 IFs5LDEwKQorKDIgcm93cykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJu ZyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb Niw3KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg ICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNiw3KSB8 IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAK KyBbNiw3KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCAKKygyIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxOCwxOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzE4LDE5KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQg aWQgPSAnWzE5LDIwKScgV0hFUkUgaWQgPSAnWzE4LDE5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKKyAgIGlkICAgIHwgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTIsMTMpIHwge1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpfSB8IAorIFsxMiwxMykgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWzE4LDE5KQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMTEsMTIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3 LDgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbMTEsMTIpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbMTEsMTIpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbNyw4KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlk X2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbNyw4KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAg ICAgICAgICAgfCAKKyBbNyw4KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbMTEsMTIpCisoMiByb3dzKQorCitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzcsOCknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzcsOCkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCisgWzcsOCkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgCisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMjAsMjEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sx MywxNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1syMCwyMSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyBXSEVSRSBpZCA9ICdbMjAsMjEpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMywxNCknOworICAgaWQgICAgfCAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMywxNCkgfCB7WzIwMTgtMDEtMDEsMjAy MC0wMS0wMSl9IHwgCisgWzEzLDE0KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb MjAsMjEpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBERUZBVUxUCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1swLDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEyLDEzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb OCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzEyLDEzKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxU ICdbMCwxKScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nX2ZrLApAQCAtMjczMSwxMCArNDM0Niw2NyBAQCBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nCiAgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGFydGl0aW9uZWRfbWx0cm5nCiAgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBm b3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQg PSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOwor ICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzgsOSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBb OCw5KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbMTIsMTMpCisoMiByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbOCw5KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb OCw5KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAg ICAgfCBbMCwxKQorIFs4LDkpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFswLDEpCisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIz KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxNCwxNSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMyknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7 CisgICBpZCAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzE0 LDE1KSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbMCwxKQorIFsxNCwxNSkgfCB7 WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzIyLDIzKQorKDIgcm93cykKKwogLS0KIC0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAogLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzksMTApJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTQsMTUpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAx LTAxJykpKSBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAg aWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOSwxMCkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBb OSwxMCkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWzE0LDE1KQorKDIgcm93cykKKworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s5LDEwKSc7 CisgICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs5LDEwKSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbMCwx KQorIFs5LDEwKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKX0gfCBbMCwxKQorKDIgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTUsMTYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbMjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKyAgIGlkICAgIHwgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTUsMTYpIHwge1syMDE4LTAxLTAxLDIw MjAtMDEtMDEpfSB8IFswLDEpCisgWzE1LDE2KSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbMjQsMjUpCisoMiByb3dzKQorCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX21sdHJuZzJtbHRybmc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZzsKIFJFU0VUIGRhdGVzdHlsZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwKaW5kZXggZjY4Zjc4ZmZhMzUuLjk5NzAxOGZkMDVjIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtMiw3ICsy LDcgQEAKIC0tCiAtLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBw Z19kdW1wIGV0YzoKIC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRlbXBv cmFsX2ZrX3JuZzJybmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJf cm5nMnJuZy4KIAogU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKIApAQCAtMTMxNCw2ICsx MzE0LDggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBTRVQgaWQgPSAnWzcsOCknCiBX SEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykKQEAgLTEzNzMsNiArMTM3NSw4IEBAIFVQREFURSB0ZW1wb3JhbF9ybmcKIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwogU0VU IGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBp biAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoK IERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwog VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEt MDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xNDE2LDEyICsxNDIwLDExIEBAIFdIRVJFIGlkID0g J1s1LDYpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZwogRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdb NSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYp JywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7Ci0tLSBjbGVhbiB1cDoKLURFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKLURFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBSRVNUUklDVApAQCAtMTQ1OCw0MSArMTQ2MSwxMzEgQEAgV0hFUkUg aWQgPSAnWzUsNiknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKIFdIRVJFIGlk ID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgn WzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFu ZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIAogLS0KLS0tIHRlc3QgT04g VVBEQVRFL0RFTEVURSBvcHRpb25zCistLSBybmcycm5nIHRlc3QgT04gVVBEQVRFL0RFTEVU RSBvcHRpb25zCiAtLQorLS0gVE9DOgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUK Ky0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMg U0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCist LSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0g cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBE RUZBVUxUIHN1YnNldCkKIAorLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENB U0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJu ZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAog ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nCiAgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9 ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKIAorLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1J TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzksMTApJyk7CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFs X2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcK ICAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAn WzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcs OCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcg U0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KIAorVFJVTkNBVEUg dGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJu ZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb LTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7 CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19maywKQEAgLTE1MDAsNiArMTU5MywyNTIgQEAgQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnJuZwogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogICAgIE9OIERFTEVU RSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQg PSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBu dWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQ REFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdb OSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIs IHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZwor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxM OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9y bmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAn WzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIs IHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhl IFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBE QVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERF RkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJy bmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFV TFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdb Nyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAn WzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJywgaWQyID0gJ1s5LDEw KScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0x XScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4 LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScs ICdbNiw3KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNh bid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFd JywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkg T04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0x LC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50 X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcy cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiAt LQogLS0gdGVzdCBGT1JFSUdOIEtFWSwgbXVsdGlyYW5nZSByZWZlcmVuY2VzIG11bHRpcmFu Z2UKQEAgLTE4MDMsNiArMjE0MiwyMCBAQCBDT01NSVQ7CiAtLSBjaGFuZ2luZyB0aGUgc2Nh bGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4 KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIGFu IHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1w b3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4 KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rpbmcg RksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJF U1RSSUNUCkBAIC0xODQ5LDYgKzIyMDIsMjAgQEAgUk9MTEJBQ0s7CiAtLSBjaGFuZ2luZyB0 aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9 ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5n aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0 cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmpl Y3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIE5PIEFDVElPTgpAQCAtMTg4MCw2ICsyMjQ3LDE3IEBAIEJFR0lOOwogCiAgIERFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CiBDT01NSVQ7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMn KSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWls czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEw JykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGlu ZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBA IC0xOTA5LDYgKzIyODcsNDE3IEBAIEJFR0lOOwogCiAgIERFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBST0xMQkFDSzsK Ky0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1dIRVJFIGlk ID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworCistLQor LS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0t IFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVG QVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2Vk IHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwg KHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9OIERF TEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScp KSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCkn IFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0 cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVM RVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTAp JyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9t bHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAx LTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1st MSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRf aWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAx JykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEw KScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJu ZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYs NyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9u LUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcy LCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp JywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBT RVQgTlVMTCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1 bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVU RSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEt MDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdb OCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZB VUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVM RVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScs IGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5 KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknLCBpZDIg PSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIg Y29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywg J1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g dXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAw LDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBT RVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw3KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0 aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxU ICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk MSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgor ICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBE RUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVw ZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t IEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQorCitDUkVBVEUgVFlQRSBteWRhdGVyYW5n ZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOworCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5n MyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcm5nM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAgcGFyZW50X2lk IGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrM19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpIE9OIERFTEVURSBDQVNDQURFCispOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmszX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOworCitEUk9QIFRB QkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwor RFJPUCBUWVBFIG15ZGF0ZXJhbmdlOwogCiAtLQogLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25l ZCB0YWJsZXM6IHJhbmdlcwpAQCAtMTkyMCw4ICsyNzA5LDggQEAgQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCiAgIG5hbWUgdGV4dCwKICAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCiApIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFC TEUgdHAxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVF UyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdb MTEsMTIpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywg J1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJU SVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwy KScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdb MTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAn WzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScs ICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdb MTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsK IElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBu YW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAw LTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScs ICcyMDAwLTAzLTAxJyksICdvbmUnKSwKQEAgLTE5MzUsOCArMjcyNCw4IEBAIENSRUFURSBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKICAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICkgUEFSVElUSU9OIEJZIExJU1QgKGlk KTsKLUNSRUFURSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNikn LCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFURSBUQUJMRSB0ZmtwMiBw YXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVT IElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdb MTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywg J1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1 LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitD UkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2 LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwx NyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogCiAt LQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwpAQCAtMjAyOSwzNiAr MjgxOCw5MCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZQogLS0gcGFydGl0aW9uZWQg RksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAg ICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbNCw1KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNF VCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwxMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScpOworVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUgaWQgPSAnWzE1LDE2KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAsMTEpJzsKIAog LS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAtLQog CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdI RVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMSwxMiknOworCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTAp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04gREVM RVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCkn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlk ID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzYsNyknOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVSRSBpZCA9ICdbMTgsMTkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMiwxMyknOwogCiAt LQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCiAtLQog CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMSwxMiknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzEx LDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzcsOCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjAsMjEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIw LDIxKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEzLDE0KSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyBy ZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1sxMiwxMyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0x XScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n X2ZrLApAQCAtMjA2NiwxMSArMjkwOSwzNCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAg ICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVS RSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbOCw5KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMiwyMyknKTsKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJF IGlkID0gJ1syMiwyMyknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzE0LDE1KSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRh dGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5 LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlk ID0gJ1sxNCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzI0LDI1KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzI0LDI1KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE1LDE2KSc7CisKIERST1AgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nOwogCkBAIC0yMTkzLDM2ICszMDU5LDkwIEBAIERFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11CiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FT Q0FERQogLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19m aywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK ICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAgIE9OIERF TEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzQsNSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzE1LDE2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAs MTEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5n IFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdbMTUsMTYpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMCwxMSknOwogCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKIC0tCiAKK1RSVU5D QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJF IGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1 LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE3LDE4KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sx NywxOCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzExLDEyKSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg U0VUIE5VTEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwx MCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s5LDEw KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZwogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAg IE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlk ID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOwor VVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEwLDExKScg V0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4 LDE5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sxOCwxOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdIRVJFIGlkID0gJ1sxOCwxOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEyLDEz KSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5V TEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTEsMTIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTEsMTIpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcy MDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAn WzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzcsOCknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzIwLDIxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTMsMTQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKwogLS0KIC0tIHBhcnRpdGlvbmVk IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAogLS0KIAorVFJVTkNBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzEyLDEzKScpOwogQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBBTFRFUiBDT0xVTU4gcGFy ZW50X2lkIFNFVCBERUZBVUxUICdbMCwxKScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLApAQCAtMjIzMCwxMSArMzE1MCwz NCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n CiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCiAgICAgT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzEz LDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUg aWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbMjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOwog CiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxU CiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE0LDE1 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEn LCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzks MTApJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBp ZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTUsMTYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbMjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKwogRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmc7CiAKLS0gCjIuNDIuMAoK --------------fqq7eOVClbBGl58voZUohIfk Content-Type: text/x-patch; charset=UTF-8; name="v41-0007-Add-PERIODs.patch" Content-Disposition: attachment; filename="v41-0007-Add-PERIODs.patch" Content-Transfer-Encoding: base64 RnJvbSAxY2FlZDY2ZDg2NTRlODAwM2Q3ZDJmODUzYzAyY2VjY2RlOGM0OWYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBKYW4gMjAyMSAyMTo1OTo0MyAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjQxIDcvN10gQWRkIFBFUklPRHMKCi0gQWRkZWQgcGFyc2lu ZyBmb3IgU1FMOjIwMTEgc3ludGF4IHRvIGRlZmluZSBhbiBhcHBsaWNhdGlvbi10aW1lIFBF UklPRCBvbiBhCiAgdGFibGUgKGluIGJvdGggQ1JFQVRFIFRBQkxFIGFuZCBBTFRFUiBUQUJM RSkuIE1ha2Ugc3VyZSB3ZSBjcmVhdGUgdGhlIFBFUklPRAogIGFmdGVyIGNvbHVtbnMgYXJl IGtub3duIChzaW5jZSBQRVJJT0RzIGNhbiByZWZlciB0byB0aGVtKSBidXQgYmVmb3JlCiAg Y29uc3RyYWludHMgYXJlIGhhbmRsZWQgKHNpbmNlIFBFUklPRHMgY2FuIGFwcGVhciBpbiB0 aGVtKS4KLSBBZGRlZCBBTFRFUiBUQUJMRSBEUk9QIHN1cHBvcnQgZm9yIFBFUklPRHMuCi0g Q3JlYXRlZCBwb3N0Z3Jlcy5wZ19wZXJpb2QgdGFibGUuCi0gQ3JlYXRlZCBpbmZvcm1hdGlv bl9zY2hlbWEucGVyaW9kcyB2aWV3LgotIEFkZGVkIHBnX2R1bXAgc3VwcG9ydC4KLSBBZGRl ZCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbi4KLSBBdXRvbWF0aWNhbGx5IGRlZmluZSBhIGNv bnN0cmFpbnQgZm9yIGVhY2ggUEVSSU9EIHJlcXVpcmluZyB0aGUgc3RhcnQgY29sdW1uCiAg dG8gYmUgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uLgotIFdoZW4gY3JlYXRpbmcgYSBQRVJJ T0QsIGNob29zZSBhbiBhcHByb3ByaWF0ZSByYW5nZSB0eXBlIHdlIGNhbiB1c2UgdG8KICBp bXBsZW1lbnQgUEVSSU9ELXJlbGF0ZWQgb3BlcmF0aW9ucy4gWW91IGNhbiBjaG9vc2Ugb25l IGV4cGxpY2l0bHkgaWYgdGhlcmUKICBpcyBhbWJpZ3VpdHkgKGR1ZSB0byBtdWx0aXBsZSBy YW5nZSB0eXBlcyBjcmVhdGVkIG92ZXIgdGhlIHNhbWUgYmFzZSB0eXBlKS4KLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEyICsKIGRv Yy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTggKwog ZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sICAgICAgICAgIHwgICA2MyAr CiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgICAgICAgICAgICAgfCAgIDMx ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAg ICAyICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAgICB8 ICAgNjUgKy0KIGRvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwgICAgICAgICAgICAgICAg ICB8ICAgIDMgKy0KIGRvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwgICAgICAgICAgICAg ICAgICB8ICAgIDMgKy0KIGRvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgICAgICAgICAgICAg ICAgICAgICB8ICAgMTEgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAg ICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YyAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAg ICAgICAgICAgICAgICAgICB8ICAgNzUgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1h dGlvbl9zY2hlbWEuc3FsICAgIHwgICAyMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNv bi5idWlsZCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL29i amVjdGFkZHJlc3MuYyAgICAgICAgICAgfCAgIDcyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcGVyaW9kLmMgICAgICAgICAgICAgICB8ICAxMzIgKwogc3JjL2JhY2tlbmQvY2F0YWxv Zy9zcWxfZmVhdHVyZXMudHh0ICAgICAgICAgIHwgICAgMiArLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvY29tbWVudC5jICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgODY2ICsrLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgICAgMiArCiBz cmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgICA0ICst CiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyAgICAgICAgfCAgIDQw ICstCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAg ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8 ICAgOTkgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAg ICB8ICAgNDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jICAgICAg ICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAg ICAgICAgIHwgIDE3OSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlICAgICAg ICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMgICAg ICAgICAgICAgICAgfCAgIDU2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNo ZS5jICAgICAgICAgICB8ICAgODcgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jICAgICAgICAgIHwgICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAg ICAgICAgICAgICAgICAgICAgfCAgMTc1ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o ICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w X3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgIDcgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNiArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFs b2cvaGVhcC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2luZGV4LmggICAgICAgICAgICAgICAgfCAgICAxIC0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcGVyaW9kLmggICAgICAgICAgICAgICB8ICAgNTggKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19yYW5nZS5oICAgICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5j bHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaCAgICAgICAgICAgICAgfCAgICA0ICstCiBzcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgICA2ICstCiBz cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDQwICst CiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgICAy ICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAg IDIgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmggICAgICAgICAgICB8 ICAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgICAg IHwgICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaCAgICAgICAgICAgICAgICAg ICAgfCAgIDIxICsKIC4uLi90ZXN0X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYyAg ICAgICB8ICAgIDYgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9v Zi5vdXQgIHwgICAzOCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BlcmlvZHMub3V0 ICAgICAgICAgfCAgMjY3ICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3Zlcmxh cHMub3V0ICAgICB8IDQ2NTAgKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbCAgICAgICB8ICAgMzIgKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcGVyaW9kcy5zcWwgICAgICAgICAgICAgIHwgIDE3OCArCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAzMjE1ICsrKysrKysrKysr LQogNjEgZmlsZXMgY2hhbmdlZCwgMTA2MTcgaW5zZXJ0aW9ucygrKSwgMjI3IGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9k LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BlcmlvZHMub3V0CiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCmluZGV4IDNkMmEzMTBlODIxLi40MmIyMTc4NDhkNSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKQEAgLTIzMCw2ICsyMzAsMTEgQEAKICAgICAgIDxlbnRyeT5pbmZvcm1hdGlvbiBh Ym91dCBwYXJ0aXRpb24ga2V5IG9mIHRhYmxlczwvZW50cnk+CiAgICAgIDwvcm93PgogCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wZXJp b2QiPjxzdHJ1Y3RuYW1lPnBnX3BlcmlvZDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4K KyAgICAgIDxlbnRyeT5wZXJpb2RzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJv dz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXBvbGljeSI+PHN0 cnVjdG5hbWU+cGdfcG9saWN5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAg PGVudHJ5PnJvdy1zZWN1cml0eSBwb2xpY2llczwvZW50cnk+CkBAIC01NzQ5LDYgKzU3NTQs MTEzIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQm Z3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICAgYXJlIHNpbXBsZSBy ZWZlcmVuY2VzLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAg PC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKworIDxz ZWN0MSBpZD0iY2F0YWxvZy1wZy1wZXJpb2QiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf cGVyaW9kPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRh bG9nLXBnLXBlcmlvZCI+CisgICA8cHJpbWFyeT5wZ19wZXJpb2Q8L3ByaW1hcnk+CisgIDwv aW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdf cGVyaW9kPC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIGFib3V0IHN5c3Rl bSBhbmQgYXBwbGljYXRpb24gdGltZSBwZXJpb2RzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+ CisgICBQZXJpb2RzIGFyZSBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iZGRsLXBlcmlv ZHMiLz4uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+ cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKworICAgPHRncm91cCBj b2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAg IDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmll cgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJuYW1lPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFBlcmlvZCBuYW1lCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnBlcnJlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1lPnBn X2NsYXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIHRhYmxlIHRo aXMgcGVyaW9kIGJlbG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cGVyc3RhcnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyPC90eXBlPgorICAgICAgIChy ZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0 bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0 bnVtPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBUaGUgbnVtYmVyIG9mIHRoZSBzdGFydCBjb2x1bW4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+cGVyZW5kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MjwvdHlwZT4K KyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF0dHJpYnV0 ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgVGhlIG51bWJlciBvZiB0aGUgZW5kIGNvbHVtbgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJyYW5nZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDI8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1hdHRyaWJ1dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xp bms+LjxzdHJ1Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBudW1iZXIgb2YgdGhlIDxsaXRlcmFsPkdFTkVS QVRFRDwvbGl0ZXJhbD4gY29sdW1uIHRoYXQgaW1wbGVtZW50cyB0aGUgPGxpdGVyYWw+UEVS SU9EPC9saXRlcmFsPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGVy Y29uc3RyYWludDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVm ZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbnN0cmFpbnQiPjxzdHJ1Y3Ru YW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBU aGUgT0lEIG9mIHRoZSBwZXJpb2QncyA8bGl0ZXJhbD5DSEVDSzwvbGl0ZXJhbD4gY29uc3Ry YWludAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgPC90Ym9k eT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDhhYjBkZGIxMTJmLi5j MGQ1MTQ2MjU2ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTM1Niw2ICsxMzU2LDY0IEBAIENSRUFURSBUQUJM RSBjaXJjbGVzICgKICAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJkZGwt cGVyaW9kcyI+CisgIDx0aXRsZT5QZXJpb2RzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFBl cmlvZHMgYXJlIGRlZmluaXRpb25zIG9uIGEgdGFibGUgdGhhdCBhc3NvY2lhdGUgYSBwZXJp b2QgbmFtZSB3aXRoIGEgc3RhcnQKKyAgIGNvbHVtbiBhbmQgYW4gZW5kIGNvbHVtbi4gIEJv dGggY29sdW1ucyBtdXN0IGJlIG9mIGV4YWN0bHkgdGhlIHNhbWUgdHlwZQorICAgKGluY2x1 ZGluZyBjb2xsYXRpb24pLCBoYXZlIGEgYnRyZWUgb3BlcmF0b3IgY2xhc3MsIGFuZCB0aGUg c3RhcnQgY29sdW1uCisgICB2YWx1ZSBtdXN0IGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUg ZW5kIGNvbHVtbiB2YWx1ZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlcmUgYXJl IHR3byB0eXBlcyBvZiBwZXJpb2RzOiBhcHBsaWNhdGlvbiBhbmQgc3lzdGVtLiAgU3lzdGVt IHBlcmlvZHMgYXJlCisgICBkaXN0aW5ndWlzaGVkIGJ5IHRoZWlyIG5hbWUgd2hpY2ggbXVz dCBiZSA8bGl0ZXJhbD5TWVNURU1fVElNRTwvbGl0ZXJhbD4uICBBbnkKKyAgIG90aGVyIG5h bWUgaXMgYW4gYXBwbGljYXRpb24gcGVyaW9kLgorICA8L3BhcmE+CisKKyAgPHNlY3QyIGlk PSJkZGwtcGVyaW9kcy1hcHBsaWNhdGlvbi1wZXJpb2RzIj4KKyAgPHRpdGxlPkFwcGxpY2F0 aW9uIFBlcmlvZHM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnBl cmlvZDwvcHJpbWFyeT4KKyAgICA8c2Vjb25kYXJ5PmFwcGxpY2F0aW9uPC9zZWNvbmRhcnk+ CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgQXBwbGljYXRpb24gcGVyaW9k cyBhcmUgZGVmaW5lZCBvbiBhIHRhYmxlIHVzaW5nIHRoZSBmb2xsb3dpbmcgc3ludGF4Ogor ICAgPC9wYXJhPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgYmlsbGluZ19h ZGRyZXNzZXMgKAorICBjdXN0b21lcl9pZCBpbnRlZ2VyLAorICBhZGRyZXNzX2lkIGludGVn ZXIsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdG8gZGF0ZSwKKyAgPGVtcGhhc2lz PlBFUklPRCBGT1IgdmFsaWRpdHkgKHZhbGlkX2Zyb20sIHZhbGlkX3RvKTwvZW1waGFzaXM+ CispOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgPHBhcmE+CisgICAgQXBwbGljYXRpb24g cGVyaW9kcyBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGVtcG9yYWwgcHJpbWFyeSBhbmQgZm9y ZWlnbiBrZXlzLgorICAgIEFueSB0YWJsZSB3aXRoIGEgdGVtcG9yYWwgcHJpbWFyeSBrZXkg aXMgYSB0ZW1wb3JhbCB0YWJsZSBhbmQgc3VwcG9ydHMgdGVtcG9yYWwgdXBkYXRlIGFuZCBk ZWxldGUgY29tbWFuZHMuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlk PSJkZGwtcGVyaW9kcy1zeXN0ZW0tcGVyaW9kcyI+CisgICA8dGl0bGU+U3lzdGVtIFBlcmlv ZHM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnBlcmlvZDwvcHJp bWFyeT4KKyAgICA8c2Vjb25kYXJ5PnN5c3RlbTwvc2Vjb25kYXJ5PgorICAgPC9pbmRleHRl cm0+CisKKyAgIDxwYXJhPgorICAgIFBlcmlvZHMgZm9yIDxsaXRlcmFsPlNZU1RFTV9USU1F PC9saXRlcmFsPiBhcmUgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZC4KKyAgIDwvcGFyYT4K KyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtc3lzdGVtLWNvbHVt bnMiPgogICA8dGl0bGU+U3lzdGVtIENvbHVtbnM8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5m b3JtYXRpb25fc2NoZW1hLnNnbWwKaW5kZXggOTQ0MmIwNzE4YzAuLmIxZjhhMTQxM2MwIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sCkBAIC00MTcxLDYgKzQxNzEs NjkgQEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwogICA8L3RhYmxlPgogIDwvc2Vj dDE+CiAKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGVyaW9kcyI+CisgIDx0aXRsZT48bGl0 ZXJhbD5wZXJpb2RzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgdmll dyA8bGl0ZXJhbD5wYXJhbWV0ZXJzPC9saXRlcmFsPiBjb250YWlucyBpbmZvcm1hdGlvbiBh Ym91dCB0aGUKKyAgIHBlcmlvZHMgb2YgYWxsIHRhYmxlcyBpbiB0aGUgY3VycmVudCBkYXRh YmFzZS4gIFRoZSBzdGFydCBhbmQgZW5kIGNvbHVtbgorICAgbmFtZXMgYXJlIG9ubHkgc2hv d24gaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzIHRvIHRoZW0gKGJ5IHdheSBvZiBi ZWluZworICAgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwvcGFy YT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PGxpdGVyYWw+cGVyaW9kczwvbGl0ZXJhbD4g Q29sdW1uczwvdGl0bGU+CisKKyAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgPHRoZWFkPgor ICAgICA8cm93PgorICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgPGVudHJ5PkRh dGEgVHlwZTwvZW50cnk+CisgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAg ICAgPGVudHJ5PjxsaXRlcmFsPnRhYmxlX2NhdGFsb2c8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2VudHJ5PgorICAgICAg PGVudHJ5Pk5hbWUgb2YgdGhlIGRhdGFiYXNlIGNvbnRhaW5pbmcgdGhlIHBlcmlvZCAoYWx3 YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKTwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+dGFibGVfc2NoZW1hPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBzY2hlbWEgY29udGFpbmluZyB0aGUgcGVy aW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48 bGl0ZXJhbD50YWJsZV9uYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5 cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9m IHRoZSB0YWJsZSBjb250YWluaW5nIHRoZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnBlcmlvZF9uYW1lPC9saXRl cmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+ PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBwZXJpb2Q8L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnN0YXJ0X2Nv bHVtbl9uYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lk ZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBzdGFy dCBjb2x1bW4gZm9yIHRoZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPmVuZF9jb2x1bW5fbmFtZTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPjwvZW50 cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgZW5kIGNvbHVtbiBmb3IgdGhlIHBlcmlv ZDwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAg PC90YWJsZT4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXJlZmVyZW50 aWFsLWNvbnN0cmFpbnRzIj4KICAgPHRpdGxlPjxsaXRlcmFsPnJlZmVyZW50aWFsX2NvbnN0 cmFpbnRzPC9saXRlcmFsPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dt bAppbmRleCBkOGZhODZkYmExNi4uNDMyOThhYTI5ZmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3RhYmxlLnNnbWwKQEAgLTYxLDYgKzYxLDggQEAgQUxURVIgVEFCTEUgWyBJRiBFWElTVFMg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAg ICAgQUxURVIgQ09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29u c3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBERUZFUlJBQkxFIHwgTk9UIERFRkVSUkFC TEUgXSBbIElOSVRJQUxMWSBERUZFUlJFRCB8IElOSVRJQUxMWSBJTU1FRElBVEUgXQogICAg IFZBTElEQVRFIENPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bnN0cmFpbnRfbmFtZTwvcmVwbGFjZWFibGU+CiAgICAgRFJPUCBDT05TVFJBSU5UIFsgSUYg RVhJU1RTIF0gIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25h bWU8L3JlcGxhY2VhYmxlPiBbIFJFU1RSSUNUIHwgQ0FTQ0FERSBdCisgICAgQUREIFBFUklP RCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBs YWNlYWJsZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRfY29sdW1u PC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmRfY29s dW1uPC9yZXBsYWNlYWJsZT4gKSBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cGVyaW9kX29wdGlvbjwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdCisgICAgRFJP UCBQRVJJT0QgRk9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFt ZTwvcmVwbGFjZWFibGU+IFsgUkVTVFJJQ1QgfCBDQVNDQURFIF0KICAgICBESVNBQkxFIFRS SUdHRVIgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9y ZXBsYWNlYWJsZT4gfCBBTEwgfCBVU0VSIF0KICAgICBFTkFCTEUgVFJJR0dFUiBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiB8 IEFMTCB8IFVTRVIgXQogICAgIEVOQUJMRSBSRVBMSUNBIFRSSUdHRVIgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC0xMTQs MTAgKzExNiwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogCiBbIENPTlNUUkFJ TlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVw bGFjZWFibGU+IF0KIHsgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklUIF0gfAotICBVTklRVUUg WyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VU IE9WRVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFy YW1ldGVyczwvcmVwbGFjZWFibGU+IHwKLSAgUFJJTUFSWSBLRVkgKCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBb LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiBXSVRIT1VUIE9WRVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKKyAgVU5JUVVFIFsgTlVMTFMg WyBOT1QgXSBESVNUSU5DVCBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgeyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiB8IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IH0gV0lUSE9V VCBPVkVSTEFQUyBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3Bh cmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CisgIFBSSU1BUlkgS0VZICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0g WywgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxh Y2VhYmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwv cmVwbGFjZWFibGU+IH0gV0lUSE9VVCBPVkVSTEFQUyBdICkgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CiAgIEVYQ0xV REUgWyBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfbWV0aG9k PC9yZXBsYWNlYWJsZT4gXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNs dWRlX2VsZW1lbnQ8L3JlcGxhY2VhYmxlPiBXSVRIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5vcGVyYXRvcjwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiBbIFdI RVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByZWRpY2F0ZTwvcmVwbGFj ZWFibGU+ICkgXSB8Ci0gIEZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IF0gKSBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJs ZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVm Y29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0gKSBdCisgIEZP UkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKSBSRUZF UkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFj ZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKSBdCiAgICAg WyBNQVRDSCBGVUxMIHwgTUFUQ0ggUEFSVElBTCB8IE1BVENIIFNJTVBMRSBdIFsgT04gREVM RVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248 L3JlcGxhY2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIH0KIFsgREVGRVJSQUJM RSB8IE5PVCBERUZFUlJBQkxFIF0gWyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklUSUFMTFkg SU1NRURJQVRFIF0KIApAQCAtNTg2LDYgKzU4OCwyOSBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZh cmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVydGFibGUtZGVzYy1hZGQtcGVyaW9kIj4KKyAgICA8 dGVybT48bGl0ZXJhbD5BREQgUEVSSU9EIEZPUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBhZGRzIGEgbmV3IHBlcmlv ZCB0byBhIHRhYmxlIHVzaW5nIHRoZSBzYW1lIHN5bnRheCBhcworICAgICAgPHhyZWYgbGlu a2VuZD0ic3FsLWNyZWF0ZXRhYmxlIi8+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtYWx0 ZXJ0YWJsZS1kZXNjLWRyb3AtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5EUk9QIFBF UklPRCBGT1I8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGlzIGZvcm0gZHJvcHMgdGhlIHNwZWNpZmllZCBwZXJpb2Qgb24gYSB0YWJs ZS4gIFRoZSBzdGFydCBhbmQgZW5kCisgICAgICBjb2x1bW5zIHdpbGwgbm90IGJlIGRyb3Bw ZWQgYnkgdGhpcyBjb21tYW5kIGJ1dCB0aGUKKyAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRl cmFsPiBjb25zdHJhaW50IHdpbGwgYmUuICBZb3Ugd2lsbCBuZWVkIHRvIHNheQorICAgICAg PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD4gaWYgYW55dGhpbmcgb3V0c2lkZSB0aGUgdGFi bGUgZGVwZW5kcyBvbiB0aGUKKyAgICAgIGNvbHVtbi4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0i c3FsLWFsdGVydGFibGUtZGVzYy1kaXNhYmxlLWVuYWJsZS10cmlnZ2VyIj4KICAgICA8dGVy bT48bGl0ZXJhbD5ESVNBQkxFPC9saXRlcmFsPi88bGl0ZXJhbD5FTkFCTEUgWyBSRVBMSUNB IHwgQUxXQVlTIF0gVFJJR0dFUjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NvbW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzMy4uNDljMmRmOTk0NDkgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sCkBAIC00NCw2ICs0NCw3IEBAIENPTU1FTlQgT04KICAg T1BFUkFUT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yX25hbWU8 L3JlcGxhY2VhYmxlPiAoPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxlZnRfdHlw ZTwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmlnaHRf dHlwZTwvcmVwbGFjZWFibGU+KSB8CiAgIE9QRVJBVE9SIENMQVNTIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IFVTSU5HIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiB8 CiAgIE9QRVJBVE9SIEZBTUlMWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2Jq ZWN0X25hbWU8L3JlcGxhY2VhYmxlPiBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gfAorICBQRVJJT0QgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlbGF0aW9uX25hbWU8L3JlcGxhY2VhYmxlPi48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB8 CiAgIFBPTElDWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cG9saWN5X25hbWU8 L3JlcGxhY2VhYmxlPiBPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVf bmFtZTwvcmVwbGFjZWFibGU+IHwKICAgWyBQUk9DRURVUkFMIF0gTEFOR1VBR0UgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAog ICBQUk9DRURVUkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb2NlZHVyZV9u YW1lPC9yZXBsYWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+YXJnbW9kZTwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+YXJnbmFtZTwvcmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmFyZ3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKQEAgLTM0MSw2 ICszNDIsNyBAQCBDT01NRU5UIE9OIE9QRVJBVE9SIF4gKHRleHQsIHRleHQpIElTICdQZXJm b3JtcyBpbnRlcnNlY3Rpb24gb2YgdHdvIHRleHRzJzsKIENPTU1FTlQgT04gT1BFUkFUT1Ig LSAoTk9ORSwgaW50ZWdlcikgSVMgJ1VuYXJ5IG1pbnVzJzsKIENPTU1FTlQgT04gT1BFUkFU T1IgQ0xBU1MgaW50NG9wcyBVU0lORyBidHJlZSBJUyAnNCBieXRlIGludGVnZXIgb3BlcmF0 b3JzIGZvciBidHJlZXMnOwogQ09NTUVOVCBPTiBPUEVSQVRPUiBGQU1JTFkgaW50ZWdlcl9v cHMgVVNJTkcgYnRyZWUgSVMgJ2FsbCBpbnRlZ2VyIG9wZXJhdG9ycyBmb3IgYnRyZWVzJzsK K0NPTU1FTlQgT04gUEVSSU9EIG15X3RhYmxlLm15X2NvbHVtbiBJUyAnU2FsZXMgcHJvbW90 aW9uIHZhbGlkaXR5JzsKIENPTU1FTlQgT04gUE9MSUNZIG15X3BvbGljeSBPTiBteXRhYmxl IElTICdGaWx0ZXIgcm93cyBieSB1c2Vycyc7CiBDT01NRU5UIE9OIFBST0NFRFVSRSBteV9w cm9jIChpbnRlZ2VyLCBpbnRlZ2VyKSBJUyAnUnVucyBhIHJlcG9ydCc7CiBDT01NRU5UIE9O IFBVQkxJQ0FUSU9OIGFsbHRhYmxlcyBJUyAnUHVibGlzaGVzIGFsbCBvcGVyYXRpb25zIG9u IGFsbCB0YWJsZXMnOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFi bGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggY2Y3 YWE1MTM2NDEuLjMyMDU5MWU1NjZmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNn bWwKQEAgLTIzLDYgKzIzLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiA8c3lub3Bz aXM+CiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0g fCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbCiAgIHsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsg U1RPUkFHRSB7IFBMQUlOIHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8IE1BSU4gfCBERUZBVUxU IH0gXSBbIENPTVBSRVNTSU9OIDxyZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3Jl cGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNl YWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3Ry YWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQorICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlv ZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9j b25zdHJhaW50PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxlPnNvdXJj ZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9yZXBs YWNlYWJsZT4gLi4uIF0gfQogICAgIFssIC4uLiBdCkBAIC0zNyw2ICszOCw3IEBAIENSRUFU RSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VE IF0gVEFCTEUgWyBJRiBOT1QgRVhJCiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBU RU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJs ZT4KICAgICBPRiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHlwZV9uYW1lPC9y ZXBsYWNlYWJsZT4gWyAoCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsg Li4uIF0gXQorICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNl YWJsZT4KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJs ZT4gfQogICAgIFssIC4uLiBdCiApIF0KQEAgLTQ5LDYgKzUxLDcgQEAgQ1JFQVRFIFsgWyBH TE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJM RSBbIElGIE5PVCBFWEkKIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFS WSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPgogICAg IFBBUlRJVElPTiBPRiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFyZW50X3Rh YmxlPC9yZXBsYWNlYWJsZT4gWyAoCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFi bGU+IFsgLi4uIF0gXQorICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9y ZXBsYWNlYWJsZT4KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBs YWNlYWJsZT4gfQogICAgIFssIC4uLiBdCiApIF0geyBGT1IgVkFMVUVTIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFjZWFibGU+ IHwgREVGQVVMVCB9CkBAIC03MywxNCArNzYsMTkgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBM T0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5P VCBFWEkKICAgICBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJs ZT4gXSB9CiBbIERFRkVSUkFCTEUgfCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERF RkVSUkVEIHwgSU5JVElBTExZIElNTUVESUFURSBdCiAKKzxwaHJhc2U+YW5kIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+ IGlzOjwvcGhyYXNlPgorCitQRVJJT0QgRk9SIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfCBTWVNURU1fVElNRSB9ICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4s IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFi bGU+ICkKK1sgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rf b3B0aW9uPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKwogPHBocmFzZT5hbmQgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxl PiBpczo8L3BocmFzZT4KIAogWyBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPiBdCiB7IENIRUNLICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiAp IFsgTk8gSU5IRVJJVCBdIHwKLSAgVU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5DVCBd ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNl YWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVSTEFQUyBdICkgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8Ci0g IFBSSU1BUlkgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVSTEFQUyBdICkg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxh Y2VhYmxlPiB8CisgIFVOSVFVRSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLiBdIFssIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9k X25hbWU8L3JlcGxhY2VhYmxlPiB9IFdJVEhPVVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAor ICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IFdJVEhPVVQgT1ZF UkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0 ZXJzPC9yZXBsYWNlYWJsZT4gfAogICBFWENMVURFIFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+IF0gKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjbHVkZV9lbGVtZW50PC9yZXBsYWNlYWJsZT4g V0lUSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3I8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9w YXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wcmVkaWNhdGU8L3JlcGxhY2VhYmxlPiApIF0gfAotICBGT1JFSUdOIEtF WSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4u LiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPiBdICkgXQorICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFss IFBFUklPRCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwv cmVwbGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9u YW1lPC9yZXBsYWNlYWJsZT4gfSBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBF UklPRCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1l PC9yZXBsYWNlYWJsZT4gfSBdICkgXQogICAgIFsgTUFUQ0ggRlVMTCB8IE1BVENIIFBBUlRJ QUwgfCBNQVRDSCBTSU1QTEUgXSBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUKIGNsYXNzPSJw YXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERB VEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwv cmVwbGFjZWFibGU+IF0gfQogWyBERUZFUlJBQkxFIHwgTk9UIERFRkVSUkFCTEUgXSBbIElO SVRJQUxMWSBERUZFUlJFRCB8IElOSVRJQUxMWSBJTU1FRElBVEUgXQpAQCAtMTM5LDYgKzE0 NywxNCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgbmFtZSBhcyBhbnkgZXhp c3RpbmcgZGF0YSB0eXBlIGluIHRoZSBzYW1lIHNjaGVtYS4KICAgPC9wYXJhPgogCisgIDxw YXJhPgorICAgUGVyaW9kcyBteSBiZSBkZWZpbmVkIG9uIHRhYmxlcywgc3BlY2lmeWluZyB0 aGF0IHR3byBleGlzdGluZyBjb2x1bW5zCisgICByZXByZXNlbnQgc3RhcnQgYW5kIGVuZCB2 YWx1ZXMgZm9yIHRoZSBwZXJpb2QuICBQZXJpb2RzIG1heSBoYXZlIGFueSBuYW1lCisgICB0 aGF0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCBhIGNvbHVtbiBuYW1lLCBidXQgdGhlIG5hbWUK KyAgIDxsaXRlcmFsPlNZU1RFTV9USU1FPC9saXRlcmFsPiBpcyBzcGVjaWFsLCB1c2VkIGZv ciB2ZXJzaW9uaW5nIHRhYmxlcy4KKyAgIFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgeWV0IGlt cGxlbWVudGVkLiAgU2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1wZXJpb2RzIi8+IGZvciBtb3Jl IGRldGFpbHMuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBvcHRpb25hbCBjb25z dHJhaW50IGNsYXVzZXMgc3BlY2lmeSBjb25zdHJhaW50cyAodGVzdHMpIHRoYXQKICAgIG5l dyBvciB1cGRhdGVkIHJvd3MgbXVzdCBzYXRpc2Z5IGZvciBhbiBpbnNlcnQgb3IgdXBkYXRl IG9wZXJhdGlvbgpAQCAtODAzLDYgKzgxOSwzNyBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4s IFJFTQogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLXBlcmlvZCI+CisgICAgPHRlcm0+ PGxpdGVyYWw+UEVSSU9EIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVy aW9kX25hbWU8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiApIFsgV0lUSCAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4gPSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4g XSApIF08L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBBIHBlcmlvZCBkZWZpbml0aW9uIGdpdmVzIHNlbWFudGljIG1lYW5pbmcgdG8gdHdv IGV4aXN0aW5nIGNvbHVtbnMgb2YKKyAgICAgIHRoZSB0YWJsZS4gIEl0IGRlZmluZXMgYSAi c3RhcnQgY29sdW1uIiBhbmQgYW4gImVuZCBjb2x1bW4iIHdoZXJlIHRoZQorICAgICAgc3Rh cnQgdmFsdWUgaXMgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBlbmQgdmFsdWUuICBBCisgICAg ICA8bGl0ZXJhbD5DSEVDSzwvbGl0ZXJhbD4gY29uc3RyYWludCBpcyBhdXRvbWF0aWNhbGx5 IGNyZWF0ZWQgdG8gZW5mb3JjZQorICAgICAgdGhpcy4gWW91IGNhbiBzcGVjaWZ5IHRoZSBu YW1lIG9mIHRoYXQgY29uc3RyYWludCB3aXRoIHRoZQorICAgICAgPGxpdGVyYWw+Y2hlY2tf Y29uc3RyYWludF9uYW1lPC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cGVyaW9kX29wdGlvbjwvcmVwbGFjZWFibGU+LgorICAgICA8L3BhcmE+CisKKyAgICAg PHBhcmE+CisgICAgICBCb3RoIGNvbHVtbnMgbXVzdCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUg dHlwZSBhbmQgbXVzdCBoYXZlIGEgcmFuZ2UgdHlwZQorICAgICAgZGVmaW5lZCBmcm9tIHRo ZWlyIGJhc2UgdHlwZS4gIElmIHRoZXJlIGFyZSBzZXZlcmFsIHJhbmdlIHR5cGVzIGZvciB0 aGF0CisgICAgICBiYXNlIHR5cGUsIHlvdSBtdXN0IHNwZWNpZnkgd2hpY2ggb25lIHlvdSB3 YW50IGJ5IHVzaW5nIHRoZQorICAgICAgPGxpdGVyYWw+cmFuZ2V0eXBlPC9saXRlcmFsPiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX29wdGlvbjwvcmVwbGFjZWFi bGU+LgorICAgICAgQW55IGJhc2UgdHlwZSBpcyBhbGxvd2VkLCBhcyBsb25nIGFzIGl0IGhh cyBhIHJhbmdlIHR5cGUsIGFsdGhvdWdoIGl0IGlzCisgICAgICBleHBlY3RlZCB0aGF0IG1v c3QgcGVyaW9kcyB3aWxsIHVzZSB0ZW1wb3JhbCB0eXBlcyBsaWtlIDxsaXRlcmFsPnRpbWVz dGFtcHR6PC9saXRlcmFsPgorICAgICAgb3IgPGxpdGVyYWw+ZGF0ZTwvbGl0ZXJhbD4uCisg ICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIEEgaGlkZGVuIDxsaXRlcmFsPkdF TkVSQVRFRDwvbGl0ZXJhbD4gY29sdW1uIGlzIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBwZXJp b2QsCisgICAgICB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIHBlcmlvZC4gIElmIHN1Y2gg YSBjb2x1bW4gYWxyZWFkeSBleGlzdHMsIHlvdQorICAgICAgY2FuIHVzZSB0aGUgPGxpdGVy YWw+Y29sZXhpc3RzPC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGVyaW9kX29wdGlvbjwvcmVwbGFjZWFibGU+CisgICAgICB3aXRoIHZhbHVlIDxsaXRlcmFs PnRydWU8L2xpdGVyYWw+IHRvIGF2b2lkIGNyZWF0aW5nIGl0LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtY29uc3RyYWludCI+CiAgICAgPHRlcm0+PGxp dGVyYWw+Q09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3Ry YWludF9uYW1lPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRl bT4KQEAgLTExNTgsOCArMTIwNSw4IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAg ICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtcmVmZXJlbmNlcyI+ CiAgICAgPHRlcm0+PGxpdGVyYWw+UkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+ICkgXSBbIE1BVENIIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tYXRjaHR5cGU8L3JlcGxhY2VhYmxlPiBdIFsg T04gREVMRVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9h Y3Rpb248L3JlcGxhY2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFs PiAoY29sdW1uIGNvbnN0cmFpbnQpPC90ZXJtPgogCi0gICA8dGVybT48bGl0ZXJhbD5GT1JF SUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwv cmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkKLSAgICBSRUZFUkVOQ0VT IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+ IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNl YWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0gKSBdCisgICA8dGVybT48bGl0ZXJhbD5G T1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFt ZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCB7IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfSBdICkKKyAg ICBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwv cmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29s dW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKSBd CiAgICAgWyBNQVRDSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWF0Y2h0eXBl PC9yZXBsYWNlYWJsZT4gXQogICAgIFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBP TiBVUERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2Fj dGlvbjwvcmVwbGFjZWFibGU+IF08L2xpdGVyYWw+CkBAIC0xMTc5LDcgKzEyMjYsNyBAQCBX SVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19s aXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+ Ci0gICAgICBJZiB0aGUgbGFzdCBjb2x1bW4gaXMgbWFya2VkIHdpdGggPGxpdGVyYWw+UEVS SU9EPC9saXRlcmFsPiwgaXQgaXMKKyAgICAgIElmIHRoZSBsYXN0IGtleSBwYXJ0IGlzIG1h cmtlZCB3aXRoIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4sIGl0IGlzCiAgICAgICB0cmVh dGVkIGluIGEgc3BlY2lhbCB3YXkuICBXaGlsZSB0aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwv bGl0ZXJhbD4KICAgICAgIGNvbHVtbnMgYXJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eSAoYW5k IHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIG9mCiAgICAgICB0aGVtKSwgdGhlIDxsaXRl cmFsPlBFUklPRDwvbGl0ZXJhbD4gY29sdW1uIGlzIG5vdC4gIEluc3RlYWQsIHRoZQpAQCAt MTE4Nyw4ICsxMjM0LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICBy ZWNvcmRzIChiYXNlZCBvbiB0aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4gcGFy dHMgb2YgdGhlIGtleSkKICAgICAgIHdob3NlIGNvbWJpbmVkIDxsaXRlcmFsPlBFUklPRDwv bGl0ZXJhbD4gdmFsdWVzIGNvbXBsZXRlbHkgY292ZXIgdGhlCiAgICAgICByZWZlcmVuY2lu ZyByZWNvcmQncy4gIEluIG90aGVyIHdvcmRzLCB0aGUgcmVmZXJlbmNlIG11c3QgaGF2ZSBh Ci0gICAgICByZWZlcmVudCBmb3IgaXRzIGVudGlyZSBkdXJhdGlvbi4gIFRoaXMgY29sdW1u IG11c3QgYmUgYSByYW5nZSBvcgotICAgICAgbXVsdGlyYW5nZSB0eXBlLiAgSW4gYWRkaXRp b24sIHRoZSByZWZlcmVuY2VkIHRhYmxlIG11c3QgaGF2ZSBhIHByaW1hcnkKKyAgICAgIHJl ZmVyZW50IGZvciBpdHMgZW50aXJlIGR1cmF0aW9uLiAgVGhpcyBwYXJ0IG11c3QgYmUgZWl0 aGVyIGEgCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUtcGFybXMtcGVy aW9kIj48bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+PC9saW5rPgorICAgICAgb3IgYSBjb2x1 bW4gd2l0aCBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgdHlwZS4KKyAgICAgIEluIGFkZGl0aW9u LCB0aGUgcmVmZXJlbmNlZCB0YWJsZSBtdXN0IGhhdmUgYSBwcmltYXJ5CiAgICAgICBrZXkg b3IgdW5pcXVlIGNvbnN0cmFpbnQgZGVjbGFyZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUCiAg ICAgICBPVkVSTEFQUzwvbGl0ZXJhbD4uIEZpbmFsbHksIGlmIHRoZSBmb3JlaWduIGtleSBo YXMgYSBQRVJJT0QKICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1 bW5fbmFtZTwvcmVwbGFjZWFibGU+IHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21s CmluZGV4IDYzMzBmZGZmNGMwLi44NzMzYzE3ZWIyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9kZWxldGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21s CkBAIC01Nyw3ICs1Nyw4IEBAIERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAgIDwvcGFy YT4KIAogICA8cGFyYT4KLSAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJh bmdlIGNvbHVtbiwKKyAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdl IGNvbHVtbiwgb3IgYQorICAgPGxpbmsgbGlua2VuZD0iZGRsLXBlcmlvZHMtYXBwbGljYXRp b24tcGVyaW9kcyI+PGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPjwvbGluaz4sCiAgICB5b3Ug bWF5IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2Us IGFuZCB5b3VyIGRlbGV0ZSB3aWxsCiAgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3Zlcmxh cCB0aGUgZ2l2ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KICAg IGV4dGVuZHMgb3V0c2lkZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+ IGJvdW5kcywgdGhlbiB5b3VyIGRlbGV0ZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi91cGRhdGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKaW5kZXggYzg5 M2NjNzk1ZjIuLmQ0Y2UyNTc2MWI4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Vw ZGF0ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKQEAgLTU0LDcg KzU0LDggQEAgVVBEQVRFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0KICAgPC9wYXJhPgogCiAgIDxwYXJh PgotICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAor ICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLCBvciBh CisgICA8bGluayBsaW5rZW5kPSJkZGwtcGVyaW9kcy1hcHBsaWNhdGlvbi1wZXJpb2RzIj48 bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+PC9saW5rPiwKICAgIHlvdSBtYXkgc3VwcGx5IGEg PGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwgYW5kIHlvdXIgdXBk YXRlIHdpbGwKICAgIG9ubHkgYWZmZWN0IHJvd3MgdGhhdCBvdmVybGFwIHRoZSBnaXZlbiBp bnRlcnZhbC4gRnVydGhlcm1vcmUsIGlmIGEgcm93J3Mgc3BhbgogICAgZXh0ZW5kcyBvdXRz aWRlIHRoZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRzLCB0aGVu IHlvdXIgdXBkYXRlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sIGIv ZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbAppbmRleCBlNGY2MzA3NWEzNi4uMjc4YmVhOTlk MDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3RyaWdnZXIuc2dtbApAQCAtODUxLDE3ICs4NTEsMjIgQEAgdHlwZWRlZiBzdHJ1 Y3QgRm9yUG9ydGlvbk9mU3RhdGUKIHsKICAgICBOb2RlVGFnIHR5cGU7CiAKLSAgICBjaGFy ICAgKmZwX3JhbmdlTmFtZTsgICAgICAgLyogdGhlIGNvbHVtbiBuYW1lZCBpbiBGT1IgUE9S VElPTiBPRiAqLworICAgIGNoYXIgICAqZnBfcmFuZ2VOYW1lOyAgICAgICAvKiB0aGUgY29s dW1uL1BFUklPRCBuYW1lZCBpbiBGT1IgUE9SVElPTiBPRiAqLwogICAgIE9pZCAgICAgZnBf cmFuZ2VUeXBlOyAgICAgICAvKiB0aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhw cmVzc2lvbiAqLwotICAgIGludCAgICAgZnBfcmFuZ2VBdHRubzsgICAgICAvKiB0aGUgYXR0 bm8gb2YgdGhlIHJhbmdlIGNvbHVtbiAqLworICAgIGludCAgICAgZnBfcmFuZ2VBdHRubzsg ICAgICAvKiB0aGUgYXR0bm8gb2YgdGhlIHJhbmdlIGNvbHVtbiAob3IgMCBmb3IgYSBQRVJJ T0QpICovCisgICAgaW50ICAgICBmcF9wZXJpb2RTdGFydEF0dG5vOyAgICAvKiB0aGUgUEVS SU9EJ3Mgc3RhcnQgY29sdW1uIChvciAwIGZvciBhIHJhbmdlKSAqLworICAgIGludCAgICAg ZnBfcGVyaW9kRW5kQXR0bm87ICAgICAgLyogdGhlIFBFUklPRCdzIGVuZCBjb2x1bW4gKG9y IDAgZm9yIGEgcmFuZ2UpICovCiAgICAgRGF0dW0gICBmcF90YXJnZXRSYW5nZTsgICAgIC8q IHRoZSByYW5nZSBmcm9tIEZPUiBQT1JUSU9OIE9GICovCiB9IEZvclBvcnRpb25PZlN0YXRl OwogPC9wcm9ncmFtbGlzdGluZz4KIAotICAgICAgIHdoZXJlIDxzdHJ1Y3RmaWVsZD5mcF9y YW5nZU5hbWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgcmFuZ2UKKyAgICAgICB3aGVyZSA8c3Ry dWN0ZmllbGQ+ZnBfcmFuZ2VOYW1lPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIHBlcmlvZCBvciBy YW5nZQogICAgICAgIGNvbHVtbiBuYW1lZCBpbiB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04g T0Y8L2xpdGVyYWw+IGNsYXVzZSwKICAgICAgICA8c3RydWN0ZmllbGQ+ZnBfcmFuZ2VUeXBl PC9zdHJ1Y3RmaWVsZD4gaXMgaXRzIHJhbmdlIHR5cGUsCiAgICAgICAgPHN0cnVjdGZpZWxk PmZwX3JhbmdlQXR0bm88L3N0cnVjdGZpZWxkPiBpcyBpdHMgYXR0cmlidXRlIG51bWJlciwK KyAgICAgICA8c3RydWN0ZmllbGQ+ZnBfcGVyaW9kU3RhcnRBdHRubzwvc3RydWN0ZmllbGQ+ IGFuZAorICAgICAgIDxzdHJ1Y3RmaWVsZD5mcF9wZXJpb2RFbmRBdHRubzwvc3RydWN0Zmll bGQ+IGFyZSB0aGUgYXR0bm9zIG9mIHRoZSBwZXJpb2QncworICAgICAgIHN0YXJ0IGFuZCBl bmQgY29sdW1ucyAob3IgPHN5bWJvbD4wPC9zeW1ib2w+IGlmIGEgcmFuZ2UgY29sdW1uIHdh cyB1c2VkKSwKICAgICAgICBhbmQgPHN0cnVjdGZpZWxkPmZwX3RhcmdldFJhbmdlPC9zdHJ1 Y3RmaWVsZD4gaXMgYSByYW5nZXR5cGUgdmFsdWUgY3JlYXRlZAogICAgICAgIGJ5IGV2YWx1 YXRpbmcgdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMuCiAg ICAgICAgPC9wYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTU4OWE3NWZkNTMuLjNi N2FmOTY1MDMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTM5LDYgKzM5LDcgQEAgT0JK UyA9IFwKIAlwZ19uYW1lc3BhY2UubyBcCiAJcGdfb3BlcmF0b3IubyBcCiAJcGdfcGFyYW1l dGVyX2FjbC5vIFwKKwlwZ19wZXJpb2QubyBcCiAJcGdfcHJvYy5vIFwKIAlwZ19wdWJsaWNh dGlvbi5vIFwKIAlwZ19yYW5nZS5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDk1ZWIw YjEyMjc3Li5kMmQxMGEwODNjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9h Y2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC0yODI1LDYg KzI4MjUsNyBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBl IG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNU X0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKKwkJCQkJY2FzZSBP QkpFQ1RfUEVSSU9EOgogCQkJCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6 CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCQkJY2FzZSBPQkpFQ1Rf Uk9MRToKQEAgLTI5NjYsNiArMjk2Nyw3IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBh Y2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfREVGQUNMOgog CQkJCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgogCQkJCQljYXNlIE9CSkVDVF9QQVJB TUVURVJfQUNMOgorCQkJCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCQkJCWNhc2UgT0JKRUNU X1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJCQkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05f UkVMOgogCQkJCQljYXNlIE9CSkVDVF9ST0xFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YwppbmRleCAwNDg5Y2JhYmNiOC4uYzdmMjZiYzcxODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVy YXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BmYW1pbHkuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3BhcmFtZXRlcl9hY2wuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Blcmlv ZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAt NjIyLDYgKzYyMywxNSBAQCBmaW5kRGVwZW5kZW50T2JqZWN0cyhjb25zdCBPYmplY3RBZGRy ZXNzICpvYmplY3QsCiAJCQkJCQlyZXR1cm47CiAJCQkJCX0KIAorCQkJCQkvKgorCQkJCQkg KiBJZiBhIHRhYmxlIGF0dHJpYnV0ZSBpcyBhbiBpbnRlcm5hbCBwYXJ0IG9mIHNvbWV0aGlu ZyBlbHNlCisJCQkJCSAqIChlLmcuIHRoZSBHRU5FUkFURUQgY29sdW1uIHVzZWQgYnkgYSBQ RVJJT0QpLAorCQkJCQkgKiBhbmQgd2UgYXJlIGRlbGV0aW5nIHRoZSB3aG9sZSB0YWJsZSwK KwkJCQkJICogdGhlbiBpdCdzIG9rYXkuCisJCQkJCSAqLworCQkJCQlpZiAoZm91bmREZXAt Pm9ianN1YmlkICYmICFvYmplY3QtPm9iamVjdFN1YklkKQorCQkJCQkJYnJlYWs7CisKIAkJ CQkJLyoKIAkJCQkJICogV2UgcG9zdHBvbmUgYWN0dWFsbHkgaXNzdWluZyB0aGUgZXJyb3Ig bWVzc2FnZSB1bnRpbAogCQkJCQkgKiBhZnRlciB0aGlzIGxvb3AsIHNvIHRoYXQgd2UgY2Fu IG1ha2UgdGhlIGJlaGF2aW9yCkBAIC0xNDAwLDYgKzE0MTAsMTAgQEAgZG9EZWxldGlvbihj b25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJCVJlbW92ZUF0dHJE ZWZhdWx0QnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgUGVy aW9kUmVsYXRpb25JZDoKKwkJCVJlbW92ZVBlcmlvZEJ5SWQob2JqZWN0LT5vYmplY3RJZCk7 CisJCQlicmVhazsKKwogCQljYXNlIExhcmdlT2JqZWN0UmVsYXRpb25JZDoKIAkJCUxhcmdl T2JqZWN0RHJvcChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAu YwppbmRleCAwMDc4YTEyZjI2ZS4uODQ5YmExYjM5NjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBA IC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX29wY2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Bh cnRpdGlvbmVkX3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf c3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5o IgpAQCAtMjA2Miw2ICsyMDYzLDgwIEBAIFNldEF0dHJNaXNzaW5nKE9pZCByZWxpZCwgY2hh ciAqYXR0bmFtZSwgY2hhciAqdmFsdWUpCiAJdGFibGVfY2xvc2UodGFibGVyZWwsIEFjY2Vz c0V4Y2x1c2l2ZUxvY2spOwogfQogCisvKgorICogU3RvcmUgYSBwZXJpb2Qgb2YgcmVsYXRp b24gcmVsLgorICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgbmV3IHBnX3BlcmlvZCB0 dXBsZS4KKyAqLworT2lkCitTdG9yZVBlcmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIg KnBlcmlvZG5hbWUsIEF0dHJOdW1iZXIgc3RhcnRudW0sCisJCQlBdHRyTnVtYmVyIGVuZG51 bSwgQXR0ck51bWJlciByYW5nZW51bSwgT2lkIGNvbm9pZCkKK3sKKwlEYXR1bQkJdmFsdWVz W05hdHRzX3BnX3BlcmlvZF07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcGVyaW9kXTsKKwlS ZWxhdGlvbglwZ19wZXJpb2Q7CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJCW9pZDsKKwlO YW1lRGF0YQlwZXJuYW1lOworCU9iamVjdEFkZHJlc3MJbXlzZWxmLCByZWZlcmVuY2VkOwor CisJQXNzZXJ0KHJhbmdlbnVtICE9IEludmFsaWRBdHRyTnVtYmVyKTsKKworCW5hbWVzdHJj cHkoJnBlcm5hbWUsIHBlcmlvZG5hbWUpOworCisJTWVtU2V0KHZhbHVlcywgMCwgc2l6ZW9m KHZhbHVlcykpOworCU1lbVNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCisJ cGdfcGVyaW9kID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVM b2NrKTsKKworCW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChwZ19wZXJpb2QsIEF0dHJEZWZh dWx0T2lkSW5kZXhJZCwgQW51bV9wZ19wZXJpb2Rfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19w ZXJpb2Rfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKG9pZCk7CisJdmFsdWVzW0FudW1f cGdfcGVyaW9kX3Blcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmcGVybmFtZSk7CisJdmFs dWVzW0FudW1fcGdfcGVyaW9kX3BlcnJlbGlkIC0gMV0gPSBSZWxhdGlvbkdldFJlbGlkKHJl bCk7CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX3BlcnN0YXJ0IC0gMV0gPSBzdGFydG51bTsK Kwl2YWx1ZXNbQW51bV9wZ19wZXJpb2RfcGVyZW5kIC0gMV0gPSBlbmRudW07CisJdmFsdWVz W0FudW1fcGdfcGVyaW9kX3BlcnJhbmdlIC0gMV0gPSByYW5nZW51bTsKKwl2YWx1ZXNbQW51 bV9wZ19wZXJpb2RfcGVyY29uc3RyYWludCAtIDFdID0gY29ub2lkOworCisJdHVwbGUgPSBo ZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihwZ19wZXJpb2QpLCB2YWx1ZXMsIG51 bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocGdfcGVyaW9kLCB0dXBsZSk7CisKKwlPYmpl Y3RBZGRyZXNzU2V0KG15c2VsZiwgUGVyaW9kUmVsYXRpb25JZCwgb2lkKTsKKworCS8qIERy b3AgdGhlIHBlcmlvZCB3aGVuIHRoZSB0YWJsZSBpcyBkcm9wcGVkLiAqLworCU9iamVjdEFk ZHJlc3NTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJl bGlkKHJlbCkpOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwg REVQRU5ERU5DWV9BVVRPKTsKKworCS8qIEZvcmJpZCBkcm9wcGluZyB0aGUgY29sdW1ucyBv ZiB0aGUgcGVyaW9kLiAqLworCU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVs YXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIHN0YXJ0bnVtKTsKKwly ZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9S TUFMKTsKKwlPYmplY3RBZGRyZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRp b25JZCwgUmVsYXRpb25HZXRSZWxpZChyZWwpLCBlbmRudW0pOworCXJlY29yZERlcGVuZGVu Y3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJLyoK KwkgKiBUaGUgcmFuZ2UgY29sdW1uIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwKKwkg KiBidXQgd2UgY2FuJ3QgdXNlIERFUEVOREVOQ1lfSU5URVJOQUwKKwkgKiBiZWNhdXNlIGRy b3BwaW5nIHRoZSB0YWJsZSB3aWxsIGNoZWNrIGZvciBkZXBlbmRlbmNpZXMgb24gYWxsIHN1 Ym9iamVjdHMgdG9vCisJICogKGluIGZpbmREZXBlbmRlbnRPYmplY3RzKS4KKwkgKiBCdXQg aWYgd2UgbWFrZSBhbiBBVVRPIGRlcGVuZGVuY3kgb25lIHdheSB3ZSB3aWxsIGF1dG8tZHJv cCB0aGUgY29sdW1uCisJICogd2hlbiB3ZSBkcm9wIHRoZSBQRVJJT0QsCisJICogYW5kIGEg Tk9STUFMIGRlcGVuZGVuY3kgdGhlIG90aGVyIHdheSB3ZSB3aWxsIGZvcmJpZCBkcm9wcGlu ZyB0aGUgY29sdW1uIGRpcmVjdGx5LgorCSAqLworCU9iamVjdEFkZHJlc3NTdWJTZXQocmVm ZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIHJh bmdlbnVtKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJnJlZmVyZW5jZWQsICZteXNlbGYsIERF UEVOREVOQ1lfSU5URVJOQUwpOworCisJLyoKKwkgKiBUaGUgY29uc3RyYWludCBpcyBhbiBp bXBsZW1lbnRhdGlvbiBkZXRhaWwsIHNvIHdlIG1hcmsgaXQgYXMgc3VjaC4KKwkgKiAoTm90 ZSB0aGF0IG15c2VsZiBhbmQgcmVmZXJlbmNlZCBhcmUgcmV2ZXJzZWQgZm9yIHRoaXMgb25l LikKKwkgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbnN0cmFpbnRSZWxh dGlvbklkLCBjb25vaWQpOworCXJlY29yZERlcGVuZGVuY3lPbigmcmVmZXJlbmNlZCwgJm15 c2VsZiwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisKKwl0YWJsZV9jbG9zZShwZ19wZXJpb2Qs IFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG9pZDsKK30KKwogLyoKICAqIFN0b3Jl IGEgY2hlY2stY29uc3RyYWludCBleHByZXNzaW9uIGZvciB0aGUgZ2l2ZW4gcmVsYXRpb24u CiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hl bWEuc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmlu ZGV4IGM0MTQ1MTMxY2U0Li40MWYxZmIzNjczZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbApAQCAtMTIxMSw3ICsxMjExLDI4IEBAIEdSQU5U IFNFTEVDVCBPTiBwYXJhbWV0ZXJzIFRPIFBVQkxJQzsKICAqIFBFUklPRFMgdmlldwogICov CiAKLS0tIGZlYXR1cmUgbm90IHN1cHBvcnRlZAorQ1JFQVRFIFZJRVcgcGVyaW9kcyBBUwor ICAgIFNFTEVDVCBjdXJyZW50X2RhdGFiYXNlKCk6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxf aWRlbnRpZmllciBBUyB0YWJsZV9jYXRhbG9nLAorICAgICAgICAgICBuYy5uc3BuYW1lOjpp bmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIgQVMgdGFibGVfc2NoZW1hLAorICAg ICAgICAgICBjLnJlbG5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBB UyB0YWJsZV9uYW1lLAorICAgICAgICAgICBwLnBlcm5hbWU6OmluZm9ybWF0aW9uX3NjaGVt YS5zcWxfaWRlbnRpZmllciBBUyBwZXJpb2RfbmFtZSwKKyAgICAgICAgICAgQ0FTRSBXSEVO IHBnX2hhc19yb2xlKGMucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICAgICBP UiBoYXNfY29sdW1uX3ByaXZpbGVnZShzYS5hdHRyZWxpZCwgc2EuYXR0bnVtLCAnU0VMRUNU LCBJTlNFUlQsIFVQREFURSwgUkVGRVJFTkNFUycpCisgICAgICAgICAgICAgICAgVEhFTiBz YS5hdHRuYW1lOjppbmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIKKyAgICAgICAg ICAgRU5EIEFTIHN0YXJ0X2NvbHVtbl9uYW1lLAorICAgICAgICAgICBDQVNFIFdIRU4gcGdf aGFzX3JvbGUoYy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgICAgIE9SIGhh c19jb2x1bW5fcHJpdmlsZWdlKGVhLmF0dHJlbGlkLCBlYS5hdHRudW0sICdTRUxFQ1QsIElO U0VSVCwgVVBEQVRFLCBSRUZFUkVOQ0VTJykKKyAgICAgICAgICAgICAgICBUSEVOIGVhLmF0 dG5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllcgorICAgICAgICAgICBF TkQgQVMgZW5kX2NvbHVtbl9uYW1lCisgICAgRlJPTSBwZ19wZXJpb2QgQVMgcAorICAgIEpP SU4gcGdfY2xhc3MgQVMgYyBPTiBjLm9pZCA9IHAucGVycmVsaWQKKyAgICBKT0lOIHBnX25h bWVzcGFjZSBBUyBuYyBPTiBuYy5vaWQgPSBjLnJlbG5hbWVzcGFjZQorICAgIEpPSU4gcGdf YXR0cmlidXRlIEFTIHNhIE9OIChzYS5hdHRyZWxpZCwgc2EuYXR0bnVtKSA9IChwLnBlcnJl bGlkLCBwLnBlcnN0YXJ0KQorICAgIEpPSU4gcGdfYXR0cmlidXRlIEFTIGVhIE9OIChlYS5h dHRyZWxpZCwgZWEuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcmVuZCkKKyAgICBXSEVS RSBOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobmMub2lkKQorICAgICAgQU5EIGMucmVs a2luZCBJTiAoJ3InLCAndicpOworCitHUkFOVCBTRUxFQ1QgT04gcGVyaW9kcyBUTyBQVUJM SUM7CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVp bGQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDJmM2RlZDhhMGU3 Li5hMzcyZmIwYWFlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5i dWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC0yNiw2ICsy Niw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX25hbWVzcGFjZS5jJywK ICAgJ3BnX29wZXJhdG9yLmMnLAogICAncGdfcGFyYW1ldGVyX2FjbC5jJywKKyAgJ3BnX3Bl cmlvZC5jJywKICAgJ3BnX3Byb2MuYycsCiAgICdwZ19wdWJsaWNhdGlvbi5jJywKICAgJ3Bn X3JhbmdlLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA4NWE3 YjdlNjQxYS4uNDViNjI4ZGM1NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv b2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVz cy5jCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BmYW1pbHkuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3BhcmFtZXRlcl9hY2wuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtNzI3LDYg KzcyOCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQki ZG9tYWluIGNvbnN0cmFpbnQiLCBPQkpFQ1RfRE9NQ09OU1RSQUlOVAogCX0sCisJeworCQki cGVyaW9kIiwgT0JKRUNUX1BFUklPRAorCX0sCiAJewogCQkiY29udmVyc2lvbiIsIE9CSkVD VF9DT05WRVJTSU9OCiAJfSwKQEAgLTk3MCw2ICs5NzQsNyBAQCBnZXRfb2JqZWN0X2FkZHJl c3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQljYXNlIE9CSkVDVF9U UklHR0VSOgogCQkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJCWNhc2UgT0JKRUNU X1BPTElDWToKKwkJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJCQlhZGRyZXNzID0gZ2V0X29i amVjdF9hZGRyZXNzX3JlbG9iamVjdChvYmp0eXBlLCBjYXN0Tm9kZShMaXN0LCBvYmplY3Qp LAogCQkJCQkJCQkJCQkJCSAgICZyZWxhdGlvbiwgbWlzc2luZ19vayk7CiAJCQkJYnJlYWs7 CkBAIC0xNDY4LDYgKzE0NzMsMTMgQEAgZ2V0X29iamVjdF9hZGRyZXNzX3JlbG9iamVjdChP YmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iamVjdCwKIAkJCQlJbnZhbGlkT2lkOwogCQkJ YWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUEVS SU9EOgorCQkJYWRkcmVzcy5jbGFzc0lkID0gUGVyaW9kUmVsYXRpb25JZDsKKwkJCWFkZHJl c3Mub2JqZWN0SWQgPSByZWxhdGlvbiA/CisJCQkJZ2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQo cmVsb2lkLCBkZXBuYW1lLCBtaXNzaW5nX29rKSA6CisJCQkJSW52YWxpZE9pZDsKKwkJCWFk ZHJlc3Mub2JqZWN0U3ViSWQgPSAwOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUp OwogCX0KQEAgLTIyODUsNiArMjI5Nyw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19G VU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9SVUxFOgogCQljYXNlIE9CSkVDVF9UUklH R0VSOgogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgorCQljYXNlIE9CSkVDVF9QRVJJ T0Q6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgog CQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CkBAIC0yMzk1LDYgKzI0MDgsNyBAQCBjaGVj a19vYmplY3Rfb3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2Jq ZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNlIE9CSkVDVF9UUklHR0VSOgogCQljYXNlIE9C SkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CisJCWNhc2UgT0JK RUNUX1BFUklPRDoKIAkJCWlmICghb2JqZWN0X293bmVyY2hlY2soUmVsYXRpb25SZWxhdGlv bklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKSwgcm9sZWlkKSkKIAkJCQlhY2xjaGVj a19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKTsKQEAgLTMwNDMsNiArMzA1NywzOCBAQCBn ZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFBlcmlvZFJlbGF0aW9u SWQ6CisJCQl7CisJCQkJSGVhcFR1cGxlCXBlclR1cDsKKwkJCQlGb3JtX3BnX3BlcmlvZCBw ZXI7CisKKwkJCQlwZXJUdXAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELAorCQkJCQkJ CQkJCSBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhl YXBUdXBsZUlzVmFsaWQocGVyVHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHBlcmlvZCAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJ CQkJcGVyID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwKTsKKworCQkJCWlm IChPaWRJc1ZhbGlkKHBlci0+cGVycmVsaWQpKQorCQkJCXsKKwkJCQkJU3RyaW5nSW5mb0Rh dGEgcmVsOworCisJCQkJCWluaXRTdHJpbmdJbmZvKCZyZWwpOworCQkJCQlnZXRSZWxhdGlv bkRlc2NyaXB0aW9uKCZyZWwsIHBlci0+cGVycmVsaWQsIGZhbHNlKTsKKwkJCQkJYXBwZW5k U3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwZXJpb2QgJXMgb24gJXMiKSwKKwkJCQkJCQkJCSBO YW1lU3RyKHBlci0+cGVybmFtZSksIHJlbC5kYXRhKTsKKwkJCQkJcGZyZWUocmVsLmRhdGEp OworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZm ZXIsIF8oInBlcmlvZCAlcyIpLAorCQkJCQkJCQkJIE5hbWVTdHIocGVyLT5wZXJuYW1lKSk7 CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cCk7CisJCQkJYnJlYWs7CisJ CQl9CisKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlIZWFwVHVw bGUJY29uVHVwOwpAQCAtNDQ3NCw2ICs0NTIwLDEwIEBAIGdldE9iamVjdFR5cGVEZXNjcmlw dGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJ CQkJCQkJCQkgbWlzc2luZ19vayk7CiAJCQlicmVhazsKIAorCQljYXNlIFBlcmlvZFJlbGF0 aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJwZXJpb2QiKTsK KwkJCWJyZWFrOworCiAJCWNhc2UgQ29udmVyc2lvblJlbGF0aW9uSWQ6CiAJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb252ZXJzaW9uIik7CiAJCQlicmVhazsKQEAg LTQ5NzksNiArNTAyOSwyOCBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVj dEFkZHJlc3MgKm9iamVjdCwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFBlcmlvZFJl bGF0aW9uSWQ6CisJCQl7CisJCQkJSGVhcFR1cGxlCXBlclR1cDsKKwkJCQlGb3JtX3BnX3Bl cmlvZCBwZXI7CisKKwkJCQlwZXJUdXAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELAor CQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlp ZiAoIUhlYXBUdXBsZUlzVmFsaWQocGVyVHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJ ZCk7CisJCQkJcGVyID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QocGVyVHVwKTsKKwor CQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiVzIG9uICIsCisJCQkJCQkJCSBxdW90 ZV9pZGVudGlmaWVyKE5hbWVTdHIocGVyLT5wZXJuYW1lKSkpOworCQkJCWdldFJlbGF0aW9u SWRlbnRpdHkoJmJ1ZmZlciwgcGVyLT5wZXJyZWxpZCwgb2JqbmFtZSwgZmFsc2UpOworCQkJ CWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxhcHBlbmQoKm9iam5hbWUsIHBzdHJk dXAoTmFtZVN0cihwZXItPnBlcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUocGVy VHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklk OgogCQkJewogCQkJCUhlYXBUdXBsZQljb25UdXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3BlcmlvZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJpb2Qu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDY1YjViNjc1ZTMK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3BlcmlvZC5jCkBA IC0wLDAgKzEsMTMyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wZXJp b2QuYworICoJICByb3V0aW5lcyB0byBzdXBwb3J0IG1hbmlwdWxhdGlvbiBvZiB0aGUgcGdf cGVyaW9kIHJlbGF0aW9uCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIw MjEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9kLmMKKyAq CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisK KyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgi CisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImNhdGFsb2cv aW5kZXhpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgorI2luY2x1ZGUg InV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5j bHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworCisv KgorICogRGVsZXRlIGEgc2luZ2xlIHBlcmlvZCByZWNvcmQuCisgKi8KK3ZvaWQKK1JlbW92 ZVBlcmlvZEJ5SWQoT2lkIHBlcmlvZElkKQoreworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlI ZWFwVHVwbGUJdHVwOworCisJcGdfcGVyaW9kID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlv bklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShQRVJJ T0RPSUQsIE9iamVjdElkR2V0RGF0dW0ocGVyaW9kSWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlz VmFsaWQodHVwKSkgLyogc2hvdWxkIG5vdCBoYXBwZW4gKi8KKwkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAldSIsIHBlcmlvZElkKTsKKworCS8qIEZy eSB0aGUgcGVyaW9kIGl0c2VsZiAqLworCUNhdGFsb2dUdXBsZURlbGV0ZShwZ19wZXJpb2Qs ICZ0dXAtPnRfc2VsZik7CisKKwkvKiBDbGVhbiB1cCAqLworCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CisK Ky8qCisgKiBnZXRfcmVsYXRpb25fcGVyaW9kX29pZAorICoJCUZpbmQgYSBwZXJpb2Qgb24g dGhlIHNwZWNpZmllZCByZWxhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KKyAqCQlS ZXR1cm5zIHBlcmlvZCdzIE9JRC4KKyAqLworT2lkCitnZXRfcmVsYXRpb25fcGVyaW9kX29p ZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIgKnBlcm5hbWUsIGJvb2wgbWlzc2luZ19vaykKK3sK KwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJSGVhcFR1cGxlCXR1cGxlOworCVN5c1NjYW5EZXNj IHNjYW47CisJU2NhbktleURhdGEgc2tleVsyXTsKKwlPaWQJCQlwZXJPaWQgPSBJbnZhbGlk T2lkOworCisJLyogRmV0Y2ggdGhlIHBlcmlvZCB0dXBsZSBmcm9tIHBnX3BlcmlvZC4gKi8K KwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJl TG9jayk7CisKKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9w ZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2Jq ZWN0SWRHZXREYXR1bShyZWxpZCkpOworCVNjYW5LZXlJbml0KCZza2V5WzFdLAorCQkJCUFu dW1fcGdfcGVyaW9kX3Blcm5hbWUsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX05B TUVFUSwKKwkJCQlDU3RyaW5nR2V0RGF0dW0ocGVybmFtZSkpOworCisJc2NhbiA9IHN5c3Rh YmxlX2JlZ2luc2NhbihwZ19wZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUs CisJCQkJCQkJICBOVUxMLCAyLCBza2V5KTsKKworCS8qIFRoZXJlIGNhbiBiZSBhdCBtb3N0 IG9uZSBtYXRjaGluZyByb3cgKi8KKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5 c3RhYmxlX2dldG5leHQoc2NhbikpKQorCQlwZXJPaWQgPSAoKEZvcm1fcGdfcGVyaW9kKSBH RVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwor CS8qIElmIG5vIHN1Y2ggcGVyaW9kIGV4aXN0cywgY29tcGxhaW4gKi8KKwlpZiAoIU9pZElz VmFsaWQocGVyT2lkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInBlcmlv ZCBcIiVzXCIgZm9yIHRhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlwZXJu YW1lLCBnZXRfcmVsX25hbWUocmVsaWQpKSkpOworCisJdGFibGVfY2xvc2UocGdfcGVyaW9k LCBBY2Nlc3NTaGFyZUxvY2spOworCisJcmV0dXJuIHBlck9pZDsKK30KKworLyoKKyAqIGdl dF9wZXJpb2RfYXR0bm9zCisgKgkJR2V0IHRoZSBhdHRubyBvZiB0aGUgR0VORVJBVEVEIHJh bmdldHlwZSBjb2x1bW4KKyAqCQlmb3IgYWxsIFBFUklPRHMgaW4gdGhpcyB0YWJsZS4KKyAq LworZXh0ZXJuIEJpdG1hcHNldAorKmdldF9wZXJpb2RfYXR0bm9zKE9pZCByZWxpZCkKK3sK KwlCaXRtYXBzZXQgKmF0dG5vcyA9IE5VTEw7CisJUmVsYXRpb24JcGdfcGVyaW9kOworCUhl YXBUdXBsZQl0dXBsZTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIHNrZXlb MV07CisKKwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vz c1NoYXJlTG9jayk7CisKKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQlBbnVtX3BnX3Bl cmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJ CQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCkpOworCisJc2NhbiA9IHN5c3RhYmxlX2JlZ2lu c2NhbihwZ19wZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUsCisJCQkJCQkJ ICBOVUxMLCAxLCBza2V5KTsKKworCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0g c3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJpb2Qg PSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJYXR0bm9zID0gYm1z X2FkZF9tZW1iZXIoYXR0bm9zLCBwZXJpb2QtPnBlcnJhbmdlKTsKKwl9CisKKwlzeXN0YWJs ZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgQWNjZXNzU2hhcmVM b2NrKTsKKworCXJldHVybiBhdHRub3M7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3NxbF9mZWF0dXJlcy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0 dXJlcy50eHQKaW5kZXggYzAwMmYzNzIwMmYuLjlhNzRiMGZhMjQwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CkBAIC00NDgsNyArNDQ4LDcgQEAgVDE3NglTZXF1 ZW5jZSBnZW5lcmF0b3Igc3VwcG9ydAkJCU5PCXN1cHBvcnRlZCBleGNlcHQgZm9yIE5FWFQg VkFMVUUgRk9SCiBUMTc3CVNlcXVlbmNlIGdlbmVyYXRvciBzdXBwb3J0OiBzaW1wbGUgcmVz dGFydCBvcHRpb24JCQlZRVMJCiBUMTc4CUlkZW50aXR5IGNvbHVtbnM6IHNpbXBsZSByZXN0 YXJ0IG9wdGlvbgkJCVlFUwkKIFQxODAJU3lzdGVtLXZlcnNpb25lZCB0YWJsZXMJCQlOTwkK LVQxODEJQXBwbGljYXRpb24tdGltZSBwZXJpb2QgdGFibGVzCQkJTk8JCitUMTgxCUFwcGxp Y2F0aW9uLXRpbWUgcGVyaW9kIHRhYmxlcwkJCVlFUwkKIFQxOTEJUmVmZXJlbnRpYWwgYWN0 aW9uIFJFU1RSSUNUCQkJWUVTCQogVDIwMAlUcmlnZ2VyIERETAkJCU5PCXNpbWlsYXIgYnV0 IG5vdCBmdWxseSBjb21wYXRpYmxlCiBUMjAxCUNvbXBhcmFibGUgZGF0YSB0eXBlcyBmb3Ig cmVmZXJlbnRpYWwgY29uc3RyYWludHMJCQlZRVMJCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb21tZW50LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50LmMK aW5kZXggZTlkNTBmYzdkODcuLjA1ZmVmYjViNWNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb21tZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29tbWVu dC5jCkBAIC0xMDIsNiArMTAyLDE2IEBAIENvbW1lbnRPYmplY3QoQ29tbWVudFN0bXQgKnN0 bXQpCiAJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9uKSksCiAJCQkJ CQkgZXJyZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRlZChyZWxhdGlvbi0+cmRfcmVsLT5y ZWxraW5kKSkpOwogCQkJYnJlYWs7CisKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgorCQkJLyog UGVyaW9kcyBjYW4gb25seSBnbyBvbiB0YWJsZXMgKi8KKwkJCWlmIChyZWxhdGlvbi0+cmRf cmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04pCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkJIGVy cm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlIiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsYXRpb24pKSkpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWJy ZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDg1ZWVjN2UzOTQ3Li4z ZDc4NzlmOTNjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC01MDQsNiArNTA0 LDcgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2Rl ICpvYmplY3QpCiAJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNU X0xBUkdFT0JKRUNUOgogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9C SkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJ Y2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJB SU5UOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IDA1YTZkZTY4 YmEzLi44MWRhYTI2OGIxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZl bnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YwpAQCAtMjE3NCw2ICsyMTc0LDcgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0 VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9P UEVSQVRPUjoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2UgT0JKRUNUX1BFUklP RDoKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoK IAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgpAQCAtMjI1OCw2ICsyMjU5 LDcgQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkK IAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQlj YXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCWNh c2UgT0JKRUNUX1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2Ug T0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5j CmluZGV4IDU2MDcyNzNiZjlmLi5hZjcxNzcxNzljZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNs YWJlbC5jCkBAIC03OSw2ICs3OSw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9i amVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JK RUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgorCQljYXNlIE9C SkVDVF9QRVJJT0Q6CiAJCWNhc2UgT0JKRUNUX1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfUFVC TElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDAyYWRjMDg5ODU4Li4yOTI2MjhmOWZl NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX2xhcmdlb2JqZWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wY2xhc3MuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wdWJsaWNhdGlvbl9yZWwuaCIKQEAgLTE1NSw2ICsxNTYsMTEgQEAgdHlwZWRlZiBlbnVt IEFsdGVyVGFibGVQYXNzCiAJQVRfUEFTU19PTERfSU5ERVgsCQkJLyogcmUtYWRkIGV4aXN0 aW5nIGluZGV4ZXMgKi8KIAlBVF9QQVNTX09MRF9DT05TVFIsCQkJLyogcmUtYWRkIGV4aXN0 aW5nIGNvbnN0cmFpbnRzICovCiAJLyogV2UgY291bGQgc3VwcG9ydCBhIFJFTkFNRSBDT0xV TU4gcGFzcyBoZXJlLCBidXQgbm90IGN1cnJlbnRseSB1c2VkICovCisJLyoKKwkgKiBXZSBt dXN0IGFkZCBQRVJJT0RzIGFmdGVyIGNvbHVtbnMsIGluIGNhc2UgdGhleSByZWZlcmVuY2Ug YSBuZXdseS1hZGRlZCBjb2x1bW4sCisJICogYW5kIGJlZm9yZSBjb25zdHJhaW50cywgaW4g Y2FzZSBhIG5ld2x5LWFkZGVkIFBLL0ZLIHJlZmVyZW5jZXMgdGhlbS4KKwkgKi8KKwlBVF9Q QVNTX0FERF9QRVJJT0QsCQkJLyogQUREIFBFUklPRCAqLwogCUFUX1BBU1NfQUREX0NPTlNU UiwJCQkvKiBBREQgY29uc3RyYWludHMgKGluaXRpYWwgZXhhbWluYXRpb24pICovCiAJQVRf UEFTU19DT0xfQVRUUlMsCQkJLyogc2V0IGNvbHVtbiBhdHRyaWJ1dGVzLCBlZyBOT1QgTlVM TCAqLwogCUFUX1BBU1NfQUREX0lOREVYQ09OU1RSLAkvKiBBREQgaW5kZXgtYmFzZWQgY29u c3RyYWludHMgKi8KQEAgLTM2NCw2ICszNzAsNyBAQCBzdGF0aWMgdm9pZCBSYW5nZVZhckNh bGxiYWNrRm9yVHJ1bmNhdGUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJ CU9pZCByZWxJZCwgT2lkIG9sZFJlbElkLCB2b2lkICphcmcpOwogc3RhdGljIExpc3QgKk1l cmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMsIGNoYXIg cmVscGVyc2lzdGVuY2UsCiAJCQkJCQkJIGJvb2wgaXNfcGFydGl0aW9uLCBMaXN0ICoqc3Vw Y29uc3RyKTsKK3N0YXRpYyBMaXN0ICpNZXJnZVBlcmlvZHMoY2hhciAqcmVsbmFtZSwgTGlz dCAqcGVyaW9kcywgTGlzdCAqdGFibGVFbHRzLCBMaXN0ICpzdXBlcnMpOwogc3RhdGljIExp c3QgKk1lcmdlQ2hlY2tDb25zdHJhaW50KExpc3QgKmNvbnN0cmFpbnRzLCBjb25zdCBjaGFy ICpuYW1lLCBOb2RlICpleHByKTsKIHN0YXRpYyB2b2lkIE1lcmdlQ2hpbGRBdHRyaWJ1dGUo TGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgaW50IG5ld2NvbF9hdHRubywg Y29uc3QgQ29sdW1uRGVmICpuZXdkZWYpOwogc3RhdGljIENvbHVtbkRlZiAqTWVyZ2VJbmhl cml0ZWRBdHRyaWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgY29u c3QgQ29sdW1uRGVmICpuZXdkZWYpOwpAQCAtNDQ2LDYgKzQ1Myw4IEBAIHN0YXRpYyBPYmpl Y3RBZGRyZXNzIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJ bmZvICp0YWIsCiAJCQkJCQkJCQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0 KTsKIHN0YXRpYyBib29sIGNoZWNrX2Zvcl9jb2x1bW5fbmFtZV9jb2xsaXNpb24oUmVsYXRp b24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1lLAogCQkJCQkJCQkJCQlib29sIGlmX25vdF9l eGlzdHMpOworc3RhdGljIGJvb2wgY2hlY2tfZm9yX3BlcmlvZF9uYW1lX2NvbGxpc2lvbihS ZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcm5hbWUsCisJCQkJCQkJCQkJCWJvb2wgY29s ZXhpc3RzLCBib29sIGlmX25vdF9leGlzdHMpOwogc3RhdGljIHZvaWQgYWRkX2NvbHVtbl9k YXRhdHlwZV9kZXBlbmRlbmN5KE9pZCByZWxpZCwgaW50MzIgYXR0bnVtLCBPaWQgdHlwaWQp Owogc3RhdGljIHZvaWQgYWRkX2NvbHVtbl9jb2xsYXRpb25fZGVwZW5kZW5jeShPaWQgcmVs aWQsIGludDMyIGF0dG51bSwgT2lkIGNvbGxpZCk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBB VEV4ZWNEcm9wTm90TnVsbChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsIExP Q0tNT0RFIGxvY2ttb2RlKTsKQEAgLTQ2NCw2ICs0NzMsMTIgQEAgc3RhdGljIE9iamVjdEFk ZHJlc3MgQVRFeGVjQ29sdW1uRGVmYXVsdChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNv bE5hbWUsCiAJCQkJCQkJCQkJIE5vZGUgKm5ld0RlZmF1bHQsIExPQ0tNT0RFIGxvY2ttb2Rl KTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0Nvb2tlZENvbHVtbkRlZmF1bHQoUmVs YXRpb24gcmVsLCBBdHRyTnVtYmVyIGF0dG51bSwKIAkJCQkJCQkJCQkJICAgTm9kZSAqbmV3 RGVmYXVsdCk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4ZWNBZGRQZXJpb2QoUmVsYXRp b24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCwKKwkJCQkJCQkJCSBBbHRlclRhYmxlVXRpbGl0 eUNvbnRleHQgKmNvbnRleHQpOworc3RhdGljIHZvaWQgQVRFeGVjRHJvcFBlcmlvZChSZWxh dGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlvZE5hbWUsCisJCQkJCQkJIERyb3BCZWhhdmlv ciBiZWhhdmlvciwKKwkJCQkJCQkgYm9vbCByZWN1cnNlLCBib29sIHJlY3Vyc2luZywKKwkJ CQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0Fk ZElkZW50aXR5KFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkJCQkJCQkJ CSAgIE5vZGUgKmRlZiwgTE9DS01PREUgbG9ja21vZGUsIGJvb2wgcmVjdXJzZSwgYm9vbCBy ZWN1cnNpbmcpOwogc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjU2V0SWRlbnRpdHkoUmVs YXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLApAQCAtNjY0LDYgKzY3OSwxMCBAQCBz dGF0aWMgTGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVmcyhSZWxhdGlvbiBwYXJ0aXRp b24pOwogc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9yZWlnbktleVJlZnMoUmVsYXRp b24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0ZUNvbXByZXNzaW9uKE9p ZCBhdHR0eXBpZCwgY29uc3QgY2hhciAqY29tcHJlc3Npb24pOwogc3RhdGljIGNoYXIgR2V0 QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vtb2Rl KTsKK3N0YXRpYyB2b2lkIEFkZFJlbGF0aW9uTmV3UGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVy aW9kRGVmICpwZXJpb2QpOworc3RhdGljIHZvaWQgVmFsaWRhdGVQZXJpb2QoUmVsYXRpb24g cmVsLCBQZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMgQ29uc3RyYWludCAqbWFrZV9jb25z dHJhaW50X2Zvcl9wZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCk7Citz dGF0aWMgQ29sdW1uRGVmICptYWtlX3JhbmdlX2NvbHVtbl9mb3JfcGVyaW9kKFBlcmlvZERl ZiAqcGVyaW9kKTsKIAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04OTEsNiArOTEwLDc5IEBAIERl ZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVy SWQsCiAJCQkJCQlzdG10LT5wYXJ0Ym91bmQgIT0gTlVMTCwKIAkJCQkJCSZvbGRfY29uc3Ry YWludHMpOwogCisJLyoKKwkgKiBVc2luZyB0aGUgY29sdW1uIGxpc3QgKGluY2x1ZGluZyBp bmhlcml0ZWQgY29sdW1ucyksCisJICogZmluZCB0aGUgc3RhcnQvZW5kIGNvbHVtbnMgZm9y IGVhY2ggcGVyaW9kLgorCSAqIFBFUklPRHMgc2hvdWxkIGJlIGluaGVyaXRlZCB0b28gKGJ1 dCBhcmVuJ3QgeWV0KS4KKwkgKi8KKwlzdG10LT5wZXJpb2RzID0gTWVyZ2VQZXJpb2RzKHJl bG5hbWUsIHN0bXQtPnBlcmlvZHMsIHN0bXQtPnRhYmxlRWx0cywgaW5oZXJpdE9pZHMpOwor CisJLyoKKwkgKiBGb3IgZWFjaCBQRVJJT0Qgd2UgbmVlZCBhIEdFTkVSQVRFRCBjb2x1bW4u CisJICogVXN1YWxseSB3ZSBtdXN0IGNyZWF0ZSB0aGlzLCBzbyB3ZSBhZGQgaXQgdG8gdGFi bGVFbHRzLgorCSAqIElmIHRoZSB1c2VyIHNheXMgdGhlIGNvbHVtbiBhbHJlYWR5IGV4aXN0 cywKKwkgKiBtYWtlIHN1cmUgaXQgaXMgc2Vuc2libGUuCisJICogVGhlc2UgY29sdW1ucyBh cmUgbm90IGluaGVyaXRlZCwKKwkgKiBzbyB3ZSBkb24ndCB3b3JyeSBhYm91dCBjb25mbGlj dHMgaW4gdGFibGVFbHRzLgorCSAqCisJICogV2UgYWxsb3cgdGhpcyBjb2xleGlzdHMgb3B0 aW9uIHRvIHN1cHBvcnQgcGdfdXBncmFkZSwKKwkgKiBzbyB3ZSBoYXZlIG1vcmUgY29udHJv bCBvdmVyIHRoZSBHRU5FUkFURUQgY29sdW1uCisJICogKHdob3NlIGF0dG51bSBtdXN0IG1h dGNoIHRoZSBvbGQgdmFsdWUpLgorCSAqLworCWZvcmVhY2gobGlzdHB0ciwgc3RtdC0+cGVy aW9kcykKKwl7CisJCVBlcmlvZERlZiAqcGVyaW9kID0gKFBlcmlvZERlZiAqKSBsZmlyc3Qo bGlzdHB0cik7CisKKwkJaWYgKHBlcmlvZC0+Y29sZXhpc3RzKQorCQl7CisJCQlMaXN0Q2Vs bCAqY2VsbDsKKwkJCWJvb2wgZm91bmQgPSBmYWxzZTsKKworCQkJZm9yZWFjaChjZWxsLCBz dG10LT50YWJsZUVsdHMpCisJCQl7CisJCQkJQ29sdW1uRGVmICAqY29sRGVmID0gbGZpcnN0 KGNlbGwpOworCisJCQkJaWYgKHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsIGNvbERlZi0+ Y29sbmFtZSkgPT0gMCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIExvdHMgdG8gY2hlY2sg aGVyZToKKwkJCQkJICogSXQgbXVzdCBiZSBHRU5FUkFURUQgQUxXQVlTLAorCQkJCQkgKiBp dCBtdXN0IGhhdmUgdGhlIHJpZ2h0IGV4cHJlc3Npb24sCisJCQkJCSAqIGl0IG11c3QgYmUg dGhlIHJpZ2h0IHR5cGUsCisJCQkJCSAqIGl0IG11c3QgYmUgTk9UIE5VTEwsCisJCQkJCSAq IGl0IG11c3Qgbm90IGJlIGluaGVyaXRlZC4KKwkJCQkJICovCisJCQkJCWlmIChjb2xEZWYt PmdlbmVyYXRlZCA9PSAnXDAnKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVy aW9kICVzIHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbiIsIHBlcmlvZC0+cGVyaW9kbmFt ZSkpKTsKKworCQkJCQlpZiAoY29sRGVmLT5nZW5lcmF0ZWQgIT0gQVRUUklCVVRFX0dFTkVS QVRFRF9TVE9SRUQpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMg dXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBub3QgU1RPUkVEIiwgcGVyaW9kLT5w ZXJpb2RuYW1lKSkpOworCisJCQkJCS8vIFRPRE86IGNoZWNrIHRoZSBHRU5FUkFURUQgZXhw cmVzc2lvbiBhbHNvLgorCisJCQkJCWlmICghY29sRGVmLT5pc19ub3RfbnVsbCAmJiAhSXNC aW5hcnlVcGdyYWRlKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVz IHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzIiwgcGVyaW9kLT5w ZXJpb2RuYW1lKSkpOworCisJCQkJCWlmIChwZXJpb2QtPnJuZ3R5cGlkICE9IHR5cGVuYW1l VHlwZUlkKE5VTEwsIGNvbERlZi0+dHlwZU5hbWUpKQorCQkJCQkJZXJlcG9ydChFUlJPUiwg KGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHdpdGggdGhlIHdy b25nIHR5cGUiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJaWYgKCFjb2xEZWYt PmlzX2xvY2FsKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVz ZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgaW5oZXJpdGVkIiwgcGVyaW9kLT5wZXJp b2RuYW1lKSkpOworCisJCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQl9CisJCQl9CisKKwkJCWlm ICghZm91bmQpCisJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiTm8gY29sdW1uIGZvdW5k IHdpdGggbmFtZSAlcyIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKwkJfQorCQllbHNlCisJ CXsKKwkJCUNvbHVtbkRlZiAqY29sID0gbWFrZV9yYW5nZV9jb2x1bW5fZm9yX3BlcmlvZChw ZXJpb2QpOworCQkJc3RtdC0+dGFibGVFbHRzID0gbGFwcGVuZChzdG10LT50YWJsZUVsdHMs IGNvbCk7CisJCX0KKwl9CisKIAkvKgogCSAqIENyZWF0ZSBhIHR1cGxlIGRlc2NyaXB0b3Ig ZnJvbSB0aGUgcmVsYXRpb24gc2NoZW1hLiAgTm90ZSB0aGF0IHRoaXMKIAkgKiBkZWFscyB3 aXRoIGNvbHVtbiBuYW1lcywgdHlwZXMsIGFuZCBub3QtbnVsbCBjb25zdHJhaW50cywgYnV0 IG5vdApAQCAtMTI2Niw2ICsxMzU4LDIxIEBAIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQg KnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJCUFkZFJlbGF0aW9uTmV3Q29u c3RyYWludHMocmVsLCBOSUwsIHN0bXQtPmNvbnN0cmFpbnRzLAogCQkJCQkJCQkgIHRydWUs IHRydWUsIGZhbHNlLCBxdWVyeVN0cmluZyk7CiAKKwkvKgorCSAqIENyZWF0ZSBwZXJpb2Rz IGZvciB0aGUgdGFibGUuIFRoaXMgbXVzdCBjb21lIGFmdGVyIHdlIGNyZWF0ZSBjb2x1bW5z CisJICogYW5kIGJlZm9yZSB3ZSBjcmVhdGUgaW5kZXggY29uc3RyYWludHMuIEl0IHdpbGwg YXV0b21hdGljYWxseSBjcmVhdGUKKwkgKiBhIENIRUNLIGNvbnN0cmFpbnQgZm9yIHRoZSBw ZXJpb2QuCisJICovCisJZm9yZWFjaChsaXN0cHRyLCBzdG10LT5wZXJpb2RzKQorCXsKKwkJ UGVyaW9kRGVmICpwZXJpb2QgPSAoUGVyaW9kRGVmICopIGxmaXJzdChsaXN0cHRyKTsKKwor CQkvKiBEb24ndCB1cGRhdGUgdGhlIGNvdW50IG9mIGNoZWNrIGNvbnN0cmFpbnRzIHR3aWNl ICovCisJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwkJQWRkUmVsYXRpb25OZXdQ ZXJpb2QocmVsLCBwZXJpb2QpOworCX0KKwogCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywg UmVsYXRpb25SZWxhdGlvbklkLCByZWxhdGlvbklkKTsKIAogCS8qCkBAIC0xMzYzLDYgKzE0 NzAsMzEyIEBAIEJ1aWxkRGVzY0ZvclJlbGF0aW9uKGNvbnN0IExpc3QgKmNvbHVtbnMpCiAJ cmV0dXJuIGRlc2M7CiB9CiAKKy8qCisgKiBtYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZAor ICoKKyAqIEJ1aWxkcyBhIENIRUNLIENvbnN0cmFpbnQgdG8gZW5zdXJlIHN0YXJ0IDwgZW5k LgorICogUmV0dXJucyB0aGUgQ0hFQ0sgQ29uc3RyYWludC4KKyAqIEFsc28gZmlsbHMgaW4g cGVyaW9kLT5jb25zdHJhaW50bmFtZSBpZiBuZWVkZWQuCisgKgorICogSWYgZWl0aGVyIGJv dW5kIGlzIE5VTEwsIHRoZSBjb25zdHJhaW50IHBhc3NlcworICogKHNpbmNlIHRoYXQgaW5k aWNhdGVzIGFuIHVuYm91bmRlZCByYW5nZSkuCisgKi8KK3N0YXRpYyBDb25zdHJhaW50ICoK K21ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpw ZXJpb2QpCit7CisJQ29sdW1uUmVmICAqc2NvbCwgKmVjb2w7CisJQ29uc3RyYWludCAqY29u c3RyOworCVR5cGVDYWNoZUVudHJ5ICp0eXBlOworCisJaWYgKHBlcmlvZC0+Y29uc3RyYWlu dG5hbWUgPT0gTlVMTCkKKwkJcGVyaW9kLT5jb25zdHJhaW50bmFtZSA9IENob29zZUNvbnN0 cmFpbnROYW1lKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksCisJCQkJCQkJCQkJCQkJ ICBwZXJpb2QtPnBlcmlvZG5hbWUsCisJCQkJCQkJCQkJCQkJICAiY2hlY2siLAorCQkJCQkJ CQkJCQkJCSAgUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSwKKwkJCQkJCQkJCQkJCQkgIE5J TCk7CisJc2NvbCA9IG1ha2VOb2RlKENvbHVtblJlZik7CisJc2NvbC0+ZmllbGRzID0gbGlz dF9tYWtlMShtYWtlU3RyaW5nKHBzdHJkdXAocGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisJ c2NvbC0+bG9jYXRpb24gPSAwOworCisJZWNvbCA9IG1ha2VOb2RlKENvbHVtblJlZik7CisJ ZWNvbC0+ZmllbGRzID0gbGlzdF9tYWtlMShtYWtlU3RyaW5nKHBzdHJkdXAocGVyaW9kLT5l bmRjb2xuYW1lKSkpOworCWVjb2wtPmxvY2F0aW9uID0gMDsKKworCXR5cGUgPSBsb29rdXBf dHlwZV9jYWNoZShwZXJpb2QtPmNvbHR5cGlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKwlpZiAo dHlwZS0+bHRfb3ByID09IEludmFsaWRPaWQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgY2Fubm90IGJlIHVzZWQgaW4gYSBQRVJJT0QgYmVjYXVzZSBpdHMgdHlw ZSAlcyBoYXMgbm8gbGVzcyB0aGFuIG9wZXJhdG9yIiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRj b2xuYW1lLCBmb3JtYXRfdHlwZV9iZShwZXJpb2QtPmNvbHR5cGlkKSkpKTsKKworCWNvbnN0 ciA9IG1ha2VOb2RlKENvbnN0cmFpbnQpOworCWNvbnN0ci0+Y29udHlwZSA9IENPTlNUUl9D SEVDSzsKKwljb25zdHItPmNvbm5hbWUgPSBwZXJpb2QtPmNvbnN0cmFpbnRuYW1lOworCWNv bnN0ci0+ZGVmZXJyYWJsZSA9IGZhbHNlOworCWNvbnN0ci0+aW5pdGRlZmVycmVkID0gZmFs c2U7CisJY29uc3RyLT5sb2NhdGlvbiA9IC0xOworCWNvbnN0ci0+aXNfbm9faW5oZXJpdCA9 IGZhbHNlOworCWNvbnN0ci0+cmF3X2V4cHIgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHBy KEFFWFBSX09QLAorCQkJCQkJCQkJCQkJIGdldF9vcG5hbWUodHlwZS0+bHRfb3ByKSwKKwkJ CQkJCQkJCQkJCSAoTm9kZSAqKSBzY29sLAorCQkJCQkJCQkJCQkJIChOb2RlICopIGVjb2ws CisJCQkJCQkJCQkJCQkgMCk7CisJY29uc3RyLT5jb29rZWRfZXhwciA9IE5VTEw7CisJY29u c3RyLT5za2lwX3ZhbGlkYXRpb24gPSBmYWxzZTsKKwljb25zdHItPmluaXRpYWxseV92YWxp ZCA9IHRydWU7CisKKwlyZXR1cm4gY29uc3RyOworfQorCisvKgorICogbWFrZV9yYW5nZV9j b2x1bW5fZm9yX3BlcmlvZAorICoKKyAqIEJ1aWxkcyBhIEdFTkVSQVRFRCBBTFdBWVMgcmFu Z2UgY29sdW1uIGJhc2VkIG9uIHRoZSBQRVJJT0QKKyAqIHN0YXJ0L2VuZCBjb2x1bW5zLiBS ZXR1cm5zIHRoZSBDb2x1bW5EZWYuCisgKi8KK0NvbHVtbkRlZiAqCittYWtlX3JhbmdlX2Nv bHVtbl9mb3JfcGVyaW9kKFBlcmlvZERlZiAqcGVyaW9kKQoreworCWNoYXIgKnJhbmdlX3R5 cGVfbmFtZXNwYWNlOworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZTsKKwlDb2x1bW5EZWYgKmNv bCA9IG1ha2VOb2RlKENvbHVtbkRlZik7CisJQ29sdW1uUmVmICpzdGFydHZhciwgKmVuZHZh cjsKKwlFeHByICpyYW5nZUNvbnN0cnVjdG9yOworCisJaWYgKCFnZXRfdHlwbmFtZV9hbmRf bmFtZXNwYWNlKHBlcmlvZC0+cm5ndHlwaWQsICZyYW5nZV90eXBlX25hbWUsICZyYW5nZV90 eXBlX25hbWVzcGFjZSkpCisJCWVsb2coRVJST1IsICJtaXNzaW5nIHJhbmdlIHR5cGUgJWQi LCBwZXJpb2QtPnJuZ3R5cGlkKTsKKworCXN0YXJ0dmFyID0gbWFrZU5vZGUoQ29sdW1uUmVm KTsKKwlzdGFydHZhci0+ZmllbGRzID0gbGlzdF9tYWtlMShtYWtlU3RyaW5nKHBzdHJkdXAo cGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisJZW5kdmFyID0gbWFrZU5vZGUoQ29sdW1uUmVm KTsKKwllbmR2YXItPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhwc3RyZHVwKHBl cmlvZC0+ZW5kY29sbmFtZSkpKTsKKwlyYW5nZUNvbnN0cnVjdG9yID0gKEV4cHIgKikgbWFr ZUZ1bmNDYWxsKAorCQkJbGlzdF9tYWtlMihtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZXNw YWNlKSwgbWFrZVN0cmluZyhyYW5nZV90eXBlX25hbWUpKSwKKwkJCWxpc3RfbWFrZTIoc3Rh cnR2YXIsIGVuZHZhciksCisJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCXBlcmlvZC0+ bG9jYXRpb24pOworCisJY29sLT5jb2xuYW1lID0gcHN0cmR1cChwZXJpb2QtPnBlcmlvZG5h bWUpOworCWNvbC0+dHlwZU5hbWUgPSBtYWtlVHlwZU5hbWUocmFuZ2VfdHlwZV9uYW1lKTsK Kwljb2wtPmNvbXByZXNzaW9uID0gTlVMTDsKKwljb2wtPmluaGNvdW50ID0gMDsKKwljb2wt PmlzX2xvY2FsID0gdHJ1ZTsKKwljb2wtPmlzX25vdF9udWxsID0gdHJ1ZTsKKwljb2wtPmlz X2Zyb21fdHlwZSA9IGZhbHNlOworCWNvbC0+c3RvcmFnZSA9IDA7CisJY29sLT5zdG9yYWdl X25hbWUgPSBOVUxMOworCWNvbC0+cmF3X2RlZmF1bHQgPSAoTm9kZSAqKSByYW5nZUNvbnN0 cnVjdG9yOworCWNvbC0+Y29va2VkX2RlZmF1bHQgPSBOVUxMOworCWNvbC0+aWRlbnRpdHkg PSAwOworCWNvbC0+Z2VuZXJhdGVkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQ7CisJ Y29sLT5jb2xsQ2xhdXNlID0gTlVMTDsKKwljb2wtPmNvbGxPaWQgPSBJbnZhbGlkT2lkOwor CWNvbC0+ZmR3b3B0aW9ucyA9IE5JTDsKKwljb2wtPmxvY2F0aW9uID0gcGVyaW9kLT5sb2Nh dGlvbjsKKworCXJldHVybiBjb2w7Cit9CisKKy8qCisgKiBWYWxpZGF0ZVBlcmlvZAorICoK KyAqIExvb2sgdXAgdGhlIGF0dHJpYnV0ZXMgdXNlZCBieSB0aGUgUEVSSU9ELAorICogbWFr ZSBzdXJlIHRoZXkgZXhpc3QsIGFyZSBub3Qgc3lzdGVtIGNvbHVtbnMsCisgKiBhbmQgaGF2 ZSB0aGUgc2FtZSB0eXBlIGFuZCBjb2xsYXRpb24uCisgKgorICogWW91IG11c3QgaGF2ZSBh IFJvd0V4Y2x1c2l2ZUxvY2sgb24gcGdfYXR0cmlidXRlCisgKiBiZWZvcmUgY2FsbGluZyB0 aGlzIGZ1bmN0aW9uLgorICoKKyAqIEFkZCBvdXIgZmluZGluZ3MgdG8gdGhlc2UgUGVyaW9k RGVmIGZpZWxkczoKKyAqCisgKiBjb2x0eXBpZCAtIHRoZSB0eXBlIG9mIFBFUklPRCBjb2x1 bW5zLgorICogc3RhcnRhdHRudW0gLSB0aGUgYXR0bnVtIG9mIHRoZSBzdGFydCBjb2x1bW4u CisgKiBlbmRhdHRudW0gLSB0aGUgYXR0bnVtIG9mIHRoZSBlbmQgY29sdW1uLgorICogcm5n dHlwaWQgLSB0aGUgcmFuZ2UgdHlwZSB0byB1c2UuCisgKiBybmdhdHRudW0gLSB0aGUgYXR0 bnVtIG9mIGEgcHJlLWV4aXN0aW5nIHJhbmdlIGNvbHVtbiwgb3IgSW52YWxpZC4KKyAqLwor c3RhdGljIHZvaWQKK1ZhbGlkYXRlUGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpw ZXJpb2QpCit7CisJSGVhcFR1cGxlIHN0YXJ0dHVwbGU7CisJSGVhcFR1cGxlIGVuZHR1cGxl OworCUZvcm1fcGdfYXR0cmlidXRlCWF0dHR1cGxlOworCU9pZAlhdHRjb2xsYXRpb247CisK KwkvKiBGaW5kIHRoZSBzdGFydCBjb2x1bW4gKi8KKwlzdGFydHR1cGxlID0gU2VhcmNoU3lz Q2FjaGVDb3B5QXR0TmFtZShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+c3RhcnRj b2xuYW1lKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoc3RhcnR0dXBsZSkpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJ CQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBl eGlzdCIsCisJCQkJCQlwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSkpKTsKKwlhdHR0dXBsZSA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RS VUNUKHN0YXJ0dHVwbGUpOworCXBlcmlvZC0+Y29sdHlwaWQgPSBhdHR0dXBsZS0+YXR0dHlw aWQ7CisJYXR0Y29sbGF0aW9uID0gYXR0dHVwbGUtPmF0dGNvbGxhdGlvbjsKKwlwZXJpb2Qt PnN0YXJ0YXR0bnVtID0gYXR0dHVwbGUtPmF0dG51bTsKKworCS8qIE1ha2Ugc3VyZSBpdCdz IG5vdCBhIHN5c3RlbSBjb2x1bW4gKi8KKwlpZiAocGVyaW9kLT5zdGFydGF0dG51bSA8PSAw KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpF Q1RfREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiY2Fubm90IHVzZSBzeXN0ZW0gY29sdW1u IFwiJXNcIiBpbiBwZXJpb2QiLAorCQkJCQkJcGVyaW9kLT5zdGFydGNvbG5hbWUpKSk7CisK KwkvKiBGaW5kIHRoZSBlbmQgY29sdW1uICovCisJZW5kdHVwbGUgPSBTZWFyY2hTeXNDYWNo ZUNvcHlBdHROYW1lKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5lbmRjb2xuYW1l KTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoZW5kdHVwbGUpKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAor CQkJCQkJcGVyaW9kLT5lbmRjb2xuYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KSkpOworCWF0dHR1cGxlID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QoZW5kdHVw bGUpOworCXBlcmlvZC0+ZW5kYXR0bnVtID0gYXR0dHVwbGUtPmF0dG51bTsKKworCS8qIE1h a2Ugc3VyZSBpdCdzIG5vdCBhIHN5c3RlbSBjb2x1bW4gKi8KKwlpZiAocGVyaW9kLT5lbmRh dHRudW0gPD0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coImNhbm5vdCB1c2Ugc3lz dGVtIGNvbHVtbiBcIiVzXCIgaW4gcGVyaW9kIiwKKwkJCQkJCXBlcmlvZC0+ZW5kY29sbmFt ZSkpKTsKKworCS8qIEJvdGggY29sdW1ucyBtdXN0IGJlIG9mIHNhbWUgdHlwZSAqLworCWlm IChwZXJpb2QtPmNvbHR5cGlkICE9IGF0dHR1cGxlLT5hdHR0eXBpZCkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkg ZXJybXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3QgYmUgb2Ygc2Ft ZSB0eXBlIikpKTsKKworCS8qIEJvdGggY29sdW1ucyBtdXN0IGhhdmUgdGhlIHNhbWUgY29s bGF0aW9uICovCisJaWYgKGF0dGNvbGxhdGlvbiAhPSBhdHR0dXBsZS0+YXR0Y29sbGF0aW9u KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQ09MTEFUSU9OX01J U01BVENIKSwKKwkJCQkgZXJybXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9k IG11c3QgaGF2ZSBzYW1lIGNvbGxhdGlvbiIpKSk7CisKKwkvKiBHZXQgdGhlIHJhbmdlIHR5 cGUgYmFzZWQgb24gdGhlIHN0YXJ0L2VuZCBjb2xzIG9yIHRoZSB1c2VyJ3MgY2hvaWNlICov CisJcGVyaW9kLT5ybmd0eXBpZCA9IGNob29zZV9yYW5nZXR5cGVfZm9yX3BlcmlvZChwZXJp b2QpOworCisJLyogSWYgdGhlIEdFTkVSQVRFRCBjb2x1bW5zIHNob3VsZCBhbHJlYWR5IGV4 aXN0LCBtYWtlIHN1cmUgaXQgaXMgc2Vuc2libGUuICovCisJaWYgKHBlcmlvZC0+Y29sZXhp c3RzKQorCXsKKwkJSGVhcFR1cGxlIHJuZ3R1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5QXR0 TmFtZShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+cGVyaW9kbmFtZSk7CisJCWlm ICghSGVhcFR1cGxlSXNWYWxpZChybmd0dXBsZSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJj b2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJ CQkJcGVyaW9kLT5wZXJpb2RuYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkp OworCQlhdHR0dXBsZSA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHJuZ3R1cGxl KTsKKworCQkvKgorCQkgKiBMb3RzIHRvIGNoZWNrIGhlcmU6CisJCSAqIEl0IG11c3QgYmUg R0VORVJBVEVEIEFMV0FZUywKKwkJICogaXQgbXVzdCBoYXZlIHRoZSByaWdodCBleHByZXNz aW9uLAorCQkgKiBpdCBtdXN0IGJlIHRoZSByaWdodCB0eXBlLAorCQkgKiBpdCBtdXN0IGJl IE5PVCBOVUxMLAorCQkgKiBpdCBtdXN0IG5vdCBiZSBpbmhlcml0ZWQuCisJCSAqLworCQlp ZiAoYXR0dHVwbGUtPmF0dGdlbmVyYXRlZCA9PSAnXDAnKQorCQkJZXJlcG9ydChFUlJPUiwg KGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbiIsIHBlcmlv ZC0+cGVyaW9kbmFtZSkpKTsKKworCQlpZiAoYXR0dHVwbGUtPmF0dGdlbmVyYXRlZCAhPSBB VFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2co IlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIG5vdCBTVE9SRUQi LCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJLy8gVE9ETzogY2hlY2sgdGhlIEdFTkVS QVRFRCBleHByZXNzaW9uIGFsc28uCisKKwkJaWYgKCFhdHR0dXBsZS0+YXR0bm90bnVsbCAm JiAhSXNCaW5hcnlVcGdyYWRlKQorCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9k ICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzIiwgcGVyaW9k LT5wZXJpb2RuYW1lKSkpOworCisJCWlmIChwZXJpb2QtPnJuZ3R5cGlkICE9IGF0dHR1cGxl LT5hdHR0eXBpZCkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2Vz IGEgZ2VuZXJhdGVkIGNvbHVtbiB3aXRoIHRoZSB3cm9uZyB0eXBlIiwgcGVyaW9kLT5wZXJp b2RuYW1lKSkpOworCisJCWlmICghYXR0dHVwbGUtPmF0dGlzbG9jYWwpCisJCQllcmVwb3J0 KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhh dCBpcyBpbmhlcml0ZWQiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJcGVyaW9kLT5y bmdhdHRudW0gPSBhdHR0dXBsZS0+YXR0bnVtOworCisJCWhlYXBfZnJlZXR1cGxlKHJuZ3R1 cGxlKTsKKwl9CisKKwloZWFwX2ZyZWV0dXBsZShzdGFydHR1cGxlKTsKKwloZWFwX2ZyZWV0 dXBsZShlbmR0dXBsZSk7Cit9CisKKy8qCisgKiBjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9wZXJp b2QKKyAqCisgKiBGaW5kIGEgc3VpdGFibGUgcmFuZ2UgdHlwZSBmb3Igb3BlcmF0aW9ucyBp bnZvbHZpbmcgdGhpcyBwZXJpb2QuCisgKiBVc2UgdGhlIHJhbmdldHlwZSBvcHRpb24gaWYg cHJvdmlkZWQsIG90aGVyd2lzZSB0cnkgdG8gZmluZCBhCisgKiBub24tYW1iaWd1b3VzIGV4 aXN0aW5nIHR5cGUuCisgKi8KK09pZAorY2hvb3NlX3JhbmdldHlwZV9mb3JfcGVyaW9kKFBl cmlvZERlZiAqcGVyaW9kKQoreworCU9pZAlybmd0eXBpZDsKKworCWlmIChwZXJpb2QtPnJh bmdldHlwZW5hbWUgIT0gTlVMTCkKKwl7CisJCS8qIE1ha2Ugc3VyZSBpdCBleGlzdHMgKi8K KwkJcm5ndHlwaWQgPSBUeXBlbmFtZUdldFR5cGlkRXh0ZW5kZWQocGVyaW9kLT5yYW5nZXR5 cGVuYW1lLCBmYWxzZSk7CisJCWlmIChybmd0eXBpZCA9PSBJbnZhbGlkT2lkKQorCQkJZXJl cG9ydChFUlJPUiwgKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJ IGVycm1zZygiUmFuZ2UgdHlwZSAlcyBub3QgZm91bmQiLCBwZXJpb2QtPnJhbmdldHlwZW5h bWUpKSk7CisKKwkJLyogTWFrZSBzdXJlIGl0IGlzIGEgcmFuZ2UgdHlwZSAqLworCQlpZiAo IXR5cGVfaXNfcmFuZ2Uocm5ndHlwaWQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coIlR5cGUg JXMgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHBlcmlvZC0+cmFuZ2V0eXBlbmFtZSkpKTsKKwor CQkvKiBNYWtlIHN1cmUgaXQgbWF0Y2hlcyB0aGUgY29sdW1uIHR5cGUgKi8KKwkJaWYgKGdl dF9yYW5nZV9zdWJ0eXBlKHJuZ3R5cGlkKSAhPSBwZXJpb2QtPmNvbHR5cGlkKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCks CisJCQkJCSBlcnJtc2coIlJhbmdlIHR5cGUgJXMgZG9lcyBub3QgbWF0Y2ggY29sdW1uIHR5 cGUgJXMiLAorCQkJCQkJIHBlcmlvZC0+cmFuZ2V0eXBlbmFtZSwKKwkJCQkJCSBmb3JtYXRf dHlwZV9iZShwZXJpb2QtPmNvbHR5cGlkKSkpKTsKKwl9CisJZWxzZQorCXsKKwkJcm5ndHlw aWQgPSBnZXRfc3VidHlwZV9yYW5nZShwZXJpb2QtPmNvbHR5cGlkKTsKKwkJaWYgKHJuZ3R5 cGlkID09IEludmFsaWRPaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJubyByYW5nZSB0eXBl IGZvciAlcyBmb3VuZCBmb3IgcGVyaW9kICVzIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShw ZXJpb2QtPmNvbHR5cGlkKSwKKwkJCQkJCQlwZXJpb2QtPnBlcmlvZG5hbWUpLAorCQkJCQkg ZXJyaGludCgiWW91IGNhbiBkZWZpbmUgYSBjdXN0b20gcmFuZ2UgdHlwZSB3aXRoIENSRUFU RSBUWVBFIikpKTsKKworCX0KKworCXJldHVybiBybmd0eXBpZDsKK30KKworc3RhdGljIHZv aWQKK0FkZFJlbGF0aW9uTmV3UGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJp b2QpCit7CisJUmVsYXRpb24JYXR0cmVsYXRpb247CisJT2lkCQkJY29ub2lkOworCUNvbnN0 cmFpbnQgKmNvbnN0cjsKKwlMaXN0CSAgICpuZXdjb25zdHJzOworCisJYXR0cmVsYXRpb24g PSB0YWJsZV9vcGVuKEF0dHJpYnV0ZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJLyogRmluZCB0aGUgR0VORVJBVEVEIHJhbmdlIGNvbHVtbiAqLworCisJcGVyaW9kLT5y bmdhdHRudW0gPSBnZXRfYXR0bnVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5w ZXJpb2RuYW1lKTsKKwlpZiAocGVyaW9kLT5ybmdhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1i ZXIpCisJCWVsb2coRVJST1IsICJtaXNzaW5nIGF0dHJpYnV0ZSAlcyIsIHBlcmlvZC0+cGVy aW9kbmFtZSk7CisKKwkvKiBUaGUgcGFyc2VyIGhhcyBhbHJlYWR5IGZvdW5kIHBlcmlvZC0+ Y29sdHlwaWQgKi8KKworCWNvbnN0ciA9IG1ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKHJl bCwgcGVyaW9kKTsKKwluZXdjb25zdHJzID0gQWRkUmVsYXRpb25OZXdDb25zdHJhaW50cyhy ZWwsIE5JTCwgbGlzdF9tYWtlMShjb25zdHIpLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgTlVMTCk7 CisJY29ub2lkID0gKChDb29rZWRDb25zdHJhaW50ICopIGxpbml0aWFsKG5ld2NvbnN0cnMp KS0+Y29ub2lkOworCisJLyogU2F2ZSBpdCAqLworCVN0b3JlUGVyaW9kKHJlbCwgcGVyaW9k LT5wZXJpb2RuYW1lLCBwZXJpb2QtPnN0YXJ0YXR0bnVtLCBwZXJpb2QtPmVuZGF0dG51bSwg cGVyaW9kLT5ybmdhdHRudW0sIGNvbm9pZCk7CisKKwl0YWJsZV9jbG9zZShhdHRyZWxhdGlv biwgUm93RXhjbHVzaXZlTG9jayk7Cit9CisKIC8qCiAgKiBFbWl0IHRoZSByaWdodCBlcnJv ciBvciB3YXJuaW5nIG1lc3NhZ2UgZm9yIGEgIkRST1AiIGNvbW1hbmQgaXNzdWVkIG9uIGEK ICAqIG5vbi1leGlzdGVudCByZWxhdGlvbgpAQCAtMzAxMSw2ICszNDI0LDE2OCBAQCBNZXJn ZUF0dHJpYnV0ZXMoTGlzdCAqY29sdW1ucywgY29uc3QgTGlzdCAqc3VwZXJzLCBjaGFyIHJl bHBlcnNpc3RlbmNlLAogfQogCiAKKy8qLS0tLS0tLS0tLQorICogTWVyZ2VQZXJpb2RzCisg KgkJUmV0dXJucyBuZXcgcGVyaW9kIGxpc3QgZ2l2ZW4gaW5pdGlhbCBwZXJpb2RzIGFuZCBz dXBlcmNsYXNzZXMuCisgKgorICogRm9yIG5vdyB3ZSBkb24ndCBzdXBwb3J0IGluaGVyaXRl bmNlIHdpdGggUEVSSU9EcywKKyAqIGJ1dCB3ZSBtaWdodCBtYWtlIGl0IHdvcmsgZXZlbnR1 YWxseS4KKyAqCisgKiBXZSBjYW4gb21pdCBsb3RzIG9mIGNoZWNrcyBoZXJlIGFuZCBhc3N1 bWUgTWVyZ2VBdHRyaWJ1dGVzIGFscmVhZHkgZGlkIHRoZW0sCisgKiBmb3IgZXhhbXBsZSB0 aGF0IGNoaWxkICYgcGFyZW50cyBhcmUgbm90IGEgbWl4IG9mIHBlcm1hbmVudCBhbmQgdGVt cC4KKyAqLworc3RhdGljIExpc3QgKgorTWVyZ2VQZXJpb2RzKGNoYXIgKnJlbG5hbWUsIExp c3QgKnBlcmlvZHMsIExpc3QgKnRhYmxlRWx0cywgTGlzdCAqc3VwZXJzKQoreworCUxpc3RD ZWxsICAgKmVudHJ5OworCisJLyogSWYgd2UgaGF2ZSBhIFBFUklPRCB0aGVuIHN1cGVycyBt dXN0IGJlIGVtcHR5LiAqLworCisJaWYgKGxpc3RfbGVuZ3RoKHBlcmlvZHMpID4gMCAmJiBs aXN0X2xlbmd0aChzdXBlcnMpID4gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiSW5oZXJp dGluZyBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYSB0YWJsZSBoYXMgYSBQRVJJT0QiKSkpOwor CisJLyogSWYgYW55IHBhcmVudCB0YWJsZSBoYXMgYSBQRVJJT0QsIHRoZW4gZmFpbC4gKi8K KworCWZvcmVhY2goZW50cnksIHN1cGVycykKKwl7CisJCU9pZAkJCXBhcmVudCA9IGxmaXJz dF9vaWQoZW50cnkpOworCQlSZWxhdGlvbglyZWxhdGlvbjsKKwkJUmVsYXRpb24JcGdfcGVy aW9kOworCQlTeXNTY2FuRGVzYyBzY2FuOworCQlTY2FuS2V5RGF0YSBza2V5WzFdOworCQlI ZWFwVHVwbGUJdHVwbGU7CisKKwkJLyogY2FsbGVyIGFscmVhZHkgZ290IGxvY2sgKi8KKwkJ cmVsYXRpb24gPSB0YWJsZV9vcGVuKHBhcmVudCwgTm9Mb2NrKTsKKwkJcGdfcGVyaW9kID0g dGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCVNj YW5LZXlJbml0KCZza2V5WzBdLAorCQkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJ CQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQlPYmplY3RJZEdldERh dHVtKHBhcmVudCkpOworCisJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdfcGVyaW9k LCBQZXJpb2RSZWxpZE5hbWVJbmRleElkLCB0cnVlLAorCQkJCQkJCQkgIE5VTEwsIDEsIHNr ZXkpOworCisJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4 dChzY2FuKSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIkluaGVyaXRpbmcgZnJvbSBh IHRhYmxlIHdpdGggYSBQRVJJT0QgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKKwkJc3lzdGFi bGVfZW5kc2NhbihzY2FuKTsKKwkJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBBY2Nlc3NTaGFy ZUxvY2spOworCQl0YWJsZV9jbG9zZShyZWxhdGlvbiwgTm9Mb2NrKTsKKwl9CisKKwkvKgor CSAqIEZpbmQgdGhlIHN0YXJ0ICYgZW5kIGNvbHVtbnMgYW5kIGdldCB0aGVpciBhdHRubyBh bmQgdHlwZS4KKwkgKiBJbiB0aGUgc2FtZSBwYXNzLCBtYWtlIHN1cmUgdGhlIHBlcmlvZCBk b2Vzbid0IGNvbmZsaWN0IHdpdGggYW55IGNvbHVtbiBuYW1lcy4KKwkgKiBBbHNvIG1ha2Ug c3VyZSB0aGUgc2FtZSBwZXJpb2QgbmFtZSBpc24ndCB1c2VkIG1vcmUgdGhhbiBvbmNlLgor CSAqLworCWZvcmVhY2ggKGVudHJ5LCBwZXJpb2RzKQorCXsKKwkJUGVyaW9kRGVmICpwZXJp b2QgPSBsZmlyc3QoZW50cnkpOworCQlMaXN0Q2VsbCAqZW50cnkyOworCQlpbnQgaSA9IDE7 CisJCU9pZCBzdGFydGNvbHR5cGlkID0gSW52YWxpZE9pZDsKKwkJT2lkIGVuZGNvbHR5cGlk ID0gSW52YWxpZE9pZDsKKwkJT2lkCXN0YXJ0Y29sY29sbGF0aW9uID0gSW52YWxpZE9pZDsK KwkJT2lkCWVuZGNvbGNvbGxhdGlvbiA9IEludmFsaWRPaWQ7CisKKwkJcGVyaW9kLT5zdGFy dGF0dG51bSA9IEludmFsaWRBdHRyTnVtYmVyOworCQlwZXJpb2QtPmVuZGF0dG51bSA9IElu dmFsaWRBdHRyTnVtYmVyOworCisJCWlmIChTeXN0ZW1BdHRyaWJ1dGVCeU5hbWUocGVyaW9k LT5wZXJpb2RuYW1lKSAhPSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygicGVyaW9kIG5h bWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgc3lzdGVtIGNvbHVtbiBuYW1lIiwKKwkJCQkJ CQlwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJZm9yZWFjaCAoZW50cnkyLCBwZXJpb2Rz KQorCQl7CisJCQlQZXJpb2REZWYgKnBlcmlvZDIgPSBsZmlyc3QoZW50cnkyKTsKKworCQkJ aWYgKHBlcmlvZCAhPSBwZXJpb2QyICYmIHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsIHBl cmlvZDItPnBlcmlvZG5hbWUpID09IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCQkgZXJybXNnKCJwZXJp b2QgbmFtZSBcIiVzXCIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlIiwKKwkJCQkJCQkJcGVy aW9kLT5wZXJpb2RuYW1lKSkpOworCQl9CisKKwkJZm9yZWFjaCAoZW50cnkyLCB0YWJsZUVs dHMpCisJCXsKKwkJCUNvbHVtbkRlZiAqY29sID0gbGZpcnN0KGVudHJ5Mik7CisJCQlpbnQz MglhdHR0eXBtb2Q7CisJCQlBY2xSZXN1bHQgYWNscmVzdWx0OworCisJCQlpZiAoIXBlcmlv ZC0+Y29sZXhpc3RzICYmIHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsIGNvbC0+Y29sbmFt ZSkgPT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9E VVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJCSBlcnJtc2coInBlcmlvZCBuYW1lIFwiJXNcIiBj b25mbGljdHMgd2l0aCBhIGNvbHVtbiBuYW1lIiwKKwkJCQkJCQkJcGVyaW9kLT5wZXJpb2Ru YW1lKSkpOworCisJCQlpZiAoc3RyY21wKHBlcmlvZC0+c3RhcnRjb2xuYW1lLCBjb2wtPmNv bG5hbWUpID09IDApCisJCQl7CisJCQkJcGVyaW9kLT5zdGFydGF0dG51bSA9IGk7CisKKwkJ CQl0eXBlbmFtZVR5cGVJZEFuZE1vZChOVUxMLCBjb2wtPnR5cGVOYW1lLCAmc3RhcnRjb2x0 eXBpZCwgJmF0dHR5cG1vZCk7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VHlwZVJlbGF0aW9uSWQsIHN0YXJ0Y29sdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0Up OworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vy cm9yX3R5cGUoYWNscmVzdWx0LCBzdGFydGNvbHR5cGlkKTsKKworCQkJCXN0YXJ0Y29sY29s bGF0aW9uID0gR2V0Q29sdW1uRGVmQ29sbGF0aW9uKE5VTEwsIGNvbCwgc3RhcnRjb2x0eXBp ZCk7CisJCQl9CisKKwkJCWlmIChzdHJjbXAocGVyaW9kLT5lbmRjb2xuYW1lLCBjb2wtPmNv bG5hbWUpID09IDApCisJCQl7CisJCQkJcGVyaW9kLT5lbmRhdHRudW0gPSBpOworCisJCQkJ dHlwZW5hbWVUeXBlSWRBbmRNb2QoTlVMTCwgY29sLT50eXBlTmFtZSwgJmVuZGNvbHR5cGlk LCAmYXR0dHlwbW9kKTsKKworCQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhUeXBl UmVsYXRpb25JZCwgZW5kY29sdHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOworCQkJ CWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yX3R5 cGUoYWNscmVzdWx0LCBlbmRjb2x0eXBpZCk7CisKKwkJCQllbmRjb2xjb2xsYXRpb24gPSBH ZXRDb2x1bW5EZWZDb2xsYXRpb24oTlVMTCwgY29sLCBlbmRjb2x0eXBpZCk7CisJCQl9CisK KwkJCWkrKzsKKwkJfQorCisJCS8qIERpZCB3ZSBmaW5kIHRoZSBjb2x1bW5zPyAqLworCQlp ZiAocGVyaW9kLT5zdGFydGF0dG51bSA9PSBJbnZhbGlkQXR0ck51bWJlcikKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJ CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90 IGV4aXN0IiwKKwkJCQkJCQlwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcmVsbmFtZSkpKTsKKwkJ aWYgKHBlcmlvZC0+ZW5kYXR0bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJ CQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLAorCQkJCQkJCXBlcmlvZC0+ZW5kY29sbmFtZSwgcmVsbmFtZSkpKTsKKworCQkv KiBCb3RoIGNvbHVtbnMgbXVzdCBiZSBvZiBzYW1lIHR5cGUgKi8KKwkJaWYgKHN0YXJ0Y29s dHlwaWQgIT0gZW5kY29sdHlwaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygic3RhcnQgYW5k IGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGJlIG9mIHNhbWUgdHlwZSIpKSk7CisKKwkJ LyogQm90aCBjb2x1bW5zIG11c3QgaGF2ZSB0aGUgc2FtZSBjb2xsYXRpb24gKi8KKwkJaWYg KHN0YXJ0Y29sY29sbGF0aW9uICE9IGVuZGNvbGNvbGxhdGlvbikKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfQ09MTEFUSU9OX01JU01BVENIKSwKKwkJCQkJ IGVycm1zZygic3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGhhdmUgc2Ft ZSBjb2xsYXRpb24iKSkpOworCisJCXBlcmlvZC0+Y29sdHlwaWQgPSBzdGFydGNvbHR5cGlk OworCQlwZXJpb2QtPnJuZ3R5cGlkID0gY2hvb3NlX3JhbmdldHlwZV9mb3JfcGVyaW9kKHBl cmlvZCk7CisJfQorCisJcmV0dXJuIHBlcmlvZHM7Cit9CisKIC8qCiAgKiBNZXJnZUNoZWNr Q29uc3RyYWludAogICoJCVRyeSB0byBtZXJnZSBhbiBpbmhlcml0ZWQgQ0hFQ0sgY29uc3Ry YWludCB3aXRoIHByZXZpb3VzIG9uZXMKQEAgLTQzOTgsMTIgKzQ5NzMsMTIgQEAgQWx0ZXJU YWJsZShBbHRlclRhYmxlU3RtdCAqc3RtdCwgTE9DS01PREUgbG9ja21vZGUsCiAgKiBleGlz dGluZyBxdWVyeSBwbGFucy4gIE9uIHRoZSBhc3N1bXB0aW9uIGl0J3Mgbm90IHVzZWQgZm9y IHN1Y2gsIHdlCiAgKiBkb24ndCBoYXZlIHRvIHJlamVjdCBwZW5kaW5nIEFGVEVSIHRyaWdn ZXJzLCBlaXRoZXIuCiAgKgotICogQWxzbywgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhbiBBbHRl clRhYmxlVXRpbGl0eUNvbnRleHQsIHRoaXMgY2Fubm90IGJlCisgKiBBbHNvLCBpZiB5b3Ug ZG9uJ3QgcGFzcyBhbiBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQsIHRoaXMgY2Fubm90IGJl CiAgKiB1c2VkIGZvciBhbnkgc3ViY29tbWFuZCB0eXBlcyB0aGF0IHJlcXVpcmUgcGFyc2Ug dHJhbnNmb3JtYXRpb24gb3IKICAqIGNvdWxkIGdlbmVyYXRlIHN1YmNvbW1hbmRzIHRoYXQg aGF2ZSB0byBiZSBwYXNzZWQgdG8gUHJvY2Vzc1V0aWxpdHkuCiAgKi8KIHZvaWQKLUFsdGVy VGFibGVJbnRlcm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSkKK0Fs dGVyVGFibGVJbnRlcm5hbChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSwg QWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KQogewogCVJlbGF0aW9uCXJlbDsK IAlMT0NLTU9ERQlsb2NrbW9kZSA9IEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwoY21kcyk7CkBA IC00NDEyLDcgKzQ5ODcsNyBAQCBBbHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0 ICpjbWRzLCBib29sIHJlY3Vyc2UpCiAKIAlFdmVudFRyaWdnZXJBbHRlclRhYmxlUmVsaWQo cmVsaWQpOwogCi0JQVRDb250cm9sbGVyKE5VTEwsIHJlbCwgY21kcywgcmVjdXJzZSwgbG9j a21vZGUsIE5VTEwpOworCUFUQ29udHJvbGxlcihOVUxMLCByZWwsIGNtZHMsIHJlY3Vyc2Us IGxvY2ttb2RlLCBjb250ZXh0KTsKIH0KIAogLyoKQEAgLTQ1MDUsNiArNTA4MCw4IEBAIEFs dGVyVGFibGVHZXRMb2NrTGV2ZWwoTGlzdCAqY21kcykKIAkJCWNhc2UgQVRfRW5hYmxlUmVw bGljYVJ1bGU6CS8qIG1heSBjaGFuZ2UgU0VMRUNUIHJ1bGVzICovCiAJCQljYXNlIEFUX0Vu YWJsZVJ1bGU6IC8qIG1heSBjaGFuZ2UgU0VMRUNUIHJ1bGVzICovCiAJCQljYXNlIEFUX0Rp c2FibGVSdWxlOgkvKiBtYXkgY2hhbmdlIFNFTEVDVCBydWxlcyAqLworCQkJY2FzZSBBVF9B ZGRQZXJpb2Q6IC8qIHNoYXJlcyBuYW1lc3BhY2Ugd2l0aCBjb2x1bW5zLCBhZGRzIGNvbnN0 cmFpbnQgKi8KKwkJCWNhc2UgQVRfRHJvcFBlcmlvZDoKIAkJCQljbWRfbG9ja21vZGUgPSBB Y2Nlc3NFeGNsdXNpdmVMb2NrOwogCQkJCWJyZWFrOwogCkBAIC00ODMzLDYgKzU0MTAsMTQg QEAgQVRQcmVwQ21kKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNt ZCAqY21kLAogCQkJLyogVGhpcyBjb21tYW5kIG5ldmVyIHJlY3Vyc2VzICovCiAJCQlwYXNz ID0gQVRfUEFTU19BRERfT1RIRVJDT05TVFI7CiAJCQlicmVhazsKKwkJY2FzZSBBVF9BZGRQ ZXJpb2Q6IC8qIEFMVEVSIFRBQkxFIC4uLiBBREQgUEVSSU9EIEZPUiBuYW1lIChzdGFydCwg ZW5kKSAqLworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRU X1RBQkxFKTsKKwkJCXBhc3MgPSBBVF9QQVNTX0FERF9QRVJJT0Q7CisJCQlicmVhazsKKwkJ Y2FzZSBBVF9Ecm9wUGVyaW9kOiAvKiBBTFRFUiBUQUJMRSAuLi4gRFJPUCBQRVJJT0QgRk9S IG5hbWUgKi8KKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBlLCByZWwsIEFU VF9UQUJMRSk7CisJCQlwYXNzID0gQVRfUEFTU19EUk9QOworCQkJYnJlYWs7CiAJCWNhc2Ug QVRfQWRkSWRlbnRpdHk6CiAJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlwZSwg cmVsLAogCQkJCQkJCQlBVFRfVEFCTEUgfCBBVFRfUEFSVElUSU9ORURfVEFCTEUgfCBBVFRf VklFVyB8CkBAIC01MjQ2LDYgKzU4MzEsMTQgQEAgQVRFeGVjQ21kKExpc3QgKip3cXVldWUs IEFsdGVyZWRUYWJsZUluZm8gKnRhYiwKIAkJY2FzZSBBVF9Db29rZWRDb2x1bW5EZWZhdWx0 OgkvKiBhZGQgYSBwcmUtY29va2VkIGRlZmF1bHQgKi8KIAkJCWFkZHJlc3MgPSBBVEV4ZWND b29rZWRDb2x1bW5EZWZhdWx0KHJlbCwgY21kLT5udW0sIGNtZC0+ZGVmKTsKIAkJCWJyZWFr OworCQljYXNlIEFUX0FkZFBlcmlvZDoKKwkJCWFkZHJlc3MgPSBBVEV4ZWNBZGRQZXJpb2Qo cmVsLCAoUGVyaW9kRGVmICopIGNtZC0+ZGVmLCBjb250ZXh0KTsKKwkJCWJyZWFrOworCQlj YXNlIEFUX0Ryb3BQZXJpb2Q6CisJCQlBVEV4ZWNEcm9wUGVyaW9kKHJlbCwgY21kLT5uYW1l LCBjbWQtPmJlaGF2aW9yLAorCQkJCQkJCQkgZmFsc2UsIGZhbHNlLAorCQkJCQkJCQkgY21k LT5taXNzaW5nX29rKTsKKwkJCWJyZWFrOwogCQljYXNlIEFUX0FkZElkZW50aXR5OgogCQkJ Y21kID0gQVRQYXJzZVRyYW5zZm9ybUNtZCh3cXVldWUsIHRhYiwgcmVsLCBjbWQsIGZhbHNl LCBsb2NrbW9kZSwKIAkJCQkJCQkJCSAgY3VyX3Bhc3MsIGNvbnRleHQpOwpAQCAtNjM5OSw2 ICs2OTkyLDggQEAgYWx0ZXJfdGFibGVfdHlwZV90b19zdHJpbmcoQWx0ZXJUYWJsZVR5cGUg Y21kdHlwZSkKIAkJY2FzZSBBVF9BZGRDb2x1bW46CiAJCWNhc2UgQVRfQWRkQ29sdW1uVG9W aWV3OgogCQkJcmV0dXJuICJBREQgQ09MVU1OIjsKKwkJY2FzZSBBVF9BZGRQZXJpb2Q6CisJ CQlyZXR1cm4gIkFERCBQRVJJT0QiOwogCQljYXNlIEFUX0NvbHVtbkRlZmF1bHQ6CiAJCWNh c2UgQVRfQ29va2VkQ29sdW1uRGVmYXVsdDoKIAkJCXJldHVybiAiQUxURVIgQ09MVU1OIC4u LiBTRVQgREVGQVVMVCI7CkBAIC02NDI0LDYgKzcwMTksOCBAQCBhbHRlcl90YWJsZV90eXBl X3RvX3N0cmluZyhBbHRlclRhYmxlVHlwZSBjbWR0eXBlKQogCQkJcmV0dXJuICJBTFRFUiBD T0xVTU4gLi4uIFNFVCBDT01QUkVTU0lPTiI7CiAJCWNhc2UgQVRfRHJvcENvbHVtbjoKIAkJ CXJldHVybiAiRFJPUCBDT0xVTU4iOworCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CisJCQlyZXR1 cm4gIkRST1AgUEVSSU9EIjsKIAkJY2FzZSBBVF9BZGRJbmRleDoKIAkJY2FzZSBBVF9SZUFk ZEluZGV4OgogCQkJcmV0dXJuIE5VTEw7CQkvKiBub3QgcmVhbCBncmFtbWFyICovCkBAIC03 NDA5LDE0ICs4MDA2LDI5IEBAIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRl cmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIC8qCiAgKiBJZiBhIG5ldyBvciBy ZW5hbWVkIGNvbHVtbiB3aWxsIGNvbGxpZGUgd2l0aCB0aGUgbmFtZSBvZiBhbiBleGlzdGlu ZwogICogY29sdW1uIGFuZCBpZl9ub3RfZXhpc3RzIGlzIGZhbHNlIHRoZW4gZXJyb3Igb3V0 LCBlbHNlIGRvIG5vdGhpbmcuCisgKgorICogU2VlIGFsc28gY2hlY2tfZm9yX3BlcmlvZF9u YW1lX2NvbGxpc2lvbi4KICAqLwogc3RhdGljIGJvb2wKIGNoZWNrX2Zvcl9jb2x1bW5fbmFt ZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1lLAogCQkJCQkJ CQlib29sIGlmX25vdF9leGlzdHMpCiB7Ci0JSGVhcFR1cGxlCWF0dFR1cGxlOworCUhlYXBU dXBsZQlhdHRUdXBsZSwgcGVyVHVwbGU7CiAJaW50CQkJYXR0bnVtOwogCisJLyogSWYgdGhl IG5hbWUgZXhpc3RzIGFzIGEgcGVyaW9kLCB3ZSdyZSBkb25lLiAqLworCXBlclR1cGxlID0g U2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1 bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpLAorCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShj b2xuYW1lKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQocGVyVHVwbGUpKQorCXsKKwkJUmVs ZWFzZVN5c0NhY2hlKHBlclR1cGxlKTsKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvbHVtbiBuYW1l IFwiJXNcIiBjb25mbGljdHMgd2l0aCBhIHBlcmlvZCBuYW1lIiwKKwkJCQkJCWNvbG5hbWUp KSk7CisJfQorCiAJLyoKIAkgKiB0aGlzIHRlc3QgaXMgZGVsaWJlcmF0ZWx5IG5vdCBhdHRp c2Ryb3BwZWQtYXdhcmUsIHNpbmNlIGlmIG9uZSB0cmllcyB0bwogCSAqIGFkZCBhIGNvbHVt biBtYXRjaGluZyBhIGRyb3BwZWQgY29sdW1uIG5hbWUsIGl0J3MgZ29ubmEgZmFpbCBhbnl3 YXkuCkBAIC03NDYwLDYgKzgwNzIsNzcgQEAgY2hlY2tfZm9yX2NvbHVtbl9uYW1lX2NvbGxp c2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbG5hbWUsCiAJcmV0dXJuIHRydWU7 CiB9CiAKKy8qCisgKiBJZiBhIG5ldyBwZXJpb2QgbmFtZSB3aWxsIGNvbGxpZGUgd2l0aCB0 aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjb2x1bW4gb3IKKyAqIHBlcmlvZCBbYW5kIGlmX25v dF9leGlzdHMgaXMgZmFsc2VdIHRoZW4gZXJyb3Igb3V0LCBlbHNlIGRvIG5vdGhpbmcuCisg KgorICogU2VlIGFsc28gY2hlY2tfZm9yX2NvbHVtbl9uYW1lX2NvbGxpc2lvbi4KKyAqLwor c3RhdGljIGJvb2wKK2NoZWNrX2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24oUmVsYXRpb24g cmVsLCBjb25zdCBjaGFyICpwZXJuYW1lLAorCQkJCQkJCQlib29sIGNvbGV4aXN0cywgYm9v bCBpZl9ub3RfZXhpc3RzKQoreworCUhlYXBUdXBsZQlhdHRUdXBsZSwgcGVyVHVwbGU7CisJ aW50CQkJYXR0bnVtOworCisJLyogVE9ETzogaW1wbGVtZW50IElGIFtOT1RdIEVYSVNUUyBm b3IgcGVyaW9kcyAqLworCUFzc2VydCghaWZfbm90X2V4aXN0cyk7CisKKwkvKiBJZiB0aGVy ZSBpcyBhbHJlYWR5IGEgcGVyaW9kIHdpdGggdGhpcyBuYW1lLCB0aGVuIHdlJ3JlIGRvbmUu ICovCisJcGVyVHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCQkg ICBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSksCisJCQkJCQkJICAg UG9pbnRlckdldERhdHVtKHBlcm5hbWUpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZChwZXJU dXBsZSkpCisJeworCQlpZiAoaWZfbm90X2V4aXN0cykKKwkJeworCQkJUmVsZWFzZVN5c0Nh Y2hlKHBlclR1cGxlKTsKKworCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJCSBlcnJtc2coInBlcmlvZCBcIiVzXCIg b2YgcmVsYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJ cGVybmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwkJCXJldHVybiBm YWxzZTsKKwkJfQorCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9E VVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJwZXJpb2QgXCIlc1wiIG9mIHJlbGF0 aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQlwZXJuYW1lLCBSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWwpKSkpOworCX0KKworCS8qCisJICogdGhpcyB0ZXN0IGlzIGRl bGliZXJhdGVseSBub3QgYXR0aXNkcm9wcGVkLWF3YXJlLCBzaW5jZSBpZiBvbmUgdHJpZXMg dG8KKwkgKiBhZGQgYSBjb2x1bW4gbWF0Y2hpbmcgYSBkcm9wcGVkIGNvbHVtbiBuYW1lLCBp dCdzIGdvbm5hIGZhaWwgYW55d2F5LgorCSAqLworCWF0dFR1cGxlID0gU2VhcmNoU3lzQ2Fj aGUyKEFUVE5BTUUsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJl bGlkKHJlbCkpLAorCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShwZXJuYW1lKSk7CisJaWYg KEhlYXBUdXBsZUlzVmFsaWQoYXR0VHVwbGUpKQorCXsKKwkJYXR0bnVtID0gKChGb3JtX3Bn X2F0dHJpYnV0ZSkgR0VUU1RSVUNUKGF0dFR1cGxlKSktPmF0dG51bTsKKwkJUmVsZWFzZVN5 c0NhY2hlKGF0dFR1cGxlKTsKKworCQkvKgorCQkgKiBXZSB0aHJvdyBhIGRpZmZlcmVudCBl cnJvciBtZXNzYWdlIGZvciBjb25mbGljdHMgd2l0aCBzeXN0ZW0gY29sdW1uCisJCSAqIG5h bWVzLCBzaW5jZSB0aGV5IGFyZSBub3JtYWxseSBub3Qgc2hvd24gYW5kIHRoZSB1c2VyIG1p Z2h0IG90aGVyd2lzZQorCQkgKiBiZSBjb25mdXNlZCBhYm91dCB0aGUgcmVhc29uIGZvciB0 aGUgY29uZmxpY3QuCisJCSAqLworCQlpZiAoYXR0bnVtIDw9IDApCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkg ZXJybXNnKCJwZXJpb2QgbmFtZSBcIiVzXCIgY29uZmxpY3RzIHdpdGggYSBzeXN0ZW0gY29s dW1uIG5hbWUiLAorCQkJCQkJCXBlcm5hbWUpKSk7CisJCWlmICghY29sZXhpc3RzKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1O KSwKKwkJCQkJIGVycm1zZygicGVyaW9kIG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEg Y29sdW1uIG5hbWUiLAorCQkJCQkJCXBlcm5hbWUpKSk7CisJfQorCisJcmV0dXJuIHRydWU7 Cit9CisKIC8qCiAgKiBJbnN0YWxsIGEgY29sdW1uJ3MgZGVwZW5kZW5jeSBvbiBpdHMgZGF0 YXR5cGUuCiAgKi8KQEAgLTc5NjksNiArODY1MiwxNTcgQEAgQVRFeGVjQ29va2VkQ29sdW1u RGVmYXVsdChSZWxhdGlvbiByZWwsIEF0dHJOdW1iZXIgYXR0bnVtLAogCXJldHVybiBhZGRy ZXNzOwogfQogCisvKgorICogQUxURVIgVEFCTEUgQUREIFBFUklPRAorICoKKyAqIFJldHVy biB0aGUgYWRkcmVzcyBvZiB0aGUgcGVyaW9kLgorICovCitzdGF0aWMgT2JqZWN0QWRkcmVz cworQVRFeGVjQWRkUGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QsIEFs dGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCkKK3sKKwlSZWxhdGlvbgkJYXR0cmVs YXRpb247CisJT2JqZWN0QWRkcmVzcwlhZGRyZXNzID0gSW52YWxpZE9iamVjdEFkZHJlc3M7 CisJQ29uc3RyYWludAkgICAqY29uc3RyOworCUNvbHVtbkRlZgkgICAqcmFuZ2Vjb2w7CisJ T2lkCQkJCWNvbm9pZCwgcGVyaW9kb2lkOworCUxpc3QJCSAgICpjbWRzID0gTklMOworCUFs dGVyVGFibGVDbWQgICpjbWQ7CisKKwkvKgorCSAqIFBFUklPRCBGT1IgU1lTVEVNX1RJTUUg aXMgbm90IHlldCBpbXBsZW1lbnRlZCwgYnV0IG1ha2Ugc3VyZSBubyBvbmUgdXNlcworCSAq IHRoZSBuYW1lLgorCSAqLworCWlmIChzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCAic3lz dGVtX3RpbWUiKSA9PSAwKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJQRVJJT0QgRk9S IFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCisJLyogUGFyc2Ugb3B0aW9u cyAqLworCXRyYW5zZm9ybVBlcmlvZE9wdGlvbnMocGVyaW9kKTsKKworCS8qIFRoZSBwZXJp b2QgbmFtZSBtdXN0IG5vdCBhbHJlYWR5IGV4aXN0ICovCisJKHZvaWQpIGNoZWNrX2Zvcl9w ZXJpb2RfbmFtZV9jb2xsaXNpb24ocmVsLCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZC0+ Y29sZXhpc3RzLCBmYWxzZSk7CisKKwlhdHRyZWxhdGlvbiA9IHRhYmxlX29wZW4oQXR0cmli dXRlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisJVmFsaWRhdGVQZXJpb2QocmVs LCBwZXJpb2QpOworCisJLyogTWFrZSB0aGUgQ0hFQ0sgY29uc3RyYWludCAqLworCWNvbnN0 ciA9IG1ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKHJlbCwgcGVyaW9kKTsKKwljbWQgPSBt YWtlTm9kZShBbHRlclRhYmxlQ21kKTsKKwljbWQtPnN1YnR5cGUgPSBBVF9BZGRDb25zdHJh aW50OworCWNtZC0+ZGVmID0gKE5vZGUgKikgY29uc3RyOworCWNtZHMgPSBsYXBwZW5kKGNt ZHMsIGNtZCk7CisJQWx0ZXJUYWJsZUludGVybmFsKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwg Y21kcywgdHJ1ZSwgY29udGV4dCk7CisJY29ub2lkID0gZ2V0X3JlbGF0aW9uX2NvbnN0cmFp bnRfb2lkKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5jb25zdHJhaW50bmFtZSwg ZmFsc2UpOworCisJaWYgKCFwZXJpb2QtPmNvbGV4aXN0cykKKwl7CisJCS8qIE1ha2UgdGhl IHJhbmdlIGNvbHVtbiAqLworCQlyYW5nZWNvbCA9IG1ha2VfcmFuZ2VfY29sdW1uX2Zvcl9w ZXJpb2QocGVyaW9kKTsKKwkJY21kID0gbWFrZU5vZGUoQWx0ZXJUYWJsZUNtZCk7CisJCWNt ZC0+c3VidHlwZSA9IEFUX0FkZENvbHVtbjsKKwkJY21kLT5kZWYgPSAoTm9kZSAqKSByYW5n ZWNvbDsKKwkJY21kLT5uYW1lID0gcGVyaW9kLT5wZXJpb2RuYW1lOworCQljbWQtPnJlY3Vy c2UgPSBmYWxzZTsgLyogbm8sIGxldCB0aGUgUEVSSU9EIHJlY3Vyc2UgaW5zdGVhZCAqLwor CQlBbHRlclRhYmxlSW50ZXJuYWwoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBsaXN0X21ha2Ux KGNtZCksIHRydWUsIGNvbnRleHQpOworCQlwZXJpb2QtPnJuZ2F0dG51bSA9IGdldF9hdHRu dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2QtPnBlcmlvZG5hbWUpOworCQlpZiAo cGVyaW9kLT5ybmdhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJCQllbG9nKEVSUk9S LCAibWlzc2luZyBhdHRyaWJ1dGUgJXMiLCBwZXJpb2QtPnBlcmlvZG5hbWUpOworCisJfQor CisJLyogU2F2ZSB0aGUgUGVyaW9kICovCisJcGVyaW9kb2lkID0gU3RvcmVQZXJpb2QocmVs LCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZC0+c3RhcnRhdHRudW0sIHBlcmlvZC0+ZW5k YXR0bnVtLCBwZXJpb2QtPnJuZ2F0dG51bSwgY29ub2lkKTsKKworCU9iamVjdEFkZHJlc3NT ZXQoYWRkcmVzcywgUGVyaW9kUmVsYXRpb25JZCwgcGVyaW9kb2lkKTsKKworCXRhYmxlX2Ns b3NlKGF0dHJlbGF0aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBhZGRyZXNz OworfQorCisvKgorICogQUxURVIgVEFCTEUgRFJPUCBQRVJJT0QKKyAqCisgKiBMaWtlIERS T1AgQ09MVU1OLCB3ZSBjYW4ndCB1c2UgdGhlIG5vcm1hbCBBTFRFUiBUQUJMRSByZWN1cnNp b24gbWVjaGFuaXNtLgorICovCitzdGF0aWMgdm9pZAorQVRFeGVjRHJvcFBlcmlvZChSZWxh dGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlvZE5hbWUsCisJCQkJCSBEcm9wQmVoYXZpb3Ig YmVoYXZpb3IsCisJCQkJCSBib29sIHJlY3Vyc2UsIGJvb2wgcmVjdXJzaW5nLAorCQkJCQkg Ym9vbCBtaXNzaW5nX29rKQoreworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlGb3JtX3BnX3Bl cmlvZCBwZXJpb2Q7CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXk7CisJ SGVhcFR1cGxlCXR1cGxlOworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkvKiBBdCB0b3Ag bGV2ZWwsIHBlcm1pc3Npb24gY2hlY2sgd2FzIGRvbmUgaW4gQVRQcmVwQ21kLCBlbHNlIGRv IGl0ICovCisJaWYgKHJlY3Vyc2luZykKKwkJQVRTaW1wbGVQZXJtaXNzaW9ucyhBVF9Ecm9w UGVyaW9kLCByZWwsIEFUVF9UQUJMRSk7CisKKwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBl cmlvZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBGaW5kIGFu ZCBkcm9wIHRoZSB0YXJnZXQgcGVyaW9kCisJICovCisJU2NhbktleUluaXQoJmtleSwKKwkJ CQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkp KTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHBnX3BlcmlvZCwgUGVyaW9kUmVsaWRO YW1lSW5kZXhJZCwKKwkJCQkJCQkgIHRydWUsIE5VTEwsIDEsICZrZXkpOworCisJd2hpbGUg KEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7 CisJCU9iamVjdEFkZHJlc3MgcGVyb2JqOworCisJCXBlcmlvZCA9IChGb3JtX3BnX3Blcmlv ZCkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQlpZiAoc3RyY21wKE5hbWVTdHIocGVyaW9kLT5w ZXJuYW1lKSwgcGVyaW9kTmFtZSkgIT0gMCkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAq IFBlcmZvcm0gdGhlIGFjdHVhbCBwZXJpb2QgZGVsZXRpb24KKwkJICovCisJCXBlcm9iai5j bGFzc0lkID0gUGVyaW9kUmVsYXRpb25JZDsKKwkJcGVyb2JqLm9iamVjdElkID0gcGVyaW9k LT5vaWQ7CisJCXBlcm9iai5vYmplY3RTdWJJZCA9IDA7CisKKwkJcGVyZm9ybURlbGV0aW9u KCZwZXJvYmosIGJlaGF2aW9yLCAwKTsKKworCQlmb3VuZCA9IHRydWU7CisKKwkJLyogcGVy aW9kIGZvdW5kIGFuZCBkcm9wcGVkIC0tIG5vIG5lZWQgdG8ga2VlcCBsb29waW5nICovCisJ CWJyZWFrOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwlpZiAoIWZvdW5k KQorCXsKKwkJaWYgKCFtaXNzaW5nX29rKQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJw ZXJpb2QgXCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJ CQkJcGVyaW9kTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJybXNnKCJwZXJpb2Qg XCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciLAor CQkJCQkJCXBlcmlvZE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJ CQl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJvd0V4Y2x1c2l2ZUxvY2spOworCQkJcmV0dXJu OworCQl9CisJfQorCisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNpdmVMb2Nr KTsKK30KKwogLyoKICAqIEFMVEVSIFRBQkxFIEFMVEVSIENPTFVNTiBBREQgSURFTlRJVFkK ICAqCkBAIC05NzQ1LDggKzEwNTc5LDkgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChM aXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlm b3IgKGkgPSAwOyBpIDwgbnVtZmtzOyBpKyspCiAJewogCQljaGFyCQlhdHRnZW5lcmF0ZWQg PSBUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgZmthdHRudW1baV0gLSAx KS0+YXR0Z2VuZXJhdGVkOworCQlCaXRtYXBzZXQgICpwZXJpb2RzID0gZ2V0X3BlcmlvZF9h dHRub3MoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKIAotCQlpZiAoYXR0Z2VuZXJhdGVkKQor CQlpZiAoYXR0Z2VuZXJhdGVkICYmICFibXNfaXNfbWVtYmVyKGZrYXR0bnVtW2ldLCBwZXJp b2RzKSkKIAkJewogCQkJLyoKIAkJCSAqIENoZWNrIHJlc3RyaWN0aW9ucyBvbiBVUERBVEUv REVMRVRFIGFjdGlvbnMsIHBlciBTUUwgc3RhbmRhcmQKQEAgLTEzNTQ3LDYgKzE0MzgyLDE2 IEBAIFJlbWVtYmVyQWxsRGVwZW5kZW50Rm9yUmVidWlsZGluZyhBbHRlcmVkVGFibGVJbmZv ICp0YWIsIEFsdGVyVGFibGVUeXBlIHN1YnR5cGUsCiAJCQkJUmVtZW1iZXJDb25zdHJhaW50 Rm9yUmVidWlsZGluZyhmb3VuZE9iamVjdC5vYmplY3RJZCwgdGFiKTsKIAkJCQlicmVhazsK IAorCQkJY2FzZSBQZXJpb2RSZWxhdGlvbklkOgorCQkJCWlmIChzdWJ0eXBlID09IEFUX0Fs dGVyQ29sdW1uVHlwZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygiY2Fubm90 IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIHBlcmlvZCIpLAorCQkJCQkJCSBl cnJkZXRhaWwoIiVzIGRlcGVuZHMgb24gY29sdW1uIFwiJXNcIiIsCisJCQkJCQkJCQkgICBn ZXRPYmplY3REZXNjcmlwdGlvbigmZm91bmRPYmplY3QsIGZhbHNlKSwKKwkJCQkJCQkJCSAg IGNvbE5hbWUpKSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgUHJvY2VkdXJlUmVsYXRpb25J ZDoKIAogCQkJCS8qCkBAIC0xMzYzNiw2ICsxNDQ4MSwxNSBAQCBSZW1lbWJlckFsbERlcGVu ZGVudEZvclJlYnVpbGRpbmcoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBBbHRlclRhYmxlVHlw ZSBzdWJ0eXBlLAogCQkJCQl9CiAJCQkJCWVsc2UKIAkJCQkJeworCQkJCQkJLyoKKwkJCQkJ CSAqIElmIHRoaXMgR0VORVJBVEVEIGNvbHVtbiBpcyBpbXBsZW1lbnRpbmcgYSBQRVJJT0Qs CisJCQkJCQkgKiBrZWVwIGdvaW5nIGFuZCB3ZSdsbCBmYWlsIGZyb20gdGhlIFBFUklPRCBp bnN0ZWFkLgorCQkJCQkJICogVGhpcyBnaXZlcyBhIG1vcmUgY2xlYXIgZXJyb3IgbWVzc2Fn ZS4KKwkJCQkJCSAqLworCQkJCQkJQml0bWFwc2V0ICpwZXJpb2RhdHRzID0gZ2V0X3Blcmlv ZF9hdHRub3MoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKKwkJCQkJCWlmIChibXNfaXNfbWVt YmVyKGNvbC5vYmplY3RTdWJJZCwgcGVyaW9kYXR0cykpCisJCQkJCQkJYnJlYWs7CisKIAkJ CQkJCS8qCiAJCQkJCQkgKiBUaGlzIG11c3QgYmUgYSByZWZlcmVuY2UgZnJvbSB0aGUgZXhw cmVzc2lvbiBvZiBhCiAJCQkJCQkgKiBnZW5lcmF0ZWQgY29sdW1uIGVsc2V3aGVyZSBpbiB0 aGUgc2FtZSB0YWJsZS4KQEAgLTE1NTMwLDcgKzE2Mzg0LDcgQEAgQWx0ZXJUYWJsZU1vdmVB bGwoQWx0ZXJUYWJsZU1vdmVBbGxTdG10ICpzdG10KQogCiAJCUV2ZW50VHJpZ2dlckFsdGVy VGFibGVTdGFydCgoTm9kZSAqKSBzdG10KTsKIAkJLyogT0lEIGlzIHNldCBieSBBbHRlclRh YmxlSW50ZXJuYWwgKi8KLQkJQWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQobCksIGNt ZHMsIGZhbHNlKTsKKwkJQWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQobCksIGNtZHMs IGZhbHNlLCBOVUxMKTsKIAkJRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZUVuZCgpOwogCX0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4IDU1YTI1YTM2YzhiLi45NGQ5ZWNkY2JhMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpAQCAtNjA1OCw2ICs2MDU4LDggQEAgQ29weUZv clBvcnRpb25PZlN0YXRlKEZvclBvcnRpb25PZlN0YXRlICpzcmMpCiAJCWRzdC0+ZnBfcmFu Z2VOYW1lID0gcHN0cmR1cChzcmMtPmZwX3JhbmdlTmFtZSk7CiAJCWRzdC0+ZnBfcmFuZ2VU eXBlID0gc3JjLT5mcF9yYW5nZVR5cGU7CiAJCWRzdC0+ZnBfcmFuZ2VBdHRubyA9IHNyYy0+ ZnBfcmFuZ2VBdHRubzsKKwkJZHN0LT5mcF9wZXJpb2RTdGFydEF0dG5vID0gc3JjLT5mcF9w ZXJpb2RTdGFydEF0dG5vOworCQlkc3QtPmZwX3BlcmlvZEVuZEF0dG5vID0gc3JjLT5mcF9w ZXJpb2RFbmRBdHRubzsKIAogCQlyID0gRGF0dW1HZXRSYW5nZVR5cGVQKHNyYy0+ZnBfdGFy Z2V0UmFuZ2UpOwogCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKFJhbmdlVHlwZUdl dE9pZChyKSwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCmluZGV4 IGZkYWQ4MzM4MzI0Li4zYWUyMjVkNjc5OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAtMTY0 LDcgKzE2NCw3IEBAIERlZmluZVZpcnR1YWxSZWxhdGlvbihSYW5nZVZhciAqcmVsYXRpb24s IExpc3QgKnRsaXN0LCBib29sIHJlcGxhY2UsCiAJCQl9CiAKIAkJCS8qIEV2ZW50VHJpZ2dl ckFsdGVyVGFibGVTdGFydCBjYWxsZWQgYnkgUHJvY2Vzc1V0aWxpdHlTbG93ICovCi0JCQlB bHRlclRhYmxlSW50ZXJuYWwodmlld09pZCwgYXRjbWRzLCB0cnVlKTsKKwkJCUFsdGVyVGFi bGVJbnRlcm5hbCh2aWV3T2lkLCBhdGNtZHMsIHRydWUsIE5VTEwpOwogCiAJCQkvKiBNYWtl IHRoZSBuZXcgdmlldyBjb2x1bW5zIHZpc2libGUgKi8KIAkJCUNvbW1hbmRDb3VudGVySW5j cmVtZW50KCk7CkBAIC0xOTYsNyArMTk2LDcgQEAgRGVmaW5lVmlydHVhbFJlbGF0aW9uKFJh bmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxpc3QsIGJvb2wgcmVwbGFjZSwKIAkJYXRjbWRz ID0gbGlzdF9tYWtlMShhdGNtZCk7CiAKIAkJLyogRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZVN0 YXJ0IGNhbGxlZCBieSBQcm9jZXNzVXRpbGl0eVNsb3cgKi8KLQkJQWx0ZXJUYWJsZUludGVy bmFsKHZpZXdPaWQsIGF0Y21kcywgdHJ1ZSk7CisJCUFsdGVyVGFibGVJbnRlcm5hbCh2aWV3 T2lkLCBhdGNtZHMsIHRydWUsIE5VTEwpOwogCiAJCS8qCiAJCSAqIFRoZXJlIGlzIHZlcnkg bGl0dGxlIHRvIGRvIGhlcmUgdG8gdXBkYXRlIHRoZSB2aWV3J3MgZGVwZW5kZW5jaWVzLgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCA5ZjIyMzQzMjBm Ni4uOWMxNDM4MWI1MmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJs ZS5jCkBAIC0xMzcwLDYgKzEzNzAsNyBAQCBFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1v ZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAlGbWdySW5mbyBmbGluZm87CiAJUmV0dXJu U2V0SW5mbyByc2k7CiAJUmVsYXRpb24gcmVsOworCWJvb2wgaGFzUGVyaW9kID0gZmFsc2U7 CiAJYm9vbCBkaWRJbml0ID0gZmFsc2U7CiAJYm9vbCBzaG91bGRGcmVlID0gZmFsc2U7CiAJ TE9DQUxfRkNJTkZPKGZjaW5mbywgMik7CkBAIC0xNDc5LDYgKzE0ODAsNyBAQCBFeGVjRm9y UG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAkJCWVs c2UKIAkJCQlsZWZ0b3ZlclNsb3QgPSBvbGR0dXBsZVNsb3Q7CiAKKwkJCWhhc1BlcmlvZCA9 IGZvclBvcnRpb25PZi0+c3RhcnRWYXI7CiAJCQl0dXBkZXNjID0gbGVmdG92ZXJTbG90LT50 dHNfdHVwbGVEZXNjcmlwdG9yOwogCQkJbmF0dHMgPSB0dXBkZXNjLT5uYXR0czsKIApAQCAt MTU3OSw4ICsxNTgxLDQyIEBAIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFi bGVDb250ZXh0ICpjb250ZXh0LAogCQkJCWZwb1N0YXRlLT5mcF9udWxsc1tpXSA9IGxlZnRv dmVyU2xvdC0+dHRzX2lzbnVsbFtpXSA/ICduJyA6ICcgJzsKIAkJfQogCi0JCWZwb1N0YXRl LT5mcF9udWxsc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gJyAn OwotCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0 dG5vIC0gMV0gPSBsZWZ0b3ZlcjsKKwkJaWYgKGhhc1BlcmlvZCkKKwkJeworCQkJUmFuZ2VU eXBlICAqbGVmdG92ZXJSYW5nZTsKKwkJCVJhbmdlQm91bmQJbGVmdG92ZXJMb3dlcjsKKwkJ CVJhbmdlQm91bmQJbGVmdG92ZXJVcHBlcjsKKwkJCWJvb2wJCWxlZnRvdmVyRW1wdHk7CisJ CQlBdHRyTnVtYmVyCXN0YXJ0QXR0bm87CisJCQlBdHRyTnVtYmVyCWVuZEF0dG5vOworCisJ CQlsZWZ0b3ZlclJhbmdlID0gRGF0dW1HZXRSYW5nZVR5cGVQKGxlZnRvdmVyKTsKKwkJCXJh bmdlX2Rlc2VyaWFsaXplKHR5cGNhY2hlLCBsZWZ0b3ZlclJhbmdlLCAmbGVmdG92ZXJMb3dl ciwgJmxlZnRvdmVyVXBwZXIsICZsZWZ0b3ZlckVtcHR5KTsKKworCQkJc3RhcnRBdHRubyA9 IGZvclBvcnRpb25PZi0+c3RhcnRWYXItPnZhcmF0dG5vOworCQkJZW5kQXR0bm8gPSBmb3JQ b3J0aW9uT2YtPmVuZFZhci0+dmFyYXR0bm87CisKKwkJCWlmIChsZWZ0b3Zlckxvd2VyLmlu ZmluaXRlKQorCQkJCWZwb1N0YXRlLT5mcF9udWxsc1tzdGFydEF0dG5vIC0gMV0gPSAnbic7 CisJCQllbHNlCisJCQl7CisJCQkJZnBvU3RhdGUtPmZwX251bGxzW3N0YXJ0QXR0bm8gLSAx XSA9ICcgJzsKKwkJCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW3N0YXJ0QXR0bm8gLSAxXSA9IGxl ZnRvdmVyTG93ZXIudmFsOworCQkJfQorCisJCQlpZiAobGVmdG92ZXJVcHBlci5pbmZpbml0 ZSkKKwkJCQlmcG9TdGF0ZS0+ZnBfbnVsbHNbZW5kQXR0bm8gLSAxXSA9ICduJzsKKwkJCWVs c2UKKwkJCXsKKwkJCQlmcG9TdGF0ZS0+ZnBfbnVsbHNbZW5kQXR0bm8gLSAxXSA9ICcgJzsK KwkJCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW2VuZEF0dG5vIC0gMV0gPSBsZWZ0b3ZlclVwcGVy LnZhbDsKKwkJCX0KKwkJfQorCQllbHNlCisJCXsKKwkJCWZwb1N0YXRlLT5mcF9udWxsc1tm b3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gJyAnOworCQkJZnBvU3Rh dGUtPmZwX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0g bGVmdG92ZXI7CisJCX0KIAogCQlzcGlfcmVzdWx0ID0gU1BJX2V4ZWN1dGVfc25hcHNob3Qo cXBsYW4sCiAJCQkJCQkJCQkJICBmcG9TdGF0ZS0+ZnBfdmFsdWVzLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwppbmRleCA5NTAxMTEyMDQ5NS4uYzQ3Y2E2MmNiM2MgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCkBAIC0xNzIyLDYgKzE3MjIsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9k ZSAqZXhwcikKIAkJY2FzZSBUX0NvbnN0cmFpbnQ6CiAJCQlsb2MgPSAoKGNvbnN0IENvbnN0 cmFpbnQgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgVF9QZXJpb2RE ZWY6CisJCQlsb2MgPSAoKGNvbnN0IFBlcmlvZERlZiAqKSBleHByKS0+bG9jYXRpb247CisJ CQlicmVhazsKIAkJY2FzZSBUX0Z1bmN0aW9uUGFyYW1ldGVyOgogCQkJLyoganVzdCB1c2Ug dHlwZW5hbWUncyBsb2NhdGlvbiAqLwogCQkJbG9jID0gZXhwckxvY2F0aW9uKChOb2RlICop ICgoY29uc3QgRnVuY3Rpb25QYXJhbWV0ZXIgKikgZXhwciktPmFyZ1R5cGUpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKaW5kZXggODYxMGFiNDAzYmQuLmJlNWFlZjQ4NTdiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJhY2Nlc3Mvc3RyYXRu dW0uaCIKICNpbmNsdWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpAQCAtMTI3MSw3ICsxMjcyLDExIEBAIHRyYW5zZm9y bUZvclBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJY2hhciAqcmFuZ2Vf bmFtZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VfbmFtZTsKIAljaGFyICpyYW5nZV90eXBlX25h bWVzcGFjZSA9IE5VTEw7CiAJY2hhciAqcmFuZ2VfdHlwZV9uYW1lID0gTlVMTDsKLQlpbnQg cmFuZ2VfYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlBdHRyTnVtYmVyIHJhbmdlX2F0 dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJQXR0ck51bWJlciBzdGFydF9hdHRubyA9IElu dmFsaWRBdHRyTnVtYmVyOworCUF0dHJOdW1iZXIgZW5kX2F0dG5vID0gSW52YWxpZEF0dHJO dW1iZXI7CisJY2hhciAqc3RhcnRjb2xuYW1lID0gTlVMTDsKKwljaGFyICplbmRjb2xuYW1l ID0gTlVMTDsKIAlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyOwogCU9pZAlvcGNsYXNzOwogCU9p ZCBvcGZhbWlseTsKQEAgLTEzMTUsNiArMTMyMCw1MyBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9u T2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCWlmICghZ2V0X3R5cG5hbWVfYW5kX25h bWVzcGFjZShhdHRyLT5hdHR0eXBpZCwgJnJhbmdlX3R5cGVfbmFtZSwgJnJhbmdlX3R5cGVf bmFtZXNwYWNlKSkKIAkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHR5 cGUgJXUiLCBhdHRyLT5hdHR0eXBpZCk7CiAKKwkvKgorCSAqIElmIHdlIGFyZSB1c2luZyBh IFBFUklPRCwgd2UgbmVlZCB0aGUgc3RhcnQgJiBlbmQgY29sdW1ucy4KKwkgKiBJZiB0aGUg YXR0cmlidXRlIGl0IG5vdCBhIEdFTkVSQVRFRCBjb2x1bW4sIHdlIG5lZWRuJ3QgcXVlcnkg cGdfcGVyaW9kLgorCSAqLworCWlmIChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRF X0dFTkVSQVRFRF9TVE9SRUQpCisJeworCQlIZWFwVHVwbGUgcGVyVHVwbGUgPSBTZWFyY2hT eXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0oUmVs YXRpb25HZXRSZWxpZCh0YXJnZXRyZWwpKSwKKwkJCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1 bShyYW5nZV9uYW1lKSk7CisJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHBlclR1cGxlKSkKKwkJ eworCQkJRm9ybV9wZ19wZXJpb2QgcGVyID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1Qo cGVyVHVwbGUpOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgcGVyYXR0cjsKKworCQkJc3RhcnRf YXR0bm8gPSBwZXItPnBlcnN0YXJ0OworCQkJZW5kX2F0dG5vID0gcGVyLT5wZXJlbmQ7CisK KwkJCXBlcmF0dHIgPSBUdXBsZURlc2NBdHRyKHRhcmdldHJlbC0+cmRfYXR0LCBzdGFydF9h dHRubyAtIDEpOworCQkJc3RhcnRjb2xuYW1lID0gTmFtZVN0cihwZXJhdHRyLT5hdHRuYW1l KTsKKworCQkJcmVzdWx0LT5zdGFydFZhciA9IG1ha2VWYXIoCisJCQkJCXJ0aW5kZXgsCisJ CQkJCXN0YXJ0X2F0dG5vLAorCQkJCQlwZXJhdHRyLT5hdHR0eXBpZCwKKwkJCQkJcGVyYXR0 ci0+YXR0dHlwbW9kLAorCQkJCQlwZXJhdHRyLT5hdHRjb2xsYXRpb24sCisJCQkJCTApOwor CisJCQlwZXJhdHRyID0gVHVwbGVEZXNjQXR0cih0YXJnZXRyZWwtPnJkX2F0dCwgZW5kX2F0 dG5vIC0gMSk7CisJCQllbmRjb2xuYW1lID0gTmFtZVN0cihwZXJhdHRyLT5hdHRuYW1lKTsK KwkJCXJlc3VsdC0+ZW5kVmFyID0gbWFrZVZhcigKKwkJCQkJcnRpbmRleCwKKwkJCQkJZW5k X2F0dG5vLAorCQkJCQlwZXJhdHRyLT5hdHR0eXBpZCwKKwkJCQkJcGVyYXR0ci0+YXR0dHlw bW9kLAorCQkJCQlwZXJhdHRyLT5hdHRjb2xsYXRpb24sCisJCQkJCTApOworCisJCQlSZWxl YXNlU3lzQ2FjaGUocGVyVHVwbGUpOworCQl9CisJfQorCisJaWYgKHN0YXJ0X2F0dG5vID09 IEludmFsaWRBdHRyTnVtYmVyKQorCXsKKwkJcmVzdWx0LT5zdGFydFZhciA9IE5VTEw7CisJ CXJlc3VsdC0+ZW5kVmFyID0gTlVMTDsKKwl9CiAKIAlpZiAoZm9yUG9ydGlvbk9mLT50YXJn ZXQpCiAJCS8qCkBAIC0xMzgyLDcgKzE0MzQsMTAgQEAgdHJhbnNmb3JtRm9yUG9ydGlvbk9m Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAl7CiAJCS8qCiAJCSAqIE5vdyBtYWtlIHN1 cmUgd2UgdXBkYXRlIHRoZSBzdGFydC9lbmQgdGltZSBvZiB0aGUgcmVjb3JkLgotCQkgKiBG b3IgYSByYW5nZSBjb2wgKHIpIHRoaXMgaXMgYHIgPSByICogdGFyZ2V0UmFuZ2VgLgorCQkg KiBGb3IgYSByYW5nZS9ldGMgY29sIChyKSB0aGlzIGlzIGByID0gciAqIHRhcmdldFJhbmdl YC4KKwkJICogRm9yIGEgUEVSSU9EIHdpdGggY29scyAocywgZSkgdGhpcyBpcyBgcyA9IGxv d2VyKHRzcmFuZ2UocywgZSkgKiB0YXJnZXRSYW5nZSlgCisJCSAqIGFuZCBgZSA9IHVwcGVy KHRzcmFuZ2UocywgZSkgKiB0YXJnZXRSYW5nZWAgKG9mIGNvdXJzZSBub3QgbmVjZXNzYXJp bHkgd2l0aAorCQkgKiB0c3JhbmdlLCBidXQgd2l0aCB3aGF0ZXZlciByYW5nZSB0eXBlIGlz IHVzZWQgdGhlcmUpLgogCQkgKi8KIAkJT2lkIGZ1bmNuYW1lc3BhY2U7CiAJCWNoYXIgKmZ1 bmNuYW1lOwpAQCAtMTQxMSwxMiArMTQ2Niw0NCBAQCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZD bGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCWxpc3RfbWFrZTIoY29weU9iamVjdChy YW5nZVZhciksIHRhcmdldEV4cHIpLAogCQkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAogCQkJ CWZvclBvcnRpb25PZi0+bG9jYXRpb24pOwotCQlyYW5nZVRMRUV4cHIgPSAoRXhwciAqKSB0 cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgcmFuZ2VUTEVFeHByLCBFWFBSX0tJTkRf VVBEQVRFX1BPUlRJT04pOwogCi0JCS8qIE1ha2UgYSBUTEUgdG8gc2V0IHRoZSByYW5nZSBj b2x1bW4gKi8KKwkJLyogTWFrZSBhIFRMRSB0byBzZXQgdGhlIHJhbmdlIGNvbHVtbiBvciBz dGFydC9lbmQgY29sdW1ucyAqLwogCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsK LQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KHJhbmdlVExFRXhwciwgcmFuZ2VfYXR0bm8sIHJh bmdlX25hbWUsIGZhbHNlKTsKLQkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5k KHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUpOworCisJCWlmIChyZXN1bHQtPnN0YXJ0 VmFyKQorCQl7CisJCQlFeHByICpib3VuZFRMRUV4cHI7CisKKwkJCS8qIHNldCB0aGUgc3Rh cnQgY29sdW1uICovCisJCQlib3VuZFRMRUV4cHIgPSAoRXhwciAqKSBtYWtlRnVuY0NhbGwo U3lzdGVtRnVuY05hbWUoImxvd2VyIiksCisJCQkJCWxpc3RfbWFrZTEocmFuZ2VUTEVFeHBy KSwKKwkJCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJCWZvclBvcnRpb25PZi0+bG9j YXRpb24pOworCQkJYm91bmRUTEVFeHByID0gKEV4cHIgKikgdHJhbnNmb3JtRXhwcihwc3Rh dGUsIChOb2RlICopIGJvdW5kVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsK KwkJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeShib3VuZFRMRUV4cHIsIHN0YXJ0X2F0dG5vLCBz dGFydGNvbG5hbWUsIGZhbHNlKTsKKwkJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFw cGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCwgdGxlKTsKKworCQkJLyogc2V0IHRoZSBl bmQgY29sdW1uICovCisJCQlib3VuZFRMRUV4cHIgPSAoRXhwciAqKSBtYWtlRnVuY0NhbGwo U3lzdGVtRnVuY05hbWUoInVwcGVyIiksCisJCQkJCWxpc3RfbWFrZTEocmFuZ2VUTEVFeHBy KSwKKwkJCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJCWZvclBvcnRpb25PZi0+bG9j YXRpb24pOworCQkJYm91bmRUTEVFeHByID0gKEV4cHIgKikgdHJhbnNmb3JtRXhwcihwc3Rh dGUsIChOb2RlICopIGJvdW5kVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OKTsK KwkJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeShib3VuZFRMRUV4cHIsIGVuZF9hdHRubywgZW5k Y29sbmFtZSwgZmFsc2UpOworCQkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5k KHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUpOworCisJCQkvKiBNYXJrIHRoZSBzdGFy dC9lbmQgY29sdW1ucyBhcyByZXF1aXJpbmcgdXBkYXRlIHBlcm1pc3Npb25zICovCisJCQl0 YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Bl cm1pbmZvLT51cGRhdGVkQ29scywKKwkJCQkJCQkJCQkJCQkJICBzdGFydF9hdHRubyAtIEZp cnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCQkJdGFyZ2V0X3Blcm1pbmZv LT51cGRhdGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRl ZENvbHMsCisJCQkJCQkJCQkJCQkJCSAgZW5kX2F0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVh cEF0dHJpYnV0ZU51bWJlcik7CisJCX0KKwkJZWxzZQorCQl7CisJCQlyYW5nZVRMRUV4cHIg PSAoRXhwciAqKSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgcmFuZ2VUTEVFeHBy LCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT04pOworCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5 KHJhbmdlVExFRXhwciwgcmFuZ2VfYXR0bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKKwkJCXJl c3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlz dCwgdGxlKTsKKwkJfQogCiAJCS8qIE1hcmsgdGhlIHJhbmdlIGNvbHVtbiBhcyByZXF1aXJp bmcgdXBkYXRlIHBlcm1pc3Npb25zICovCiAJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENv bHMgPSBibXNfYWRkX21lbWJlcih0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggZWNlZDgyZWZkMjMuLmI3ZGY3MzM3ODMyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTU5OCw3ICs1OTgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5 cGUgPGtleXdvcmQ+IGNvbF9uYW1lX2tleXdvcmQgcmVzZXJ2ZWRfa2V5d29yZAogJXR5cGUg PGtleXdvcmQ+IGJhcmVfbGFiZWxfa2V5d29yZAogCi0ldHlwZSA8bm9kZT4JRG9tYWluQ29u c3RyYWludCBUYWJsZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlCisldHlwZSA8bm9kZT4J RG9tYWluQ29uc3RyYWludCBUYWJsZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlIFRhYmxl UGVyaW9kCiAldHlwZSA8aXZhbD4JVGFibGVMaWtlT3B0aW9uTGlzdCBUYWJsZUxpa2VPcHRp b24KICV0eXBlIDxzdHI+CQljb2x1bW5fY29tcHJlc3Npb24gb3B0X2NvbHVtbl9jb21wcmVz c2lvbiBjb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX3N0b3JhZ2UKICV0eXBlIDxsaXN0PglD b2xRdWFsTGlzdApAQCAtMjY2MSw2ICsyNjYxLDI0IEBAIGFsdGVyX3RhYmxlX2NtZDoKIAkJ CQkJbi0+ZGVmID0gKE5vZGUgKikgJDQ7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 CisJCQkvKiBBTFRFUiBUQUJMRSA8bmFtZT4gQUREIFBFUklPRCBGT1IgPG5hbWU+ICg8bmFt ZT4sIDxuYW1lPikgKi8KKwkJCXwgQUREX1AgVGFibGVQZXJpb2QKKwkJCQl7CisJCQkJCUFs dGVyVGFibGVDbWQgKm4gPSBtYWtlTm9kZShBbHRlclRhYmxlQ21kKTsKKwkJCQkJbi0+c3Vi dHlwZSA9IEFUX0FkZFBlcmlvZDsKKwkJCQkJbi0+ZGVmID0gJDI7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KKwkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBEUk9QIFBFUklPRCBG T1IgPG5hbWU+IFtSRVNUUklDVHxDQVNDQURFXSAqLworCQkJfCBEUk9QIFBFUklPRCBGT1Ig bmFtZSBvcHRfZHJvcF9iZWhhdmlvcgorCQkJCXsKKwkJCQkJQWx0ZXJUYWJsZUNtZCAqbiA9 IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQkJCQluLT5zdWJ0eXBlID0gQVRfRHJvcFBl cmlvZDsKKwkJCQkJbi0+bmFtZSA9ICQ0OworCQkJCQluLT5iZWhhdmlvciA9ICQ1OworCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0K IAkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBBREQgQ09OU1RSQUlOVCAuLi4gKi8KIAkJCXwg QUREX1AgVGFibGVDb25zdHJhaW50CiAJCQkJewpAQCAtMzc5MSw4ICszODA5LDEwIEBAIFRh YmxlRWxlbWVudDoKIAkJCWNvbHVtbkRlZgkJCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgVGFi bGVMaWtlQ2xhdXNlCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgVGFibGVDb25zdHJhaW50CQkJ CQl7ICQkID0gJDE7IH0KKwkJCXwgVGFibGVQZXJpb2QJCQkJCQl7ICQkID0gJDE7IH0KIAkJ OwogCisKIFR5cGVkVGFibGVFbGVtZW50OgogCQkJY29sdW1uT3B0aW9ucwkJCQkJCXsgJCQg PSAkMTsgfQogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQgPSAkMTsgfQpAQCAtNDE0 MSw2ICs0MTYxLDE5IEBAIFRhYmxlTGlrZU9wdGlvbjoKIAkJOwogCiAKK1RhYmxlUGVyaW9k OgorCQkJUEVSSU9EIEZPUiBuYW1lICcoJyBuYW1lICcsJyBuYW1lICcpJyBvcHRfZGVmaW5p dGlvbgorCQkJCXsKKwkJCQkJUGVyaW9kRGVmICpuID0gbWFrZU5vZGUoUGVyaW9kRGVmKTsK KwkJCQkJbi0+cGVyaW9kbmFtZSA9ICQzOworCQkJCQluLT5zdGFydGNvbG5hbWUgPSAkNTsK KwkJCQkJbi0+ZW5kY29sbmFtZSA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDk7CisJCQkJ CW4tPmxvY2F0aW9uID0gQDE7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsK KwogLyogQ29uc3RyYWludEVsZW0gc3BlY2lmaWVzIGNvbnN0cmFpbnQgc3ludGF4IHdoaWNo IGlzIG5vdCBlbWJlZGRlZCBpbnRvCiAgKglhIGNvbHVtbiBkZWZpbml0aW9uLiBDb2xDb25z dHJhaW50RWxlbSBzcGVjaWZpZXMgdGhlIGVtYmVkZGVkIGZvcm0uCiAgKiAtIHRob21hcyAx OTk3LTEyLTAzCkBAIC03MjM2LDYgKzcyNjksMTQgQEAgQ29tbWVudFN0bXQ6CiAJCQkJCW4t PmNvbW1lbnQgPSAkOTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQ09N TUVOVCBPTiBQRVJJT0QgYW55X25hbWUgSVMgY29tbWVudF90ZXh0CisJCQkJeworCQkJCQlD b21tZW50U3RtdCAqbiA9IG1ha2VOb2RlKENvbW1lbnRTdG10KTsKKwkJCQkJbi0+b2JqdHlw ZSA9IE9CSkVDVF9QRVJJT0Q7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ0OworCQkJ CQluLT5jb21tZW50ID0gJDY7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8 IENPTU1FTlQgT04gTEFSR0VfUCBPQkpFQ1RfUCBOdW1lcmljT25seSBJUyBjb21tZW50X3Rl eHQKIAkJCQl7CiAJCQkJCUNvbW1lbnRTdG10ICpuID0gbWFrZU5vZGUoQ29tbWVudFN0bXQp OwpAQCAtMTc4MzksNyArMTc4ODAsNiBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFBB U1NJTkcKIAkJCXwgUEFTU1dPUkQKIAkJCXwgUEFUSAotCQkJfCBQRVJJT0QKIAkJCXwgUExB TgogCQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kKQEAgLTE4MTQzLDYgKzE4MTgzLDcgQEAgcmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgT05MWQogCQkJfCBPUgogCQkJfCBPUkRFUgorCQkJfCBQ RVJJT0QKIAkJCXwgUExBQ0lORwogCQkJfCBQUklNQVJZCiAJCQl8IFJFRkVSRU5DRVMKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggODA3NWIxYjhhMWIuLjZlYWQ4 MTQ1MGI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24u YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMjIsNiAr MjIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv aGVhcC5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNs dWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zMjYy LDYgKzMyNjMsNyBAQCBleHBhbmROU0l0ZW1BdHRycyhQYXJzZVN0YXRlICpwc3RhdGUsIFBh cnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCSAgaW50IHN1YmxldmVsc191cCwgYm9v bCByZXF1aXJlX2NvbF9wcml2cywgaW50IGxvY2F0aW9uKQogewogCVJhbmdlVGJsRW50cnkg KnJ0ZSA9IG5zaXRlbS0+cF9ydGU7CisJQml0bWFwc2V0ICAqcGVyaW9kYXR0cyA9IE5VTEw7 CiAJUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvID0gbnNpdGVtLT5wX3Blcm1pbmZvOwog CUxpc3QJICAgKm5hbWVzLAogCQkJICAgKnZhcnM7CkBAIC0zMjg1LDEyICszMjg3LDIwIEBA IGV4cGFuZE5TSXRlbUF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJ dGVtICpuc2l0ZW0sCiAJCXBlcm1pbmZvLT5yZXF1aXJlZFBlcm1zIHw9IEFDTF9TRUxFQ1Q7 CiAJfQogCisJLyogR2V0IFBFUklPRCBjb2x1bW5zIHRvIGV4Y2x1ZGUgKi8KKwlpZiAocnRl LT5ydGVraW5kID09IFJURV9SRUxBVElPTikKKwkJcGVyaW9kYXR0cyA9IGdldF9wZXJpb2Rf YXR0bm9zKHJ0ZS0+cmVsaWQpOworCiAJZm9yYm90aChuYW1lLCBuYW1lcywgdmFyLCB2YXJz KQogCXsKIAkJY2hhcgkgICAqbGFiZWwgPSBzdHJWYWwobGZpcnN0KG5hbWUpKTsKIAkJVmFy CQkgICAqdmFybm9kZSA9IChWYXIgKikgbGZpcnN0KHZhcik7CiAJCVRhcmdldEVudHJ5ICp0 ZTsKIAorCQkvKiBJZiB0aGlzIGNvbHVtbiBpcyBmcm9tIGEgUEVSSU9ELCBza2lwIGl0ICov CisJCWlmIChibXNfaXNfbWVtYmVyKHZhcm5vZGUtPnZhcmF0dG5vLCBwZXJpb2RhdHRzKSkK KwkJCQljb250aW51ZTsKKwogCQl0ZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSB2YXJu b2RlLAogCQkJCQkJCSAoQXR0ck51bWJlcikgcHN0YXRlLT5wX25leHRfcmVzbm8rKywKIAkJ CQkJCQkgbGFiZWwsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAxZTE1 Y2UxMGI0OC4uZDA2ODA5NmZkYTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQu YwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfb3BlcmF0b3IuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKQEAgLTgwLDYgKzgxLDcg QEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQlpc2ZvcmVpZ247CQkvKiB0cnVlIGlmIENSRUFU RS9BTFRFUiBGT1JFSUdOIFRBQkxFICovCiAJYm9vbAkJaXNhbHRlcjsJCS8qIHRydWUgaWYg YWx0ZXJpbmcgZXhpc3RpbmcgdGFibGUgKi8KIAlMaXN0CSAgICpjb2x1bW5zOwkJLyogQ29s dW1uRGVmIGl0ZW1zICovCisJTGlzdAkgICAqcGVyaW9kczsJCS8qIFBlcmlvZERlZiBpdGVt cyAqLwogCUxpc3QJICAgKmNrY29uc3RyYWludHM7CS8qIENIRUNLIGNvbnN0cmFpbnRzICov CiAJTGlzdAkgICAqZmtjb25zdHJhaW50czsJLyogRk9SRUlHTiBLRVkgY29uc3RyYWludHMg Ki8KIAlMaXN0CSAgICppeGNvbnN0cmFpbnRzOwkvKiBpbmRleC1jcmVhdGluZyBjb25zdHJh aW50cyAqLwpAQCAtMTA5LDYgKzExMSw4IEBAIHR5cGVkZWYgc3RydWN0CiAKIHN0YXRpYyB2 b2lkIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwK IAkJCQkJCQkJCSAgQ29sdW1uRGVmICpjb2x1bW4pOworc3RhdGljIHZvaWQgdHJhbnNmb3Jt VGFibGVQZXJpb2QoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKKwkJCQkJCQkJIFBlcmlvZERl ZiAqcGVyaW9kKTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybVRhYmxlQ29uc3RyYWludChDcmVh dGVTdG10Q29udGV4dCAqY3h0LAogCQkJCQkJCQkJIENvbnN0cmFpbnQgKmNvbnN0cmFpbnQp Owogc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsCkBAIC0yMzksNiArMjQzLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVh dGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAljeHQuaW5oUmVsYXRp b25zID0gc3RtdC0+aW5oUmVsYXRpb25zOwogCWN4dC5pc2FsdGVyID0gZmFsc2U7CiAJY3h0 LmNvbHVtbnMgPSBOSUw7CisJY3h0LnBlcmlvZHMgPSBOSUw7CiAJY3h0LmNrY29uc3RyYWlu dHMgPSBOSUw7CiAJY3h0LmZrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lml4Y29uc3RyYWlu dHMgPSBOSUw7CkBAIC0yNzcsNiArMjgyLDEwIEBAIHRyYW5zZm9ybUNyZWF0ZVN0bXQoQ3Jl YXRlU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJCQkJdHJhbnNmb3Jt Q29sdW1uRGVmaW5pdGlvbigmY3h0LCAoQ29sdW1uRGVmICopIGVsZW1lbnQpOwogCQkJCWJy ZWFrOwogCisJCQljYXNlIFRfUGVyaW9kRGVmOgorCQkJCXRyYW5zZm9ybVRhYmxlUGVyaW9k KCZjeHQsIChQZXJpb2REZWYgKikgZWxlbWVudCk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2Ug VF9Db25zdHJhaW50OgogCQkJCXRyYW5zZm9ybVRhYmxlQ29uc3RyYWludCgmY3h0LCAoQ29u c3RyYWludCAqKSBlbGVtZW50KTsKIAkJCQlicmVhazsKQEAgLTMzOSw2ICszNDgsNyBAQCB0 cmFuc2Zvcm1DcmVhdGVTdG10KENyZWF0ZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5 U3RyaW5nKQogCSAqIE91dHB1dCByZXN1bHRzLgogCSAqLwogCXN0bXQtPnRhYmxlRWx0cyA9 IGN4dC5jb2x1bW5zOworCXN0bXQtPnBlcmlvZHMgPSBjeHQucGVyaW9kczsKIAlzdG10LT5j b25zdHJhaW50cyA9IGN4dC5ja2NvbnN0cmFpbnRzOwogCiAJcmVzdWx0ID0gbGFwcGVuZChj eHQuYmxpc3QsIHN0bXQpOwpAQCAtODk1LDYgKzkwNSw5MSBAQCB0cmFuc2Zvcm1Db2x1bW5E ZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQog CX0KIH0KIAordm9pZAordHJhbnNmb3JtUGVyaW9kT3B0aW9ucyhQZXJpb2REZWYgKnBlcmlv ZCkKK3sKKwlMaXN0Q2VsbCAgICpvcHRpb247CisJRGVmRWxlbQkgICAqZGNvbnN0cmFpbnRu YW1lID0gTlVMTDsKKwlEZWZFbGVtCSAgICpkcmFuZ2V0eXBlbmFtZSA9IE5VTEw7CisJRGVm RWxlbQkgICAqZGNvbGV4aXN0cyA9IE5VTEw7CisKKwlmb3JlYWNoKG9wdGlvbiwgcGVyaW9k LT5vcHRpb25zKQorCXsKKwkJRGVmRWxlbSAgICAqZGVmZWwgPSAoRGVmRWxlbSAqKSBsZmly c3Qob3B0aW9uKTsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY2hlY2tfY29u c3RyYWludF9uYW1lIikgPT0gMCkKKwkJeworCQkJaWYgKGRjb25zdHJhaW50bmFtZSkKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkJIGVycm1zZygiY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMiKSkp OworCQkJZGNvbnN0cmFpbnRuYW1lID0gZGVmZWw7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21w KGRlZmVsLT5kZWZuYW1lLCAicmFuZ2V0eXBlIikgPT0gMCkKKwkJeworCQkJaWYgKGRyYW5n ZXR5cGVuYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRh bnQgb3B0aW9ucyIpKSk7CisJCQlkcmFuZ2V0eXBlbmFtZSA9IGRlZmVsOworCQl9CisJCWVs c2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImNvbGV4aXN0cyIpID09IDApCisJCXsK KwkJCWlmIChkY29sZXhpc3RzKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBv ciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlkY29sZXhpc3RzID0gZGVmZWw7CisJCX0K KwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJvcHRpb24gXCIlc1wiIG5vdCByZWNvZ25pemVk IiwgZGVmZWwtPmRlZm5hbWUpKSk7CisJfQorCisJaWYgKGRjb25zdHJhaW50bmFtZSAhPSBO VUxMKQorCQlwZXJpb2QtPmNvbnN0cmFpbnRuYW1lID0gZGVmR2V0U3RyaW5nKGRjb25zdHJh aW50bmFtZSk7CisJZWxzZQorCQlwZXJpb2QtPmNvbnN0cmFpbnRuYW1lID0gTlVMTDsKKwor CWlmIChkcmFuZ2V0eXBlbmFtZSAhPSBOVUxMKQorCQlwZXJpb2QtPnJhbmdldHlwZW5hbWUg PSBkZWZHZXRTdHJpbmcoZHJhbmdldHlwZW5hbWUpOworCWVsc2UKKwkJcGVyaW9kLT5yYW5n ZXR5cGVuYW1lID0gTlVMTDsKKworCWlmIChkY29sZXhpc3RzICE9IE5VTEwpCisJCXBlcmlv ZC0+Y29sZXhpc3RzID0gZGVmR2V0Qm9vbGVhbihkY29sZXhpc3RzKTsKKwllbHNlCisJCXBl cmlvZC0+Y29sZXhpc3RzID0gZmFsc2U7Cit9CisKKy8qCisgKiB0cmFuc2Zvcm1UYWJsZVBl cmlvZAorICoJCXRyYW5zZm9ybSBhIFBlcmlvZERlZiBub2RlIHdpdGhpbiBDUkVBVEUgVEFC TEUKKyAqLworc3RhdGljIHZvaWQKK3RyYW5zZm9ybVRhYmxlUGVyaW9kKENyZWF0ZVN0bXRD b250ZXh0ICpjeHQsIFBlcmlvZERlZiAqcGVyaW9kKQoreworCWlmIChzdHJjbXAocGVyaW9k LT5wZXJpb2RuYW1lLCAic3lzdGVtX3RpbWUiKSA9PSAwKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkg ZXJybXNnKCJQRVJJT0QgRk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQiKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwKKwkJCQkJCQkJCQlwZXJpb2Qt PmxvY2F0aW9uKSkpOworCisJaWYgKHN0cmNtcChwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcGVy aW9kLT5lbmRjb2xuYW1lKSA9PSAwKQorCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJjb2x1 bW4gXCIlc1wiIGNhbid0IGJlIHRoZSBzdGFydCBhbmQgZW5kIGNvbHVtbiBmb3IgcGVyaW9k IFwiJXNcIiIsCisJCQkJCQlwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcGVyaW9kLT5wZXJpb2Ru YW1lKSkpOworCisJLyoKKwkgKiBEZXRlcm1pbmUgdGhlIGNvbHVtbiBpbmZvIGFuZCByYW5n ZSB0eXBlIHNvIHRoYXQgdHJhbnNmb3JtSW5kZXhDb25zdHJhaW50cworCSAqIGtub3dzIGhv dyB0byBjcmVhdGUgUFJJTUFSWSBLRVkvVU5JUVVFIGNvbnN0cmFpbnRzIHVzaW5nIHRoaXMg UEVSSU9ELgorCSAqLworCXRyYW5zZm9ybVBlcmlvZE9wdGlvbnMocGVyaW9kKTsKKworCWN4 dC0+cGVyaW9kcyA9IGxhcHBlbmQoY3h0LT5wZXJpb2RzLCBwZXJpb2QpOworfQorCiAvKgog ICogdHJhbnNmb3JtVGFibGVDb25zdHJhaW50CiAgKgkJdHJhbnNmb3JtIGEgQ29uc3RyYWlu dCBub2RlIHdpdGhpbiBDUkVBVEUgVEFCTEUgb3IgQUxURVIgVEFCTEUKQEAgLTk4Miw2ICsx MDc3LDcgQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpj eHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAlBdHRyTnVtYmVyCXBhcmVu dF9hdHRubzsKIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlUdXBsZURlc2MJdHVwbGVEZXNjOwor CUJpdG1hcHNldCAgKnBlcmlvZGF0dHM7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKIAljaGFy CSAgICpjb21tZW50OwogCVBhcnNlQ2FsbGJhY2tTdGF0ZSBwY2JzdGF0ZTsKQEAgLTEwMzMs NiArMTEyOSw3IEBAIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4 dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhCiAJfQogCiAJdHVwbGVE ZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWxhdGlvbik7CisJcGVyaW9kYXR0cyA9IGdldF9w ZXJpb2RfYXR0bm9zKFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pKTsKIAogCS8qCiAJICog SW5zZXJ0IHRoZSBjb3BpZWQgYXR0cmlidXRlcyBpbnRvIHRoZSBjeHQgZm9yIHRoZSBuZXcg dGFibGUgZGVmaW5pdGlvbi4KQEAgLTEwNDIsMTAgKzExMzksMTggQEAgdHJhbnNmb3JtVGFi bGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAq dGFibGVfbGlrZV9jbGEKIAlmb3IgKHBhcmVudF9hdHRubyA9IDE7IHBhcmVudF9hdHRubyA8 PSB0dXBsZURlc2MtPm5hdHRzOwogCQkgcGFyZW50X2F0dG5vKyspCiAJewotCQlGb3JtX3Bn X2F0dHJpYnV0ZSBhdHRyaWJ1dGUgPSBUdXBsZURlc2NBdHRyKHR1cGxlRGVzYywKLQkJCQkJ CQkJCQkJCQlwYXJlbnRfYXR0bm8gLSAxKTsKKwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cmli dXRlOwogCQlDb2x1bW5EZWYgICpkZWY7CiAKKwkJLyoKKwkJICogSWYgdGhpcyBjb2x1bW4g aXMgZnJvbSBhIFBFUklPRCwgc2tpcCBpdAorCQkgKiAoc2luY2UgTElLRSBuZXZlciBjb3Bp ZXMgUEVSSU9EcykuCisJCSAqLworCQlpZiAoYm1zX2lzX21lbWJlcihwYXJlbnRfYXR0bm8s IHBlcmlvZGF0dHMpKQorCQkJY29udGludWU7CisKKwkJYXR0cmlidXRlID0gVHVwbGVEZXNj QXR0cih0dXBsZURlc2MsIHBhcmVudF9hdHRubyAtIDEpOworCiAJCS8qCiAJCSAqIElnbm9y ZSBkcm9wcGVkIGNvbHVtbnMgaW4gdGhlIHBhcmVudC4KIAkJICovCkBAIC0yNDMyLDYgKzI1 MzcsNyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3RyYWlu dCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJCWNoYXIJICAgKmtleSA9IHN0clZhbChs Zmlyc3QobGMpKTsKIAkJCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAJCQlib29sCQlmb3JjZWRf bm90X251bGwgPSBmYWxzZTsKKwkJCWJvb2wJCWhhc3BlcmlvZCA9IGZhbHNlOwogCQkJQ29s dW1uRGVmICAqY29sdW1uID0gTlVMTDsKIAkJCUxpc3RDZWxsICAgKmNvbHVtbnM7CiAJCQlJ bmRleEVsZW0gICppcGFyYW07CkBAIC0yNDUwLDE5ICsyNTU2LDQwIEBAIHRyYW5zZm9ybUlu ZGV4Q29uc3RyYWludChDb25zdHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4 dCAqY3h0KQogCQkJaWYgKCFmb3VuZCkKIAkJCQljb2x1bW4gPSBOVUxMOwogCisJCQkvKiBJ ZiB0aGUga2V5IGlzIFdJVEhPVVQgT1ZFUkxBUFMsIGEgUEVSSU9EIHdpbGwgd29yayB0b28u ICovCisJCQlpZiAoIWZvdW5kICYmIGNvbnN0cmFpbnQtPndpdGhvdXRfb3ZlcmxhcHMgJiYK KwkJCQlsYyA9PSBsaXN0X2xhc3RfY2VsbChjb25zdHJhaW50LT5rZXlzKSkKKwkJCXsKKwkJ CQlQZXJpb2REZWYgICpwZXJpb2QgPSBOVUxMOworCisJCQkJZm9yZWFjaChjb2x1bW5zLCBj eHQtPnBlcmlvZHMpCisJCQkJeworCQkJCQlwZXJpb2QgPSBsZmlyc3Rfbm9kZShQZXJpb2RE ZWYsIGNvbHVtbnMpOworCQkJCQlpZiAoc3RyY21wKHBlcmlvZC0+cGVyaW9kbmFtZSwga2V5 KSA9PSAwKQorCQkJCQl7CisJCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJCQloYXNwZXJpb2Qg PSB0cnVlOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisJCQl9CisKIAkJCWlmIChm b3VuZCkKIAkJCXsKLQkJCQkvKgotCQkJCSAqIGNvbHVtbiBpcyBkZWZpbmVkIGluIHRoZSBu ZXcgdGFibGUuICBGb3IgUFJJTUFSWSBLRVksIHdlCi0JCQkJICogY2FuIGFwcGx5IHRoZSBu b3QtbnVsbCBjb25zdHJhaW50IGNoZWFwbHkgaGVyZSAuLi4gdW5sZXNzCi0JCQkJICogdGhl IGNvbHVtbiBpcyBtYXJrZWQgaXNfZnJvbV90eXBlLCBpbiB3aGljaCBjYXNlIG1hcmtpbmcg aXQKLQkJCQkgKiBoZXJlIHdvdWxkIGJlIGluZWZmZWN0aXZlIChzZWUgTWVyZ2VBdHRyaWJ1 dGVzKS4KLQkJCQkgKi8KLQkJCQlpZiAoY29uc3RyYWludC0+Y29udHlwZSA9PSBDT05TVFJf UFJJTUFSWSAmJgotCQkJCQkhY29sdW1uLT5pc19mcm9tX3R5cGUpCisJCQkJaWYgKGNvbHVt bikKIAkJCQl7Ci0JCQkJCWNvbHVtbi0+aXNfbm90X251bGwgPSB0cnVlOwotCQkJCQlmb3Jj ZWRfbm90X251bGwgPSB0cnVlOworCQkJCQkvKgorCQkJCQkgKiBjb2x1bW4gaXMgZGVmaW5l ZCBpbiB0aGUgbmV3IHRhYmxlLiAgRm9yIFBSSU1BUlkgS0VZLCB3ZQorCQkJCQkgKiBjYW4g YXBwbHkgdGhlIG5vdC1udWxsIGNvbnN0cmFpbnQgY2hlYXBseSBoZXJlIC4uLiB1bmxlc3MK KwkJCQkJICogdGhlIGNvbHVtbiBpcyBtYXJrZWQgaXNfZnJvbV90eXBlLCBpbiB3aGljaCBj YXNlIG1hcmtpbmcgaXQKKwkJCQkJICogaGVyZSB3b3VsZCBiZSBpbmVmZmVjdGl2ZSAoc2Vl IE1lcmdlQXR0cmlidXRlcykuCisJCQkJCSAqLworCQkJCQlpZiAoY29uc3RyYWludC0+Y29u dHlwZSA9PSBDT05TVFJfUFJJTUFSWSAmJgorCQkJCQkJIWNvbHVtbi0+aXNfZnJvbV90eXBl KQorCQkJCQl7CisJCQkJCQljb2x1bW4tPmlzX25vdF9udWxsID0gdHJ1ZTsKKwkJCQkJCWZv cmNlZF9ub3RfbnVsbCA9IHRydWU7CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCQllbHNlIGlm IChTeXN0ZW1BdHRyaWJ1dGVCeU5hbWUoa2V5KSAhPSBOVUxMKQpAQCAtMjU4Niw3ICsyNzEz LDEyIEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25zdHJhaW50ICpjb25zdHJhaW50 LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJCQkJfQogCQkJCQl9CiAJCQkJfQotCQkJ CWlmIChmb3VuZCkKKwkJCQkvKgorCQkJCSAqIEluIENSRUFURSBUQUJMRSB3ZSBkb24ndCBr bm93IFBFUklPRHMnIHJhbmdldHlwZSB5ZXQsCisJCQkJICogYnV0IHdlIGtub3cgaXQgd2ls bCBiZSBhIHJhbmdlL211bHRpcmFuZ2UuIFNvIGlmIHdlCisJCQkJICogaGF2ZSBhIFBFUklP RCB0aGVuIHdlJ3JlIHNhZmUuCisJCQkJICovCisJCQkJaWYgKGZvdW5kICYmICFoYXNwZXJp b2QpCiAJCQkJewogCQkJCQlpZiAoIU9pZElzVmFsaWQodHlwaWQpICYmIGNvbHVtbikKIAkJ CQkJCXR5cGlkID0gdHlwZW5hbWVUeXBlSWQoTlVMTCwgY29sdW1uLT50eXBlTmFtZSk7CkBA IC0yOTM3LDYgKzMwNjksMTAgQEAgdHJhbnNmb3JtSW5kZXhTdG10KE9pZCByZWxpZCwgSW5k ZXhTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAkJfQogCX0KIAorCS8q IHRha2UgY2FyZSBvZiB0aGUgcGVyaW9kICovCisJaWYgKHN0bXQtPnBlcmlvZCkKKwkJc3Rt dC0+cGVyaW9kLT5vaWQgPSBnZXRfcGVyaW9kX29pZChyZWxpZCwgc3RtdC0+cGVyaW9kLT5w ZXJpb2RuYW1lLCBmYWxzZSk7CisKIAkvKgogCSAqIENoZWNrIHRoYXQgb25seSB0aGUgYmFz ZSByZWwgaXMgbWVudGlvbmVkLiAgKFRoaXMgc2hvdWxkIGJlIGRlYWQgY29kZQogCSAqIG5v dyB0aGF0IGFkZF9taXNzaW5nX2Zyb20gaXMgaGlzdG9yeS4pCkBAIC0zMzk0LDYgKzM1MzAs NyBAQCB0cmFuc2Zvcm1BbHRlclRhYmxlU3RtdChPaWQgcmVsaWQsIEFsdGVyVGFibGVTdG10 ICpzdG10LAogCWN4dC5pbmhSZWxhdGlvbnMgPSBOSUw7CiAJY3h0LmlzYWx0ZXIgPSB0cnVl OwogCWN4dC5jb2x1bW5zID0gTklMOworCWN4dC5wZXJpb2RzID0gTklMOwogCWN4dC5ja2Nv bnN0cmFpbnRzID0gTklMOwogCWN4dC5ma2NvbnN0cmFpbnRzID0gTklMOwogCWN4dC5peGNv bnN0cmFpbnRzID0gTklMOwpAQCAtMzQ1NCw2ICszNTkxLDIyIEBAIHRyYW5zZm9ybUFsdGVy VGFibGVTdG10KE9pZCByZWxpZCwgQWx0ZXJUYWJsZVN0bXQgKnN0bXQsCiAJCQkJCQkgKGlu dCkgbm9kZVRhZyhjbWQtPmRlZikpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIEFUX0FkZFBl cmlvZDoKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFdlIGNhbid0IGNhbGwgdHJhbnNmb3Jt VGFibGVQZXJpb2QgaGVyZQorCQkJCQkgKiBiZWNhdXNlIGl0IGxvb2tzIGF0IGN4dC0+Y29s dW1ucworCQkJCQkgKiBhbmQgaW4gYW4gQUxURVIgc3RhdGVtZW50IHRoZSBjb2x1bW4gbWln aHQgYWxyZWFkeSBleGlzdAorCQkJCQkgKiAob3Igbm90KS4KKwkJCQkJICovCisJCQkJCS8v IFRPRE86IGl0IGRvZXNuJ3QgbG9vayBhdCBjeHQtPmNvbHVtbnMgYW55IG1vcmUuCisJCQkJ CS8vIFNvIHNob3VsZCB3ZSBjYWxsIGl0IGhlcmU/IFRvIGRvIHdoYXQ/CisJCQkJCS8vIFdl bGwgaXQgbWlnaHQgYmUgdXNlZnVsIHRvIGtub3cgYWJvdXQgaXQgaW4gY3h0LT5wZXJpb2Rz IGF0IGxlYXN0LgorCQkJCQl0cmFuc2Zvcm1UYWJsZVBlcmlvZCgmY3h0LCBjYXN0Tm9kZShQ ZXJpb2REZWYsIGNtZC0+ZGVmKSk7CisJCQkJCW5ld2NtZHMgPSBsYXBwZW5kKG5ld2NtZHMs IGNtZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwogCQkJY2FzZSBBVF9BbHRlckNvbHVtblR5 cGU6CiAJCQkJewogCQkJCQlDb2x1bW5EZWYgICpkZWYgPSBjYXN0Tm9kZShDb2x1bW5EZWYs IGNtZC0+ZGVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9NYWtlZmlsZQppbmRleCA4NWU1ZWFmMzJlYi4u OWE1ZWYxYTExYTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9NYWtlZmls ZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUKQEAgLTc4LDYgKzc4LDcg QEAgT0JKUyA9IFwKIAlvcmFjbGVfY29tcGF0Lm8gXAogCW9yZGVyZWRzZXRhZ2dzLm8gXAog CXBhcnRpdGlvbmZ1bmNzLm8gXAorCXBlcmlvZC5vIFwKIAlwZ19sb2NhbGUubyBcCiAJcGdf bG9jYWxlX2ljdS5vIFwKIAlwZ19sb2NhbGVfbGliYy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZXJpb2QuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZXJp b2QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGVkNDMwNGUx NmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMK QEAgLTAsMCArMSw1NiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGVyaW9k LmMKKyAqCSAgRnVuY3Rpb25zIHRvIHN1cHBvcnQgcGVyaW9kcy4KKyAqCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNB VElPTgorICoJICBzcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMKKyAqCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRl ICJleGVjdXRvci90dXB0YWJsZS5oIgorI2luY2x1ZGUgImZtZ3IuaCIKKyNpbmNsdWRlICJu b2Rlcy9wcmltbm9kZXMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdycHJvdG9zLmgiCisjaW5j bHVkZSAidXRpbHMvcGVyaW9kLmgiCisjaW5jbHVkZSAidXRpbHMvcmFuZ2V0eXBlcy5oIgor CitEYXR1bSBwZXJpb2RfdG9fcmFuZ2UoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBzdGFy dGF0dG5vLCBpbnQgZW5kYXR0bm8sIE9pZCByYW5nZXR5cGUpCit7CisJRGF0dW0gc3RhcnR2 YWx1ZTsKKwlEYXR1bSBlbmR2YWx1ZTsKKwlEYXR1bSByZXN1bHQ7CisJYm9vbAlzdGFydGlz bnVsbDsKKwlib29sCWVuZGlzbnVsbDsKKwlMT0NBTF9GQ0lORk8oZmNpbmZvLCAyKTsKKwlG bWdySW5mbwlmbGluZm87CisJRnVuY0V4cHIgICAqZjsKKworCUluaXRGdW5jdGlvbkNhbGxJ bmZvRGF0YSgqZmNpbmZvLCAmZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxMLCBOVUxMKTsK KwlmID0gbWFrZU5vZGUoRnVuY0V4cHIpOworCWYtPmZ1bmNyZXN1bHR0eXBlID0gcmFuZ2V0 eXBlOworCWZsaW5mby5mbl9leHByID0gKE5vZGUgKikgZjsKKwlmbGluZm8uZm5fZXh0cmEg PSBOVUxMOworCisJLyogY29tcHV0ZSBvbGR2YWx1ZSAqLworCXN0YXJ0dmFsdWUgPSBzbG90 X2dldGF0dHIoc2xvdCwgc3RhcnRhdHRubywgJnN0YXJ0aXNudWxsKTsKKwllbmR2YWx1ZSA9 IHNsb3RfZ2V0YXR0cihzbG90LCBlbmRhdHRubywgJmVuZGlzbnVsbCk7CisKKwlmY2luZm8t PmFyZ3NbMF0udmFsdWUgPSBzdGFydHZhbHVlOworCWZjaW5mby0+YXJnc1swXS5pc251bGwg PSBzdGFydGlzbnVsbDsKKwlmY2luZm8tPmFyZ3NbMV0udmFsdWUgPSBlbmR2YWx1ZTsKKwlm Y2luZm8tPmFyZ3NbMV0uaXNudWxsID0gZW5kaXNudWxsOworCisJcmVzdWx0ID0gcmFuZ2Vf Y29uc3RydWN0b3IyKGZjaW5mbyk7CisJaWYgKGZjaW5mby0+aXNudWxsKQorCQllbG9nKEVS Uk9SLCAiZnVuY3Rpb24gJXUgcmV0dXJuZWQgTlVMTCIsIGZsaW5mby5mbl9vaWQpOworCisJ cmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5k ZXggMjU0NzMxODMwYmEuLjA3OWJmOTUzZGUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9s c3lzY2FjaGUuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFt ZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGNsYXNzLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19vcGVyYXRvci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcmFuZ2UuaCIKQEAgLTk5NSw2 ICs5OTYsNjggQEAgZ2V0X2F0dG9wdGlvbnMoT2lkIHJlbGlkLCBpbnQxNiBhdHRudW0pCiAJ cmV0dXJuIHJlc3VsdDsKIH0KIAorLyoJCQkJLS0tLS0tLS0tLSBQR19QRVJJT0QgQ0FDSEUg LS0tLS0tLS0tLQkJCQkgKi8KKworLyoKKyAqIGdldF9wZXJpb2RuYW1lIC0gZ2l2ZW4gaXRz IE9JRCwgbG9vayB1cCBhIHBlcmlvZAorICoKKyAqIElmIG1pc3Npbmdfb2sgaXMgZmFsc2Us IHRocm93IGFuIGVycm9yIGlmIHRoZSBwZXJpb2QgaXMgbm90IGZvdW5kLgorICogSWYgdHJ1 ZSwganVzdCByZXR1cm4gSW52YWxpZE9pZC4KKyAqLworY2hhciAqCitnZXRfcGVyaW9kbmFt ZShPaWQgcGVyaW9kaWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHA7CisK Kwl0cCA9IFNlYXJjaFN5c0NhY2hlMShQRVJJT0RPSUQsCisJCQkJCQkgT2JqZWN0SWRHZXRE YXR1bShwZXJpb2RpZCkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZv cm1fcGdfcGVyaW9kIHBlcmlvZF90dXAgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVCh0 cCk7CisJCWNoYXIJICAgKnJlc3VsdDsKKworCQlyZXN1bHQgPSBwc3RyZHVwKE5hbWVTdHIo cGVyaW9kX3R1cC0+cGVybmFtZSkpOworCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQlyZXR1 cm4gcmVzdWx0OworCX0KKworCWlmICghbWlzc2luZ19vaykKKwkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBlcmlvZCAlZCIsCisJCQkgcGVyaW9kaWQpOworCXJl dHVybiBOVUxMOworfQorCisvKgorICogZ2V0X3BlcmlvZF9vaWQgLSBnZXRzIGl0cyByZWxh dGlvbiBhbmQgbmFtZSwgbG9vayB1cCBhIHBlcmlvZAorICoKKyAqIElmIG1pc3Npbmdfb2sg aXMgZmFsc2UsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYXN0IGlzIG5vdCBmb3VuZC4gIElm CisgKiB0cnVlLCBqdXN0IHJldHVybiBJbnZhbGlkT2lkLgorICovCitPaWQKK2dldF9wZXJp b2Rfb2lkKE9pZCByZWxpZCwgY29uc3QgY2hhciAqcGVyaW9kbmFtZSwgYm9vbCBtaXNzaW5n X29rKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUyKFBFUklP RE5BTUUsCisJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkgUG9pbnRl ckdldERhdHVtKHBlcmlvZG5hbWUpKTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkK Kwl7CisJCUZvcm1fcGdfcGVyaW9kIHBlcmlvZF90dXAgPSAoRm9ybV9wZ19wZXJpb2QpIEdF VFNUUlVDVCh0cCk7CisJCU9pZCByZXN1bHQ7CisKKwkJcmVzdWx0ID0gcGVyaW9kX3R1cC0+ b2lkOworCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQlyZXR1cm4gcmVzdWx0OworCX0KKwor CWlmICghbWlzc2luZ19vaykKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIHBlcmlvZCAlcyIsCisJCQkgcGVyaW9kbmFtZSk7CisJcmV0dXJuIEludmFsaWRPaWQ7 Cit9CisKIC8qCQkJCS0tLS0tLS0tLS0gUEdfQ0FTVCBDQUNIRSAtLS0tLS0tLS0tCQkJCQkg Ki8KIAogLyoKQEAgLTM1NTMsNiArMzYxNiwzMCBAQCBnZXRfbXVsdGlyYW5nZV9yYW5nZShP aWQgbXVsdGlyYW5nZU9pZCkKIAkJcmV0dXJuIEludmFsaWRPaWQ7CiB9CiAKK09pZAorZ2V0 X3N1YnR5cGVfcmFuZ2UoT2lkIHN1YnR5cGVPaWQpCit7CisJQ2F0Q0xpc3QgKmNhdGxpc3Q7 CisJT2lkCXJlc3VsdCA9IEludmFsaWRPaWQ7CisKKwljYXRsaXN0ID0gU2VhcmNoU3lzQ2Fj aGVMaXN0MShSQU5HRVNVQlRZUEUsIE9iamVjdElkR2V0RGF0dW0oc3VidHlwZU9pZCkpOwor CisJaWYgKGNhdGxpc3QtPm5fbWVtYmVycyA9PSAxKQorCXsKKwkJSGVhcFR1cGxlCXR1cGxl ID0gJmNhdGxpc3QtPm1lbWJlcnNbMF0tPnR1cGxlOworCQlGb3JtX3BnX3JhbmdlIHJuZ3R1 cCA9IChGb3JtX3BnX3JhbmdlKSBHRVRTVFJVQ1QodHVwbGUpOworCQlyZXN1bHQgPSBybmd0 dXAtPnJuZ3R5cGlkOworCQlSZWxlYXNlQ2F0Q2FjaGVMaXN0KGNhdGxpc3QpOworCX0KKwll bHNlIGlmIChjYXRsaXN0LT5uX21lbWJlcnMgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5ERVRFUk1JTkFURV9EQVRBVFlQRSksCisJCQkJIGVycm1z ZygiYW1iaWd1b3VzIHJhbmdlIGZvciB0eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2Jl KHN1YnR5cGVPaWQpKSkpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoJCQkJLS0tLS0t LS0tLSBQR19JTkRFWCBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLwogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDhjMjBjMjYzYzRiLi5iZjJmNTVkNWEx NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzcwNCw2ICsz NzA0LDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3Qg VG9jRW50cnkgKnRlKQogCQkJIHN0cmNtcCh0eXBlLCAiREFUQUJBU0UgUFJPUEVSVElFUyIp ID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIkRFRkFVTFQiKSA9PSAwIHx8CiAJCQkgc3Ry Y21wKHR5cGUsICJGSyBDT05TVFJBSU5UIikgPT0gMCB8fAorCQkJIHN0cmNtcCh0eXBlLCAi UEVSSU9EIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiSU5ERVgiKSA9PSAwIHx8CiAJ CQkgc3RyY21wKHR5cGUsICJSVUxFIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiVFJJ R0dFUiIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDFiNDdjMzg4Y2VkLi5iYzNlNjBm MzFkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC02Nzg1LDYgKzY3ODUsNyBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9yZWx0eXBlOwogCWlu dAkJCWlfcmVsb3duZXI7CiAJaW50CQkJaV9yZWxjaGVja3M7CisJaW50CQkJaV9ucGVyaW9k OwogCWludAkJCWlfcmVsaGFzaW5kZXg7CiAJaW50CQkJaV9yZWxoYXNydWxlczsKIAlpbnQJ CQlpX3JlbHBhZ2VzOwpAQCAtNjg2Miw2ICs2ODYzLDE0IEBAIGdldFRhYmxlcyhBcmNoaXZl ICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CiAJCQkJCQkJICJjLnJlbGhhc29pZHMsICIpOwogCisJLyogSW4gUEcxOCB1cHdhcmRzIHdl IGhhdmUgUEVSSU9Ecy4gKi8KKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxODAwMDAp CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiKFNFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3BlcmlvZCBXSEVSRSBwZXJyZWxpZCA9IGMub2lkKSBBUyBucGVyaW9k cywgIik7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkg IjAgQVMgbnBlcmlvZHMsICIpOworCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gOTAz MDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiYy5yZWxpc3Bv cHVsYXRlZCwgIik7CkBAIC02OTk5LDYgKzcwMDgsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAq Zm91dCwgaW50ICpudW1UYWJsZXMpCiAJaV9yZWx0eXBlID0gUFFmbnVtYmVyKHJlcywgInJl bHR5cGUiKTsKIAlpX3JlbG93bmVyID0gUFFmbnVtYmVyKHJlcywgInJlbG93bmVyIik7CiAJ aV9yZWxjaGVja3MgPSBQUWZudW1iZXIocmVzLCAicmVsY2hlY2tzIik7CisJaV9ucGVyaW9k ID0gUFFmbnVtYmVyKHJlcywgIm5wZXJpb2RzIik7CiAJaV9yZWxoYXNpbmRleCA9IFBRZm51 bWJlcihyZXMsICJyZWxoYXNpbmRleCIpOwogCWlfcmVsaGFzcnVsZXMgPSBQUWZudW1iZXIo cmVzLCAicmVsaGFzcnVsZXMiKTsKIAlpX3JlbHBhZ2VzID0gUFFmbnVtYmVyKHJlcywgInJl bHBhZ2VzIik7CkBAIC03MDgyLDYgKzcwOTIsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91 dCwgaW50ICpudW1UYWJsZXMpCiAJCX0KIAkJdGJsaW5mb1tpXS5yZWx0YWJsZXNwYWNlID0g cGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbHRhYmxlc3BhY2UpKTsKIAkJdGJs aW5mb1tpXS5oYXNvaWRzID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxoYXNv aWRzKSwgInQiKSA9PSAwKTsKKwkJdGJsaW5mb1tpXS5ucGVyaW9kID0gYXRvaShQUWdldHZh bHVlKHJlcywgaSwgaV9ucGVyaW9kKSk7CiAJCXRibGluZm9baV0uaGFzdHJpZ2dlcnMgPSAo c3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbGhhc3RyaWdnZXJzKSwgInQiKSA9PSAw KTsKIAkJdGJsaW5mb1tpXS5yZWxwZXJzaXN0ZW5jZSA9ICooUFFnZXR2YWx1ZShyZXMsIGks IGlfcmVscGVyc2lzdGVuY2UpKTsKIAkJdGJsaW5mb1tpXS5yZWxpc3BvcHVsYXRlZCA9IChz dHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVsaXNwb3B1bGF0ZWQpLCAidCIpID09IDAp OwpAQCAtODcxNSw3ICs4NzI2LDcgQEAgZ2V0VHJhbnNmb3JtcyhBcmNoaXZlICpmb3V0KQog LyoKICAqIGdldFRhYmxlQXR0cnMgLQogICoJICBmb3IgZWFjaCBpbnRlcmVzdGluZyB0YWJs ZSwgcmVhZCBpbmZvIGFib3V0IGl0cyBhdHRyaWJ1dGVzCi0gKgkgIChuYW1lcywgdHlwZXMs IGRlZmF1bHQgdmFsdWVzLCBDSEVDSyBjb25zdHJhaW50cywgZXRjKQorICoJICAobmFtZXMs IHR5cGVzLCBkZWZhdWx0IHZhbHVlcywgQ0hFQ0sgY29uc3RyYWludHMsIFBFUklPRHMsIGV0 YykKICAqCiAgKgltb2RpZmllcyB0YmxpbmZvCiAgKi8KQEAgLTg3NjUsNiArODc3Niw4IEBA IGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQg bnVtVGFibGVzKQogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtVGFibGVzOyBpKyspCiAJewog CQlUYWJsZUluZm8gICp0YmluZm8gPSAmdGJsaW5mb1tpXTsKKwkJaW50CQkJbmR1bXBhYmxl Y2hlY2tzOwkvKiBudW1iZXIgb2YgQ0hFQ0sgY29uc3RyYWludHMgdGhhdCBkbworCQkJCQkJ CQkJCSAgIG5vdCBiZWxvbmcgdG8gYSBwZXJpb2QgKi8KIAogCQkvKiBEb24ndCBib3RoZXIg dG8gY29sbGVjdCBpbmZvIGZvciBzZXF1ZW5jZXMgKi8KIAkJaWYgKHRiaW5mby0+cmVsa2lu ZCA9PSBSRUxLSU5EX1NFUVVFTkNFKQpAQCAtODc3OSw3ICs4NzkyLDggQEAgZ2V0VGFibGVB dHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMp CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlckNoYXIodGJsb2lkcywgJywnKTsKIAkJYXBwZW5kUFFF eHBCdWZmZXIodGJsb2lkcywgIiV1IiwgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CiAKLQkJ aWYgKHRiaW5mby0+bmNoZWNrID4gMCkKKwkJbmR1bXBhYmxlY2hlY2tzID0gdGJpbmZvLT5u Y2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7CisJCWlmIChuZHVtcGFibGVjaGVja3MgPiAwKQog CQl7CiAJCQkvKiBBbHNvIG1ha2UgYSBsaXN0IG9mIHRoZSBvbmVzIHdpdGggY2hlY2sgY29u c3RyYWludHMgKi8KIAkJCWlmIChjaGVja29pZHMtPmxlbiA+IDEpIC8qIGRvIHdlIGhhdmUg bW9yZSB0aGFuIHRoZSAneyc/ICovCkBAIC05MTQxLDE1ICs5MTU1LDM2IEBAIGdldFRhYmxl QXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVz KQogCQlwZ19sb2dfaW5mbygiZmluZGluZyB0YWJsZSBjaGVjayBjb25zdHJhaW50cyIpOwog CiAJCXJlc2V0UFFFeHBCdWZmZXIocSk7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyKHEsCi0JCQkJ CQkgICJTRUxFQ1QgYy50YWJsZW9pZCwgYy5vaWQsIGNvbnJlbGlkLCBjb25uYW1lLCAiCi0J CQkJCQkgICJwZ19jYXRhbG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKGMub2lkKSBBUyBjb25z cmMsICIKLQkJCQkJCSAgImNvbmlzbG9jYWwsIGNvbnZhbGlkYXRlZCAiCi0JCQkJCQkgICJG Uk9NIHVubmVzdCgnJXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmModGJsb2lkKVxuIgot CQkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgYyBPTiAoc3JjLnRibG9p ZCA9IGMuY29ucmVsaWQpXG4iCi0JCQkJCQkgICJXSEVSRSBjb250eXBlID0gJ2MnICIKLQkJ CQkJCSAgIk9SREVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIsCi0JCQkJCQkgIGNoZWNr b2lkcy0+ZGF0YSk7CisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE4MDAwMCkKKwkJ eworCQkJLyoKKwkJCSAqIFBFUklPRHMgd2VyZSBhZGRlZCBpbiB2MTggYW5kIHdlIGRvbid0 IGR1bXAgQ0hFQ0sKKwkJCSAqIGNvbnN0cmFpbnRzIGZvciB0aGVtLgorCQkJICovCisJCQlh cHBlbmRQUUV4cEJ1ZmZlcihxLAorCQkJCQkJCSAgIlNFTEVDVCBjLnRhYmxlb2lkLCBjLm9p ZCwgY29ucmVsaWQsIGNvbm5hbWUsICIKKwkJCQkJCQkgICJwZ19jYXRhbG9nLnBnX2dldF9j b25zdHJhaW50ZGVmKGMub2lkKSBBUyBjb25zcmMsICIKKwkJCQkJCQkgICJjb25pc2xvY2Fs LCBjb252YWxpZGF0ZWQgIgorCQkJCQkJCSAgIkZST00gdW5uZXN0KCclcyc6OnBnX2NhdGFs b2cub2lkW10pIEFTIHNyYyh0YmxvaWQpXG4iCisJCQkJCQkJICAiSk9JTiBwZ19jYXRhbG9n LnBnX2NvbnN0cmFpbnQgYyBPTiAoc3JjLnRibG9pZCA9IGMuY29ucmVsaWQpXG4iCisJCQkJ CQkJICAiV0hFUkUgY29udHlwZSA9ICdjJyAiCisJCQkJCQkJICAiICAgQU5EIE5PVCBFWElT VFMgKFNFTEVDVCBGUk9NIHBnX3BlcmlvZCAiCisJCQkJCQkJICAiICAgICAgICAgICAgICAg ICAgIFdIRVJFIChwZXJyZWxpZCwgcGVyY29uc3RyYWludCkgPSAoY29ucmVsaWQsIGMub2lk KSkgIgorCQkJCQkJCSAgIk9SREVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIsCisJCQkJ CQkJICBjaGVja29pZHMtPmRhdGEpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5kUFFF eHBCdWZmZXIocSwKKwkJCQkJCQkgICJTRUxFQ1QgYy50YWJsZW9pZCwgYy5vaWQsIGNvbnJl bGlkLCBjb25uYW1lLCAiCisJCQkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWlu dGRlZihjLm9pZCkgQVMgY29uc3JjLCAiCisJCQkJCQkJICAiY29uaXNsb2NhbCwgY29udmFs aWRhdGVkICIKKwkJCQkJCQkgICJGUk9NIHVubmVzdCgnJXMnOjpwZ19jYXRhbG9nLm9pZFtd KSBBUyBzcmModGJsb2lkKVxuIgorCQkJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19jb25z dHJhaW50IGMgT04gKHNyYy50YmxvaWQgPSBjLmNvbnJlbGlkKVxuIgorCQkJCQkJCSAgIldI RVJFIGNvbnR5cGUgPSAnYycgIgorCQkJCQkJCSAgIk9SREVSIEJZIGMuY29ucmVsaWQsIGMu Y29ubmFtZSIsCisJCQkJCQkJICBjaGVja29pZHMtPmRhdGEpOworCQl9CiAKIAkJcmVzID0g RXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHEtPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CiAKQEAg LTkxNzEsNiArOTIwNiw3IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJ bmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQkJT2lkCQkJY29ucmVsaWQgPSBhdG9v aWQoUFFnZXR2YWx1ZShyZXMsIGosIGlfY29ucmVsaWQpKTsKIAkJCVRhYmxlSW5mbyAgKnRi aW5mbyA9IE5VTEw7CiAJCQlpbnQJCQludW1jb25zOworCQkJaW50CQkJbmR1bXBhYmxlY2hl Y2tzOwogCiAJCQkvKiBDb3VudCByb3dzIGZvciB0aGlzIHRhYmxlICovCiAJCQlmb3IgKG51 bWNvbnMgPSAxOyBudW1jb25zIDwgbnVtQ29uc3RycyAtIGo7IG51bWNvbnMrKykKQEAgLTkx OTAsMTIgKzkyMjYsMTMgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUlu Zm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCQlpZiAoY3VydGJsaW5keCA+PSBudW1U YWJsZXMpCiAJCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCB0YWJsZSBPSUQgJXUiLCBjb25y ZWxpZCk7CiAKLQkJCWlmIChudW1jb25zICE9IHRiaW5mby0+bmNoZWNrKQorCQkJbmR1bXBh YmxlY2hlY2tzID0gdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7CisJCQlpZiAo bnVtY29ucyAhPSBuZHVtcGFibGVjaGVja3MpCiAJCQl7CiAJCQkJcGdfbG9nX2Vycm9yKG5n ZXR0ZXh0KCJleHBlY3RlZCAlZCBjaGVjayBjb25zdHJhaW50IG9uIHRhYmxlIFwiJXNcIiBi dXQgZm91bmQgJWQiLAogCQkJCQkJCQkJICAiZXhwZWN0ZWQgJWQgY2hlY2sgY29uc3RyYWlu dHMgb24gdGFibGUgXCIlc1wiIGJ1dCBmb3VuZCAlZCIsCi0JCQkJCQkJCQkgIHRiaW5mby0+ bmNoZWNrKSwKLQkJCQkJCQkgdGJpbmZvLT5uY2hlY2ssIHRiaW5mby0+ZG9iai5uYW1lLCBu dW1jb25zKTsKKwkJCQkJCQkJCSAgbmR1bXBhYmxlY2hlY2tzKSwKKwkJCQkJCQkgbmR1bXBh YmxlY2hlY2tzLCB0YmluZm8tPmRvYmoubmFtZSwgbnVtY29ucyk7CiAJCQkJcGdfbG9nX2Vy cm9yX2hpbnQoIlRoZSBzeXN0ZW0gY2F0YWxvZ3MgbWlnaHQgYmUgY29ycnVwdGVkLiIpOwog CQkJCWV4aXRfbmljZWx5KDEpOwogCQkJfQpAQCAtOTI1NCw2ICs5MjkxLDgwIEBAIGdldFRh YmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFi bGVzKQogCQlQUWNsZWFyKHJlcyk7CiAJfQogCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1U YWJsZXM7IGkrKykKKwl7CisJCVRhYmxlSW5mbyAgKnRiaW5mbyA9ICZ0YmxpbmZvW2ldOwor CisJCS8qCisJCSAqIEdldCBpbmZvIGFib3V0IFBFUklPRCBkZWZpbml0aW9ucworCQkgKi8K KwkJaWYgKHRiaW5mby0+bnBlcmlvZCA+IDApCisJCXsKKwkJCVBlcmlvZEluZm8gKnBlcmlv ZHM7CisJCQlpbnQJCQludW1QZXJpb2RzOworCQkJaW50CQkJajsKKworCQkJLyogV2Ugc2hv dWxkbid0IGhhdmUgYW55IHBlcmlvZHMgYmVmb3JlIHYxOCAqLworCQkJQXNzZXJ0KGZvdXQt PnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKTsKKworCQkJcGdfbG9nX2luZm8oImZpbmRpbmcg cGVyaW9kcyBmb3IgdGFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCXRiaW5mby0+ZG9iai5uYW1l c3BhY2UtPmRvYmoubmFtZSwKKwkJCQkJCXRiaW5mby0+ZG9iai5uYW1lKTsKKworCQkJcmVz ZXRQUUV4cEJ1ZmZlcihxKTsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJIlNFTEVD VCBwLnRhYmxlb2lkLCBwLm9pZCwgcC5wZXJuYW1lLCAiCisJCQkJIiAgICAgICBzYS5hdHRu YW1lIEFTIHBlcnN0YXJ0LCBlYS5hdHRuYW1lIEFTIHBlcmVuZCwgIgorCQkJCSIgICAgICAg ci50eXBuYW1lIEFTIHJuZ3R5cGUsICIKKwkJCQkiICAgICAgIGMuY29ubmFtZSBBUyBjb25u YW1lICIKKwkJCQkiRlJPTSBwZ19jYXRhbG9nLnBnX3BlcmlvZCBBUyBwICIKKwkJCQkiSk9J TiBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBBUyBzYSBPTiAoc2EuYXR0cmVsaWQsIHNhLmF0 dG51bSkgPSAocC5wZXJyZWxpZCwgcC5wZXJzdGFydCkgIgorCQkJCSJKT0lOIHBnX2NhdGFs b2cucGdfYXR0cmlidXRlIEFTIGVhIE9OIChlYS5hdHRyZWxpZCwgZWEuYXR0bnVtKSA9IChw LnBlcnJlbGlkLCBwLnBlcmVuZCkgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfYXR0cmli dXRlIEFTIHJhIE9OIChyYS5hdHRyZWxpZCwgcmEuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBw LnBlcnJhbmdlKSAiCisJCQkJIkpPSU4gcGdfY2F0YWxvZy5wZ190eXBlIEFTIHIgT04gci5v aWQgPSByYS5hdHR0eXBpZCAiCisJCQkJIkpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50 IEFTIGMgT04gYy5vaWQgPSBwLnBlcmNvbnN0cmFpbnQgIgorCQkJCSJXSEVSRSBwLnBlcnJl bGlkID0gJyV1Jzo6cGdfY2F0YWxvZy5vaWQgIgorCQkJCSJPUkRFUiBCWSBwLnBlcm5hbWUi LAorCQkJCXRiaW5mby0+ZG9iai5jYXRJZC5vaWQpOworCisJCQlyZXMgPSBFeGVjdXRlU3Fs UXVlcnkoZm91dCwgcS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCQkJLyoKKwkJCSAq IElmIHdlIGRpZG4ndCBnZXQgdGhlIG51bWJlciBvZiByb3dzIHdlIHRob3VnaHQgd2Ugd2Vy ZSBnb2luZyB0bywKKwkJCSAqIHRoZW4gdGhvc2UgSk9JTnMgZGlkbid0IHdvcmsuCisJCQkg Ki8KKwkJCW51bVBlcmlvZHMgPSBQUW50dXBsZXMocmVzKTsKKwkJCWlmIChudW1QZXJpb2Rz ICE9IHRiaW5mby0+bnBlcmlvZCkKKwkJCXsKKwkJCQlwZ19sb2dfaW5mbyhuZ2V0dGV4dCgi ZXhwZWN0ZWQgJWQgcGVyaW9kIG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQgJWQiLAorCQkJ CQkJCQkJICJleHBlY3RlZCAlZCBwZXJpb2RzIG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQg JWQiLAorCQkJCQkJCQkJIHRiaW5mby0+bnBlcmlvZCksCisJCQkJCQkJdGJpbmZvLT5ucGVy aW9kLCB0YmluZm8tPmRvYmoubmFtZSwgbnVtUGVyaW9kcyk7CisJCQkJcGdfbG9nX2luZm8o IihUaGUgc3lzdGVtIGNhdGFsb2dzIG1pZ2h0IGJlIGNvcnJ1cHRlZC4pIik7CisJCQkJZXhp dF9uaWNlbHkoMSk7CisJCQl9CisKKwkJCXBlcmlvZHMgPSAoUGVyaW9kSW5mbyAqKSBwZ19t YWxsb2MobnVtUGVyaW9kcyAqIHNpemVvZihQZXJpb2RJbmZvKSk7CisJCQl0YmluZm8tPnBl cmlvZHMgPSBwZXJpb2RzOworCisJCQlmb3IgKGogPSAwOyBqIDwgbnVtUGVyaW9kczsgaisr KQorCQkJeworCQkJCXBlcmlvZHNbal0uZG9iai5vYmpUeXBlID0gRE9fUEVSSU9EOworCQkJ CXBlcmlvZHNbal0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaiwgMCkpOworCQkJCXBlcmlvZHNbal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGosIDEpKTsKKwkJCQlBc3NpZ25EdW1wSWQoJnBlcmlvZHNbal0uZG9i aik7CisJCQkJcGVyaW9kc1tqXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShy ZXMsIGosIDIpKTsKKwkJCQlwZXJpb2RzW2pdLmRvYmoubmFtZXNwYWNlID0gdGJpbmZvLT5k b2JqLm5hbWVzcGFjZTsKKwkJCQlwZXJpb2RzW2pdLnBlcnRhYmxlID0gdGJpbmZvOworCQkJ CXBlcmlvZHNbal0ucGVyc3RhcnQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGosIDMp KTsKKwkJCQlwZXJpb2RzW2pdLnBlcmVuZCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aiwgNCkpOworCQkJCXBlcmlvZHNbal0ucm5ndHlwZSA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaiwgNSkpOworCQkJCXBlcmlvZHNbal0uY29ubmFtZSA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaiwgNikpOworCQkJfQorCQkJUFFjbGVhcihyZXMpOworCQl9CisJfQor CiAJZGVzdHJveVBRRXhwQnVmZmVyKHEpOwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcih0YmxvaWRz KTsKIAlkZXN0cm95UFFFeHBCdWZmZXIoY2hlY2tvaWRzKTsKQEAgLTEwNDgyLDYgKzEwNTkz LDggQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0 ICpkb2JqKQogCQljYXNlIERPX0ZLX0NPTlNUUkFJTlQ6CiAJCQlkdW1wQ29uc3RyYWludChm b3V0LCAoY29uc3QgQ29uc3RyYWludEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2Fz ZSBET19QRVJJT0Q6CisJCQlicmVhazsKIAkJY2FzZSBET19QUk9DTEFORzoKIAkJCWR1bXBQ cm9jTGFuZyhmb3V0LCAoY29uc3QgUHJvY0xhbmdJbmZvICopIGRvYmopOwogCQkJYnJlYWs7 CkBAIC0xNjA0MCw2ICsxNjE1MywzMyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91 dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJfQogCQkJfQogCisJCQkvKgorCQkJ ICogQWRkIG5vbi1pbmhlcml0ZWQgUEVSSU9EIGRlZmluaXRpb25zLCBpZiBhbnkuCisJCQkg Ki8KKwkJCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5wZXJpb2Q7IGorKykKKwkJCXsKKwkJ CQlQZXJpb2RJbmZvICpwZXJpb2QgPSAmKHRiaW5mby0+cGVyaW9kc1tqXSk7CisKKwkJCQlj aGFyCSAgICpuYW1lID0gcGdfc3RyZHVwKGZtdElkKHBlcmlvZC0+ZG9iai5uYW1lKSk7CisJ CQkJY2hhcgkgICAqc3RhcnQgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5wZXJzdGFydCkp OworCQkJCWNoYXIJICAgKmVuZCA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2QtPnBlcmVuZCkp OworCQkJCWNoYXIJICAgKnJuZ3R5cGUgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5ybmd0 eXBlKSk7CisJCQkJY2hhcgkgICAqY29ubmFtZSA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2Qt PmNvbm5hbWUpKTsKKworCQkJCWlmIChhY3R1YWxfYXR0cyA9PSAwKQorCQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihxLCAiIChcbiAgICAiKTsKKwkJCQllbHNlCisJCQkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHEsICIsXG4gICAgIik7CisKKwkJCQkvKiBBbHdheXMgc2F5IGNvbGV4 aXN0cyBzbyB3ZSBjYW4ganVzdCBwcmludCB0aGUgR0VORVJBVEVEIGNvbHVtbiAqLworCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsICJQRVJJT0QgRk9SICVzICglcywgJXMpICIKKwkJCQkJ CSJXSVRIIChyYW5nZXR5cGUgPSAlcywgY2hlY2tfY29uc3RyYWludF9uYW1lID0gJXMsIGNv bGV4aXN0cyA9IHRydWUpIiwKKwkJCQkJCQkJICBuYW1lLCBzdGFydCwgZW5kLAorCQkJCQkJ CQkgIHJuZ3R5cGUsIGNvbm5hbWUpOworCisJCQkJYWN0dWFsX2F0dHMrKzsKKwkJCX0KKwog CQkJLyoKIAkJCSAqIEFkZCBub24taW5oZXJpdGVkIENIRUNLIGNvbnN0cmFpbnRzLCBpZiBh bnkuCiAJCQkgKgpAQCAtMTYwNDgsNyArMTYxODgsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJj aGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkgKiBQQVJUSVRJT04g dGhhdCB3ZSdsbCBlbWl0IGxhdGVyIGV4cGVjdHMgdGhlIGNvbnN0cmFpbnQgdG8gYmUKIAkJ CSAqIHRoZXJlLiAgKE5vIG5lZWQgdG8gZml4IGNvbmlzbG9jYWw6IEFUVEFDSCBQQVJUSVRJ T04gZG9lcyB0aGF0KQogCQkJICovCi0JCQlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5uY2hl Y2s7IGorKykKKwkJCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+ bnBlcmlvZDsgaisrKQogCQkJewogCQkJCUNvbnN0cmFpbnRJbmZvICpjb25zdHIgPSAmKHRi aW5mby0+Y2hlY2tleHByc1tqXSk7CiAKQEAgLTE2Mjk0LDcgKzE2NDM0LDcgQEAgZHVtcFRh YmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJ ICovCiAJCQlyZXNldFBRRXhwQnVmZmVyKGV4dHJhKTsKIAkJCWZpcnN0aXRlbSA9IHRydWU7 Ci0JCQlmb3IgKGsgPSAwOyBrIDwgdGJpbmZvLT5uY2hlY2s7IGsrKykKKwkJCWZvciAoayA9 IDA7IGsgPCB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+bnBlcmlvZDsgaysrKQogCQkJewog CQkJCUNvbnN0cmFpbnRJbmZvICpjb25zdHIgPSAmKHRiaW5mby0+Y2hlY2tleHByc1trXSk7 CiAKQEAgLTE2NjAwLDcgKzE2NzQwLDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZv dXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQlkdW1wVGFibGVTZWNMYWJlbChmb3V0 LCB0YmluZm8sIHJlbHR5cGVuYW1lKTsKIAogCS8qIER1bXAgY29tbWVudHMgb24gaW5saW5l ZCB0YWJsZSBjb25zdHJhaW50cyAqLwotCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVj azsgaisrKQorCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+bnBl cmlvZDsgaisrKQogCXsKIAkJQ29uc3RyYWludEluZm8gKmNvbnN0ciA9ICYodGJpbmZvLT5j aGVja2V4cHJzW2pdKTsKIApAQCAtMTg2NzMsNiArMTg4MTMsNyBAQCBhZGRCb3VuZGFyeURl cGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNh c2UgRE9fVFJJR0dFUjoKIAkJCWNhc2UgRE9fRVZFTlRfVFJJR0dFUjoKIAkJCWNhc2UgRE9f REVGQVVMVF9BQ0w6CisJCQljYXNlIERPX1BFUklPRDoKIAkJCWNhc2UgRE9fUE9MSUNZOgog CQkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKaW5kZXggOWY5MDdlZDVhZDQuLjNjN2M0MmYyYTRjIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKQEAgLTU5LDYgKzU5LDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fVFJJR0dFUiwKIAlE T19DT05TVFJBSU5ULAogCURPX0ZLX0NPTlNUUkFJTlQsCQkJLyogc2VlIG5vdGUgZm9yIENv bnN0cmFpbnRJbmZvICovCisJRE9fUEVSSU9ELAogCURPX1BST0NMQU5HLAogCURPX0NBU1Qs CiAJRE9fVEFCTEVfREFUQSwKQEAgLTMwMSwxMiArMzAyLDE0IEBAIHR5cGVkZWYgc3RydWN0 IF90YWJsZUluZm8KIAlib29sCQlyb3dzZWM7CQkJLyogaXMgcm93IHNlY3VyaXR5IGVuYWJs ZWQ/ICovCiAJYm9vbAkJZm9yY2Vyb3dzZWM7CS8qIGlzIHJvdyBzZWN1cml0eSBmb3JjZWQ/ ICovCiAJYm9vbAkJaGFzb2lkczsJCS8qIGRvZXMgaXQgaGF2ZSBPSURzPyAqLworCWJvb2wJ CWhhc3BlcmlvZHM7CQkvKiBkb2VzIGl0IGhhdmUgYW55IHBlcmlvZHM/ICovCiAJdWludDMy CQlmcm96ZW54aWQ7CQkvKiB0YWJsZSdzIHJlbGZyb3plbnhpZCAqLwogCXVpbnQzMgkJbWlu bXhpZDsJCS8qIHRhYmxlJ3MgcmVsbWlubXhpZCAqLwogCU9pZAkJCXRvYXN0X29pZDsJCS8q IHRvYXN0IHRhYmxlJ3MgT0lELCBvciAwIGlmIG5vbmUgKi8KIAl1aW50MzIJCXRvYXN0X2Zy b3plbnhpZDsJLyogdG9hc3QgdGFibGUncyByZWxmcm96ZW54aWQsIGlmIGFueSAqLwogCXVp bnQzMgkJdG9hc3RfbWlubXhpZDsJLyogdG9hc3QgdGFibGUncyByZWxtaW5teGlkICovCiAJ aW50CQkJbmNoZWNrOwkJCS8qICMgb2YgQ0hFQ0sgZXhwcmVzc2lvbnMgKi8KKwlpbnQJCQlu cGVyaW9kOwkJLyogIyBvZiBQRVJJT0QgZGVmaW5pdGlvbnMgKi8KIAlPaWQJCQlyZWx0eXBl OwkJLyogT0lEIG9mIHRhYmxlJ3MgY29tcG9zaXRlIHR5cGUsIGlmIGFueSAqLwogCU9pZAkJ CXJlbG9mdHlwZTsJCS8qIHVuZGVybHlpbmcgdHlwZSBmb3IgdHlwZWQgdGFibGUgKi8KIAlP aWQJCQlmb3JlaWduX3NlcnZlcjsgLyogZm9yZWlnbiBzZXJ2ZXIgb2lkLCBpZiBhcHBsaWNh YmxlICovCkBAIC0zMzcsNiArMzQwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwog CWNoYXIJICAgKmF0dHN0b3JhZ2U7CQkvKiBhdHRyaWJ1dGUgc3RvcmFnZSBzY2hlbWUgKi8K IAljaGFyCSAgICp0eXBzdG9yYWdlOwkJLyogdHlwZSBzdG9yYWdlIHNjaGVtZSAqLwogCWJv b2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3BwZWQ7IGRvbid0 IGR1bXAgaXQgKi8KKwlib29sCSAgICphdHRpc3BlcmlvZDsJLyogdHJ1ZSBpZiBhdHRyIGlz IGEgUEVSSU9EOyBkb24ndCBkdW1wIGl0ICovCiAJY2hhcgkgICAqYXR0aWRlbnRpdHk7CiAJ Y2hhcgkgICAqYXR0Z2VuZXJhdGVkOwogCWludAkJICAgKmF0dGxlbjsJCQkvKiBhdHRyaWJ1 dGUgbGVuZ3RoLCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCkBAIC0zNTEsNiArMzU1LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWJvb2wJICAgKmluaE5vdE51bGw7CQkv KiB0cnVlIGlmIE5PVCBOVUxMIGlzIGluaGVyaXRlZCAqLwogCXN0cnVjdCBfYXR0ckRlZklu Zm8gKiphdHRyZGVmczsgLyogREVGQVVMVCBleHByZXNzaW9ucyAqLwogCXN0cnVjdCBfY29u c3RyYWludEluZm8gKmNoZWNrZXhwcnM7IC8qIENIRUNLIGNvbnN0cmFpbnRzICovCisJc3Ry dWN0IF9wZXJpb2RJbmZvICpwZXJpb2RzOwkvKiBQRVJJT0QgZGVmaW5pdGlvbnMgKi8KIAli b29sCQluZWVkc19vdmVycmlkZTsgLyogaGFzIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJ VFkgKi8KIAljaGFyCSAgICphbW5hbWU7CQkJLyogcmVsYXRpb24gYWNjZXNzIG1ldGhvZCAq LwogCkBAIC00ODAsNiArNDg1LDE2IEBAIHR5cGVkZWYgc3RydWN0IF9jb25zdHJhaW50SW5m bwogCWJvb2wJCXNlcGFyYXRlOwkJLyogdHJ1ZSBpZiBtdXN0IGR1bXAgYXMgc2VwYXJhdGUg aXRlbSAqLwogfSBDb25zdHJhaW50SW5mbzsKIAordHlwZWRlZiBzdHJ1Y3QgX3BlcmlvZElu Zm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCVRhYmxlSW5mbyAgKnBlcnRhYmxlOwor CWNoYXIJICAgKnBlcnN0YXJ0OwkJLyogdGhlIG5hbWUgb2YgdGhlIHN0YXJ0IGNvbHVtbiAq LworCWNoYXIJICAgKnBlcmVuZDsJCQkvKiB0aGUgbmFtZSBvZiB0aGUgZW5kIGNvbHVtbiAq LworCWNoYXIJICAgKnJuZ3R5cGU7CQkvKiB0aGUgbmFtZSBvZiB0aGUgcmFuZ2UgdHlwZSAq LworCWNoYXIJICAgKmNvbm5hbWU7CQkvKiB0aGUgbmFtZSBvZiB0aGUgQ0hFQ0sgY29uc3Ry YWludCAqLworfSBQZXJpb2RJbmZvOworCiB0eXBlZGVmIHN0cnVjdCBfcHJvY0xhbmdJbmZv CiB7CiAJRHVtcGFibGVPYmplY3QgZG9iajsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRl eCA0Y2I3NTRjYWE1NS4uNTYwMmNkYTRkNWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK QEAgLTg2LDYgKzg2LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19D T05TVFJBSU5ULAogCVBSSU9fSU5ERVgsCiAJUFJJT19JTkRFWF9BVFRBQ0gsCisJUFJJT19Q RVJJT0QsCiAJUFJJT19TVEFUU0VYVCwKIAlQUklPX1JVTEUsCiAJUFJJT19UUklHR0VSLApA QCAtMTIxLDYgKzEyMiw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3Jp dHlbXSA9CiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAogCVtET19JTkRFWF0gPSBQ UklPX0lOREVYLAogCVtET19JTkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCisJ W0RPX1BFUklPRF0gPSBQUklPX1BFUklPRCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19TVEFU U0VYVCwKIAlbRE9fUlVMRV0gPSBQUklPX1JVTEUsCiAJW0RPX1RSSUdHRVJdID0gUFJJT19U UklHR0VSLApAQCAtMTM3MSw2ICsxMzczLDExIEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3Qo RHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJG SyBDT05TVFJBSU5UICVzICAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPm5hbWUsIG9i ai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fUEVS SU9EOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBFUklPRCAlcyAgKElE ICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJ ZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERPX1BST0NMQU5HOgogCQkJc25wcmludGYo YnVmLCBidWZzaXplLAogCQkJCQkgIlBST0NFRFVSQUwgTEFOR1VBR0UgJXMgIChJRCAlZCBP SUQgJXUpIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggMzYzYTY2ZTcxODUuLjFkYWE0NGMyNDNlIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYwpAQCAtMTk0Nyw2ICsxOTQ3LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMo Y29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICJcbkZST00gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSIpOwogCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsICJcbldIRVJFIGEuYXR0cmVsaWQgPSAnJXMnIEFORCBhLmF0dG51bSA+IDAg QU5EIE5PVCBhLmF0dGlzZHJvcHBlZCIsIG9pZCk7CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0g MTgwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5BTkQgTk9UIEVYSVNUUyAo U0VMRUNUIDEgRlJPTSBwZ19jYXRhbG9nLnBnX3BlcmlvZCBwIFdIRVJFIHAucGVycmVsaWQg PSBhLmF0dHJlbGlkIEFORCBwLnBlcnJhbmdlID0gYS5hdHRudW0pIik7CiAJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgIlxuT1JERVIgQlkgYS5hdHRudW07Iik7CiAKIAlyZXMgPSBQ U1FMZXhlYyhidWYuZGF0YSk7CkBAIC0yMzY1LDYgKzIzNjcsNDAgQEAgZGVzY3JpYmVPbmVU YWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJUEdyZXN1bHQgICAqcmVz dWx0ID0gTlVMTDsKIAkJaW50CQkJdHVwbGVzID0gMDsKIAorCQkvKiBwcmludCBwZXJpb2Rz ICovCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAwMCkKKwkJeworCQkJcHJpbnRmUFFF eHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICJTRUxFQ1QgcXVvdGVfaWRlbnQocC5wZXJuYW1l KSwgcXVvdGVfaWRlbnQocy5hdHRuYW1lKSBBUyBzdGFydGF0dCwgcXVvdGVfaWRlbnQoZS5h dHRuYW1lKSBBUyBlbmRhdHRcbiIKKwkJCQkJCQkgICJGUk9NIHBnX3BlcmlvZCBBUyBwXG4i CisJCQkJCQkJICAiSk9JTiBwZ19hdHRyaWJ1dGUgQVMgcyBPTiAocy5hdHRyZWxpZCwgcy5h dHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyc3RhcnQpXG4iCisJCQkJCQkJICAiSk9JTiBw Z19hdHRyaWJ1dGUgQVMgZSBPTiAoZS5hdHRyZWxpZCwgZS5hdHRudW0pID0gKHAucGVycmVs aWQsIHAucGVyZW5kKVxuIgorCQkJCQkJCSAgIldIRVJFIHAucGVycmVsaWQgPSAnJXMnXG4i CisJCQkJCQkJICAiT1JERVIgQlkgMTsiLAorCQkJCQkJCSAgb2lkKTsKKwkJCXJlc3VsdCA9 IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwkJCWlmICghcmVzdWx0KQorCQkJCWdvdG8gZXJyb3Jf cmV0dXJuOworCQkJZWxzZQorCQkJCXR1cGxlcyA9IFBRbnR1cGxlcyhyZXN1bHQpOworCisJ CQlpZiAodHVwbGVzID4gMCkKKwkJCXsKKwkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250 LCBfKCJQZXJpb2RzOiIpKTsKKwkJCQlmb3IgKGkgPSAwOyBpIDwgdHVwbGVzOyBpKyspCisJ CQkJeworCQkJCQkvKiB1bnRyYW5zbGF0ZWQgY29uc3RyYWludCBuYW1lIGFuZCBkZWYgKi8K KwkJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgICAlcyAoJXMsICVzKSIsCisJCQkJ CQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAwKSwKKwkJCQkJCQkJCSAgUFFnZXR2YWx1 ZShyZXN1bHQsIGksIDEpLAorCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMikp OworCisJCQkJCXByaW50VGFibGVBZGRGb290ZXIoJmNvbnQsIGJ1Zi5kYXRhKTsKKwkJCQl9 CisJCQl9CisJCQlQUWNsZWFyKHJlc3VsdCk7CisJCX0KKwogCQkvKiBwcmludCBpbmRleGVz ICovCiAJCWlmICh0YWJsZWluZm8uaGFzaW5kZXgpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxl CmluZGV4IDE2N2Y5MWE2ZTNmLi42MmJiNGZjNjNmYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxl CkBAIC02NSw2ICs2NSw3IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfZm9yZWlnbl9z ZXJ2ZXIuaCBcCiAJcGdfdXNlcl9tYXBwaW5nLmggXAogCXBnX2ZvcmVpZ25fdGFibGUuaCBc CisJcGdfcGVyaW9kLmggXAogCXBnX3BvbGljeS5oIFwKIAlwZ19yZXBsaWNhdGlvbl9vcmln aW4uaCBcCiAJcGdfZGVmYXVsdF9hY2wuaCBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL2hlYXAuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCmluZGV4IGQ2YTJj NzkxMjkwLi5iNTVmZGE3YjY5NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9o ZWFwLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgKQEAgLTExNyw2ICsxMTcs MTAgQEAgZXh0ZXJuIExpc3QgKkFkZFJlbGF0aW9uTmV3Q29uc3RyYWludHMoUmVsYXRpb24g cmVsLAogZXh0ZXJuIHZvaWQgUmVsYXRpb25DbGVhck1pc3NpbmcoUmVsYXRpb24gcmVsKTsK IGV4dGVybiB2b2lkIFNldEF0dHJNaXNzaW5nKE9pZCByZWxpZCwgY2hhciAqYXR0bmFtZSwg Y2hhciAqdmFsdWUpOwogCitleHRlcm4gT2lkIFN0b3JlUGVyaW9kKFJlbGF0aW9uIHJlbCwg Y29uc3QgY2hhciAqcGVyaW9kLAorCQkJCQkgICBBdHRyTnVtYmVyIHN0YXJ0bnVtLCBBdHRy TnVtYmVyIGVuZG51bSwKKwkJCQkJICAgQXR0ck51bWJlciByYW5nZW51bSwgT2lkIGNvbm9p ZCk7CisKIGV4dGVybiBOb2RlICpjb29rRGVmYXVsdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkgTm9kZSAqcmF3X2RlZmF1bHQsCiAJCQkJCQkgT2lkIGF0dHR5cGlkLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZjcwZDFkYWJhNTIuLmQ0NWFhNWZhODYzIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTYxLDYgKzYxLDcgQEAgY2F0YWxvZ19oZWFk ZXJzID0gWwogICAncGdfY29sbGF0aW9uLmgnLAogICAncGdfcGFyYW1ldGVyX2FjbC5oJywK ICAgJ3BnX3BhcnRpdGlvbmVkX3RhYmxlLmgnLAorICAncGdfcGVyaW9kLmgnLAogICAncGdf cmFuZ2UuaCcsCiAgICdwZ190cmFuc2Zvcm0uaCcsCiAgICdwZ19zZXF1ZW5jZS5oJywKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfaW5kZXguaAppbmRleCA2Yzg5NjM5YTllNC4uMGRlYjZkNGNjOGYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgQ0FUQUxPRyhwZ19p bmRleCwyNjEwLEluZGV4UmVsYXRpb25JZCkgQktJX1NDSEVNQV9NQUNSTwogCS8qIHZhcmlh YmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSwgYnV0IHdlIGFsbG93IGRpcmVjdCBhY2Nl c3MgdG8gaW5ka2V5ICovCiAJaW50MnZlY3RvcglpbmRrZXkgQktJX0ZPUkNFX05PVF9OVUxM OwkvKiBjb2x1bW4gbnVtYmVycyBvZiBpbmRleGVkIGNvbHMsCiAJCQkJCQkJCQkJCSAqIG9y IDAgKi8KLQogI2lmZGVmIENBVEFMT0dfVkFSTEVOCiAJb2lkdmVjdG9yCWluZGNvbGxhdGlv biBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pIEJLSV9GT1JDRV9OT1RfTlVMTDsJLyog Y29sbGF0aW9uIGlkZW50aWZpZXJzICovCiAJb2lkdmVjdG9yCWluZGNsYXNzIEJLSV9MT09L VVAocGdfb3BjbGFzcykgQktJX0ZPUkNFX05PVF9OVUxMOyAvKiBvcGNsYXNzIGlkZW50aWZp ZXJzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMjUwOGNkNDVhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3BlcmlvZC5oCisgKgkgIGRlZmluaXRpb24gb2Yg dGhlICJwZXJpb2QiIHN5c3RlbSBjYXRhbG9nIChwZ19wZXJpb2QpCisgKgorICoKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIxLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9kLmgK KyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBm aWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19QRVJJT0RfSAorI2RlZmluZSBQR19Q RVJJT0RfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3BlcmlvZF9kLmgiCisjaW5jbHVkZSAibm9kZXMvYml0bWFwc2V0LmgiCisKKy8q IC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19wZXJpb2QgZGVmaW5pdGlvbi4gIGNwcCB0dXJu cyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19wZXJpb2QKKyAq IC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wZXJpb2QsODAwMCxQZXJpb2RS ZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBPSUQgb2YgdGhlIHBlcmlvZCAqLwor CU5hbWVEYXRhCXBlcm5hbWU7CQkvKiBuYW1lIG9mIHBlcmlvZCAqLworCU9pZAkJCXBlcnJl bGlkOwkJLyogT0lEIG9mIHJlbGF0aW9uIGNvbnRhaW5pbmcgdGhpcyBwZXJpb2QgKi8KKwlp bnQxNgkJcGVyc3RhcnQ7CQkvKiBjb2x1bW4gZm9yIHN0YXJ0IHZhbHVlICovCisJaW50MTYJ CXBlcmVuZDsJCQkvKiBjb2x1bW4gZm9yIGVuZCB2YWx1ZSAqLworCWludDE2CQlwZXJyYW5n ZTsJCS8qIGNvbHVtbiBmb3IgcmFuZ2UgdmFsdWUgKi8KKwlPaWQJCQlwZXJjb25zdHJhaW50 OwkvKiBPSUQgb2YgKHN0YXJ0IDwgZW5kKSBjb25zdHJhaW50ICovCit9IEZvcm1EYXRhX3Bn X3BlcmlvZDsKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfcGVyaW9kIGNv cnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0 IG9mIHBnX3BlcmlvZCByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlw ZWRlZiBGb3JtRGF0YV9wZ19wZXJpb2QgKkZvcm1fcGdfcGVyaW9kOworCitERUNMQVJFX1VO SVFVRV9JTkRFWF9QS0VZKHBnX3BlcmlvZF9vaWRfaW5kZXgsIDgwMDEsIFBlcmlvZE9iamVj dEluZGV4SWQsIHBnX3BlcmlvZCwgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5J UVVFX0lOREVYKHBnX3BlcmlvZF9wZXJyZWxpZF9wZXJuYW1lX2luZGV4LCA4MDAyLCBQZXJp b2RSZWxpZE5hbWVJbmRleElkLCBwZ19wZXJpb2QsIGJ0cmVlKHBlcnJlbGlkIG9pZF9vcHMs IHBlcm5hbWUgbmFtZV9vcHMpKTsKKworTUFLRV9TWVNDQUNIRShQRVJJT0RPSUQsIHBnX3Bl cmlvZF9vaWRfaW5kZXgsIDMyKTsKK01BS0VfU1lTQ0FDSEUoUEVSSU9ETkFNRSwgcGdfcGVy aW9kX3BlcnJlbGlkX3Blcm5hbWVfaW5kZXgsIDMyKTsKKworZXh0ZXJuIHZvaWQgUmVtb3Zl UGVyaW9kQnlJZChPaWQgcGVyaW9kSWQpOworCitleHRlcm4gT2lkIGdldF9yZWxhdGlvbl9w ZXJpb2Rfb2lkKE9pZCByZWxpZCwgY29uc3QgY2hhciAqcGVybmFtZSwgYm9vbCBtaXNzaW5n X29rKTsKK2V4dGVybiBCaXRtYXBzZXQgKmdldF9wZXJpb2RfYXR0bm9zKE9pZCByZWxpZCk7 CisKKyNlbmRpZgkJCQkJCQkvKiBQR19QRVJJT0RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19yYW5n ZS5oCmluZGV4IDBiZDNhYjY4OGJkLi4xMGE5NGRkMTFmMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cmFuZ2UuaApAQCAtNTksOCArNTksMTAgQEAgdHlwZWRlZiBGb3JtRGF0YV9wZ19yYW5nZSAq Rm9ybV9wZ19yYW5nZTsKIAogREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19yYW5nZV9y bmd0eXBpZF9pbmRleCwgMzU0MiwgUmFuZ2VUeXBpZEluZGV4SWQsIHBnX3JhbmdlLCBidHJl ZShybmd0eXBpZCBvaWRfb3BzKSk7CiBERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19yYW5nZV9y bmdtdWx0aXR5cGlkX2luZGV4LCAyMjI4LCBSYW5nZU11bHRpcmFuZ2VUeXBpZEluZGV4SWQs IHBnX3JhbmdlLCBidHJlZShybmdtdWx0aXR5cGlkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5J UVVFX0lOREVYKHBnX3JhbmdlX3JuZ3N1YnR5cGVfcm5ndHlwaWRfaW5kZXgsIDgwMDMsIFJh bmdlU3ViVHlwaWRUeXBpZEluZGV4SWQsIHBnX3JhbmdlLCBidHJlZShybmdzdWJ0eXBlIG9p ZF9vcHMsIHJuZ3R5cGlkIG9pZF9vcHMpKTsKIAogTUFLRV9TWVNDQUNIRShSQU5HRVRZUEUs IHBnX3JhbmdlX3JuZ3R5cGlkX2luZGV4LCA0KTsKK01BS0VfU1lTQ0FDSEUoUkFOR0VTVUJU WVBFLCBwZ19yYW5nZV9ybmdzdWJ0eXBlX3JuZ3R5cGlkX2luZGV4LCA0KTsKIE1BS0VfU1lT Q0FDSEUoUkFOR0VNVUxUSVJBTkdFLCBwZ19yYW5nZV9ybmdtdWx0aXR5cGlkX2luZGV4LCA0 KTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5o IGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKaW5kZXggODVjYmFkM2QwYzIu LjYyOGZhNTM3OTZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNt ZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaApAQCAtNDAsNyAr NDAsOCBAQCBleHRlcm4gTE9DS01PREUgQWx0ZXJUYWJsZUdldExvY2tMZXZlbChMaXN0ICpj bWRzKTsKIAogZXh0ZXJuIHZvaWQgQVRFeGVjQ2hhbmdlT3duZXIoT2lkIHJlbGF0aW9uT2lk LCBPaWQgbmV3T3duZXJJZCwgYm9vbCByZWN1cnNpbmcsIExPQ0tNT0RFIGxvY2ttb2RlKTsK IAotZXh0ZXJuIHZvaWQgQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21k cywgYm9vbCByZWN1cnNlKTsKK2V4dGVybiB2b2lkIEFsdGVyVGFibGVJbnRlcm5hbChPaWQg cmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSwKKwkJCQkJCQkgICBzdHJ1Y3QgQWx0 ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KTsKIAogZXh0ZXJuIE9pZAlBbHRlclRh YmxlTW92ZUFsbChBbHRlclRhYmxlTW92ZUFsbFN0bXQgKnN0bXQpOwogCkBAIC0xMDYsNSAr MTA3LDYgQEAgZXh0ZXJuIHZvaWQgUmFuZ2VWYXJDYWxsYmFja093bnNSZWxhdGlvbihjb25z dCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCQkJCQkJCQkJIE9pZCByZWxJZCwgT2lkIG9sZFJl bElkLCB2b2lkICphcmcpOwogZXh0ZXJuIGJvb2wgUGFydENvbnN0cmFpbnRJbXBsaWVkQnlS ZWxDb25zdHJhaW50KFJlbGF0aW9uIHNjYW5yZWwsCiAJCQkJCQkJCQkJCQkgTGlzdCAqcGFy dENvbnN0cmFpbnQpOworZXh0ZXJuIE9pZCBjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9wZXJpb2Qo UGVyaW9kRGVmICpwZXJpb2QpOwogCiAjZW5kaWYJCQkJCQkJLyogVEFCTEVDTURTX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggOGRhNTYxOGVlMTkuLjgwNzNiZjcwMGI1IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNDQyLDkgKzQ0MiwxMSBAQCB0eXBlZGVmIHN0 cnVjdCBGb3JQb3J0aW9uT2ZTdGF0ZQogewogCU5vZGVUYWcJCXR5cGU7CiAKLQljaGFyICAg KmZwX3JhbmdlTmFtZTsJCS8qIHRoZSBjb2x1bW4gbmFtZWQgaW4gRk9SIFBPUlRJT04gT0Yg Ki8KKwljaGFyICAgKmZwX3JhbmdlTmFtZTsJCS8qIHRoZSBjb2x1bW4vUEVSSU9EIG5hbWVk IGluIEZPUiBQT1JUSU9OIE9GICovCiAJT2lkCQlmcF9yYW5nZVR5cGU7CQkvKiB0aGUgdHlw ZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLwotCWludAkJZnBfcmFuZ2VB dHRubzsJCS8qIHRoZSBhdHRubyBvZiB0aGUgcmFuZ2UgY29sdW1uICovCisJaW50CQlmcF9y YW5nZUF0dG5vOwkJLyogdGhlIGF0dG5vIG9mIHRoZSByYW5nZSBjb2x1bW4gKG9yIDAgZm9y IGEgUEVSSU9EKSAqLworCWludAkJZnBfcGVyaW9kU3RhcnRBdHRubzsJLyogdGhlIGF0dG5v IG9mIHRoZSBQRVJJT0Qgc3RhcnQgY29sdW1uIChvciAwIGZvciBhIHJhbmdlKSAqLworCWlu dAkJZnBfcGVyaW9kRW5kQXR0bm87CQkvKiB0aGUgYXR0bm8gb2YgdGhlIFBFUklPRCBlbmQg Y29sdW1uIChvciAwIGZvciBhIHJhbmdlKSAqLwogCURhdHVtCWZwX3RhcmdldFJhbmdlOwkJ LyogdGhlIHJhbmdlIGZyb20gRk9SIFBPUlRJT04gT0YgKi8KIAlUeXBlQ2FjaGVFbnRyeSAq ZnBfbGVmdG92ZXJzdHlwY2FjaGU7CS8qIHR5cGUgY2FjaGUgZW50cnkgb2YgdGhlIHJhbmdl ICovCiAJVHVwbGVUYWJsZVNsb3QgKmZwX0V4aXN0aW5nOwkJLyogc2xvdCB0byBzdG9yZSBv bGQgdHVwbGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBlODZjM2E1YTBlZC4u OWZhNTcwOTcxYTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIzMDMsNiArMjMw Myw3IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX09QRVJBVE9SLAogCU9C SkVDVF9PUEZBTUlMWSwKIAlPQkpFQ1RfUEFSQU1FVEVSX0FDTCwKKwlPQkpFQ1RfUEVSSU9E LAogCU9CSkVDVF9QT0xJQ1ksCiAJT0JKRUNUX1BST0NFRFVSRSwKIAlPQkpFQ1RfUFVCTElD QVRJT04sCkBAIC0yMzkxLDYgKzIzOTIsOCBAQCB0eXBlZGVmIGVudW0gQWx0ZXJUYWJsZVR5 cGUKIAlBVF9WYWxpZGF0ZUNvbnN0cmFpbnQsCQkvKiB2YWxpZGF0ZSBjb25zdHJhaW50ICov CiAJQVRfQWRkSW5kZXhDb25zdHJhaW50LAkJLyogYWRkIGNvbnN0cmFpbnQgdXNpbmcgZXhp c3RpbmcgaW5kZXggKi8KIAlBVF9Ecm9wQ29uc3RyYWludCwJCQkvKiBkcm9wIGNvbnN0cmFp bnQgKi8KKwlBVF9BZGRQZXJpb2QsCQkJCS8qIEFERCBQRVJJT0QgKi8KKwlBVF9Ecm9wUGVy aW9kLAkJCQkvKiBEUk9QIFBFUklPRCAqLwogCUFUX1JlQWRkQ29tbWVudCwJCQkvKiBpbnRl cm5hbCB0byBjb21tYW5kcy90YWJsZWNtZHMuYyAqLwogCUFUX0FsdGVyQ29sdW1uVHlwZSwJ CQkvKiBhbHRlciBjb2x1bW4gdHlwZSAqLwogCUFUX0FsdGVyQ29sdW1uR2VuZXJpY09wdGlv bnMsCS8qIGFsdGVyIGNvbHVtbiBPUFRJT05TICguLi4pICovCkBAIC0yNjcyLDExICsyNjc1 LDExIEBAIHR5cGVkZWYgc3RydWN0IFZhcmlhYmxlU2hvd1N0bXQKIC8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAqCQlDcmVhdGUgVGFibGUgU3RhdGVtZW50CiAgKgotICogTk9URTog aW4gdGhlIHJhdyBncmFtLnkgb3V0cHV0LCBDb2x1bW5EZWYgYW5kIENvbnN0cmFpbnQgbm9k ZXMgYXJlCi0gKiBpbnRlcm1peGVkIGluIHRhYmxlRWx0cywgYW5kIGNvbnN0cmFpbnRzIGlz IE5JTC4gIEFmdGVyIHBhcnNlIGFuYWx5c2lzLAotICogdGFibGVFbHRzIGNvbnRhaW5zIGp1 c3QgQ29sdW1uRGVmcywgYW5kIGNvbnN0cmFpbnRzIGNvbnRhaW5zIGp1c3QKLSAqIENvbnN0 cmFpbnQgbm9kZXMgKGluIGZhY3QsIG9ubHkgQ09OU1RSX0NIRUNLIG5vZGVzLCBpbiB0aGUg cHJlc2VudAotICogaW1wbGVtZW50YXRpb24pLgorICogTk9URTogaW4gdGhlIHJhdyBncmFt Lnkgb3V0cHV0LCBDb2x1bW5EZWYsIFBlcmlvZERlZiwgYW5kIENvbnN0cmFpbnQgbm9kZXMg YXJlCisgKiBpbnRlcm1peGVkIGluIHRhYmxlRWx0czsgcGVyaW9kcyBhbmQgY29uc3RyYWlu dHMgYXJlIE5JTC4gIEFmdGVyIHBhcnNlIGFuYWx5c2lzLAorICogdGFibGVFbHRzIGNvbnRh aW5zIGp1c3QgQ29sdW1uRGVmcywgcGVyaW9kcyBjb250YWlucyBqdXN0IFBlcmlvZERlZnMs IGFuZAorICogY29uc3RyYWludHMgY29udGFpbnMganVzdCBDb25zdHJhaW50IG5vZGVzIChp biBmYWN0LCBvbmx5IENPTlNUUl9DSEVDSyBub2RlcywKKyAqIGluIHRoZSBwcmVzZW50IGlt cGxlbWVudGF0aW9uKS4KICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCkBAIC0y Njg1LDYgKzI2ODgsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTdG10CiAJTm9kZVRhZwkJ dHlwZTsKIAlSYW5nZVZhciAgICpyZWxhdGlvbjsJCS8qIHJlbGF0aW9uIHRvIGNyZWF0ZSAq LwogCUxpc3QJICAgKnRhYmxlRWx0czsJCS8qIGNvbHVtbiBkZWZpbml0aW9ucyAobGlzdCBv ZiBDb2x1bW5EZWYpICovCisJTGlzdAkgICAqcGVyaW9kczsJCS8qIHBlcmlvZHMgKGxpc3Qg b2YgUGVyaW9kRGVmIG5vZGVzKSAqLwogCUxpc3QJICAgKmluaFJlbGF0aW9uczsJLyogcmVs YXRpb25zIHRvIGluaGVyaXQgZnJvbSAobGlzdCBvZgogCQkJCQkJCQkgKiBSYW5nZVZhcikg Ki8KIAlQYXJ0aXRpb25Cb3VuZFNwZWMgKnBhcnRib3VuZDsJLyogRk9SIFZBTFVFUyBjbGF1 c2UgKi8KQEAgLTI2OTgsNiArMjcwMiwzMSBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTdG10 CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyoganVzdCBkbyBub3RoaW5nIGlmIGl0IGFscmVh ZHkgZXhpc3RzPyAqLwogfSBDcmVhdGVTdG10OwogCisKKy8qIC0tLS0tLS0tLS0KKyAqIERl ZmluaXRpb25zIGZvciBwZXJpb2RzIGluIENyZWF0ZVN0bXQKKyAqIC0tLS0tLS0tLS0KKyAq LworCit0eXBlZGVmIHN0cnVjdCBQZXJpb2REZWYKK3sKKwlOb2RlVGFnCQl0eXBlOworCU9p ZAkJCW9pZDsJCQkvKiBwZXJpb2Qgb2lkLCBvbmNlIGl0J3MgdHJhbnNmb3JtZWQgKi8KKwlj aGFyCSAgICpwZXJpb2RuYW1lOwkJLyogcGVyaW9kIG5hbWUgKi8KKwljaGFyCSAgICpzdGFy dGNvbG5hbWU7CS8qIG5hbWUgb2Ygc3RhcnQgY29sdW1uICovCisJY2hhcgkgICAqZW5kY29s bmFtZTsJCS8qIG5hbWUgb2YgZW5kIGNvbHVtbiAqLworCUF0dHJOdW1iZXIJc3RhcnRhdHRu dW07CS8qIGF0dG51bSBvZiB0aGUgc3RhcnQgY29sdW1uICovCisJQXR0ck51bWJlcgllbmRh dHRudW07CQkvKiBhdHRudW0gb2YgdGhlIGVuZCBjb2x1bW4gKi8KKwlBdHRyTnVtYmVyCXJu Z2F0dG51bTsJCS8qIGF0dG51bSBvZiB0aGUgR0VORVJBVEVEIHJhbmdlIGNvbHVtbiAqLwor CUxpc3QJICAgKm9wdGlvbnM7CQkvKiBvcHRpb25zIGZyb20gV0lUSCBjbGF1c2UgKi8KKwlj aGFyCSAgICpjb25zdHJhaW50bmFtZTsJLyogbmFtZSBvZiB0aGUgQ0hFQ0sgY29uc3RyYWlu dCAqLworCWNoYXIJICAgKnJhbmdldHlwZW5hbWU7CS8qIG5hbWUgb2YgdGhlIHJhbmdlIHR5 cGUgKi8KKwlPaWQJCQljb2x0eXBpZDsJCS8qIHRoZSBzdGFydC9lbmQgY29sIHR5cGUgKi8K KwlPaWQJCQlybmd0eXBpZDsJCS8qIHRoZSByYW5nZSB0eXBlIHRvIHVzZSAqLworCWJvb2wJ CWNvbGV4aXN0czsJCS8qIHVzZSBhbiBleGlzdGluZyBHRU5FUkFURUQgY29sdW1uICovCisJ aW50CQkJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAq LworfSBQZXJpb2REZWY7CisKIC8qIC0tLS0tLS0tLS0KICAqIERlZmluaXRpb25zIGZvciBj b25zdHJhaW50cyBpbiBDcmVhdGVTdG10CiAgKgpAQCAtMzM5MSw2ICszNDIwLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgSW5kZXhTdG10CiAJTGlzdAkgICAqaW5kZXhQYXJhbXM7CS8qIGNvbHVt bnMgdG8gaW5kZXg6IGEgbGlzdCBvZiBJbmRleEVsZW0gKi8KIAlMaXN0CSAgICppbmRleElu Y2x1ZGluZ1BhcmFtczsJLyogYWRkaXRpb25hbCBjb2x1bW5zIHRvIGluZGV4OiBhIGxpc3QK IAkJCQkJCQkJCQkgKiBvZiBJbmRleEVsZW0gKi8KKwlQZXJpb2REZWYgICpwZXJpb2Q7CQkJ LyogVGhlIHBlcmlvZCBpbmNsdWRlZCBpbiB0aGUgaW5kZXggKi8KIAlMaXN0CSAgICpvcHRp b25zOwkJLyogV0lUSCBjbGF1c2Ugb3B0aW9uczogYSBsaXN0IG9mIERlZkVsZW0gKi8KIAlO b2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbiAocGFydGlhbC1pbmRleCBw cmVkaWNhdGUpICovCiAJTGlzdAkgICAqZXhjbHVkZU9wTmFtZXM7IC8qIGV4Y2x1c2lvbiBv cGVyYXRvciBuYW1lcywgb3IgTklMIGlmIG5vbmUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK aW5kZXggODM5MjAxOGE4MjEuLmJiZmQxODU1MzBkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aApAQCAtMjM1NCw2ICsyMzU0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mRXhw cgogewogCU5vZGVUYWcJCXR5cGU7CiAJVmFyCQkgICAqcmFuZ2VWYXI7CQkJLyogUmFuZ2Ug Y29sdW1uICovCisJVmFyCQkgICAqc3RhcnRWYXI7CQkJLyogU3RhcnQgY29sdW1uIGlmIFBF UklPRCAqLworCVZhcgkJICAgKmVuZFZhcjsJCQkJLyogRW5kIGNvbHVtbiBpZiBQRVJJT0Qg Ki8KIAljaGFyCSAgICpyYW5nZV9uYW1lOwkJCS8qIFJhbmdlIG5hbWUgKi8KIAlOb2RlCSAg ICp0YXJnZXRSYW5nZTsJCS8qIEZPUiBQT1JUSU9OIE9GIGJvdW5kcyBhcyBhIHJhbmdlICov CiAJT2lkCQkJcmFuZ2VUeXBlOwkJCS8qIHR5cGUgb2YgdGFyZ2V0UmFuZ2UgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCA0MjU5ODdhZmVlNy4uNDY0NTdkNjAwODcgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKQEAgLTMzOCw3ICszMzgsNyBAQCBQR19LRVlXT1JEKCJwYXJ0aXRpb24iLCBQ QVJUSVRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InBhc3NpbmciLCBQQVNTSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJwYXNzd29yZCIsIFBBU1NXT1JELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXRoIiwgUEFUSCwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQotUEdfS0VZV09SRCgicGVyaW9kIiwgUEVSSU9ELCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJwZXJpb2QiLCBQRVJJT0QsIFJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExB Q0lORywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYW4i LCBQTEFOLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJw bGFucyIsIFBMQU5TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX3V0aWxjbWQuaAppbmRleCAxNDA2NTg5NDc3OS4uZDg0ZDAyYjAyODAg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgKKysrIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaApAQCAtNDAsNSArNDAsNiBAQCBl eHRlcm4gSW5kZXhTdG10ICpnZW5lcmF0ZUNsb25lZEluZGV4U3RtdChSYW5nZVZhciAqaGVh cFJlbCwKIAkJCQkJCQkJCQkgIFJlbGF0aW9uIHNvdXJjZV9pZHgsCiAJCQkJCQkJCQkJICBj b25zdCBzdHJ1Y3QgQXR0ck1hcCAqYXR0bWFwLAogCQkJCQkJCQkJCSAgT2lkICpjb25zdHJh aW50T2lkKTsKK2V4dGVybiB2b2lkIHRyYW5zZm9ybVBlcmlvZE9wdGlvbnMoUGVyaW9kRGVm ICpwZXJpb2QpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfVVRJTENNRF9IICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL2xzeXNjYWNoZS5oCmluZGV4IGU3YWQ1MTMxNDZhLi5hY2IwNjQ5MzY0ZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKQEAgLTk1LDYgKzk1LDggQEAgZXh0ZXJuIE9pZAlnZXRfYXR0 dHlwZShPaWQgcmVsaWQsIEF0dHJOdW1iZXIgYXR0bnVtKTsKIGV4dGVybiB2b2lkIGdldF9h dHR0eXBldHlwbW9kY29sbChPaWQgcmVsaWQsIEF0dHJOdW1iZXIgYXR0bnVtLAogCQkJCQkJ CQkgIE9pZCAqdHlwaWQsIGludDMyICp0eXBtb2QsIE9pZCAqY29sbGlkKTsKIGV4dGVybiBE YXR1bSBnZXRfYXR0b3B0aW9ucyhPaWQgcmVsaWQsIGludDE2IGF0dG51bSk7CitleHRlcm4g Y2hhciAqZ2V0X3BlcmlvZG5hbWUoT2lkIHBlcmlvZGlkLCBib29sIG1pc3Npbmdfb2spOwor ZXh0ZXJuIE9pZAlnZXRfcGVyaW9kX29pZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIgKnBlcmlv ZG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jYXN0X29pZChPaWQg c291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlwZWlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0 ZXJuIGNoYXIgKmdldF9jb2xsYXRpb25fbmFtZShPaWQgY29sbG9pZCk7CiBleHRlcm4gYm9v bCBnZXRfY29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhPaWQgY29sbG9pZCk7CkBAIC0xOTks NiArMjAxLDcgQEAgZXh0ZXJuIE9pZAlnZXRfcmFuZ2Vfc3VidHlwZShPaWQgcmFuZ2VPaWQp OwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfY29sbGF0aW9uKE9pZCByYW5nZU9pZCk7CiBleHRl cm4gT2lkCWdldF9yYW5nZV9tdWx0aXJhbmdlKE9pZCByYW5nZU9pZCk7CiBleHRlcm4gT2lk CWdldF9tdWx0aXJhbmdlX3JhbmdlKE9pZCBtdWx0aXJhbmdlT2lkKTsKK2V4dGVybiBPaWQJ Z2V0X3N1YnR5cGVfcmFuZ2UoT2lkIHN1YnR5cGVPaWQpOwogZXh0ZXJuIE9pZAlnZXRfaW5k ZXhfY29sdW1uX29wY2xhc3MoT2lkIGluZGV4X29pZCwgaW50IGF0dG5vKTsKIGV4dGVybiBi b29sIGdldF9pbmRleF9pc3JlcGxpZGVudChPaWQgaW5kZXhfb2lkKTsKIGV4dGVybiBib29s IGdldF9pbmRleF9pc3ZhbGlkKE9pZCBpbmRleF9vaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcGVyaW9kLmggYi9zcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDAyYzE3MDM2ZmQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaApAQCAtMCwwICsxLDIx IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZXJpb2QuaAorICoJICBzdXBw b3J0IGZvciBQb3N0Z3JlcyBwZXJpb2RzLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmgK KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQRVJJT0RfSAorI2Rl ZmluZSBQRVJJT0RfSAorCisjaW5jbHVkZSAiZXhlY3V0b3IvdHVwdGFibGUuaCIKKworZXh0 ZXJuIERhdHVtIHBlcmlvZF90b19yYW5nZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgaW50IHN0 YXJ0YXR0bm8sIGludCBlbmRhdHRubywgT2lkIHJhbmdldHlwZSk7CisKKyNlbmRpZgkJCQkJ CQkvKiBQRVJJT0RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2Rk bF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9k ZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMKaW5kZXggMjc1OGFlODJkN2IuLmQ5MGI0 ODRmMzRkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2Uv dGVzdF9kZGxfZGVwYXJzZS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxfZGVw YXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMKQEAgLTE4Myw2ICsxODMsMTIgQEAgZ2V0X2FsdGVy dGFibGVfc3ViY21kaW5mbyhQR19GVU5DVElPTl9BUkdTKQogCQkJY2FzZSBBVF9Ecm9wQ29u c3RyYWludDoKIAkJCQlzdHJ0eXBlID0gIkRST1AgQ09OU1RSQUlOVCI7CiAJCQkJYnJlYWs7 CisJCQljYXNlIEFUX0FkZFBlcmlvZDoKKwkJCQlzdHJ0eXBlID0gIkFERCBQRVJJT0QiOwor CQkJCWJyZWFrOworCQkJY2FzZSBBVF9Ecm9wUGVyaW9kOgorCQkJCXN0cnR5cGUgPSAiRFJP UCBQRVJJT0QiOworCQkJCWJyZWFrOwogCQkJY2FzZSBBVF9SZUFkZENvbW1lbnQ6CiAJCQkJ c3RydHlwZSA9ICIocmUpIEFERCBDT01NRU5UIjsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKaW5kZXggZGIyMTdjNjFk MmYuLmQ2NmRjNzNhMGYxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2Zvcl9wb3J0aW9uX29mLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zv cl9wb3J0aW9uX29mLm91dApAQCAtNTk5LDYgKzU5OSw0NCBAQCBTRUxFQ1QgKiBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICBbMyw0KSB8IHtb MjAxOC0wMS0wMSwpfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCB0aHJlZQogKDYgcm93cykKIAorRFJPUCBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0MjsKKy0tIFRlc3Qgd2l0aCBQRVJJT0RzCitDUkVBVEUgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIG5hbWUgdGV4dCBOT1QgTlVM TCwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAg Q09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25f b2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMn LCAnb25lJyksCisoJ1sxLDIpJywgJzIwMTgtMDItMDQnLCAnMjAxOC0wMy0wMycsICdvbmUn KSwKKygnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JywgJ29uZScpLAorKCdb MiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDUtMDEnLCAndHdvJyksCisoJ1szLDQpJywg JzIwMTgtMDEtMDEnLCBudWxsLCAndGhyZWUnKTsKKzsKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8g JzIwMTgtMDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsK K0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dIRVJFIGlkID0gJ1sy LDMpJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBuYW1lICAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCAy MDE4LTAxLTAyIHwgMjAxOC0wMS0xMCB8IG9uZQorIFsxLDIpIHwgMjAxOC0wMS0xMCB8IDIw MTgtMDItMDMgfCBvbmVeMQorIFsxLDIpIHwgMjAxOC0wMi0wNCB8IDIwMTgtMDItMTAgfCBv bmVeMQorIFsxLDIpIHwgMjAxOC0wMi0xMCB8IDIwMTgtMDMtMDMgfCBvbmUKKyBbMSwyKSB8 IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0IHwgb25lCisgWzIsMykgfCAyMDE4LTAxLTAxIHwg MjAxOC0wMS0xNSB8IHR3bworIFsyLDMpIHwgMjAxOC0wMi0xNSB8IDIwMTgtMDUtMDEgfCB0 d28KKyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAgICAgICAgICAgIHwgdGhyZWUKKyg4IHJvd3Mp CisKIERST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CiAtLSBUZXN0IHdpdGggYSBj dXN0b20gcmFuZ2UgdHlwZQogQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3Vi dHlwZT1kYXRlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVy aW9kcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BlcmlvZHMub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmQzYTg0NmFiOQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5vdXQKQEAg LTAsMCArMSwyNjcgQEAKKy8qIFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgaW1wbGVtZW50ZWQg Ki8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVy aW9kIGZvciBzeXN0ZW1fdGltZSAoZHMsIGRlKSk7CitFUlJPUjogIFBFUklPRCBGT1IgU1lT VEVNX1RJTUUgaXMgbm90IHN1cHBvcnRlZAorTElORSAyOiBjcmVhdGUgdGFibGUgcHQgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3Igc3kuLi4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisvKiBQ ZXJpb2RzIG11c3Qgc3BlY2lmeSBhY3R1YWwgY29sdW1ucyAqLworY3JlYXRlIHRhYmxlIHB0 IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGJvZ3VzLCBk ZSkpOworRVJST1I6ICBjb2x1bW4gImJvZ3VzIiBvZiByZWxhdGlvbiAicHQiIGRvZXMgbm90 IGV4aXN0CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUs IHBlcmlvZCBmb3IgcCAoZHMsIGJvZ3VzKSk7CitFUlJPUjogIGNvbHVtbiAiYm9ndXMiIG9m IHJlbGF0aW9uICJwdCIgZG9lcyBub3QgZXhpc3QKKy8qIERhdGEgdHlwZXMgbXVzdCBtYXRj aCBleGFjdGx5ICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRl IHRpbWVzdGFtcCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgc3RhcnQgYW5k IGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGJlIG9mIHNhbWUgdHlwZQorY3JlYXRlIHRh YmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB0ZXh0IGNvbGxhdGUgIkMiLCBkZSB0ZXh0IGNvbGxh dGUgIlBPU0lYIiwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgc3RhcnQgYW5k IGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0IGhhdmUgc2FtZSBjb2xsYXRpb24KKy8qIFBl cmlvZHMgbXVzdCBoYXZlIGEgZGVmYXVsdCBCVHJlZSBvcGVyYXRvciBjbGFzcyAqLworY3Jl YXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB4bWwsIGRlIHhtbCwgcGVyaW9kIGZvciBw IChkcywgZGUpKTsKK0VSUk9SOiAgbm8gcmFuZ2UgdHlwZSBmb3IgeG1sIGZvdW5kIGZvciBw ZXJpb2QgcAorSElOVDogIFlvdSBjYW4gZGVmaW5lIGEgY3VzdG9tIHJhbmdlIHR5cGUgd2l0 aCBDUkVBVEUgVFlQRQorLyogUGVyaW9kIGFuZCBjb2x1bW4gbmFtZXMgYXJlIGluIHRoZSBz YW1lIG5hbWVzcGFjZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwZXJpb2QgZm9yIGN0aWQgKGRzLCBkZSkpOworRVJST1I6ICBwZXJpb2Qg bmFtZSAiY3RpZCIgY29uZmxpY3RzIHdpdGggYSBzeXN0ZW0gY29sdW1uIG5hbWUKK2NyZWF0 ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBp ZCAoZHMsIGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1lICJpZCIgY29uZmxpY3RzIHdpdGgg YSBjb2x1bW4gbmFtZQorLyogUGVyaW9kIG5hbWUgY2FuJ3QgYmUgZ2l2ZW4gbW9yZSB0aGFu IG9uY2UgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0 ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworRVJS T1I6ICBwZXJpb2QgbmFtZSAicCIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCisvKiBOb3cg bWFrZSBvbmUgdGhhdCB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBk cyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworLyogU0VMRUNUICog ZXhjbHVkZXMgdGhlIFBFUklPRCAqLworaW5zZXJ0IGludG8gcHQgdmFsdWVzICgxLCAnMjAw MC0wMS0wMScsICcyMDAxLTAxLTAxJyk7CitzZWxlY3QgKiBmcm9tIHB0OworIGlkIHwgICAg IGRzICAgICB8ICAgICBkZSAgICAgCistLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyAgMSB8IDAxLTAxLTIwMDAgfCAwMS0wMS0yMDAxCisoMSByb3cpCisKKy8qIFlvdSBjYW4g Z2V0IGl0IGlmIHlvdSB3YW50ICovCitzZWxlY3QgKiwgcCBmcm9tIHB0OworIGlkIHwgICAg IGRzICAgICB8ICAgICBkZSAgICAgfCAgICAgICAgICAgIHAgICAgICAgICAgICAKKy0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg IDEgfCAwMS0wMS0yMDAwIHwgMDEtMDEtMjAwMSB8IFswMS0wMS0yMDAwLDAxLTAxLTIwMDEp CisoMSByb3cpCisKKy8qIFR3byBhcmUgb2theSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQg aW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwMSAoZHMsIGRlKSwgcGVy aW9kIGZvciBwMiAoZHMsIGRlKSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRl ZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAo ZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitcZCBwdDIKKyAgICAgICAgICAg ICAgICBUYWJsZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCisgZGUgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJp b2RzOgorICAgIHAgKGRzLCBkZSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9j aGVjayIgQ0hFQ0sgKGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVh dGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2wgaXNuJ3QgdGhl cmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUs IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitFUlJP UjogIE5vIGNvbHVtbiBmb3VuZCB3aXRoIG5hbWUgcAorLyogU2tpcCBjcmVhdGluZyBHRU5F UkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBvcHRpb24gaGFzIGFuIGludmFsaWQg dmFsdWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSAnd2hhdGV2ZXIn KSk7CitFUlJPUjogIGNvbGV4aXN0cyByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1u IGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJh bmdlKGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4 aXN0cyA9IHRydWUpKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1 bW4gdGhhdCBhbGxvd3MgbnVsbHMKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVt bjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdl IG5vdCBudWxsLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1 ZSkpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgbm9uLWdlbmVyYXRlZCBjb2x1bW4KKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29s dW1uIGlzIEdFTkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0g VE9ETzoKKy0tIGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5n ZShkZSwgZHMpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3JvbmcgdHlwZSAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCB0c3JhbmdlIG5vdCBudWxs IGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworRVJST1I6ICBQZXJp b2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB3aXRoIHRoZSB3cm9uZyB0eXBlCisvKiBT a2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVt biBpcyBpbmhlcml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIs IGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdh eXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAo cGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKSBpbmhlcml0 cyAocHQycGFyZW50KTsKK0VSUk9SOiAgSW5oZXJpdGluZyBpcyBub3Qgc3VwcG9ydGVkIHdo ZW4gYSB0YWJsZSBoYXMgYSBQRVJJT0QKK2Ryb3AgdGFibGUgcHQycGFyZW50OworLyoKKyAq IEFMVEVSIFRBQkxFIHRlc3RzCisgKi8KK2FsdGVyIHRhYmxlIHB0IGRyb3AgcGVyaW9kIGZv ciBwOworYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3Igc3lzdGVtX3RpbWUgKGRzLCBk ZSk7CitFUlJPUjogIFBFUklPRCBGT1IgU1lTVEVNX1RJTUUgaXMgbm90IHN1cHBvcnRlZAor YWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKTsKKy8qIEFkZGluZyBh IHNlY29uZCBvbmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHBlcmlvZCBmb3IgcDEgKGRzLCBkZSkpOworYWx0ZXIgdGFibGUgcHQyIGFk ZCBwZXJpb2QgZm9yIHAyIChkcywgZGUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4ndCBk cm9wIGl0cyBjb2x1bW5zICovCithbHRlciB0YWJsZSBwdCBkcm9wIGNvbHVtbiBkczsKK0VS Uk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIGRzIG9mIHRhYmxlIHB0IGJlY2F1c2Ugb3RoZXIg b2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0IGRl cGVuZHMgb24gY29sdW1uIGRzIG9mIHRhYmxlIHB0CitISU5UOiAgVXNlIERST1AgLi4uIENB U0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorYWx0ZXIgdGFibGUg cHQgZHJvcCBjb2x1bW4gZGU7CitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBkZSBvZiB0 YWJsZSBwdCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBw ZXJpb2QgcCBvbiB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiBkZSBvZiB0YWJsZSBwdAor SElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmpl Y3RzIHRvby4KKy8qIENhbid0IGNoYW5nZSB0aGUgZGF0YSB0eXBlcyAqLworYWx0ZXIgdGFi bGUgcHQgYWx0ZXIgY29sdW1uIGRzIHR5cGUgdGltZXN0YW1wOworRVJST1I6ICBjYW5ub3Qg YWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEgcGVyaW9kCitERVRBSUw6ICBwZXJp b2QgcCBvbiB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiAiZHMiCithbHRlciB0YWJsZSBw dCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CitFUlJPUjogIGNhbm5vdCBhbHRl ciB0eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBwZXJpb2QKK0RFVEFJTDogIHBlcmlvZCBw IG9uIHRhYmxlIHB0IGRlcGVuZHMgb24gY29sdW1uICJkcyIKKy8qIGNvbHVtbi9wZXJpb2Qg bmFtZXNwYWNlIGNvbmZsaWN0cyAqLworYWx0ZXIgdGFibGUgcHQgYWRkIGNvbHVtbiBwIGlu dGVnZXI7CitFUlJPUjogIGNvbHVtbiBuYW1lICJwIiBjb25mbGljdHMgd2l0aCBhIHBlcmlv ZCBuYW1lCithbHRlciB0YWJsZSBwdCByZW5hbWUgY29sdW1uIGlkIHRvIHA7CitFUlJPUjog IGNvbHVtbiBuYW1lICJwIiBjb25mbGljdHMgd2l0aCBhIHBlcmlvZCBuYW1lCithbHRlciB0 YWJsZSBwdCBhZGQgcGVyaW9kIGZvciB0YWJsZW9pZCAoZHMsIGRlKTsKK0VSUk9SOiAgcGVy aW9kIG5hbWUgInRhYmxlb2lkIiBjb25mbGljdHMgd2l0aCBhIHN5c3RlbSBjb2x1bW4gbmFt ZQorYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgIi4uLi4uLi4ucGcuZHJvcHBlZC40 Li4uLi4uLi4iIChkcywgZGUpOworRVJST1I6ICBwZXJpb2QgbmFtZSAiLi4uLi4uLi5wZy5k cm9wcGVkLjQuLi4uLi4uLiIgY29uZmxpY3RzIHdpdGggYSBjb2x1bW4gbmFtZQorLyogYWRk aW5nIGNvbHVtbnMgYW5kIHRoZSBwZXJpb2QgYXQgdGhlIHNhbWUgdGltZSAqLworY3JlYXRl IHRhYmxlIHB0MiAoaWQgaW50ZWdlcik7CithbHRlciB0YWJsZSBwdDIgYWRkIGNvbHVtbiBk cyBkYXRlLCBhZGQgY29sdW1uIGRlIGRhdGUsIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSk7 Citkcm9wIHRhYmxlIHB0MjsKKy8qIEFtYmlndW91cyByYW5nZSB0eXBlcyByYWlzZSBhbiBl cnJvciAqLworY3JlYXRlIHR5cGUgbXlkYXRlcmFuZ2UgYXMgcmFuZ2Uoc3VidHlwZT1kYXRl KTsKK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9k IGZvciBwIChkcywgZGUpKTsKK0VSUk9SOiAgYW1iaWd1b3VzIHJhbmdlIGZvciB0eXBlIGRh dGUKKy8qIFlvdSBjYW4gZ2l2ZSBhbiBleHBsaWNpdCByYW5nZSB0eXBlICovCitjcmVhdGUg dGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMs IGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbXlkYXRlcmFuZ2UnKSk7Citkcm9wIHR5cGUgbXlk YXRlcmFuZ2U7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgbXlkYXRlcmFuZ2UgYmVjYXVz ZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgcGVyaW9kIHAgb24gdGFi bGUgcHQyIGRlcGVuZHMgb24gdHlwZSBteWRhdGVyYW5nZQorSElOVDogIFVzZSBEUk9QIC4u LiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK2Ryb3AgdHlw ZSBteWRhdGVyYW5nZSBjYXNjYWRlOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBwZXJp b2QgcCBvbiB0YWJsZSBwdDIKK2Ryb3AgdGFibGUgcHQyOworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo cmFuZ2V0eXBlID0gJ2RhdGVyYW5nZScpKTsKKy8qIFJhbmdlIHR5cGUgaXMgbm90IGZvdW5k ICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlv ZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbm90YXJhbmdlJykpOworRVJS T1I6ICBSYW5nZSB0eXBlIG5vdGFyYW5nZSBub3QgZm91bmQKKy8qIFJhbmdlIHR5cGUgaXMg dGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDMgKGlkIGludCwgZHMgZGF0ZSwg ZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICd0c3R6 cmFuZ2UnKSk7CitFUlJPUjogIFJhbmdlIHR5cGUgdHN0enJhbmdlIGRvZXMgbm90IG1hdGNo IGNvbHVtbiB0eXBlIGRhdGUKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBH RU5FUkFURUQgY29sdW1uOiB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdl ciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIg YWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK1xk IHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRlICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAoZHMsIGRlKQorQ2hlY2sgY29uc3RyYWlu dHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkKKworZHJvcCB0YWJsZSBw dDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2Ug dGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAo ZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgY29sdW1uICJwIiBv ZiByZWxhdGlvbiAicHQyIiBkb2VzIG5vdCBleGlzdAorZHJvcCB0YWJsZSBwdDI7CisvKiBT a2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIG9wdGlv biBoYXMgYW4gaW52YWxpZCB2YWx1ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdl ciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIg YWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSAnd2hhdGV2ZXIn KTsKK0VSUk9SOiAgY29sZXhpc3RzIHJlcXVpcmVzIGEgQm9vbGVhbiB2YWx1ZQorZHJvcCB0 YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJl Y2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBh bHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQy IGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitF UlJPUjogIFBlcmlvZCBwIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51 bGxzCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVt bjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdl IG5vdCBudWxsKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUp IHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgbm9u LWdlbmVyYXRlZCBjb2x1bW4KK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBH RU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgR0VORVJBVEVE IGJ1dCB3aXRoIHRoZSB3cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgorLS0gY3JlYXRl IHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ug bm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBkcykpIHN0b3Jl ZCk7CistLSBhbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRo IChjb2xleGlzdHMgPSB0cnVlKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVt bjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVh dGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIHRzcmFuZ2Ug bm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAodHNyYW5nZShkcywgZGUpKSBzdG9yZWQp OworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29s ZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBnZW5lcmF0ZWQgY29s dW1uIHdpdGggdGhlIHdyb25nIHR5cGUKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVh dGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgaW5o ZXJpdGVkICovCitjcmVhdGUgdGFibGUgcHQycGFyZW50IChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChk YXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKCkgaW5oZXJp dHMgKHB0MnBhcmVudCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMs IGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBh IGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBpbmhlcml0ZWQKK2Ryb3AgdGFibGUgcHQyOwor ZHJvcCB0YWJsZSBwdDJwYXJlbnQ7CisvKiBDUkVBVEUgVEFCTEUgKExJS0UgLi4uKSAqLwor LyogUGVyaW9kcyBhcmUgbm90IGNvcGllZCBieSBMSUtFLCBzbyB0aGVpciBjb2x1bW5zIGFy ZW4ndCBlaXRoZXIgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQpOworXGQgcHQyCisg ICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIGRlICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorCitkcm9wIHRhYmxlIHB0MjsKKy8qIENhbiBhZGQgYSBwZXJpb2QgcmVmZXJyaW5n IHRvIExJS0UnZCBjb2x1bW5zICovCitjcmVhdGUgdGFibGUgbm90X3AgKGlkIGludGVnZXIs IGRzIGRhdGUsIGRlIGRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBub3RfcCwgcGVy aW9kIGZvciBwIChkcywgZGUpKTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJw dWJsaWMucHQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyBkcyAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAg fCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAo ZHMsIGRlKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAo ZHMgPCBkZSkKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEgcGVyaW9kIHdpdGgg dGhlIHNhbWUgbmFtZSAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZv ciBwIChkcywgZGUpKTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMu cHQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAg ICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRl ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAoZHMsIGRl KQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAoZHMgPCBk ZSkKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEgcGVyaW9kIHdpdGggYSBkaWZm ZXJlbnQgbmFtZSAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZvciBw MiAoZHMsIGRlKSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnB0 MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t CisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZHMgICAg IHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZGUgICAgIHwgZGF0ZSAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHAyIChkcywgZGUp CitDaGVjayBjb25zdHJhaW50czoKKyAgICAicHQyX3AyX2NoZWNrIiBDSEVDSyAoZHMgPCBk ZSkKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4ndCBhZGQgYSBwZXJpb2Qgd2hvc2UgbmFt ZSBjb25mbGljdHMgd2l0aCBhIExJS0UnZCBjb2x1bW4gKi8KK2NyZWF0ZSB0YWJsZSBwdDIg KGxpa2UgcHQsIHBlcmlvZCBmb3IgaWQgKGRzLCBkZSkpOworRVJST1I6ICBwZXJpb2QgbmFt ZSAiaWQiIGNvbmZsaWN0cyB3aXRoIGEgY29sdW1uIG5hbWUKKy8qIENSRUFURSBUQUxCRSBJ TkhFUklUUyAqLworLyogQ2FuJ3QgaW5oZXJpdCBmcm9tIGEgdGFibGUgd2l0aCBhIHBlcmlv ZCAqLworY3JlYXRlIHRhYmxlIHB0MiAobmFtZSB0ZXh0KSBpbmhlcml0cyAocHQpOworRVJS T1I6ICBJbmhlcml0aW5nIGZyb20gYSB0YWJsZSB3aXRoIGEgUEVSSU9EIGlzIG5vdCBzdXBw b3J0ZWQKKy8qIENhbid0IGluaGVyaXQgd2l0aCBhIHBlcmlvZCAqLworY3JlYXRlIHRhYmxl IHB0MiAoZDJzIGRhdGUsIGQyZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGQycywgZDJlKSkgaW5o ZXJpdHMgKG5vdF9wKTsKK0VSUk9SOiAgSW5oZXJpdGluZyBpcyBub3Qgc3VwcG9ydGVkIHdo ZW4gYSB0YWJsZSBoYXMgYSBQRVJJT0QKK2Ryb3AgdGFibGUgbm90X3A7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA4OGFi MzA5ZTEzNS4uODczYjhmMmY0MWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMTUzLDYgKzE1Myw3NiBAQCBTRUxFQ1Qg cGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQg V0hFUkUgY29ubmFtZSA9ICd0ZQogIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcm5n Ml9wayBPTiB0ZW1wb3JhbF9ybmcyIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkK ICgxIHJvdykKIAorLS0gUEsgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSBQRVJJT0Q6CitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfcGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9y YWxfcGVyCisgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3BlciIKKyAg IENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxs IHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQ ZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVz OgorICAgICJ0ZW1wb3JhbF9wZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9wZXJf dmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitTRUxF Q1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9wZXJfcGsnOworICAgICAgICAgICAgcGdfZ2V0X2NvbnN0 cmFpbnRkZWYgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAs IHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Bl cl9wayc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRl ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1wb3JhbF9wZXJfcGsgT04gdGVtcG9y YWxfcGVyIFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0gUEsgd2l0 aCB0d28gY29sdW1ucyBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Bl cjIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjJfcGsgUFJJ TUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xk IHRlbXBvcmFsX3BlcjIKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9w ZXIyIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0KKyBpZDEgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAKKyBpZDIgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0lu ZGV4ZXM6CisgICAgInRlbXBvcmFsX3BlcjJfcGsiIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0 ZW1wb3JhbF9wZXIyX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlk X3RpbCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyMl9wayc7CisgICAgICAgICAg ICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZ IChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VM RUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJh aW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyMl9wayc7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVyMl9wayBPTiB0ZW1wb3JhbF9w ZXIyIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJvdykKKwogLS0gUEsg d2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgogQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyBy YW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMiKTsKIENSRUFURSBUQUJMRSB0ZW1w b3JhbF9ybmczICgKQEAgLTMwMCw2ICszNzAsNzggQEAgU0VMRUNUIHBnX2dldF9pbmRleGRl Zihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGUKICgxIHJvdykKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworLS0gVU5JUVVF IHdpdGggb25lIGNvbHVtbiBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BlcjMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3BlcjMKKyAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9wZXIzIgorICAgQ29sdW1uICAgfCAgIFR5cGUg ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAg IHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF9mcm9tIHwg ZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0 ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX3Bl cjNfdXEiIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBj b25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfcGVyM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sg KHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRl ZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Bl cjNfdXEnOworICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVOSVFVRSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5k ZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25u YW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRl bXBvcmFsX3BlcjNfdXEgT04gdGVtcG9yYWxfcGVyMyBVU0lORyBnaXN0IChpZCwgdmFsaWRf YXQpCisoMSByb3cpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsKKy0tIFVOSVFVRSB3 aXRoIHR3byBjb2x1bW5zIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf cGVyMyAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBV TklRVUUgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRl bXBvcmFsX3BlcjMKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9wZXIz IgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZDEgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBpZDIgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK K1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4 ZXM6CisgICAgInRlbXBvcmFsX3BlcjNfdXEiIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxf cGVyM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisK K1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOworICAgICAgICAgICAgIHBnX2dl dF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29u aW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX3BlcjNfdXEnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVY IHRlbXBvcmFsX3BlcjNfdXEgT04gdGVtcG9yYWxfcGVyMyBVU0lORyBnaXN0IChpZDEsIGlk MiwgdmFsaWRfYXQpCisoMSByb3cpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsKIC0t IFVOSVFVRSB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6CiBDUkVBVEUgVFlQRSB0ZXh0cmFu Z2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOwogQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMzc3LDYgKzUxOSwxMDYgQEAgQUxURVIgVEFCTEUg dGVtcG9yYWwzCiAgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQogICBVTklRVUUgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIERST1AgVEFCTEUgdGVtcG9yYWwzOwor LS0gUFJJTUFSWSBLRVkgd2l0aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKK1xkIHRlbXBvcmFsMworICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVt cG9yYWwzIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsM19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBv cmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisK K0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gUFJJTUFSWSBLRVkgd2l0aCBQRVJJT0QgdG9v CitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9m cm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwz CisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworICAgICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMudGVtcG9yYWwzIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50 NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsM19wayIgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3Ry YWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zy b20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gVU5JUVVFIHdp dGggUEVSSU9EIGFscmVhZHkgdGhlcmUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisgIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCisg ICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8 ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlk ICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlk X2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3Rp bCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAg ICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVt cG9yYWwzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hl Y2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sg KHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0g VU5JUVVFIHdpdGggUEVSSU9EIHRvbworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZQorKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisg IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwz CisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4g ICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZh bGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlk X3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoK KyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAi dGVtcG9yYWwzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor Q2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hF Q0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOwog LS0KIC0tIHJhbmdlIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cwogLS0KQEAgLTg3NCw2 ICsxMTE2LDI4NCBAQCBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkg aWQsIHZhbGlkX2F0OwogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX21sdHJuZzM7CiAtLQorLS0g UEVSSU9EIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cworLS0KK0FMVEVSIFRBQkxFIHRl bXBvcmFsX3BlciBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrOworLS0gb2theToK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScs ICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAxOC0w MS0wMScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXJfcGs7CistLSBzaG91bGQgZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitFUlJPUjogIGNvdWxkIG5vdCBjcmVhdGUg ZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3Blcl9wayIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDItMDMpKSBjb25mbGlj dHMgd2l0aCBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAx LTA1KSkuCitST0xMQkFDSzsKKy0tIHJlamVjdHMgZW1wdHk6CitCRUdJTjsKKyAgQUxURVIg VEFCTEUgdGVtcG9yYWxfcGVyIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsKKyAgSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKKyAgQUxURVIgVEFCTEUg dGVtcG9yYWxfcGVyIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpOworRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXJfdmFsaWRf YXRfY2hlY2siIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIiIGlzIHZpb2xhdGVkIGJ5IHNv bWUgcm93CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKKy0tCistLSBQRVJJT0Qg UEs6IHRlc3QgaW5zZXJ0cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgt MDEtMDInLCAnMjAxOC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAzLTAzJywg JzIwMTgtMDQtMDQnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKKy0tIHNob3Vs ZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsK K0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25z dHJhaW50ICJ0ZW1wb3JhbF9wZXJfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rp bmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykp LgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0VSUk9SOiAg bnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcGVyIiB2 aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAobnVsbCwgMjAxOC0wMS0wMSwgMjAxOC0wMS0wNSwgWzIwMTgtMDEtMDEsMjAxOC0w MS0wNSkpLgorLS0gcmVqZWN0cyBlbXB0eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAyMC0wMS0w MScsICcyMDIwLTAxLTAxJyk7CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1w b3JhbF9wZXIiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgInRlbXBvcmFsX3Blcl92YWxp ZF9hdF9jaGVjayIKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChbMyw0KSwgMjAy MC0wMS0wMSwgMjAyMC0wMS0wMSwgZW1wdHkpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w ZXIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIw MTgtMDEtMDIgfCAyMDE4LTAyLTAzCisgWzEsMikgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0w NAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyBbMyw0KSB8IDIwMTgtMDEt MDEgfCAKKyg0IHJvd3MpCisKKy0tCistLSBQRVJJT0QgUEs6IHRlc3QgdXBkYXRlcworLS0K Ky0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQg ICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2YWxp ZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhlIFBFUklPRCBib3Vu ZHMKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0w MS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9 ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7Cist LSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBp ZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywKKyAg ICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDItMDMnCitXSEVSRSAgIGlkID0gJ1sxMSwxMikn CitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgIGlkICAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxLDIpICAgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsyLDMpICAgfCAy MDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQpICAgfCAyMDE4LTAxLTAxIHwgCisgWzIx LDIyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAzCisoNCByb3dzKQorCistLSBzaG91bGQg ZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAg ICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBjb25mbGlj dGluZyBrZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFs X3Blcl9wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAz LTA1LDIwMTgtMDUtMDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxp ZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMywyMDE4LTA0LTA0KSkuCistLSBzZXQgdGhlIHNj YWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0g TlVMTCwKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFs aWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6 ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiaWQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIi IHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNv bnRhaW5zIChudWxsLCAyMDE4LTAzLTA1LCAyMDE4LTA1LTA1LCBbMjAxOC0wMy0wNSwyMDE4 LTA1LTA1KSkuCistLSBzZXQgYSBQRVJJT0QgYm91bmQgdG8gTlVMTCAob2theSkKK1VQREFU RSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRf ZnJvbSA9ICcyMDE4LTA0LTA0JywKKyAgICAgICAgdmFsaWRfdGlsID0gTlVMTAorV0hFUkUg ICBpZCA9ICdbMjEsMjIpJzsKKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFs X3BlcgorU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcy MDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjAtMDEtMDEnCitXSEVSRSAg IGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFs X3BlciIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAidGVtcG9yYWxfcGVyX3ZhbGlkX2F0 X2NoZWNrIgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKFsyMSwyMiksIDIwMjAt MDEtMDEsIDIwMjAtMDEtMDEsIGVtcHR5KS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVy IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDE4 LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsxLDIpIHwgMjAxOC0wNC0wNCB8IAorIFsyLDMpIHwg MjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyg0IHJv d3MpCisKKy0tCistLSBQRVJJT0QgVVE6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCistLQor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMikn LCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4 LTAzLTAzJywgJzIwMTgtMDQtMDQnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDEn LCAnMjAxOC0wMS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wMScsIE5VTEwp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTIChOVUxMLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5J UVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9wZXIzIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxOworLS0gc2hvdWxk IGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1Jyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KTsKK0VSUk9SOiAgY291bGQgbm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAidGVt cG9yYWxfcGVyM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDE4LTAxLTAyLDIwMTgtMDItMDMpKSBjb25mbGljdHMgd2l0aCBrZXkgKGlkLCB2YWxpZF9h dCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkuCitST0xMQkFDSzsKKy0tIHJl amVjdHMgZW1wdHk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBEUk9Q IFBFUklPRCBGT1IgdmFsaWRfYXQ7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEn LCAnMjAyMC0wMS0wMScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworRVJST1I6ICBjaGVj ayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIiBvZiByZWxhdGlv biAidGVtcG9yYWxfcGVyMyIgaXMgdmlvbGF0ZWQgYnkgc29tZSByb3cKK1JPTExCQUNLOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIz X3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMzsKKy0tCistLSBQRVJJT0QgVVE6IHRlc3QgaW5zZXJ0cworLS0K Ky0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb Myw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIz IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAx JywgJzIwMTgtMDEtMDUnKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2 YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcGVyM191cSIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgt MDEtMDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsx LDIpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKSkuCistLSByZWplY3RzIGVtcHR5OgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitFUlJPUjogIG5l dyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIzIiB2aW9sYXRlcyBjaGVjayBjb25z dHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIgorREVUQUlMOiAgRmFpbGlu ZyByb3cgY29udGFpbnMgKFszLDQpLCAyMDIwLTAxLTAxLCAyMDIwLTAxLTAxLCBlbXB0eSku CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAyLTAzCisgWzEs MikgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIw MTgtMDEtMDUKKyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyAgICAgICB8IDIwMTgtMDEtMDEg fCAyMDE4LTAxLTA1CisoNSByb3dzKQorCistLQorLS0gUEVSSU9EIFVROiB0ZXN0IHVwZGF0 ZXMKKy0tCistLSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3Bl cjMKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQg ICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgUEVS SU9EIGJvdW5kcworVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIHZhbGlkX2Zyb20g PSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hF UkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6 OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3BlcjMK K1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMicsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAzJworV0hFUkUgICBpZCA9 ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg aWQgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEsMikgICB8IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0Cisg WzIsMykgICB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMsNCkgICB8IDIwMTgtMDEt MDEgfCAKKyBbMjEsMjIpIHwgMjAxOC0wMS0wMiB8IDIwMTgtMDItMDMKKyAgICAgICAgIHwg MjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBmYWlsOgor VVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAg dmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgt MDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBjb25mbGljdGluZyBr ZXkgdmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3BlcjNf dXEiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wNSwy MDE4LTA1LTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkpLgorLS0gc2V0IHRoZSBzY2FsYXIg cGFydCB0byBOVUxMIChva2F5KQorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlk ID0gTlVMTCwKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAg dmFsaWRfdGlsID0gJzIwMjEtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0g c2V0IGEgUEVSSU9EIGJvdW5kIHRvIE5VTEwgKG9rYXkpCitVUERBVEUgIHRlbXBvcmFsX3Bl cjMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgt MDQtMDQnLAorICAgICAgICB2YWxpZF90aWwgPSBOVUxMCitXSEVSRSAgIGlkIElTIE5VTEwg QU5EIHZhbGlkX2F0IEA+ICcyMDIwLTA2LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx LDIpIHwgMjAxOC0wMy0wMyB8IDIwMTgtMDQtMDQKKyBbMSwyKSB8IDIwMTgtMDQtMDQgfCAK KyBbMiwzKSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMsNCkgfCAyMDE4LTAxLTAx IHwgCisgICAgICAgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorKDUgcm93cykKKworLS0g c2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgdmFsaWRfZnJv bSA9ICcyMDE4LTAzLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitX SEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5VTEw7CitFUlJPUjogIGNv bmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVt cG9yYWxfcGVyM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDE4LTAzLTAxLDIwMTgtMDUtMDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlk LCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMywyMDE4LTA0LTA0KSkuCistLSByZWpl Y3RzIGVtcHR5OgorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIHZhbGlkX2Zyb20g PSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIwLTAxLTAxJworV0hF UkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX3RpbCBJUyBOVUxMOworRVJST1I6ICBuZXcg cm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxfcGVyMyIgdmlvbGF0ZXMgY2hlY2sgY29uc3Ry YWludCAidGVtcG9yYWxfcGVyM192YWxpZF9hdF9jaGVjayIKK0RFVEFJTDogIEZhaWxpbmcg cm93IGNvbnRhaW5zIChbMSwyKSwgMjAyMC0wMS0wMSwgMjAyMC0wMS0wMSwgZW1wdHkpLgor LS0gc3RpbGwgcmVqZWN0cyBlbXB0eSB3aGVuIHNjYWxhciBwYXJ0IGlzIE5VTEw6CitVUERB VEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9m cm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMC0wMS0wMScK K1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90aWwgSVMgTlVMTDsKK0VSUk9SOiAg bmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3BlcjMiIHZpb2xhdGVzIGNoZWNrIGNv bnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdmFsaWRfYXRfY2hlY2siCitERVRBSUw6ICBGYWls aW5nIHJvdyBjb250YWlucyAobnVsbCwgMjAyMC0wMS0wMSwgMjAyMC0wMS0wMSwgZW1wdHkp LgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0wNAorIFsx LDIpIHwgMjAxOC0wNC0wNCB8IAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUK KyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyAgICAgICB8IDIwMTgtMDEtMDEgfCAyMDE4LTAx LTA1CisoNSByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjM7CistLQogLS0gdGVz dCBhIHJhbmdlIHdpdGggYm90aCBhIFBLIGFuZCBhIFVOSVFVRSBjb25zdHJhaW50CiAtLQog Q1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCkBAIC0xNDA1LDMyICsxOTI1LDIxMCBAQCBTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiBE Uk9QIFRBQkxFIHRlbXBvcmFsX21sdHJuZzM7CiAtLQotLS0gdGVzdCBGSyBkZXBlbmRlbmNp ZXMKKy0tIE9OIENPTkZMSUNUOiBQRVJJT0RzCiAtLQotLS0gY2FuJ3QgZHJvcCBhIHJhbmdl IHJlZmVyZW5jZWQgYnkgYW4gRkssIHVubGVzcyB3aXRoIENBU0NBREUKLUNSRUFURSBUQUJM RSB0ZW1wb3JhbDMgKAotICBpZCBpbnQ0cmFuZ2UsCi0gIHZhbGlkX2F0IGRhdGVyYW5nZSwK LSAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQotKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n ICgKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMikn LCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsK Ky0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAt MDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBkYXRl IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEn LCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworICBp ZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAxLTAxCisgWzEsMikg fCAyMDEwLTAxLTAxIHwgMjAyMC0wMS0wMQorIFsyLDMpIHwgMjAwNS0wMS0wMSB8IDIwMDYt MDEtMDEKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEs MiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJ Q1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5p cXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBz cGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZh bGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhj bHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRp b24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAn MjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkg RE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBj b25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsOworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAxLTAx CisoMSByb3cpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04g Q09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMg YnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0w MS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIE5P VEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMp JywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworICBpZCAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAxLTAxCisgWzEsMikgfCAyMDEwLTAx LTAxIHwgMjAyMC0wMS0wMQorIFsyLDMpIHwgMjAwNS0wMS0wMSB8IDIwMDYtMDEtMDEKKygz IHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2 YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VS Uk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNo aW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1dCBu byBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEn KSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVE RUQuaWQgKyAnWzMsNCknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVz aW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24K Ky0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8g VVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK0VSUk9SOiAgdGhlcmUg aXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBD T05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRF UiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworICBpZCAgIHwgdmFsaWRfZnJvbSB8 IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwy KSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAxLTAxCisoMSByb3cpCisKK1RSVU5DQVRFIHRlbXBv cmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7 CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcy MDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsg RE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VSUk9SOiAgT04g Q09ORkxJQ1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3Ry YWludHMKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywg JzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQg dGVtcG9yYWxfcGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0 KSc7CitFUlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGgg ZXhjbHVzaW9uIGNvbnN0cmFpbnRzCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZM SUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBF WENMVURFRC5pZCArICdbNCw1KSc7CitFUlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFURSBu b3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworICBp ZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMDAtMDEtMDEgfCAyMDEwLTAxLTAxCisoMSByb3cp CisKKy0tIHdpdGggYSBVTklRVUUgY29uc3RyYWludDoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wZXIzICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBkYXRlcmFuZ2UsCi0gIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAotICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQ RVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKICk7Ci1BTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7 Ci1FUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiB2YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3Jh bDMgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAotREVUQUlMOiAgY29uc3Ry YWludCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrX3JuZzJy bmcgZGVwZW5kcyBvbiBjb2x1bW4gdmFsaWRfYXQgb2YgdGFibGUgdGVtcG9yYWwzCi1ISU5U OiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMg dG9vLgotQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZhbGlkX2F0IENBU0NB REU7Ci1OT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIGNvbnN0cmFpbnQgdGVtcG9yYWxfZmtf cm5nMnJuZ19mayBvbiB0YWJsZSB0ZW1wb3JhbF9ma19ybmcycm5nCi1EUk9QIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmc7Ci1EUk9QIFRBQkxFIHRlbXBvcmFsMzsKLS0tCi0tLSB0ZXN0 IEZPUkVJR04gS0VZLCByYW5nZSByZWZlcmVuY2VzIHJhbmdlCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7 CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAx LTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp IE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMg T1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorIFsxLDIpIHwgMjAxMC0wMS0wMSB8 IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUtMDEtMDEgfCAyMDA2LTAxLTAxCisoMyByb3dz KQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0w MS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFs aWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNs dXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlv bgorLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERP IE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29u c3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gZGF0 ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0w MScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElO RzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50 IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAg aWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorKDEgcm93 KQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0w MS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQg bm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0w MScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBOT1RI SU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMykn LCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlO VCB0ZW1wb3JhbF9wZXIzX3VxIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorIFsxLDIpIHwgMjAxMC0w MS0wMSB8IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUtMDEtMDEgfCAyMDA2LTAxLTAxCiso MyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChp ZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7 CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBt YXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hlcyBi dXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0w MS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBF WENMVURFRC5pZCArICdbMyw0KSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBl eGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNh dGlvbgorLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMykn LCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9h dCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK0VSUk9SOiAg dGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRo ZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bl cjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorKDEgcm93KQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEw LTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOwor RVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1 c2lvbiBjb25zdHJhaW50cworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIE9O IENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVE RUQuaWQgKyAnWzMsNCknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1 cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworLS0gZGF0ZSBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIERPIFVQ REFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitFUlJPUjogIE9OIENPTkZM SUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRz CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAx MC0wMS0wMQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjM7CistLQorLS0g dGVzdCBGSyBkZXBlbmRlbmNpZXMKKy0tCistLSBjYW4ndCBkcm9wIGEgcmFuZ2UgcmVmZXJl bmNlZCBieSBhbiBGSywgdW5sZXNzIHdpdGggQ0FTQ0FERQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBDT05T VFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRy YW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbDMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZhbGlkX2F0OworRVJST1I6 ICBjYW5ub3QgZHJvcCBjb2x1bW4gdmFsaWRfYXQgb2YgdGFibGUgdGVtcG9yYWwzIGJlY2F1 c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbnN0cmFpbnQgdGVt cG9yYWxfZmtfcm5nMnJuZ19mayBvbiB0YWJsZSB0ZW1wb3JhbF9ma19ybmcycm5nIGRlcGVu ZHMgb24gY29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRlbXBvcmFsMworSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FM VEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdCBDQVNDQURFOworTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb25zdHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdf Zmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5nMnJuZworRFJPUCBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLQorLS0gdGVzdCBGT1JFSUdO IEtFWSwgcmFuZ2UgcmVmZXJlbmNlcyByYW5nZQogLS0KIC0tIHRlc3QgdGFibGUgc2V0dXAK IERST1AgVEFCTEUgdGVtcG9yYWxfcm5nOwpAQCAtMTQ1OCw2ICsyMTU2LDE4IEBAIENSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK ICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICk7 CitcZCB0ZW1wb3JhbF9ma19ybmcycm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVt cG9yYWxfZmtfcm5nMnJuZyIKKyAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICB8IGludDRyYW5nZSB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgIHwgZGF0ZXJhbmdlIHwgICAgICAg ICAgIHwgbm90IG51bGwgfCAKKyBwYXJlbnRfaWQgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnJuZ19wayIg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1r ZXkgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcoaWQsIFBFUklPRCB2YWxpZF9hdCkKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nOwogLS0gd2l0aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgogLS0gKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCkBAIC0zNzA2 LDk5ICs0NDE2LDM4MjkgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWwKICBbMjAwLDIw MSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCiAo MiByb3dzKQogCi0tLSBGSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKLUNSRUFURSBUWVBF IG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7Ci1DUkVBVEUgVEFCTEUgdGVt cG9yYWxfcm5nMyAoCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9EIHJlZmVyZW5j ZXMgUEVSSU9ECistLQorLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wZXI7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyICgKICAgaWQgaW50NHJhbmdlLAot ICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyAgdmFsaWRf ZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKQogKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazNf cm5nMnJuZyAoCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfcGVyX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyk7CistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0Y2hlZCByYW5n ZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCiAgIGlkIGludDRy YW5nZSwKLSAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIHZhbGlkX2Zyb20gaW50LAorICB2 YWxpZF90aWwgaW50LAogICBwYXJlbnRfaWQgaW50NHJhbmdlLAotICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiApOwotSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15 ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazNfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1s1LDYpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgs OSknKTsKLURFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s4LDkp JzsKLVNFTEVDVCAqIEZST00gdGVtcG9yYWxfZmszX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUs NiknOwotICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCi0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSBbNSw2KSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzgsOSkKLSBbNSw2KSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzgsOSkKLSgyIHJvd3MpCitFUlJPUjogIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRl ZAorREVUQUlMOiAgS2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUg b2YgaW5jb21wYXRpYmxlIHR5cGVzOiBpbnQ0cmFuZ2UgYW5kIGRhdGVyYW5nZS4KKy0tIHdv cmtzOiBQRVJJT0QgZm9yIGJvdGggcmVmZXJlbmNlZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdl LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0 ZW1wb3JhbF9ma19wZXIycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxf ZmtfcGVyMnBlciIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgcGFyZW50X2lkICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ma19wZXIycGVyX3BrIiBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoK KyAgICAidGVtcG9yYWxfZmtfcGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlk X2Zyb20gPCB2YWxpZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVt cG9yYWxfZmtfcGVyMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZhbGlkX2F0KQog Ci1EUk9QIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOwotRFJPUCBUQUJMRSB0ZW1wb3Jh bF9ybmczOwotRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycGVyOworLS0gd2l0aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgorLS0gKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCist LSBSRUZFUkVOQ0VTIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBk YXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZl cmVuY2VkIHRhYmxlCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQs IHZhbGlkX2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJv bSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgbXVz dCB1c2UgUEVSSU9EIHdoZW4gcmVmZXJlbmNpbmcgYSBwcmltYXJ5IHVzaW5nIFdJVEhPVVQg T1ZFUkxBUFMKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJ T0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0VS Uk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUg YnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0 KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNw ZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAg cGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKK0VSUk9SOiAgZm9yZWln biBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUg cmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVG RVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAg cGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkKQorKTsKK0VS Uk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxl IGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5D RVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlk X2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVy ZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIHdpdGggaW5m ZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6CistLSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworLS0gKHBh cmVudF9pZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworRVJST1I6 ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQg bm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBk dXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFs aWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlciAoaWQsIFBFUklPRCBpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHJlZmVyZW5j ZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4gZHVwbGljYXRlcworLS0gVHdvIHNj YWxhciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjI7CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf cGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJl bnRfaWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkK Kyk7CitcZCB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICAgICAgICAgICBUYWJsZSAicHVibGlj LnRlbXBvcmFsX2ZrMl9wZXIycGVyIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJh bmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQxIHwgaW50NHJhbmdlIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJhbmdlIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIiBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25z dHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfdmFsaWRfYXRfY2hlY2siIENI RUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6 CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjIoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9m azJfcGVyMnBlcjsKIC0tCi0tLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogcmFu Z2VzCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCiAtLQotQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCi0gIGlkIGludDRyYW5nZSwKLSAgdmFs aWRfYXQgZGF0ZXJhbmdlLAotICBuYW1lIHRleHQsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxf cGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQotKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRwMSBQ QVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdb MSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScs ICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMikn LCAnWzIzLDI0KScpOwotQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1 KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScs ICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSkn KTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0 LCBuYW1lKSBWQUxVRVMKLSAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDAwLTAyLTAxJyksICdvbmUnKSwKLSAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0w MScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKLSAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0d28nKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCiAgIHBhcmVudF9pZCBpbnQ0cmFu Z2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAotICBDT05TVFJB SU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQotKSBQQVJUSVRJT04gQlkgTElT VCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRma3AxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdb NSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwx NiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOwotQ1JF QVRFIFRBQkxFIHRma3AyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3 KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcp JywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl ciAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2NhbGFyIGNvbHVtbnM6CitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZDEgaW50NHJh bmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVy MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9wZXIycGVy CisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3BlcjJwZXIiCisgICBD b2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAK Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBh cmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVu dF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoK KyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAi dGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJf cGVyMnBlcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwp CitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJf ZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMihpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0 KQorCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBhbmQg d3JvbmcgY29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBEUk9QIFBFUklP RCBGT1IgdmFsaWRfYXQsCisgIEFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgdGltZXN0 YW1wLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgdGltZXN0YW1wLAorICBBREQg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworRVJST1I6ICBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQK K0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9m IGluY29tcGF0aWJsZSB0eXBlczogdHNyYW5nZSBhbmQgZGF0ZXJhbmdlLgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQsCisg IEFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgZGF0ZSwKKyAgQUxURVIgQ09MVU1OIHZh bGlkX3RpbCBUWVBFIGRhdGUsCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9m cm9tLCB2YWxpZF90aWwpOworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNl ZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gc2hv dWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrMgorICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFy ZW50X2lkKQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCBpZCk7CitF UlJPUjogIGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNv bnRhaW4gZHVwbGljYXRlcwogLS0KLS0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5nIGlu c2VydHMKKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKIC0tCi1JTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTCi0gICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0x NScpLCAnWzEsMiknKSwKLSAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMS0wMS0wMScsICcy MDAyLTAxLTAxJyksICdbMiwzKScpLAotICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19wZXIycGVyOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbMSwx XScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSwKKyAgKCdbMSwxXScsICcyMDE4LTAz LTAzJywgJzIwMTgtMDQtMDQnKSwKKyAgKCdbMiwyXScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSwKKyAgKCdbMywzXScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAx LTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDFdJyk7 CiAtLSBzaG91bGQgZmFpbDoKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKLSAgKCdbMyw0KScs IGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDEwLTAyLTE1JyksICdbMSwyKScpOwotRVJS T1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayIK LURFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxMC0wMS0w MSwyMDEwLTAyLTE1KSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyIuCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCi0gICgnWzMsNCknLCBkYXRl cmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzMsNCknKTsKLUVSUk9SOiAg aW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsiCi1ERVRB SUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMyw0KSwgWzIwMDAtMDEtMDEsMjAw MC0wMi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmciLgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitFUlJPUjog IGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitE RVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIs MjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgor LS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKIC0tCi0tLSBwYXJ0aXRpb25lZCBG SyByZWZlcmVuY2luZyB1cGRhdGVzCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCiAt LQotVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTMnKSBXSEVSRSBpZCA9ICdb MiwzKSc7Ci0tLSBtb3ZlIGEgcm93IGZyb20gdGhlIGZpcnN0IHBhcnRpdGlvbiB0byB0aGUg c2Vjb25kCi1VUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgaWQg PSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKLS0tIG1vdmUgYSByb3cgZnJvbSB0aGUg c2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKLVVQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIFNFVCBpZCA9ICdbMSwyKScgV0hFUkUgaWQgPSAnWzQsNSknOwot LS0gc2hvdWxkIGZhaWw6Ci1VUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wNC0wMScp IFdIRVJFIGlkID0gJ1sxLDIpJzsKLUVSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZp b2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZmtwMV9wa2V5IgotREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkpIGNvbmZs aWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDAwLTAx LTAxLDIwMDAtMDQtMDEpKS4KK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZS T00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2ZrX3BlcjJwZXJf ZmsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFp bnRkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyKGlkLCBQRVJJT0QgdmFsaWRfYXQp CisoMSByb3cpCisKIC0tCi0tLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg Tk8gQUNUSU9OCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGluc2VydHMKIC0tCi1UUlVOQ0FU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmc7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0w Mi0wMScpKTsKLVVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSBXSEVSRSBpZCA9ICdb NSw2KSc7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0w My0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOwotVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEn LCAnMjAxNi0wMy0wMScpCi0gIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0n KTsKIC0tIHNob3VsZCBmYWlsOgotVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBT RVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0w NC0wMScsICdbMSwxXScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19wZXIycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlk X2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAidGVtcG9yYWxfcGVyIi4KKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzEsMV0nLCAnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwx XScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKy0tIHNsaWRl IHRoZSBlZGdlIGFjcm9zcyBhIHJlZmVyZW5jZWQgdHJhbnNpdGlvbjoKK1VQREFURSB0ZW1w b3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLCB2YWxpZF90 aWwgPSAnMjAxOC0wMi0yMCcgV0hFUkUgaWQgPSAnWzEsMV0nOworLS0gc2hvdWxkIGZhaWw6 CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAx LTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDEnIFdIRVJFIGlkID0gJ1sxLDFdJzsKK0VS Uk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9m ayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0w MS0wMiwyMDE4LTA1LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3Bl ciIuCitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgcGFyZW50X2lkID0gJ1s4LDhd JyBXSEVSRSBpZCA9ICdbMSwxXSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwg dmFsaWRfYXQpPShbOCw5KSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0yMCkpIGlzIG5vdCBwcmVz ZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gQUxURVIgRksgREVGRVJSQUJMRQor QkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKSwKKyAgICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworICBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJywgJ1s1LDVdJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBE RUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxf cGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlU OyAtLSBzaG91bGQgZmFpbCBoZXJlLgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVy MnBlciIuCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisg IE9OIFVQREFURSBOTyBBQ1RJT047CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJl Y2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0n LCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNF VCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScg V0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVu IHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdl IGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgn WzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw1XScp OworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywg dmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlk X2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0t IEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwK KyAgKCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1Jywg J1s2LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyCitTRVQgdmFsaWRfZnJvbSA9IENBU0Ug V0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDEnCisgICAg ICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4g JzIwMTgtMDEtMDUnIEVORDo6ZGF0ZSwKKyAgICB2YWxpZF90aWwgPSAgQ0FTRSBXSEVOIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wNScKKyAgICAgICAgICAg ICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhFTiAnMjAxOC0w My0wMScgRU5EOjpkYXRlCitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3Jh bF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2 LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2Zr X3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19wZXIycGVyIi4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJF RDsKKyAgVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAx JywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09N TUlUOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBjaGFuZ2lu ZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9 ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAx LTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9m a19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgt MDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVt cG9yYWxfZmtfcGVyMnBlciIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBp cyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitX SEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQ REFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAn WzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9w ZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg CistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTYtMDIt MDEgfCAyMDE2LTAzLTAxCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1 LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAy MDE4LTAxLTAzCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4LTAxLTA1 IHwgMjAxOC0wMS0xMCB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBv YmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlk X3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1w b3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gVVBEQVRFIFJFU1RS SUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmlj IGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcy MDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVd JzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVy aWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVd JywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScs ICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK1VQREFURSB0ZW1wb3Jh bF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2 LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDIt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlk aW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgn WzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAo J1s0LDUpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScsICdbNiw3KScpOworVVBEQVRF IHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAg IFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6 OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2 YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQor V0hFUkUgaWQgPSAnWzYsNyknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNiw3KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBl ciIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJl bmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiks IFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUg c2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3 XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBB TkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnBlciIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBp ZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0 ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUn IFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0n OworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTYtMDItMDEgfCAy MDE2LTAzLTAxCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwg MjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAx LTAzCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hF UkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4LTAxLTA1IHwgMjAx OC0wMS0xMCB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rp bmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxf cGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUgdGhhdCBz dWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQg c3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNh dXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAn MjAxOC0wMS0xMCcsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRf dGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90 aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVy Ii4KKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2 KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0 YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5j ZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJF IGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAi dGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUs NiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20g dGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w ZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgor IFs1LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKygyIHJvd3MpCisKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykK KworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJF U1RSSUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVy OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyCisgIE9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3Vn aCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0 OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAg KCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVd Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2 YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7 CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9N IHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAx OC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJl ZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycK K1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0w MS0wMgorIFs1LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgtMDItMDEKKygyIHJvd3MpCisKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygx IHJvdykKKworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRo ZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFs aWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHBlcjJwZXIgdGVzdCBPTiBVUERBVEUv REVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FT Q0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg REVGQVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29s cykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNl dCkKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz KQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMp CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywg U0VUIERFRkFVTFQgc3Vic2V0KQorLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IENBU0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJw ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAg T04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScg V0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAx LTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIw MjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAx LTAxIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3 LDgpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNyw4KQorKDMg cm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworVVBE QVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzksMTApCisgWzIw MCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0n KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMSByb3cpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwg T04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERB VEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAx OS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEg fCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyBy b3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlk ID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAy MDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAy MDIxLTAxLTAxIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hF UkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEt MDEgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCiso MiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAw LDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAt MDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVs ZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgCisgWzEwMCwx MDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwg MjAyMC0wMS0wMSB8IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVy MnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50 X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04g VVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERB VEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAx OS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEg fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbLTEsMCkKKyBb MTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAx KSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApCisoMyByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBudWxsLCBu dWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBb Niw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisg WzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8 IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0w MS0wMSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4 LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDAp CisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBz Y2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJf cGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAn WzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy MgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9 ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAy MDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKwor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3 LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTkt MDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwg MjAyMC0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEt MDEgfCAyMDIxLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg J1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFs X3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAt MDEtMDEgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAx IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEt MDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVs ZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAg ICB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl cjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYs Nl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Bl cjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBT RVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFs X3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxp ZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IAorIFsx MDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIy IFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4 LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDE5 LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn WzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxf cGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0w MS0wMSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0w MS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJV TkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAx IHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAx KSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgICAgICAgICAgICB8IAorKDMgcm93cykK KworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEg fCAgICAgICAgICAgIHwgCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJz ZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAw LDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7 CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9w ZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBE RUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjog IGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24g Y2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVy MnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEp IE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBb Niw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwg MjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEt MDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAy MC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAgICAgICAgICAgIHwgWzYsNykKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwg ICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVG QVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxU ICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2Zr LAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9O IFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10n IFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIw LTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEg fCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nLCBp ZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAx IHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5 LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERB VEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVS RSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkK KyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBb OCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVy MiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1st MSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn LCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDAp CisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwg WzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8 IDIwMTktMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0w MS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMyByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0w MSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAy MS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNF VCBERUZBVUxUIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3Jh bF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNl0nLCBudWxs LCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAn WzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNv bHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAg T04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxU OworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBT RVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9y YWxfZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQg J1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmss CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBh cmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8 IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkg ICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2 LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOF0nLCBudWxsLCBudWxs KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAx LTAxIHwgWy0xLDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIw MjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0 IEZPUkVJR04gS0VZLCByYW5nZSByZWZlcmVuY2VzIFBFUklPRAorLS0KKy0tIHRlc3QgdGFi bGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyIENBU0NBREU7CitOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIGNvbnN0cmFpbnQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBvbiB0 YWJsZSB0ZW1wb3JhbF9ma19wZXIycGVyCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRl LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cl9waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwor LS0gQ2FuJ3QgY3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2F0IGludDRyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBjYW5ub3QgYmUg aW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxp ZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogaW50NHJhbmdlIGFuZCBkYXRlcmFu Z2UuCistLSB3b3JrczogUEVSSU9EIGZvciByZWZlcmVuY2VkLCByYW5nZSBmb3IgcmVmZXJl bmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xk IHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3Jh bF9ma19ybmcycGVyIgorICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAg ICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorIHBhcmVudF9pZCB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ma19ybmcycGVyX3BrIiBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitGb3JlaWduLWtleSBj b25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Blcihp ZCwgUEVSSU9EIHZhbGlkX2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXI7 CistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CistLSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIFJFRkVSRU5D RVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisg IHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBl cl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUg cmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJsZQorLS0gKHBh cmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIGJvdGgg c2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJw ZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsK K0VSUk9SOiAgZm9yZWlnbiBrZXkgbXVzdCB1c2UgUEVSSU9EIHdoZW4gcmVmZXJlbmNpbmcg YSBwcmltYXJ5IHVzaW5nIFdJVEhPVVQgT1ZFUkxBUFMKKy0tIChwYXJlbnRfaWQsIHZhbGlk X2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkg cGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFs aWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVm ZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gKHBhcmVu dF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkg cGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CitFUlJPUjogIGZv cmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3Qg dGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp IFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkKQorKTsKK0VSUk9SOiAg Zm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBu b3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlk LCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6 ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQg bm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUg cmVmZXJlbmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVG RVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKK0RST1AgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnBlcjsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxp Y2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVm ZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gc2hvdWxk IGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkg cmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCist LSBUd28gc2NhbGFyIGNvbHVtbnMKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMiBDQVNDQURF OworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb25zdHJhaW50IHRlbXBvcmFsX2ZrMl9w ZXIycGVyX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrMl9wZXIycGVyCitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf cGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZDEgaW50NHJhbmdl LAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRl bXBvcmFsX2ZrMl9ybmcycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxf ZmsyX3JuZzJwZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJwZXJfcGsiIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5 IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnBlcl9mayIgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKK0RST1AgVEFC TEUgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQg Q09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVy X2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNj YWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZDEgaW50 NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2Zr Ml9ybmcycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3JuZzJw ZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJwZXJfcGsiIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFp bnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKKy0tIHdpdGggaW5mZXJyZWQg UEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJwZXJfZmssCisgIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIHRzcmFu Z2UgVVNJTkcgdHNyYW5nZShsb3dlcih2YWxpZF9hdCksIHVwcGVyKHZhbGlkX2F0KSk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0VSUk9SOiAgZm9yZWlnbiBr ZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgY2Fubm90IGJlIGltcGxl bWVudGVkCitERVRBSUw6ICBLZXkgY29sdW1ucyAidmFsaWRfYXQiIGFuZCAidmFsaWRfYXQi IGFyZSBvZiBpbmNvbXBhdGlibGUgdHlwZXM6IHRzcmFuZ2UgYW5kIGRhdGVyYW5nZS4KK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUxURVIgQ09MVU1OIHZhbGlkX2F0 IFRZUEUgZGF0ZXJhbmdlIFVTSU5HIGRhdGVyYW5nZShsb3dlcih2YWxpZF9hdCk6OmRhdGUs IHVwcGVyKHZhbGlkX2F0KTo6ZGF0ZSk7CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSBy ZWZlcmVuY2VkIHRhYmxlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7 CistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVt bnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCBwYXJlbnRfaWQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9E IGlkKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVz dCBub3QgY29udGFpbiBkdXBsaWNhdGVzCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFk eQorLS0KK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0w Mi0wMycpLAorICAoJ1sxLDFdJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpLAorICAo J1syLDJdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpLAorICAoJ1szLDNdJywgJzIw MTgtMDEtMDEnLCBOVUxMKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZms7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzEsMV0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMSknLCAnWzEsMV0nKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMiwyXScsICdbMjAxOC0wMS0wMiwyMDE4LTA0LTAxKScsICdbMSwxXScp OworLS0gc2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5n MnBlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5n MnBlcl9mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBb MjAxOC0wMS0wMiwyMDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBv cmFsX3BlciIuCistLSBva2F5IGFnYWluOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5n MnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0KKy0tIHRl c3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRk ZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9m a19ybmcycGVyX2ZrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dl dF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9E IHZhbGlkX2F0KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNl cnRzCistLQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDFdJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDEp JywgJ1sxLDFdJyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICdb MjAxOC0wMS0wMiwyMDE4LTA0LTAxKScsICdbMSwxXScpOworRVJST1I6ICBpbnNlcnQgb3Ig dXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIgorREVUQUlMOiAgS2V5 IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEp KSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGVyIi4KKy0tIG5vdyBpdCBz aG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAz Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSknLCAn WzEsMV0nKTsKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIHVwZGF0ZXMKKy0tCistLSBz bGlkZSB0aGUgZWRnZSBhY3Jvc3MgYSByZWZlcmVuY2VkIHRyYW5zaXRpb246CitVUERBVEUg dGVtcG9yYWxfZmtfcm5nMnBlciBTRVQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDIsMjAxOC0w Mi0yMCknIFdIRVJFIGlkID0gJ1sxLDFdJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRl bXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDUt MDEpJyBXSEVSRSBpZCA9ICdbMSwxXSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24g dGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNS0wMSkpIGlzIG5vdCBw cmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorVVBEQVRFIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgU0VUIHBhcmVudF9pZCA9ICdbOCw4XScgV0hFUkUgaWQgPSAnWzEsMV0nOworRVJS T1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2Zr IgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzgsOSksIFsyMDE4LTAx LTAyLDIwMTgtMDItMjApKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGVy Ii4KKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAgICgnWzUs NV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICAgKCdbNSw1XScsICcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsM10nLCAn WzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNob3VsZCBub3QgZmFp bCB5ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCitFUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX3JuZzJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9ma19ybmcycGVyIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBOTyBBQ1RJT04KKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3Ju ZzJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIKKyAgT04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRo YXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0 IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVj YXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMywzXScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1XScp OworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywg dmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlk X2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0t IEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwK KyAgKCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMK KyAgKCdbNCw1KScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScsICdbNiw3KScpOworVVBE QVRFIHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJv bSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAg ICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBF TkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hF TiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0 ZQorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNh dXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxp ZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRf dGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBl ciIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJl bmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKK0VSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAi dGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUs NiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20g dGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBw YXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVS RSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJw ZXIiLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFU RSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUs NV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxf cGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAx OC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE2LTAyLTAxIHwgMjAxNi0wMy0w MQorIFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEt MDMgfCAyMDE4LTAyLTAxCisgWzcsOCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0wMworKDQg cm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGlu ICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkg fCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0w Mi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSknOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RS SUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyCisgIE9OIFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2Vl ZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb NSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9w ZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAy LTAxJyBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRz IGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUg cmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUs NV0nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwK KyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMywzXScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1XScpOworVVBEQVRF IHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFsaWRfdGls ID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIEEgUEsgdXBk YXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNiw3 KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1 KScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScsICdbNiw3KScpOworVVBEQVRFIHRlbXBv cmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4g dmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUs CisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEn IFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9m cm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUg aWQgPSAnWzYsNyknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNiw3KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCist LSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAo ZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2Zr CisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0ZW1wb3Jh bF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2 LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9y IGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf Zmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJwZXIiLgorUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFy IHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScKK1dI RVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFs aWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5n MnBlciIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBE QVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdb NSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3Jh bF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcy MDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJS T1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTYtMDItMDEgfCAyMDE2LTAz LTAxCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAxOC0w MS0wMyB8IDIwMTgtMDItMDEKKyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAxLTAzCiso NCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQg aW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEw KSB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksg cmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0ZW1wb3Jh bF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2 LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0 ZW1wb3JhbF9ma19ybmcycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVk cyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1 LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2Vl ZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRo ZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsM10nLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0n KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZh bGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsK Ky0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2Vk OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFs aWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOwor RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9u IHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5j ZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCistLSBhIFBLIGRlbGV0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNv bW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgICAg QUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgREVGRVJSQUJM RSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJwZXIiLgorLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBk ZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Blcgor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEt MTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIi CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycGVyIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUs NV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMg fCAyMDE4LTAyLTAxCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0w MS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRo ZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlk X2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf Zms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorICBPTiBERUxFVEUg UkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEg UEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMg cmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0n LCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnWzIwMTgtMDEtMDUs MjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVS RSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVz ZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47Cisg IEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZF UlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBB TkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDIt MDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIi IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCitST0xMQkFDSzsK Ky0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcg anVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hF UkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIu CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3 LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8 IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUsNikgfCAyMDE4LTAxLTAzIHwgMjAxOC0w Mi0wMQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdI RVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDEtMDUsMjAx OC0wMS0xMCkgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gcm5n MnBlciB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FE RQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0 ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FT Q0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUg KHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2Nh bGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIg Y29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZB VUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVM VCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl ciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAx LDIwMjEtMDEtMDEpJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy CisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdb Nyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19y bmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIw MTktMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNyw4 KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1w b3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFs5LDEwKQorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0w MS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg WzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sy MDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQg aWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwx MDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0 ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEs MjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0w MS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQg aWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9m a19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkn LCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsx MDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBk ZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEt MDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAw LDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBp ZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8 IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAor LS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEt MDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScs CisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisg ICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlk ID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAx KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQg PSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsy MDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0x LC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBb Niw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4 LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEs MjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0w MSwyMDIxLTAxLTAxKScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmsyX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVy X2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIENBU0NBREUgT04g VVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0 ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpICAgICAg fCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykg ICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0 ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNyw4KSAgICAg IHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAw XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOworVVBE QVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhd JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgt MDEtMDEsMjAyMC0wMS0wMSkgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2Fs YXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5n MnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdI RVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8 IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdb MjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2 LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEp JywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBl cgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBO VUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVy MiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0w MS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwx MDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwx MDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygz IHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VU IGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDE5LTAx LTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgICAgICAgICAgICB8IAorKDMgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4 XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywg J1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5 LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0g J1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAg fCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVy MiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2 XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScs ICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8ICAg ICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAg ICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8ICAg ICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVy IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBO VUxMIHN1YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJf cm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBd JywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBm YWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVy X2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUg U0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVt biAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90 IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQ REFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQor KDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBh cmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAx LTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIw MjAtMDEtMDEpIHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAn WzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAx KScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVS RSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCBbOCw5KQor IFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4 LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VU IERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIy LCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlk MSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0x LC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf cm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAnWzYs Nl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBh cmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBE RUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdb Nyw3XScsIGlkMiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIg U0VUIGlkMSA9ICdbNyw3XScsIGlkMiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSww KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDAp ICAgICB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJw ZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7 CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDld JyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sy MDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBb LTEsMCkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAg ICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFd JywgJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2 LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZd JywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAs MTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCiso MyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl cjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEt MDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIw MjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorKDMgcm93cykKKworLS0g RksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScs ICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEt MDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdI RVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwy MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSww KQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWy0xLC0xXScsICdbNiw2XScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0w MS0wMSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0 IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcy cGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04g VVBEQVRFIFNFVCBERUZBVUxUOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVu Y2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVu dF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcy cGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxF VEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEt MDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9u LUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdb Niw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKSAgICAg fCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDAp ICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb LTEsMCkgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAn WzgsOF0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVy IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0g dGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9EIHJlZmVyZW5jZXMgcmFuZ2UKKy0tCistLSB0ZXN0 IHRhYmxlIHNldHVwCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZyBDQVNDQURFOworTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byBjb25zdHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsg b24gdGFibGUgdGVtcG9yYWxfZmtfcm5nMnJuZworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Ju ZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQUxURVIg VEFCTEUgdGVtcG9yYWxfcm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wawor ICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworLS0gQ2Fu J3QgY3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gaW50LAorICB2YWxpZF90aWwgaW50LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQ RVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIGNhbm5vdCBi ZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZh bGlkX2F0IiBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVzOiBpbnQ0cmFuZ2UgYW5kIGRhdGVy YW5nZS4KKy0tIHdvcmtzOiByYW5nZSBmb3IgcmVmZXJlbmNlZCwgUEVSSU9EIGZvciByZWZl cmVuY2luZworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgICAgICAgICAgVGFibGUgInB1 YmxpYy50ZW1wb3JhbF9ma19wZXIycm5nIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50 NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQgIHwgaW50NHJhbmdlIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrX3BlcjJybmdf cGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNr IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9ma19wZXIycm5nX3ZhbGlkX2F0X2NoZWNr IiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKK0ZvcmVpZ24ta2V5IGNvbnN0cmFp bnRzOgorICAgICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nKGlkLCBQRVJJ T0QgdmFsaWRfYXQpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZzsKKy0tIHdp dGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0 IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJy bmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0 aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJsZQorLS0g KHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0tIGJv dGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IG11c3QgdXNlIFBFUklPRCB3aGVu IHJlZmVyZW5jaW5nIGEgcHJpbWFyeSB1c2luZyBXSVRIT1VUIE9WRVJMQVBTCistLSAocGFy ZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKy0t IEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBk YXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVy ZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1w bGljaXRdCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFu Z2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9E IG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxl CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFu Z2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZl cmVuY2VkIHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjog IGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBu b3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSBy ZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRl LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKK0RS T1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZzsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5D RVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNl cyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNp bmcgdGFibGUKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5j ZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBw YXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCBwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0Qg aWQpCispOworRVJST1I6ICBmb3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBt dXN0IG5vdCBjb250YWluIGR1cGxpY2F0ZXMKKy0tIFR3byBzY2FsYXIgY29sdW1ucworRFJP UCBUQUJMRSB0ZW1wb3JhbF9ybmcyIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVz IHRvIGNvbnN0cmFpbnQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9y YWxfZmsyX3JuZzJybmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKKyAgaWQxIGlu dDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJf cGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxp ZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50 NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgICAg ICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfcGVyMnJuZyIKKyAgIENvbHVtbiAg IHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisg aWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFs aWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRf dGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lk MSB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMiB8 IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3Jh bF9mazJfcGVyMnJuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycm5n X3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKK0ZvcmVp Z24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJuZ19mayIgRk9S RUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKK0RS T1AgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmc7CistLQorLS0gdGVzdCBBTFRFUiBUQUJM RSBBREQgQ09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5n ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBk YXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlk X2F0KTsKKy0tIFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m azJfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIg aW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJu Z19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0Qg dmFsaWRfYXQpOworXGQgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgICAgICAgICAgVGFibGUg InB1YmxpYy50ZW1wb3JhbF9mazJfcGVyMnJuZyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8 IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRh dGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMSB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgcGFyZW50X2lkMiB8IGludDRyYW5nZSB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJu Z19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hl Y2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycm5nX3ZhbGlkX2F0X2No ZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKK0ZvcmVpZ24ta2V5IGNvbnN0 cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJuZ19mayIgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKKy0tIHdpdGggaW5mZXJy ZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAg QUxURVIgQ09MVU1OIHZhbGlkX2Zyb20gVFlQRSB0aW1lc3RhbXAsCisgIEFMVEVSIENPTFVN TiB2YWxpZF90aWwgVFlQRSB0aW1lc3RhbXAsCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0 ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmc7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3BlcjJybmdfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVt bnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVz OiB0c3JhbmdlIGFuZCBkYXRlcmFuZ2UuCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cm5nCisgIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAgQUxURVIgQ09MVU1OIHZhbGlk X2Zyb20gVFlQRSBkYXRlLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgZGF0ZSwK KyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7Cist LSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9m IGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsyCisg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkg cmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCist LQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KK0RFTEVURSBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJybmc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzEsMV0nLCAnWzIwMTgt MDEtMDIsMjAxOC0wMi0wMyknKSwKKyAgKCdbMSwxXScsICdbMjAxOC0wMy0wMywyMDE4LTA0 LTA0KScpLAorICAoJ1syLDJdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpJyksCisgICgn WzMsM10nLCAnWzIwMTgtMDEtMDEsKScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAx JywgJ1sxLDFdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywg JzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworLS0gc2hvdWxkIGZhaWw6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0VSUk9SOiAgaW5zZXJ0 IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIKK0RFVEFJTDog IEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwyMDE4LTA0 LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCistLSBva2F5 IGFnYWluOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworLS0KKy0tIHRlc3QgcGdfZ2V0X2NvbnN0cmFp bnRkZWYKKy0tCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2Nv bnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ma19wZXIycm5nX2ZrJzsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyhpZCwgUEVSSU9EIHZhbGlkX2F0KQorKDEgcm93 KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAn WzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MiwyXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMV0nKTsKK0VSUk9SOiAg aW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIKK0RF VEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMiwy MDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCist LSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMV0nLCAnWzIwMTgtMDItMDMsMjAxOC0wMy0wMyknKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcyMDE4 LTA0LTAxJywgJ1sxLDFdJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVz CistLQorLS0gc2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9u OgorVVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJybmcgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMicsIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTIwJyBXSEVSRSBpZCA9ICdbMSwxXSc7Cist LSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycm5nIFNFVCB2YWxpZF9m cm9tID0gJzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wNS0wMScgV0hFUkUgaWQg PSAnWzEsMV0nOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19wZXIycm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19wZXIycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0o WzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDUtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJs ZSAidGVtcG9yYWxfcm5nIi4KK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycm5nIFNFVCBwYXJl bnRfaWQgPSAnWzgsOF0nIFdIRVJFIGlkID0gJ1sxLDFdJzsKK0VSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIKK0RFVEFJTDogIEtl eSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFs4LDkpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTIw KSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCistLSBBTFRFUiBG SyBERUZFUlJBQkxFCitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUworICAgICgnWzUsNV0nLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0w MSknKSwKKyAgICAoJ1s1LDVdJywgJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJyk7CisgIElO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICAgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnLCAnWzUsNV0nKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJu ZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAgIERF RkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQuCitDT01NSVQ7 IC0tIHNob3VsZCBmYWlsIGhlcmUuCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFi bGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cm5nIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAg T04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVj YXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdb MjAxNi0wMS0wMSwyMDE2LTAyLTAxKScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZl cmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw1XScsICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KScpLAorICAoJ1s1LDVdJywgJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcs ICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYt MDItMDEsMjAxNi0wMy0wMSknCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0g J1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJzsKKy0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhl IGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s2LDcpJywgJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJyksCisgICgnWzYsNyknLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnMjAxOC0wMS0xNScs ICcyMDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nCitTRVQgdmFs aWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4g ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKQorICAgICAgICAgICAgICAg ICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVyYW5n ZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykgRU5ECitXSEVSRSBpZCA9ICdbNiw3KSc7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZDoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIw MTYtMDItMDEpJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5n Ii4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJy bmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknCisg IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnJuZyIuCistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBB TkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19wZXIycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQg cGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcs N10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWls czoKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUg aWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3BlcjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIuCitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDdd JykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsy MDE2LTAyLTAxLDIwMTYtMDMtMDEpCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAy KQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKyBbNyw4KSB8IFsyMDE4LTAx LTAyLDIwMTgtMDEtMDMpCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJybmcgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4 LTAxLTA1IHwgMjAxOC0wMS0xMCB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRl IHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2Vl ZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1szLDNd JzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIw MTYtMDItMDEpJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSc7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg UkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJy bmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcKKyAgT04gVVBEQVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBz dWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNV0nLCAn WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZh bGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDItMDEpJyBXSEVSRSBpZCA9ICdbNSw1XSc7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmlj IGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9h dCA9ICdbMjAxNi0wMi0wMSwyMDE2LTAzLTAxKScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQg dmFsaWRfYXQgPSAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknOworLS0gQSBQSyB1cGRhdGUg c2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzYsNyknLCAn WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKSwKKyAgKCdbNiw3KScsICdbMjAxOC0wMi0wMSwy MDE4LTAzLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICcy MDE4LTAxLTE1JywgJzIwMTgtMDItMTUnLCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9y bmcKK1NFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0w MS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpCisgICAg ICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRI RU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSBFTkQKK1dIRVJFIGlk ID0gJ1s2LDcpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzYsNyksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBz dGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgorLS0g YSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2 ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mawor ICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScKKyAgV0hFUkUg aWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSc7 CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIg b24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KK1JPTExCQUNLOworLS0g Y2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBT RVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1sy MDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3Bl cjJybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQ REFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAn WzUsNV0nOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9y YWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAn MjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxNi0wMi0wMSwyMDE2LTAz LTAxKQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4 LTAxLTAzLDIwMTgtMDItMDEpCisgWzcsOCkgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTAzKQor KDQgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlk IGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEt MTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZL IHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00g dGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9y YWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScKK1dIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkn OworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIGEg UEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCBy ZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhh dCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJl Y2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEp JyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywg J1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0n IEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1sy MDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgt MDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3Bl cjJybmciLgorLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJl ZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KKy0tIGRlbGV0aW5nIGFuIHVucmVm ZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJwor V0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJS T1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEt MDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorKDIgcm93cykKKworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkIGluICgnWzMsM10nKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2KQorKDEg cm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhl IHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVy MnJuZyBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hF UkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSc7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgT04g REVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxl dGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVu Y2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgt MDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAx LTEwJywgJ1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7CistLSBh IFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZl biBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisg ICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVt cG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDog IEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgor Uk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5Ogor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0t IGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJu ZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X3BlcjJybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdb NSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEt MDMsMjAxOC0wMi0wMSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgt MDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykKKworLS0gdGhlbiBkZWxldGUg dGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVk czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzMsM10n OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFs aWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworLS0KKy0tIHBlcjJybmcgdGVz dCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSByZWZlcmVuY2Vk IHVwZGF0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3 byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2Nh bGFyIGNvbHMpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIg Y29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz KQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNF VCBOVUxMIHN1YnNldCkKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBz Y2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBv cmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICAgIE9O IERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdI RVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0w MSB8IDIwMjAtMDEtMDEgfCBbNyw4KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4 KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzcsOCkKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzks OV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAy MDIwLTAxLTAxIHwgWzksMTApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3Bl cjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb Niw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwx MDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDIgcm93cykKKworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworIGlkIHwgdmFsaWRfZnJvbSB8 IHZhbGlkX3RpbCB8IHBhcmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1syMDIwLTAxLTAx LDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywg dGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5n CisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisg ICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3 LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIw MTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIw MjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAx LTAxIHwgCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAw LDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IAorKDMgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4 LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQg PSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAK KyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4 LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8 IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8 IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAy MDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAy MDIxLTAxLTAxIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1syMDIwLTAxLTAx LDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAx LTAxIHwgMjAyMC0wMS0wMSB8IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAx LTAxIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxf ZmtfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbLTEsLTFdJywgJygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEp Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScs CisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisg ICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlk ID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAy MC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQg PSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEt MDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIw MjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICcoLCknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdbMjAxOC0w MS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUg aWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwg MjAyMC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAx LTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKQorIFsx MDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEt MDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb OCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDhdJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzIw MCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcGVyMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfcGVyMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2Zr CisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgQ0FT Q0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor VVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcs OCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgor VVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzcsOCkgICAgICB8 IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KSAg ICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs3 LDgpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEp Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRl bXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8 IDIwMjAtMDEtMDEgfCBbOSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29s cykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcGVyMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNl0nLCAnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlk MSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcp ICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzYsNykgICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScs ICdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERB VEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1w b3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwg dmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBb Niw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxf cm5nMiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg MjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwg MjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAn WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5n IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhd JywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDldJyBX SEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBb MjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5 KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVt cG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIw MjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2 XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8 IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAx LTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAg ICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZzIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxp ZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAg IHwgCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAg IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJV TkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywg J1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2Fu J3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Bl cjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9hdCkg T04gVVBEQVRFIFNFVCBOVUxMOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVu Y2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04g REVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIw LTAxLTAxIHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8 IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAgICAgICAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgICAg ICAgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwg ICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4LTAxLTAx LDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdb Niw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkMiBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9O IERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0g J1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg MjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBb MTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5n MiBTRVQgaWQxID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0x LDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAg IHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEs MCkgICAgIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEg PSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAw LDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQor KDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVt cG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsICcoLCknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzYsNl0nLCAnWzYsNl0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0x LDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsx MDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSww KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApICAgICB8 IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDhdJywgJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAg ICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4 LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1 YnNldCkKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcGVyMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWy0xLC0xXScsICdbNiw2XScsICcoLCknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAn WzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s2LDZdJywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhl IFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZworICBB TFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBT RVQgREVGQVVMVDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVmZXJlbmNlZCBpbiBP TiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBvazoKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9w ZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBE RUZBVUxUIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAx IHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEt MDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBk YXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwg dmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDApICAg ICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOF0nLCAnWzgsOF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0x XScsICdbOCw4XScsICcoLCknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5n IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhd JywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdb OCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIw MTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tIEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQorQ1JFQVRFIFRZUEUgbXlk YXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJy bmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlLAorICBwYXJl bnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMyAoaWQsIFBF UklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr M19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBt eWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisgIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEt MDEsMjAxOS0wMS0wMSkgfCBbOCw5KQorIFs1LDYpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbOCw5KQorKDIgcm93cykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJu ZzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsKK0RST1AgVFlQRSBteWRhdGVyYW5nZTsK Ky0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogcmFuZ2VzCistLQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfcGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxF IHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMg SU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzEx LDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1sy MSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScs ICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0 LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1sy NCwyNSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw MC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0d28nKTsKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgUEVSSU9EIHZhbGlkX2F0KQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRF IFRBQkxFIHRma3AxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScs ICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScs ICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRma3Ay IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxV RVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdb MTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAn WzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKKy0tCistLSBwYXJ0aXRpb25lZCBG SyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIp JyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDEtMDEtMDEnLCAnMjAwMi0wMS0wMScp LCAnWzIsMyknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAw LTAyLTE1JyksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAxMC0wMi0x NScpLCAnWzEsMiknKTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZr cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTAtMDEtMDEsMjAxMC0wMi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRh YmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmciLgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwg J1szLDQpJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3AxIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzMs NCksIFsyMDAwLTAxLTAxLDIwMDAtMDItMTUpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAi dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2luZyB1cGRhdGVzCistLQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDIt MTMnKSBXSEVSRSBpZCA9ICdbMiwzKSc7CistLSBtb3ZlIGEgcm93IGZyb20gdGhlIGZpcnN0 IHBhcnRpdGlvbiB0byB0aGUgc2Vjb25kCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBTRVQgaWQgPSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIG1v dmUgYSByb3cgZnJvbSB0aGUgc2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCBpZCA9ICdbMSwyKScgV0hF UkUgaWQgPSAnWzQsNSknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAwMC0wNC0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgY29uZmxp Y3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZmtwMV9w a2V5IgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDAtMDEtMDEs MjAwMC0wNC0wMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIFsyMDAwLTAxLTAxLDIwMDAtMDQtMDEpKS4KKy0tCistLSBwYXJ0aXRpb25l ZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSk7 CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykgV0hFUkUgaWQgPSAnWzUsNiknOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYt MDMtMDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCiAgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lk X3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAx LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgpAQCAtNDQwOSw0ICs4ODQ5LDE4IEBAIFNFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTUsMTYpJzsKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmc7 CistLQorLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXM6IFBFUklPRHMKKy0tCitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcGVyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBuYW1lIHRleHQs CisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwor Q1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcGVy IEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdb OSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdb MTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOworRVJST1I6ICBJbmhlcml0aW5nIGZy b20gYSB0YWJsZSB3aXRoIGEgUEVSSU9EIGlzIG5vdCBzdXBwb3J0ZWQKK0RST1AgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcGVyOwogUkVTRVQgZGF0ZXN0eWxlOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggYTRlNTU5ZmU0MTkuLjJjYWM4YWFkZjRkIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQzLDcgKzQzLDcgQEAgdGVz dDogY29weSBjb3B5c2VsZWN0IGNvcHlkbWwgaW5zZXJ0IGluc2VydF9jb25mbGljdAogIyBO b3RlOiBtYW55IG9mIHRoZSB0ZXN0cyBpbiBsYXRlciBncm91cHMgZGVwZW5kIG9uIGNyZWF0 ZV9pbmRleAogIyAtLS0tLS0tLS0tCiB0ZXN0OiBjcmVhdGVfZnVuY3Rpb25fYyBjcmVhdGVf bWlzYyBjcmVhdGVfb3BlcmF0b3IgY3JlYXRlX3Byb2NlZHVyZSBjcmVhdGVfdGFibGUgY3Jl YXRlX3R5cGUgY3JlYXRlX3NjaGVtYQotdGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRl eF9zcGdpc3QgY3JlYXRlX3ZpZXcgaW5kZXhfaW5jbHVkaW5nIGluZGV4X2luY2x1ZGluZ19n aXN0Cit0ZXN0OiBjcmVhdGVfaW5kZXggY3JlYXRlX2luZGV4X3NwZ2lzdCBjcmVhdGVfdmll dyBpbmRleF9pbmNsdWRpbmcgaW5kZXhfaW5jbHVkaW5nX2dpc3QgcGVyaW9kcwogCiAjIC0t LS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCmluZGV4IDExNWU0YmYzZWM3Li42ZTk1 NzFlODc5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25f b2Yuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApA QCAtNDgxLDYgKzQ4MSwzOCBAQCBTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Qy IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAogRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0MjsKIAorLS0gVGVzdCB3aXRoIFBFUklPRHMKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0 aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJ TlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3Qy CitWQUxVRVMKKygnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJywgJ29uZScp LAorKCdbMSwyKScsICcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMnLCAnb25lJyksCisoJ1sx LDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcsICdvbmUnKSwKKygnWzIsMyknLCAn MjAxOC0wMS0wMScsICcyMDE4LTA1LTAxJywgJ3R3bycpLAorKCdbMyw0KScsICcyMDE4LTAx LTAxJywgbnVsbCwgJ3RocmVlJyk7Cis7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgt MDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVM RVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMykn OworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKwogLS0gVGVz dCB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKIAogQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2Ug QVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3BlcmlvZHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkMzk3MTJkMmI0Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKQEAgLTAs MCArMSwxNzggQEAKKy8qIFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgaW1wbGVtZW50ZWQgKi8K K2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9k IGZvciBzeXN0ZW1fdGltZSAoZHMsIGRlKSk7CisKKy8qIFBlcmlvZHMgbXVzdCBzcGVjaWZ5 IGFjdHVhbCBjb2x1bW5zICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRh dGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoYm9ndXMsIGRlKSk7CitjcmVhdGUgdGFibGUg cHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGJv Z3VzKSk7CisKKy8qIERhdGEgdHlwZXMgbXVzdCBtYXRjaCBleGFjdGx5ICovCitjcmVhdGUg dGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIHRpbWVzdGFtcCwgcGVyaW9kIGZv ciBwIChkcywgZGUpKTsKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgdGV4dCBj b2xsYXRlICJDIiwgZGUgdGV4dCBjb2xsYXRlICJQT1NJWCIsIHBlcmlvZCBmb3IgcCAoZHMs IGRlKSk7CisKKy8qIFBlcmlvZHMgbXVzdCBoYXZlIGEgZGVmYXVsdCBCVHJlZSBvcGVyYXRv ciBjbGFzcyAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB4bWwsIGRlIHht bCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKKworLyogUGVyaW9kIGFuZCBjb2x1bW4gbmFt ZXMgYXJlIGluIHRoZSBzYW1lIG5hbWVzcGFjZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBp bnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGN0aWQgKGRzLCBkZSkpOwor Y3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2Qg Zm9yIGlkIChkcywgZGUpKTsKKworLyogUGVyaW9kIG5hbWUgY2FuJ3QgYmUgZ2l2ZW4gbW9y ZSB0aGFuIG9uY2UgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwg ZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkp OworCisvKiBOb3cgbWFrZSBvbmUgdGhhdCB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0IChp ZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOwor CisvKiBTRUxFQ1QgKiBleGNsdWRlcyB0aGUgUEVSSU9EICovCitpbnNlcnQgaW50byBwdCB2 YWx1ZXMgKDEsICcyMDAwLTAxLTAxJywgJzIwMDEtMDEtMDEnKTsKK3NlbGVjdCAqIGZyb20g cHQ7CisKKy8qIFlvdSBjYW4gZ2V0IGl0IGlmIHlvdSB3YW50ICovCitzZWxlY3QgKiwgcCBm cm9tIHB0OworCisvKiBUd28gYXJlIG9rYXkgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcDEgKGRzLCBkZSksIHBlcmlv ZCBmb3IgcDIgKGRzLCBkZSkpOworZHJvcCB0YWJsZSBwdDI7CisKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRl ZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAo ZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUg cHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNl IHRoZSBjb2wgaXNuJ3QgdGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIs IGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIG9wdGlvbiBoYXMgYW4gaW52YWxpZCB2YWx1ZSAqLworY3JlYXRlIHRh YmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpKTsKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBO T1QgTlVMTCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUg ZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBk ZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRy dWUpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVz ZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBj cmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMg R0VORVJBVEVEIGJ1dCB3aXRoIHRoZSB3cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgor LS0gY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBk YXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBk cykpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRy dWUpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVz ZSB0aGUgY29sdW1uIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChp ZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIHRzcmFuZ2Ugbm90IG51bGwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAodHNyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAo ZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhlcml0ZWQg Ki8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5n ZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAocGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKSBpbmhlcml0cyAocHQycGFyZW50KTsK K2Ryb3AgdGFibGUgcHQycGFyZW50OworCisKKy8qCisgKiBBTFRFUiBUQUJMRSB0ZXN0cwor ICovCithbHRlciB0YWJsZSBwdCBkcm9wIHBlcmlvZCBmb3IgcDsKK2FsdGVyIHRhYmxlIHB0 IGFkZCBwZXJpb2QgZm9yIHN5c3RlbV90aW1lIChkcywgZGUpOworYWx0ZXIgdGFibGUgcHQg YWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKTsKKworLyogQWRkaW5nIGEgc2Vjb25kIG9uZSAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVy aW9kIGZvciBwMSAoZHMsIGRlKSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3Ig cDIgKGRzLCBkZSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuJ3QgZHJvcCBpdHMgY29s dW1ucyAqLworYWx0ZXIgdGFibGUgcHQgZHJvcCBjb2x1bW4gZHM7CithbHRlciB0YWJsZSBw dCBkcm9wIGNvbHVtbiBkZTsKKworLyogQ2FuJ3QgY2hhbmdlIHRoZSBkYXRhIHR5cGVzICov CithbHRlciB0YWJsZSBwdCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CithbHRl ciB0YWJsZSBwdCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CisKKy8qIGNvbHVt bi9wZXJpb2QgbmFtZXNwYWNlIGNvbmZsaWN0cyAqLworYWx0ZXIgdGFibGUgcHQgYWRkIGNv bHVtbiBwIGludGVnZXI7CithbHRlciB0YWJsZSBwdCByZW5hbWUgY29sdW1uIGlkIHRvIHA7 CithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9kIGZvciB0YWJsZW9pZCAoZHMsIGRlKTsKK2Fs dGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yICIuLi4uLi4uLnBnLmRyb3BwZWQuNC4uLi4u Li4uIiAoZHMsIGRlKTsKKworLyogYWRkaW5nIGNvbHVtbnMgYW5kIHRoZSBwZXJpb2QgYXQg dGhlIHNhbWUgdGltZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlcik7CithbHRl ciB0YWJsZSBwdDIgYWRkIGNvbHVtbiBkcyBkYXRlLCBhZGQgY29sdW1uIGRlIGRhdGUsIGFk ZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogQW1iaWd1 b3VzIHJhbmdlIHR5cGVzIHJhaXNlIGFuIGVycm9yICovCitjcmVhdGUgdHlwZSBteWRhdGVy YW5nZSBhcyByYW5nZShzdWJ0eXBlPWRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50 LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBZb3Ug Y2FuIGdpdmUgYW4gZXhwbGljaXQgcmFuZ2UgdHlwZSAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo cmFuZ2V0eXBlID0gJ215ZGF0ZXJhbmdlJykpOworZHJvcCB0eXBlIG15ZGF0ZXJhbmdlOwor ZHJvcCB0eXBlIG15ZGF0ZXJhbmdlIGNhc2NhZGU7Citkcm9wIHRhYmxlIHB0MjsKK2NyZWF0 ZSB0YWJsZSBwdDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKHJhbmdldHlwZSA9ICdkYXRlcmFuZ2UnKSk7CisKKy8qIFJhbmdlIHR5 cGUgaXMgbm90IGZvdW5kICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRzIGRhdGUs IGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbm90 YXJhbmdlJykpOworCisvKiBSYW5nZSB0eXBlIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVh dGUgdGFibGUgcHQzIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAo ZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAndHN0enJhbmdlJykpOworZHJvcCB0YWJsZSBw dDI7CisKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2Ny ZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJh bmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBz dG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0 aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitcZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworLyogU2tp cCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2wgaXNu J3QgdGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRl IGRhdGUpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0 aCAoY29sZXhpc3RzID0gdHJ1ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9uIGhhcyBhbiBp bnZhbGlkIHZhbHVlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChk YXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9k IGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpOworZHJvcCB0 YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJl Y2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBh bHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQy IGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7Citk cm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFp bHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0ZSB0YWJs ZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBu dWxsKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KGNvbGV4aXN0cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5n IEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBHRU5FUkFU RUQgYnV0IHdpdGggdGhlIHdyb25nIGV4cHJlc3Npb24gKi8KKy0tIFRPRE86CistLSBjcmVh dGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5n ZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZGUsIGRzKSkgc3Rv cmVkKTsKKy0tIGFsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9IHRydWUpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29s dW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8KK2Ny ZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5n ZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0b3Jl ZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChj b2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBH RU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgaW5oZXJpdGVk ICovCitjcmVhdGUgdGFibGUgcHQycGFyZW50IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBk YXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFu Z2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKCkgaW5oZXJpdHMgKHB0 MnBhcmVudCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOworZHJvcCB0YWJsZSBw dDJwYXJlbnQ7CisKKy8qIENSRUFURSBUQUJMRSAoTElLRSAuLi4pICovCisKKy8qIFBlcmlv ZHMgYXJlIG5vdCBjb3BpZWQgYnkgTElLRSwgc28gdGhlaXIgY29sdW1ucyBhcmVuJ3QgZWl0 aGVyICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0KTsKK1xkIHB0MgorZHJvcCB0YWJs ZSBwdDI7CisKKy8qIENhbiBhZGQgYSBwZXJpb2QgcmVmZXJyaW5nIHRvIExJS0UnZCBjb2x1 bW5zICovCitjcmVhdGUgdGFibGUgbm90X3AgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUpOworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBub3RfcCwgcGVyaW9kIGZvciBwIChkcywg ZGUpKTsKK1xkIHB0MgorZHJvcCB0YWJsZSBwdDI7CisKKy8qIENhbiBhZGQgYSBwZXJpb2Qg d2l0aCB0aGUgc2FtZSBuYW1lICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyogQ2Fu IGFkZCBhIHBlcmlvZCB3aXRoIGEgZGlmZmVyZW50IG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGxpa2UgcHQsIHBlcmlvZCBmb3IgcDIgKGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRh YmxlIHB0MjsKKworLyogQ2FuJ3QgYWRkIGEgcGVyaW9kIHdob3NlIG5hbWUgY29uZmxpY3Rz IHdpdGggYSBMSUtFJ2QgY29sdW1uICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBw ZXJpb2QgZm9yIGlkIChkcywgZGUpKTsKKworLyogQ1JFQVRFIFRBTEJFIElOSEVSSVRTICov CisKKy8qIENhbid0IGluaGVyaXQgZnJvbSBhIHRhYmxlIHdpdGggYSBwZXJpb2QgKi8KK2Ny ZWF0ZSB0YWJsZSBwdDIgKG5hbWUgdGV4dCkgaW5oZXJpdHMgKHB0KTsKKworLyogQ2FuJ3Qg aW5oZXJpdCB3aXRoIGEgcGVyaW9kICovCitjcmVhdGUgdGFibGUgcHQyIChkMnMgZGF0ZSwg ZDJlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZDJzLCBkMmUpKSBpbmhlcml0cyAobm90X3ApOwor Citkcm9wIHRhYmxlIG5vdF9wOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292 ZXJsYXBzLnNxbAppbmRleCA5OTcwMThmZDA1Yy4uMDA5YTg1ZDA0Y2QgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC05MSw2ICs5MSwzMSBA QCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCiBTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFp bnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3Jh bF9ybmcyX3BrJzsKIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsn OwogCistLSBQSyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIK K1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Blcl9wayc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4 ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFt ZSA9ICd0ZW1wb3JhbF9wZXJfcGsnOworCistLSBQSyB3aXRoIHR3byBjb2x1bW5zIHBsdXMg YSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFu Z2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMgorU0VM RUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyMl9wayc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVm KGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9wZXIyX3BrJzsKKwogLS0gUEsgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBl OgogQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xs YXRpb249IkMiKTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTE2OSw2ICsx OTQsMzMgQEAgU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm4KIFNFTEVDVCBwZ19nZXRfaW5k ZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25u YW1lID0gJ3RlbXBvcmFsX3JuZzNfdXEnOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwog CistLSBVTklRVUUgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRl LAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMwor U0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4 ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFt ZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsKKwor LS0gVU5JUVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wZXIzX3VxIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworXGQgdGVtcG9yYWxfcGVyMworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9p ZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191 cSc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcGVyMzsKKwogLS0gVU5JUVVFIHdpdGggYSBjdXN0b20gcmFuZ2Ug dHlwZToKIENSRUFURSBUWVBFIHRleHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwg Y29sbGF0aW9uPSJDIik7CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0yNDUs NiArMjk3LDU4IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsMwogICBVTklRVUUgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIERST1AgVEFCTEUgdGVtcG9yYWwzOwogCistLSBQ UklNQVJZIEtFWSB3aXRoIFBFUklPRCBhbHJlYWR5IHRoZXJlCitDUkVBVEUgVEFCTEUgdGVt cG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlk X3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsM19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp OworXGQgdGVtcG9yYWwzCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKworLS0gUFJJTUFSWSBL RVkgd2l0aCBQRVJJT0QgdG9vCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCispOworQUxU RVIgVEFCTEUgdGVtcG9yYWwzCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9m cm9tLCB2YWxpZF90aWwpLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFs MworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tIFVOSVFVRSB3aXRoIFBFUklPRCBhbHJl YWR5IHRoZXJlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9y YWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQorICBVTklRVUUgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworRFJPUCBUQUJMRSB0ZW1w b3JhbDM7CisKKy0tIFVOSVFVRSB3aXRoIFBFUklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1w b3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIFBFUklPRCBGT1Ig dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsM191cQorICBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K1xkIHRlbXBvcmFsMworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKIC0tCiAtLSByYW5nZSBQ SzogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKIC0tCkBAIC02MTUsNiArNzE5LDIxMiBAQCBX SEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgSVMgTlVMTDsKIFNFTEVDVCAqIEZS T00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9QIFRBQkxF IHRlbXBvcmFsX21sdHJuZzM7CiAKKy0tCistLSBQRVJJT0QgUEs6IHRlc3Qgd2l0aCBleGlz dGluZyByb3dzCistLQorCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX3Blcl9wazsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAx OC0wMS0wMicsICcyMDE4LTAyLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMn LCAnMjAxOC0wNC0wNCcpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wMScsIE5VTEwpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfcGVyIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGs7CisKKy0tIHNo b3VsZCBmYWlsOgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcy MDE4LTAxLTA1Jyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKTsKK1JPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wZXIgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0OworICBJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworICBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wZXIgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCk7CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKKworLS0KKy0tIFBF UklPRCBQSzogdGVzdCBpbnNlcnRzCistLQorCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScs ICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0w My0wMycsICcyMDE4LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CisK Ky0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTIChOVUxMLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7Cist LSByZWplY3RzIGVtcHR5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIwMjAt MDEtMDEnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIFBFUklPRCBQSzogdGVzdCB1cGRhdGVzCistLQorCistLSB1cGRh dGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9 ICdbMTEsMTIpJworV0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4g JzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIHRoZSBQRVJJT0QgYm91bmRzCitVUERB VEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAor ICAgICAgICB2YWxpZF90aWwgPSAnMjAyMS0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzExLDEy KScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRl IGJvdGggYXQgb25jZQorVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzIx LDIyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsCisgICAgICAgIHZh bGlkX3RpbCA9ICcyMDE4LTAyLTAzJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAg ICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBzaG91bGQgZmFpbDoKK1VQREFU RSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRf ZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUn CitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBO VUxMCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAg IHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wNScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDE4 LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHNldCBhIFBFUklPRCBib3Vu ZCB0byBOVUxMIChva2F5KQorVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAn WzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDQtMDQnLAorICAgICAgICB2 YWxpZF90aWwgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gcmVqZWN0cyBl bXB0eToKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAor ICAgICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwg PSAnMjAyMC0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzEsMiknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gUEVSSU9EIFVR OiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cworLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BlcjMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkKKyk7CisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIw MTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0w NCcpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcy MDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX3BlcjNfdXE7CisKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47Cisg IElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworICBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEg VU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitST0xMQkFDSzsKKy0t IHJlamVjdHMgZW1wdHk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBE Uk9QIFBFUklPRCBGT1IgdmFsaWRfYXQ7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEt MDEnLCAnMjAyMC0wMS0wMScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBQ RVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworUk9MTEJBQ0s7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIzOworCistLQorLS0gUEVSSU9EIFVROiB0ZXN0IGluc2VydHMK Ky0tCisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgt MDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKKworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKKy0tIHJlamVjdHMgZW1wdHk6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSBQRVJJT0QgVVE6IHRlc3QgdXBkYXRlcworLS0KKworLS0gdXBkYXRlIHRoZSBzY2FsYXIg cGFydAorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitX SEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6 OmRhdGU7CistLSB1cGRhdGUgdGhlIFBFUklPRCBib3VuZHMKK1VQREFURSAgdGVtcG9yYWxf cGVyMworU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxp ZF90aWwgPSAnMjAyMS0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAg dmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25j ZQorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAorICAg ICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLAorICAgICAgICB2YWxpZF90aWwgPSAn MjAxOC0wMi0wMycKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQg QD4gJzIwMjAtMDEtMTUnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3Jh bF9wZXIzCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcy MDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgtMDUtMDUnCitXSEVSRSAg IGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0byBOVUxMIChva2F5 KQorVVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAg dmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjEt MDEtMDEnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IGEgUEVSSU9EIGJvdW5k IHRvIE5VTEwgKG9rYXkpCitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAn WzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDQtMDQnLAorICAgICAgICB2 YWxpZF90aWwgPSBOVUxMCitXSEVSRSAgIGlkIElTIE5VTEwgQU5EIHZhbGlkX2F0IEA+ICcy MDIwLTA2LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9yYWxfcGVy MworU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDMtMDEnLAorICAgICAgICB2YWxpZF90 aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90aWwg SVMgTlVMTDsKKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NF VCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5V TEw7CistLSBzdGlsbCByZWplY3RzIGVtcHR5IHdoZW4gc2NhbGFyIHBhcnQgaXMgTlVMTDoK K1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZh bGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9ICcyMDIwLTAx LTAxJworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX3RpbCBJUyBOVUxMOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcGVyMzsKKwogLS0KIC0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGgg YSBQSyBhbmQgYSBVTklRVUUgY29uc3RyYWludAogLS0KQEAgLTk2Miw2ICsxMjcyLDEyMSBA QCBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OwogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX21sdHJuZzM7CiAKKy0tCistLSBPTiBDT05GTElD VDogUEVSSU9EcworLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGggYSBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElD VCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9U SElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMykn LCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWw7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZM SUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp IE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAn MjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05G TElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBOT1RISU5HOworLS0gZGF0 ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAx JywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cl9wayBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkg aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGgg YSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEn KSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVE RUQuaWQgKyAnWzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsK Ky0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8g VVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisKK1RS VU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAw NS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXJfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsK Ky0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAt MDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7Cist LSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsOworCistLSB3aXRoIGEgVU5JUVVFIGNvbnN0cmFpbnQ6CisKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUs CisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7Cist LSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBu byBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAx JykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29u ZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9O IENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JE RVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxf cGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOwor LS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0g aWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEt MDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJ Tkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScs ICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0 KSBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjM7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGgg YSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAx JykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIERPIE5PVEhJ Tkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wZXIzX3VxIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBP TiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gTk9USElORzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsOworCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMikn LCAnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNU IChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwz KSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkg RE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUgbWF0 Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQg aWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bl cjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVt cG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0w MScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAx JywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cjNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKKy0tIGlk IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAx JywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cjNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRh dGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxf cGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWw7CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsKKwogLS0KIC0tIHRlc3QgRksg ZGVwZW5kZW5jaWVzCiAtLQpAQCAtMTAxNSw2ICsxNDQwLDcgQEAgQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcgKAogICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKTsKK1xkIHRlbXBv cmFsX2ZrX3JuZzJybmcKIERST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIAogLS0g d2l0aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgpAQCAtMjY3Myw3MCArMzA5OSwyNzQw IEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBCiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKLS0tIEZLIHdp dGggYSBjdXN0b20gcmFuZ2UgdHlwZQotCi1DUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyBy YW5nZShzdWJ0eXBlPWRhdGUpOworLS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIFBFUklPRCBy ZWZlcmVuY2VzIFBFUklPRAorLS0KIAotQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAor LS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXI7CitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfcGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBteWRh dGVyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKQogKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoCitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3Br CisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CisKKy0t IENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxp ZF9hdCBteWRhdGVyYW5nZSwKKyAgdmFsaWRfZnJvbSBpbnQsCisgIHZhbGlkX3RpbCBpbnQs CiAgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3Ju ZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK LSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0gICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcz IChpZCwgUEVSSU9EIHZhbGlkX2F0KSBPTiBERUxFVEUgQ0FTQ0FERQorICBQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOwotREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5 LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOwotU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CiAKLURST1Ag VEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmc7Ci1EUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7 Ci1EUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CistLSB3b3JrczogUEVSSU9EIGZvciBib3RoIHJl ZmVyZW5jZWQgYW5kIHJlZmVyZW5jaW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcGVyMnBlcgorRFJP UCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOwogCi0tLQotLS0gRksgYmV0d2VlbiBwYXJ0 aXRpb25lZCB0YWJsZXM6IHJhbmdlcwotLS0KKy0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0Qg Y29sdW1uczoKIAotQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCist LSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9h dCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9h dCBkYXRlcmFuZ2UsCi0gIG5hbWUgdGV4dCwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJp dGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCi0pIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIFBBUlRJ VElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIp JywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sx MywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdb MjMsMjQpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywg J1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sx NiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwot SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5h bWUpIFZBTFVFUwotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAt MDItMDEnKSwgJ29uZScpLAotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywg JzIwMDAtMDMtMDEnKSwgJ29uZScpLAotICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMTAtMDEtMDEnKSwgJ3R3bycpOwotCi1DUkVBVEUgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5D RVMgKGlkLCB2YWxpZF9hdCkKKy0tIGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAogICBpZCBpbnQ0cmFuZ2UsCi0gIHZh bGlkX2F0IGRhdGVyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0 ZSwKICAgcGFyZW50X2lkIGludDRyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCi0gICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRf YXQpCi0pIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdGZrcDEgUEFS VElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJ TiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEs MTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIx LDIyKScsICdbMjMsMjQpJyk7Ci1DUkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywg J1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEz KScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwy MyknLCAnWzI0LDI1KScpOwotCi0tLQotLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcg aW5zZXJ0cwotLS0KLQotSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwotICAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyksCi0gICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMDEtMDEtMDEnLCAnMjAwMi0wMS0wMScpLCAnWzIsMyknKSwK LSAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdb MSwyKScpOwotLS0gc2hvdWxkIGZhaWw6Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkg UkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQg c2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl ciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklP RCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBb aW1wbGljaXRdCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRh dGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCkK Kyk7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CistLSB3aXRoIGluZmVycmVk IFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlcgorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcjsKKy0tIChwYXJlbnRf aWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKKworLS0gc2hvdWxk IGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2Us CisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCBpZCkKKyk7CisKKy0tIFR3byBz Y2FsYXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIyOworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3BlcjIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAor ICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X3BlcjJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBw YXJlbnRfaWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklP RCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9h dCkKKyk7CitcZCB0ZW1wb3JhbF9mazJfcGVyMnBlcgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9m azJfcGVyMnBlcjsKKworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQK Ky0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRf aWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIFR3byBz Y2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlciAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBQ RVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBl cgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQg dGVtcG9yYWxfZmsyX3BlcjJwZXIKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVm ZXJlbmNlZCB0YWJsZSwgYW5kIHdyb25nIGNvbHVtbiB0eXBlOgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maywKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0LAorICBBTFRFUiBDT0xVTU4gdmFs aWRfZnJvbSBUWVBFIHRpbWVzdGFtcCwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX3RpbCBUWVBF IHRpbWVzdGFtcCwKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0 LAorICBBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIGRhdGUsCisgIEFMVEVSIENPTFVN TiB2YWxpZF90aWwgVFlQRSBkYXRlLAorICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKTsKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVm ZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOwor CistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVt bnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCBwYXJlbnRfaWQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9E IGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCisKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXI7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUworICAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpLAorICAoJ1sx LDFdJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpLAorICAoJ1syLDJdJywgJzIwMTgt MDEtMDEnLCAnMjAxOC0wMS0wNScpLAorICAoJ1szLDNdJywgJzIwMTgtMDEtMDEnLCBOVUxM KTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywgJ1sxLDFdJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0w NC0wMScsICdbMSwxXScpOworLS0gc2hvdWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsK KyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjsKKy0tIG9rYXkgYWdhaW46CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CisK Ky0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQorCitTRUxFQ1QgcGdfZ2V0 X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9ma19wZXIycGVyX2ZrJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNp bmcgaW5zZXJ0cworLS0KKworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcy MDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAxLTAyJywgJzIwMTgt MDQtMDEnLCAnWzEsMV0nKTsKKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEs MV0nLCAnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwxXScpOwor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorCistLSBzbGlkZSB0 aGUgZWRnZSBhY3Jvc3MgYSByZWZlcmVuY2VkIHRyYW5zaXRpb246CitVUERBVEUgdGVtcG9y YWxfZmtfcGVyMnBlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGls ID0gJzIwMTgtMDItMjAnIFdIRVJFIGlkID0gJ1sxLDFdJzsKKy0tIHNob3VsZCBmYWlsOgor VVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0w MicsIHZhbGlkX3RpbCA9ICcyMDE4LTA1LTAxJyBXSEVSRSBpZCA9ICdbMSwxXSc7CitVUERB VEUgdGVtcG9yYWxfZmtfcGVyMnBlciBTRVQgcGFyZW50X2lkID0gJ1s4LDhdJyBXSEVSRSBp ZCA9ICdbMSwxXSc7CisKKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKKworQkVHSU47CisgIElO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTCisgICAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgICAo J1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworICBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUworICAgICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywg J1s1LDVdJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRF UiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElO SVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNV0nOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQuCitDT01NSVQ7IC0tIHNob3Vs ZCBmYWlsIGhlcmUuCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBB Q1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBl cjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlcgorICBPTiBVUERBVEUgTk8gQUNUSU9OOworLS0gYSBQSyB1cGRhdGUgdGhhdCBz dWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworVVBEQVRFIHRlbXBv cmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIw MTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3Vj Y2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNl IHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9 ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn LCAnWzUsNV0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAx Ni0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0n IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w My0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgJzIwMTgtMDEtMTUnLCAnMjAx OC0wMi0xNScsICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zy b20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAx LTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAy LTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENB U0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisg ICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRI RU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQ SyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90 aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3Qg J3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERF RkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9wZXIg U0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAx JworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKKy0tIGNoYW5naW5nIHRoZSBzY2Fs YXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJwor V0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2 YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQg cGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcs N10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWls czoKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUg aWQgPSAnWzUsNV0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4g KCdbNSw1XScsICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQg YW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworVVBEQVRFIHRlbXBvcmFsX3BlciBT RVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEn CitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBv cmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gVVBEQVRFIFJFU1RSSUNUOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVy ZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFs aWRfdGlsID0gJzIwMTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgdXBk YXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJl bmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCA9ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1Jywg JzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlk X2Zyb20gPSAnMjAxNi0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUg aWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90 aWwgPSAnMjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJl dHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgJzIwMTgt MDEtMTUnLCAnMjAxOC0wMi0xNScsICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX3Blcgor U0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBU SEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJv bSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAgdmFs aWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIw MTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIw MTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYs NyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVy ZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFU RSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3Rp bCA9ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK1JPTExCQUNL OworLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFs X3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGNo YW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxf cGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAx OC0wMS0wMycKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGNo YW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitT RVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlk IGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0 aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRz OgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2 YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBhIFBL IGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVm ZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQ SyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyBy ZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScs ICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDIt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0 IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0w MScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQg ZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0aWwgY29tbWl0 OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRF UiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElO SVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CitDT01NSVQ7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFy dCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0g J1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1 JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUg aWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRl IHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2Vl ZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNd JzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04g REVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7 CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmlj IGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAo J1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIw MTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgZGVs ZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9y ZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIK KyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBERUZF UlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFO RCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFu IHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAx LTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFp bHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNV0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdb Nyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDItMDEnOworCistLQorLS0gcGVyMnBlciB0ZXN0IE9OIFVQREFURS9ERUxF VEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVz IFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5j ZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQor LS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQor LS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCist LSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQg REVGQVVMVCBzdWJzZXQpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBD QVNDQURFCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJw ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAg T04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScg V0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hF UkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBT RVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw MCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdI RVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9 ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3Bl cjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisg ICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3 LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDdd JyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNB VEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEt MDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVy MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVS RSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBv cmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBp ZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9 ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgbnVsbCwg bnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIw MCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAw LDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBP TiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10n IFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g bm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3LDdd JyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVy MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0n LCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9y YWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNj YWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsy X3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywg J1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBX SEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAs MTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9O IERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDdd JyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVy MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw3 XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBv cmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9m azJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n LCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29s cywgU0VUIE5VTEwgc3Vic2V0KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVt cG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s2LDZdJywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhl IFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBE QVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxh ciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3Bl cjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxs KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVSIENPTFVNTiBw YXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVu dF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIy cGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxF VEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3 XScsIGlkMiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIy IFNFVCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzgsOF0nLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzks OV0nLCBpZDIgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxh ciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3Bl cjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxs KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0n KTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4 LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlk ID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VU IERFRkFVTFQgc3Vic2V0KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9y YWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDZdJywgbnVs bCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywg J1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBj b2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAg IE9OIERFTEVURSBTRVQgREVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVM VDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIK KyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQg REVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl cjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDhdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlk ID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBG T1JFSUdOIEtFWSwgcmFuZ2UgcmVmZXJlbmNlcyBQRVJJT0QKKy0tCisKKy0tIHRlc3QgdGFi bGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyIENBU0NBREU7CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUs CisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX3Blcl9waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpOworCistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0 Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgaW50NHJhbmdlLAorICBwYXJlbnRfaWQgaW50 NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKyk7CisKKy0tIHdvcmtzOiBQRVJJT0QgZm9yIHJlZmVyZW5jZWQsIHJhbmdlIGZvciBy ZWZlcmVuY2luZworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5n ZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisp OworXGQgdGVtcG9yYWxfZmtfcm5nMnBlcgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyOworCistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CisKKy0tIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0g UkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVy YW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJF TkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQp IFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBwYXJ0 IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJw ZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRd CistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0 IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cgorKTsKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQp CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQpCispOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNF UyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7Cist LSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9h dCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyOworLS0gKHBh cmVudF9pZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAor ICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJw ZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CisKKy0tIHNob3VsZCBmYWls IGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBk YXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlciAoaWQsIFBFUklPRCBpZCkKKyk7CisKKy0tIFR3byBzY2FsYXIgY29sdW1ucwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIyIENBU0NBREU7CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9w ayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisg IHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcy cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9y YWxfZmsyX3JuZzJwZXIKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CisKKy0t CistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwg UEVSSU9EIHZhbGlkX2F0KTsKKy0tIFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9mazJfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0 cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9ybmcycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcy cGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklP RCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfcm5nMnBlcgorCistLSB3aXRoIGluZmVy cmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBhbmQgd3JvbmcgY29sdW1uIHR5cGU6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfYXQgVFlQRSB0 c3JhbmdlIFVTSU5HIHRzcmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1cHBlcih2YWxpZF9hdCkp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycGVyCisgIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIGRhdGVy YW5nZSBVU0lORyBkYXRlcmFuZ2UobG93ZXIodmFsaWRfYXQpOjpkYXRlLCB1cHBlcih2YWxp ZF9hdCk6OmRhdGUpOworCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2Vk IHRhYmxlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CisKKy0tIHNo b3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9mazIKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBh cmVudF9pZCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgaWQpOwor CistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KKworREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlcjsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisg ICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyksCisgICgnWzEsMV0nLCAn MjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JyksCisgICgnWzIsMl0nLCAnMjAxOC0wMS0wMScs ICcyMDE4LTAxLTA1JyksCisgICgnWzMsM10nLCAnMjAxOC0wMS0wMScsIE5VTEwpOworCitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDFdJywgJ1syMDE4LTAxLTAy LDIwMTgtMDItMDEpJywgJ1sxLDFdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAn WzIwMTgtMDEtMDIsMjAxOC0wNC0wMSknLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBva2F5IGFnYWluOgor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcGVyOworCistLQorLS0gdGVzdCBwZ19nZXRfY29uc3RyYWludGRlZgor LS0KKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJh aW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5nMnBlcl9mayc7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGluc2VydHMKKy0tCisKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwx XScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAxKScsICdbMSwxXScpOworLS0gc2hvdWxkIGZh aWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSknLCAn WzEsMV0nKTsKKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMV0nLCAnMjAx OC0wMi0wMycsICcyMDE4LTAzLTAzJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnWzIwMTgt MDEtMDIsMjAxOC0wNC0wMSknLCAnWzEsMV0nKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNpbmcgdXBkYXRlcworLS0KKworLS0gc2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJl bmNlZCB0cmFuc2l0aW9uOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHZhbGlk X2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDItMjApJyBXSEVSRSBpZCA9ICdbMSwxXSc7Cist LSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19ybmcycGVyIFNFVCB2YWxpZF9h dCA9ICdbMjAxOC0wMS0wMiwyMDE4LTA1LTAxKScgV0hFUkUgaWQgPSAnWzEsMV0nOworVVBE QVRFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHBhcmVudF9pZCA9ICdbOCw4XScgV0hFUkUg aWQgPSAnWzEsMV0nOworCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCisKK0JFR0lOOworICBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUworICAgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICAg KCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKyAgSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwor ICAgICgnWzMsM10nLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKKyAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVS UkVEOworCisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7 IC0tc2hvdWxkIG5vdCBmYWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4K KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9O IFVQREFURSBOTyBBQ1RJT047CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1 c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2 YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScgV0hF UkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRo b3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlz bid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUs NV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10n LCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNV0nKTsKK1VQREFURSB0ZW1wb3Jh bF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2 LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDIt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlk aW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgn WzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnWzIw MTgtMDEtMTUsMjAxOC0wMi0xNSknLCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIK K1NFVCB2YWxpZF9mcm9tID0gQ0FTRSBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScg VEhFTiAnMjAxOC0wMS0wMScKKyAgICAgICAgICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zy b20gPSAnMjAxOC0wMi0wMScgVEhFTiAnMjAxOC0wMS0wNScgRU5EOjpkYXRlLAorICAgIHZh bGlkX3RpbCA9ICBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcy MDE4LTAxLTA1JworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcy MDE4LTAyLTAxJyBUSEVOICcyMDE4LTAzLTAxJyBFTkQ6OmRhdGUKK1dIRVJFIGlkID0gJ1s2 LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZl cmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAx LTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5E IHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAx JzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVu Y2VkLCBidXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJw ZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwg PSAnMjAxNi0wMi0wMScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CistLSBjaGFu Z2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBp ZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gY2hhbmdpbmcgYW4g dW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJwor U0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdpbmcganVz dCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdb Nyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgaW4gKCdbMywz XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rp bmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9m a19ybmcycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRl IHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2Vk OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFU RSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3Rp bCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQg YmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hF UkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMywzXScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1 XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAx JywgdmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZh bGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsK Ky0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSwKKyAgKCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMKKyAgKCdbNCw1KScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScsICdbNiw3KScpOwor VVBEQVRFIHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAg ICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1 JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAg V0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6 ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBi ZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJ TjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZ IERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAn MjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdb NSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcy MDE4LTAyLTAxJzsKK1JPTExCQUNLOworLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZh aWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9 ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9 ICcyMDE4LTAyLTAxJzsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9r YXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJF IGlkID0gJ1s1LDVdJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRF IHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0w NScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1 XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywg J1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNh bWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBl ciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9m cm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDItMDEnOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg Tk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3Ju ZzJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXI7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhl IG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUg aWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3Vn aCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0 OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAg KCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MywzXScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1XScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcy MDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxl dGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBhIFBLIGRlbGV0 ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGls IGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisg ICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgREVGRVJS QUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVu Y2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVS RSBpZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVy IFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVu IGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRl IHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9 ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0n IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w Mi0wMSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAor LS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy CisgIE9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUg bnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMKKyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1 XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScs ICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw1XScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAy LTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhh dCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1p dCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFM VEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICAgIERFRkVSUkFCTEUg SU5JVElBTExZIERFRkVSUkVEOworCisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVS RSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTAxJzsKK1JPTExCQUNLOworLS0gZGVsZXRpbmcgYW4gdW5yZWZl cmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitX SEVSRSBpZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVs ZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBp ZCA9ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUs NV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAx OC0wMi0wMSc7CisKKy0tCistLSBybmcycGVyIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRp b25zCistLQorLS0gVE9DOgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxU IHN1YnNldCkKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04gREVMRVRFIENBU0NBREUgT04g VVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0 ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJyk7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAn WzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxM CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nKTsK K1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4 XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScp OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBp ZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEp JywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzgs OF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQg REVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcy cGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScs ICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxU ICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmss CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZB VUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3Bl ciBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0n LCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBd JywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9y YWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb LTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwy MDIxLTAxLTAxKScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1sy MDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAn WzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEt MDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJf cm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUg Q0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFs X3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVt cG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVy IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4 LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIs IHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAn WzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl cjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0w MS0wMSknLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIg V0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAw LDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEt MDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5n MnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNF VCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxf cGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1w b3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitV UERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgs OF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIs IHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAn WzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl cjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0w MS0wMSknLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIg V0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAw LDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNl dCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9ybmcycGVy OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIw MTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJl Y2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmsKKyAg ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBTRVQgTlVM TCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9mawor ICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBO VUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9 ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxl dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJw ZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDhdJywgJ1s4LDhdJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9y YWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50 X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQy IFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9m aworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nLCBp ZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQg aWQxID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVy IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4XScsICdbOCw4XScpOwor VVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSw5XScsIGlkMiA9ICdbOSw5XScg V0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAw LDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0w MSknLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIw MTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBX SEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNv bHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIs IHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw2 XScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5n MnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNl0nLCAnWzYsNl0n KTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVM RVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0g b2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcm5nMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3JuZzJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9O IERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxU OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVS RSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1stMSwtMV0nLCAnWzgsOF0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw4 XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAn WzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9EIHJl ZmVyZW5jZXMgcmFuZ2UKKy0tCisKKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1AgVEFCTEUg dGVtcG9yYWxfcm5nIENBU0NBREU7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrCisgIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CisKKy0tIENhbid0IGNy ZWF0ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGlu dCwKKyAgdmFsaWRfdGlsIGludCwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworCistLSB3b3JrczogcmFu Z2UgZm9yIHJlZmVyZW5jZWQsIFBFUklPRCBmb3IgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9t IGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQ RVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3Jh bF9ma19wZXIycm5nCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmc7CisKKy0tIHdp dGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoKKworLS0gKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZFUkVOQ0VTIHBh cnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNF UyAoaWQsIHZhbGlkX2F0KQorLS0gYm90aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5n ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZh bGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBL RVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChp ZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkg UEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRy YW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKKy0tIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxp ZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcgKGlkKQorKTsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFs aWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRy YW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIHdpdGgg aW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6CistLSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0 ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklP RCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nOworLS0g KHBhcmVudF9pZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAor ICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCispOworCist LSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lk KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKQorKTsKKwor LS0gVHdvIHNjYWxhciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzIgQ0FTQ0FE RTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKKyAgaWQxIGludDRyYW5nZSwKKyAg aWQyIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX3JuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRl LAorICBwYXJlbnRfaWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJu Z19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2 YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJfcGVyMnJuZworRFJPUCBUQUJMRSB0ZW1w b3JhbF9mazJfcGVyMnJuZzsKKworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNU UkFJTlQKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBw YXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0t IFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJu ZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZSwKKyAgcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdl LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJf cGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICBG T1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQor ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQp OworXGQgdGVtcG9yYWxfZmsyX3BlcjJybmcKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZSwgYW5kIHdyb25nIGNvbHVtbiB0eXBlOgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnJuZ19maywKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0LAorICBBTFRFUiBDT0xV TU4gdmFsaWRfZnJvbSBUWVBFIHRpbWVzdGFtcCwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX3Rp bCBUWVBFIHRpbWVzdGFtcCwKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBQRVJJT0QgRk9SIHZh bGlkX2F0LAorICBBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIGRhdGUsCisgIEFMVEVS IENPTFVNTiB2YWxpZF90aWwgVFlQRSBkYXRlLAorICBBREQgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2Vk IGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCBwYXJlbnRfaWQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwg UEVSSU9EIGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCisKK0RF TEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzEsMV0nLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknKSwKKyAgKCdbMSwxXScsICdb MjAxOC0wMy0wMywyMDE4LTA0LTA0KScpLAorICAoJ1syLDJdJywgJ1syMDE4LTAxLTAxLDIw MTgtMDEtMDUpJyksCisgICgnWzMsM10nLCAnWzIwMTgtMDEtMDEsKScpOworCitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4 LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMV0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDFd Jyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nOworLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmc7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKworLS0KKy0tIHRlc3Qg cGdfZ2V0X2NvbnN0cmFpbnRkZWYKKy0tCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRl ZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2Zr X3BlcjJybmdfZmsnOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCist LQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAn MjAxOC0wMi0wMScsICdbMSwxXScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwx XScpOworLS0gbm93IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDFdJywgJ1syMDE4LTAyLTAzLDIwMTgtMDMt MDMpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDJdJywgJzIwMTgtMDEtMDIn LCAnMjAxOC0wNC0wMScsICdbMSwxXScpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2lu ZyB1cGRhdGVzCistLQorCistLSBzbGlkZSB0aGUgZWRnZSBhY3Jvc3MgYSByZWZlcmVuY2Vk IHRyYW5zaXRpb246CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnJuZyBTRVQgdmFsaWRfZnJv bSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDItMjAnIFdIRVJFIGlkID0g J1sxLDFdJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJybmcg U0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZhbGlkX3RpbCA9ICcyMDE4LTA1LTAx JyBXSEVSRSBpZCA9ICdbMSwxXSc7CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnJuZyBTRVQg cGFyZW50X2lkID0gJ1s4LDhdJyBXSEVSRSBpZCA9ICdbMSwxXSc7CisKKy0tIEFMVEVSIEZL IERFRkVSUkFCTEUKKworQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMKKyAgICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpJyksCisgICAgKCdbNSw1XScsICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKScpOworICBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJywgJ1s1LDVdJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJy bmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgICBE RUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQuCitDT01N SVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg dXBkYXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9y YWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdf ZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZworICBPTiBVUERBVEUgTk8gQUNUSU9OOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVy ZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzUsNV0nLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKTsKK1VQREFURSB0ZW1wb3Jh bF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDItMDEpJyBXSEVSRSBp ZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdo IHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywg J1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEs MjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAx OC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5n IFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMi0wMSwyMDE2LTAzLTAxKScKK1dIRVJFIGlkID0g J1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknOworLS0g QSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzYsNyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKSwKKyAgKCdbNiw3KScsICdb MjAxOC0wMi0wMSwyMDE4LTAzLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAg KCdbNCw1KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnLCAnWzYsNyknKTsKK1VQREFU RSB0ZW1wb3JhbF9ybmcKK1NFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9h dCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpCisgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIw MTgtMDItMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSBF TkQKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVj YXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknCitXSEVSRSBpZCA9ICdbNSw1XScg QU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKy0tIGEgUEsgdXBk YXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90ICd0 aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcK KyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgICBERUZF UlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBVUERBVEUgdGVtcG9yYWxfcm5nIFNF VCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScKKyAgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CitDT01NSVQ7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitV UERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVd JyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworLS0gY2hhbmdp bmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAx LTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gY2hhbmdp bmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBp ZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgaW4g KCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBv YmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDIt MDEpJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwy MDE4LTAyLTAxKSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNU UklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5n OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJy bmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nCisgIE9OIFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3Vj Y2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1sy MDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxp ZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScgV0hFUkUgaWQgPSAnWzUsNV0nOwor LS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBp ZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw1XScsICdbMjAxOC0wMS0wMSwy MDE4LTAyLTAxKScpLAorICAoJ1s1LDVdJywgJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQg PSAnWzIwMTYtMDItMDEsMjAxNi0wMy0wMSknCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZh bGlkX2F0ID0gJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJzsKKy0tIEEgUEsgdXBkYXRlIHNs aWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s2LDcpJywgJ1sy MDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzYsNyknLCAnWzIwMTgtMDItMDEsMjAx OC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnMjAx OC0wMS0xNScsICcyMDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5n CitTRVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEt MDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKQorICAgICAg ICAgICAgICAgICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVO IGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykgRU5ECitXSEVSRSBpZCA9 ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUg cmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAg VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0w Mi0wMSknCisgIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSknOworUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBh cnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkn OworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0 ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDIn IFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0n OworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKK1NFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcg V0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUg c3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0g J1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAx LTAxLDIwMTYtMDItMDEpJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdb MjAxOC0wMS0wMSwyMDE4LTAyLTAxKSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9y YWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdf ZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVj YXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNV0nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUg bnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVd JywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDIt MDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0w MSwyMDE4LTAzLTAxKSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90 aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9 ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKy0t IGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBi dXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CistLSBkZWxldGluZyBh biB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0w MS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZh aWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNV0nLCAn WzcsN10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJybmcgV0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2Ft ZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5n IFdIRVJFIGlkID0gJ1szLDNdJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNSw1XScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgT04g REVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyBkZWxl dGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVu Y2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDVdJywgJ1syMDE4LTAxLTAxLDIwMTgt MDItMDEpJyksCisgICgnWzUsNV0nLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAx LTEwJywgJ1s1LDVdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNV0nIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7CistLSBh IFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZl biBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisg ICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVt cG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSknOworUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5j ZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJF IGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDVdJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcg V0hFUkUgaWQgaW4gKCdbMywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4g ZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUg c3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0g J1szLDNdJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw1XScg QU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKworLS0KKy0tIHBl cjJybmcgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NB REUKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENB U0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3 byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNj YWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEt MDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlk ID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0g J1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s5LDldJyBX SEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9y YWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19w ZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgs OF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQg TlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgU0VUIE5V TEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitV UERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgor VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDhdJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwy MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdbMjAx OC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJu ZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAw LDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUg dGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNl0nLCAn WzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk IFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsK KyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBE QVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUg dGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDhdJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgaWQgPSAnWzksOV0nIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJygsKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n KTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhd JywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2Fs YXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9w ZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJy bmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVU RSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUg aWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBP IHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIw MjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4 XScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQx ID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFs X3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICdbMjAx OC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJy bmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYs Nl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAn WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlk MSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1sy MDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVy MnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb Niw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5n MiBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw4XScs ICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNF VCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRl bXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICdbMjAxOC0wMS0wMSwy MDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYs Nl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVt bjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAg IE9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0t IG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisg ICAgT04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJ1syMDIwLTAxLTAxLDIw MjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4 XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFV TFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRl bXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCAnKCwpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDZdJywgJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX3BlcjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFV TFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJywgaWQyID0gJ1s3LDddJyBX SEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw3XScs IGlkMiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0n LCAnWzgsOF0nLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQx ID0gJ1s5LDldJywgaWQyID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFs X2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDZd JywgJ1s2LDZdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNF VCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBv cmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDZdJywgJygsKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw2 XScsICdbNiw2XScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91 IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9wZXIycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9h dCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcGVyMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFy ZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw4XScsICdbOCw4XScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1s4LDhdJywgJygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0n LCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4 LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworLS0gRksgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCisKK0NS RUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7CisKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBt eWRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmszX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15ZGF0 ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrM19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzUsNiknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAn WzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbNSw2KSc7CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmc7CitEUk9QIFRB QkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CisKKy0tCistLSBG SyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogcmFuZ2VzCistLQorCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBB UlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sx LDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywg J1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScs ICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUp JywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywg J1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQs IG5hbWUpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIw MDAtMDItMDEnKSwgJ29uZScpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAx JywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3R3bycpOworCitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf YXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBF UklPRCB2YWxpZF9hdCkKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJM RSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBG T1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzks MTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sxNywxOCknLCAnWzE5 LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMiBQQVJU SVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElO ICgnWzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDEx KScsICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkpJywgJ1syMCwy MSknLCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyBy ZWZlcmVuY2luZyBpbnNlcnRzCistLQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzEsMikn KSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMS0wMS0wMScsICcyMDAyLTAxLTAxJyks ICdbMiwzKScpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAt MDItMTUnKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMKICAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDEwLTAyLTE1 JyksICdbMSwyKScpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwogICAoJ1szLDQpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1szLDQpJyk7CkBAIC0zMTgx LDQgKzYyNzcsMTkgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNSwxNiknOwogRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmc7CiAKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRh YmxlczogUEVSSU9EcworLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3BlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgbmFtZSB0ZXh0LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9m cm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFS VElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9OIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3BlciBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCkn LCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdb MTUsMTYpJywgJ1sxNywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsK K0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcGVyOworCiBSRVNFVCBkYXRlc3R5 bGU7Ci0tIAoyLjQyLjAKCg== --------------fqq7eOVClbBGl58voZUohIfk--