From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 2569F24C38 for ; Thu, 24 May 2018 10:00:40 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wxjM0Eu1xqFW for ; Thu, 24 May 2018 10:00:39 -0400 (EDT) Received: from smtp47.i.mail.ru (smtp47.i.mail.ru [94.100.177.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 253D124C33 for ; Thu, 24 May 2018 10:00:35 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH 1/1] sql: IS is only applicable when dealing with NULL References: <1526642787.218420559@f261.i.mail.ru> <10ce4eb3-e380-3007-8811-78d6f4517e1b@tarantool.org> <1526659840.883327245@f345.i.mail.ru> <7283762e-ce01-fd16-a50b-26b6730711cc@tarantool.org> <6984db02-b1d1-942b-6a04-8684fcbc87ae@tarantool.org> From: Imeev Mergen Message-ID: Date: Thu, 24 May 2018 17:00:32 +0300 MIME-Version: 1.0 In-Reply-To: <6984db02-b1d1-942b-6a04-8684fcbc87ae@tarantool.org> Content-Type: multipart/mixed; boundary="------------476BA1A36B03911253D857C2" Content-Language: en-US Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: Vladislav Shpilevoy , tarantool-patches@freelists.org This is a multi-part message in MIME format. --------------476BA1A36B03911253D857C2 Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit On 05/24/2018 02:52 PM, Vladislav Shpilevoy wrote: > Hello. Good patch! See my 5 minor comments below. > >> diff --git a/src/box/sql/expr.c b/src/box/sql/expr.c >> index 1b5182367..1ed8d1c40 100644 >> --- a/src/box/sql/expr.c >> +++ b/src/box/sql/expr.c > @@ -564,8 +563,6 @@ exprVectorRegister(Parse * pParse,    /* Parse > context */ >   * >   * The caller must satisfy the following preconditions: >   * > - *    if pExpr->op==TK_IS:      op==TK_EQ and p5==SQLITE_NULLEQ > - *    if pExpr->op==TK_ISNOT:   op==TK_NE and p5==SQLITE_NULLEQ >   *    otherwise:                op==pExpr->op and p5==0 >   */ >  static void > > 1. Now the sentence looks weird: 'caller must satisfy the following > preconditions otherwise'. > Please, fix it. And I noticed this: according to the comment now `op` > is always > the same as `pExpr->op`, so this argument can be removed. Please, do > it if possible. Done. Also removed "op" and "r5" arguments. > >> @@ -4924,6 +4906,9 @@ sqlite3ExprIfFalse(Parse * pParse, Expr * >> pExpr, int dest, int jumpIfNull) >>       */ >>      assert(pExpr->op != TK_ISNULL || op == OP_NotNull); >>      assert(pExpr->op != TK_NOTNULL || op == OP_IsNull); >> + >> +    op = ((pExpr->op + (TK_NE & 1)) ^ 1) - (TK_NE & 1); >> + >>      assert(pExpr->op != TK_NE || op == OP_Eq); >>      assert(pExpr->op != TK_EQ || op == OP_Ne); >>      assert(pExpr->op != TK_LT || op == OP_Ge); > > 2. Lets fix the comment as well so as to make make it clear > TK_ISNULL/NOTNULL now > are not in the same range as TK_NE/EQ.... Done. > >> @@ -126,7 +126,7 @@ cmdx ::= cmd. >>  // which keeps parser tables smaller. >>  // >>  // The token values assigned to these symbols is determined by the >> order >> -// in which lemon first sees them.  It must be the case that >> ISNULL/NOTNULL, >> +// in which lemon first sees them.  It must be the case that >>  // NE/EQ, GT/LE, and GE/LT are separated by only a single value.  See >>  // the sqlite3ExprIfFalse() routine for additional information on this >>  // constraint. > > 3. Please say a pair of words about how TK_NOTNULL/ISNULL work now. Done. Added couple lines of text before definition of IS NULL and IS NOT NULL operations. > >> diff --git a/src/box/sql/whereexpr.c b/src/box/sql/whereexpr.c >> index 6b63b2c69..f64eb72e4 100644 >> --- a/src/box/sql/whereexpr.c >> +++ b/src/box/sql/whereexpr.c >> @@ -1051,8 +1047,6 @@ exprAnalyze(SrcList * pSrc,    /* the FROM >> clause */ >>              pTerm->u.leftColumn = iColumn; >>              pTerm->eOperator = operatorMask(op) & opMask; >>          } >> -        if (op == TK_IS) >> -            pTerm->wtFlags |= TERM_IS; >>          if (pRight >>              && exprMightBeIndexed(pSrc, op, pTerm->prereqRight, pRight, >>                        &iCur, &iColumn) > > 4. TERM_IS now is never set, and can be removed too. Done. > >> @@ -1252,7 +1244,7 @@ exprAnalyze(SrcList * pSrc,    /* the FROM >> clause */ >>       * This is only required if at least one side of the comparison >> operation >>       * is not a sub-select. >>       */ >> -    if (pWC->op == TK_AND && (pExpr->op == TK_EQ || pExpr->op == TK_IS) >> +    if (pWC->op == TK_AND && (pExpr->op == TK_EQ) >>          && sqlite3ExprIsVector(pExpr->pLeft) >>          && ((pExpr->pLeft->flags & EP_xIsSelect) == 0 >>          || (pExpr->pRight->flags & EP_xIsSelect) == 0)) { > > 5. Here you can remove extra (): > (pExpr->op == TK_EQ) -> pExpr->op == TK_EQ > > They were needed to encapsulate the disjunction. Done. > > > On 23/05/2018 17:30, Imeev Mergen wrote: >> >> >> On 05/19/2018 12:37 AM, Vladislav Shpilevoy wrote: >>> Hello. Thanks for the fixes! You did a huge work fixing the tests! >>> >>>>      > >>>>      > -%include { >>>>      > -  /* A routine to convert a binary TK_IS or TK_ISNOT >>>> expression into a >>>>      > -  ** unary TK_ISNULL or TK_NOTNULL expression. */ >>>> >>>>     3. I still can grep ISNULL token. NOTNULL too. They must be >>>> removed completely, but >>>>     very accurately. For example, TK_NULL, TK_ISNULL, TK_NOTNULL >>>> are not tokens, they >>>>     are identifiers for 'NULL', 'IS NULL', and 'IS NOT NULL'. But >>>> strings 'ISNULL' and >>>>     'NOTNULL' must be removed. For example, look >>>> extra/mkkeywordhash.c:196. Here all the >>>>     tokens are stored and their identifiers, so "NOTNULL" is >>>> reflected into TK_NOTNULL. >>>>     We must remove "NOTNULL". Same in parse.y:137, 213. >>>> >>>>     In treeview.c:475 NOTNULL must be replaced with "NOT NULL". >>>> Same in vdbeaux.c:1508. >>>> >>>>     Same about ISNULL. >>>> >>>> Partially done. Ones in parse.y used to generate identifiers to >>>> operations 'IS NULL' and 'IS NOT NULL' >>> >>> I see, but they now are unused by parser. Please, remove them. The >>> parser uses not "NOTNULL" or >>> "ISNULL" - it uses TK_ISNULL and TK_NOTNULL. Look at addopcodes.sh >>> how to add TK_... constants >>> with no adding them to parser. >>> >>> In the final patch you must not be able to grep "ISNULL" or >>> "NOTNULL" strings anywhere. >>> >>> By removal of these parser-unused things you will make the parser >>> slightly faster. >>> >>> >>> The rest of the patch is ok. >> Done. >> >> --------------476BA1A36B03911253D857C2 Content-Type: text/plain; charset=UTF-8; name="patch.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch.txt" Y29tbWl0IDJiNTc1ZGVlOTQ0YWVkMGIyZjkxNjZjMWZiMjZiYWZlZWE2NWI0NjkKQXV0aG9y OiBNZXJnZW4gSW1lZXYgPGltZWV2bWFAZ21haWwuY29tPgpEYXRlOiAgIFdlZCBNYXkgMTYg MTY6Mzk6MjYgMjAxOCArMDMwMAoKICAgIHNxbDogSVMgaXMgb25seSBhcHBsaWNhYmxlIHdo ZW4gZGVhbGluZyB3aXRoIE5VTEwKICAgIAogICAgQWNjb3JkaW5nIHRvIEFOU0kgU3RhbmRh cmQgSVMvSVMgTk9UIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZQogICAgaWYgdmFsdWVzIGlz IG51bGwuIEF0IHRoZSBzYW1lIHRpbWUgaW4gU1FMaXRlMyBJUy9JUyBOT1QgaGF2ZSBhbgog ICAgYWRkaXRpb25hbCBmdW5jdGlvbiAtIGl0IGNhbiBiZSB1c2VkIHRvIGNoZWNrIGVxdWFs aXR5IG9mIHR3bwogICAgdmFsdWVzLiBUaGlzIGZlYXR1cmUgaXNuJ3QgY29tbW9uIGZvciBk aWZmZXJlbnQgdmVyc2lvbnMgb2YgU1FMCiAgICAob25seSBpbiBQTC9TUUwgcmlnaHQgb3Bl cmFuZCBjYW4gYmUgTk9ORSwgVFJVRSBvZiBGQUxTRSkgVGhpcwogICAgcGF0Y2ggcmVtb3Zl cyBkZXNjcmliZWQgZnVuY3Rpb24uCgpkaWZmIC0tZ2l0IGEvZXh0cmEvYWRkb3Bjb2Rlcy5z aCBiL2V4dHJhL2FkZG9wY29kZXMuc2gKaW5kZXggOTAyN2NjOC4uMDMwNDI1OSAxMDA3NTUK LS0tIGEvZXh0cmEvYWRkb3Bjb2Rlcy5zaAorKysgYi9leHRyYS9hZGRvcGNvZGVzLnNoCkBA IC0zMCwxMSArMzAsMTIgQEAgZG9uZSA8ICIkMSIKICMgSUxMRUdBTCAqbXVzdCogYmUgdGhl IGxhc3QgdHdvIHRva2VuIGNvZGVzIGFuZCB0aGV5IG11c3QgYmUgaW4gdGhhdCBvcmRlci4K IGV4dHJhcz0iICAgICAgICAgICAgXAogICAgIFRPX1RFWFQgICAgICAgICBcCisgICAgSVNO VUxMICAgICAgICAgIFwKKyAgICBOT1ROVUxMICAgICAgICAgXAogICAgIFRPX0JMT0IgICAg ICAgICBcCiAgICAgVE9fTlVNRVJJQyAgICAgIFwKICAgICBUT19JTlQgICAgICAgICAgXAog ICAgIFRPX1JFQUwgICAgICAgICBcCi0gICAgSVNOT1QgICAgICAgICAgIFwKICAgICBFTkRf T0ZfRklMRSAgICAgXAogICAgIFVOQ0xPU0VEX1NUUklORyBcCiAgICAgRlVOQ1RJT04gICAg ICAgIFwKZGlmZiAtLWdpdCBhL2V4dHJhL21ra2V5d29yZGhhc2guYyBiL2V4dHJhL21ra2V5 d29yZGhhc2guYwppbmRleCBjZjM0ODMxLi43Zjk3ZTRjIDEwMDY0NAotLS0gYS9leHRyYS9t a2tleXdvcmRoYXNoLmMKKysrIGIvZXh0cmEvbWtrZXl3b3JkaGFzaC5jCkBAIC0xODMsNyAr MTgzLDYgQEAgc3RhdGljIEtleXdvcmQgYUtleXdvcmRUYWJsZVtdID0gewogICB7ICJJTlRF UlNFQ1QiLCAgICAgICAgICAgICAgIlRLX0lOVEVSU0VDVCIsICAgQ09NUE9VTkQsICAgICAg ICAgdHJ1ZSAgfSwKICAgeyAiSU5UTyIsICAgICAgICAgICAgICAgICAgICJUS19JTlRPIiwg ICAgICAgIEFMV0FZUywgICAgICAgICAgIHRydWUgIH0sCiAgIHsgIklTIiwgICAgICAgICAg ICAgICAgICAgICAiVEtfSVMiLCAgICAgICAgICBBTFdBWVMsICAgICAgICAgICB0cnVlICB9 LAotICB7ICJJU05VTEwiLCAgICAgICAgICAgICAgICAgIlRLX0lTTlVMTCIsICAgICAgQUxX QVlTLCAgICAgICAgICAgZmFsc2UgfSwKICAgeyAiSk9JTiIsICAgICAgICAgICAgICAgICAg ICJUS19KT0lOIiwgICAgICAgIEFMV0FZUywgICAgICAgICAgIHRydWUgIH0sCiAgIHsgIktF WSIsICAgICAgICAgICAgICAgICAgICAiVEtfS0VZIiwgICAgICAgICBBTFdBWVMsICAgICAg ICAgICBmYWxzZSB9LAogICB7ICJMRUZUIiwgICAgICAgICAgICAgICAgICAgIlRLX0pPSU5f S1ciLCAgICAgQUxXQVlTLCAgICAgICAgICAgdHJ1ZSAgfSwKQEAgLTE5Myw3ICsxOTIsNiBA QCBzdGF0aWMgS2V5d29yZCBhS2V5d29yZFRhYmxlW10gPSB7CiAgIHsgIk5BVFVSQUwiLCAg ICAgICAgICAgICAgICAiVEtfSk9JTl9LVyIsICAgICBBTFdBWVMsICAgICAgICAgICB0cnVl ICB9LAogICB7ICJOTyIsICAgICAgICAgICAgICAgICAgICAgIlRLX05PIiwgICAgICAgICAg RktFWSwgICAgICAgICAgICAgZmFsc2UgfSwKICAgeyAiTk9UIiwgICAgICAgICAgICAgICAg ICAgICJUS19OT1QiLCAgICAgICAgIEFMV0FZUywgICAgICAgICAgIHRydWUgIH0sCi0gIHsg Ik5PVE5VTEwiLCAgICAgICAgICAgICAgICAiVEtfTk9UTlVMTCIsICAgICBBTFdBWVMsICAg ICAgICAgICBmYWxzZSB9LAogICB7ICJOVUxMIiwgICAgICAgICAgICAgICAgICAgIlRLX05V TEwiLCAgICAgICAgQUxXQVlTLCAgICAgICAgICAgdHJ1ZSAgfSwKICAgeyAiT0YiLCAgICAg ICAgICAgICAgICAgICAgICJUS19PRiIsICAgICAgICAgIEFMV0FZUywgICAgICAgICAgIHRy dWUgIH0sCiAgIHsgIk9GRlNFVCIsICAgICAgICAgICAgICAgICAiVEtfT0ZGU0VUIiwgICAg ICBBTFdBWVMsICAgICAgICAgICBmYWxzZSB9LApkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwv ZXhwci5jIGIvc3JjL2JveC9zcWwvZXhwci5jCmluZGV4IDFiNTE4MjMuLjAzYWU0NGMgMTAw NjQ0Ci0tLSBhL3NyYy9ib3gvc3FsL2V4cHIuYworKysgYi9zcmMvYm94L3NxbC9leHByLmMK QEAgLTI3MCw4ICsyNzAsNyBAQCBjb21wYXJpc29uQWZmaW5pdHkoRXhwciAqIHBFeHByKQog CWNoYXIgYWZmOwogCWFzc2VydChwRXhwci0+b3AgPT0gVEtfRVEgfHwgcEV4cHItPm9wID09 IFRLX0lOIHx8IHBFeHByLT5vcCA9PSBUS19MVCB8fAogCSAgICAgICBwRXhwci0+b3AgPT0g VEtfR1QgfHwgcEV4cHItPm9wID09IFRLX0dFIHx8IHBFeHByLT5vcCA9PSBUS19MRSB8fAot CSAgICAgICBwRXhwci0+b3AgPT0gVEtfTkUgfHwgcEV4cHItPm9wID09IFRLX0lTCi0JICAg ICAgIHx8IHBFeHByLT5vcCA9PSBUS19JU05PVCk7CisJICAgICAgIHBFeHByLT5vcCA9PSBU S19ORSk7CiAJYXNzZXJ0KHBFeHByLT5wTGVmdCk7CiAJYWZmID0gc3FsaXRlM0V4cHJBZmZp bml0eShwRXhwci0+cExlZnQpOwogCWlmIChwRXhwci0+cFJpZ2h0KSB7CkBAIC01NjEsMTkg KzU2MCwxMSBAQCBleHByVmVjdG9yUmVnaXN0ZXIoUGFyc2UgKiBwUGFyc2UsCS8qIFBhcnNl IGNvbnRleHQgKi8KICAqIEV4cHJlc3Npb24gcEV4cHIgaXMgYSBjb21wYXJpc29uIGJldHdl ZW4gdHdvIHZlY3RvciB2YWx1ZXMuIENvbXB1dGUKICAqIHRoZSByZXN1bHQgb2YgdGhlIGNv bXBhcmlzb24gKDEsIDAsIG9yIE5VTEwpIGFuZCB3cml0ZSB0aGF0CiAgKiByZXN1bHQgaW50 byByZWdpc3RlciBkZXN0LgotICoKLSAqIFRoZSBjYWxsZXIgbXVzdCBzYXRpc2Z5IHRoZSBm b2xsb3dpbmcgcHJlY29uZGl0aW9uczoKLSAqCi0gKiAgICBpZiBwRXhwci0+b3A9PVRLX0lT OiAgICAgIG9wPT1US19FUSBhbmQgcDU9PVNRTElURV9OVUxMRVEKLSAqICAgIGlmIHBFeHBy LT5vcD09VEtfSVNOT1Q6ICAgb3A9PVRLX05FIGFuZCBwNT09U1FMSVRFX05VTExFUQotICog ICAgb3RoZXJ3aXNlOiAgICAgICAgICAgICAgICBvcD09cEV4cHItPm9wIGFuZCBwNT09MAog ICovCiBzdGF0aWMgdm9pZAogY29kZVZlY3RvckNvbXBhcmUoUGFyc2UgKiBwUGFyc2UsCS8q IENvZGUgZ2VuZXJhdG9yIGNvbnRleHQgKi8KIAkJICBFeHByICogcEV4cHIsCS8qIFRoZSBj b21wYXJpc29uIG9wZXJhdGlvbiAqLwotCQkgIGludCBkZXN0LAkvKiBXcml0ZSByZXN1bHRz IGludG8gdGhpcyByZWdpc3RlciAqLwotCQkgIHU4IG9wLAkvKiBDb21wYXJpc29uIG9wZXJh dG9yICovCi0JCSAgdTggcDUJCS8qIFNRTElURV9OVUxMRVEgb3IgemVybyAqLworCQkgIGlu dCBkZXN0CS8qIFdyaXRlIHJlc3VsdHMgaW50byB0aGlzIHJlZ2lzdGVyICovCiAgICAgKQog ewogCVZkYmUgKnYgPSBwUGFyc2UtPnBWZGJlOwpAQCAtNTgzLDcgKzU3NCw3IEBAIGNvZGVW ZWN0b3JDb21wYXJlKFBhcnNlICogcFBhcnNlLAkvKiBDb2RlIGdlbmVyYXRvciBjb250ZXh0 ICovCiAJaW50IGk7CiAJaW50IHJlZ0xlZnQgPSAwOwogCWludCByZWdSaWdodCA9IDA7Ci0J dTggb3B4ID0gb3A7CisJdTggb3B4ID0gcEV4cHItPm9wOwogCWludCBhZGRyRG9uZSA9IHNx bGl0ZTNWZGJlTWFrZUxhYmVsKHYpOwogCiAJaWYgKG5MZWZ0ICE9IHNxbGl0ZTNFeHByVmVj dG9yU2l6ZShwUmlnaHQpKSB7CkBAIC01OTEsMTUgKzU4MiwxMCBAQCBjb2RlVmVjdG9yQ29t cGFyZShQYXJzZSAqIHBQYXJzZSwJLyogQ29kZSBnZW5lcmF0b3IgY29udGV4dCAqLwogCQly ZXR1cm47CiAJfQogCWFzc2VydChwRXhwci0+b3AgPT0gVEtfRVEgfHwgcEV4cHItPm9wID09 IFRLX05FCi0JICAgICAgIHx8IHBFeHByLT5vcCA9PSBUS19JUyB8fCBwRXhwci0+b3AgPT0g VEtfSVNOT1QKIAkgICAgICAgfHwgcEV4cHItPm9wID09IFRLX0xUIHx8IHBFeHByLT5vcCA9 PSBUS19HVAogCSAgICAgICB8fCBwRXhwci0+b3AgPT0gVEtfTEUgfHwgcEV4cHItPm9wID09 IFRLX0dFKTsKLQlhc3NlcnQocEV4cHItPm9wID09IG9wIHx8IChwRXhwci0+b3AgPT0gVEtf SVMgJiYgb3AgPT0gVEtfRVEpCi0JICAgICAgIHx8IChwRXhwci0+b3AgPT0gVEtfSVNOT1Qg JiYgb3AgPT0gVEtfTkUpKTsKLQlhc3NlcnQocDUgPT0gMCB8fCBwRXhwci0+b3AgIT0gb3Ap OwotCWFzc2VydChwNSA9PSBTUUxJVEVfTlVMTEVRIHx8IHBFeHByLT5vcCA9PSBvcCk7CiAK LQlwNSB8PSBTUUxJVEVfU1RPUkVQMjsKKwl1OCBwNSA9IFNRTElURV9TVE9SRVAyOwogCWlm IChvcHggPT0gVEtfTEUpCiAJCW9weCA9IFRLX0xUOwogCWlmIChvcHggPT0gVEtfR0UpCkBA IC02MjAsMTggKzYwNiwxOCBAQCBjb2RlVmVjdG9yQ29tcGFyZShQYXJzZSAqIHBQYXJzZSwJ LyogQ29kZSBnZW5lcmF0b3IgY29udGV4dCAqLwogCQlyMiA9IGV4cHJWZWN0b3JSZWdpc3Rl cihwUGFyc2UsIHBSaWdodCwgaSwgcmVnUmlnaHQsICZwUiwKIAkJCQkJJnJlZ0ZyZWUyKTsK IAkJY29kZUNvbXBhcmUocFBhcnNlLCBwTCwgcFIsIG9weCwgcjEsIHIyLCBkZXN0LCBwNSk7 Ci0JCXRlc3RjYXNlKG9wID09IE9QX0x0KTsKLQkJVmRiZUNvdmVyYWdlSWYodiwgb3AgPT0g T1BfTHQpOwotCQl0ZXN0Y2FzZShvcCA9PSBPUF9MZSk7Ci0JCVZkYmVDb3ZlcmFnZUlmKHYs IG9wID09IE9QX0xlKTsKLQkJdGVzdGNhc2Uob3AgPT0gT1BfR3QpOwotCQlWZGJlQ292ZXJh Z2VJZih2LCBvcCA9PSBPUF9HdCk7Ci0JCXRlc3RjYXNlKG9wID09IE9QX0dlKTsKLQkJVmRi ZUNvdmVyYWdlSWYodiwgb3AgPT0gT1BfR2UpOwotCQl0ZXN0Y2FzZShvcCA9PSBPUF9FcSk7 Ci0JCVZkYmVDb3ZlcmFnZUlmKHYsIG9wID09IE9QX0VxKTsKLQkJdGVzdGNhc2Uob3AgPT0g T1BfTmUpOwotCQlWZGJlQ292ZXJhZ2VJZih2LCBvcCA9PSBPUF9OZSk7CisJCXRlc3RjYXNl KHBFeHByLT5vcCA9PSBPUF9MdCk7CisJCVZkYmVDb3ZlcmFnZUlmKHYsIHBFeHByLT5vcCA9 PSBPUF9MdCk7CisJCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBPUF9MZSk7CisJCVZkYmVDb3Zl cmFnZUlmKHYsIHBFeHByLT5vcCA9PSBPUF9MZSk7CisJCXRlc3RjYXNlKHBFeHByLT5vcCA9 PSBPUF9HdCk7CisJCVZkYmVDb3ZlcmFnZUlmKHYsIHBFeHByLT5vcCA9PSBPUF9HdCk7CisJ CXRlc3RjYXNlKHBFeHByLT5vcCA9PSBPUF9HZSk7CisJCVZkYmVDb3ZlcmFnZUlmKHYsIHBF eHByLT5vcCA9PSBPUF9HZSk7CisJCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBPUF9FcSk7CisJ CVZkYmVDb3ZlcmFnZUlmKHYsIHBFeHByLT5vcCA9PSBPUF9FcSk7CisJCXRlc3RjYXNlKHBF eHByLT5vcCA9PSBPUF9OZSk7CisJCVZkYmVDb3ZlcmFnZUlmKHYsIHBFeHByLT5vcCA9PSBP UF9OZSk7CiAJCXNxbGl0ZTNSZWxlYXNlVGVtcFJlZyhwUGFyc2UsIHJlZ0ZyZWUxKTsKIAkJ c3FsaXRlM1JlbGVhc2VUZW1wUmVnKHBQYXJzZSwgcmVnRnJlZTIpOwogCQlpZiAoaSA+IDAp CkBAIC02NDgsMTUgKzYzNCwxNSBAQCBjb2RlVmVjdG9yQ29tcGFyZShQYXJzZSAqIHBQYXJz ZSwJLyogQ29kZSBnZW5lcmF0b3IgY29udGV4dCAqLwogCQkJVmRiZUNvdmVyYWdlKHYpOwog CQkJcDUgfD0gU1FMSVRFX0tFRVBOVUxMOwogCQl9IGVsc2UgewotCQkJYXNzZXJ0KG9wID09 IFRLX0xUIHx8IG9wID09IFRLX0dUIHx8IG9wID09IFRLX0xFCi0JCQkgICAgICAgfHwgb3Ag PT0gVEtfR0UpOworCQkJYXNzZXJ0KHBFeHByLT5vcCA9PSBUS19MVCB8fCBwRXhwci0+b3Ag PT0gVEtfR1QKKwkJCSAgICAgICB8fCBwRXhwci0+b3AgPT0gVEtfTEUgfHwgcEV4cHItPm9w ID09IFRLX0dFKTsKIAkJCXNxbGl0ZTNWZGJlQWRkT3AyKHYsIE9QX0Vsc2VOb3RFcSwgMCwg YWRkckRvbmUpOwotCQkJVmRiZUNvdmVyYWdlSWYodiwgb3AgPT0gVEtfTFQpOwotCQkJVmRi ZUNvdmVyYWdlSWYodiwgb3AgPT0gVEtfR1QpOwotCQkJVmRiZUNvdmVyYWdlSWYodiwgb3Ag PT0gVEtfTEUpOwotCQkJVmRiZUNvdmVyYWdlSWYodiwgb3AgPT0gVEtfR0UpOworCQkJVmRi ZUNvdmVyYWdlSWYodiwgcEV4cHItPm9wID09IFRLX0xUKTsKKwkJCVZkYmVDb3ZlcmFnZUlm KHYsIHBFeHByLT5vcCA9PSBUS19HVCk7CisJCQlWZGJlQ292ZXJhZ2VJZih2LCBwRXhwci0+ b3AgPT0gVEtfTEUpOworCQkJVmRiZUNvdmVyYWdlSWYodiwgcEV4cHItPm9wID09IFRLX0dF KTsKIAkJCWlmIChpID09IG5MZWZ0IC0gMikKLQkJCQlvcHggPSBvcDsKKwkJCQlvcHggPSBw RXhwci0+b3A7CiAJCX0KIAl9CiAJc3FsaXRlM1ZkYmVSZXNvbHZlTGFiZWwodiwgYWRkckRv bmUpOwpAQCAtMzczNCw3ICszNzIwLDYgQEAgc3FsaXRlM0V4cHJDb2RlVGFyZ2V0KFBhcnNl ICogcFBhcnNlLCBFeHByICogcEV4cHIsIGludCB0YXJnZXQpCiAJaW50IHJlZ0ZyZWUyID0g MDsJLyogSWYgbm9uLXplcm8gZnJlZSB0aGlzIHRlbXBvcmFyeSByZWdpc3RlciAqLwogCWlu dCByMSwgcjI7CQkvKiBWYXJpb3VzIHJlZ2lzdGVyIG51bWJlcnMgKi8KIAlFeHByIHRlbXBY OwkJLyogVGVtcG9yYXJ5IGV4cHJlc3Npb24gbm9kZSAqLwotCWludCBwNSA9IDA7CiAKIAlh c3NlcnQodGFyZ2V0ID4gMCAmJiB0YXJnZXQgPD0gcFBhcnNlLT5uTWVtKTsKIAlpZiAodiA9 PSAwKSB7CkBAIC0zODU1LDExICszODQwLDYgQEAgc3FsaXRlM0V4cHJDb2RlVGFyZ2V0KFBh cnNlICogcFBhcnNlLCBFeHByICogcEV4cHIsIGludCB0YXJnZXQpCiAJCQlyZXR1cm4gaW5S ZWc7CiAJCX0KICNlbmRpZgkJCQkvKiBTUUxJVEVfT01JVF9DQVNUICovCi0JY2FzZSBUS19J UzoKLQljYXNlIFRLX0lTTk9UOgotCQlvcCA9IChvcCA9PSBUS19JUykgPyBUS19FUSA6IFRL X05FOwotCQlwNSA9IFNRTElURV9OVUxMRVE7Ci0JCS8qIGZhbGwtdGhyb3VnaCAqLwogCWNh c2UgVEtfTFQ6CiAJY2FzZSBUS19MRToKIAljYXNlIFRLX0dUOgpAQCAtMzg2OCwxNSArMzg0 OCwxNCBAQCBzcWxpdGUzRXhwckNvZGVUYXJnZXQoUGFyc2UgKiBwUGFyc2UsIEV4cHIgKiBw RXhwciwgaW50IHRhcmdldCkKIAljYXNlIFRLX0VROnsKIAkJCUV4cHIgKnBMZWZ0ID0gcEV4 cHItPnBMZWZ0OwogCQkJaWYgKHNxbGl0ZTNFeHBySXNWZWN0b3IocExlZnQpKSB7Ci0JCQkJ Y29kZVZlY3RvckNvbXBhcmUocFBhcnNlLCBwRXhwciwgdGFyZ2V0LCBvcCwKLQkJCQkJCSAg cDUpOworCQkJCWNvZGVWZWN0b3JDb21wYXJlKHBQYXJzZSwgcEV4cHIsIHRhcmdldCk7CiAJ CQl9IGVsc2UgewogCQkJCXIxID0gc3FsaXRlM0V4cHJDb2RlVGVtcChwUGFyc2UsIHBMZWZ0 LAogCQkJCQkJCSAmcmVnRnJlZTEpOwogCQkJCXIyID0gc3FsaXRlM0V4cHJDb2RlVGVtcChw UGFyc2UsIHBFeHByLT5wUmlnaHQsCiAJCQkJCQkJICZyZWdGcmVlMik7CiAJCQkJY29kZUNv bXBhcmUocFBhcnNlLCBwTGVmdCwgcEV4cHItPnBSaWdodCwgb3AsCi0JCQkJCSAgICByMSwg cjIsIGluUmVnLCBTUUxJVEVfU1RPUkVQMiB8IHA1KTsKKwkJCQkJICAgIHIxLCByMiwgaW5S ZWcsIFNRTElURV9TVE9SRVAyKTsKIAkJCQlhc3NlcnQoVEtfTFQgPT0gT1BfTHQpOwogCQkJ CXRlc3RjYXNlKG9wID09IE9QX0x0KTsKIAkJCQlWZGJlQ292ZXJhZ2VJZih2LCBvcCA9PSBP UF9MdCk7CkBAIC00Nzc1LDEzICs0NzU0LDYgQEAgc3FsaXRlM0V4cHJJZlRydWUoUGFyc2Ug KiBwUGFyc2UsIEV4cHIgKiBwRXhwciwgaW50IGRlc3QsIGludCBqdW1wSWZOdWxsKQogCQkJ CQkgICBqdW1wSWZOdWxsKTsKIAkJCWJyZWFrOwogCQl9Ci0JY2FzZSBUS19JUzoKLQljYXNl IFRLX0lTTk9UOgotCQl0ZXN0Y2FzZShvcCA9PSBUS19JUyk7Ci0JCXRlc3RjYXNlKG9wID09 IFRLX0lTTk9UKTsKLQkJb3AgPSAob3AgPT0gVEtfSVMpID8gVEtfRVEgOiBUS19ORTsKLQkJ anVtcElmTnVsbCA9IFNRTElURV9OVUxMRVE7Ci0JCS8qIEZhbGwgdGhydSAqLwogCWNhc2Ug VEtfTFQ6CiAJY2FzZSBUS19MRToKIAljYXNlIFRLX0dUOgpAQCAtNDkwNCwyNiArNDg3Niwy NyBAQCBzcWxpdGUzRXhwcklmRmFsc2UoUGFyc2UgKiBwUGFyc2UsIEV4cHIgKiBwRXhwciwg aW50IGRlc3QsIGludCBqdW1wSWZOdWxsKQogCSAqCiAJICogICAgICAgcEV4cHItPm9wICAg ICAgICAgICAgb3AKIAkgKiAgICAgICAtLS0tLS0tLS0gICAgICAgICAgLS0tLS0tLS0tLQot CSAqICAgICAgIFRLX0lTTlVMTCAgICAgICAgICBPUF9Ob3ROdWxsCi0JICogICAgICAgVEtf Tk9UTlVMTCAgICAgICAgIE9QX0lzTnVsbAogCSAqICAgICAgIFRLX05FICAgICAgICAgICAg ICBPUF9FcQogCSAqICAgICAgIFRLX0VRICAgICAgICAgICAgICBPUF9OZQogCSAqICAgICAg IFRLX0dUICAgICAgICAgICAgICBPUF9MZQogCSAqICAgICAgIFRLX0xFICAgICAgICAgICAg ICBPUF9HdAogCSAqICAgICAgIFRLX0dFICAgICAgICAgICAgICBPUF9MdAogCSAqICAgICAg IFRLX0xUICAgICAgICAgICAgICBPUF9HZQorCSAqICAgICAgICAuLi4gICAgICAgICAgICAg ICAgLi4uCisJICogICAgICAgVEtfSVNOVUxMICAgICAgICAgIE9QX05vdE51bGwKKwkgKiAg ICAgICBUS19OT1ROVUxMICAgICAgICAgT1BfSXNOdWxsCiAJICoKIAkgKiBGb3Igb3RoZXIg dmFsdWVzIG9mIHBFeHByLT5vcCwgb3AgaXMgdW5kZWZpbmVkIGFuZCB1bnVzZWQuCiAJICog VGhlIHZhbHVlIG9mIFRLXyBhbmQgT1BfIGNvbnN0YW50cyBhcmUgYXJyYW5nZWQgc3VjaCB0 aGF0IHdlCiAJICogY2FuIGNvbXB1dGUgdGhlIG1hcHBpbmcgYWJvdmUgdXNpbmcgdGhlIGZv bGxvd2luZyBleHByZXNzaW9uLgogCSAqIEFzc2VydCgpcyB2ZXJpZnkgdGhhdCB0aGUgY29t cHV0YXRpb24gaXMgY29ycmVjdC4KIAkgKi8KKwogCW9wID0gKChwRXhwci0+b3AgKyAoVEtf SVNOVUxMICYgMSkpIF4gMSkgLSAoVEtfSVNOVUxMICYgMSk7CiAKLQkvKiBWZXJpZnkgY29y cmVjdCBhbGlnbm1lbnQgb2YgVEtfIGFuZCBPUF8gY29uc3RhbnRzCisJLyogVmVyaWZ5IGNv cnJlY3QgYWxpZ25tZW50IG9mIFRLXyBhbmQgT1BfIGNvbnN0YW50cy4KKwkgKiBUb2tlbnMg VEtfSVNOVUxMIGFuZCBUS19ORSBzaG91ZCBoYXZlIHRoZSBzYW1lIHBhcml0eS4KIAkgKi8K LQlhc3NlcnQocEV4cHItPm9wICE9IFRLX0lTTlVMTCB8fCBvcCA9PSBPUF9Ob3ROdWxsKTsK LQlhc3NlcnQocEV4cHItPm9wICE9IFRLX05PVE5VTEwgfHwgb3AgPT0gT1BfSXNOdWxsKTsK IAlhc3NlcnQocEV4cHItPm9wICE9IFRLX05FIHx8IG9wID09IE9QX0VxKTsKIAlhc3NlcnQo cEV4cHItPm9wICE9IFRLX0VRIHx8IG9wID09IE9QX05lKTsKIAlhc3NlcnQocEV4cHItPm9w ICE9IFRLX0xUIHx8IG9wID09IE9QX0dlKTsKQEAgLTQ5MzEsNiArNDkwNCw5IEBAIHNxbGl0 ZTNFeHBySWZGYWxzZShQYXJzZSAqIHBQYXJzZSwgRXhwciAqIHBFeHByLCBpbnQgZGVzdCwg aW50IGp1bXBJZk51bGwpCiAJYXNzZXJ0KHBFeHByLT5vcCAhPSBUS19HVCB8fCBvcCA9PSBP UF9MZSk7CiAJYXNzZXJ0KHBFeHByLT5vcCAhPSBUS19HRSB8fCBvcCA9PSBPUF9MdCk7CiAK Kwlhc3NlcnQocEV4cHItPm9wICE9IFRLX0lTTlVMTCB8fCBvcCA9PSBPUF9Ob3ROdWxsKTsK Kwlhc3NlcnQocEV4cHItPm9wICE9IFRLX05PVE5VTEwgfHwgb3AgPT0gT1BfSXNOdWxsKTsK KwogCXN3aXRjaCAocEV4cHItPm9wKSB7CiAJY2FzZSBUS19BTkQ6ewogCQkJdGVzdGNhc2Uo anVtcElmTnVsbCA9PSAwKTsKQEAgLTQ5NjAsMTMgKzQ5MzYsNiBAQCBzcWxpdGUzRXhwcklm RmFsc2UoUGFyc2UgKiBwUGFyc2UsIEV4cHIgKiBwRXhwciwgaW50IGRlc3QsIGludCBqdW1w SWZOdWxsKQogCQkJCQkgIGp1bXBJZk51bGwpOwogCQkJYnJlYWs7CiAJCX0KLQljYXNlIFRL X0lTOgotCWNhc2UgVEtfSVNOT1Q6Ci0JCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBUS19JUyk7 Ci0JCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBUS19JU05PVCk7Ci0JCW9wID0gKHBFeHByLT5v cCA9PSBUS19JUykgPyBUS19ORSA6IFRLX0VROwotCQlqdW1wSWZOdWxsID0gU1FMSVRFX05V TExFUTsKLQkJLyogRmFsbCB0aHJ1ICovCiAJY2FzZSBUS19MVDoKIAljYXNlIFRLX0xFOgog CWNhc2UgVEtfR1Q6CkBAIC01MjI0LDcgKzUxOTMsNyBAQCBzcWxpdGUzRXhwckltcGxpZXNF eHByKEV4cHIgKiBwRTEsIEV4cHIgKiBwRTIsIGludCBpVGFiKQogCSAgICApIHsKIAkJcmV0 dXJuIDE7CiAJfQotCWlmIChwRTItPm9wID09IFRLX05PVE5VTEwgJiYgcEUxLT5vcCAhPSBU S19JU05VTEwgJiYgcEUxLT5vcCAhPSBUS19JUykgeworCWlmIChwRTItPm9wID09IFRLX05P VE5VTEwgJiYgcEUxLT5vcCAhPSBUS19JU05VTEwpIHsKIAkJRXhwciAqcFggPSBzcWxpdGUz RXhwclNraXBDb2xsYXRlKHBFMS0+cExlZnQpOwogCQl0ZXN0Y2FzZShwWCAhPSBwRTEtPnBM ZWZ0KTsKIAkJaWYgKHNxbGl0ZTNFeHByQ29tcGFyZShwWCwgcEUyLT5wTGVmdCwgaVRhYikg PT0gMCkKZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL2ZrZXkuYyBiL3NyYy9ib3gvc3FsL2Zr ZXkuYwppbmRleCA2MGI0Nzg2Li5mOTNhZDI3IDEwMDY0NAotLS0gYS9zcmMvYm94L3NxbC9m a2V5LmMKKysrIGIvc3JjL2JveC9zcWwvZmtleS5jCkBAIC0xMjkyLDEwICsxMjkyLDEwIEBA IGZrQWN0aW9uVHJpZ2dlcihQYXJzZSAqIHBQYXJzZSwJLyogUGFyc2UgY29udGV4dCAqLwog CQkJLyogRm9yIE9OIFVQREFURSwgY29uc3RydWN0IHRoZSBuZXh0IHRlcm0gb2YgdGhlIFdI RU4gY2xhdXNlLgogCQkJICogVGhlIGZpbmFsIFdIRU4gY2xhdXNlIHdpbGwgYmUgbGlrZSB0 aGlzOgogCQkJICoKLQkJCSAqICAgIFdIRU4gTk9UKG9sZC5jb2wxIElTIG5ldy5jb2wxIEFO RCAuLi4gQU5EIG9sZC5jb2xOIElTIG5ldy5jb2xOKQorCQkJICogICAgV0hFTiBOT1Qob2xk LmNvbDEgPSBuZXcuY29sMSBBTkQgLi4uIEFORCBvbGQuY29sTiA9IG5ldy5jb2xOKQogCQkJ ICovCiAJCQlpZiAocENoYW5nZXMpIHsKLQkJCQlwRXEgPSBzcWxpdGUzUEV4cHIocFBhcnNl LCBUS19JUywKKwkJCQlwRXEgPSBzcWxpdGUzUEV4cHIocFBhcnNlLCBUS19FUSwKIAkJCQkJ CSAgIHNxbGl0ZTNQRXhwcihwUGFyc2UsIFRLX0RPVCwKIAkJCQkJCQkJc3FsaXRlM0V4cHJB bGxvYwogCQkJCQkJCQkoZGIsIFRLX0lELApkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvcGFy c2UueSBiL3NyYy9ib3gvc3FsL3BhcnNlLnkKaW5kZXggODcyNjQ3ZC4uMjE1NzdiNyAxMDA2 NDQKLS0tIGEvc3JjL2JveC9zcWwvcGFyc2UueQorKysgYi9zcmMvYm94L3NxbC9wYXJzZS55 CkBAIC0xMjUsMTYgKzEyNSwxNSBAQCBjbWR4IDo6PSBjbWQuCiAvLyBjYXVzZXMgdGhlbSB0 byBiZSBhc3NpZ25lZCBpbnRlZ2VyIHZhbHVlcyB0aGF0IGFyZSBjbG9zZSB0b2dldGhlciwK IC8vIHdoaWNoIGtlZXBzIHBhcnNlciB0YWJsZXMgc21hbGxlci4KIC8vCi0vLyBUaGUgdG9r ZW4gdmFsdWVzIGFzc2lnbmVkIHRvIHRoZXNlIHN5bWJvbHMgaXMgZGV0ZXJtaW5lZCBieSB0 aGUgb3JkZXIKLS8vIGluIHdoaWNoIGxlbW9uIGZpcnN0IHNlZXMgdGhlbS4gIEl0IG11c3Qg YmUgdGhlIGNhc2UgdGhhdCBJU05VTEwvTk9UTlVMTCwKLS8vIE5FL0VRLCBHVC9MRSwgYW5k IEdFL0xUIGFyZSBzZXBhcmF0ZWQgYnkgb25seSBhIHNpbmdsZSB2YWx1ZS4gIFNlZQotLy8g dGhlIHNxbGl0ZTNFeHBySWZGYWxzZSgpIHJvdXRpbmUgZm9yIGFkZGl0aW9uYWwgaW5mb3Jt YXRpb24gb24gdGhpcwotLy8gY29uc3RyYWludC4KKy8vIFRoZSB0b2tlbiB2YWx1ZXMgYXNz aWduZWQgdG8gdGhlc2Ugc3ltYm9scyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciBpbgor Ly8gd2hpY2ggbGVtb24gZmlyc3Qgc2VlcyB0aGVtLiAgSXQgbXVzdCBiZSB0aGUgY2FzZSB0 aGF0IE5FL0VRLCBHVC9MRSwgYW5kCisvLyBHRS9MVCBhcmUgc2VwYXJhdGVkIGJ5IG9ubHkg YSBzaW5nbGUgdmFsdWUuICBTZWUgdGhlIHNxbGl0ZTNFeHBySWZGYWxzZSgpCisvLyByb3V0 aW5lIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIHRoaXMgY29uc3RyYWludC4KIC8v CiAlbGVmdCBPUi4KICVsZWZ0IEFORC4KICVyaWdodCBOT1QuCi0lbGVmdCBJUyBNQVRDSCBM SUtFX0tXIEJFVFdFRU4gSU4gSVNOVUxMIE5PVE5VTEwgTkUgRVEuCislbGVmdCBJUyBNQVRD SCBMSUtFX0tXIEJFVFdFRU4gSU4gTkUgRVEuCiAlbGVmdCBHVCBMRSBMVCBHRS4KICVyaWdo dCBFU0NBUEUuCiAlbGVmdCBCSVRBTkQgQklUT1IgTFNISUZUIFJTSElGVC4KQEAgLTIxMCw3 ICsyMDksNyBAQCBjb2x1bW5uYW1lKEEpIDo6PSBubShBKSB0eXBldG9rZW4oWSkuIHtzcWxp dGUzQWRkQ29sdW1uKHBQYXJzZSwmQSwmWSk7fQogJWZhbGxiYWNrIElECiAgIEFCT1JUIEFD VElPTiBBREQgQUZURVIgQVVUT0lOQ1JFTUVOVCBCRUZPUkUgQ0FTQ0FERQogICBDT05GTElD VCBERUZFUlJFRCBFTkQgRkFJTAotICBJR05PUkUgSU5JVElBTExZIElOU1RFQUQgSVNOVUxM IE5PIE5PVE5VTEwgIE1BVENIIFBMQU4KKyAgSUdOT1JFIElOSVRJQUxMWSBJTlNURUFEIE5P ICBNQVRDSCBQTEFOCiAgIFFVRVJZIEtFWSBPRkZTRVQgUkFJU0UgUkVMRUFTRSBSRVBMQUNF IFJFU1RSSUNUCiAlaWZkZWYgU1FMSVRFX09NSVRfQ09NUE9VTkRfU0VMRUNUCiAgIElOVEVS U0VDVCAKQEAgLTEwMzIsMzYgKzEwMzEsMTIgQEAgZXhwcihBKSA6Oj0gZXhwcihBKSBsaWtl b3AoT1ApIGV4cHIoWSkgRVNDQVBFIGV4cHIoRSkuICBbTElLRV9LV10gIHsKICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogfQogCi1leHByKEEpIDo6PSBleHByKEEpIElTTlVM THxOT1ROVUxMKEUpLiAgIHtzcGFuVW5hcnlQb3N0Zml4KHBQYXJzZSxARSwmQSwmRSk7fQot ZXhwcihBKSA6Oj0gZXhwcihBKSBOT1QgTlVMTChFKS4ge3NwYW5VbmFyeVBvc3RmaXgocFBh cnNlLFRLX05PVE5VTEwsJkEsJkUpO30KKy8vIFRva2VucyBUS19JU05VTEwgYW5kIFRLX05P VE5VTEwgZGVmaW5lZCBpbiBleHRyYSB0b2tlbnMgYW5kIGFyZSBpZGVudGlmaWVycworLy8g Zm9yIG9wZXJhdGlvbnMgSVMgTlVMTCBhbmQgSVMgTk9UIE5VTEwuCiAKLSVpbmNsdWRlIHsK LSAgLyogQSByb3V0aW5lIHRvIGNvbnZlcnQgYSBiaW5hcnkgVEtfSVMgb3IgVEtfSVNOT1Qg ZXhwcmVzc2lvbiBpbnRvIGEKLSAgKiogdW5hcnkgVEtfSVNOVUxMIG9yIFRLX05PVE5VTEwg ZXhwcmVzc2lvbi4gKi8KLSAgc3RhdGljIHZvaWQgYmluYXJ5VG9VbmFyeUlmTnVsbChQYXJz ZSAqcFBhcnNlLCBFeHByICpwWSwgRXhwciAqcEEsIGludCBvcCl7Ci0gICAgc3FsaXRlMyAq ZGIgPSBwUGFyc2UtPmRiOwotICAgIGlmKCBwQSAmJiBwWSAmJiBwWS0+b3A9PVRLX05VTEwg KXsKLSAgICAgIHBBLT5vcCA9ICh1OClvcDsKLSAgICAgIHNxbF9leHByX2ZyZWUoZGIsIHBB LT5wUmlnaHQsIGZhbHNlKTsKLSAgICAgIHBBLT5wUmlnaHQgPSAwOwotICAgIH0KLSAgfQot fQorZXhwcihBKSA6Oj0gZXhwcihBKSBJUyBOVUxMKEUpLiAgIHtzcGFuVW5hcnlQb3N0Zml4 KHBQYXJzZSxUS19JU05VTEwsJkEsJkUpO30KK2V4cHIoQSkgOjo9IGV4cHIoQSkgSVMgTk9U IE5VTEwoRSkuICAge3NwYW5VbmFyeVBvc3RmaXgocFBhcnNlLFRLX05PVE5VTEwsJkEsJkUp O30KIAotLy8gICAgZXhwcjEgSVMgZXhwcjIKLS8vICAgIGV4cHIxIElTIE5PVCBleHByMgot Ly8KLS8vIElmIGV4cHIyIGlzIE5VTEwgdGhlbiBjb2RlIGFzIFRLX0lTTlVMTCBvciBUS19O T1ROVUxMLiAgSWYgZXhwcjIKLS8vIGlzIGFueSBvdGhlciBleHByZXNzaW9uLCBjb2RlIGFz IFRLX0lTIG9yIFRLX0lTTk9ULgotLy8gCi1leHByKEEpIDo6PSBleHByKEEpIElTIGV4cHIo WSkuICAgICB7Ci0gIHNwYW5CaW5hcnlFeHByKHBQYXJzZSxUS19JUywmQSwmWSk7Ci0gIGJp bmFyeVRvVW5hcnlJZk51bGwocFBhcnNlLCBZLnBFeHByLCBBLnBFeHByLCBUS19JU05VTEwp OwotfQotZXhwcihBKSA6Oj0gZXhwcihBKSBJUyBOT1QgZXhwcihZKS4gewotICBzcGFuQmlu YXJ5RXhwcihwUGFyc2UsVEtfSVNOT1QsJkEsJlkpOwotICBiaW5hcnlUb1VuYXJ5SWZOdWxs KHBQYXJzZSwgWS5wRXhwciwgQS5wRXhwciwgVEtfTk9UTlVMTCk7Ci19CiAKICVpbmNsdWRl IHsKICAgLyogQ29uc3RydWN0IGFuIGV4cHJlc3Npb24gbm9kZSBmb3IgYSB1bmFyeSBwcmVm aXggb3BlcmF0b3IKZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL3Jlc29sdmUuYyBiL3NyYy9i b3gvc3FsL3Jlc29sdmUuYwppbmRleCA4MjMwNjJhLi40NTgzMjc2IDEwMDY0NAotLS0gYS9z cmMvYm94L3NxbC9yZXNvbHZlLmMKKysrIGIvc3JjL2JveC9zcWwvcmVzb2x2ZS5jCkBAIC04 MDAsOSArODAwLDcgQEAgcmVzb2x2ZUV4cHJTdGVwKFdhbGtlciAqIHBXYWxrZXIsIEV4cHIg KiBwRXhwcikKIAljYXNlIFRLX0xUOgogCWNhc2UgVEtfTEU6CiAJY2FzZSBUS19HVDoKLQlj YXNlIFRLX0dFOgotCWNhc2UgVEtfSVM6Ci0JY2FzZSBUS19JU05PVDp7CisJY2FzZSBUS19H RTp7CiAJCQlpbnQgbkxlZnQsIG5SaWdodDsKIAkJCWlmIChwUGFyc2UtPmRiLT5tYWxsb2NG YWlsZWQpCiAJCQkJYnJlYWs7CkBAIC04MjksOCArODI3LDYgQEAgcmVzb2x2ZUV4cHJTdGVw KFdhbGtlciAqIHBXYWxrZXIsIEV4cHIgKiBwRXhwcikKIAkJCQl0ZXN0Y2FzZShwRXhwci0+ b3AgPT0gVEtfTEUpOwogCQkJCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBUS19HVCk7CiAJCQkJ dGVzdGNhc2UocEV4cHItPm9wID09IFRLX0dFKTsKLQkJCQl0ZXN0Y2FzZShwRXhwci0+b3Ag PT0gVEtfSVMpOwotCQkJCXRlc3RjYXNlKHBFeHByLT5vcCA9PSBUS19JU05PVCk7CiAJCQkJ dGVzdGNhc2UocEV4cHItPm9wID09IFRLX0JFVFdFRU4pOwogCQkJCXNxbGl0ZTNFcnJvck1z ZyhwUGFyc2UsICJyb3cgdmFsdWUgbWlzdXNlZCIpOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3Jj L2JveC9zcWwvdHJlZXZpZXcuYyBiL3NyYy9ib3gvc3FsL3RyZWV2aWV3LmMKaW5kZXggMWZm OTQ5Yy4uODUwODQwYSAxMDA2NDQKLS0tIGEvc3JjL2JveC9zcWwvdHJlZXZpZXcuYworKysg Yi9zcmMvYm94L3NxbC90cmVldmlldy5jCkBAIC00MTAsMTIgKzQxMCw2IEBAIHNxbGl0ZTNU cmVlVmlld0V4cHIoVHJlZVZpZXcgKiBwVmlldywgY29uc3QgRXhwciAqIHBFeHByLCB1OCBt b3JlVG9Gb2xsb3cpCiAJY2FzZSBUS19FUToKIAkJekJpbk9wID0gIkVRIjsKIAkJYnJlYWs7 Ci0JY2FzZSBUS19JUzoKLQkJekJpbk9wID0gIklTIjsKLQkJYnJlYWs7Ci0JY2FzZSBUS19J U05PVDoKLQkJekJpbk9wID0gIklTTk9UIjsKLQkJYnJlYWs7CiAJY2FzZSBUS19BTkQ6CiAJ CXpCaW5PcCA9ICJBTkQiOwogCQlicmVhazsKQEAgLTQ2OSwxMCArNDYzLDEwIEBAIHNxbGl0 ZTNUcmVlVmlld0V4cHIoVHJlZVZpZXcgKiBwVmlldywgY29uc3QgRXhwciAqIHBFeHByLCB1 OCBtb3JlVG9Gb2xsb3cpCiAJCXpVbmlPcCA9ICJOT1QiOwogCQlicmVhazsKIAljYXNlIFRL X0lTTlVMTDoKLQkJelVuaU9wID0gIklTTlVMTCI7CisJCXpVbmlPcCA9ICJJUyBOVUxMIjsK IAkJYnJlYWs7CiAJY2FzZSBUS19OT1ROVUxMOgotCQl6VW5pT3AgPSAiTk9UTlVMTCI7CisJ CXpVbmlPcCA9ICJOT1QgTlVMTCI7CiAJCWJyZWFrOwogCiAJY2FzZSBUS19TUEFOOnsKZGlm ZiAtLWdpdCBhL3NyYy9ib3gvc3FsL3ZkYmVhdXguYyBiL3NyYy9ib3gvc3FsL3ZkYmVhdXgu YwppbmRleCBlNjdmY2FlLi44MTk1ZGNiIDEwMDY0NAotLS0gYS9zcmMvYm94L3NxbC92ZGJl YXV4LmMKKysrIGIvc3JjL2JveC9zcWwvdmRiZWF1eC5jCkBAIC0xNDQ3LDEyICsxNDQ3LDYg QEAgZGlzcGxheVA0RXhwcihTdHJBY2N1bSAqIHAsIEV4cHIgKiBwRXhwcikKIAljYXNlIFRL X0VROgogCQl6T3AgPSAiRVEiOwogCQlicmVhazsKLQljYXNlIFRLX0lTOgotCQl6T3AgPSAi SVMiOwotCQlicmVhazsKLQljYXNlIFRLX0lTTk9UOgotCQl6T3AgPSAiSVNOT1QiOwotCQli cmVhazsKIAljYXNlIFRLX0FORDoKIAkJek9wID0gIkFORCI7CiAJCWJyZWFrOwpAQCAtMTUw MiwxMCArMTQ5NiwxMCBAQCBkaXNwbGF5UDRFeHByKFN0ckFjY3VtICogcCwgRXhwciAqIHBF eHByKQogCQl6T3AgPSAiTk9UIjsKIAkJYnJlYWs7CiAJY2FzZSBUS19JU05VTEw6Ci0JCXpP cCA9ICJJU05VTEwiOworCQl6T3AgPSAiSVMgTlVMTCI7CiAJCWJyZWFrOwogCWNhc2UgVEtf Tk9UTlVMTDoKLQkJek9wID0gIk5PVE5VTEwiOworCQl6T3AgPSAiTk9UIE5VTEwiOwogCQli cmVhazsKIAogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9zcmMvYm94L3NxbC93aGVyZS5jIGIv c3JjL2JveC9zcWwvd2hlcmUuYwppbmRleCBiNDk3YTViLi42YjEzY2NhIDEwMDY0NAotLS0g YS9zcmMvYm94L3NxbC93aGVyZS5jCisrKyBiL3NyYy9ib3gvc3FsL3doZXJlLmMKQEAgLTMx NiwxMSArMzE2LDEwIEBAIHdoZXJlU2Nhbk5leHQoV2hlcmVTY2FuICogcFNjYW4pCiAJCQkJ CQkJCQljb250aW51ZTsKIAkJCQkJCQl9CiAJCQkJCQl9Ci0JCQkJCQlpZiAoKHBUZXJtLT5l T3BlcmF0b3IgJiAoV09fRVEgfCBXT19JUykpICE9IDAKKwkJCQkJCWlmICgocFRlcm0tPmVP cGVyYXRvciAmIFdPX0VRKSAhPSAwCiAJCQkJCQkgICAgJiYgKHBYID0gcFRlcm0tPnBFeHBy LT5wUmlnaHQpLT5vcCA9PSBUS19DT0xVTU4KIAkJCQkJCSAgICAmJiBwWC0+aVRhYmxlID09 IHBTY2FuLT5haUN1clswXQogCQkJCQkJICAgICYmIHBYLT5pQ29sdW1uID09IHBTY2FuLT5h aUNvbHVtblswXSkgewotCQkJCQkJCXRlc3RjYXNlKHBUZXJtLT5lT3BlcmF0b3IgJiBXT19J Uyk7CiAJCQkJCQkJY29udGludWU7CiAJCQkJCQl9CiAJCQkJCQlwU2Nhbi0+cFdDID0gcFdD OwpAQCAtNDM0LDExICs0MzMsMTAgQEAgc3FsaXRlM1doZXJlRmluZFRlcm0oV2hlcmVDbGF1 c2UgKiBwV0MsCS8qIFRoZSBXSEVSRSBjbGF1c2UgdG8gYmUgc2VhcmNoZWQgKi8KIAlXaGVy ZVNjYW4gc2NhbjsKIAogCXAgPSB3aGVyZVNjYW5Jbml0KCZzY2FuLCBwV0MsIGlDdXIsIGlD b2x1bW4sIG9wLCBwSWR4KTsKLQlvcCAmPSBXT19FUSB8IFdPX0lTOworCW9wICY9IFdPX0VR OwogCXdoaWxlIChwKSB7CiAJCWlmICgocC0+cHJlcmVxUmlnaHQgJiBub3RSZWFkeSkgPT0g MCkgewogCQkJaWYgKHAtPnByZXJlcVJpZ2h0ID09IDAgJiYgKHAtPmVPcGVyYXRvciAmIG9w KSAhPSAwKSB7Ci0JCQkJdGVzdGNhc2UocC0+ZU9wZXJhdG9yICYgV09fSVMpOwogCQkJCXJl dHVybiBwOwogCQkJfQogCQkJaWYgKHBSZXN1bHQgPT0gMCkKQEAgLTYyOCw3ICs2MjYsNyBA QCB0ZXJtQ2FuRHJpdmVJbmRleChXaGVyZVRlcm0gKiBwVGVybSwJLyogV0hFUkUgY2xhdXNl IHRlcm0gdG8gY2hlY2sgKi8KIAljaGFyIGFmZjsKIAlpZiAocFRlcm0tPmxlZnRDdXJzb3Ig IT0gcFNyYy0+aUN1cnNvcikKIAkJcmV0dXJuIDA7Ci0JaWYgKChwVGVybS0+ZU9wZXJhdG9y ICYgKFdPX0VRIHwgV09fSVMpKSA9PSAwKQorCWlmICgocFRlcm0tPmVPcGVyYXRvciAmIFdP X0VRKSA9PSAwKQogCQlyZXR1cm4gMDsKIAlpZiAoKHBUZXJtLT5wcmVyZXFSaWdodCAmIG5v dFJlYWR5KSAhPSAwKQogCQlyZXR1cm4gMDsKQEAgLTYzNyw3ICs2MzUsNiBAQCB0ZXJtQ2Fu RHJpdmVJbmRleChXaGVyZVRlcm0gKiBwVGVybSwJLyogV0hFUkUgY2xhdXNlIHRlcm0gdG8g Y2hlY2sgKi8KIAlhZmYgPSBwU3JjLT5wVGFiLT5hQ29sW3BUZXJtLT51LmxlZnRDb2x1bW5d LmFmZmluaXR5OwogCWlmICghc3FsaXRlM0luZGV4QWZmaW5pdHlPayhwVGVybS0+cEV4cHIs IGFmZikpCiAJCXJldHVybiAwOwotCXRlc3RjYXNlKHBUZXJtLT5wRXhwci0+b3AgPT0gVEtf SVMpOwogCXJldHVybiAxOwogfQogI2VuZGlmCkBAIC0yMjAwLDkgKzIxOTcsOCBAQCB3aGVy ZUxvb3BPdXRwdXRBZGp1c3QoV2hlcmVDbGF1c2UgKiBwV0MsCS8qIFRoZSBXSEVSRSBjbGF1 c2UgKi8KIAkJCQkgKiBndWVzcyBhIHJlYXNvbmFibGUgdHJ1dGggcHJvYmFiaWxpdHkuCiAJ CQkJICovCiAJCQkJcExvb3AtPm5PdXQtLTsKLQkJCQlpZiAocFRlcm0tPmVPcGVyYXRvciAm IChXT19FUSB8IFdPX0lTKSkgeworCQkJCWlmIChwVGVybS0+ZU9wZXJhdG9yICYgV09fRVEp IHsKIAkJCQkJRXhwciAqcFJpZ2h0ID0gcFRlcm0tPnBFeHByLT5wUmlnaHQ7Ci0JCQkJCXRl c3RjYXNlKHBUZXJtLT5wRXhwci0+b3AgPT0gVEtfSVMpOwogCQkJCQlpZiAoc3FsaXRlM0V4 cHJJc0ludGVnZXIocFJpZ2h0LCAmaykKIAkJCQkJICAgICYmIGsgPj0gKC0xKSAmJiBrIDw9 IDEpIHsKIAkJCQkJCWsgPSAxMDsKQEAgLTIzNDEsOCArMjMzNyw3IEBAIHdoZXJlTG9vcEFk ZEJ0cmVlSW5kZXgoV2hlcmVMb29wQnVpbGRlciAqIHBCdWlsZGVyLAkvKiBUaGUgV2hlcmVM b29wIGZhY3RvcnkgKi8KIAl9IGVsc2UgewogCQlhc3NlcnQocE5ldy0+bkJ0bSA9PSAwKTsK IAkJb3BNYXNrID0KLQkJICAgIFdPX0VRIHwgV09fSU4gfCBXT19HVCB8IFdPX0dFIHwgV09f TFQgfCBXT19MRSB8IFdPX0lTTlVMTCB8Ci0JCSAgICBXT19JUzsKKwkJICAgIFdPX0VRIHwg V09fSU4gfCBXT19HVCB8IFdPX0dFIHwgV09fTFQgfCBXT19MRSB8IFdPX0lTTlVMTDsKIAl9 CiAJc3RydWN0IHNwYWNlICpzcGFjZSA9CiAJCXNwYWNlX2J5X2lkKFNRTElURV9QQUdFTk9f VE9fU1BBQ0VJRChwUHJvYmUtPnRudW0pKTsKQEAgLTI0MDQsOCArMjM5OSw3IEBAIHdoZXJl TG9vcEFkZEJ0cmVlSW5kZXgoV2hlcmVMb29wQnVpbGRlciAqIHBCdWlsZGVyLAkvKiBUaGUg V2hlcmVMb29wIGZhY3RvcnkgKi8KIAkJICovCiAJCWlmICgocFNyYy0+Zmcuam9pbnR5cGUg JiBKVF9MRUZUKSAhPSAwCiAJCSAgICAmJiAhRXhwckhhc1Byb3BlcnR5KHBUZXJtLT5wRXhw ciwgRVBfRnJvbUpvaW4pCi0JCSAgICAmJiAoZU9wICYgKFdPX0lTIHwgV09fSVNOVUxMKSkg IT0gMCkgewotCQkJdGVzdGNhc2UoZU9wICYgV09fSVMpOworCQkgICAgJiYgKGVPcCAmIFdP X0lTTlVMTCkgIT0gMCkgewogCQkJdGVzdGNhc2UoZU9wICYgV09fSVNOVUxMKTsKIAkJCWNv bnRpbnVlOwogCQl9CkBAIC0yNDU1LDcgKzI0NDksNyBAQCB3aGVyZUxvb3BBZGRCdHJlZUlu ZGV4KFdoZXJlTG9vcEJ1aWxkZXIgKiBwQnVpbGRlciwJLyogVGhlIFdoZXJlTG9vcCBmYWN0 b3J5ICovCiAJCQkJCQkJICogY2hhbmdlcyAieCBJTiAoPykiIGludG8gIng9PyIuCiAJCQkJ CQkJICovCiAJCQl9Ci0JCX0gZWxzZSBpZiAoZU9wICYgKFdPX0VRIHwgV09fSVMpKSB7CisJ CX0gZWxzZSBpZiAoZU9wICYgV09fRVEpIHsKIAkJCWludCBpQ29sID0gcFByb2JlLT5haUNv bHVtbltzYXZlZF9uRXFdOwogCQkJcE5ldy0+d3NGbGFncyB8PSBXSEVSRV9DT0xVTU5fRVE7 CiAJCQlhc3NlcnQoc2F2ZWRfbkVxID09IHBOZXctPm5FcSk7CkBAIC0yNTIyLDcgKzI1MTYs NyBAQCB3aGVyZUxvb3BBZGRCdHJlZUluZGV4KFdoZXJlTG9vcEJ1aWxkZXIgKiBwQnVpbGRl ciwJLyogVGhlIFdoZXJlTG9vcCBmYWN0b3J5ICovCiAJCQl3aGVyZVJhbmdlU2NhbkVzdChw UGFyc2UsIHBCdWlsZGVyLCBwQnRtLCBwVG9wLCBwTmV3KTsKIAkJfSBlbHNlIHsKIAkJCWlu dCBuRXEgPSArK3BOZXctPm5FcTsKLQkJCWFzc2VydChlT3AgJiAoV09fSVNOVUxMIHwgV09f RVEgfCBXT19JTiB8IFdPX0lTKSk7CisJCQlhc3NlcnQoZU9wICYgKFdPX0lTTlVMTCB8IFdP X0VRIHwgV09fSU4pKTsKIAogCQkJYXNzZXJ0KHBOZXctPm5PdXQgPT0gc2F2ZWRfbk91dCk7 CiAJCQlpZiAocFRlcm0tPnRydXRoUHJvYiA8PSAwCkBAIC0yNTQxLDEwICsyNTM1LDkgQEAg d2hlcmVMb29wQWRkQnRyZWVJbmRleChXaGVyZUxvb3BCdWlsZGVyICogcEJ1aWxkZXIsCS8q IFRoZSBXaGVyZUxvb3AgZmFjdG9yeSAqLwogCQkJCQkJCSAgICBFUF94SXNTZWxlY3QpKQog CQkJCSAgICApIHsKIAkJCQkJRXhwciAqcEV4cHIgPSBwVGVybS0+cEV4cHI7Ci0JCQkJCWlm ICgoZU9wICYgKFdPX0VRIHwgV09fSVNOVUxMIHwgV09fSVMpKQorCQkJCQlpZiAoKGVPcCAm IChXT19FUSB8IFdPX0lTTlVMTCkpCiAJCQkJCSAgICAhPSAwKSB7CiAJCQkJCQl0ZXN0Y2Fz ZShlT3AgJiBXT19FUSk7Ci0JCQkJCQl0ZXN0Y2FzZShlT3AgJiBXT19JUyk7CiAJCQkJCQl0 ZXN0Y2FzZShlT3AgJiBXT19JU05VTEwpOwogCQkJCQkJcmMgPSB3aGVyZUVxdWFsU2NhbkVz dChwUGFyc2UsCiAJCQkJCQkJCSAgICAgICBwQnVpbGRlciwKQEAgLTMyNjQsNyArMzI1Nyw3 IEBAIHdoZXJlUGF0aFNhdGlzZmllc09yZGVyQnkoV2hlcmVJbmZvICogcFdJbmZvLAkvKiBU aGUgV0hFUkUgY2xhdXNlICovCiAJb2JEb25lID0gTUFTS0JJVChuT3JkZXJCeSkgLSAxOwog CW9yZGVyRGlzdGluY3RNYXNrID0gMDsKIAlyZWFkeSA9IDA7Ci0JZXFPcE1hc2sgPSBXT19F USB8IFdPX0lTIHwgV09fSVNOVUxMOworCWVxT3BNYXNrID0gV09fRVEgfCBXT19JU05VTEw7 CiAJaWYgKHdjdHJsRmxhZ3MgJiBXSEVSRV9PUkRFUkJZX0xJTUlUKQogCQllcU9wTWFzayB8 PSBXT19JTjsKIAlmb3IgKGlMb29wID0gMDsgaXNPcmRlckRpc3RpbmN0ICYmIG9iU2F0IDwg b2JEb25lICYmIGlMb29wIDw9IG5Mb29wOwpAQCAtMzMxMiw3ICszMzA1LDcgQEAgd2hlcmVQ YXRoU2F0aXNmaWVzT3JkZXJCeShXaGVyZUluZm8gKiBwV0luZm8sCS8qIFRoZSBXSEVSRSBj bGF1c2UgKi8KIAkJCQlpZiAoaiA+PSBwTG9vcC0+bkxUZXJtKQogCQkJCQljb250aW51ZTsK IAkJCX0KLQkJCWlmICgocFRlcm0tPmVPcGVyYXRvciAmIChXT19FUSB8IFdPX0lTKSkgIT0g MAorCQkJaWYgKChwVGVybS0+ZU9wZXJhdG9yICYgV09fRVEpICE9IDAKIAkJCSAgICAmJiBw T0JFeHByLT5pQ29sdW1uID49IDApIHsKIAkJCQlzdHJ1Y3QgY29sbCAqY29sbDEsICpjb2xs MjsKIAkJCQlib29sIHVudXNlZDsKQEAgLTMzMjQsNyArMzMxNyw2IEBAIHdoZXJlUGF0aFNh dGlzZmllc09yZGVyQnkoV2hlcmVJbmZvICogcFdJbmZvLAkvKiBUaGUgV0hFUkUgY2xhdXNl ICovCiAJCQkJCQkgICAgICAmdW51c2VkKTsKIAkJCQlpZiAoY29sbDEgIT0gY29sbDIpCiAJ CQkJCWNvbnRpbnVlOwotCQkJCXRlc3RjYXNlKHBUZXJtLT5wRXhwci0+b3AgPT0gVEtfSVMp OwogCQkJfQogCQkJb2JTYXQgfD0gTUFTS0JJVChpKTsKIAkJfQpAQCAtMzM1NSw3ICszMzQ3 LDcgQEAgd2hlcmVQYXRoU2F0aXNmaWVzT3JkZXJCeShXaGVyZUluZm8gKiBwV0luZm8sCS8q IFRoZSBXSEVSRSBjbGF1c2UgKi8KIAkJCQlpZiAoaiA8IHBMb29wLT5uRXEgJiYgaiA+PSBw TG9vcC0+blNraXApIHsKIAkJCQkJdTE2IGVPcCA9IHBMb29wLT5hTFRlcm1bal0tPmVPcGVy YXRvcjsKIAotCQkJCQkvKiBTa2lwIG92ZXIgPT0gYW5kIElTIGFuZCBJU05VTEwgdGVybXMu ICAoQWxzbyBza2lwIElOIHRlcm1zIHdoZW4KKwkJCQkJLyogU2tpcCBvdmVyID09IGFuZCBJ UyBOVUxMIHRlcm1zLiAgKEFsc28gc2tpcCBJTiB0ZXJtcyB3aGVuCiAJCQkJCSAqIGRvaW5n IFdIRVJFX09SREVSQllfTElNSVQgcHJvY2Vzc2luZykuCiAJCQkJCSAqCiAJCQkJCSAqIElm IHRoZSBjdXJyZW50IHRlcm0gaXMgYSBjb2x1bW4gb2YgYW4gKCg/LD8pIElOIChTRUxFQ1Qu Li4pKQpAQCAtNDEwNSw5ICs0MDk3LDggQEAgd2hlcmVTaG9ydEN1dChXaGVyZUxvb3BCdWls ZGVyICogcEJ1aWxkZXIpCiAJcExvb3AgPSBwQnVpbGRlci0+cE5ldzsKIAlwTG9vcC0+d3NG bGFncyA9IDA7CiAJcExvb3AtPm5Ta2lwID0gMDsKLQlwVGVybSA9IHNxbGl0ZTNXaGVyZUZp bmRUZXJtKHBXQywgaUN1ciwgLTEsIDAsIFdPX0VRIHwgV09fSVMsIDApOworCXBUZXJtID0g c3FsaXRlM1doZXJlRmluZFRlcm0ocFdDLCBpQ3VyLCAtMSwgMCwgV09fRVEsIDApOwogCWlm IChwVGVybSkgewotCQl0ZXN0Y2FzZShwVGVybS0+ZU9wZXJhdG9yICYgV09fSVMpOwogCQlw TG9vcC0+d3NGbGFncyA9IFdIRVJFX0NPTFVNTl9FUSB8IFdIRVJFX0lQSyB8IFdIRVJFX09O RVJPVzsKIAkJcExvb3AtPmFMVGVybVswXSA9IHBUZXJtOwogCQlwTG9vcC0+bkxUZXJtID0g MTsKQEAgLTQxMjQsMTUgKzQxMTUsMTMgQEAgd2hlcmVTaG9ydEN1dChXaGVyZUxvb3BCdWls ZGVyICogcEJ1aWxkZXIpCiAJCQkgICAgfHwgbklkeENvbCA+IEFycmF5U2l6ZShwTG9vcC0+ YUxUZXJtU3BhY2UpCiAJCQkgICAgKQogCQkJCWNvbnRpbnVlOwotCQkJb3BNYXNrID0gaW5k ZXhfaXNfdW5pcXVlX25vdF9udWxsKHBJZHgpID8KLQkJCQkgKFdPX0VRIHwgV09fSVMpIDog V09fRVE7CisJCQlvcE1hc2sgPSBXT19FUTsKIAkJCWZvciAoaiA9IDA7IGogPCBuSWR4Q29s OyBqKyspIHsKIAkJCQlwVGVybSA9CiAJCQkJICAgIHNxbGl0ZTNXaGVyZUZpbmRUZXJtKHBX QywgaUN1ciwgaiwgMCwKIAkJCQkJCQkgb3BNYXNrLCBwSWR4KTsKIAkJCQlpZiAocFRlcm0g PT0gMCkKIAkJCQkJYnJlYWs7Ci0JCQkJdGVzdGNhc2UocFRlcm0tPmVPcGVyYXRvciAmIFdP X0lTKTsKIAkJCQlwTG9vcC0+YUxUZXJtW2pdID0gcFRlcm07CiAJCQl9CiAJCQlpZiAoaiAh PSBuSWR4Q29sKQpkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvd2hlcmVJbnQuaCBiL3NyYy9i b3gvc3FsL3doZXJlSW50LmgKaW5kZXggOWEwOTIyOS4uMTMwMzM2NSAxMDA2NDQKLS0tIGEv c3JjL2JveC9zcWwvd2hlcmVJbnQuaAorKysgYi9zcmMvYm94L3NxbC93aGVyZUludC5oCkBA IC0yODQsNyArMjg0LDYgQEAgc3RydWN0IFdoZXJlVGVybSB7CiAjZGVmaW5lIFRFUk1fTElL RU9QVCAgICAweDEwMAkvKiBWaXJ0dWFsIHRlcm1zIGZyb20gdGhlIExJS0Ugb3B0aW1pemF0 aW9uICovCiAjZGVmaW5lIFRFUk1fTElLRUNPTkQgICAweDIwMAkvKiBDb25kaXRpb25hbGx5 IHRoaXMgTElLRSBvcGVyYXRvciB0ZXJtICovCiAjZGVmaW5lIFRFUk1fTElLRSAgICAgICAw eDQwMAkvKiBUaGUgb3JpZ2luYWwgTElLRSBvcGVyYXRvciAqLwotI2RlZmluZSBURVJNX0lT ICAgICAgICAgMHg4MDAJLyogVGVybS5wRXhwciBpcyBhbiBJUyBvcGVyYXRvciAqLwogCiAv KgogICogQW4gaW5zdGFuY2Ugb2YgdGhlIFdoZXJlU2NhbiBvYmplY3QgaXMgdXNlZCBhcyBh biBpdGVyYXRvciBmb3IgbG9jYXRpbmcKQEAgLTUwNiw3ICs1MDUsNiBAQCB2b2lkIHNxbGl0 ZTNXaGVyZVRhYkZ1bmNBcmdzKFBhcnNlICosIHN0cnVjdCBTcmNMaXN0X2l0ZW0gKiwgV2hl cmVDbGF1c2UgKik7CiAjZGVmaW5lIFdPX0dUICAgICAoV09fRVE8PChUS19HVC1US19FUSkp CiAjZGVmaW5lIFdPX0dFICAgICAoV09fRVE8PChUS19HRS1US19FUSkpCiAjZGVmaW5lIFdP X01BVENIICAweDAwNDAKLSNkZWZpbmUgV09fSVMgICAgIDB4MDA4MAogI2RlZmluZSBXT19J U05VTEwgMHgwMTAwCiAjZGVmaW5lIFdPX09SICAgICAweDAyMDAJLyogVHdvIG9yIG1vcmUg T1ItY29ubmVjdGVkIHRlcm1zICovCiAjZGVmaW5lIFdPX0FORCAgICAweDA0MDAJLyogVHdv IG9yIG1vcmUgQU5ELWNvbm5lY3RlZCB0ZXJtcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JveC9z cWwvd2hlcmVjb2RlLmMgYi9zcmMvYm94L3NxbC93aGVyZWNvZGUuYwppbmRleCA4Nzg0MjVj Li40MzcyZTkwIDEwMDY0NAotLS0gYS9zcmMvYm94L3NxbC93aGVyZWNvZGUuYworKysgYi9z cmMvYm94L3NxbC93aGVyZWNvZGUuYwpAQCAtNDI2LDcgKzQyNiw3IEBAIHVwZGF0ZVJhbmdl QWZmaW5pdHlTdHIoRXhwciAqIHBSaWdodCwJLyogUkhTIG9mIGNvbXBhcmlzb24gKi8KICAq IFRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGUgY29uc3RyYWludCBpcyBsZWZ0IGluIGEgcmVn aXN0ZXIsIHRoZSBpbmRleAogICogb2Ygd2hpY2ggaXMgcmV0dXJuZWQuICBBbiBhdHRlbXB0 IGlzIG1hZGUgc3RvcmUgdGhlIHJlc3VsdCBpbiBpVGFyZ2V0IGJ1dAogICogdGhpcyBpcyBv bmx5IGd1YXJhbnRlZWQgZm9yIFRLX0lTTlVMTCBhbmQgVEtfSU4gY29uc3RyYWludHMuICBJ ZiB0aGUKLSAqIGNvbnN0cmFpbnQgaXMgYSBUS19FUSBvciBUS19JUywgdGhlbiB0aGUgY3Vy cmVudCB2YWx1ZSBtaWdodCBiZSBsZWZ0IGluCisgKiBjb25zdHJhaW50IGlzIGEgVEtfRVEs IHRoZW4gdGhlIGN1cnJlbnQgdmFsdWUgbWlnaHQgYmUgbGVmdCBpbgogICogc29tZSBvdGhl ciByZWdpc3RlciBhbmQgaXQgaXMgdGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGNv bXBlbnNhdGUuCiAgKgogICogRm9yIGEgY29uc3RyYWludCBvZiB0aGUgZm9ybSBYPWV4cHIs IHRoZSBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCBpbgpAQCAtNDQ4LDcgKzQ0OCw3IEBAIGNv ZGVFcXVhbGl0eVRlcm0oUGFyc2UgKiBwUGFyc2UsCS8qIFRoZSBwYXJzaW5nIGNvbnRleHQg Ki8KIAogCWFzc2VydChwTGV2ZWwtPnBXTG9vcC0+YUxUZXJtW2lFcV0gPT0gcFRlcm0pOwog CWFzc2VydChpVGFyZ2V0ID4gMCk7Ci0JaWYgKHBYLT5vcCA9PSBUS19FUSB8fCBwWC0+b3Ag PT0gVEtfSVMpIHsKKwlpZiAocFgtPm9wID09IFRLX0VRKSB7CiAJCWlSZWcgPSBzcWxpdGUz RXhwckNvZGVUYXJnZXQocFBhcnNlLCBwWC0+cFJpZ2h0LCBpVGFyZ2V0KTsKIAl9IGVsc2Ug aWYgKHBYLT5vcCA9PSBUS19JU05VTEwpIHsKIAkJaVJlZyA9IGlUYXJnZXQ7CkBAIC03NTgs OCArNzU4LDcgQEAgY29kZUFsbEVxdWFsaXR5VGVybXMoUGFyc2UgKiBwUGFyc2UsCS8qIFBh cnNpbmcgY29udGV4dCAqLwogCQkJfQogCQl9IGVsc2UgaWYgKChwVGVybS0+ZU9wZXJhdG9y ICYgV09fSVNOVUxMKSA9PSAwKSB7CiAJCQlFeHByICpwUmlnaHQgPSBwVGVybS0+cEV4cHIt PnBSaWdodDsKLQkJCWlmICgocFRlcm0tPnd0RmxhZ3MgJiBURVJNX0lTKSA9PSAwCi0JCQkg ICAgJiYgc3FsaXRlM0V4cHJDYW5CZU51bGwocFJpZ2h0KSkgeworCQkJaWYgKHNxbGl0ZTNF eHByQ2FuQmVOdWxsKHBSaWdodCkpIHsKIAkJCQlzcWxpdGUzVmRiZUFkZE9wMih2LCBPUF9J c051bGwsIHJlZ0Jhc2UgKyBqLAogCQkJCQkJICBwTGV2ZWwtPmFkZHJCcmspOwogCQkJCVZk YmVDb3ZlcmFnZSh2KTsKQEAgLTg2Nyw4ICs4NjYsNyBAQCBjb2RlQ3Vyc29ySGludENoZWNr RXhwcihXYWxrZXIgKiBwV2Fsa2VyLCBFeHByICogcEV4cHIpCiBzdGF0aWMgaW50CiBjb2Rl Q3Vyc29ySGludElzT3JGdW5jdGlvbihXYWxrZXIgKiBwV2Fsa2VyLCBFeHByICogcEV4cHIp CiB7Ci0JaWYgKHBFeHByLT5vcCA9PSBUS19JUwotCSAgICB8fCBwRXhwci0+b3AgPT0gVEtf SVNOVUxMIHx8IHBFeHByLT5vcCA9PSBUS19JU05PVAorCWlmIChwRXhwci0+b3AgPT0gVEtf SVNOVUxMCiAJICAgIHx8IHBFeHByLT5vcCA9PSBUS19OT1ROVUxMIHx8IHBFeHByLT5vcCA9 PSBUS19DQVNFKSB7CiAJCXBXYWxrZXItPmVDb2RlID0gMTsKIAl9IGVsc2UgaWYgKHBFeHBy LT5vcCA9PSBUS19GVU5DVElPTikgewpAQCAtMTkxNyw3ICsxOTE1LDcgQEAgc3FsaXRlM1do ZXJlQ29kZU9uZUxvb3BTdGFydChXaGVyZUluZm8gKiBwV0luZm8sCS8qIENvbXBsZXRlIGlu Zm9ybWF0aW9uIGFib3V0IHQKIAkJV2hlcmVUZXJtICpwQWx0OwogCQlpZiAocFRlcm0tPnd0 RmxhZ3MgJiAoVEVSTV9WSVJUVUFMIHwgVEVSTV9DT0RFRCkpCiAJCQljb250aW51ZTsKLQkJ aWYgKChwVGVybS0+ZU9wZXJhdG9yICYgKFdPX0VRIHwgV09fSVMpKSA9PSAwKQorCQlpZiAo KHBUZXJtLT5lT3BlcmF0b3IgJiBXT19FUSkgPT0gMCkKIAkJCWNvbnRpbnVlOwogCQlpZiAo KHBUZXJtLT5lT3BlcmF0b3IgJiBXT19FUVVJVikgPT0gMCkKIAkJCWNvbnRpbnVlOwpAQCAt MTkzMCwxMyArMTkyOCwxMiBAQCBzcWxpdGUzV2hlcmVDb2RlT25lTG9vcFN0YXJ0KFdoZXJl SW5mbyAqIHBXSW5mbywJLyogQ29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdAogCQlhc3Nl cnQoKHBUZXJtLT5wcmVyZXFSaWdodCAmIHBMZXZlbC0+bm90UmVhZHkpICE9IDApOwogCQlw QWx0ID0KIAkJICAgIHNxbGl0ZTNXaGVyZUZpbmRUZXJtKHBXQywgaUN1ciwgcFRlcm0tPnUu bGVmdENvbHVtbiwKLQkJCQkJIG5vdFJlYWR5LCBXT19FUSB8IFdPX0lOIHwgV09fSVMsIDAp OworCQkJCQkgbm90UmVhZHksIFdPX0VRIHwgV09fSU4sIDApOwogCQlpZiAocEFsdCA9PSAw KQogCQkJY29udGludWU7CiAJCWlmIChwQWx0LT53dEZsYWdzICYgKFRFUk1fQ09ERUQpKQog CQkJY29udGludWU7CiAJCXRlc3RjYXNlKHBBbHQtPmVPcGVyYXRvciAmIFdPX0VRKTsKLQkJ dGVzdGNhc2UocEFsdC0+ZU9wZXJhdG9yICYgV09fSVMpOwogCQl0ZXN0Y2FzZShwQWx0LT5l T3BlcmF0b3IgJiBXT19JTik7CiAJCVZkYmVNb2R1bGVDb21tZW50KCh2LCAiYmVnaW4gdHJh bnNpdGl2ZSBjb25zdHJhaW50IikpOwogCQlzRUFsdCA9ICpwQWx0LT5wRXhwcjsKZGlmZiAt LWdpdCBhL3NyYy9ib3gvc3FsL3doZXJlZXhwci5jIGIvc3JjL2JveC9zcWwvd2hlcmVleHBy LmMKaW5kZXggNmI2M2IyYy4uNmI5MWNkYyAxMDA2NDQKLS0tIGEvc3JjL2JveC9zcWwvd2hl cmVleHByLmMKKysrIGIvc3JjL2JveC9zcWwvd2hlcmVleHByLmMKQEAgLTEzNiw4ICsxMzYs NyBAQCBhbGxvd2VkT3AoaW50IG9wKQogCWFzc2VydChUS19MVCA+IFRLX0VRICYmIFRLX0xU IDwgVEtfR0UpOwogCWFzc2VydChUS19MRSA+IFRLX0VRICYmIFRLX0xFIDwgVEtfR0UpOwog CWFzc2VydChUS19HRSA9PSBUS19FUSArIDQpOwotCXJldHVybiBvcCA9PSBUS19JTiB8fCAo b3AgPj0gVEtfRVEgJiYgb3AgPD0gVEtfR0UpIHx8IG9wID09IFRLX0lTTlVMTAotCSAgICB8 fCBvcCA9PSBUS19JUzsKKwlyZXR1cm4gb3AgPT0gVEtfSU4gfHwgKG9wID49IFRLX0VRICYm IG9wIDw9IFRLX0dFKSB8fCBvcCA9PSBUS19JU05VTEw7CiB9CiAKIC8qCkBAIC0yMDQsOCAr MjAzLDYgQEAgb3BlcmF0b3JNYXNrKGludCBvcCkKIAkJYyA9IFdPX0lOOwogCX0gZWxzZSBp ZiAob3AgPT0gVEtfSVNOVUxMKSB7CiAJCWMgPSBXT19JU05VTEw7Ci0JfSBlbHNlIGlmIChv cCA9PSBUS19JUykgewotCQljID0gV09fSVM7CiAJfSBlbHNlIHsKIAkJYXNzZXJ0KChXT19F USA8PCAob3AgLSBUS19FUSkpIDwgMHg3ZmZmKTsKIAkJYyA9ICh1MTYpIChXT19FUSA8PCAo b3AgLSBUS19FUSkpOwpAQCAtMjE3LDcgKzIxNCw2IEBAIG9wZXJhdG9yTWFzayhpbnQgb3Ap CiAJYXNzZXJ0KG9wICE9IFRLX0xFIHx8IGMgPT0gV09fTEUpOwogCWFzc2VydChvcCAhPSBU S19HVCB8fCBjID09IFdPX0dUKTsKIAlhc3NlcnQob3AgIT0gVEtfR0UgfHwgYyA9PSBXT19H RSk7Ci0JYXNzZXJ0KG9wICE9IFRLX0lTIHx8IGMgPT0gV09fSVMpOwogCXJldHVybiBjOwog fQogCkBAIC04MzMsNyArODI5LDcgQEAgdGVybUlzRXF1aXZhbGVuY2UoUGFyc2UgKiBwUGFy c2UsIEV4cHIgKiBwRXhwcikKIAljb25zdCBjaGFyICp6Q29sbDEsICp6Q29sbDI7CiAJaWYg KCFPcHRpbWl6YXRpb25FbmFibGVkKHBQYXJzZS0+ZGIsIFNRTElURV9UcmFuc2l0aXZlKSkK IAkJcmV0dXJuIDA7Ci0JaWYgKHBFeHByLT5vcCAhPSBUS19FUSAmJiBwRXhwci0+b3AgIT0g VEtfSVMpCisJaWYgKHBFeHByLT5vcCAhPSBUS19FUSkKIAkJcmV0dXJuIDA7CiAJaWYgKEV4 cHJIYXNQcm9wZXJ0eShwRXhwciwgRVBfRnJvbUpvaW4pKQogCQlyZXR1cm4gMDsKQEAgLTky MCw5ICs5MTYsOSBAQCBleHByTWlnaHRCZUluZGV4ZWQoU3JjTGlzdCAqIHBGcm9tLAkvKiBU aGUgRlJPTSBjbGF1c2UgKi8KIAkgKiBvbiB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgdmVj dG9yLgogCSAqLwogCWFzc2VydChUS19HVCArIDEgPT0gVEtfTEUgJiYgVEtfR1QgKyAyID09 IFRLX0xUICYmIFRLX0dUICsgMyA9PSBUS19HRSk7Ci0JYXNzZXJ0KFRLX0lTIDwgVEtfR0Ug JiYgVEtfSVNOVUxMIDwgVEtfR0UgJiYgVEtfSU4gPCBUS19HRSk7Ci0JYXNzZXJ0KG9wIDw9 IFRLX0dFKTsKLQlpZiAocEV4cHItPm9wID09IFRLX1ZFQ1RPUiAmJiAob3AgPj0gVEtfR1Qg JiYgQUxXQVlTKG9wIDw9IFRLX0dFKSkpIHsKKwlhc3NlcnQoVEtfSU4gPCBUS19HRSk7CisJ YXNzZXJ0KG9wIDw9IFRLX0dFIHx8IG9wID09IFRLX0lTTlVMTCB8fCBvcCA9PSBUS19OT1RO VUxMKTsKKwlpZiAocEV4cHItPm9wID09IFRLX1ZFQ1RPUiAmJiAob3AgPj0gVEtfR1QgJiYg b3AgPD0gVEtfR0UpKSB7CiAJCXBFeHByID0gcEV4cHItPngucExpc3QtPmFbMF0ucEV4cHI7 CiAJfQogCkBAIC0xMDUxLDggKzEwNDcsNiBAQCBleHByQW5hbHl6ZShTcmNMaXN0ICogcFNy YywJLyogdGhlIEZST00gY2xhdXNlICovCiAJCQlwVGVybS0+dS5sZWZ0Q29sdW1uID0gaUNv bHVtbjsKIAkJCXBUZXJtLT5lT3BlcmF0b3IgPSBvcGVyYXRvck1hc2sob3ApICYgb3BNYXNr OwogCQl9Ci0JCWlmIChvcCA9PSBUS19JUykKLQkJCXBUZXJtLT53dEZsYWdzIHw9IFRFUk1f SVM7CiAJCWlmIChwUmlnaHQKIAkJICAgICYmIGV4cHJNaWdodEJlSW5kZXhlZChwU3JjLCBv cCwgcFRlcm0tPnByZXJlcVJpZ2h0LCBwUmlnaHQsCiAJCQkJCSAgJmlDdXIsICZpQ29sdW1u KQpAQCAtMTA3Niw4ICsxMDcwLDYgQEAgZXhwckFuYWx5emUoU3JjTGlzdCAqIHBTcmMsCS8q IHRoZSBGUk9NIGNsYXVzZSAqLwogCQkJCQlyZXR1cm47CiAJCQkJcE5ldyA9ICZwV0MtPmFb aWR4TmV3XTsKIAkJCQltYXJrVGVybUFzQ2hpbGQocFdDLCBpZHhOZXcsIGlkeFRlcm0pOwot CQkJCWlmIChvcCA9PSBUS19JUykKLQkJCQkJcE5ldy0+d3RGbGFncyB8PSBURVJNX0lTOwog CQkJCXBUZXJtID0gJnBXQy0+YVtpZHhUZXJtXTsKIAkJCQlwVGVybS0+d3RGbGFncyB8PSBU RVJNX0NPUElFRDsKIApAQCAtMTI1Miw3ICsxMjQ0LDcgQEAgZXhwckFuYWx5emUoU3JjTGlz dCAqIHBTcmMsCS8qIHRoZSBGUk9NIGNsYXVzZSAqLwogCSAqIFRoaXMgaXMgb25seSByZXF1 aXJlZCBpZiBhdCBsZWFzdCBvbmUgc2lkZSBvZiB0aGUgY29tcGFyaXNvbiBvcGVyYXRpb24K IAkgKiBpcyBub3QgYSBzdWItc2VsZWN0LgogCSAqLwotCWlmIChwV0MtPm9wID09IFRLX0FO RCAmJiAocEV4cHItPm9wID09IFRLX0VRIHx8IHBFeHByLT5vcCA9PSBUS19JUykKKwlpZiAo cFdDLT5vcCA9PSBUS19BTkQgJiYgcEV4cHItPm9wID09IFRLX0VRCiAJICAgICYmIHNxbGl0 ZTNFeHBySXNWZWN0b3IocEV4cHItPnBMZWZ0KQogCSAgICAmJiAoKHBFeHByLT5wTGVmdC0+ ZmxhZ3MgJiBFUF94SXNTZWxlY3QpID09IDAKIAkJfHwgKHBFeHByLT5wUmlnaHQtPmZsYWdz ICYgRVBfeElzU2VsZWN0KSA9PSAwKSkgewpkaWZmIC0tZ2l0IGEvdGVzdC9zcWwtdGFwL2Fu YWx5emUxLnRlc3QubHVhIGIvdGVzdC9zcWwtdGFwL2FuYWx5emUxLnRlc3QubHVhCmluZGV4 IDVkOTFkOTYuLjMwOGY2YjkgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC9hbmFseXplMS50 ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvYW5hbHl6ZTEudGVzdC5sdWEKQEAgLTY1LDcg KzY1LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgK ICAgICAiYW5hbHl6ZS0xLjciLAogICAgIFtbCi0gICAgICAgIFNFTEVDVCAqIEZST00gIl9z cWxfc3RhdDEiIFdIRVJFICJpZHgiIE5PVCBOVUxMCisgICAgICAgIFNFTEVDVCAqIEZST00g Il9zcWxfc3RhdDEiIFdIRVJFICJpZHgiIElTIE5PVCBOVUxMCiAgICAgXV0sIHsKICAgICAg ICAgLS0gPGFuYWx5emUtMS43PgogICAgICAgICAtLSA8L2FuYWx5emUtMS43PgpAQCAtODQs NyArODQsNyBAQCB0ZXN0OmRvX2NhdGNoc3FsX3Rlc3QoCiB0ZXN0OmRvX2V4ZWNzcWxfdGVz dCgKICAgICAiYW5hbHl6ZS0xLjkiLAogICAgIFtbCi0gICAgICAgIFNFTEVDVCAqIEZST00g Il9zcWxfc3RhdDEiIFdIRVJFICJpZHgiIE5PVCBOVUxMCisgICAgICAgIFNFTEVDVCAqIEZS T00gIl9zcWxfc3RhdDEiIFdIRVJFICJpZHgiIElTIE5PVCBOVUxMCiAgICAgXV0sIHsKICAg ICAgICAgLS0gPGFuYWx5emUtMS45PgogICAgICAgICAtLSA8L2FuYWx5emUtMS45PgpkaWZm IC0tZ2l0IGEvdGVzdC9zcWwtdGFwL2NzZS50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC9jc2Uu dGVzdC5sdWEKaW5kZXggMDRlZjY3My4uMzU0NGVmNiAxMDA3NTUKLS0tIGEvdGVzdC9zcWwt dGFwL2NzZS50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvY3NlLnRlc3QubHVhCkBAIC00 Miw3ICs0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAogICAg ICJjc2UtMS4yIiwKICAgICBbWwotICAgICAgICBTRUxFQ1QgYiwgYiViLCBiPT1iLCBiIT1i LCBiPGIsIGI8PWIsIGIgSVMgTlVMTCwgYiBOT1QgTlVMTCwgYiBGUk9NIHQxCisgICAgICAg IFNFTEVDVCBiLCBiJWIsIGI9PWIsIGIhPWIsIGI8YiwgYjw9YiwgYiBJUyBOVUxMLCBiIElT IE5PVCBOVUxMLCBiIEZST00gdDEKICAgICBdXSwgewogICAgICAgICAtLSA8Y3NlLTEuMj4K ICAgICAgICAgMTEsIDAsIDEsIDAsIDAsIDEsIDAsIDEsIDExLCAyMSwgMCwgMSwgMCwgMCwg MSwgMCwgMSwgMjEKQEAgLTE0Miw3ICsxNDIsNyBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgK IHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAogICAgICJjc2UtMS44IiwKICAgICBbWwotICAgICAg ICBTRUxFQ1QgYSwgYSVhLCBhPT1hLCBhIT1hLCBhPGEsIGE8PWEsIGEgSVMgTlVMTCwgYSBO T1QgTlVMTCwgYSBGUk9NIHQxCisgICAgICAgIFNFTEVDVCBhLCBhJWEsIGE9PWEsIGEhPWEs IGE8YSwgYTw9YSwgYSBJUyBOVUxMLCBhIElTIE5PVCBOVUxMLCBhIEZST00gdDEKICAgICBd XSwgewogICAgICAgICAtLSA8Y3NlLTEuOD4KICAgICAgICAgMSwgMCwgMSwgMCwgMCwgMSwg MCwgMSwgMSwgMiwgMCwgMSwgMCwgMCwgMSwgMCwgMSwgMgpkaWZmIC0tZ2l0IGEvdGVzdC9z cWwtdGFwL2VfZXhwci50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC9lX2V4cHIudGVzdC5sdWEK aW5kZXggZDBmNjg5NS4uMDk2YzU2ZCAxMDA3NTUKLS0tIGEvdGVzdC9zcWwtdGFwL2VfZXhw ci50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvZV9leHByLnRlc3QubHVhCkBAIC0xLDYg KzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgdGFyYW50b29sCiB0ZXN0ID0gcmVxdWlyZSgic3Fs dGVzdGVyIikKLXRlc3Q6cGxhbigxNDc1MCkKK3Rlc3Q6cGxhbigxMjQzNikKIAogLS0hLi90 Y2x0ZXN0cnVubmVyLmx1YQogLS0gMjAxMCBKdWx5IDE2CkBAIC05Niw3ICs5Niw3IEBAIG9w ZXJhdGlvbnMgPSB7CiAgICAgeyIrIiwgIi0ifSwKICAgICB7Ijw8IiwgIj4+IiwgIiYiLCAi fCJ9LAogICAgIHsiPCIsICI8PSIsICI+IiwgIj49In0sCi0gICAgeyI9IiwgIj09IiwgIiE9 IiwgIjw+IiwgIklTIiwgIklTIE5PVCIsICJMSUtFIiwgIkdMT0IifSwgLS0iTUFUQ0giLCAi UkVHRVhQIn0sCisgICAgeyI9IiwgIj09IiwgIiE9IiwgIjw+IiwgIkxJS0UiLCAiR0xPQiJ9 LCAtLSJNQVRDSCIsICJSRUdFWFAifSwKICAgICB7IkFORCJ9LAogICAgIHsiT1IifSwKIH0K QEAgLTUxMywyNiArNTEzLDYgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiAgICAgfSkKIAog dGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci04LjEuMyIsCi0gICAgW1sKLSAg ICAgICAgU0VMRUNUIE5VTEwgSVMgICAgICdhYicKLSAgICBdXSwgewotICAgICAgICAtLSA8 ZV9leHByLTguMS4zPgotICAgICAgICAwCi0gICAgICAgIC0tIDwvZV9leHByLTguMS4zPgot ICAgIH0pCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAgICJlX2V4cHItOC4xLjQiLAot ICAgIFtbCi0gICAgICAgIFNFTEVDVCAnYWInIElTICAgICAnYWInCi0gICAgXV0sIHsKLSAg ICAgICAgLS0gPGVfZXhwci04LjEuND4KLSAgICAgICAgMQotICAgICAgICAtLSA8L2VfZXhw ci04LjEuND4KLSAgICB9KQotCi10ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICAiZV9leHBy LTguMS41IiwKICAgICBbWwogICAgICAgICBTRUxFQ1QgTlVMTCA9PSAgICAgTlVMTApAQCAt NTkzLDI2ICs1NzMsNiBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICB9KQogCiB0ZXN0 OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAiZV9leHByLTguMS4xMSIsCi0gICAgW1sKLSAgICAg ICAgU0VMRUNUIE5VTEwgSVMgTk9UICdhYicKLSAgICBdXSwgewotICAgICAgICAtLSA8ZV9l eHByLTguMS4xMT4KLSAgICAgICAgMQotICAgICAgICAtLSA8L2VfZXhwci04LjEuMTE+Ci0g ICAgfSkKLQotdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci04LjEuMTIiLAot ICAgIFtbCi0gICAgICAgIFNFTEVDVCAnYWInIElTIE5PVCAnYWInCi0gICAgXV0sIHsKLSAg ICAgICAgLS0gPGVfZXhwci04LjEuMTI+Ci0gICAgICAgIDAKLSAgICAgICAgLS0gPC9lX2V4 cHItOC4xLjEyPgotICAgIH0pCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAogICAgICJlX2V4 cHItOC4xLjEzIiwKICAgICBbWwogICAgICAgICBTRUxFQ1QgTlVMTCAhPSAgICAgTlVMTApA QCAtNjUyLDMxICs2MTIsNiBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICAgICAgLS0g PC9lX2V4cHItOC4xLjE2PgogICAgIH0pCiAKLWZvciBuMSwgcmhzIGluIGlwYWlycyhsaXRl cmFscykgZG8KLSAgICBmb3IgbjIsIGxocyBpbiBpcGFpcnMobGl0ZXJhbHMpIGRvCi0gICAg ICAgIGxvY2FsIGVxID0gIiIKLSAgICAgICAgaWYgKChyaHMgfj0gIk5VTEwiKSBhbmQgKGxo cyB+PSAiTlVMTCIpKSB0aGVuCi0gICAgICAgICAgICBlcSA9IHRlc3Q6ZXhlY3NxbChzdHJp bmcuZm9ybWF0KCJTRUxFQ1QgJXMgPSAlcywgJXMgIT0gJXMiLCBsaHMsIHJocywgbGhzLCBy aHMpKQotICAgICAgICBlbHNlCi0gICAgICAgICAgICBlcSA9IHsgKChsaHMgPT0gIk5VTEwi KSBhbmQgKHJocyA9PSAiTlVMTCIpKSBhbmQgMSBvciAwLCAoKGxocyB+PSAiTlVMTCIpIG9y IChyaHMgfj0gIk5VTEwiKSkgYW5kIDEgb3IgMH0KLSAgICAgICAgZW5kCi0gICAgICAgIGxv Y2FsIGxhYmVsID0gc3RyaW5nLmZvcm1hdCgiZV9leHByLTguMi4lcy4lcyIsIG4xLCBuMikK LSAgICAgICAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgICAgICAgICBsYWJlbC4uIi4x IiwKLSAgICAgICAgICAgIHN0cmluZy5mb3JtYXQoW1sKLSAgICAgICAgICAgICAgICBTRUxF Q1QgJXMgSVMgJXMsICVzIElTIE5PVCAlcwotICAgICAgICAgICAgXV0sIGxocywgcmhzLCBs aHMsIHJocyksIGVxKQotCi0gICAgICAgIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAgICAg ICAgICAgbGFiZWwuLiIuMiIsCi0gICAgICAgICAgICBzdHJpbmcuZm9ybWF0KFtbCi0gICAg ICAgICAgICAgICAgU0VMRUNUICglcyBJUyAlcykgSVMgTlVMTCwgKCVzIElTIE5PVCAlcykg SVMgTlVMTAotICAgICAgICAgICAgXV0sIGxocywgcmhzLCBsaHMsIHJocyksIHsKLSAgICAg ICAgICAgICAgICAwLCAwCi0gICAgICAgICAgICB9KQotCi0gICAgZW5kCi1lbmQKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogLS0gUnVuIHNvbWUgdGVzdHMgb24gdGhlIENPTExBVEUgInVu YXJ5IHBvc3RmaXggb3BlcmF0b3IiLgogLS0KQEAgLTgyOSwyOCArNzY0LDkgQEAgdGVzdDpk b19leGVjc3FsX3Rlc3QoCiAgICAgICAgIC0tIDwvZV9leHByLTkuMTM+CiAgICAgfSkKIAot dGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci05LjE0IiwKLSAgICBbWwotICAg ICAgICBTRUxFQ1QgICdhYmNkJyBJUyAnQUJDRCcgIENPTExBVEUgInVuaWNvZGVfY2kiCi0g ICAgXV0sIHsKLSAgICAgICAgLS0gPGVfZXhwci05LjE0PgotICAgICAgICAxCi0gICAgICAg IC0tIDwvZV9leHByLTkuMTQ+Ci0gICAgfSkKLQotdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0g ICAgImVfZXhwci05LjE1IiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgKCdhYmNkJyBJUyAn QUJDRCcpIENPTExBVEUgInVuaWNvZGVfY2kiCi0gICAgXV0sIHsKLSAgICAgICAgLS0gPGVf ZXhwci05LjE1PgotICAgICAgICAwCi0gICAgICAgIC0tIDwvZV9leHByLTkuMTU+Ci0gICAg fSkKIAogdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci05LjE2IiwKKyAgICAi ZV9leHByLTkuMTQiLAogICAgIFtbCiAgICAgICAgIFNFTEVDVCAgJ2FiY2QnICE9ICdBQkNE JyAgICAgIENPTExBVEUgInVuaWNvZGVfY2kiCiAgICAgXV0sIHsKQEAgLTg2MCw3ICs3NzYs NyBAQCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICB9KQogCiB0ZXN0OmRvX2V4ZWNzcWxf dGVzdCgKLSAgICAiZV9leHByLTkuMTciLAorICAgICJlX2V4cHItOS4xNSIsCiAgICAgW1sK ICAgICAgICAgU0VMRUNUICgnYWJjZCcgIT0gJ0FCQ0QnKSAgICAgQ09MTEFURSAidW5pY29k ZV9jaSIKICAgICBdXSwgewpAQCAtODcwLDcgKzc4Niw3IEBAIHRlc3Q6ZG9fZXhlY3NxbF90 ZXN0KAogICAgIH0pCiAKIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAgICJlX2V4cHItOS4x OCIsCisgICAgImVfZXhwci05LjE2IiwKICAgICBbWwogICAgICAgICBTRUxFQ1QgICdhYmNk JyA8PiAnQUJDRCcgICAgICBDT0xMQVRFICJ1bmljb2RlX2NpIgogICAgIF1dLCB7CkBAIC04 ODAsNyArNzk2LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiAgICAgfSkKIAogdGVzdDpk b19leGVjc3FsX3Rlc3QoCi0gICAgImVfZXhwci05LjE5IiwKKyAgICAiZV9leHByLTkuMTci LAogICAgIFtbCiAgICAgICAgIFNFTEVDVCAoJ2FiY2QnIDw+ICdBQkNEJykgICAgIENPTExB VEUgInVuaWNvZGVfY2kiCiAgICAgXV0sIHsKQEAgLTg5MCwyNyArODA2LDcgQEAgdGVzdDpk b19leGVjc3FsX3Rlc3QoCiAgICAgfSkKIAogdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAg ImVfZXhwci05LjIwIiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgICdhYmNkJyBJUyBOT1Qg J0FCQ0QnICBDT0xMQVRFICJ1bmljb2RlX2NpIgotICAgIF1dLCB7Ci0gICAgICAgIC0tIDxl X2V4cHItOS4yMD4KLSAgICAgICAgMAotICAgICAgICAtLSA8L2VfZXhwci05LjIwPgotICAg IH0pCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAgICJlX2V4cHItOS4yMSIsCi0gICAg W1sKLSAgICAgICAgU0VMRUNUICgnYWJjZCcgSVMgTk9UICdBQkNEJykgQ09MTEFURSAidW5p Y29kZV9jaSIKLSAgICBdXSwgewotICAgICAgICAtLSA8ZV9leHByLTkuMjE+Ci0gICAgICAg IDEKLSAgICAgICAgLS0gPC9lX2V4cHItOS4yMT4KLSAgICB9KQotCi10ZXN0OmRvX2V4ZWNz cWxfdGVzdCgKLSAgICAiZV9leHByLTkuMjIiLAorICAgICJlX2V4cHItOS4xOCIsCiAgICAg W1sKICAgICAgICAgU0VMRUNUICdiYmInIEJFVFdFRU4gJ0FBQScgQU5EICdDQ0MnIENPTExB VEUgInVuaWNvZGVfY2kiCiAgICAgXV0sIHsKQEAgLTkyMCw3ICs4MTYsNyBAQCB0ZXN0OmRv X2V4ZWNzcWxfdGVzdCgKICAgICB9KQogCiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAi ZV9leHByLTkuMjMiLAorICAgICJlX2V4cHItOS4xOSIsCiAgICAgW1sKICAgICAgICAgU0VM RUNUICgnYmJiJyBCRVRXRUVOICdBQUEnIEFORCAnQ0NDJykgQ09MTEFURSAidW5pY29kZV9j aSIKICAgICBdXSwgewpAQCAtMTUxMiwxMjggKzE0MDgsOTAgQEAgbG9jYWwgdGVzdF9jYXNl czEyID17CiAgICAgezE1LCAiY25hbWUifSwKICAgICB7MTYsICJ0YmxuYW1lLmNuYW1lIn0s CiAKLSAgICB7MTgsICIrIEVYUFIifSwKLSAgICB7MTksICItIEVYUFIifSwKLSAgICB7MjAs ICJOT1QgRVhQUiJ9LAotICAgIHsyMSwgIn4gRVhQUiJ9LAotCi0gICAgezIyLCAiRVhQUjEg fHwgRVhQUjIifSwKLSAgICB7MjMsICJFWFBSMSAqIEVYUFIyIn0sCi0gICAgezI0LCAiRVhQ UjEgLyBFWFBSMiJ9LAotICAgIHsyNSwgIkVYUFIxICUgRVhQUjIifSwKLSAgICB7MjYsICJF WFBSMSArIEVYUFIyIn0sCi0gICAgezI3LCAiRVhQUjEgLSBFWFBSMiJ9LAotICAgIHsyOCwg IkVYUFIxIDw8IEVYUFIyIn0sCi0gICAgezI5LCAiRVhQUjEgPj4gRVhQUjIifSwKLSAgICB7 MzAsICJFWFBSMSAmIEVYUFIyIn0sCi0KLSAgICB7MzEsICJFWFBSMSB8IEVYUFIyIn0sCi0g ICAgezMyLCAiRVhQUjEgPCBFWFBSMiJ9LAotICAgIHszMywgIkVYUFIxIDw9IEVYUFIyIn0s Ci0gICAgezM0LCAiRVhQUjEgPiBFWFBSMiJ9LAotICAgIHszNSwgIkVYUFIxID49IEVYUFIy In0sCi0gICAgezM2LCAiRVhQUjEgPSBFWFBSMiJ9LAotICAgIHszNywgIkVYUFIxID09IEVY UFIyIn0sCi0gICAgezM4LCAiRVhQUjEgIT0gRVhQUjIifSwKLSAgICB7MzksICJFWFBSMSA8 PiBFWFBSMiJ9LAotICAgIHs0MCwgIkVYUFIxIElTIEVYUFIyIn0sCi0gICAgezQxLCAiRVhQ UjEgSVMgTk9UIEVYUFIyIn0sCi0gICAgezQyLCAiRVhQUjEgQU5EIEVYUFIyIn0sCi0gICAg ezQzLCAiRVhQUjEgT1IgRVhQUjIifSwKLQotICAgIHs0NCwgImNvdW50KCopIn0sCi0gICAg ezQ1LCAiY291bnQoRElTVElOQ1QgRVhQUikifSwKLSAgICB7NDYsICJzdWJzdHIoRVhQUiwg MTAsIDIwKSJ9LAotICAgIHs0NywgImNoYW5nZXMoKSJ9LAotCi0gICAgezQ4LCAiKCBFWFBS ICkifSwKLQotICAgIHs0OSwgIkNBU1QgKCBFWFBSIEFTIGludGVnZXIgKSJ9LAotICAgIHs1 MCwgIkNBU1QgKCBFWFBSIEFTICdhYmNkJyApIn0sCi0gICAgezUxLCAiQ0FTVCAoIEVYUFIg QVMgJ2FiJCAkY2QnICkifSwKLQotICAgIHs1MiwgIkVYUFIgQ09MTEFURSBcInVuaWNvZGVf Y2lcIiJ9LAotICAgIHs1MywgIkVYUFIgQ09MTEFURSBiaW5hcnkifSwKLQotICAgIHs1NCwg IkVYUFIxIExJS0UgRVhQUjIifSwKLSAgICB7NTUsICJFWFBSMSBMSUtFIEVYUFIyIEVTQ0FQ RSBFWFBSIn0sCi0gICAgezU2LCAiRVhQUjEgR0xPQiBFWFBSMiJ9LAotICAgIHs1NywgIkVY UFIxIEdMT0IgRVhQUjIgRVNDQVBFIEVYUFIifSwKLSAgICB7NTgsICJFWFBSMSBSRUdFWFAg RVhQUjIifSwKLSAgICB7NTksICJFWFBSMSBSRUdFWFAgRVhQUjIgRVNDQVBFIEVYUFIifSwK LSAgICB7NjAsICJFWFBSMSBNQVRDSCBFWFBSMiJ9LAotICAgIHs2MSwgIkVYUFIxIE1BVENI IEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0gICAgezYyLCAiRVhQUjEgTk9UIExJS0UgRVhQUjIi fSwKLSAgICB7NjMsICJFWFBSMSBOT1QgTElLRSBFWFBSMiBFU0NBUEUgRVhQUiJ9LAotICAg IHs2NCwgIkVYUFIxIE5PVCBHTE9CIEVYUFIyIn0sCi0gICAgezY1LCAiRVhQUjEgTk9UIEdM T0IgRVhQUjIgRVNDQVBFIEVYUFIifSwKLSAgICB7NjYsICJFWFBSMSBOT1QgUkVHRVhQIEVY UFIyIn0sCi0gICAgezY3LCAiRVhQUjEgTk9UIFJFR0VYUCBFWFBSMiBFU0NBUEUgRVhQUiJ9 LAotICAgIHs2OCwgIkVYUFIxIE5PVCBNQVRDSCBFWFBSMiJ9LAotICAgIHs2OSwgIkVYUFIx IE5PVCBNQVRDSCBFWFBSMiBFU0NBUEUgRVhQUiJ9LAotCi0gICAgezcwLCAiRVhQUiBJU05V TEwifSwKLSAgICB7NzEsICJFWFBSIE5PVE5VTEwifSwKLSAgICB7NzIsICJFWFBSIE5PVCBO VUxMIn0sCi0KLSAgICB7NzMsICJFWFBSMSBJUyBFWFBSMiJ9LAotICAgIHs3NCwgIkVYUFIx IElTIE5PVCBFWFBSMiJ9LAotCi0gICAgezc1LCAiRVhQUiBOT1QgQkVUV0VFTiBFWFBSMSBB TkQgRVhQUjIifSwKLSAgICB7NzYsICJFWFBSIEJFVFdFRU4gRVhQUjEgQU5EIEVYUFIyIn0s Ci0KLSAgICB7NzcsICJFWFBSIE5PVCBJTiAoU0VMRUNUIGNuYW1lIEZST00gdGJsbmFtZSki fSwKLSAgICB7NzgsICJFWFBSIE5PVCBJTiAoMSkifSwKLSAgICB7NzksICJFWFBSIE5PVCBJ TiAoMSwgMiwgMykifSwKLSAgICB7ODAsICJFWFBSIE5PVCBJTiB0YmxuYW1lIn0sCi0gICAg ezgyLCAiRVhQUiBJTiAoU0VMRUNUIGNuYW1lIEZST00gdGJsbmFtZSkifSwKLSAgICB7ODMs ICJFWFBSIElOICgxKSJ9LAotICAgIHs4NCwgIkVYUFIgSU4gKDEsIDIsIDMpIn0sCi0gICAg ezg1LCAiRVhQUiBJTiB0YmxuYW1lIn0sCi0gICAgezU3LCAiRVhQUjEgR0xPQiBFWFBSMiBF U0NBUEUgRVhQUiJ9LAotICAgIHs1OCwgIkVYUFIxIFJFR0VYUCBFWFBSMiJ9LAotICAgIHs1 OSwgIkVYUFIxIFJFR0VYUCBFWFBSMiBFU0NBUEUgRVhQUiJ9LAotICAgIHs2MCwgIkVYUFIx IE1BVENIIEVYUFIyIn0sCi0gICAgezYxLCAiRVhQUjEgTUFUQ0ggRVhQUjIgRVNDQVBFIEVY UFIifSwKLSAgICB7NjIsICJFWFBSMSBOT1QgTElLRSBFWFBSMiJ9LAotICAgIHs2MywgIkVY UFIxIE5PVCBMSUtFIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0gICAgezY0LCAiRVhQUjEgTk9U IEdMT0IgRVhQUjIifSwKLSAgICB7NjUsICJFWFBSMSBOT1QgR0xPQiBFWFBSMiBFU0NBUEUg RVhQUiJ9LAotICAgIHs2NiwgIkVYUFIxIE5PVCBSRUdFWFAgRVhQUjIifSwKLSAgICB7Njcs ICJFWFBSMSBOT1QgUkVHRVhQIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCi0gICAgezY4LCAiRVhQ UjEgTk9UIE1BVENIIEVYUFIyIn0sCi0gICAgezY5LCAiRVhQUjEgTk9UIE1BVENIIEVYUFIy IEVTQ0FQRSBFWFBSIn0sCi0KLSAgICB7NzAsICJFWFBSIElTTlVMTCJ9LAotICAgIHs3MSwg IkVYUFIgTk9UTlVMTCJ9LAotICAgIHs3MiwgIkVYUFIgTk9UIE5VTEwifSwKLQotICAgIHs3 MywgIkVYUFIxIElTIEVYUFIyIn0sCi0gICAgezc0LCAiRVhQUjEgSVMgTk9UIEVYUFIyIn0s Ci0KLSAgICB7NzUsICJFWFBSIE5PVCBCRVRXRUVOIEVYUFIxIEFORCBFWFBSMiJ9LAotICAg IHs3NiwgIkVYUFIgQkVUV0VFTiBFWFBSMSBBTkQgRVhQUjIifSwKLQotICAgIHs3NywgIkVY UFIgTk9UIElOIChTRUxFQ1QgY25hbWUgRlJPTSB0YmxuYW1lKSJ9LAotICAgIHs3OCwgIkVY UFIgTk9UIElOICgxKSJ9LAotICAgIHs3OSwgIkVYUFIgTk9UIElOICgxLCAyLCAzKSJ9LAot ICAgIHs4MCwgIkVYUFIgTk9UIElOIHRibG5hbWUifSwKLSAgICB7ODIsICJFWFBSIElOIChT RUxFQ1QgY25hbWUgRlJPTSB0YmxuYW1lKSJ9LAotICAgIHs4MywgIkVYUFIgSU4gKDEpIn0s Ci0gICAgezg0LCAiRVhQUiBJTiAoMSwgMiwgMykifSwKLSAgICB7ODUsICJFWFBSIElOIHRi bG5hbWUifSwKLQotICAgIHs4NywgIkVYSVNUUyAoU0VMRUNUIGNuYW1lIEZST00gdGJsbmFt ZSkifSwKLSAgICB7ODgsICJOT1QgRVhJU1RTIChTRUxFQ1QgY25hbWUgRlJPTSB0YmxuYW1l KSJ9LAotCi0gICAgezg5LCAiQ0FTRSBFWFBSIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBFTFNF IEVYUFIgRU5EIn0sCi0gICAgezkwLCAiQ0FTRSBFWFBSIFdIRU4gRVhQUjEgVEhFTiBFWFBS MiBFTkQifSwKLSAgICB7OTEsICJDQVNFIEVYUFIgV0hFTiBFWFBSMSBUSEVOIEVYUFIyIFdI RU4gRVhQUiBUSEVOIEVYUFIxIEVMU0UgRVhQUjIgRU5EIn0sCi0gICAgezkyLCAiQ0FTRSBF WFBSIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBXSEVOIEVYUFIgVEhFTiBFWFBSMSBFTkQifSwK LSAgICB7OTMsICJDQVNFIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBFTFNFIEVYUFIgRU5EIn0s Ci0gICAgezk0LCAiQ0FTRSBXSEVOIEVYUFIxIFRIRU4gRVhQUjIgRU5EIn0sCi0gICAgezk1 LCAiQ0FTRSBXSEVOIEVYUFIxIFRIRU4gRVhQUjIgV0hFTiBFWFBSIFRIRU4gRVhQUjEgRUxT RSBFWFBSMiBFTkQifSwKLSAgICB7OTYsICJDQVNFIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBX SEVOIEVYUFIgVEhFTiBFWFBSMSBFTkQifSwKKyAgICB7MTcsICIrIEVYUFIifSwKKyAgICB7 MTgsICItIEVYUFIifSwKKyAgICB7MTksICJOT1QgRVhQUiJ9LAorICAgIHsyMCwgIn4gRVhQ UiJ9LAorCisgICAgezIxLCAiRVhQUjEgfHwgRVhQUjIifSwKKyAgICB7MjIsICJFWFBSMSAq IEVYUFIyIn0sCisgICAgezIzLCAiRVhQUjEgLyBFWFBSMiJ9LAorICAgIHsyNCwgIkVYUFIx ICUgRVhQUjIifSwKKyAgICB7MjUsICJFWFBSMSArIEVYUFIyIn0sCisgICAgezI2LCAiRVhQ UjEgLSBFWFBSMiJ9LAorICAgIHsyNywgIkVYUFIxIDw8IEVYUFIyIn0sCisgICAgezI4LCAi RVhQUjEgPj4gRVhQUjIifSwKKyAgICB7MjksICJFWFBSMSAmIEVYUFIyIn0sCisKKyAgICB7 MzAsICJFWFBSMSB8IEVYUFIyIn0sCisgICAgezMxLCAiRVhQUjEgPCBFWFBSMiJ9LAorICAg IHszMiwgIkVYUFIxIDw9IEVYUFIyIn0sCisgICAgezMzLCAiRVhQUjEgPiBFWFBSMiJ9LAor ICAgIHszNCwgIkVYUFIxID49IEVYUFIyIn0sCisgICAgezM1LCAiRVhQUjEgPSBFWFBSMiJ9 LAorICAgIHszNiwgIkVYUFIxID09IEVYUFIyIn0sCisgICAgezM3LCAiRVhQUjEgIT0gRVhQ UjIifSwKKyAgICB7MzgsICJFWFBSMSA8PiBFWFBSMiJ9LAorICAgIHszOSwgIkVYUFIxIEFO RCBFWFBSMiJ9LAorICAgIHs0MCwgIkVYUFIxIE9SIEVYUFIyIn0sCisKKyAgICB7NDEsICJj b3VudCgqKSJ9LAorICAgIHs0MiwgImNvdW50KERJU1RJTkNUIEVYUFIpIn0sCisgICAgezQz LCAic3Vic3RyKEVYUFIsIDEwLCAyMCkifSwKKyAgICB7NDQsICJjaGFuZ2VzKCkifSwKKwor ICAgIHs0NSwgIiggRVhQUiApIn0sCisKKyAgICB7NDYsICJDQVNUICggRVhQUiBBUyBpbnRl Z2VyICkifSwKKyAgICB7NDcsICJDQVNUICggRVhQUiBBUyAnYWJjZCcgKSJ9LAorICAgIHs0 OCwgIkNBU1QgKCBFWFBSIEFTICdhYiQgJGNkJyApIn0sCisKKyAgICB7NDksICJFWFBSIENP TExBVEUgXCJ1bmljb2RlX2NpXCIifSwKKyAgICB7NTAsICJFWFBSIENPTExBVEUgYmluYXJ5 In0sCisKKyAgICB7NTEsICJFWFBSMSBMSUtFIEVYUFIyIn0sCisgICAgezUyLCAiRVhQUjEg TElLRSBFWFBSMiBFU0NBUEUgRVhQUiJ9LAorICAgIHs1MywgIkVYUFIxIEdMT0IgRVhQUjIi fSwKKyAgICB7NTQsICJFWFBSMSBHTE9CIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCisgICAgezU1 LCAiRVhQUjEgUkVHRVhQIEVYUFIyIn0sCisgICAgezU2LCAiRVhQUjEgUkVHRVhQIEVYUFIy IEVTQ0FQRSBFWFBSIn0sCisgICAgezU3LCAiRVhQUjEgTUFUQ0ggRVhQUjIifSwKKyAgICB7 NTgsICJFWFBSMSBNQVRDSCBFWFBSMiBFU0NBUEUgRVhQUiJ9LAorICAgIHs1OSwgIkVYUFIx IE5PVCBMSUtFIEVYUFIyIn0sCisgICAgezYwLCAiRVhQUjEgTk9UIExJS0UgRVhQUjIgRVND QVBFIEVYUFIifSwKKyAgICB7NjEsICJFWFBSMSBOT1QgR0xPQiBFWFBSMiJ9LAorICAgIHs2 MiwgIkVYUFIxIE5PVCBHTE9CIEVYUFIyIEVTQ0FQRSBFWFBSIn0sCisgICAgezYzLCAiRVhQ UjEgTk9UIFJFR0VYUCBFWFBSMiJ9LAorICAgIHs2NCwgIkVYUFIxIE5PVCBSRUdFWFAgRVhQ UjIgRVNDQVBFIEVYUFIifSwKKyAgICB7NjUsICJFWFBSMSBOT1QgTUFUQ0ggRVhQUjIifSwK KyAgICB7NjYsICJFWFBSMSBOT1QgTUFUQ0ggRVhQUjIgRVNDQVBFIEVYUFIifSwKKworICAg IHs2NywgIkVYUFIgSVMgTlVMTCJ9LAorICAgIHs2OCwgIkVYUFIgSVMgTk9UIE5VTEwifSwK KworICAgIHs2OSwgIkVYUFIgTk9UIEJFVFdFRU4gRVhQUjEgQU5EIEVYUFIyIn0sCisgICAg ezcwLCAiRVhQUiBCRVRXRUVOIEVYUFIxIEFORCBFWFBSMiJ9LAorCisgICAgezcxLCAiRVhQ UiBOT1QgSU4gKFNFTEVDVCBjbmFtZSBGUk9NIHRibG5hbWUpIn0sCisgICAgezcyLCAiRVhQ UiBOT1QgSU4gKDEpIn0sCisgICAgezczLCAiRVhQUiBOT1QgSU4gKDEsIDIsIDMpIn0sCisg ICAgezc0LCAiRVhQUiBOT1QgSU4gdGJsbmFtZSJ9LAorICAgIHs3NSwgIkVYUFIgSU4gKFNF TEVDVCBjbmFtZSBGUk9NIHRibG5hbWUpIn0sCisgICAgezc2LCAiRVhQUiBJTiAoMSkifSwK KyAgICB7NzcsICJFWFBSIElOICgxLCAyLCAzKSJ9LAorICAgIHs3OCwgIkVYUFIgSU4gdGJs bmFtZSJ9LAorCisgICAgezc5LCAiRVhJU1RTIChTRUxFQ1QgY25hbWUgRlJPTSB0YmxuYW1l KSJ9LAorICAgIHs4MCwgIk5PVCBFWElTVFMgKFNFTEVDVCBjbmFtZSBGUk9NIHRibG5hbWUp In0sCisKKyAgICB7ODEsICJDQVNFIEVYUFIgV0hFTiBFWFBSMSBUSEVOIEVYUFIyIEVMU0Ug RVhQUiBFTkQifSwKKyAgICB7ODIsICJDQVNFIEVYUFIgV0hFTiBFWFBSMSBUSEVOIEVYUFIy IEVORCJ9LAorICAgIHs4MywgIkNBU0UgRVhQUiBXSEVOIEVYUFIxIFRIRU4gRVhQUjIgV0hF TiBFWFBSIFRIRU4gRVhQUjEgRUxTRSBFWFBSMiBFTkQifSwKKyAgICB7ODQsICJDQVNFIEVY UFIgV0hFTiBFWFBSMSBUSEVOIEVYUFIyIFdIRU4gRVhQUiBUSEVOIEVYUFIxIEVORCJ9LAor ICAgIHs4NSwgIkNBU0UgV0hFTiBFWFBSMSBUSEVOIEVYUFIyIEVMU0UgRVhQUiBFTkQifSwK KyAgICB7ODYsICJDQVNFIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBFTkQifSwKKyAgICB7ODcs ICJDQVNFIFdIRU4gRVhQUjEgVEhFTiBFWFBSMiBXSEVOIEVYUFIgVEhFTiBFWFBSMSBFTFNF IEVYUFIyIEVORCJ9LAorICAgIHs4OCwgIkNBU0UgV0hFTiBFWFBSMSBUSEVOIEVYUFIyIFdI RU4gRVhQUiBUSEVOIEVYUFIxIEVORCJ9LAogfQogCiBmb3IgXywgdmFsIGluIGlwYWlycyh0 ZXN0X2Nhc2VzMTIpIGRvCmRpZmYgLS1naXQgYS90ZXN0L3NxbC10YXAvbHVhX3NxbC50ZXN0 Lmx1YSBiL3Rlc3Qvc3FsLXRhcC9sdWFfc3FsLnRlc3QubHVhCmluZGV4IDE0NDRkMjEuLjM5 NDkyMmEgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC9sdWFfc3FsLnRlc3QubHVhCisrKyBi L3Rlc3Qvc3FsLXRhcC9sdWFfc3FsLnRlc3QubHVhCkBAIC0xLDcgKzEsNyBAQAogIyEvdXNy L2Jpbi9lbnYgdGFyYW50b29sCiB0ZXN0ID0gcmVxdWlyZSgic3FsdGVzdGVyIikKIE5VTEwg PSByZXF1aXJlKCdtc2dwYWNrJykuTlVMTAotdGVzdDpwbGFuKDI1KQordGVzdDpwbGFuKDI0 KQogCiBsb2NhbCBmdW5jdGlvbiBmdW5jMShhKQogICAgIHJldHVybiBhCkBAIC0xMTgsMTYg KzExOCw2IEBAIGZvciBpID0gMSwgI2Zyb21fbHVhX3RvX3NxbCwgMSBkbwogICAgICAgICB7 MX0pCiBlbmQKIAotbG9jYWwgZnVuY3Rpb24gYWxsd2F5c19uaWwoKQotICAgIHJldHVybiBu aWwKLWVuZAotYm94LmludGVybmFsLnNxbF9jcmVhdGVfZnVuY3Rpb24oImFsbHdheXNfbmls IiwgYWxsd2F5c19uaWwpCi0KLXRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAotICAgICJsdWFfc3Fs LTIuNCIsCi0gICAgInNlbGVjdCBOVUxMIGlzIGFsbHdheXNfbmlsKCkiLAotICAgIHsxfSkK LQogbG9jYWwgZnJvbV9sdWFfdG9fc3FsX2JhZCA9IHsKICAgICBbMV0gPSBOVUxMLAogICAg IFsyXSA9IDEyTEwsIC0tIGl0IGlzIHBvc3NpYmxlIHRvIHN1cHBvcnQgdGhpcyB0eXBlCmRp ZmYgLS1naXQgYS90ZXN0L3NxbC10YXAvbWlubWF4Mi50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRh cC9taW5tYXgyLnRlc3QubHVhCmluZGV4IDQ3OWIxNjYuLmFiNTZmMWEgMTAwNzU1Ci0tLSBh L3Rlc3Qvc3FsLXRhcC9taW5tYXgyLnRlc3QubHVhCisrKyBiL3Rlc3Qvc3FsLXRhcC9taW5t YXgyLnRlc3QubHVhCkBAIC01MjEsNyArNTIxLDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3Qo CiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAgICAibWlubWF4Mi0xMC41IiwKICAgICBbWwot ICAgICAgICBERUxFVEUgRlJPTSB0NiBXSEVSRSB4IE5PVCBOVUxMOworICAgICAgICBERUxF VEUgRlJPTSB0NiBXSEVSRSB4IElTIE5PVCBOVUxMOwogICAgICAgICBTRUxFQ1QgY291bnQo KikgRlJPTSB0NjsKICAgICBdXSwgewogICAgICAgICAtLSA8bWlubWF4Mi0xMC41PgpkaWZm IC0tZ2l0IGEvdGVzdC9zcWwtdGFwL251bGwudGVzdC5sdWEgYi90ZXN0L3NxbC10YXAvbnVs bC50ZXN0Lmx1YQppbmRleCBlZDlhMWFhLi5lZTMwOTYxIDEwMDc1NQotLS0gYS90ZXN0L3Nx bC10YXAvbnVsbC50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvbnVsbC50ZXN0Lmx1YQpA QCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHRhcmFudG9vbAogdGVzdCA9IHJlcXVp cmUoInNxbHRlc3RlciIpCi10ZXN0OnBsYW4oMzcpCit0ZXN0OnBsYW4oNDUpCiAKIC0tIS4v dGNsdGVzdHJ1bm5lci5sdWEKIC0tIDIwMDEgU2VwdGVtYmVyIDE1CkBAIC00NzAsNCArNDcw LDkxIEBAIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAogLS0gfSB7e30geCB0d28ge30geCBpaX0K IAogCistLSBnaC0yMTM2OiAiSVMiIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIGRlYWxpbmcg d2l0aCBOVUxMCisKK3Rlc3Q6ZG9fZXhlY3NxbF90ZXN0KAorICAgICJudWxsLTEwLjEiLAor ICAgIFtbCisgICAgICAgIFNFTEVDVCAxIFdIRVJFIDEgSVMgTlVMTDsKKyAgICBdXSwgewor ICAgICAgICAtLSA8bnVsbC04LjE1PgorCisgICAgICAgIC0tIDwvbnVsbC04LjE1PgorICAg IH0pCisKK3Rlc3Q6ZG9fZXhlY3NxbF90ZXN0KAorICAgICJudWxsLTEwLjIiLAorICAgIFtb CisgICAgICAgIFNFTEVDVCAxIFdIRVJFIDEgSVMgTk9UIE5VTEw7CisgICAgXV0sIHsKKyAg ICAgICAgLS0gPG51bGwtOC4xNT4KKyAgICAgICAgMQorICAgICAgICAtLSA8L251bGwtOC4x NT4KKyAgICB9KQorCit0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKKyAgICAibnVsbC0xMC4zIiwK KyAgICBbWworICAgICAgICBTRUxFQ1QgMSBXSEVSRSBOVUxMIElTIE5VTEw7CisgICAgXV0s IHsKKyAgICAgICAgLS0gPG51bGwtOC4xNT4KKyAgICAgICAgMQorICAgICAgICAtLSA8L251 bGwtOC4xNT4KKyAgICB9KQorCit0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKKyAgICAibnVsbC0x MC40IiwKKyAgICBbWworICAgICAgICBTRUxFQ1QgMSBXSEVSRSBOVUxMIElTIE5PVCBOVUxM OworICAgIF1dLCB7CisgICAgICAgIC0tIDxudWxsLTguMTU+CisKKyAgICAgICAgLS0gPC9u dWxsLTguMTU+CisgICAgfSkKKwordGVzdDpkb19jYXRjaHNxbF90ZXN0KAorICAgICJudWxs LTEwLjUiLAorICAgIFtbCisgICAgICAgIFNFTEVDVCAxIFdIRVJFIDEgSVMgMTsKKyAgICBd XSwKKyAgICB7CisgICAgLS0gPGluZGV4LTEuMz4KKyAgICAxLCAibmVhciBcIjFcIjogc3lu dGF4IGVycm9yIgorICAgIC0tIDxpbmRleC0xLjM+CisgICAgfSkKKwordGVzdDpkb19jYXRj aHNxbF90ZXN0KAorICAgICJudWxsLTEwLjYiLAorICAgIFtbCisgICAgICAgIFNFTEVDVCAx IFdIRVJFIDEgSVMgTk9UIDE7CisgICAgXV0sCisgICAgeworICAgIC0tIDxpbmRleC0xLjM+ CisgICAgMSwgIm5lYXIgXCIxXCI6IHN5bnRheCBlcnJvciIKKyAgICAtLSA8aW5kZXgtMS4z PgorICAgIH0pCisKK3Rlc3Q6ZG9fY2F0Y2hzcWxfdGVzdCgKKyAgICAibnVsbC0xMC43IiwK KyAgICBbWworICAgICAgICBTRUxFQ1QgMSBXSEVSRSBOVUxMIElTIDE7CisgICAgXV0sCisg ICAgeworICAgIC0tIDxpbmRleC0xLjM+CisgICAgMSwgIm5lYXIgXCIxXCI6IHN5bnRheCBl cnJvciIKKyAgICAtLSA8aW5kZXgtMS4zPgorICAgIH0pCisKK3Rlc3Q6ZG9fY2F0Y2hzcWxf dGVzdCgKKyAgICAibnVsbC0xMC44IiwKKyAgICBbWworICAgICAgICBTRUxFQ1QgMSBXSEVS RSBOVUxMIElTIE5PVCAxOworICAgIF1dLAorICAgIHsKKyAgICAtLSA8aW5kZXgtMS4zPgor ICAgIDEsICJuZWFyIFwiMVwiOiBzeW50YXggZXJyb3IiCisgICAgLS0gPGluZGV4LTEuMz4K KyAgICB9KQorCisKIHRlc3Q6ZmluaXNoX3Rlc3QoKQpkaWZmIC0tZ2l0IGEvdGVzdC9zcWwt dGFwL3NlbGVjdEIudGVzdC5sdWEgYi90ZXN0L3NxbC10YXAvc2VsZWN0Qi50ZXN0Lmx1YQpp bmRleCA1NjZkYTE4Li45Mjg1M2RiIDEwMDc1NQotLS0gYS90ZXN0L3NxbC10YXAvc2VsZWN0 Qi50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvc2VsZWN0Qi50ZXN0Lmx1YQpAQCAtNDk0 LDcgKzQ5NCw3IEBAIGZvciBpaSA9IDMsIDYsIDEgZG8KICAgICAgICAgICAgICAgU0VMRUNU IGEqMTAgKyAwLjEsIGYqMTAgKyAwLjEgRlJPTSB0MSBMRUZUIEpPSU4gdDIgT04gKGM9ZCkK ICAgICAgICAgICAgICAgVU5JT04gQUxMCiAgICAgICAgICAgICAgIFNFTEVDVCBhKjEwMCwg YioxMDAgRlJPTSB0MQotICAgICAgICAgICAgKSBXSEVSRSB5K3ggTk9UIE5VTEwgT1JERVIg QlkgMTsKKyAgICAgICAgICAgICkgV0hFUkUgeSt4IElTIE5PVCBOVUxMIE9SREVSIEJZIDE7 CiAgICAgICAgIF1dLCB7CiAgICAgICAgICAgICA2LCAxOCwgMzAsIDI2MC4yLCA2MDAsIDE4 MDAsIDMwMDAKICAgICAgICAgfSkKZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsLXRhcC9zdWJzZWxl Y3QudGVzdC5sdWEgYi90ZXN0L3NxbC10YXAvc3Vic2VsZWN0LnRlc3QubHVhCmluZGV4IDM2 ZGY5YTEuLjgwOWVjMTIgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC9zdWJzZWxlY3QudGVz dC5sdWEKKysrIGIvdGVzdC9zcWwtdGFwL3N1YnNlbGVjdC50ZXN0Lmx1YQpAQCAtMTM1LDcg KzEzNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgXV0KICAgICAgICAgcmV0dXJuIHRl c3Q6ZXhlY3NxbCBbWwogICAgICAgICAgICAgU0VMRUNUIHkgZnJvbSB0MiAKLSAgICAgICAg ICAgIFdIRVJFIHggPSAoU0VMRUNUIHN1bShiKSBGUk9NIHQxIHdoZXJlIGEgbm90bnVsbCkg LSAoU0VMRUNUIHN1bShhKSBGUk9NIHQxKQorICAgICAgICAgICAgV0hFUkUgeCA9IChTRUxF Q1Qgc3VtKGIpIEZST00gdDEgd2hlcmUgYSBpcyBub3QgbnVsbCkgLSAoU0VMRUNUIHN1bShh KSBGUk9NIHQxKQogICAgICAgICBdXQogICAgIGVuZCwgewogICAgICAgICAtLSA8c3Vic2Vs ZWN0LTEuNT4KZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsLXRhcC90cmFuc2l0aXZlMS50ZXN0Lmx1 YSBiL3Rlc3Qvc3FsLXRhcC90cmFuc2l0aXZlMS50ZXN0Lmx1YQppbmRleCBiZGI5ZTk3Li5l ZDMyMzhmIDEwMDc1NQotLS0gYS90ZXN0L3NxbC10YXAvdHJhbnNpdGl2ZTEudGVzdC5sdWEK KysrIGIvdGVzdC9zcWwtdGFwL3RyYW5zaXRpdmUxLnRlc3QubHVhCkBAIC0xLDYgKzEsNiBA QAogIyEvdXNyL2Jpbi9lbnYgdGFyYW50b29sCiB0ZXN0ID0gcmVxdWlyZSgic3FsdGVzdGVy IikKLXRlc3Q6cGxhbigzMCkKK3Rlc3Q6cGxhbigyNikKIAogLS0hLi90Y2x0ZXN0cnVubmVy Lmx1YQogLS0gMjAxMyBBcHJpbCAxNwpAQCAtMTI0LDE5ICsxMjQsNiBAQCB0ZXN0OmRvX2V4 ZWNzcWxfdGVzdCgKICAgICB9KQogCiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAidHJh bnNpdGl2ZTEtMzAyIiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgKgotICAgICAgICAgIEZS T00gdDMwMSBDUk9TUyBKT0lOIHQzMDIKLSAgICAgICAgIFdIRVJFIHcgSVMgeSBBTkQgeSBJ UyBOT1QgTlVMTAotICAgICAgICAgT1JERVIgQlkgdzsKLSAgICBdXSwgewotICAgICAgICAt LSA8dHJhbnNpdGl2ZTEtMzAyPgotICAgICAgICAxLCAyLCAxLCAzLCAzLCA0LCAzLCA2LCA1 LCA2LCA1LCA3Ci0gICAgICAgIC0tIDwvdHJhbnNpdGl2ZTEtMzAyPgotICAgIH0pCi0KLXRl c3Q6ZG9fZXhlY3NxbF90ZXN0KAogICAgICJ0cmFuc2l0aXZlMS0zMTAiLAogICAgIFtbCiAg ICAgICAgIFNFTEVDVCAqCkBAIC0yMzQsMzYgKzIyMSw2IEBAIHRlc3Q6ZG9fZXhlY3NxbF90 ZXN0KAogICAgICAgICAtLSA8L3RyYW5zaXRpdmUxLTQwMD4KICAgICB9KQogCi10ZXN0OmRv X2V4ZWNzcWxfdGVzdCgKLSAgICAidHJhbnNpdGl2ZTEtNDAxIiwKLSAgICBbWwotICAgICAg ICBTRUxFQ1QgJzEtcm93JyBGUk9NIHQ0MDEgTEVGVCBKT0lOIHQ0MDIgT04gYiBJUyBhIEpP SU4gdDQwMyBPTiBjPWE7Ci0gICAgXV0sIHsKLSAgICAgICAgLS0gPHRyYW5zaXRpdmUxLTQw MT4KLSAgICAgICAgIjEtcm93IgotICAgICAgICAtLSA8L3RyYW5zaXRpdmUxLTQwMT4KLSAg ICB9KQotCi10ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAidHJhbnNpdGl2ZTEtNDAyIiwK LSAgICBbWwotICAgICAgICBTRUxFQ1QgJzEtcm93JyBGUk9NIHQ0MDEgTEVGVCBKT0lOIHQ0 MDIgT04gYj1hIEpPSU4gdDQwMyBPTiBjIElTIGE7Ci0gICAgXV0sIHsKLSAgICAgICAgLS0g PHRyYW5zaXRpdmUxLTQwMj4KLSAgICAgICAgIjEtcm93IgotICAgICAgICAtLSA8L3RyYW5z aXRpdmUxLTQwMj4KLSAgICB9KQotCi10ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKLSAgICAidHJh bnNpdGl2ZTEtNDAzIiwKLSAgICBbWwotICAgICAgICBTRUxFQ1QgJzEtcm93JyBGUk9NIHQ0 MDEgTEVGVCBKT0lOIHQ0MDIgT04gYiBJUyBhIEpPSU4gdDQwMyBPTiBjIElTIGE7Ci0gICAg XV0sIHsKLSAgICAgICAgLS0gPHRyYW5zaXRpdmUxLTQwMz4KLSAgICAgICAgIjEtcm93Igot ICAgICAgICAtLSA8L3RyYW5zaXRpdmUxLTQwMz4KLSAgICB9KQotCiAtLSBUaGUgZm9sbG93 aW5nIGlzIGEgc2NyaXB0IGRpc3RpbGxlZCBmcm9tIHRoZSBYQk1DIHByb2plY3Qgd2hlcmUg dGhlCiAtLSBidWcgd2FzIG9yaWdpbmFsbHkgZW5jb3VudGVyZWQuICBUaGUgY29ycmVjdCBh bnN3ZXIgaXMgYSBzaW5nbGUgcm93CiAtLSBvZiBvdXRwdXQuICBCZWZvcmUgdGhlIGJ1ZyB3 YXMgZml4ZWQsIHplcm8gcm93cyB3ZXJlIGdlbmVyYXRlZC4KZGlmZiAtLWdpdCBhL3Rlc3Qv c3FsLXRhcC90eXBlcy50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC90eXBlcy50ZXN0Lmx1YQpp bmRleCBjMTAyZWZkLi4xZGEyNTEyIDEwMDc1NQotLS0gYS90ZXN0L3NxbC10YXAvdHlwZXMu dGVzdC5sdWEKKysrIGIvdGVzdC9zcWwtdGFwL3R5cGVzLnRlc3QubHVhCkBAIC0zMDYsNyAr MzA2LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgK ICAgICAidHlwZXMtMi4zLjIiLAogICAgIFtbCi0gICAgICAgIFNFTEVDVCBhIElTTlVMTCBG Uk9NIHQzOworICAgICAgICBTRUxFQ1QgYSBJUyBOVUxMIEZST00gdDM7CiAgICAgXV0sIHsK ICAgICAgICAgLS0gPHR5cGVzLTIuMy4yPgogICAgICAgICAxCmRpZmYgLS1naXQgYS90ZXN0 L3NxbC10YXAvdHlwZXMyLnRlc3QubHVhIGIvdGVzdC9zcWwtdGFwL3R5cGVzMi50ZXN0Lmx1 YQppbmRleCA2MTAzNTkzLi4wNjgxN2FhIDEwMDc1NQotLS0gYS90ZXN0L3NxbC10YXAvdHlw ZXMyLnRlc3QubHVhCisrKyBiL3Rlc3Qvc3FsLXRhcC90eXBlczIudGVzdC5sdWEKQEAgLTIw MSw3ICsyMDEsNyBAQCB0ZXN0X2Jvb2woInR5cGVzMi00LjI4IiwgIm8xPSc1MDAnIiwgIic1 MDAuMCcgPiBvMSIsIDEpCiAtLSB0eXBlczItNS4qIC0gVGhlICdJTiAoeCwgeS4uLi4pJyBv cGVyYXRvciB3aXRoIG5vIGluZGV4LgogLS0gCiAtLSBDb21wYXJlIGxpdGVyYWxzIGFnYWlu c3QgbGl0ZXJhbHMgKG5vIGFmZmluaXR5IGFwcGxpZWQpCi10ZXN0X2Jvb2woInR5cGVzMi01 LjEiLCAiIiwgIihOVUxMIElOICgnMTAuMCcsIDIwKSkgSVNOVUxMIiwgMSkKK3Rlc3RfYm9v bCgidHlwZXMyLTUuMSIsICIiLCAiKE5VTEwgSU4gKCcxMC4wJywgMjApKSBJUyBOVUxMIiwg MSkKIHRlc3RfYm9vbCgidHlwZXMyLTUuMiIsICIiLCAiMTAgSU4gKCcxMC4wJywgMjApIiwg MCkKIHRlc3RfYm9vbCgidHlwZXMyLTUuMyIsICIiLCAiJzEwJyBJTiAoJzEwLjAnLCAyMCki LCAwKQogdGVzdF9ib29sKCJ0eXBlczItNS40IiwgIiIsICIxMCBJTiAoMTAuMCwgMjApIiwg MSkKZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsLXRhcC93aGVyZTcudGVzdC5sdWEgYi90ZXN0L3Nx bC10YXAvd2hlcmU3LnRlc3QubHVhCmluZGV4IDc1YmI3YjYuLjY2OTFkZDAgMTAwNzU1Ci0t LSBhL3Rlc3Qvc3FsLXRhcC93aGVyZTcudGVzdC5sdWEKKysrIGIvdGVzdC9zcWwtdGFwL3do ZXJlNy50ZXN0Lmx1YQpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xMDcwCiAgICAgICAgICBPUiAoZz0n ZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj04OS4wIEFO RCBkPDkwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5 MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTggQU5E IDIwKSBBTkQgYSE9MTkpCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAn bm9wcXIqJykKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdzdHV2dyon KQpAQCAtNDY4LDcgKzQ2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MwogICAgICAgV0hFUkUgYj0xMDcwCiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5E IGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9 MTkpCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnbm9wcXIqJykKICAg ICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdzdHV2dyonKQpAQCAtNDg1LDEx ICs0ODUsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzMyBBTkQgMzUpIEFORCBhIT0zNCkKICAgICAgICAgIE9SIChnPSdlZGNi YXp5JyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYj0yMjAKLSAgICAgICAg IE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNjcgQU5EIDY5KSBBTkQgYSE9NjgpCiAgICAgICAgICBPUiAoZz0ncXBvbm1s aycgQU5EIGYgR0xPQiAncHFyc3QqJykKICAgXV0pCkBAIC01MDQsMTEgKzUwNCwxMSBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NDcu MCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ3LjAgQU5E IGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMz IEFORCAzNSkgQU5EIGEhPTM0KQogICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBmIEdM T0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiBiPTIyMAotICAgICAgICAgT1IgKGQ+PTcwLjAg QU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03MC4wIEFORCBk PDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBB TkQgNjkpIEFORCBhIT02OCkKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9C ICdwcXJzdConKQogICBdXSkKQEAgLTYyNCw3ICs2MjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDggQU5EIDEwKSBBTkQgYSE9OSkKLSAgICAg ICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMzQgQU5EIDM2KSBBTkQgYSE9MzUpCiAgICAgICAgICBPUiBjPTE0MDE0 CiAgICAgICAgICBPUiBiPTgyOApAQCAtNjQxLDcgKzY0MSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOCBBTkQgMTApIEFORCBhIT05KQotICAg ICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiAzNCBBTkQgMzYpIEFORCBhIT0zNSkKICAgICAgICAgIE9SIGM9MTQw MTQKICAgICAgICAgIE9SIGI9ODI4CkBAIC03NDUsMTEgKzc0NSwxMSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NzIuMCBBTkQgZDw3 My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9C ICd3eHl6YSonKQogICAgICAgICAgT1IgYz0xMTAxMQogICAgICAgICAgT1IgYz0yMDAyMAot ICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTEuMT4KQEAgLTc2MiwxMSArNzYy LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJF IChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2pp aGdmZWQnIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBjPTExMDExCiAgICAg ICAgICBPUiBjPTIwMDIwCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xMS4y PgpAQCAtNzc5LDE2ICs3NzksMTYgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj03 OTIKICAgICAgICAgIE9SIGE9OTcKLSAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTkxNgogICAgICAgICAgT1IgYT02OQotICAgICAgICAg T1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTYw MDYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC04MDIsMTYgKzgwMiwxNiBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTAuMCBBTkQgZDw1 MS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01MC4wIEFORCBkPDUxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3JzdHV2 KicpCiAgICAgICAgICBPUiBiPTc5MgogICAgICAgICAgT1IgYT05NwotICAgICAgICAgT1Ig KGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj04 MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODcuMCBB TkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgxLjAgQU5E IGQ8ODIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTE2CiAgICAgICAg ICBPUiBhPTY5Ci0gICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGM9NjAwNgogICBdXSkKICAgICBlbmQsIHsKQEAgLTg3MCw3ICs4 NzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDQ3 IEFORCA0OSkgQU5EIGEhPTQ4KQotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu MTQuMT4KQEAgLTg4NCw3ICs4ODQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFICgoYSBCRVRXRUVOIDQ3IEFORCA0OSkgQU5EIGEhPTQ4KQotICAgICAgICAgT1IgKGQ+ PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4w IEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAg ICAgICAtLSA8d2hlcmU3LTIuMTQuMj4KQEAgLTkzMCw3ICs5MzAsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9OTM4Ci0gICAgICAgICBPUiAoZD49NjcuMCBBTkQg ZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8Njgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBH TE9CICdyc3R1dionKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTk0NSw3ICs5NDUsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9OTM4Ci0gICAgICAgICBPUiAoZD49 NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3LjAg QU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFw JyBBTkQgZiBHTE9CICdyc3R1dionKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTk1OSwxMCAr OTU5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj02OC4wIEFORCBkPDY5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0n emFiY2RlZmdoJwogICAgICAgICAgT1IgYj0zMDgKLSAgICAgICAgIE9SIChkPj0xNi4wIEFO RCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwx Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBm IEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNSBBTkQgMTcpIEFO RCBhIT0xNikKICAgICAgICAgIE9SIGI9NDQzCkBAIC05ODEsMTAgKzk4MSwxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjguMCBB TkQgZDw2OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY4LjAgQU5EIGQ8 NjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3phYmNkZWZnaCcKICAg ICAgICAgIE9SIGI9MzA4Ci0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaCon KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTUgQU5EIDE3KSBBTkQgYSE9MTYpCiAgICAg ICAgICBPUiBiPTQ0MwpAQCAtMTAwMyw5ICsxMDAzLDkgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgotICAgICAgICAgT1IgKGQ+PTU2LjAgQU5E IGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE5CiAgIF1dKQogICAgIGVu ZCwgewpAQCAtMTAxOSw5ICsxMDE5LDkgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9u KCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgIFdIRVJFIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTc2MgotICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE5CiAgIF1dKQogICAgIGVuZCwgewpAQCAt MTAzNSw3ICsxMDM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBhPTQ2CiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcq JykKICAgICAgICAgIE9SIGE9NzMKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtb CiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NgogICAgICAgICAgT1IgKGc9J3l4 d3Z1dHMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiBhPTczCkBAIC0xMTA2 LDE1ICsxMTA2LDE1IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYz0xMzAx MwotICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAgICAgT1IgZj0nYmNk ZWZnaGlqJwogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBB TkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYx KSBBTkQgYSE9NjApCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hp amsqJykKLSAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMTI5LDE1ICsxMTI5LDE1IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0xMzAxMwotICAgICAgICAgT1Ig KGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03 NS4wIEFORCBkPDc2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBB TkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5E IGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg3 IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAgICAgT1IgZj0nYmNkZWZnaGlqJwogICAgICAg ICAgT1IgYj01ODYKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4 eSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAg ICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAg IE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTkKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0xMTUzLDkgKzExNTMsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9Mzk5CiAgICAgICAgICBPUiBj PTI4MDI4Ci0gICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdxcnN0dSonKQotICAgICAg ICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjIuMT4KQEAgLTExNzAsOSArMTE3MCw5IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0z OTkKICAgICAgICAgIE9SIGM9MjgwMjgKLSAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0Ig J3Fyc3R1KicpCi0gICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yMi4yPgpAQCAt MTI2Niw3ICsxMjY2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBjPTUw MDUKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAzNiBBTkQgMzgpIEFORCBhIT0zNykKICAgICAgICAgIE9SIChn PSdwb25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICBdXSkKQEAgLTEyODIsNyArMTI4 Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz01MDA1Ci0gICAgICAg ICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMzYgQU5EIDM4KSBBTkQgYSE9MzcpCiAgICAgICAgICBPUiAoZz0ncG9ubWxraicg QU5EIGYgR0xPQiAndnd4eXoqJykKICAgXV0pCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzAuMCBB TkQgZDwzMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTMwLjAgQU5EIGQ8 MzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQg ZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjQgQU5EIDY2KSBB TkQgYSE9NjUpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUq JykKQEAgLTEzMTQsNyArMTMxNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigp CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKLSAgICAgIFdIRVJFIChkPj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICBXSEVSRSAoZD49MzAuMCBBTkQgZDwzMS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYpIEFORCBhIT02NSkKICAgICAgICAgIE9SIChn PSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQpAQCAtMTQ4NCw3ICsxNDg0LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0xMDEyCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA1NyBBTkQgNTkpIEFORCBhIT01OCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY3 IEFORCA2OSkgQU5EIGEhPTY4KQotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/YmNkZSonIEFORCBmIEdMT0Ig J2FiY2QqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNTAzLDcgKzE1MDMsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTEwMTIKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDU3IEFORCA1OSkgQU5EIGEhPTU4KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjcgQU5E IDY5KSBBTkQgYSE9NjgpCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9iY2RlKicgQU5EIGYgR0xPQiAnYWJj ZConKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE1MjAsNyArMTUyMCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFIGY9J3JzdHV2d3h5eicKICAgICAgICAgIE9SIChnPSdqaWhn ZmVkJyBBTkQgZiBHTE9CICd3eHl6YSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTAg QU5EIDkyKSBBTkQgYSE9OTEpCi0gICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4z Mi4xPgpAQCAtMTUzNiw3ICsxNTM2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUg Zj0ncnN0dXZ3eHl6JwogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3d4 eXphKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MCBBTkQgOTIpIEFORCBhIT05MSkK LSAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkK ICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMyLjI+CkBAIC0xNTg4LDcgKzE1 ODgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9NzcKLSAgICAgICAg IE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NTguMCBBTkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM0LjE+CkBAIC0xNjAyLDcgKzE2MDIsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9NzcKLSAgICAgICAgIE9SIChkPj01 OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTguMCBB TkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAg ICAgLS0gPHdoZXJlNy0yLjM0LjI+CkBAIC0xNjE2LDggKzE2MTYsOCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9NDk4Ci0gICAgICAgICBPUiAoZD49MjcuMCBBTkQg ZDwyOC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODku MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjcgQU5EIDY5KSBBTkQg YSE9NjgpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkpIEFORCBhIT02OCkK ICAgICAgICAgIE9SIGM9MzMwMzMKQEAgLTE2MzcsOCArMTYzNyw4IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwogICAgICAgV0hFUkUgYj00OTgKLSAgICAgICAgIE9SIChkPj0yNy4wIEFORCBk PDI4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkpIEFORCBh IT02OCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY3IEFORCA2OSkgQU5EIGEhPTY4KQog ICAgICAgICAgT1IgYz0zMzAzMwpAQCAtMTY1Nyw3ICsxNjU3LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTYuMCBBTkQgZDw3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Ni4wIEFORCBkPDcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU4IEFORCA2MCkgQU5EIGEh PTU5KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE2NzEsNyArMTY3MSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02LjAgQU5EIGQ8 Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYuMCBBTkQgZDw3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFO RCBhIT01OSkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjg2LDcgKzE2ODYsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9MTA1OQotICAgICAgICAgT1IgKGQ+PTQz LjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00My4wIEFO RCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTQwMDQKICAgICAg ICAgIE9SIGI9ODA2CiAgIF1dKQpAQCAtMTcwMiw3ICsxNzAyLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCiAgICAgICBXSEVSRSBiPTEwNTkKLSAgICAgICAgIE9SIChkPj00My4wIEFORCBk PDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz00MDA0CiAgICAgICAgICBPUiBi PTgwNgogICBdXSkKQEAgLTE4MjMsNyArMTgyMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNSBBTkQgNykgQU5EIGEhPTYpCiAg IF1dKQogICAgIGVuZCwgewpAQCAtMTgzNyw3ICsxODM3LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTczLjAgQU5EIGQ8NzQuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1IEFORCA3KSBBTkQgYSE9 NikKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xODUyLDEzICsxODUyLDEzIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGYgR0xPQiAnP2VmZ2gqJyBBTkQgZiBHTE9CICdk ZWZnKicpCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdmZ2hpaionKQogICAgICAg ICAgT1IgYj0yOTcKICAgICAgICAgIE9SIGI9MTEzCiAgICAgICAgICBPUiBiPTE3NgogICAg ICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3Z3eHl6KicpCi0gICAgICAgICBP UiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjcK ICAgICAgICAgIE9SIGM9MjYwMjYKICAgXV0pCkBAIC0xODc0LDEzICsxODc0LDEzIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGYgR0xPQiAnP2VmZ2gqJyBBTkQgZiBH TE9CICdkZWZnKicpCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdmZ2hpaionKQog ICAgICAgICAgT1IgYj0yOTcKICAgICAgICAgIE9SIGI9MTEzCiAgICAgICAgICBPUiBiPTE3 NgogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3Z3eHl6KicpCi0gICAg ICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGE9NjcKICAgICAgICAgIE9SIGM9MjYwMjYKICAgXV0pCkBAIC0xODk1LDcgKzE4OTUsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc4LjAg QU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDQgQU5EIDYpIEFORCBhIT01KQogICAgICAgICAgT1IgYT04MwogICAgICAgICAgT1IgYj00 NApAQCAtMTkxNSw3ICsxOTE1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwotICAgICAgV0hFUkUgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA0IEFORCA2KSBBTkQgYSE9NSkKICAgICAgICAgIE9S IGE9ODMKICAgICAgICAgIE9SIGI9NDQKQEAgLTE5MzUsNyArMTkzNSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj00Mi4wIEFORCBk PDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDIuMCBBTkQgZDw0My4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05MzUKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj00ODcKQEAg LTE5NTQsNyArMTk1NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj05MzUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEh PTMzKQogICAgICAgICAgT1IgYj00ODcKQEAgLTE5NzMsMTYgKzE5NzMsMTYgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTY4LjAgQU5E IGQ8NjkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjguMCBBTkQgZDw2OS4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAgICAgICAgICBPUiBiPTY0MQog ICAgICAgICAgT1IgYz0xNzAxNwogICAgICAgICAgT1IgYT04MgotICAgICAgICAgT1IgKGQ+ PTY1LjAgQU5EIGQ8NjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NS4w IEFORCBkPDY2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncnFwb25t bCcgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFO RCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDUu MT4KQEAgLTE5OTUsMTYgKzE5OTUsMTYgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9u KCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBOT1QgTlVM TCkKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9OTM4CiAgICAgICAgICBPUiBiPTY0MQogICAgICAgICAgT1IgYz0xNzAxNwog ICAgICAgICAgT1IgYT04MgotICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8NjYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnbG1ub3Aq JykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQotICAg ICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAg IGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDUuMj4KQEAgLTIwNTAsNyArMjA1MCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjEyCiAgICAgICAgICBPUiAoZz0n bGtqaWhnZicgQU5EIGYgR0xPQiAnbm9wcXIqJykKICAgICAgICAgIE9SIGM9MjgwMjgKLSAg ICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQ3LjE+CkBAIC0yMDY4LDcgKzIwNjgs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTIxMgogICAgICAgICAgT1IgKGc9 J2xramloZ2YnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBPUiBjPTI4MDI4Ci0g ICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40Ny4yPgpAQCAtMjA4MSw3ICsyMDgx LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0x Mi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTUxCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAyOCBBTkQgMzApIEFORCBhIT0yOSkKICAgXV0pCkBA IC0yMDk2LDcgKzIwOTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz Ci0gICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGE9NTEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI4IEFORCAzMCkgQU5EIGEh PTI5KQogICBdXSkKQEAgLTIxNTUsNyArMjE1NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9MTQzCiAgICAgICAgICBPUiBhPTQ2CiAgICAgICAgICBPUiBiPTY2MAotICAg ICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZiBHTE9CICc/eXphYionIEFORCBmIEdMT0IgJ3h5emEqJykKICAgICAgICAgIE9SIChn PSd2dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj0zNTUKQEAg LTIxNzcsNyArMjE3Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTQzCiAg ICAgICAgICBPUiBhPTQ2CiAgICAgICAgICBPUiBiPTY2MAotICAgICAgICAgT1IgKGQ+PTQx LjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00MS4wIEFO RCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/eXph YionIEFORCBmIEdMT0IgJ3h5emEqJykKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQg ZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj0zNTUKQEAgLTIyNTksOCArMjI1OSw4 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg Yj00NzMKICAgICAgICAgIE9SIGI9MTEwMAotICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8 NTQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjAKICAgICAgICAgIE9SIGI9MTA4OQogICAg ICAgICAgT1IgYj0zMzAKQEAgLTIyODAsOCArMjI4MCw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00NzMKICAgICAgICAgIE9SIGI9 MTEwMAotICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9MjAKICAgICAgICAgIE9SIGI9MTA4OQogICAgICAgICAgT1IgYj0zMzAKQEAgLTIz NDQsNyArMjM0NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJF VFdFRU4gNzYgQU5EIDc4KSBBTkQgYSE9NzcpCi0gICAgICAgICBPUiAoZD49MjQuMCBBTkQg ZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3l6YWJjZGVmZycKICAgICAg ICAgIE9SIGM9MTQwMTQKICAgICAgICAgIE9SIGE9MQpAQCAtMjM2Myw3ICsyMzYzLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA3NiBBTkQgNzgp IEFORCBhIT03NykKLSAgICAgICAgIE9SIChkPj0yNC4wIEFORCBkPDI1LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgZj0neXphYmNkZWZnJwogICAgICAgICAgT1IgYz0xNDAxNAog ICAgICAgICAgT1IgYT0xCkBAIC0yNDEyLDkgKzI0MTIsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGI9NzQ4Ci0gICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdw cXJzdConKQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj02MzAKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNDI5LDkgKzI0Mjks OSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtb CiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9NzQ4Ci0gICAgICAgICBP UiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSds a2ppaGdmJyBBTkQgZiBHTE9CICdwcXJzdConKQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQg ZDwxMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02MzAKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0yNTQ5LDExICsyNTQ5LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgIFdIRVJFIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9OAogICAgICAgICAgT1IgYT02MgogICAgICAgICAgT1IgYj03MjYK LSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNTAgQU5EIDUyKSBBTkQgYSE9NTEpCiAgICAgICAgICBPUiAo Zz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDU5IEFORCA2MSkgQU5EIGEhPTYwKQpAQCAtMjU2OSwxMSArMjU2OSwxMSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OS4wIEFO RCBkPDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OS4wIEFORCBkPDEw LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTgKICAgICAgICAgIE9SIGE9 NjIKICAgICAgICAgIE9SIGI9NzI2Ci0gICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUwIEFORCA1MikgQU5E IGEhPTUxKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ29wcXJzKicp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OSBBTkQgNjEpIEFORCBhIT02MCkKQEAgLTI2 MzUsNyArMjYzNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdmZWRjYmF6 JyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgYj01MDkKICAgICAgICAgIE9S IGI9OTI0Ci0gICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42My4xPgpAQCAtMjY1 NCw3ICsyNjU0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J2ZlZGNiYXon IEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAgICBPUiBiPTUwOQogICAgICAgICAgT1Ig Yj05MjQKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElTIE5PVCBOVUxMKQog ICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYzLjI+CkBAIC0yNjY3 LDcgKzI2NjcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChmIEdMT0IgJz9qa2xtKicgQU5EIGYgR0xPQiAnaWprbConKQogICAgICAgICAgT1IgKGYg R0xPQiAnP2RlZmcqJyBBTkQgZiBHTE9CICdjZGVmKicpCiAgICAgICAgICBPUiAoZz0nZWRj YmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKQEAgLTI2ODcsNyArMjY4Nyw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj05My4wIEFO RCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTMuMCBBTkQgZDw5 NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2prbG0qJyBB TkQgZiBHTE9CICdpamtsKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/ZGVmZyonIEFORCBm IEdMT0IgJ2NkZWYqJykKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd3 eHl6YSonKQpAQCAtMjcxNSw3ICsyNzE1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYT00NQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2Kicp CiAgICAgICAgICBPUiBhPTg1Ci0gICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8NjYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42 NS4xPgpAQCAtMjczNiw3ICsyNzM2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1Ig YT00NQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAg ICAgICAgICBPUiBhPTg1Ci0gICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8NjYuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42NS4y PgpAQCAtMjc4NCw3ICsyNzg0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoZz0nZWRjYmF6 eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz9tbm9wKicg QU5EIGYgR0xPQiAnbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTkxCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MjgwMyw3ICsyODAzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3V0c3Jx cG8nIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5E IGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz9tbm9wKicgQU5EIGYg R0xPQiAnbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTkxCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjgxOCwx MiArMjgxOCwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdnZmVk Y2JhJyBBTkQgZiBHTE9CICdub3BxcionKQotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8 MjkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBm IEdMT0IgJ2prbG0qJykKICAgICAgICAgIE9SIGI9NjQ5CiAgICAgICAgICBPUiBiPTIzMQot ICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NTgKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yODM4LDEyICsyODM4LDEyIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ25vcHFy KicpCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChmIEdMT0IgJz9rbG1uKicgQU5EIGYgR0xPQiAnamtsbSonKQogICAgICAg ICAgT1IgYj02NDkKICAgICAgICAgIE9SIGI9MjMxCi0gICAgICAgICBPUiAoZD49NDguMCBB TkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8 MzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OAogICBdXSkKICAgICBlbmQsIHsK QEAgLTI4NTgsNyArMjg1OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg Yj05NzkKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY5LjE+CkBAIC0yODcy LDcgKzI4NzIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9OTc5Ci0g ICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42OS4yPgpAQCAtMjkyNCw3ICsyOTI0 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj02NzEKICAgICAgICAgIE9SIChn PSdvbm1sa2ppJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAgICAgICAgT1IgYT05MQotICAg ICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA0NyBBTkQgNDkpIEFORCBhIT00OCkKICAgICAgICAgIE9SIGI9MTAw NAogICAgICAgICAgT1IgYj05NjAKQEAgLTI5NDcsNyArMjk0Nyw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIGI9NjcxCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYg R0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SIGE9OTEKLSAgICAgICAgIE9SIChkPj05OC4w IEFORCBkPDk5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTguMCBBTkQg ZDw5OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDcg QU5EIDQ5KSBBTkQgYSE9NDgpCiAgICAgICAgICBPUiBiPTEwMDQKICAgICAgICAgIE9SIGI9 OTYwCkBAIC0yOTY0LDcgKzI5NjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGI9NzYyCi0gICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQogICBd XSkKICAgICBlbmQsIHsKQEAgLTI5NzksNyArMjk3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgYj03NjIKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYgQU5EIDU4KSBBTkQg YSE9NTcpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjk5MywxMyArMjk5MywxMyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MTEuMCBB TkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTExLjAgQU5EIGQ8 MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTQKICAgICAgICAgIE9S IChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQotICAgICAgICAgT1IgKGQ+PTU0 LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yMy4wIEFO RCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1 NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjEyCi0gICAgICAgICBPUiAo ZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc4 LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAg ICAgICAgIC0tIDx3aGVyZTctMi43My4xPgpAQCAtMzAxMiwxMyArMzAxMiwxMyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTEuMCBB TkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTExLjAgQU5EIGQ8 MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTQKICAgICAgICAgIE9S IChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQotICAgICAgICAgT1IgKGQ+PTU0 LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yMy4wIEFO RCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1 NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjEyCi0gICAgICAgICBPUiAo ZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc4 LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAg ICAgICAgIC0tIDx3aGVyZTctMi43My4yPgpAQCAtMzAzNCw3ICszMDM0LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgV0hFUkUgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2JjZGVmKicp CiAgICAgICAgICBPUiBiPTE2OAogICAgICAgICAgT1IgYj0yNQotICAgICAgICAgT1IgKGQ+ PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4w IEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbGtqaWhn ZicgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDUxLDcg KzMwNTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0naWhnZmVkYycgQU5E IGYgR0xPQiAnYmNkZWYqJykKICAgICAgICAgIE9SIGI9MTY4CiAgICAgICAgICBPUiBiPTI1 Ci0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdvcHFycyonKQogICBdXSkKICAgICBl bmQsIHsKQEAgLTMwOTYsMTEgKzMwOTYsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSBjPTMxMDMxCi0gICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NyBBTkQgODkpIEFORCBh IT04OCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9xcnN0KicgQU5EIGYgR0xPQiAncHFycyon KQogICAgICAgICAgT1IgYT00OQotICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAna2xt bm8qJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMTE1LDExICszMTE1LDExIEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0zMTAzMQotICAgICAgICAgT1IgKGQ+PTEw MC4wIEFORCBkPDEwMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwMC4w IEFORCBkPDEwMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gODcgQU5EIDg5KSBBTkQgYSE9ODgpCiAgICAgICAgICBPUiAoZiBHTE9CICc/cXJzdCon IEFORCBmIEdMT0IgJ3BxcnMqJykKICAgICAgICAgIE9SIGE9NDkKLSAgICAgICAgIE9SIChk Pj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTYu MCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21sa2pp aGcnIEFORCBmIEdMT0IgJ2tsbW5vKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzEzNSw4 ICszMTM1LDggQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSBhPTgwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0IEFORCA2KSBBTkQgYSE9 NSkKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCi0g ICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTk3MQogICAgICAgICAgT1IgYT02MAogICBdXSkKQEAgLTMxNTMsOCArMzE1Myw4IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT04 MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNCBBTkQgNikgQU5EIGEhPTUpCi0gICAgICAg ICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1Ig KGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y OS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjUu MCBBTkQgZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05NzEKICAg ICAgICAgIE9SIGE9NjAKICAgXV0pCkBAIC0zMTY5LDExICszMTY5LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04NS4wIEFORCBk PDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODUuMCBBTkQgZDw4Ni4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdM T0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFORCBh IT0zMSkKICAgICAgICAgIE9SIGI9MTA4OQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8 NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hl cmU3LTIuNzguMT4KQEAgLTMxODYsMTEgKzMxODYsMTEgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbG1ub3Aq JykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5EIGEhPTMxKQogICAg ICAgICAgT1IgYj0xMDg5Ci0gICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43OC4y PgpAQCAtMzMwNCw3ICszMzA0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBiPTk3OQotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9MTMKICAgICAgICAgIE9SIGE9MTUKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDYgQU5EIDgpIEFORCBhIT03KQpAQCAtMzMyNyw3ICszMzI3LDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTk3OQotICAgICAgICAgT1IgKGQ+PTguMCBBTkQg ZDw5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTMKICAgICAgICAgIE9SIGE9MTUK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYgQU5EIDgpIEFORCBhIT03KQpAQCAtMzM1Myw3 ICszMzUzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFO RCBmIEdMT0IgJ3Z3eHl6KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMSBBTkQgMzMp IEFORCBhIT0zMikKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdnaGlq ayonKQotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3OSkgQU5EIGEhPTc4KQogICAgICAgICAgT1Ig Yj01MjgKICAgICAgICAgIE9SIGM9MzAwMzAKQEAgLTMzNzQsNyArMzM3NCw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd2d3h5eion KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCiAgICAg ICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9S IChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEu MCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA3NyBBTkQgNzkpIEFORCBhIT03OCkKICAgICAgICAgIE9SIGI9NTI4CiAgICAgICAgICBP UiBjPTMwMDMwCkBAIC0zNTA1LDcgKzM1MDUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIGM9 MTAwMQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2hpamtsKicpCi0g ICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1IgYz0z MzAzMwogICBdXSkKQEAgLTM1MjYsNyArMzUyNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdpamtsbSonKQogICAgICAgICAgT1Ig Yz0xMDAxCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaGlqa2wqJykK LSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAgICAgICBPUiBj PTMzMDMzCiAgIF1dKQpAQCAtMzYxMCw3ICszNjEwLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgYj02NgogICAgICAgICAgT1IgYj01NTMKICAgICAgICAgIE9SIGE9NjQKLSAg ICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBhPTYy CiAgICAgICAgICBPUiBiPTEwODEKQEAgLTM2MzMsNyArMzYzMyw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgIFdIRVJFIGI9NjYKICAgICAgICAgIE9SIGI9NTUzCiAgICAgICAgICBPUiBh PTY0Ci0gICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAg T1IgYT02MgogICAgICAgICAgT1IgYj0xMDgxCkBAIC0zNjg4LDEwICszNjg4LDEwIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYz0zNDAzNAotICAgICAgICAgT1IgKGQ+ PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02OC4w IEFORCBkPDY5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ0CiAgICAg ICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykKLSAgICAgICAgIE9S IChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0zMTAz MQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAg ICAgICBPUiBiPTYxOQpAQCAtMzcxMCwxMCArMzcxMCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFIGM9MzQwMzQKLSAgICAgICAgIE9SIChkPj02OC4wIEFORCBkPDY5 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjguMCBBTkQgZDw2OS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NAogICAgICAgICAgT1IgKGc9J3Rz cnFwb24nIEFORCBmIEdMT0IgJ3h5emFiKicpCi0gICAgICAgICBPUiAoZD49MTIuMCBBTkQg ZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MzEwMzEKICAgICAgICAgIE9S IChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1IgYj02MTkK QEAgLTM3MzUsNyArMzczNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9MTUw MTUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY1IEFORCA2NykgQU5EIGEhPTY2KQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gOTcgQU5EIDk5KSBBTkQgYSE9OTgpCi0gICAgICAgICBP UiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEw CiAgICAgICAgICBPUiBmPSdrbG1ub3BxcnMnCiAgICAgICAgICBPUiAoZz0nZmVkY2Jheicg QU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTM3NTgsNyArMzc1OCw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIGM9MTUwMTUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY1IEFO RCA2NykgQU5EIGEhPTY2KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTcgQU5EIDk5KSBB TkQgYSE9OTgpCi0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9MTEwCiAgICAgICAgICBPUiBmPSdrbG1ub3BxcnMnCiAgICAg ICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTM3NzksOSAr Mzc3OSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYT03MgogICAgICAgICAgT1IgYj05MTMKLSAgICAgICAgIE9SIChkPj0yOC4wIEFO RCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwy OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMjEKLSAgICAgICAgIE9S IChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIu MCBBTkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAg ICAgICAtLSA8d2hlcmU3LTIuOTQuMT4KQEAgLTM3OTYsOSArMzc5Niw5IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT03MgogICAgICAg ICAgT1IgYj05MTMKLSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0xMjEKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu OTQuMj4KQEAgLTM5MTAsOSArMzkxMCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj0yNQotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MSBBTkQgODMpIEFORCBhIT04MikKLSAg ICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMyBBTkQgNSkgQU5EIGEhPTQpCiAgICAgICAgICBPUiBiPTI4OQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gODUgQU5EIDg3KSBBTkQgYSE9ODYpCkBAIC0zOTI5 LDkgKzM5MjksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MjUKLSAg ICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gODEgQU5EIDgzKSBBTkQgYSE9ODIpCi0gICAgICAgICBPUiAoZD49 MTcuMCBBTkQgZDwxOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAg QU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDMgQU5EIDUpIEFORCBhIT00KQogICAgICAgICAgT1IgYj0yODkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDg1IEFORCA4NykgQU5EIGEhPTg2KQpAQCAtMzk0OSwxMiArMzk0OSwxMiBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGY9 J2RlZmdoaWprbCcKICAgICAgICAgIE9SIGI9NDY1Ci0gICAgICAgICBPUiAoZD49NDYuMCBB TkQgZDw0Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8 NDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9OTAwOQogICAgICAgICAg T1IgYj05OTAKICAgICAgICAgIE9SIGI9MTMyCiAgICAgICAgICBPUiBhPTM1Ci0gICAgICAg ICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 ODEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDcxIEFORCA3MykgQU5EIGEhPTcyKQogICBd XSkKQEAgLTM5NzEsMTIgKzM5NzEsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBmPSdkZWZnaGlqa2wnCiAgICAgICAgICBPUiBiPTQ2 NQotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBjPTkwMDkKICAgICAgICAgIE9SIGI9OTkwCiAgICAgICAgICBPUiBiPTEzMgog ICAgICAgICAgT1IgYT0zNQotICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTgxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3 MSBBTkQgNzMpIEFORCBhIT03MikKICAgXV0pCkBAIC0zOTkyLDcgKzM5OTIsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MjYwMjYKLSAgICAgICAgIE9SIChkPj05 LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05LjAgQU5E IGQ8MTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcK ICAgICAgICAgIE9SIGE9NgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBB TkQgYSE9NjApCkBAIC00MDA5LDcgKzQwMDksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAg ICAgIFdIRVJFIGM9MjYwMjYKLSAgICAgICAgIE9SIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcKICAgICAgICAgIE9SIGE9Ngog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCkBAIC00MDI2 LDcgKzQwMjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRX RUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkKLSAgICAgICAgIE9SIChkPj03LjAgQU5EIGQ8 OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcuMCBBTkQgZDw4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuMTAxLjE+CkBAIC00MDQwLDcgKzQwNDAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAg ICAgIFdIRVJFICgoYSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkKLSAgICAgICAg IE9SIChkPj03LjAgQU5EIGQ8OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTcuMCBBTkQgZDw4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMTAxLjI+CkBAIC00MDU0LDEyICs0MDU0LDEyIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYz0xMTAxMQotICAgICAgICAgT1IgKGQ+ PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MS4w IEFORCBkPDUyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTYzMAogICAg ICAgICAgT1IgYz0xOTAxOQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0Ig J2xtbm9wKicpCiAgICAgICAgICBPUiBhPTI0Ci0gICAgICAgICBPUiAoZD49OTUuMCBBTkQg ZDw5Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk1LjAgQU5EIGQ8OTYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1 MykgQU5EIGEhPTUyKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTQwNzQsMTIgKzQwNzQsMTIg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBjPTExMDExCi0gICAgICAgICBP UiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjMw CiAgICAgICAgICBPUiBjPTE5MDE5CiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYg R0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SIGE9MjQKLSAgICAgICAgIE9SIChkPj05NS4w IEFORCBkPDk2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTUuMCBBTkQg ZDw5Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTEg QU5EIDUzKSBBTkQgYSE9NTIpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtNDI2NCw3ICs0MjY0 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTQ5OAotICAgICAgICAg T1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02OS4wIEFORCBkPDcwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTEK ICAgXV0pCiAgICAgZW5kLCB7CkBAIC00Mjc5LDcgKzQyNzksNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKICAgICAgIFdIRVJFIGI9NDk4Ci0gICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3 MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MQogICBdXSkKICAgICBlbmQsIHsK QEAgLTQ1MzMsNyArNDUzMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NjMw CiAgICAgICAgICBPUiAoZiBHTE9CICc/Y2RlZionIEFORCBmIEdMT0IgJ2JjZGUqJykKICAg ICAgICAgIE9SIGM9MzAwMwotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTE2 LjE+CkBAIC00NTU0LDcgKzQ1NTQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBi PTYzMAogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBHTE9CICdiY2RlKicp CiAgICAgICAgICBPUiBjPTMwMDMKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjExNi4yPgpAQCAtNDU3NSw3ICs0NTc1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYj0xNDMKICAgICAgICAgIE9SIChmIEdMT0IgJz9rbG1uKicgQU5EIGYgR0xPQiAnamts bSonKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3d4eXphKicpCi0g ICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xMTcuMT4KQEAgLTQ1OTYsNyArNDU5 Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTQzCiAgICAgICAgICBPUiAo ZiBHTE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKICAgICAgICAgIE9SIChnPSdv bm1sa2ppJyBBTkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5E IGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDEx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMTE3LjI+CkBAIC00NjQxLDcgKzQ2NDEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49My4wIEFORCBkPDQuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj00NTEKICAgICAgICAgIE9SIGI9MzYzCiAgICAgICAg ICBPUiBiPTMzMApAQCAtNDY2Miw3ICs0NjYyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1 bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49My4wIEFORCBkPDQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9NDUxCiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1Ig Yj0zMzAKQEAgLTQ2ODQsNyArNDY4NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3JzdHV2KicpCi0gICAgICAgICBPUiAo ZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY4 LjAgQU5EIGQ8NjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRz cnFwJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1IgZSBJUyBOVUxMCiAgICAg ICAgICBPUiBiPTc1OQpAQCAtNDcwMSw3ICs0NzAxLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz CiAgICAgICBXSEVSRSAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncnN0dXYqJykKLSAgICAg ICAgIE9SIChkPj02OC4wIEFORCBkPDY5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAgICAgICBPUiBlIElTIE5V TEwKICAgICAgICAgIE9SIGI9NzU5CkBAIC00NzQ4LDEwICs0NzQ4LDEwIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xMDM3Ci0gICAgICAgICBPUiAoZD49NDcuMCBB TkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8 NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQzIEFO RCA0NSkgQU5EIGEhPTQ0KQotICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc1IEFORCA3NykgQU5EIGEhPTc2KQogICBd XSkKICAgICBlbmQsIHsKQEAgLTQ3NjYsMTAgKzQ3NjYsMTAgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSBiPTEwMzcKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDMgQU5EIDQ1KSBB TkQgYSE9NDQpCi0gICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIE5PVCBO VUxMKQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNzUgQU5EIDc3KSBBTkQgYSE9NzYpCiAgIF1dKQogICAg IGVuZCwgewpAQCAtNDg2MSw3ICs0ODYxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGYgR0xPQiAnP2prbG0qJyBBTkQgZiBHTE9CICdpamtsKicpCiAgICAgICAgICBPUiAo Zz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGI9MjQyCi0g ICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9MzUyCiAgICAgICAgICBPUiBhPTQ5CiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcg QU5EIGYgR0xPQiAnZmdoaWoqJykKQEAgLTQ4ODMsNyArNDg4Myw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIChmIEdMT0IgJz9qa2xtKicgQU5EIGYgR0xPQiAnaWprbConKQog ICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2ZnaGlqKicpCiAgICAgICAg ICBPUiBiPTI0MgotICAgICAgICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTM1MgogICAgICAgICAgT1IgYT00OQogICAgICAgICAgT1Ig KGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2ZnaGlqKicpCkBAIC00ODk5LDE0ICs0ODk5LDE0 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODcu MCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03MDQKICAg ICAgICAgIE9SIGE9NwogICAgICAgICAgT1IgYT04CiAgICAgICAgICBPUiBhPTQ2CiAgICAg ICAgICBPUiBiPTc0MAogICAgICAgICAgT1IgYj05OTMKLSAgICAgICAgIE9SIChkPj0zOC4w IEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQg ZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjEyNi4xPgpAQCAtNDkxOSwxNCArNDkxOSwxNCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49ODcuMCBBTkQgZDw4 OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg3LjAgQU5EIGQ8ODguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzA0CiAgICAgICAgICBPUiBhPTcK ICAgICAgICAgIE9SIGE9OAogICAgICAgICAgT1IgYT00NgogICAgICAgICAgT1IgYj03NDAK ICAgICAgICAgIE9SIGI9OTkzCi0gICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4x MjYuMj4KQEAgLTQ5OTksOCArNDk5OSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTY1CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNTAxNCw4ICs1MDE0LDggQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTI2 LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05Ny4wIEFO RCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MjYuMCBBTkQgZDwy Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjUKICAgXV0pCiAgICAgZW5k LCB7CkBAIC01MDI5LDEwICs1MDI5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgMTAwMDAwMDxiCiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5E IGYgR0xPQiAnY2RlZmcqJykKLSAgICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUxLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNAogICBdXSkKICAgICBlbmQsIHsKQEAgLTUw NDYsMTAgKzUwNDYsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwot ICAgICAgV0hFUkUgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAxMDAwMDAwPGIKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdj ZGVmZyonKQotICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUxLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTI0CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNTA2OSw3ICs1MDY5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0zNgogICAgICAgICAgT1IgYj04 MTQKICAgICAgICAgIE9SIGE9MTQKLSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NDAKICAgICAgICAgIE9SIChnPSd4d3Z1 dHNyJyBBTkQgZiBHTE9CICdmZ2hpaionKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2FiY2Qq JyBBTkQgZiBHTE9CICd6YWJjKicpCkBAIC01MDkxLDcgKzUwOTEsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBiPTM2CiAgICAgICAgICBPUiBiPTgxNAogICAgICAgICAgT1Ig YT0xNAotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTQ0MAogICAgICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0Ig J2ZnaGlqKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/YWJjZConIEFORCBmIEdMT0IgJ3ph YmMqJykKQEAgLTUxNjMsNyArNTE2Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYT04MgogICBdXSkKICAgICBlbmQsIHsKQEAgLTUxNzcsNyArNTE3 Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJF IChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT04Mgog ICBdXSkKICAgICBlbmQsIHsKQEAgLTUxOTUsNyArNTE5NSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGM9MjQwMjQKICAgICAgICAgIE9SIGI9OTQ2CiAgICAgICAgICBPUiBh PTE5Ci0gICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg XV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xMzUuMT4KQEAgLTUyMTIs NyArNTIxMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGM9MjQwMjQKICAgICAg ICAgIE9SIGI9OTQ2CiAgICAgICAgICBPUiBhPTE5Ci0gICAgICAgICBPUiAoZD49NDcuMCBB TkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8 NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4xMzUuMj4KQEAgLTUyNjUsNyArNTI2NSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj03MDQKICAgICAgICAgIE9S IGI9OTQ5Ci0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd3eHl6YSonKQogICAgICAg ICAgT1IgYz0yNDAyNAogICAgICAgICAgT1IgYj01NTMKQEAgLTUyODUsNyArNTI4NSw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj03 MDQKICAgICAgICAgIE9SIGI9OTQ5Ci0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd3 eHl6YSonKQogICAgICAgICAgT1IgYz0yNDAyNAogICAgICAgICAgT1IgYj01NTMKQEAgLTUz MDYsNyArNTMwNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChmIEdMT0IgJz9j ZGVmKicgQU5EIGYgR0xPQiAnYmNkZSonKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFO RCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBiPTkwMgotICAgICAgICAgT1IgKGQ+ PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4w IEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI1CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAxNiBBTkQgMTgpIEFORCBhIT0xNykKICAgICAgICAgIE9S IGY9J3phYmNkZWZnaCcKQEAgLTUzMjYsNyArNTMyNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgIFdIRVJFIChmIEdMT0IgJz9jZGVmKicgQU5EIGYgR0xPQiAnYmNkZSonKQogICAgICAg ICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBi PTkwMgotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTI1CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNiBBTkQgMTgpIEFO RCBhIT0xNykKICAgICAgICAgIE9SIGY9J3phYmNkZWZnaCcKQEAgLTUzNDYsNyArNTM0Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9MjIKICAgICAgICAgIE9SIGI9MzYK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU3IEFORCA1OSkgQU5EIGEhPTU4KQotICAgICAg ICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA4MSBBTkQgODMpIEFORCBhIT04MikKICAgXV0pCiAgICAgZW5kLCB7CkBA IC01MzYzLDcgKzUzNjMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBhPTIyCiAg ICAgICAgICBPUiBiPTM2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NyBBTkQgNTkpIEFO RCBhIT01OCkKLSAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODEgQU5EIDgzKSBBTkQgYSE9ODIpCiAgIF1d KQogICAgIGVuZCwgewpAQCAtNTM3OCw3ICs1Mzc4LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBiPTI1MwotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu MTQwLjE+CkBAIC01MzkyLDcgKzUzOTIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIGI9MjUzCi0gICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xNDAuMj4K QEAgLTU0NDAsMTMgKzU0NDAsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYz0z MDAzMAogICAgICAgICAgT1IgYT0xOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDQgQU5E IDQ2KSBBTkQgYSE9NDUpCi0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBB TkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgKGc9 J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBhPTEzCi0gICAg ICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTY1LjAgQU5EIGQ8NjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xNDIuMT4KQEAgLTU0NjIsMTMgKzU0NjIs MTMgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYz0zMDAzMAogICAgICAgICAgT1Ig YT0xOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDQgQU5EIDQ2KSBBTkQgYSE9NDUpCi0g ICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9MTEKICAgICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdvcHFycyon KQogICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdM T0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBhPTEzCi0gICAgICAgICBPUiAoZD49NjUuMCBB TkQgZDw2Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8 NjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4xNDIuMj4KQEAgLTU0ODUsNyArNTQ4NSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM5 IEFORCA0MSkgQU5EIGEhPTQwKQogICAgICAgICAgT1IgYj0xMDQ1Ci0gICAgICAgICBPUiAo ZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0 LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3V2d3h5 emFiYycKICAgICAgICAgIE9SIChmIEdMT0IgJz96YWJjKicgQU5EIGYgR0xPQiAneXphYion KQogICBdXSkKQEAgLTU1MDQsNyArNTUwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIGY9J2VmZ2hpamtsbScKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM5IEFORCA0MSkg QU5EIGEhPTQwKQogICAgICAgICAgT1IgYj0xMDQ1Ci0gICAgICAgICBPUiAoZD49MjQuMCBB TkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8 MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3V2d3h5emFiYycKICAg ICAgICAgIE9SIChmIEdMT0IgJz96YWJjKicgQU5EIGYgR0xPQiAneXphYionKQogICBdXSkK QEAgLTU1MjcsNyArNTUyNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J3d4 eXphYmNkZScKICAgICAgICAgIE9SIGM9MTgwMTgKICAgICAgICAgIE9SIGI9NTk3Ci0gICAg ICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xNDQuMT4KQEAgLTU1NDgsNyArNTU0OCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J3d4eXphYmNkZScKICAgICAgICAg IE9SIGM9MTgwMTgKICAgICAgICAgIE9SIGI9NTk3Ci0gICAgICAgICBPUiAoZD49NjkuMCBB TkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4xNDQuMj4KQEAgLTU1NjMsMTIgKzU1NjMsMTIgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTkxCiAgICAgICAgICBP UiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj0y MS4wIEFORCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjEuMCBB TkQgZDwyMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEn IEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OSBBTkQg OTEpIEFORCBhIT05MCkKLSAgICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj0xMDIKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBk PDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYx KSBBTkQgYSE9NjApCiAgICAgICAgICBPUiBiPTc4NAogICBdXSkKQEAgLTU1ODUsMTIgKzU1 ODUsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSBiPTkxCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnd3h5emEq JykKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA4OSBBTkQgOTEpIEFORCBhIT05MCkKLSAgICAgICAgIE9SIChkPj04 NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODUuMCBB TkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDIKLSAgICAg ICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiBiPTc4NAog ICBdXSkKQEAgLTU2MDksNyArNTYwOSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYj05OTAK ICAgICAgICAgIE9SIGE9NTIKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjE0 Ni4xPgpAQCAtNTYyNiw3ICs1NjI2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1Ig KGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBPUiBiPTk5MAog ICAgICAgICAgT1IgYT01MgotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTQ2 LjI+CkBAIC01NjgyLDEwICs1NjgyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF ICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEhPTY5KQogICAgICAgICAgT1IgYj00MjEK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIzKQotICAgICAg ICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdz cnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaConKQotICAgICAgICAgT1IgKGQ+PTg5LjAgQU5E IGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yNC4wIEFORCBkPDI1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjIwMjIKICAgICAgICAgIE9SIGI9ODI1 CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKQEAgLTU3 MDUsMTAgKzU3MDUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKChhIEJFVFdF RU4gNjggQU5EIDcwKSBBTkQgYSE9NjkpCiAgICAgICAgICBPUiBiPTQyMQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMjIgQU5EIDI0KSBBTkQgYSE9MjMpCi0gICAgICAgICBPUiAoZD49 Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yLjAgQU5E IGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFO RCBmIEdMT0IgJ2RlZmdoKicpCi0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYz0yMjAyMgogICAgICAgICAgT1IgYj04MjUKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDE3IEFORCAxOSkgQU5EIGEhPTE4KQpAQCAtNTcyNSw3ICs1NzI1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00 NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ4NAog ICAgICAgICAgT1IgYj0xMDI2CiAgICAgICAgICBPUiBhPTkwCkBAIC01NzQ0LDcgKzU3NDQs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAo ZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ0 LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg0CiAg ICAgICAgICBPUiBiPTEwMjYKICAgICAgICAgIE9SIGE9OTAKQEAgLTU3NjQsOSArNTc2NCw5 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYzw9MTAKLSAgICAgICAgIE9S IChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NzYuMCBBTkQgZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTQK LSAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj04ODAKICAgICAgICAgIE9SIGE9NTUKICAgICAgICAgIE9SIGI9NzczCkBAIC01 Nzg1LDkgKzU3ODUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9z dGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM8PTEw Ci0gICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9MTU0Ci0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9ODgwCiAgICAgICAgICBPUiBhPTU1CiAgICAgICAgICBP UiBiPTc3MwpAQCAtNTgzNyw3ICs1ODM3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTMzCiAgICAgICAgICBPUiBiPTEwNDUKLSAg ICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYz0xMzAxMwogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21ub3Bx KicpCiAgICAgICAgICBPUiBiPTEyNApAQCAtNTg1Niw3ICs1ODU2LDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTMzCiAgICAgICAg ICBPUiBiPTEwNDUKLSAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYz0xMzAxMwogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFO RCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiBiPTEyNApAQCAtNTk3NSw3ICs1OTc1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBmIEdM T0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCiAgICAgICAgICBPUiAo ZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKLSAgICAgICAgIE9SIChkPj01 MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTEuMCBB TkQgZDw1Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDU2CiAgIF1d KQogICAgIGVuZCwgewpAQCAtNTk5Myw3ICs1OTkzLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBP UiBmPSdqa2xtbm9wcXInCiAgICAgICAgICBPUiAoZiBHTE9CICc/ZGVmZyonIEFORCBmIEdM T0IgJ2NkZWYqJykKLSAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0xMDU2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjAwOCwx NCArNjAwOCwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9NDcKLSAg ICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj00MTAKICAgICAgICAgIE9SIGI9NjgyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5 OCBBTkQgMTAwKSBBTkQgYSE9OTkpCiAgICAgICAgICBPUiBmPSdoaWprbG1ub3AnCi0gICAg ICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MTY4Ci0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9MzIKICAgICAgICAgIE9SIGE9NzIKICAgXV0pCkBAIC02MDMxLDE0 ICs2MDMxLDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT00NwotICAg ICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTQxMAogICAgICAgICAgT1IgYj02ODIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk4 IEFORCAxMDApIEFORCBhIT05OSkKICAgICAgICAgIE9SIGY9J2hpamtsbW5vcCcKLSAgICAg ICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0xNjgKLSAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgYT03MgogICBdXSkKQEAgLTYwNTUsNyAr NjA1NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj02MTYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI1IEFORCAyNykgQU5EIGEh PTI2KQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTk2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjA3MSw3ICs2MDcxLDcg QEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBi PTYxNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjUgQU5EIDI3KSBBTkQgYSE9MjYpCi0g ICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9OTYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC02MDg1LDcgKzYwODUsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NjYuMCBB TkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY2LjAgQU5EIGQ8 NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzUyCiAgIF1dKQogICAg IGVuZCwgewpAQCAtNjA5OSw3ICs2MDk5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTM1MgogICBdXSkKICAgICBlbmQsIHsKQEAgLTYxMTUsNyAr NjExNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj03OTUKICAgICAgICAgIE9SIGM9MTMwMTMKLSAgICAgICAgIE9SIChkPj0yOC4w IEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQg ZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OTcKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC02MTMxLDcgKzYxMzEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9Nzk1CiAgICAgICAgICBPUiBjPTEzMDEz Ci0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9NTk3CiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjIzMiw3ICs2MjMyLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgZj0nY2RlZmdoaWprJwogICAgICAgICAgT1Ig KGYgR0xPQiAnP3N0dXYqJyBBTkQgZiBHTE9CICdyc3R1KicpCiAgICAgICAgICBPUiAoZz0n aWhnZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj01OS4wIEFO RCBkPDYwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2 MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0g PHdoZXJlNy0yLjE2My4xPgpAQCAtNjI0OCw3ICs2MjQ4LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgV0hFUkUgZj0nY2RlZmdoaWprJwogICAgICAgICAgT1IgKGYgR0xPQiAnP3N0dXYq JyBBTkQgZiBHTE9CICdyc3R1KicpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYg R0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjE2My4y PgpAQCAtNjI2MywxMCArNjI2MywxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGE9NjUKICAgICAgICAgIE9SIGM9MTQwMTQKLSAgICAg ICAgIE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig YT00NwogICAgICAgICAgT1IgYj0yMjAKLSAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJl Ny0yLjE2NC4xPgpAQCAtNjI4MSwxMCArNjI4MSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9NjUKICAgICAgICAgIE9SIGM9MTQw MTQKLSAgICAgICAgIE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYT00NwogICAgICAgICAgT1IgYj0yMjAKLSAgICAgICAgIE9SIChkPj0zNy4w IEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzcuMCBBTkQg ZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjE2NC4yPgpAQCAtNjMzOCwxMSArNjMzOCwxMSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICBXSEVSRSBiPTM2MwogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBm IEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFO RCBhIT01OSkKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQogICAgICAgICAgT1IgYT0z OQotICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTY2LjE+CkBAIC02MzU4LDEx ICs2MzU4LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9MzYzCiAgICAgICAg ICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDU4IEFORCA2MCkgQU5EIGEhPTU5KQotICAgICAgICAgT1IgKGQ+PTIuMCBB TkQgZDwzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0 Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2ts bW5vKicpCiAgICAgICAgICBPUiBhPTM5Ci0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi4xNjYuMj4KQEAgLTYzNzYsNyArNjM3Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYz0zMDAzMAotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg1MAogICAgICAgICAgT1IgKGYgR0xPQiAn P3Z3eHkqJyBBTkQgZiBHTE9CICd1dnd4KicpCiAgIF1dKQpAQCAtNjM5Miw3ICs2MzkyLDcg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBjPTMwMDMwCi0gICAgICAgICBP UiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODUw CiAgICAgICAgICBPUiAoZiBHTE9CICc/dnd4eSonIEFORCBmIEdMT0IgJ3V2d3gqJykKICAg XV0pCkBAIC02NDA3LDggKzY0MDcsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgIFdIRVJFIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj04MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTY0MjIsOCArNjQyMiw4IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0yMy4w IEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49OTEuMCBBTkQg ZDw5Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTIzLjAgQU5EIGQ8MjQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgwCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtNjQzOCw3ICs2NDM4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSAoKGEgQkVUV0VFTiA1OSBBTkQgNjEpIEFORCBhIT02MCkKLSAgICAgICAgIE9SIChkPj03 Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzcuMCBB TkQgZDw3OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NjIKICAgICAg ICAgIE9SIGE9NTEKICAgICAgICAgIE9SIGI9MzQ0CkBAIC02NDU3LDcgKzY0NTcsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDU5IEFORCA2MSkg QU5EIGEhPTYwKQotICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTQ2MgogICAgICAgICAgT1IgYT01MQogICAgICAgICAgT1Ig Yj0zNDQKQEAgLTY1MDgsNyArNjUwOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF IGI9MTc5CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyIEFORCA0KSBBTkQgYSE9MykKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDQwIEFORCA0MikgQU5EIGEhPTQxKQotICAgICAgICAg T1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA3MiBBTkQgNzQpIEFORCBhIT03MykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC02 NTI1LDcgKzY1MjUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTE3OQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gMiBBTkQgNCkgQU5EIGEhPTMpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA0MCBBTkQgNDIpIEFORCBhIT00MSkKLSAgICAgICAgIE9SIChkPj0xMy4w IEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTMuMCBBTkQg ZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzIg QU5EIDc0KSBBTkQgYSE9NzMpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjU0MSw3ICs2NTQx LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBiPTMzMwogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicp Ci0gICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9NDA3CiAgICAgICAgICBPUiBhPTUKICAgICAgICAgIE9SIGI9ODE3CkBAIC02 NTYwLDcgKzY1NjAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGI9MzMzCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xP QiAnYmNkZWYqJykKLSAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj00MDcKICAgICAgICAgIE9SIGE9NQogICAgICAgICAgT1Ig Yj04MTcKQEAgLTY3MTMsNyArNjcxMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAneHl6YWIqJykKICAgICAgICAg IE9SIGM9MzIwMzIKICAgICAgICAgIE9SIGI9Mjg5CkBAIC02NzMxLDcgKzY3MzEsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49My4w IEFORCBkPDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zLjAgQU5EIGQ8 NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBm IEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBjPTMyMDMyCiAgICAgICAgICBPUiBiPTI4 OQpAQCAtNjc4NiwxMSArNjc4NiwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo ZiBHTE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAgICAgICAgIE9SIGI9OTAy CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYpIEFORCBhIT02NSkKLSAgICAg ICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0n ZmVkY2JheicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9SIGI9MjQyCiAgICAg ICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKLSAgICAgICAgIE9S IChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Fw b25tbGsnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjgw OSwxMSArNjgwOSwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZiBHTE9CICc/ cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAgICAgICAgIE9SIGI9OTAyCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYpIEFORCBhIT02NSkKLSAgICAgICAgIE9SIChk Pj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBB TkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZmVkY2Jheicg QU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9SIGI9MjQyCiAgICAgICAgICBPUiAo Zz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKLSAgICAgICAgIE9SIChkPj05MS4w IEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTEuMCBBTkQg ZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFO RCBmIEdMT0IgJ3Fyc3R1KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtNjgzMiw3ICs2ODMy LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03ODEKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDY2IEFORCA2OCkgQU5EIGEhPTY3KQogICAgICAgICAgT1IgZD4xZTEwCi0g ICAgICAgICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4xODAuMT4KQEAgLTY4NTAsNyArNjg1 MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NzgxCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA2NiBBTkQgNjgpIEFORCBhIT02NykKICAgICAgICAgIE9SIGQ+MWUxMAot ICAgICAgICAgT1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMTgwLjI+CkBAIC02ODY4LDcgKzY4 NjgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZiBHTE9CICc/amtsbSonIEFO RCBmIEdMT0IgJ2lqa2wqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU3IEFORCA1OSkg QU5EIGEhPTU4KQogICAgICAgICAgT1IgYT03NgotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5E IGQ8MjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYg R0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGI9MTc2CiAgIF1dKQpAQCAtNjg4OCw3ICs2 ODg4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xPQiAnP2prbG0qJyBB TkQgZiBHTE9CICdpamtsKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NyBBTkQgNTkp IEFORCBhIT01OCkKICAgICAgICAgIE9SIGE9NzYKLSAgICAgICAgIE9SIChkPj0yMy4wIEFO RCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwy NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBm IEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBiPTE3NgogICBdXSkKQEAgLTY5MDYsNyAr NjkwNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdwb25tbGtqJyBBTkQg ZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBB TkQgYSE9NjApCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZGVmZ2gq JykKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBP UiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OCBBTkQgOTApIEFORCBhIT04OSkK QEAgLTY5MjYsNyArNjkyNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdw b25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYg R0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicp CiAgICAgICAgICBPUiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OCBBTkQgOTAp IEFORCBhIT04OSkKQEAgLTY5NDUsNyArNjk0NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3RzcnFwb24nIEFORCBmIEdMT0Ig J3phYmNkKicpCiAgICAgICAgICBPUiBiPTI4NgotICAgICAgICAgT1IgKGQ+PTMxLjAgQU5E IGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMy LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkxCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkKICAgXV0pCkBAIC02OTYyLDcgKzY5 NjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAgICAgICAgT1IgYj0y ODYKLSAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj05MQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDMgQU5EIDQ1KSBBTkQg YSE9NDQpCiAgIF1dKQpAQCAtNzA3MSw4ICs3MDcxLDggQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYj0yMzQKICAgICAgICAgIE9SIGI9NjQxCiAgICAgICAgICBPUiAoZiBHTE9C ICc/b3BxcionIEFORCBmIEdMT0IgJ25vcHEqJykKLSAgICAgICAgIE9SIChkPj0xMi4wIEFO RCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTgKICAgXV0pCiAgICAgZW5kLCB7CkBAIC03 MDkyLDggKzcwOTIsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTIzNAogICAg ICAgICAgT1IgYj02NDEKICAgICAgICAgIE9SIChmIEdMT0IgJz9vcHFyKicgQU5EIGYgR0xP QiAnbm9wcSonKQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT05OAogICBdXSkKICAgICBlbmQsIHsKQEAgLTcxMTQsOCArNzExNCw4IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdyc3R1 dionKQogICAgICAgICAgT1IgYj02OQogICAgICAgICAgT1IgYj0xMDAxCi0gICAgICAgICBP UiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+ PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4w IEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBB TkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMn IEFORCBmIEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMiBBTkQg MzQpIEFORCBhIT0zMykKICAgXV0pCkBAIC03MTM3LDggKzcxMzcsOCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAg ICAgICAgIE9SIGI9NjkKICAgICAgICAgIE9SIGI9MTAwMQotICAgICAgICAgT1IgKGQ+PTI2 LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yMy4wIEFO RCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwy Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBH TE9CICdkZWZnaConKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzIgQU5EIDM0KSBBTkQg YSE9MzMpCiAgIF1dKQpAQCAtNzE4OCw3ICs3MTg4LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMpCiAgICAgICAgICBP UiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NiBBTkQgNTgpIEFORCBhIT01NykK LSAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT02NgogICBdXSkKICAgICBlbmQsIHsKQEAgLTcyMDcsNyArNzIwNyw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDcyIEFORCA3NCkgQU5EIGEh PTczKQogICAgICAgICAgT1IgYj0xNAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYgQU5E IDU4KSBBTkQgYSE9NTcpCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC03MjIy LDcgKzcyMjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MjMwMjMK LSAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT02NgogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3phYmNk KicpCiAgICAgICAgICBPUiBhPTUxCkBAIC03MjQxLDcgKzcyNDEsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKICAgICAgIFdIRVJFIGM9MjMwMjMKLSAgICAgICAgIE9SIChkPj04My4wIEFO RCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODMuMCBBTkQgZDw4 NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NgogICAgICAgICAgT1Ig KGc9J29ubWxramknIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiBhPTUxCkBA IC03Mjk1LDkgKzcyOTUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBmPSdlZmdo aWprbG0nCiAgICAgICAgICBPUiBhPTgKICAgICAgICAgIE9SIGE9ODAKLSAgICAgICAgIE9S IChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yNTYK LSAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkK ICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjE5My4xPgpAQCAtNzMxNiw5ICs3 MzE2LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgZj0nZWZnaGlqa2xtJwogICAg ICAgICAgT1IgYT04CiAgICAgICAgICBPUiBhPTgwCi0gICAgICAgICBPUiAoZD49MzQuMCBB TkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM0LjAgQU5EIGQ8 MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjU2Ci0gICAgICAgICBP UiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4xOTMuMj4KQEAgLTczMzEsNyArNzMzMSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04Ny4w IEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODcuMCBBTkQg ZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MzYKICAgICAgICAg IE9SIChmIEdMT0IgJz9kZWZnKicgQU5EIGYgR0xPQiAnY2RlZionKQogICAgICAgICAgT1Ig KGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2lqa2xtKicpCkBAIC03MzUwLDcgKzczNTAsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg3LjAg QU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODM2CiAgICAg ICAgICBPUiAoZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKICAgICAgICAg IE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdpamtsbSonKQpAQCAtNzM3NCw5ICs3Mzc0 LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjIgQU5EIDY0 KSBBTkQgYSE9NjMpCiAgICAgICAgICBPUiBjPTYwMDYKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDUwIEFORCA1MikgQU5EIGEhPTUxKQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8 MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OCBBTkQgOTAp IEFORCBhIT04OSkKLSAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBO VUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjE5NS4xPgpA QCAtNzM5NCw5ICs3Mzk0LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNjIgQU5EIDY0KSBBTkQgYSE9NjMpCiAgICAgICAgICBPUiBjPTYwMDYKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDUwIEFORCA1MikgQU5EIGEhPTUxKQotICAgICAgICAgT1Ig KGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x Mi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA4OCBBTkQgOTApIEFORCBhIT04OSkKLSAgICAgICAgIE9SIChkPj00My4wIEFORCBk PDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjE5NS4yPgpAQCAtNzQxMyw3ICs3NDEzLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAgICAgICAgICBP UiBhPTEzCiAgICAgICAgICBPUiBiPTEyMQotICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8 NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00NC4wIEFORCBkPDQ1LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMiBBTkQgMTQp IEFORCBhIT0xMykKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICdzdHV2 dyonKQogICAgICAgICAgT1IgYj02NjAKQEAgLTc0MzUsNyArNzQzNSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE0IEFORCAxNikgQU5EIGEhPTE1KQog ICAgICAgICAgT1IgYT0xMwogICAgICAgICAgT1IgYj0xMjEKLSAgICAgICAgIE9SIChkPj00 NC4wIEFORCBkPDQ1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQuMCBB TkQgZDw0NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MTIgQU5EIDE0KSBBTkQgYSE9MTMpCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYg R0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SIGI9NjYwCkBAIC03NDU3LDEwICs3NDU3LDEw IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NDk1CiAgICAgICAgICBPUiBiPTE1 NwogICAgICAgICAgT1IgKGYgR0xPQiAnP3Z3eHkqJyBBTkQgZiBHTE9CICd1dnd4KicpCi0g ICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTU5LjAgQU5EIGQ8NjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQogICAgICAgICAgT1IgKGc9 J3h3dnV0c3InIEFORCBmIEdMT0IgJ2hpamtsKicpCi0gICAgICAgICBPUiAoZD49MS4wIEFO RCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0nd3h5emFiY2RlJwogICBdXSkK ICAgICBlbmQsIHsKQEAgLTc0NzgsMTAgKzc0NzgsMTAgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYj00OTUKICAgICAgICAgIE9SIGI9MTU3CiAgICAgICAgICBPUiAoZiBHTE9C ICc/dnd4eSonIEFORCBmIEdMT0IgJ3V2d3gqJykKLSAgICAgICAgIE9SIChkPj01OS4wIEFO RCBkPDYwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2 MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBm IEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAn aGlqa2wqJykKLSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBmPSd3eHl6YWJjZGUnCiAgIF1dKQogICAgIGVuZCwgewpAQCAtNzYwNCw3 ICs3NjA0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J29ubWxramknIEFO RCBmIEdMT0IgJ3l6YWJjKicpCiAgICAgICAgICBPUiBiPTg5MQogICAgICAgICAgT1IgYT00 MAotICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjAxLjE+CkBAIC03NjI0LDcg Kzc2MjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5E IGYgR0xPQiAneXphYmMqJykKICAgICAgICAgIE9SIGI9ODkxCiAgICAgICAgICBPUiBhPTQw Ci0gICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yMDEuMj4KQEAgLTc2MzcsMTMg Kzc2MzcsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBh PTMyCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9OTUKICAgICAgICAgIE9SIGQ+MWUxMAogICAgICAgICAgT1IgYj00MjkK LSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3l6YWJjKicpCiAgICAgICAgICBPUiBj PTEwMDEwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MyBBTkQgODUpIEFORCBhIT04NCkK QEAgLTc2NTksMTMgKzc2NTksMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwotICAgICAgV0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTMyCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTUKICAgICAgICAgIE9SIGQ+MWUxMAogICAgICAg ICAgT1IgYj00MjkKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3l6YWJjKicpCiAg ICAgICAgICBPUiBjPTEwMDEwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MyBBTkQgODUp IEFORCBhIT04NCkKQEAgLTc3MjYsMTMgKzc3MjYsMTMgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiAzNCBBTkQgMzYpIEFORCBhIT0zNSkKLSAgICAg ICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBhPTgzCiAg ICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAg IE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gOTkgQU5EIDEwMSkgQU5EIGEhPTEwMCkKLSAgICAgICAgIE9SIChkPj0xMi4w IEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQg ZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDkyCiAgICAgICAg ICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGI9 MjUKQEAgLTc3NDksMTMgKzc3NDksMTMgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSAoKGEgQkVUV0VFTiAzNCBBTkQgMzYpIEFORCBhIT0zNSkKLSAgICAgICAgIE9SIChk Pj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTcu MCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBv bm0nIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBhPTgzCiAgICAgICAgICBP UiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIChnPSdr amloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g OTkgQU5EIDEwMSkgQU5EIGEhPTEwMCkKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDkyCiAgICAgICAgICBPUiAoZz0n c3JxcG9ubScgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGI9MjUKQEAgLTc3 NzYsNyArNzc3Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd4d3Z1dHNy JyBBTkQgZiBHTE9CICdmZ2hpaionKQogICAgICAgICAgT1IgYT01MAogICAgICAgICAgT1Ig KGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ29wcXJzKicpCi0gICAgICAgICBPUiAoZD49NTMu MCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5E IGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAg IC0tIDx3aGVyZTctMi4yMDUuMT4KQEAgLTc3OTQsNyArNzc5NCw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdmZ2hpaionKQogICAg ICAgICAgT1IgYT01MAogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ29w cXJzKicpCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4yMDUuMj4KQEAgLTc4 MzYsNyArNzgzNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj04OTEK LSAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgZj0nbm9wcXJzdHV2JwogICBdXSkKICAgICBlbmQsIHsKQEAgLTc4NTEsNyArNzg1 MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj04OTEKLSAgICAgICAg IE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0n bm9wcXJzdHV2JwogICBdXSkKICAgICBlbmQsIHsKQEAgLTc5MjksOSArNzkyOSw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj00MC4w IEFORCBkPDQxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDAuMCBBTkQg ZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT03NwotICAgICAgICAg T1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj04NS4wIEFORCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwg ewogICAgICAgICAtLSA8d2hlcmU3LTIuMjEwLjE+CkBAIC03OTQ0LDkgKzc5NDQsOSBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NDAu MCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQwLjAgQU5E IGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NzcKLSAgICAgICAg IE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjIxMC4yPgpAQCAtNzk1OSwxMSArNzk1OSwxMSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY2LjAg QU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEKICAgICAg ICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCi0gICAgICAgICBPUiAoZD49Mzgu MCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAgQU5E IGQ8MzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTkKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC03OTc3LDExICs3OTc3LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj0xMQogICAgICAgICAgT1IgKGc9J2ZlZGNiYXonIEFO RCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNCBBTkQgMTYp IEFORCBhIT0xNSkKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT05OQogICBdXSkKICAgICBlbmQsIHsKQEAgLTgwMDEsNyAr ODAwMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYwIEFO RCA2MikgQU5EIGEhPTYxKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTAgQU5EIDkyKSBB TkQgYSE9OTEpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5IEFORCAxMSkgQU5EIGEhPTEw KQotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9S IGI9ODAKICAgXV0pCkBAIC04MDIyLDcgKzgwMjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA2MCBBTkQgNjIpIEFORCBhIT02MSkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDkwIEFORCA5MikgQU5EIGEhPTkxKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gOSBBTkQgMTEpIEFORCBhIT0xMCkKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBk PDUzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdM T0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiBiPTgwCiAgIF1dKQpAQCAtODEzMyw3ICs4MTMz LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49My4w IEFORCBkPDQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2Jh JyBBTkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYj0xMDE1CiAgICAgICAgICBP UiBjPTE2MDE2CkBAIC04MTUzLDcgKzgxNTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49My4wIEFORCBkPDQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ29wcXJzKicpCiAgICAg ICAgICBPUiBiPTEwMTUKICAgICAgICAgIE9SIGM9MTYwMTYKQEAgLTgxNzQsNyArODE3NCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3l4d3Z1dHMnIEFORCBm IEdMT0IgJ2JjZGVmKicpCi0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjQxCiAgICAgICAgICBPUiBiPTc5NQogICBdXSkK QEAgLTgxOTAsNyArODE5MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg KGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCi0gICAgICAgICBPUiAoZD49NDQu MCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5E IGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjQxCiAgICAgICAg ICBPUiBiPTc5NQogICBdXSkKQEAgLTgyMDYsOCArODIwNiw4IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgZj0nZmdoaWprbG1uJwotICAgICAgICAgT1IgKGQ+PTQ0LjAg QU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNS4wIEFORCBk PDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4w IEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi4yMTguMT4KQEAgLTgyMjEsOCArODIyMSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgZj0nZmdoaWprbG1uJwotICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8 NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4y MTguMj4KQEAgLTgyNzMsMTEgKzgyNzMsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj04ODAKLSAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj0xMDg5CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OSBBTkQg NzEpIEFORCBhIT03MCkKICAgICAgICAgIE9SIGYgSVMgTlVMTApAQCAtODI5NCwxMSArODI5 NCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVS RSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+ PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xMi4w IEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcuMCBBTkQg ZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8 MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg4MAotICAgICAgICAgT1Ig KGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04 Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwODkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY5IEFORCA3MSkgQU5EIGEhPTcwKQogICAgICAg ICAgT1IgZiBJUyBOVUxMCkBAIC04Mzk2LDExICs4Mzk2LDExIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGM9MTgwMTgKICAgICAgICAgIE9SIGI9NzkyCiAgICAgICAgICBPUiAo Zz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKLSAgICAgICAgIE9SIChkPj03Ny4w IEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49OC4wIEFORCBk PDkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgZj0ndXZ3eHl6YWJjJwotICAgICAgICAgT1IgKGQ+PTc0 LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NC4wIEFO RCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuMjIzLjE+CkBAIC04NDE4LDExICs4NDE4LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGM9MTgwMTgKICAgICAgICAgIE9SIGI9NzkyCiAgICAgICAg ICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKLSAgICAgICAgIE9SIChk Pj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49OC4w IEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05MS4wIEFORCBk PDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4w IEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0ndXZ3eHl6YWJjJwotICAgICAgICAgT1Ig KGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMjIzLjI+CkBAIC04NDM2LDcgKzg0MzYsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NDI5Ci0gICAgICAgICBPUiAoZD49MzMu MCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTMzLjAgQU5E IGQ8MzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9mZ2hp KicgQU5EIGYgR0xPQiAnZWZnaConKQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBm IEdMT0IgJ29wcXJzKicpCiAgICAgICAgICBPUiBiPTEwNzAKQEAgLTg0NTQsNyArODQ1NCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00MjkKLSAgICAgICAgIE9S IChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xP QiAnP2ZnaGkqJyBBTkQgZiBHTE9CICdlZmdoKicpCiAgICAgICAgICBPUiAoZz0ncXBvbm1s aycgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SIGI9MTA3MApAQCAtODY2OCw5 ICs4NjY4LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFO RCBmIEdMT0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYp IEFORCBhIT02NSkKICAgICAgICAgIE9SIGI9NjgyCi0gICAgICAgICBPUiAoZD49MzQuMCBB TkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM0LjAgQU5EIGQ8 MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQg ZiBHTE9CICdub3BxcionKQotICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjMx LjE+CkBAIC04Njg4LDkgKzg2ODgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo Zz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDY0IEFORCA2NikgQU5EIGEhPTY1KQogICAgICAgICAgT1IgYj02ODIKLSAgICAgICAg IE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J2xramloZ2YnIEFORCBmIEdMT0IgJ25vcHFyKicpCi0gICAgICAgICBPUiAoZD49MjIuMCBB TkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8 MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4yMzEuMj4KQEAgLTg3MzcsMTQgKzg3MzcsMTQgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTU1LjAgQU5EIGQ8NTYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01NS4wIEFORCBkPDU2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdhYmNkZWZnaGknCiAgICAgICAgICBP UiBiPTI2NwogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicp CiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgICAg ICAgIE9SIGE9ODIKICAgICAgICAgIE9SIGE9NTQKLSAgICAgICAgIE9SIChkPj0xNi4wIEFO RCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwx Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDc4CiAgIF1dKQogICAg IGVuZCwgewpAQCAtODc1OCwxNCArODc1OCwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgICAgICAgIE9SIGI9MjY3CiAg ICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnYWJjZGUqJykKICAgICAgICAg IE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYT04 MgogICAgICAgICAgT1IgYT01NAotICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwNzgKICAgXV0pCiAgICAgZW5kLCB7CkBA IC04Nzc5LDkgKzg3NzksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGY9J2hpamtsbW5vcCcKLSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjIzNC4xPgpAQCAtODc5NCw5ICs4Nzk0LDkgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTkzLjAgQU5EIGQ8OTQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBmPSdoaWprbG1ub3AnCi0gICAgICAgICBPUiAoZD49MzQuMCBB TkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM0LjAgQU5EIGQ8 MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4yMzQuMj4KQEAgLTg4MTMsNyArODgxMyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQogICAgICAg ICAgT1IgYT0xOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9 MzIpCi0gICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIDEwMDAwMDA8YgogICAgICAgICAgT1IgKGYgR0xPQiAnP3BxcnMqJyBBTkQg ZiBHTE9CICdvcHFyKicpCiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAn bG1ub3AqJykKQEAgLTg4MzQsNyArODgzNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQogICAgICAgICAgT1IgYT0x OAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCi0gICAg ICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IDEwMDAwMDA8YgogICAgICAgICAgT1IgKGYgR0xPQiAnP3BxcnMqJyBBTkQgZiBHTE9CICdv cHFyKicpCiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnbG1ub3AqJykK QEAgLTg4NTQsNyArODg1NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9MTAw MQogICAgICAgICAgT1IgYj0xNjgKICAgICAgICAgIE9SIChmIEdMT0IgJz9pamtsKicgQU5E IGYgR0xPQiAnaGlqayonKQotICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjM2 LjE+CkBAIC04ODcwLDcgKzg4NzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBi PTEwMDEKICAgICAgICAgIE9SIGI9MTY4CiAgICAgICAgICBPUiAoZiBHTE9CICc/aWprbCon IEFORCBmIEdMT0IgJ2hpamsqJykKLSAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjIzNi4yPgpAQCAtODk1Nyw3ICs4OTU3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAg ICAgT1IgYj01MjAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ3IEFORCA0OSkgQU5EIGEh PTQ4KQpAQCAtODk3NCw3ICs4OTc0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9u KCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICBXSEVSRSAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAgICAg T1IgYj01MjAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ3IEFORCA0OSkgQU5EIGEhPTQ4 KQpAQCAtOTAzMCw3ICs5MDMwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj04 OAogICAgICAgICAgT1IgZj0naGlqa2xtbm9wJwogICAgICAgICAgT1IgYj04MDYKLSAgICAg ICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj04OAogICBdXSkKICAgICBlbmQsIHsKQEAgLTkwNTEsNyArOTA1MSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGI9ODgKICAgICAgICAgIE9SIGY9J2hpamtsbW5vcCcKICAg ICAgICAgIE9SIGI9ODA2Ci0gICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgKICAgXV0pCiAgICAgZW5kLCB7CkBAIC05MDY2 LDEwICs5MDY2LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj04MTcK LSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT0zNgogICAgICAgICAgT1IgYj05NjAKLSAgICAgICAgIE9SIChkPj02My4wIEFO RCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2 NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zNzQKICAgICAgICAgIE9S IGI9OTM4CiAgICAgICAgICBPUiBiPTc3MwpAQCAtOTA4OCwxMCArOTA4OCwxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9ODE3Ci0gICAgICAgICBPUiAoZD49NTUu MCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU1LjAgQU5E IGQ8NTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MzYKICAgICAgICAg IE9SIGI9OTYwCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9Mzc0CiAgICAgICAgICBPUiBiPTkzOAogICAgICAgICAgT1Ig Yj03NzMKQEAgLTkxNzUsMTIgKzkxNzUsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYj0zOTkKICAgICAgICAgIE9SIGI9MTAwNAogICAgICAgICAgT1IgYz0xNjAxNgotICAg ICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTY3MQogICAgICAgICAgT1IgYT0yNQogICAgICAgICAgT1IgYT0zMAogICAgICAgICAg T1IgYT04Ci0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI0NS4xPgpAQCAtOTE5Nywx MiArOTE5NywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTM5OQogICAgICAg ICAgT1IgYj0xMDA0CiAgICAgICAgICBPUiBjPTE2MDE2Ci0gICAgICAgICBPUiAoZD49MzEu MCBBTkQgZDwzMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTMxLjAgQU5E IGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjcxCiAgICAgICAg ICBPUiBhPTI1CiAgICAgICAgICBPUiBhPTMwCiAgICAgICAgICBPUiBhPTgKLSAgICAgICAg IE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTUuMCBBTkQgZDw2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMjQ1LjI+CkBAIC05MjIwLDcgKzkyMjAsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTU5NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MzkgQU5EIDQxKSBBTkQgYSE9NDApCiAgICAgICAgICBPUiBiPTg2MQotICAgICAgICAgT1Ig KGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05 MC4wIEFORCBkPDkxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk0OQog ICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAg ICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnY2RlZmcqJykKQEAgLTkyNDEsNyArOTI0 MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NTk0CiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzOSBBTkQgNDEpIEFORCBhIT00MCkKICAgICAgICAgIE9SIGI9ODYxCi0g ICAgICAgICBPUiAoZD49OTAuMCBBTkQgZDw5MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9OTQ5CiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnc3R1dncq JykKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdjZGVmZyonKQpAQCAt OTM4Nyw3ICs5Mzg3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3d2dXRz cnEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NiBB TkQgNjgpIEFORCBhIT02NykKICAgICAgICAgIE9SIGI9MzQ0Ci0gICAgICAgICBPUiAoZD49 ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAg QU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi4yNTEuMT4KQEAgLTk0MDQsNyArOTQwNCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdtbm9wcSonKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjYgQU5EIDY4KSBBTkQgYSE9NjcpCiAgICAgICAg ICBPUiBiPTM0NAotICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjUxLjI+CkBA IC05NDU1LDcgKzk0NTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTI4CiAg ICAgICAgICBPUiBiPTQ0MwogICAgICAgICAgT1IgYj0zNjMKLSAgICAgICAgIE9SIChkPj0y OC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBB TkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02MAogICAgICAg ICAgT1IgYj04MAogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3Z3eHl6 KicpCkBAIC05NDc2LDcgKzk0NzYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBh PTI4CiAgICAgICAgICBPUiBiPTQ0MwogICAgICAgICAgT1IgYj0zNjMKLSAgICAgICAgIE9S IChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02MAog ICAgICAgICAgT1IgYj04MAogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0Ig J3Z3eHl6KicpCkBAIC05NDkzLDcgKzk0OTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NjYwCiAgIF1dKQogICAgIGVuZCwgewpAQCAtOTUwNyw3 ICs5NTA3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAg V0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTY2MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTk2MDMsMTEgKzk2MDMsMTEgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj04NTAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMy IEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj05MjQKLSAgICAgICAgIE9SIChk Pj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Nzgu MCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5E IGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFORCBk PDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1NQotICAgICAgICAg T1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTYu MCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAg QU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi4yNTcuMT4KQEAgLTk2MjYsMTEgKzk2MjYsMTEgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj04NTAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMy IEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj05MjQKLSAgICAgICAgIE9SIChk Pj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Nzgu MCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5E IGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFORCBk PDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1NQotICAgICAgICAg T1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTYu MCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAg QU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi4yNTcuMj4KQEAgLTk2NDMsNyArOTY0Myw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj00Ni4wIEFORCBk PDQ3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDYuMCBBTkQgZDw0Ny4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05ODIKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDgxIEFORCA4MykgQU5EIGEhPTgyKQogICAgICAgICAgT1IgYj0zNzQKQEAg LTk2NTksNyArOTY1OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj05ODIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDgxIEFORCA4MykgQU5EIGEh PTgyKQogICAgICAgICAgT1IgYj0zNzQKQEAgLTk2NzcsNyArOTY3Nyw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4g ODcgQU5EIDg5KSBBTkQgYSE9ODgpCiAgICAgICAgICBPUiBiPTgxNAotICAgICAgICAgT1Ig KGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x OS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMjU5LjE+CkBAIC05NjkyLDcgKzk2OTIsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRX RUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAgICAgT1IgYj04MTQKLSAgICAgICAg IE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MTkuMCBBTkQgZDwyMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI1OS4yPgpAQCAtOTcwNiw3ICs5NzA2LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0ncXBvbm1saycgQU5EIGYgR0xP QiAnbm9wcXIqJykKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj05OTMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC05NzIxLDcg Kzk3MjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdxcG9ubWxr JyBBTkQgZiBHTE9CICdub3BxcionKQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk5MwogICBdXSkKICAgICBlbmQsIHsK QEAgLTk3NDMsNyArOTc0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjQy CiAgICAgICAgICBPUiBhPTU5CiAgICAgICAgICBPUiBiPTEwNDUKLSAgICAgICAgIE9SIChk Pj04LjAgQU5EIGQ8OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBB TkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuMjYxLjE+CkBAIC05NzY0LDcgKzk3NjQsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBiPTI0MgogICAgICAgICAgT1IgYT01OQogICAgICAgICAgT1Ig Yj0xMDQ1Ci0gICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI2MS4yPgpAQCAtOTc4Miw4 ICs5NzgyLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYz0zMDAzCiAgICAgICAg ICBPUiAoZiBHTE9CICc/YmNkZSonIEFORCBmIEdMT0IgJ2FiY2QqJykKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEhPTY5KQotICAgICAgICAgT1IgKGQ+PTEu MCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MzMuMCBBTkQg ZDwzNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzEgQU5EIDczKSBB TkQgYSE9NzIpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtOTgwMiw4ICs5ODAyLDggQEAgdGVz dDpkb190ZXN0KAogICAgICAgICAgT1IgYz0zMDAzCiAgICAgICAgICBPUiAoZiBHTE9CICc/ YmNkZSonIEFORCBmIEdMT0IgJ2FiY2QqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY4 IEFORCA3MCkgQU5EIGEhPTY5KQotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzEgQU5EIDczKSBBTkQgYSE9NzIpCiAgIF1d KQogICAgIGVuZCwgewpAQCAtOTgyNiw3ICs5ODI2LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYj0xMDIzCiAgICAgICAgICBPUiBhPTEwMAogICAgICAgICAgT1IgKGc9J25t bGtqaWgnIEFORCBmIEdMT0IgJ2RlZmdoKicpCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQg ZDw5OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi4yNjMuMT4KQEAgLTk4NDgsNyArOTg0OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgIE9SIGI9MTAyMwogICAgICAgICAgT1IgYT0xMDAKICAgICAgICAgIE9SIChnPSdu bWxramloJyBBTkQgZiBHTE9CICdkZWZnaConKQotICAgICAgICAgT1IgKGQ+PTk3LjAgQU5E IGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMjYzLjI+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDkzIEFORCA5 NSkgQU5EIGEhPTk0KQogICAgICAgICAgT1IgYT03OQotICAgICAgICAgT1IgKGQ+PTM5LjAg QU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBk PDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ2MgogICBdXSkKICAg ICBlbmQsIHsKQEAgLTk5MTEsNyArOTkxMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOTMgQU5EIDk1KSBBTkQg YSE9OTQpCiAgICAgICAgICBPUiBhPTc5Ci0gICAgICAgICBPUiAoZD49MzkuMCBBTkQgZDw0 MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDYyCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtOTkyNSw3ICs5OTI1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTE0NgogICAgICAgICAgT1IgMTAwMDAwMDxiCiAgICAgICAgICBPUiBi PTk5CkBAIC05OTQyLDcgKzk5NDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCi0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MTQ2CiAgICAgICAgICBPUiAxMDAwMDAwPGIKICAgICAgICAgIE9S IGI9OTkKQEAgLTk5NjIsMTQgKzk5NjIsMTQgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hF UkUgYj05MzUKICAgICAgICAgIE9SIGI9NDczCiAgICAgICAgICBPUiBhPTI4Ci0gICAgICAg ICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDYyIEFORCA2NCkgQU5EIGEhPTYzKQogICAgICAgICAgT1IgYT02MgogICAg ICAgICAgT1IgYj02MTkKICAgICAgICAgIE9SIGE9ODIKLSAgICAgICAgIE9SIChkPj02Ny4w IEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjcuMCBBTkQg ZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0xNDAxNAotICAgICAg ICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjY3LjE+CkBAIC05OTg1LDE0ICs5OTg1LDE0 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9OTM1CiAgICAgICAgICBPUiBiPTQ3 MwogICAgICAgICAgT1IgYT0yOAotICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MiBBTkQgNjQpIEFORCBh IT02MykKICAgICAgICAgIE9SIGE9NjIKICAgICAgICAgIE9SIGI9NjE5CiAgICAgICAgICBP UiBhPTgyCi0gICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGM9MTQwMTQKLSAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjI2Ny4yPgpAQCAtMTAxNjYsNyArMTAxNjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIChnPSdubWxramloJyBBTkQgZiBHTE9CICdiY2RlZionKQotICAgICAgICAg T1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTc1 CiAgICAgICAgICBPUiBiPTk2MAogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdM T0IgJ3l6YWJjKicpCkBAIC0xMDE4OCw3ICsxMDE4OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCi0gICAg ICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGE9NzUKICAgICAgICAgIE9SIGI9OTYwCiAgICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5E IGYgR0xPQiAneXphYmMqJykKQEAgLTEwMjQxLDggKzEwMjQxLDggQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYT0yMwogICAgICAgICAgT1IgYj03NDgKICAgICAgICAgIE9SIGI9 NDA3Ci0gICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTk3OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTUgQU5EIDE3KSBBTkQgYSE9MTYpCiAg IF1dKQpAQCAtMTAyNjEsOCArMTAyNjEsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiBhPTIzCiAgICAgICAgICBPUiBiPTc0OAogICAgICAgICAgT1IgYj00MDcKLSAgICAgICAg IE9SIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+ PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00LjAg QU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg3LjAgQU5E IGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTc5CiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAxNSBBTkQgMTcpIEFORCBhIT0xNikKICAgXV0pCkBAIC0xMDM0 OCw3ICsxMDM0OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9OTc5CiAgICAg ICAgICBPUiBiPTI3NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYgQU5EIDU4KSBBTkQg YSE9NTcpCi0gICAgICAgICBPUiAoZD49NDEuMCBBTkQgZDw0Mi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9NTM5CiAgICAgICAgICBPUiBhPTg3CiAgIF1dKQpAQCAtMTAzNjgs NyArMTAzNjgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTk3OQogICAgICAg ICAgT1IgYj0yNzUKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkgQU5EIGEh PTU3KQotICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTUzOQogICAgICAgICAgT1IgYT04NwogICBdXSkKQEAgLTEwNDI3LDcg KzEwNDI3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFORCBhIT04MSkKICAgICAgICAgIE9S IChmIEdMT0IgJz9qa2xtKicgQU5EIGYgR0xPQiAnaWprbConKQotICAgICAgICAgT1IgKGQ+ PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4w IEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA0OSBBTkQgNTEpIEFORCBhIT01MCkKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQg ZiBHTE9CICdiY2RlZionKQogICBdXSkKQEAgLTEwNDQ0LDcgKzEwNDQ0LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VF TiA4MCBBTkQgODIpIEFORCBhIT04MSkKICAgICAgICAgIE9SIChmIEdMT0IgJz9qa2xtKicg QU5EIGYgR0xPQiAnaWprbConKQotICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0OSBBTkQgNTEpIEFORCBh IT01MCkKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdiY2RlZionKQog ICBdXSkKQEAgLTEwNTI5LDE1ICsxMDUyOSwxNSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9MzIyCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwy MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9C ICdwcXJzdConKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3d4eXph KicpCiAgICAgICAgICBPUiBiPTQzMgogICAgICAgICAgT1IgYj01NQogICAgICAgICAgT1Ig YT01MwotICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZiBHTE9CICc/aWprbConIEFORCBmIEdMT0IgJ2hpamsqJykKICAgICAg ICAgIE9SIGI9MjUKICAgXV0pCkBAIC0xMDU1MiwxNSArMTA1NTIsMTUgQEAgdGVzdDpkb190 ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTM4LjAgQU5EIGQ8 MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zOC4wIEFORCBkPDM5LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTMyMgotICAgICAgICAgT1IgKGQ+ PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4w IEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZmVkY2Jh eicgQU5EIGYgR0xPQiAncHFyc3QqJykKICAgICAgICAgIE9SIChnPSdvbm1sa2ppJyBBTkQg ZiBHTE9CICd3eHl6YSonKQogICAgICAgICAgT1IgYj00MzIKICAgICAgICAgIE9SIGI9NTUK ICAgICAgICAgIE9SIGE9NTMKLSAgICAgICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2lqa2wqJyBBTkQgZiBHTE9CICdo aWprKicpCiAgICAgICAgICBPUiBiPTI1CiAgIF1dKQpAQCAtMTA2MTcsNyArMTA2MTcsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZiBHTE9CICc/cHFycyonIEFORCBmIEdM T0IgJ29wcXIqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU5IEFORCA2MSkgQU5EIGEh PTYwKQogICAgICAgICAgT1IgYj03NTEKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJl Ny0yLjI4NC4xPgpAQCAtMTA2MzgsNyArMTA2MzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgICBPUiAoZiBHTE9CICc/cHFycyonIEFORCBmIEdMT0IgJ29wcXIqJykKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDU5IEFORCA2MSkgQU5EIGEhPTYwKQogICAgICAgICAgT1IgYj03 NTEKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI4NC4yPgpAQCAtMTA2NTEs NyArMTA2NTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49MzIuMCBBTkQgZDwzMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9OTI3CiAgICAgICAgICBPUiBiPTI3NQogICAgICAgICAgT1IgYj0zOTYKQEAgLTEwNjcz LDcgKzEwNjczLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAg ICAgV0hFUkUgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdI RVJFIChkPj0zMi4wIEFORCBkPDMzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTkyNwogICAgICAgICAgT1IgYj0yNzUKICAgICAgICAgIE9SIGI9Mzk2CkBAIC0xMDY5 OCwxNCArMTA2OTgsMTQgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGc9J3d2dXRz cnEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBiPTcxOAogICAgICAgICAg T1IgZj0ndnd4eXphYmNkJwotICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndHV2d3gq JykKICAgICAgICAgIE9SIChmIEdMT0IgJz91dnd4KicgQU5EIGYgR0xPQiAndHV2dyonKQot ICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA2NiBBTkQgNjgpIEFORCBhIT02NykKICAgICAgICAgIE9SIChn PSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICAgICAgICAgT1IgKGYgR0xPQiAn P2tsbW4qJyBBTkQgZiBHTE9CICdqa2xtKicpCi0gICAgICAgICBPUiAoZD49MTEuMCBBTkQg ZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi4yODYuMT4KQEAgLTEwNzIxLDE0ICsxMDcyMSwxNCBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICBXSEVSRSAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAg ICAgIE9SIGI9NzE4CiAgICAgICAgICBPUiBmPSd2d3h5emFiY2QnCi0gICAgICAgICBPUiAo ZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk4 LjAgQU5EIGQ8OTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdramlo Z2ZlJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3V2d3gq JyBBTkQgZiBHTE9CICd0dXZ3KicpCi0gICAgICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY2IEFORCA2OCkgQU5E IGEhPTY3KQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2prbG1uKicp CiAgICAgICAgICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKLSAg ICAgICAgIE9SIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI4Ni4yPgpAQCAtMTA3NDYsNyArMTA3 NDYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTg2MQogICAgICAgICAgT1Ig Yj0xMDgxCiAgICAgICAgICBPUiBiPTU3MgotICAgICAgICAgT1IgKGQ+PTQuMCBBTkQgZDw1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTEKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDk5IEFORCAxMDEpIEFORCBhIT0xMDApCiAgICAgICAgICBPUiBhPTg5CkBAIC0xMDc2 OCw3ICsxMDc2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9ODYxCiAgICAg ICAgICBPUiBiPTEwODEKICAgICAgICAgIE9SIGI9NTcyCi0gICAgICAgICBPUiAoZD49NC4w IEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00LjAgQU5EIGQ8 NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xMQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gOTkgQU5EIDEwMSkgQU5EIGEhPTEwMCkKICAgICAgICAgIE9SIGE9ODkK QEAgLTEwNzg4LDkgKzEwNzg4LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0y MzEKICAgICAgICAgIE9SIGI9Mzg4CiAgICAgICAgICBPUiBkPDAuMAotICAgICAgICAgT1Ig KGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z OS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwNDUK LSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkK ICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI4OC4xPgpAQCAtMTA4MDYsOSAr MTA4MDYsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTIzMQogICAgICAgICAg T1IgYj0zODgKICAgICAgICAgIE9SIGQ8MC4wCi0gICAgICAgICBPUiAoZD49MzkuMCBBTkQg ZDw0MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA0NQotICAgICAgICAgT1Ig KGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x Mi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuMjg4LjI+CkBAIC0xMDgyMiw3ICsxMDgyMiw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj01MjgKLSAgICAgICAgIE9SIChkPj01 My4wIEFORCBkPDU0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBB TkQgZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NjIKICAgXV0p CiAgICAgZW5kLCB7CkBAIC0xMDgzNyw3ICsxMDgzNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgYj01MjgKLSAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NjIKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0xMDg4MSwxMSArMTA4ODEsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDk2IEFORCA5OCkgQU5EIGEhPTk3KQotICAgICAgICAgT1IgKGQ+ PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj00LjAg QU5EIGQ8NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8 MjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00LjAgQU5EIGQ8NS4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjI5MS4xPgpAQCAtMTA4OTgsMTEgKzEwODk4LDExIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01Mi4wIEFORCBkPDUzLjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5NiBBTkQgOTgpIEFORCBhIT05NykK LSAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4yOTEuMj4KQEAgLTEwOTE5LDcgKzEwOTE5LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYz02MDA2CiAgICAgICAgICBPUiBiPTIzMQog ICAgICAgICAgT1IgYj0yMTIKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2tsbW5v KicpCiAgICAgICAgICBPUiBjPTMwMDMwCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5E IGYgR0xPQiAnYWJjZGUqJykKQEAgLTEwOTM5LDcgKzEwOTM5LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYz02MDA2CiAgICAgICAgICBPUiBiPTIzMQogICAgICAgICAgT1Ig Yj0yMTIKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCiAgICAgICAg ICBPUiBjPTMwMDMwCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYgR0xPQiAnYWJj ZGUqJykKQEAgLTExMDMxLDExICsxMTAzMSwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdn aGlqayonKQogICAgICAgICAgT1IgYT0zCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2 NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9vcHFyKicgQU5EIGYg R0xPQiAnbm9wcSonKQogICAgICAgICAgT1IgYj00OTgKICAgICAgICAgIE9SIGE9MTAwCi0g ICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYT02 OQogICBdXSkKQEAgLTExMDUyLDExICsxMTA1MiwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg IFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9C ICdnaGlqayonKQogICAgICAgICAgT1IgYT0zCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQg ZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9vcHFyKicgQU5E IGYgR0xPQiAnbm9wcSonKQogICAgICAgICAgT1IgYj00OTgKICAgICAgICAgIE9SIGE9MTAw Ci0gICAgICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1Ig YT02OQogICBdXSkKQEAgLTExMDczLDcgKzExMDczLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0naWhnZmVkYycgQU5EIGYgR0xP QiAnZWZnaGkqJykKICAgICAgICAgIE9SIGI9MzAwCi0gICAgICAgICBPUiAoZD49Ny4wIEFO RCBkPDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03LjAgQU5EIGQ8OC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OAogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNTUgQU5EIDU3KSBBTkQgYSE9NTYpCiAgICAgICAgICBPUiAoZz0nbm1sa2pp aCcgQU5EIGYgR0xPQiAnZGVmZ2gqJykKQEAgLTExMDgxLDcgKzExMDgxLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj0yMzQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQz IEFORCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgZj0nZ2hpamtsbW5vJwotICAgICAg ICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMjk2LjE+CkBAIC0xMTA5Niw3ICsxMTA5Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg KGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBPUiBiPTMwMAot ICAgICAgICAgT1IgKGQ+PTcuMCBBTkQgZDw4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9NTgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU1IEFORCA1NykgQU5EIGEhPTU2KQog ICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2RlZmdoKicpCkBAIC0xMTEw NCw3ICsxMTEwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjM0CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkKICAgICAgICAgIE9S IGY9J2doaWprbG1ubycKLSAgICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjI5Ni4y PgpAQCAtMTExMjUsNyArMTExMjUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTgg QU5EIDIwKSBBTkQgYSE9MTkpCi0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9naGlqKicgQU5EIGYgR0xPQiAn ZmdoaSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1KSBBTkQgYSE9NTQp CiAgIF1dKQpAQCAtMTExNDgsNyArMTExNDgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCi0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0 Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9naGlqKicgQU5EIGYg R0xPQiAnZmdoaSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1KSBBTkQg YSE9NTQpCiAgIF1dKQpAQCAtMTEzOTksNyArMTEzOTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDcuMCBBTkQgZDw0OC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd4eXph YionKQogICAgICAgICAgT1IgYT02OAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5E IDE2KSBBTkQgYSE9MTUpCkBAIC0xMTQxNSw3ICsxMTQxNSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00Ny4wIEFORCBkPDQ4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3h5 emFiKicpCiAgICAgICAgICBPUiBhPTY4CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNCBB TkQgMTYpIEFORCBhIT0xNSkKQEAgLTExNDMxLDcgKzExNDMxLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTEwLjAgQU5EIGQ8MTEu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMC4wIEFORCBkPDExLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbGtqaWhnZicgQU5EIGYgR0xPQiAn bG1ub3AqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMTQ0NSw3ICsxMTQ0NSw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xMC4w IEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTAuMCBBTkQg ZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2xramloZ2YnIEFO RCBmIEdMT0IgJ2xtbm9wKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTE0NjIsMTAgKzEx NDYyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9MzIKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDE1IEFORCAxNykgQU5EIGEhPTE2KQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gOTIgQU5EIDk0KSBBTkQgYSE9OTMpCi0gICAgICAgICBPUiAoZD49ODYuMCBBTkQg ZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9NzAwNwogICAgICAgICAgT1Ig Yj05NjgKLSAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMwNi4xPgpAQCAtMTE0 ODEsMTAgKzExNDgxLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9MzIKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDE1IEFORCAxNykgQU5EIGEhPTE2KQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gOTIgQU5EIDk0KSBBTkQgYSE9OTMpCi0gICAgICAgICBPUiAoZD49 ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAg QU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9NzAwNwogICAg ICAgICAgT1IgYj05NjgKLSAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMwNi4y PgpAQCAtMTE1NjcsMTIgKzExNTY3LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYT02NwogICAgICAgICAgT1IgYj0xMzUKICAgICAgICAgIE9SIGY9 J2JjZGVmZ2hpaicKICAgICAgICAgIE9SIGI9OTI0Ci0gICAgICAgICBPUiAoZD49MjIuMCBB TkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8 MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi4zMDkuMT4KQEAgLTExNTg1LDEyICsxMTU4NSwxMiBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2 MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjcKICAgICAgICAgIE9SIGI9MTM1 CiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgICAgICAgICBPUiBiPTkyNAotICAgICAg ICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzA5LjI+CkBAIC0xMTYzMiw3ICsxMTYzMiw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMzQgQU5E IDM2KSBBTkQgYSE9MzUpCi0gICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM1IEFORCAzNykgQU5EIGEhPTM2 KQogICAgICAgICAgT1IgYT00OQogICAgICAgICAgT1IgYT0zOApAQCAtMTE2NTUsNyArMTE2 NTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDM0 IEFORCAzNikgQU5EIGEhPTM1KQotICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNSBBTkQgMzcpIEFORCBh IT0zNikKICAgICAgICAgIE9SIGE9NDkKICAgICAgICAgIE9SIGE9MzgKQEAgLTExNzYxLDgg KzExNzYxLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTAg QU5EIDEyKSBBTkQgYSE9MTEpCiAgICAgICAgICBPUiBmPSdsbW5vcHFyc3QnCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKLSAgICAgICAgIE9SIChk Pj02NC4wIEFORCBkPDY1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Ny4w IEFORCBkPDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBk PDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI8MAogICAgICAgICAgT1IgYj0y MzEKICAgICAgICAgIE9SIGE9MTQKQEAgLTExNzgyLDggKzExNzgyLDggQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCiAg ICAgICAgICBPUiBmPSdsbW5vcHFyc3QnCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBB TkQgMzkpIEFORCBhIT0zOCkKLSAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI8MAogICAgICAgICAgT1IgYj0yMzEKICAgICAgICAgIE9SIGE9MTQK QEAgLTExODAxLDEzICsxMTgwMSwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9OTA1CiAgICAgICAgICBPUiBmPSdoaWprbG1ub3An Ci0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQotICAg ICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiAoZz0ndXRz cnFwbycgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz9tbm9w KicgQU5EIGYgR0xPQiAnbG1ubyonKQogICAgICAgICAgT1IgYj04MTcKLSAgICAgICAgIE9S IChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsK ICAgICAgICAgLS0gPHdoZXJlNy0yLjMxNS4xPgpAQCAtMTE4MjIsMTMgKzExODIyLDEzIEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj05 MDUKICAgICAgICAgIE9SIGY9J2hpamtsbW5vcCcKLSAgICAgICAgIE9SIChkPj00NS4wIEFO RCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwy Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAn Y2RlZmcqJykKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd3eHl6YSon KQogICAgICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBBTkQgZiBHTE9CICdsbW5vKicpCiAg ICAgICAgICBPUiBiPTgxNwotICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzE1 LjI+CkBAIC0xMTg0Myw3ICsxMTg0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2hpamts KicpCiAgICAgICAgICBPUiBiPTMxMQotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ4CiAgICAgICAgICBPUiAoZz0ncG9u bWxraicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBB TkQgZiBHTE9CICd2d3h5eionKQpAQCAtMTE4NjYsNyArMTE4NjYsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdoZ2ZlZGNiJyBB TkQgZiBHTE9CICdoaWprbConKQogICAgICAgICAgT1IgYj0zMTEKLSAgICAgICAgIE9SIChk Pj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjEu MCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00OAogICAg ICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBP UiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAndnd4eXoqJykKQEAgLTExODg3LDE0ICsxMTg4 NywxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA3 MAogICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3Z3eHl6KicpCi0gICAg ICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MjIuMCBBTkQgZDwyMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMgot ICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9 J3R1dnd4eXphYicKICAgICAgICAgIE9SIGE9NzIKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDUzIEFORCA1NSkgQU5EIGEhPTU0KQpAQCAtMTE5MTAsMTQgKzExOTEwLDE0IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj05NS4wIEFO RCBkPDk2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTUuMCBBTkQgZDw5 Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDcwCiAgICAgICAgICBP UiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAndnd4eXoqJykKLSAgICAgICAgIE9SIChkPj00 NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjIuMCBB TkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8 NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTIyCi0gICAgICAgICBPUiAo ZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTYx LjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMS4wIEFO RCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQg ZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0ndHV2d3h5emFiJwog ICAgICAgICAgT1IgYT03MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1KSBB TkQgYSE9NTQpCkBAIC0xMTkzMyw3ICsxMTkzMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncXJzdHUqJykKICAg ICAgICAgIE9SIGE9MjEKICAgICAgICAgIE9SIGI9MTAyNgpAQCAtMTE5NTEsNyArMTE5NTEs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAo ZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04LjAg QU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAn IEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBhPTIxCiAgICAgICAgICBPUiBi PTEwMjYKQEAgLTEyMDA3LDcgKzEyMDA3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9NTQyCiAgICAgICAgICBPUiBiPTYzOAogICBdXSkKQEAgLTEyMDIy LDcgKzEyMDIyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAg ICAgV0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVS RSAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NTQyCiAgICAgICAgICBPUiBiPTYzOAogICBdXSkKQEAgLTEyMDQxLDcgKzEyMDQxLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0xMDcwCiAgICAgICAgICBPUiBhPTkxCiAg ICAgICAgICBPUiBiPTEwMTUKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2NkZWZn KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MSBBTkQgOTMpIEFORCBhIT05MikKICAg XV0pCkBAIC0xMjA2MCw3ICsxMjA2MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGI9MTA3MAogICAgICAgICAgT1IgYT05MQogICAgICAgICAgT1IgYj0xMDE1Ci0gICAgICAg ICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChn PSdpaGdmZWRjJyBBTkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gOTEgQU5EIDkzKSBBTkQgYSE9OTIpCiAgIF1dKQpAQCAtMTIxOTYsNyArMTIxOTYsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTQzMgogICAgICAgICAgT1IgMTAwMDAw MDxiCiAgICAgICAgICBPUiBhPTU4Ci0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzcKICAgICAgICAgIE9SIGI9NjA1CiAg IF1dKQpAQCAtMTIyMTgsNyArMTIyMTgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiBiPTQzMgogICAgICAgICAgT1IgMTAwMDAwMDxiCiAgICAgICAgICBPUiBhPTU4Ci0gICAg ICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9NzcKICAgICAgICAgIE9SIGI9NjA1CiAgIF1dKQpAQCAtMTIyMzMsNyArMTIyMzMsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg5LjAg QU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTgzCiAgICAg ICAgICBPUiBhPTYyCiAgIF1dKQpAQCAtMTIyNDgsNyArMTIyNDgsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49ODkuMCBBTkQgZDw5 MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTgzCiAgICAgICAgICBPUiBhPTYy CiAgIF1dKQpAQCAtMTIyNjUsMTEgKzEyMjY1LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gODQgQU5EIDg2KSBB TkQgYSE9ODUpCiAgICAgICAgICBPUiBmPSdwcXJzdHV2d3gnCi0gICAgICAgICBPUiAoZD49 NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5E IGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yNzgKICAgICAgICAg IE9SIGE9MTAKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkKICAgICAgICAgIE9S IChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1IgZj0ndXZ3 eHl6YWJjJwpAQCAtMTIyODcsMTEgKzEyMjg3LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gODQgQU5EIDg2KSBB TkQgYSE9ODUpCiAgICAgICAgICBPUiBmPSdwcXJzdHV2d3gnCi0gICAgICAgICBPUiAoZD49 NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5E IGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yNzgKICAgICAgICAg IE9SIGE9MTAKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkKICAgICAgICAgIE9S IChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1IgZj0ndXZ3 eHl6YWJjJwpAQCAtMTIzNTgsNyArMTIzNTgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkKICAgICAgICAgIE9SIGY9 J2FiY2RlZmdoaScKICAgICAgICAgIE9SIGE9NgotICAgICAgICAgT1IgKGQ+PTE3LjAgQU5E IGQ8MTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgogICBdXSkKICAgICBl bmQsIHsKQEAgLTEyMzc3LDcgKzEyMzc3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNjMgQU5EIDY1KSBBTkQgYSE9NjQpCiAgICAgICAgICBPUiBmPSdh YmNkZWZnaGknCiAgICAgICAgICBPUiBhPTYKLSAgICAgICAgIE9SIChkPj0xNy4wIEFORCBk PDE4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NjIKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0xMjQxOSw3ICsxMjQxOSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj02OTMKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBH TE9CICdpamtsbSonKQogICAgICAgICAgT1IgYj05NjgKQEAgLTEyNDM5LDcgKzEyNDM5LDcg QEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+ PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03Mi4w IEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5MwogICAg ICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAgICBP UiBiPTk2OApAQCAtMTI0NjEsNyArMTI0NjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MzIwMzIKICAgICAgICAgIE9SIGI9ODE0 Ci0gICAgICAgICBPUiAoZD49OTAuMCBBTkQgZDw5MS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9ODE0CiAgICAgICAgICBPUiBhPTc4CiAgICAgICAgICBPUiBhPTM3CkBAIC0x MjQ3OSw3ICsxMjQ3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgYz0zMjAzMgogICAgICAgICAgT1IgYj04MTQKLSAgICAgICAgIE9S IChkPj05MC4wIEFORCBkPDkxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 OTAuMCBBTkQgZDw5MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MTQK ICAgICAgICAgIE9SIGE9NzgKICAgICAgICAgIE9SIGE9MzcKQEAgLTEyNDk4LDcgKzEyNDk4 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0xOTAKICAgICAgICAgIE9SIChn PSdtbGtqaWhnJyBBTkQgZiBHTE9CICdoaWprbConKQogICAgICAgICAgT1IgYj05MjQKLSAg ICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj03NTkKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZion KQogICBdXSkKQEAgLTEyNTE2LDcgKzEyNTE2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAg V0hFUkUgYj0xOTAKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdoaWpr bConKQogICAgICAgICAgT1IgYj05MjQKLSAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQx LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03NTkKICAgICAgICAgIE9SIChnPSd5 eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQogICBdXSkKQEAgLTEyNTgzLDcgKzEyNTgz LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdM T0IgJ2doaWprKicpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnemFi Y2QqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIgQU5EIDQpIEFORCBhIT0zKQotICAg ICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAg IGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzM1LjE+CkBAIC0xMjYwNCw3ICsxMjYw NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBH TE9CICdnaGlqayonKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3ph YmNkKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyIEFORCA0KSBBTkQgYSE9MykKLSAg ICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjMzNS4yPgpAQCAtMTI2MTcsNyArMTI2 MTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDEzIEFORCAxNSkgQU5EIGEhPTE0KQogICAgICAgICAgT1IgYj02MzgKICAgICAg ICAgIE9SIGI9NDk1CkBAIC0xMjYzNyw3ICsxMjYzNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj03MC4wIEFORCBkPDcxLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTMgQU5EIDE1KSBBTkQgYSE9 MTQpCiAgICAgICAgICBPUiBiPTYzOAogICAgICAgICAgT1IgYj00OTUKQEAgLTEyNjU4LDkg KzEyNjU4LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBjPTgwMDgKLSAg ICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBP UiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z OS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAw LjAgQU5EIGQ8MTAxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MS4w IEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzAwCiAgICAg ICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9S IGE9NDEKQEAgLTEyNjgwLDkgKzEyNjgwLDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAg ICBXSEVSRSBjPTgwMDgKLSAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQg Tk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9MzAwCiAgICAgICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2Rl ZmcqJykKICAgICAgICAgIE9SIGE9NDEKQEAgLTEyNzA5LDcgKzEyNzA5LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj00ODQKICAgICAgICAgIE9SIGI9MTkwCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA5NSBBTkQgOTcpIEFORCBhIT05NikKLSAgICAgICAgIE9SIChk Pj03NC4wIEFORCBkPDc1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzQu MCBBTkQgZDw3NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21sa2pp aGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiBiPTEwMjMKICAgXV0pCkBA IC0xMjczMiw3ICsxMjczMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NDg0 CiAgICAgICAgICBPUiBiPTE5MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTUgQU5EIDk3 KSBBTkQgYSE9OTYpCi0gICAgICAgICBPUiAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQog ICAgICAgICAgT1IgYj0xMDIzCiAgIF1dKQpAQCAtMTI3NTAsNyArMTI3NTAsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkq JykKICAgICAgICAgIE9SIGE9MzQKICAgICAgICAgIE9SIGY9J3JzdHV2d3h5eicKLSAgICAg ICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj03MjkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xMjc2Nyw3ICsxMjc2Nyw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdlZmdoaSon KQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1IgZj0ncnN0dXZ3eHl6JwotICAgICAg ICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTcyOQogICBdXSkKICAgICBlbmQsIHsKQEAgLTEyNzgxLDcgKzEyNzgxLDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTM3LjAgQU5E IGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zNy4wIEFORCBkPDM4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwMDQKICAgICAgICAgIE9S IChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1IgZyBJUyBO VUxMCkBAIC0xMjc5Nyw3ICsxMjc5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj0xMDA0CiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYg R0xPQiAncHFyc3QqJykKICAgICAgICAgIE9SIGcgSVMgTlVMTApAQCAtMTI4MTUsMTEgKzEy ODE1LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYT03MwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzYgQU5EIDM4KSBBTkQgYSE9 MzcpCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQogICAgICAgICAg T1IgYT05Ci0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTQ0CiAgICAgICAgICBPUiBhPTIzCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5E IGYgR0xPQiAnYWJjZGUqJykKQEAgLTEyODM4LDExICsxMjgzOCwxMSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9NzMKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDM2IEFORCAzOCkgQU5EIGEhPTM3KQotICAgICAgICAgT1IgKGQ+ PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4w IEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA1MSBBTkQgNTMpIEFORCBhIT01MikKICAgICAgICAgIE9SIGE9OQotICAgICAgICAgT1Ig KGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NTUu MCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQg ZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1 Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NAogICAgICAgICAgT1Ig YT0yMwogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicpCkBA IC0xMjg2OCw3ICsxMjg2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdp aGdmZWRjJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1IgYT0xMwogICAgICAg ICAgT1IgYT0xNQotICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBhPTM2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTI4OTEsNyAr MTI4OTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5E IGYgR0xPQiAnYWJjZGUqJykKICAgICAgICAgIE9SIGE9MTMKICAgICAgICAgIE9SIGE9MTUK LSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT0zNgogICBdXSkKICAgICBlbmQsIHsKQEAgLTEyOTA3LDEwICsxMjkwNywxMCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9 OTM4CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NyBBTkQgNTkpIEFORCBhIT01OCkKLSAg ICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49MzIuMCBBTkQgZDwzMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0zMi4wIEFORCBkPDMzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI0 NQotICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzQzLjE+CkBAIC0xMjkyNSwx MCArMTI5MjUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSBiPTkzOAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTcgQU5EIDU5KSBB TkQgYSE9NTgpCi0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBO VUxMKQotICAgICAgICAgT1IgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzIuMCBBTkQgZDwzMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0yNDUKLSAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM0My4y PgpAQCAtMTI5NDgsOSArMTI5NDgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFORCBhIT0zMSkKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDk1IEFORCA5NykgQU5EIGEhPTk2KQogICAgICAgICAgT1IgYz0yNTAyNQotICAgICAg ICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUxLjAg QU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OS4wIEFO RCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzYuMCBBTkQg ZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjM0NC4xPgpAQCAtMTI5NzAsOSArMTI5NzAsOSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFORCBhIT0zMSkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDk1IEFORCA5NykgQU5EIGEhPTk2KQogICAgICAgICAg T1IgYz0yNTAyNQotICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM0NC4yPgpAQCAtMTMwMjcsNyArMTMw MjcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQg MjIpIEFORCBhIT0yMSkKICAgICAgICAgIE9SIGI9ODgwCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA4NSBBTkQgODcpIEFORCBhIT04NikKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBk PDc0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdM T0IgJ2JjZGVmKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTMwNDksNyArMTMwNDksNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQgMjIpIEFO RCBhIT0yMSkKICAgICAgICAgIE9SIGI9ODgwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4 NSBBTkQgODcpIEFORCBhIT04NikKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2Jj ZGVmKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTMxMDAsMTIgKzEzMTAwLDEyIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj05ODIKLSAgICAgICAgIE9SIChkPj00 NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDUuMCBB TkQgZDw0Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMzQKICAgICAg ICAgIE9SIGM9MTUwMTUKICAgICAgICAgIE9SIGE9NDcKICAgICAgICAgIE9SIGY9J3Fyc3R1 dnd4eScKLSAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIGI9NDQwCiAgICAgICAgICBPUiBiPTQ1 NApAQCAtMTMxMjIsMTIgKzEzMTIyLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAg V0hFUkUgYj05ODIKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0yMzQKICAgICAgICAgIE9SIGM9MTUwMTUKICAgICAgICAg IE9SIGE9NDcKICAgICAgICAgIE9SIGY9J3Fyc3R1dnd4eScKLSAgICAgICAgIE9SIChkPj02 NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjUuMCBB TkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MTQKICAgICAg ICAgIE9SIGI9NDQwCiAgICAgICAgICBPUiBiPTQ1NApAQCAtMTMxNDMsMTIgKzEzMTQzLDEy IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDcu MCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz03MDA3CiAg ICAgICAgICBPUiBiPTQyOQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjUgQU5EIDI3KSBB TkQgYSE9MjYpCiAgICAgICAgICBPUiBiPTIzMQotICAgICAgICAgT1IgKGQ+PTI2LjAgQU5E IGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTIyMDIyCiAgICAgICAgICBP UiBmPSdiY2RlZmdoaWonCiAgIF1dKQpAQCAtMTMxNjMsMTIgKzEzMTYzLDEyIEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00Ny4wIEFO RCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDcuMCBBTkQgZDw0 OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz03MDA3CiAgICAgICAgICBP UiBiPTQyOQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjUgQU5EIDI3KSBBTkQgYSE9MjYp CiAgICAgICAgICBPUiBiPTIzMQotICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTIyMDIyCiAgICAgICAgICBPUiBmPSdiY2Rl ZmdoaWonCiAgIF1dKQpAQCAtMTMxODQsNyArMTMxODQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGM9MTcwMTcKLSAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODggQU5EIDkwKSBB TkQgYSE9ODkpCiAgICAgICAgICBPUiBiPTc4NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MjIgQU5EIDI0KSBBTkQgYSE9MjMpCkBAIC0xMzIwNCw3ICsxMzIwNCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0xNzAxNwotICAgICAgICAgT1IgKGQ+PTYyLjAg QU5EIGQ8NjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Mi4wIEFORCBk PDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OCBB TkQgOTApIEFORCBhIT04OSkKICAgICAgICAgIE9SIGI9Nzg0CiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAyMiBBTkQgMjQpIEFORCBhIT0yMykKQEAgLTEzMjU4LDcgKzEzMjU4LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0xNTQKICAgICAgICAgIE9SIGE9MzAKICAg ICAgICAgIE9SIGM9MzAwMwotICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/eXphYionIEFORCBmIEdMT0IgJ3h5 emEqJykKICAgICAgICAgIE9SIGI9NTY0CiAgICAgICAgICBPUiBiPTU1CkBAIC0xMzI4MCw3 ICsxMzI4MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTU0CiAgICAgICAg ICBPUiBhPTMwCiAgICAgICAgICBPUiBjPTMwMDMKLSAgICAgICAgIE9SIChkPj04OC4wIEFO RCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4 OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3l6YWIqJyBB TkQgZiBHTE9CICd4eXphKicpCiAgICAgICAgICBPUiBiPTU2NAogICAgICAgICAgT1IgYj01 NQpAQCAtMTMyOTksNyArMTMyOTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGE9NTIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY2 IEFORCA2OCkgQU5EIGEhPTY3KQotICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu MzUzLjE+CkBAIC0xMzMxNCw3ICsxMzMxNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT01MgogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNjYgQU5EIDY4KSBBTkQgYSE9NjcpCi0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi4zNTMuMj4KQEAgLTEzMzU1LDE0ICsxMzM1NSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NzMuMCBBTkQgZDw3NC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjEwMjEKICAgICAgICAgIE9SIChnPSdsa2pp aGdmJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgZj0nemFiY2RlZmdoJwog ICAgICAgICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAg ICBPUiBiPTc4MQogICAgICAgICAgT1IgYT02NAotICAgICAgICAgT1IgKGQ+PTExLjAgQU5E IGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMS4wIEFORCBkPDEy LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuMzU1LjE+CkBAIC0xMzM3NSwxNCArMTMzNzUsMTQgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTczLjAgQU5EIGQ8NzQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03My4wIEFORCBkPDc0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTIxMDIxCiAgICAgICAgICBPUiAoZz0n bGtqaWhnZicgQU5EIGYgR0xPQiAnbm9wcXIqJykKICAgICAgICAgIE9SIGY9J3phYmNkZWZn aCcKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQogICAg ICAgICAgT1IgYj03ODEKICAgICAgICAgIE9SIGE9NjQKLSAgICAgICAgIE9SIChkPj0xMS4w IEFORCBkPDEyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTEuMCBBTkQg ZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjM1NS4yPgpAQCAtMTMzOTYsNyArMTMzOTYsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdwcXJzdCon KQotICAgICAgICAgT1IgKGQ+PTkwLjAgQU5EIGQ8OTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj05MC4wIEFORCBkPDkxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTM0CiAgICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnaWpr bG0qJykKICAgICAgICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBHTE9CICdrbG1ubyonKQpA QCAtMTM0MTcsNyArMTM0MTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdwcXJzdConKQotICAgICAgICAgT1IgKGQ+PTkw LjAgQU5EIGQ8OTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05MC4wIEFO RCBkPDkxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTM0CiAgICAgICAg ICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIChn PSdycXBvbm1sJyBBTkQgZiBHTE9CICdrbG1ubyonKQpAQCAtMTM0NDAsNyArMTM0NDAsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAn cHFyc3QqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz9xcnN0KicgQU5EIGYgR0xPQiAncHFy cyonKQogICAgICAgICAgT1IgYT00NQotICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuMzU3LjE+CkBAIC0xMzQ1Niw3ICsxMzQ1Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg IFdIRVJFIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1Ig KGYgR0xPQiAnP3Fyc3QqJyBBTkQgZiBHTE9CICdwcXJzKicpCiAgICAgICAgICBPUiBhPTQ1 Ci0gICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4zNTcuMj4KQEAgLTEzNDY5LDcg KzEzNDY5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIGI9MTY1CiAg ICAgICAgICBPUiBiPTgzNgpAQCAtMTM0ODUsNyArMTM0ODUsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTMuMCBBTkQgZDw1NC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdj ZGVmZyonKQogICAgICAgICAgT1IgYj0xNjUKICAgICAgICAgIE9SIGI9ODM2CkBAIC0xMzUz NSw5ICsxMzUzNSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYj00NDAKICAgICAgICAgIE9SIGE9MTkKLSAgICAgICAgIE9SIChkPj00 Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBB TkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0yMjAyMgotICAg ICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTkyCiAgICAgICAgICBPUiBiPTEwMjYKICAgICAgICAgIE9SIGI9NjA4CkBAIC0xMzU1 NSw5ICsxMzU1NSw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgYj00NDAKICAgICAgICAgIE9SIGE9MTkKLSAgICAgICAgIE9SIChkPj00 Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBB TkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0yMjAyMgotICAg ICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTkyCiAgICAgICAgICBPUiBiPTEwMjYKICAgICAgICAgIE9SIGI9NjA4CkBAIC0xMzU3 Nyw3ICsxMzU3Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9ODgKICAgICAg ICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd3eHl6YSonKQogICAgICAgICAgT1Ig Yz0yMzAyMwotICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTU2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMyBBTkQgMTUp IEFORCBhIT0xNCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9yc3R1KicgQU5EIGYgR0xPQiAn cXJzdConKQpAQCAtMTM1OTksNyArMTM1OTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBiPTg4CiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnd3h5emEq JykKICAgICAgICAgIE9SIGM9MjMwMjMKLSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01NgogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMTMgQU5EIDE1KSBBTkQgYSE9MTQpCiAgICAgICAgICBPUiAoZiBHTE9CICc/cnN0 dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKQEAgLTEzNjE3LDcgKzEzNjE3LDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5E IGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ny4wIEFORCBkPDk4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMiBBTkQg MjQpIEFORCBhIT0yMykKICAgICAgICAgIE9SIGE9NzQKICAgICAgICAgIE9SIChnPSd1dHNy cXBvJyBBTkQgZiBHTE9CICd1dnd4eSonKQpAQCAtMTM2MzQsNyArMTM2MzQsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTcuMCBB TkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8 OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFO RCAyNCkgQU5EIGEhPTIzKQogICAgICAgICAgT1IgYT03NAogICAgICAgICAgT1IgKGc9J3V0 c3JxcG8nIEFORCBmIEdMT0IgJ3V2d3h5KicpCkBAIC0xMzc4OCw3ICsxMzc4OCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGYgR0xPQiAnP2prbG0qJyBBTkQgZiBH TE9CICdpamtsKicpCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9MTU3CiAgICAgICAgICBPUiBiPTEwMjYKICAgXV0pCkBA IC0xMzgwNCw3ICsxMzgwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg KGYgR0xPQiAnP2prbG0qJyBBTkQgZiBHTE9CICdpamtsKicpCi0gICAgICAgICBPUiAoZD49 NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAg QU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTU3CiAgICAg ICAgICBPUiBiPTEwMjYKICAgXV0pCkBAIC0xMzk3Niw3ICsxMzk3Niw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFIGE9NjMKICAgICAgICAgIE9SIGE9NjkKICAgICAgICAgIE9S IGI9MzMzCi0gICAgICAgICBPUiAoZD49Ni4wIEFORCBkPDcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xMzUKICAgICAgICAgIE9SIGI9MjUKICAgICAgICAgIE9SIGI9MTAzNwpA QCAtMTM5OTgsNyArMTM5OTgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBhPTYz CiAgICAgICAgICBPUiBhPTY5CiAgICAgICAgICBPUiBiPTMzMwotICAgICAgICAgT1IgKGQ+ PTYuMCBBTkQgZDw3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Ni4wIEFO RCBkPDcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTM1CiAgICAgICAg ICBPUiBiPTI1CiAgICAgICAgICBPUiBiPTEwMzcKQEAgLTE0MDE4LDcgKzE0MDE4LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0nZWRjYmF6eScgQU5EIGYgR0xP QiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0xMTMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQwIEFO RCA0MikgQU5EIGEhPTQxKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1KSBB TkQgYSE9NTQpCkBAIC0xNDAzNiw3ICsxNDAzNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3d4eXphKicpCi0gICAgICAg ICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 MTEzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MCBBTkQgNDIpIEFORCBhIT00MSkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0KQpAQCAtMTQwNTQs NyArMTQwNTQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9MTAyNgot ICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzc0LjE+CkBAIC0xNDA2OCw3ICsx NDA2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0xMDI2Ci0gICAg ICAgICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4zNzQuMj4KQEAgLTE0MDkxLDcgKzE0MDkx LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0xMAogICAgICAgICAgT1IgZj0n bW5vcHFyc3R1JwogICAgICAgICAgT1IgYj05NDYKLSAgICAgICAgIE9SIChkPj05NS4wIEFO RCBkPDk2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTUuMCBBTkQgZDw5 Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0g PHdoZXJlNy0yLjM3NS4xPgpAQCAtMTQxMTQsNyArMTQxMTQsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgICBPUiBhPTEwCiAgICAgICAgICBPUiBmPSdtbm9wcXJzdHUnCiAgICAgICAg ICBPUiBiPTk0NgotICAgICAgICAgT1IgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj05NS4wIEFORCBkPDk2LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzc1LjI+CkBA IC0xNDEyNyw3ICsxNDEyNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYz0yMzAyMwogICAgICAgICAgT1IgYj00NjIKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDE3IEFORCAxOSkgQU5EIGEhPTE4KQpAQCAtMTQxNDMsNyArMTQxNDMsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTEu MCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTExLjAgQU5E IGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjMwMjMKICAgICAg ICAgIE9SIGI9NDYyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBh IT0xOCkKQEAgLTE0MTY1LDEwICsxNDE2NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBhPTE4CiAgICAgICAgICBPUiBjPTI0MDI0CiAgICAgICAgICBPUiAoZz0nd3Z1dHNy cScgQU5EIGYgR0xPQiAnamtsbW4qJykKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0Ig J3JzdHV2KicpCiAgICAgICAgICBPUiBjPTE5MDE5Ci0gICAgICAgICBPUiAoZD49ODcuMCBB TkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8 ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ0IEFO RCA0NikgQU5EIGEhPTQ1KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0MTg4LDEwICsxNDE4 OCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTE4CiAgICAgICAgICBPUiBj PTI0MDI0CiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnamtsbW4qJykK LSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBj PTE5MDE5Ci0gICAgICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ0IEFORCA0NikgQU5EIGEhPTQ1KQogICBdXSkK ICAgICBlbmQsIHsKQEAgLTE0MjA1LDkgKzE0MjA1LDkgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTIwCi0gICAgICAgICBPUiAoZD49OTQuMCBBTkQg ZDw5NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTIxCiAgICAgICAgICBPUiBh PTEwCiAgICAgICAgICBPUiBiPTc5MgpAQCAtMTQyMjMsOSArMTQyMjMsOSBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29y dChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTUuMCBBTkQg ZDwxNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjAKLSAgICAgICAgIE9SIChk Pj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTQu MCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMjEKICAg ICAgICAgIE9SIGE9MTAKICAgICAgICAgIE9SIGI9NzkyCkBAIC0xNDMwMywxMCArMTQzMDMs MTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05 Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZmVk Y2JheicgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIGE9NDYKLSAgICAgICAg IE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM4MS4xPgpAQCAtMTQzMTksMTAgKzE0MzE5LDEw IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChk Pj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcu MCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ZlZGNi YXonIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiBhPTQ2Ci0gICAgICAgICBP UiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi4zODEuMj4KQEAgLTE0MzM3LDcgKzE0MzM3LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0n aWhnZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDk3IEFORCA5OSkgQU5EIGEhPTk4KQotICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTku MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwNTYKICAgICAgICAgIE9SIGI9MTQ2 CiAgIF1dKQpAQCAtMTQzNTQsNyArMTQzNTQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdk ZWZnaConKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTcgQU5EIDk5KSBBTkQgYSE9OTgp Ci0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9MTA1NgogICAgICAgICAgT1IgYj0xNDYKICAgXV0pCkBAIC0xNDM3NSw3ICsx NDM3NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MzYKICAgICAgICAgIE9S IGI9NzM3CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMSBBTkQgMjMpIEFORCBhIT0yMikK LSAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT03NQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0Mzk1LDcgKzE0Mzk1LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0zNgogICAgICAgICAgT1IgYj03MzcKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDIxIEFORCAyMykgQU5EIGEhPTIyKQotICAgICAgICAg T1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTc1 CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTQ0MTEsOCArMTQ0MTEsOCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9OTAwOQogICAgICAg ICAgT1IgYT0zNAotICAgICAgICAgT1IgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIElTIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzE1CiAgICAgICAgICBPUiBiPTYxOQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gOTggQU5EIDEwMCkgQU5EIGEhPTk5KQpAQCAtMTQ0MzAsOCArMTQ0MzAsOCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM9OTAw OQogICAgICAgICAgT1IgYT0zNAotICAgICAgICAgT1IgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBB TkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIElTIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NzE1CiAgICAgICAgICBPUiBiPTYxOQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gOTggQU5EIDEwMCkgQU5EIGEhPTk5KQpAQCAtMTQ0NDcsNyArMTQ0 NDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDExIEFORCAxMykgQU5EIGEhPTEyKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NzQgQU5EIDc2KSBBTkQgYSE9NzUpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOSBBTkQg NDEpIEFORCBhIT00MCkKQEAgLTE0NDU2LDcgKzE0NDU2LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBHTE9CICdiY2RlKicpCiAgICAg ICAgICBPUiBiPTMwMAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjQgQU5EIDI2KSBBTkQg YSE9MjUpCi0gICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkzIEFORCA5NSkgQU5EIGEhPTk0KQogICBdXSkK ICAgICBlbmQsIHsKQEAgLTE0NDcwLDcgKzE0NDcwLDcgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMSBBTkQgMTMpIEFORCBhIT0x MikKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc0IEFORCA3NikgQU5EIGEhPTc1KQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQgYSE9NDApCkBAIC0xNDQ3OSw3 ICsxNDQ3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChmIEdMT0IgJz9jZGVm KicgQU5EIGYgR0xPQiAnYmNkZSonKQogICAgICAgICAgT1IgYj0zMDAKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDI0IEFORCAyNikgQU5EIGEhPTI1KQotICAgICAgICAgT1IgKGQ+PTIx LjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFO RCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5 MyBBTkQgOTUpIEFORCBhIT05NCkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNDQ5NCwxMyAr MTQ0OTQsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTg1Ci0gICAg ICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MjEyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNSBBTkQgMjcpIEFORCBhIT0yNikK ICAgICAgICAgIE9SIGI9MzYKICAgICAgICAgIE9SIGI9MjMxCiAgICAgICAgICBPUiBiPTEw NDgKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNjkgQU5EIDcxKSBBTkQgYSE9NzApCiAgICAgICAgICBP UiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9SIGM9MTkw MTkKQEAgLTE0NTE3LDEzICsxNDUxNywxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIGE9ODUKLSAgICAgICAgIE9SIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj0yMTIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI1IEFO RCAyNykgQU5EIGEhPTI2KQogICAgICAgICAgT1IgYj0zNgogICAgICAgICAgT1IgYj0yMzEK ICAgICAgICAgIE9SIGI9MTA0OAotICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OSBBTkQgNzEpIEFORCBh IT03MCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdyc3R1dionKQog ICAgICAgICAgT1IgYz0xOTAxOQpAQCAtMTQ1NDAsNyArMTQ1NDAsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDI4IEFORCAzMCkgQU5EIGEhPTI5 KQotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9MTA1OQogICAgICAgICAgT1IgYj02MzAKICAgXV0pCkBAIC0xNDU1Niw3ICsxNDU1 Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMjgg QU5EIDMwKSBBTkQgYSE9MjkpCi0gICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj0xMDU5CiAgICAgICAgICBPUiBiPTYzMAogICBdXSkK QEAgLTE0NjAzLDExICsxNDYwMywxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9MTAwMQogICAgICAgICAgT1IgKChhIEJFVFdFRU4g ODcgQU5EIDg5KSBBTkQgYSE9ODgpCi0gICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwxNi4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5E IGEhPTY5KQogICAgICAgICAgT1IgYT01OAogICAgICAgICAgT1IgYj0zMzMKLSAgICAgICAg IE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBiPTU3MgogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNTAgQU5EIDUyKSBBTkQgYSE9NTEpCkBAIC0xNDYyNiwx MSArMTQ2MjYsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSBiPTEwMDEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkg QU5EIGEhPTg4KQotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OCBBTkQgNzApIEFORCBhIT02OSkKICAg ICAgICAgIE9SIGE9NTgKICAgICAgICAgIE9SIGI9MzMzCi0gICAgICAgICBPUiAoZD49NDku MCBBTkQgZDw1MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5E IGQ8NTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBB TkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj01NzIKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDUwIEFORCA1MikgQU5EIGEhPTUxKQpAQCAtMTQ2NzgsNyArMTQ2NzgsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MTUwMTUKLSAgICAgICAgIE9S IChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21s a2ppaGcnIEFORCBmIEdMT0IgJ2hpamtsKicpCiAgICAgICAgICBPUiBiPTU4CiAgICAgICAg ICBPUiBiPTY3NApAQCAtMTQ2OTYsNyArMTQ2OTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGM9MTUwMTUKLSAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2hp amtsKicpCiAgICAgICAgICBPUiBiPTU4CiAgICAgICAgICBPUiBiPTY3NApAQCAtMTQ3NDQs MTYgKzE0NzQ0LDE2IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj01MjgK LSAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NjQuMCBBTkQgZDw2NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj02MzAKICAgICAgICAgIE9SIGE9MTkKICAgICAgICAgIE9SIChnPSdwb25tbGtq JyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgZj0nd3h5emFiY2RlJwogICAg ICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBP UiBiPTM3NwotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTc3Ci0gICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjM5My4x PgpAQCAtMTQ3NjcsMTYgKzE0NzY3LDE2IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAg V0hFUkUgYj01MjgKLSAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2NS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj02MzAKICAgICAgICAgIE9SIGE9MTkKICAgICAgICAgIE9S IChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgZj0nd3h5 emFiY2RlJwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3JzdHV2Kicp CiAgICAgICAgICBPUiBiPTM3NwotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTc3Ci0gICAgICAgICBPUiAoZD49OC4wIEFO RCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjM5My4yPgpAQCAtMTQ4MTksMTIgKzE0ODE5LDEyIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT02NAogICAgICAgICAgT1Ig KGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9CICdhYmNkKicpCi0gICAgICAgICBPUiAoZD49 NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU3LjAg QU5EIGQ8NTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25t JyBBTkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAgT1IgYz0xNDAxNAogICAgICAgICAg T1IgYj01ODYKICAgICAgICAgIE9SIGM9MjcwMjcKLSAgICAgICAgIE9SIChkPj04Ni4wIEFO RCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4 Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBm IEdMT0IgJ3d4eXphKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTQ4NDAsMTIgKzE0ODQw LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hF UkUgYT02NAogICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9CICdhYmNk KicpCi0gICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAg T1IgYz0xNDAxNAogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9SIGM9MjcwMjcKLSAg ICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMTQ4NjIsNyArMTQ4NjIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBh PTQ2CiAgICAgICAgICBPUiBiPTI5NwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTcgQU5E IDU5KSBBTkQgYSE9NTgpCi0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9Mjc1CiAgICAgICAgICBPUiBiPTkxCiAgICAgICAg ICBPUiBiPTEwMTUKQEAgLTE0ODg0LDcgKzE0ODg0LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgYT00NgogICAgICAgICAgT1IgYj0yOTcKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDU3IEFORCA1OSkgQU5EIGEhPTU4KQotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8 NzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI3NQogICAgICAgICAgT1IgYj05 MQogICAgICAgICAgT1IgYj0xMDE1CkBAIC0xNDkwNSwxNCArMTQ5MDUsMTQgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0na2ppaGdm ZScgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQg ZiBHTE9CICd6YWJjZConKQotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05OC4wIEFORCBkPDk5LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICdiY2RlZionKQogICAg ICAgICAgT1IgYT0yMwogICAgICAgICAgT1IgYj03MzcKLSAgICAgICAgIE9SIChkPj03MS4w IEFORCBkPDcyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzEuMCBBTkQg ZDw3Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTgg QU5EIDIwKSBBTkQgYSE9MTkpCi0gICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEh PTY5KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE0OTI4LDE0ICsxNDkyOCwxNCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdramlo Z2ZlJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFO RCBmIEdMT0IgJ3phYmNkKicpCi0gICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTk4LjAgQU5EIGQ8OTkuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAg ICAgICAgICBPUiBhPTIzCiAgICAgICAgICBPUiBiPTczNwotICAgICAgICAgT1IgKGQ+PTcx LjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03MS4wIEFO RCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAx OCBBTkQgMjApIEFORCBhIT0xOSkKLSAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjggQU5EIDcwKSBBTkQg YSE9NjkpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTQ5NTAsOSArMTQ5NTAsOSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9ODE0Ci0gICAgICAgICBPUiAoZD49NzEu MCBBTkQgZDw3Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcxLjAgQU5E IGQ8NzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9Mzc3Ci0gICAgICAg ICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi4zOTguMT4KQEAgLTE0OTY2LDkgKzE0OTY2LDkg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTgxNAotICAgICAgICAgT1Ig KGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 MS4wIEFORCBkPDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM3Nwot ICAgICAgICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuMzk4LjI+CkBAIC0xNDk4NSw3ICsx NDk4NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTA1OQogICAgICAgICAg T1IgKGYgR0xPQiAnP2FiY2QqJyBBTkQgZiBHTE9CICd6YWJjKicpCiAgICAgICAgICBPUiAo Zz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnYmNkZWYqJykKLSAgICAgICAgIE9SIChkPj05LjAg QU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05LjAgQU5EIGQ8 MTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQg ZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYj03OTUKICAgXV0pCkBAIC0xNTAwNCw3 ICsxNTAwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTA1OQogICAgICAg ICAgT1IgKGYgR0xPQiAnP2FiY2QqJyBBTkQgZiBHTE9CICd6YWJjKicpCiAgICAgICAgICBP UiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnYmNkZWYqJykKLSAgICAgICAgIE9SIChkPj05 LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05LjAgQU5E IGQ8MTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBB TkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYj03OTUKICAgXV0pCkBAIC0xNTAy Myw3ICsxNTAyMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9OTMKICAgICAg ICAgIE9SIGE9MTEKICAgICAgICAgIE9SIGY9J25vcHFyc3R1dicKLSAgICAgICAgIE9SIChk Pj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Mjcu MCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gMjIgQU5EIDI0KSBBTkQgYSE9MjMpCiAgICAgICAgICBPUiBhPTE3CiAgICAgICAgICBP UiBiPTM2NgpAQCAtMTUwNDMsNyArMTUwNDMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBhPTkzCiAgICAgICAgICBPUiBhPTExCiAgICAgICAgICBPUiBmPSdub3BxcnN0dXYn Ci0gICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIzKQogICAgICAgICAgT1Ig YT0xNwogICAgICAgICAgT1IgYj0zNjYKQEAgLTE1MTM1LDkgKzE1MTM1LDkgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5E IGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ny4wIEFORCBkPDk4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0NCBBTkQg NDYpIEFORCBhIT00NSkKLSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj02NjMKICAgICAgICAgIE9SIGI9NTMxCiAgICAgICAg ICBPUiBiPTE0NgpAQCAtMTUxNTcsOSArMTUxNTcsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBT RUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ0IEFORCA0NikgQU5EIGEhPTQ1 KQotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTY2MwogICAgICAgICAgT1IgYj01MzEKICAgICAgICAgIE9SIGI9MTQ2CkBA IC0xNTE4NCwxMCArMTUxODQsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J2xramloZ2YnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiBiPTcyNgogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNzMgQU5EIDc1KSBBTkQgYSE9NzQpCi0gICAgICAgICBP UiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjAw MgogICAgICAgICAgT1IgYz0xNTAxNQotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIwMQogICBdXSkKICAgICBlbmQsIHsK QEAgLTE1MjA2LDEwICsxNTIwNiwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo Zz0nbGtqaWhnZicgQU5EIGYgR0xPQiAnbW5vcHEqJykKICAgICAgICAgIE9SIGI9NzI2CiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MyBBTkQgNzUpIEFORCBhIT03NCkKLSAgICAgICAg IE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0y MDAyCiAgICAgICAgICBPUiBjPTE1MDE1Ci0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3 Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjAxCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMTUyNTUsMTAgKzE1MjU1LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAg ICAgICBPUiBiPTE5OAotICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMiBBTkQgMTQpIEFORCBhIT0xMykK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIwIEFORCAyMikgQU5EIGEhPTIxKQogICAgICAg ICAgT1IgYj0yODYKQEAgLTE1Mjc1LDEwICsxNTI3NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdtbm9w cSonKQogICAgICAgICAgT1IgYj0xOTgKLSAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1OS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTIgQU5EIDE0KSBB TkQgYSE9MTMpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQgMjIpIEFORCBhIT0y MSkKICAgICAgICAgIE9SIGI9Mjg2CkBAIC0xNTI5NiwxMiArMTUyOTYsMTIgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTI0MgotICAgICAgICAgT1IgKGQ+PTE3LjAg QU5EIGQ8MTguMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05OS4wIEFORCBk PDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTcgQU5EIDU5 KSBBTkQgYSE9NTgpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKLSAgICAgICAgIE9SIChkPj04OC4w IEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODguMCBBTkQg ZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zOAogICAgICAgICAg T1IgYj0xODcKICAgXV0pCkBAIC0xNTMxNywxMiArMTUzMTcsMTIgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCiAgICAgICBXSEVSRSBiPTI0MgotICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8 MTguMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTcgQU5EIDU5KSBBTkQg YSE9NTgpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKLSAgICAgICAgIE9SIChkPj04OC4wIEFORCBk PDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zOAogICAgICAgICAgT1IgYj0x ODcKICAgXV0pCkBAIC0xNTMzNywxMiArMTUzMzcsMTIgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTYzMAogICAgICAgICAgT1IgYT01NQogICAgICAg ICAgT1IgYz0yNjAyNgogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3Fy c3R1KicpCi0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40MDguMT4KQEAgLTE1 MzU1LDEyICsxNTM1NSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz Ci0gICAgICBXSEVSRSAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9NjMwCiAgICAgICAgICBPUiBhPTU1CiAgICAgICAgICBPUiBjPTI2MDI2CiAg ICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKLSAgICAgICAg IE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQwOC4yPgpAQCAtMTUzNzYsOSArMTUzNzYsOSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBmPSd1dnd4eXphYmMnCiAgICAgICAgICBP UiBmPSd4eXphYmNkZWYnCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAn YmNkZWYqJykKLSAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTEgQU5EIDUzKSBBTkQgYSE9NTIpCi0gICAg ICAgICBPUiAoZD49MzEuMCBBTkQgZDwzMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9NjkKICAgICAgICAgIE9SIChmIEdMT0IgJz9qa2xtKicgQU5EIGYgR0xPQiAnaWprbCon KQogICBdXSkKQEAgLTE1Mzk2LDkgKzE1Mzk2LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAg V0hFUkUgZj0ndXZ3eHl6YWJjJwogICAgICAgICAgT1IgZj0neHl6YWJjZGVmJwogICAgICAg ICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2JjZGVmKicpCi0gICAgICAgICBPUiAo ZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcw LjAgQU5EIGQ8NzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQotICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8 MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5CiAgICAgICAgICBPUiAoZiBH TE9CICc/amtsbSonIEFORCBmIEdMT0IgJ2lqa2wqJykKICAgXV0pCkBAIC0xNTQ1NCw3ICsx NTQ1NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MjAKICAgICAgICAgIE9S IChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYj05NDYK LSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT02NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTcgQU5EIDE5KSBBTkQgYSE9 MTgpCiAgICAgICAgICBPUiBiPTEwMDEKQEAgLTE1NDc2LDcgKzE1NDc2LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYT0yMAogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFO RCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBPUiBiPTk0NgotICAgICAgICAgT1IgKGQ+ PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4w IEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTY0CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKICAgICAgICAgIE9S IGI9MTAwMQpAQCAtMTU0OTQsOSArMTU0OTQsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGI9OTAyCi0gICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGE9ODYKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBk PDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjQxMi4xPgpAQCAtMTU1MTAsOSArMTU1MTAsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFIGI9OTAyCi0gICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9ODYKLSAgICAgICAgIE9SIChkPj05Ny4w IEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQg ZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjQxMi4yPgpAQCAtMTU1MjUsNyArMTU1MjUsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NTYuMCBBTkQgZDw1 Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MzIKICAgICAgICAgIE9SIChnPSdx cG9ubWxrJyBBTkQgZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1IgKGc9J3h3dnV0c3In IEFORCBmIEdMT0IgJ2VmZ2hpKicpCkBAIC0xNTU0Miw3ICsxNTU0Miw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01Ni4wIEFORCBk PDU3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTYuMCBBTkQgZDw1Ny4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgKGc9 J3Fwb25tbGsnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAgICBPUiAoZz0neHd2dXRz cicgQU5EIGYgR0xPQiAnZWZnaGkqJykKQEAgLTE1NTYyLDcgKzE1NTYyLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgV0hFUkUgYj0xNjgKICAgICAgICAgIE9SIGM9MjAwMgogICAgICAg ICAgT1IgYj03NwotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MTU1NzksNyArMTU1NzksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTE2OAog ICAgICAgICAgT1IgYz0yMDAyCiAgICAgICAgICBPUiBiPTc3Ci0gICAgICAgICBPUiAoZD49 MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAg QU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3Fyc3R1dnd4 eScKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNTY1MSw3ICsxNTY1MSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0zMi4wIEFORCBk PDMzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MzIuMCBBTkQgZDwzMy4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNwogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNTUgQU5EIDU3KSBBTkQgYSE9NTYpCiAgICAgICAgICBPUiAoZz0ndXRzcnFw bycgQU5EIGYgR0xPQiAndHV2d3gqJykKQEAgLTE1NjY3LDcgKzE1NjY3LDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTMyLjAgQU5E IGQ8MzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zMi4wIEFORCBkPDMz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTI3CiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA1NSBBTkQgNTcpIEFORCBhIT01NikKICAgICAgICAgIE9SIChnPSd1dHNy cXBvJyBBTkQgZiBHTE9CICd0dXZ3eConKQpAQCAtMTU2ODMsNyArMTU2ODMsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NzQuMCBB TkQgZDw3NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc0LjAgQU5EIGQ8 NzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzcKICAgXV0pCiAgICAg ZW5kLCB7CkBAIC0xNTY5Nyw3ICsxNTY5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj03NwogICBdXSkKICAgICBlbmQsIHsKQEAgLTE1NzE5LDcg KzE1NzE5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYg QU5EIDU4KSBBTkQgYSE9NTcpCiAgICAgICAgICBPUiBiPTU2MQogICAgICAgICAgT1IgYj0z NTIKLSAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAgICBP UiBhPTk1CiAgIF1dKQpAQCAtMTU3NDIsNyArMTU3NDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NiBBTkQgNTgpIEFORCBhIT01NykKICAgICAgICAg IE9SIGI9NTYxCiAgICAgICAgICBPUiBiPTM1MgotICAgICAgICAgT1IgKGQ+PTM3LjAgQU5E IGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYg R0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SIGE9OTUKICAgXV0pCkBAIC0xNTgwMyw5ICsx NTgwMyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MTcKICAgICAgICAgIE9S IGY9J2prbG1ub3BxcicKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUgQU5EIDcpIEFORCBh IT02KQotICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTIzCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40MjEu MT4KQEAgLTE1ODIyLDkgKzE1ODIyLDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1Ig YT0xNwogICAgICAgICAgT1IgZj0namtsbW5vcHFyJwogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNSBBTkQgNykgQU5EIGEhPTYpCi0gICAgICAgICBPUiAoZD49MzkuMCBBTkQgZDw0MC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM5LjAgQU5EIGQ8NDAuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjMKLSAgICAgICAgIE9SIChkPj0yNS4w IEFORCBkPDI2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjUuMCBBTkQg ZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjQyMS4yPgpAQCAtMTU4MzcsNyArMTU4MzcsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NzQuMCBBTkQgZDw3 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzYzCiAgICAgICAgICBPUiBiPTQ1 NAogICBdXSkKQEAgLTE1ODUyLDcgKzE1ODUyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1 bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VM RUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgYj00NTQKICAgXV0pCkBA IC0xNTk0Myw3ICsxNTk0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9NzgK ICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKICAgICAgICAgIE9SIChnPSdycXBvbm1sJyBB TkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu NDI1LjE+CkBAIC0xNTk2Niw3ICsxNTk2Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIGE9NzgKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKICAgICAgICAgIE9SIChnPSdy cXBvbm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTg1LjAgQU5E IGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuNDI1LjI+CkBAIC0xNTk4MCw3ICsxNTk4MCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj0xOTgKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zODgKICAgXV0pCiAgICAgZW5kLCB7 CkBAIC0xNTk5NSw3ICsxNTk5NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hF UkUgYj0xOTgKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj0zODgKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjA0OSw3ICsx NjA0OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01 NgogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2doaWprKicpCiAgIF1d KQpAQCAtMTYwNjQsNyArMTYwNjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCi0gICAgICBXSEVSRSAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9NTYKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9C ICdnaGlqayonKQogICBdXSkKQEAgLTE2MDgxLDcgKzE2MDgxLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBjPj0zNDAzNQogICAgICAg ICAgT1IgYj0xNjgKLSAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBHTE9CICdiY2RlKicp CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTYwOTcsNyArMTYwOTcsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM+PTM0MDM1CiAgICAg ICAgICBPUiBiPTE2OAotICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/Y2RlZionIEFORCBmIEdMT0IgJ2JjZGUq JykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjE0Myw3ICsxNjE0Myw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0yOS4wIEFORCBk PDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MjkuMCBBTkQgZDwzMC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdM T0IgJ29wcXJzKicpCiAgICAgICAgICBPUiBmPSdyc3R1dnd4eXonCiAgICAgICAgICBPUiAo Zz0ncXBvbm1saycgQU5EIGYgR0xPQiAnbm9wcXIqJykKQEAgLTE2MTU5LDcgKzE2MTU5LDcg QEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+ PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0yOS4w IEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncXBvbm1s aycgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SIGY9J3JzdHV2d3h5eicKICAg ICAgICAgIE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdub3BxcionKQpAQCAtMTYxNzcs NyArMTYxNzcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGI9NTgKICAgICAgICAgIE9SIGI9NDg0Ci0gICAgICAgICBPUiAoZD49Njgu MCBBTkQgZDw2OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY4LjAgQU5E IGQ8NjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjcxCiAgICAgICAg ICBPUiBhPTY5CiAgIF1dKQpAQCAtMTYxOTQsNyArMTYxOTQsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9NTgKICAgICAgICAgIE9S IGI9NDg0Ci0gICAgICAgICBPUiAoZD49NjguMCBBTkQgZDw2OS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTY4LjAgQU5EIGQ8NjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9NjcxCiAgICAgICAgICBPUiBhPTY5CiAgIF1dKQpAQCAtMTYyMTAs NyArMTYyMTAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGY9J21ub3Bx cnN0dScKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj04NjEKICAgICAgICAgIE9SIGI9NzcKICAgICAgICAgIE9SIGY9J3Fy c3R1dnd4eScKQEAgLTE2MjI3LDcgKzE2MjI3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSBmPSdtbm9wcXJzdHUnCi0gICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3 NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODYxCiAgICAgICAgICBPUiBiPTc3 CiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCkBAIC0xNjI0NCwxMiArMTYyNDQsMTIgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTExMwotICAgICAgICAgT1IgKGQ+ PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MS4w IEFORCBkPDUyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExMwogICAg ICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2VmZ2hpKicpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA2MiBBTkQgNjQpIEFORCBhIT02MykKICAgICAgICAgIE9SIGM9NjAw NgotICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xNC4wIEFORCBkPDE1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTk0NgogICAgICAgICAgT1IgYT04NgogICBdXSkKQEAgLTE2MjY1LDEyICsx NjI2NSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MTEzCi0gICAg ICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MTEzCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZWZnaGkqJykK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYyIEFORCA2NCkgQU5EIGEhPTYzKQogICAgICAg ICAgT1IgYz02MDA2Ci0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9OTQ2CiAgICAgICAgICBPUiBhPTg2CiAgIF1dKQpAQCAt MTYyODksNyArMTYyODksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA4IEFORCAxMCkgQU5EIGEhPTkpCiAgICAgICAgICBPUiBjPTIyMDIyCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA3OSBBTkQgODEpIEFORCBhIT04MCkKLSAgICAgICAgIE9SIChk Pj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Nzku MCBBTkQgZDw4MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0yNTAyNQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTE2MzA3LDcgKzE2MzA3LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOCBBTkQgMTApIEFORCBhIT05KQogICAgICAg ICAgT1IgYz0yMjAyMgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzkgQU5EIDgxKSBBTkQg YSE9ODApCi0gICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGM9MjUwMjUKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjM3MCw3ICsx NjM3MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdramloZ2ZlJyBBTkQg ZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYT0xMwogICAgICAgICAgT1IgKGc9J2Zl ZGNiYXonIEFORCBmIEdMT0IgJ3Fyc3R1KicpCi0gICAgICAgICBPUiAoZD49NjYuMCBBTkQg ZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8Njcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBH TE9CICdnaGlqayonKQogICAgICAgICAgT1IgYz0yOTAyOQogICAgICAgICAgT1IgYj0zMTEK QEAgLTE2MzkyLDcgKzE2MzkyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGc9 J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiBhPTEzCiAgICAg ICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUqJykKLSAgICAgICAgIE9S IChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NjYuMCBBTkQgZDw2Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3h3 dnV0c3InIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiBjPTI5MDI5CiAgICAg ICAgICBPUiBiPTMxMQpAQCAtMTY0MTUsOSArMTY0MTUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBhPTk2CiAgICAgICAgICBPUiBhPTIyCiAgICAgICAgICBPUiBiPTM0MQot ICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTg3MgotICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI1IEFORCAyNykgQU5EIGEhPTI2KQogICBdXSkK ICAgICBlbmQsIHsKQEAgLTE2NDM1LDkgKzE2NDM1LDkgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYT05NgogICAgICAgICAgT1IgYT0yMgogICAgICAgICAgT1IgYj0zNDEKLSAg ICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj04NzIKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNSBBTkQgMjcpIEFORCBhIT0yNikKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0xNjQ1MSwxMCArMTY0NTEsMTAgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd4eXphYionKQotICAg ICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA2MyBBTkQgNjUpIEFORCBhIT02NCkKICAgICAgICAgIE9SIGE9NDEK ICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdnaGlqayonKQpAQCAtMTY0 NzIsMTAgKzE2NDcyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykKLSAgICAgICAgIE9SIChkPj0zNi4w IEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQg ZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjMg QU5EIDY1KSBBTkQgYSE9NjQpCiAgICAgICAgICBPUiBhPTQxCiAgICAgICAgICBPUiAoZz0n eHd2dXRzcicgQU5EIGYgR0xPQiAnZ2hpamsqJykKQEAgLTE2NTIxLDggKzE2NTIxLDggQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQ0 LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yMS4wIEFO RCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDQuMCBBTkQgZDw0 NS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg0CiAgIF1dKQogICAgIGVu ZCwgewpAQCAtMTY1MzYsOCArMTY1MzYsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rp b24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBO VUxMKQotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj00ODQKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjU1MSwxNCArMTY1NTEs MTQgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0y Mi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM3Nwog ICAgICAgICAgT1IgYj0zNjMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU1IEFORCA1Nykg QU5EIGEhPTU2KQogICAgICAgICAgT1IgYj03MzcKLSAgICAgICAgIE9SIChkPj0xMDAuMCBB TkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQg ZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTA2Ci0gICAgICAg ICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 MTYKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xNjU3MiwxNCArMTY1NzIsMTQgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTIyLjAgQU5E IGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0yMi4wIEFORCBkPDIz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM3NwogICAgICAgICAgT1Ig Yj0zNjMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU1IEFORCA1NykgQU5EIGEhPTU2KQog ICAgICAgICAgT1IgYj03MzcKLSAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTA2Ci0gICAgICAgICBPUiAoZD49MjUu MCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5E IGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTYKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0xNjU5Niw3ICsxNjU5Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg IFdIRVJFIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAgICAgICAgT1Ig Yj0xMDIKICAgICAgICAgIE9SIGI9MjEyCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwz OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiAoZz0n aWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgXV0pCkBAIC0xNjYxNCw3ICsxNjYx NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdqaWhnZmVkJyBBTkQgZiBH TE9CICd6YWJjZConKQogICAgICAgICAgT1IgYj0xMDIKICAgICAgICAgIE9SIGI9MjEyCi0g ICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9NDg3CiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkq JykKICAgXV0pCkBAIC0xNjY2Myw3ICsxNjY2Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDU4IEFORCA2MCkgQU5EIGEhPTU5KQogICAgICAgICAgT1Ig KGYgR0xPQiAnP3d4eXoqJyBBTkQgZiBHTE9CICd2d3h5KicpCiAgICAgICAgICBPUiBiPTk1 NwotICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTY3CiAgICAgICAgICBPUiBhPTcyCiAgIF1dKQpAQCAtMTY2ODIsNyArMTY2 ODIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQg NjApIEFORCBhIT01OSkKICAgICAgICAgIE9SIChmIEdMT0IgJz93eHl6KicgQU5EIGYgR0xP QiAndnd4eSonKQogICAgICAgICAgT1IgYj05NTcKLSAgICAgICAgIE9SIChkPj00Mi4wIEFO RCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0 My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NwogICAgICAgICAgT1Ig YT03MgogICBdXSkKQEAgLTE2NzA3LDcgKzE2NzA3LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgZj0nZ2hpamtsbW5vJwogICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBm IEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MCBBTkQgOTIpIEFO RCBhIT05MSkKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQ0Ni4xPgpAQCAt MTY3MzAsNyArMTY3MzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBmPSdnaGlq a2xtbm8nCiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkwIEFORCA5MikgQU5EIGEhPTkxKQotICAgICAg ICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDQ2LjI+CkBAIC0xNjgxMSwxMSArMTY4MTEs MTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBiPTg5MQogICAgICAgICAgT1IgYj04MDYKLSAgICAgICAgIE9SIChkPj0xOS4wIEFORCBk PDIwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODUgQU5EIDg3 KSBBTkQgYSE9ODYpCiAgICAgICAgICBPUiBiPTg2MQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gODIgQU5EIDg0KSBBTkQgYSE9ODMpCi0gICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwz NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM0LjAgQU5EIGQ8MzUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi40NDkuMT4KQEAgLTE2ODMwLDExICsxNjgzMCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9ODkxCiAgICAgICAgICBPUiBi PTgwNgotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NSBBTkQgODcpIEFORCBhIT04NikKICAgICAgICAg IE9SIGI9ODYxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MiBBTkQgODQpIEFORCBhIT04 MykKLSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQ0OS4yPgpAQCAtMTY5ODIs OSArMTY5ODIsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTU1MAogICAgICAg ICAgT1IgYj0xMDU5CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnZ2hp amsqJykKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQotICAg ICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NzM3CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTcwMDUsOSArMTcwMDUsOSBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgICBPUiBiPTU1MAogICAgICAgICAgT1IgYj0xMDU5CiAgICAgICAg ICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9SIChk Pj03OC4wIEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTgu MCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTkyLjAgQU5E IGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4w IEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzM3CiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMTcxMDMsMTMgKzE3MTAzLDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49ODQuMCBBTkQgZDw4NS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGYgR0xPQiAnP3d4eXoqJyBBTkQgZiBHTE9CICd2d3h5KicpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA1IEFORCA3KSBBTkQgYSE9NikKLSAgICAgICAgIE9S IChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDc4 CiAgICAgICAgICBPUiBiPTE5OAotICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTU1CiAgICAgICAgICBPUiBiPTUxNwogICAg ICAgICAgT1IgYj03NDAKQEAgLTE3MTI1LDEzICsxNzEyNSwxMyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49ODQuMCBBTkQgZDw4NS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz93eHl6KicgQU5EIGYgR0xP QiAndnd4eSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNSBBTkQgNykgQU5EIGEhPTYp Ci0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9MTA3OAogICAgICAgICAgT1IgYj0xOTgKLSAgICAgICAgIE9SIChkPj02Ny4w IEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjcuMCBBTkQg ZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01NQogICAgICAgICAg T1IgYj01MTcKICAgICAgICAgIE9SIGI9NzQwCkBAIC0xNzE1MCw3ICsxNzE1MCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdpamts bSonKQogICAgICAgICAgT1IgYz0yNTAyNQogICAgICAgICAgT1IgYj01NTAKLSAgICAgICAg IE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MTcxNjcsNyArMTcxNjcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAoZz0nd3Z1 dHNycScgQU5EIGYgR0xPQiAnaWprbG0qJykKICAgICAgICAgIE9SIGM9MjUwMjUKICAgICAg ICAgIE9SIGI9NTUwCi0gICAgICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdiY2RlZionKQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTE3MjE2LDkgKzE3MjE2LDkgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBBTkQgZiBHTE9CICdsbW5vKicpCiAg ICAgICAgICBPUiBiPTU4MwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjMgQU5EIDY1KSBB TkQgYSE9NjQpCi0gICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQwIEFORCA0MikgQU5EIGEhPTQxKQotICAg ICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTkzOAogICBdXSkKICAgICBlbmQsIHsKQEAgLTE3MjM3LDkgKzE3MjM3LDkgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBBTkQgZiBHTE9CICds bW5vKicpCiAgICAgICAgICBPUiBiPTU4MwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjMg QU5EIDY1KSBBTkQgYSE9NjQpCi0gICAgICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQwIEFORCA0MikgQU5EIGEh PTQxKQotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTkzOAogICBdXSkKICAgICBlbmQsIHsKQEAgLTE3MjU1LDcgKzE3MjU1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBiPTY3MQogICAgICAgICAgT1IgYT01NgotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8 NTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTE1NwogICAgICAgICAgT1IgYT04 MwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzMgQU5EIDc1KSBBTkQgYSE9NzQpCkBAIC0x NzI3OCw3ICsxNzI3OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgYj02NzEKICAgICAgICAgIE9SIGE9NTYKLSAgICAgICAgIE9SIChk Pj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDku MCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTcKICAg ICAgICAgIE9SIGE9ODMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDczIEFORCA3NSkgQU5E IGEhPTc0KQpAQCAtMTczMzUsNyArMTczMzUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBhPTM0CiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCiAgICAgICAgICBPUiBhPTgy Ci0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9NDU0CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgYz0yMTAyMQpA QCAtMTczNTcsNyArMTczNTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTM0 CiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCiAgICAgICAgICBPUiBhPTgyCi0gICAgICAg ICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NDU0CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgYz0yMTAyMQpAQCAtMTczNzcs MTIgKzE3Mzc3LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNDQgQU5EIDQ2KSBBTkQgYSE9NDUpCiAgICAgICAg ICBPUiBhPTUzCi0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAg ICAgICAgT1IgYj01OTQKICAgICAgICAgIE9SIGI9ODAKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDE4IEFORCAyMCkgQU5EIGEhPTE5KQotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8 NTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBkPjFlMTAKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0xNzM5OCwxMiArMTczOTgsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA0NCBBTkQgNDYpIEFORCBh IT00NSkKICAgICAgICAgIE9SIGE9NTMKLSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0Ig J3V2d3h5KicpCiAgICAgICAgICBPUiBiPTU5NAogICAgICAgICAgT1IgYj04MAogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCi0gICAgICAgICBPUiAo ZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ5 LjAgQU5EIGQ8NTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGQ+MWUxMAog ICBdXSkKICAgICBlbmQsIHsKQEAgLTE3NDQ5LDcgKzE3NDQ5LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzUgQU5EIDc3KSBBTkQgYSE9NzYpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkKICAgICAgICAgIE9S IGE9OTAKLSAgICAgICAgIE9SIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjQ2Ni4xPgpAQCAtMTc0 NjYsNyArMTc0NjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA3NSBBTkQgNzcpIEFORCBhIT03NikKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQzIEFO RCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgYT05MAotICAgICAgICAgT1IgKGQ+PTMz LjAgQU5EIGQ8MzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMy4wIEFO RCBkPDM0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuNDY2LjI+CkBAIC0xNzQ4MSw3ICsxNzQ4MSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT01OQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNjkgQU5EIDcxKSBBTkQgYSE9NzApCi0gICAgICAgICBPUiAo ZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4w IEFORCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0neHd2dXRz cicgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGY9J3d4eXphYmNkZScKICAg ICAgICAgIE9SIChmIEdMT0IgJz9hYmNkKicgQU5EIGYgR0xPQiAnemFiYyonKQpAQCAtMTc1 MDIsNyArMTc1MDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGE9NTkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY5IEFORCA3MSkg QU5EIGEhPTcwKQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2ZnaGlqKicpCiAgICAg ICAgICBPUiBmPSd3eHl6YWJjZGUnCiAgICAgICAgICBPUiAoZiBHTE9CICc/YWJjZConIEFO RCBmIEdMT0IgJ3phYmMqJykKQEAgLTE3NTg0LDcgKzE3NTg0LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSBiPTMwMAotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8 NTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkzNQogICAgICAgICAgT1IgYj0x OTAKICAgXV0pCkBAIC0xNzYwMCw3ICsxNzYwMCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgYj0zMDAKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05MzUKICAgICAgICAgIE9SIGI9MTkwCiAgIF1d KQpAQCAtMTc2MjAsNyArMTc2MjAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo Zz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGI9NDY1CiAg ICAgICAgICBPUiBiPTU4NgotICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg4CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAz MCBBTkQgMzIpIEFORCBhIT0zMSkKICAgICAgICAgIE9SIGI9NzI2CkBAIC0xNzY0Miw3ICsx NzY0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQg ZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgYj00NjUKICAgICAgICAgIE9SIGI9NTg2 Ci0gICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9ODgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5EIGEh PTMxKQogICAgICAgICAgT1IgYj03MjYKQEAgLTE3NjU5LDcgKzE3NjU5LDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTM0LjAgQU5E IGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zNC4wIEFORCBkPDM1 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/YWJjZConIEFO RCBmIEdMT0IgJ3phYmMqJykKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9C ICdoaWprbConKQogICAgICAgICAgT1IgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3R1dnd4 KicpCkBAIC0xNzY4MCw3ICsxNzY4MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2FiY2QqJyBBTkQgZiBHTE9CICd6YWJjKicpCiAg ICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnaGlqa2wqJykKICAgICAgICAg IE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICd0dXZ3eConKQpAQCAtMTc3MDUsNyArMTc3 MDUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1MyBBTkQg NTUpIEFORCBhIT01NCkKICAgICAgICAgIE9SIGM9MTAwMQogICAgICAgICAgT1IgYj00ODQK LSAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYzw9MTAKICAgICAgICAgIE9SIGE9OTIKICAgICAgICAgIE9SIChnPSd0c3JxcG9u JyBBTkQgZiBHTE9CICd6YWJjZConKQpAQCAtMTc3MjcsNyArMTc3MjcsNyBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1MyBBTkQgNTUpIEFORCBhIT01NCkK ICAgICAgICAgIE9SIGM9MTAwMQogICAgICAgICAgT1IgYj00ODQKLSAgICAgICAgIE9SIChk Pj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjUu MCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYzw9MTAKICAg ICAgICAgIE9SIGE9OTIKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd6 YWJjZConKQpAQCAtMTc3OTAsOSArMTc3OTAsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBX SEVSRSBiPTMxOQogICAgICAgICAgT1IgYT01MAogICAgICAgICAgT1IgKGc9J3NycXBvbm0n IEFORCBmIEdMT0IgJ2RlZmdoKicpCi0gICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTk2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTc4MDksOSArMTc4 MDksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTMxOQogICAgICAgICAgT1Ig YT01MAogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2RlZmdoKicpCi0g ICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQotICAgICAg ICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEw LjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4w IEFORCBkPDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTk2CiAgIF1d KQogICAgIGVuZCwgewpAQCAtMTc4NTksNyArMTc4NTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MzUuMCBBTkQgZDwzNi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAyNgogICAgICAgICAgT1IgKChhIEJFVFdF RU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAgIF1dKQpAQCAtMTc4NzQsNyArMTc4NzQsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 MzUuMCBBTkQgZDwzNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTM1LjAg QU5EIGQ8MzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAyNgogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAgIF1dKQpAQCAt MTc4OTAsMTEgKzE3ODkwLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg KGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3V2d3h5KicpCi0gICAgICAgICBPUiAoZD49MzQu MCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM0LjAgQU5E IGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDA3CiAgICAgICAg ICBPUiBiPTQ1NAogICAgICAgICAgT1IgKGYgR0xPQiAnP2tsbW4qJyBBTkQgZiBHTE9CICdq a2xtKicpCi0gICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9NjI3CiAgICAgICAgICBPUiAoZiBHTE9CICc/b3BxcionIEFORCBm IEdMT0IgJ25vcHEqJykKICAgXV0pCkBAIC0xNzkxMCwxMSArMTc5MTAsMTEgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAndXZ3 eHkqJykKLSAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj00MDcKICAgICAgICAgIE9SIGI9NDU0CiAgICAgICAgICBPUiAoZiBH TE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKLSAgICAgICAgIE9SIChkPj05MS4w IEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTEuMCBBTkQg ZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02MjcKICAgICAgICAg IE9SIChmIEdMT0IgJz9vcHFyKicgQU5EIGYgR0xPQiAnbm9wcSonKQogICBdXSkKQEAgLTE3 OTI5LDcgKzE3OTI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBjPTM0MDM0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNCBBTkQgMjYpIEFORCBh IT0yNSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEhPTE5KQpA QCAtMTc5NDcsNyArMTc5NDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCi0gICAgICBXSEVSRSAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGM9MzQwMzQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI0IEFORCAyNikg QU5EIGEhPTI1KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9 MTkpCkBAIC0xNzk2Nyw5ICsxNzk2Nyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT05NwogICAgICAgICAgT1IgYj01NzUKLSAgICAg ICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMiBBTkQgNCkgQU5EIGEhPTMpCi0gICAgICAgICBPUiAoZD49MS4wIEFO RCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3JzdHUqJyBBTkQg ZiBHTE9CICdxcnN0KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTc5ODUsOSArMTc5ODUs OSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IGE9OTcKICAgICAgICAgIE9SIGI9NTc1Ci0gICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4 Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIgQU5EIDQpIEFO RCBhIT0zKQotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChmIEdMT0IgJz9yc3R1KicgQU5EIGYgR0xPQiAncXJzdConKQogICBdXSkK ICAgICBlbmQsIHsKQEAgLTE4MDAzLDEyICsxODAwMywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NTYxCiAgICAgICAgICBPUiBi PTc3MwotICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTIwMQogICAgICAgICAgT1IgYT05OQogICAgICAgICAgT1IgKGc9J3V0 c3JxcG8nIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAz NiBBTkQgMzgpIEFORCBhIT0zNykKLSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05NDYKICAgICAgICAgIE9SIGI9OTkzCiAg ICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTE4MDI2 LDEyICsxODAyNiwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMK ICAgICAgIFdIRVJFIGI9NTYxCiAgICAgICAgICBPUiBiPTc3MwotICAgICAgICAgT1IgKGQ+ PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Ni4w IEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIwMQogICAg ICAgICAgT1IgYT05OQogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3R1 dnd4KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNiBBTkQgMzgpIEFORCBhIT0zNykK LSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj05NDYKICAgICAgICAgIE9SIGI9OTkzCiAgICAgICAgICBPUiAoZz0nZmVkY2Jh eicgQU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTE4MDUyLDExICsxODA1MiwxMSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNCBBTkQgMjYpIEFORCBhIT0y NSkKICAgICAgICAgIE9SIGI9OTE2CiAgICAgICAgICBPUiBiPDAKLSAgICAgICAgIE9SIChk Pj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjIu MCBBTkQgZDw2My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTQKICAg ICAgICAgIE9SIGM9MTAwMTAKICAgICAgICAgIE9SIGI9NDUxCi0gICAgICAgICBPUiAoZD49 MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAg QU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi40ODIuMT4KQEAgLTE4MDc0LDExICsxODA3NCwxMSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNCBBTkQgMjYpIEFORCBhIT0y NSkKICAgICAgICAgIE9SIGI9OTE2CiAgICAgICAgICBPUiBiPDAKLSAgICAgICAgIE9SIChk Pj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjIu MCBBTkQgZDw2My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTQKICAg ICAgICAgIE9SIGM9MTAwMTAKICAgICAgICAgIE9SIGI9NDUxCi0gICAgICAgICBPUiAoZD49 MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAg QU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi40ODIuMj4KQEAgLTE4MTQxLDggKzE4MTQxLDggQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYT05MgogICAgICAgICAgT1IgYT0xCiAgICAgICAgICBP UiAoZiBHTE9CICc/ZmdoaSonIEFORCBmIEdMT0IgJ2VmZ2gqJykKLSAgICAgICAgIE9SIChk Pj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Ny4w IEFORCBkPDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBk PDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBH TE9CICdsbW5vcConKQogICAgICAgICAgT1IgYj05MDUKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQpAQCAtMTgxNjIsOCArMTgxNjIsOCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTkyCiAgICAgICAgICBPUiBhPTEKICAgICAgICAg IE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZnaConKQotICAgICAgICAgT1Ig KGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03 LjAgQU5EIGQ8OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI4LjAgQU5E IGQ8MjkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03LjAgQU5EIGQ8 OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBm IEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBiPTkwNQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNTEgQU5EIDUzKSBBTkQgYSE9NTIpCkBAIC0xODE3OSw4ICsxODE3OSw4IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xNy4w IEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NC4wIEFORCBk PDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBkPDE4LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjEyCiAgICAgICAgICBPUiBhPTQyCiAg ICAgICAgICBPUiBhPTkyCkBAIC0xODE5Niw4ICsxODE5Niw4IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBkPDE4LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9MjEyCiAgICAgICAgICBPUiBhPTQyCiAgICAgICAgICBPUiBh PTkyCkBAIC0xODIxOSw3ICsxODIxOSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGE9MTEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ0IEFORCA0NikgQU5EIGEhPTQ1KQog ICAgICAgICAgT1IgYj0zMjIKLSAgICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnd3h5emEqJykK ICAgICAgICAgIE9SIGI9OTAyCiAgICAgICAgICBPUiBjPj0zNDAzNQpAQCAtMTgyNDEsNyAr MTgyNDEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTExCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA0NCBBTkQgNDYpIEFORCBhIT00NSkKICAgICAgICAgIE9SIGI9MzIy Ci0gICAgICAgICBPUiAoZD49Ni4wIEFORCBkPDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAgICBPUiBiPTkw MgogICAgICAgICAgT1IgYz49MzQwMzUKQEAgLTE4MjU5LDcgKzE4MjU5LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VF TiA1MiBBTkQgNTQpIEFORCBhIT01MykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFO RCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGE9MjcKICAgICAgICAgIE9SIGE9NDgKICAgICAgICAgIE9S IGI9OTI3CkBAIC0xODI4Miw3ICsxODI4Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VM RUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNTIgQU5EIDU0KSBBTkQg YSE9NTMpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NiBBTkQgNTgpIEFORCBhIT01NykK LSAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTI3CiAgICAgICAgICBPUiBhPTQ4CiAgICAgICAgICBPUiBiPTkyNwpAQCAtMTgzMzUs MTQgKzE4MzM1LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj01NQotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYgR0xPQiAnYWJjZGUqJykKICAgICAg ICAgIE9SIGE9NTAKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAg ICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi40ODkuMT4KQEAgLTE4MzU1LDE0ICsx ODM1NSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NTUKLSAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAgICAgICBP UiBhPTUwCi0gICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNDg5LjI+CkBAIC0xODQ5OSw3ICsxODQ5OSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjAu MCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03MjYKICAg ICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgICAgICAgIE9SIGI9MTc5CkBAIC0xODUyMCw3 ICsxODUyMCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAg IFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVS RSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj03MjYKICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgICAgICAgIE9SIGI9MTc5CkBA IC0xODU3NCw3ICsxODU3NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NDQz CiAgICAgICAgICBPUiBiPTgzNgogICAgICAgICAgT1IgKGYgR0xPQiAnP29wcXIqJyBBTkQg ZiBHTE9CICdub3BxKicpCi0gICAgICAgICBPUiAoZD49MTEuMCBBTkQgZDwxMi4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUy KQogICAgICAgICAgT1IgYj0xMTAKICAgICAgICAgIE9SIChmIEdMT0IgJz9kZWZnKicgQU5E IGYgR0xPQiAnY2RlZionKQpAQCAtMTg1OTUsNyArMTg1OTUsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgICBPUiBiPTQ0MwogICAgICAgICAgT1IgYj04MzYKICAgICAgICAgIE9SIChm IEdMT0IgJz9vcHFyKicgQU5EIGYgR0xPQiAnbm9wcSonKQotICAgICAgICAgT1IgKGQ+PTEx LjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMS4wIEFO RCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1 MSBBTkQgNTMpIEFORCBhIT01MikKICAgICAgICAgIE9SIGI9MTEwCiAgICAgICAgICBPUiAo ZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKQEAgLTE4NjE3LDcgKzE4NjE3 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yMgogICAgICAgICAgT1IgYj01 OTQKICAgICAgICAgIE9SIChmIEdMT0IgJz90dXZ3KicgQU5EIGYgR0xPQiAnc3R1dionKQot ICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChn PSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICBdXSkKQEAgLTE4NjM4LDcgKzE4 NjM4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yMgogICAgICAgICAgT1Ig Yj01OTQKICAgICAgICAgIE9SIChmIEdMT0IgJz90dXZ3KicgQU5EIGYgR0xPQiAnc3R1dion KQotICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9S IChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICBdXSkKQEAgLTE4NjU0LDcg KzE4NjU0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0ndXRzcnFw bycgQU5EIGYgR0xPQiAnd3h5emEqJykKLSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAna2xt bm8qJykKICAgICAgICAgIE9SIGY9J3Z3eHl6YWJjZCcKICAgICAgICAgIE9SIChnPSd2dXRz cnFwJyBBTkQgZiBHTE9CICdub3BxcionKQpAQCAtMTg2NzMsNyArMTg2NzMsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd3 eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQogICAgICAgICAg T1IgZj0ndnd4eXphYmNkJwogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0Ig J25vcHFyKicpCkBAIC0xODY5Nyw3ICsxODY5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9ODI1CiAgICAgICAgICBPUiBhPTgwCiAgICAgICAgICBPUiAoZz0ndHNycXBv bicgQU5EIGYgR0xPQiAneHl6YWIqJykKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01MzEKICAgICAgICAgIE9SIGE9MTAw CiAgIF1dKQpAQCAtMTg3MTgsNyArMTg3MTgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBiPTgyNQogICAgICAgICAgT1IgYT04MAogICAgICAgICAgT1IgKGc9J3RzcnFwb24n IEFORCBmIEdMT0IgJ3h5emFiKicpCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTMxCiAgICAgICAgICBPUiBhPTEwMAog ICBdXSkKQEAgLTE4NzM1LDcgKzE4NzM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAndHV2 d3gqJykKICAgICAgICAgIE9SIGI9MjIwCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1 NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi41MDAuMT4KQEAgLTE4NzUwLDcgKzE4NzUwLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0ndXRzcnFwbycgQU5EIGYgR0xP QiAndHV2d3gqJykKICAgICAgICAgIE9SIGI9MjIwCi0gICAgICAgICBPUiAoZD49NTMuMCBB TkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8 NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi41MDAuMj4KQEAgLTE4NzY0LDcgKzE4NzY0LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSBhPTkyCi0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEw LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk5MAogICBdXSkKICAgICBlbmQsIHsK QEAgLTE4Nzc5LDcgKzE4Nzc5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVS RSBhPTkyCi0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTk5MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTE4ODMzLDcgKzE4ODMz LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUg KGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03 Mi4wIEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc3Mwog ICAgICAgICAgT1IgZj0nZGVmZ2hpamtsJwogICBdXSkKQEAgLTE4ODQ4LDcgKzE4ODQ4LDcg QEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+ PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03Mi4w IEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc3MwogICAg ICAgICAgT1IgZj0nZGVmZ2hpamtsJwogICBdXSkKQEAgLTE4ODk1LDE1ICsxODg5NSwxNSBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9 NzA0CiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAna2xtbm8qJykKLSAg ICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI1 CiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnemFiY2QqJykKICAgICAg ICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnZmdo aWoqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3OSkgQU5EIGEhPTc4KQot ICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MDUuMT4KQEAgLTE4OTE4LDE1ICsxODkxOCwx NSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IGI9NzA0CiAgICAgICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAna2xtbm8qJykK LSAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTI1CiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnemFiY2QqJykKICAg ICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAn ZmdoaWoqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3OSkgQU5EIGEhPTc4 KQotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MDUuMj4KQEAgLTE4OTQyLDcgKzE4OTQy LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYT0xOQogICAgICAgICAgT1IgKGc9 J29ubWxramknIEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBiPTY3NAotICAg ICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTM1NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMp CiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncHFyc3QqJykKQEAgLTE4 OTY1LDcgKzE4OTY1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYT0xOQogICAg ICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBP UiBiPTY3NAotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzIgQU5EIDc0 KSBBTkQgYSE9NzMpCiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncHFy c3QqJykKQEAgLTE5MTUyLDcgKzE5MTUyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMzYgQU5EIDM4KSBBTkQgYSE9MzcpCiAgICAgICAgICBPUiBjPTI3 MDI3CiAgICAgICAgICBPUiBjPTIwMDIwCi0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwy NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi41MTIuMT4KQEAgLTE5MTc0LDcgKzE5MTc0LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gMzYgQU5EIDM4KSBBTkQgYSE9MzcpCiAgICAgICAgICBP UiBjPTI3MDI3CiAgICAgICAgICBPUiBjPTIwMDIwCi0gICAgICAgICBPUiAoZD49MjMuMCBB TkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8 MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi41MTIuMj4KQEAgLTE5MjIzLDcgKzE5MjIzLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2tsbW5vKicpCiAgICAg ICAgICBPUiBiPTMxOQogICAgICAgICAgT1IgZj0nZmdoaWprbG1uJwotICAgICAgICAgT1Ig KGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA0MiBBTkQgNDQpIEFORCBhIT00MykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xOTI0 MSw3ICsxOTI0MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdtbGtqaWhn JyBBTkQgZiBHTE9CICdrbG1ubyonKQogICAgICAgICAgT1IgYj0zMTkKICAgICAgICAgIE9S IGY9J2ZnaGlqa2xtbicKLSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDIgQU5EIDQ0KSBBTkQgYSE9NDMp CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMTkyNTcsMTEgKzE5MjU3LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj02NzEKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDg2IEFORCA4OCkgQU5EIGEhPTg3KQotICAgICAgICAgT1Ig KGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y Ny4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwMDQK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEhPTE5KQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNSBBTkQgNykgQU5EIGEhPTYpCi0gICAgICAgICBPUiAoZD49 ODIuMCBBTkQgZDw4My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgyLjAg QU5EIGQ8ODMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzQ4CiAgICAg ICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAneHl6YWIqJykKICAgXV0pCkBAIC0x OTI3OCwxMSArMTkyNzgsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSBiPTY3MQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODYgQU5E IDg4KSBBTkQgYSE9ODcpCi0gICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAwNAogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MTggQU5EIDIwKSBBTkQgYSE9MTkpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1IEFORCA3 KSBBTkQgYSE9NikKLSAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj03NDgKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQg ZiBHTE9CICd4eXphYionKQogICBdXSkKQEAgLTE5MzM0LDExICsxOTMzNCwxMSBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd3 eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTExMAogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdM T0IgJ25vcHFyKicpCiAgICAgICAgICBPUiBjPTI2MDI2Ci0gICAgICAgICBPUiAoZD49Njku MCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5E IGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODUwCiAgICAgICAg ICBPUiBhPTYKICAgXV0pCkBAIC0xOTM1NCwxMSArMTkzNTQsMTEgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCiAgICAgICBXSEVSRSAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnd3h5emEqJykK LSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0xMTAKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdub3Bx cionKQogICAgICAgICAgT1IgYz0yNjAyNgotICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg1MAogICAgICAgICAgT1IgYT02 CiAgIF1dKQpAQCAtMTk0MTYsNyArMTk0MTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGI9MjQyCi0gICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIwIEFORCAyMikgQU5EIGEhPTIx KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTE5NDMxLDcgKzE5NDMxLDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTI0MgotICAgICAgICAgT1IgKGQ+PTIwLjAgQU5E IGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQg MjIpIEFORCBhIT0yMSkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0xOTQ4Niw3ICsxOTQ4Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3h3dnV0c3InIEFORCBm IEdMT0IgJ2doaWprKicpCi0gICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdwcXJzdCon KQogICAgICAgICAgT1IgYT01MgogICBdXSkKQEAgLTE5NTAyLDcgKzE5NTAyLDcgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAn Z2hpamsqJykKLSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAg ICAgICBPUiBhPTUyCiAgIF1dKQpAQCAtMTk1NTUsNyArMTk1NTUsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDQ3 IEFORCA0OSkgQU5EIGEhPTQ4KQogICAgICAgICAgT1IgYj01MTcKLSAgICAgICAgIE9SIChk Pj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjMu MCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNjcgQU5EIDY5KSBBTkQgYSE9NjgpCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5E IGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGY9J2RlZmdoaWprbCcKQEAgLTE5NTYz LDcgKzE5NTYzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYz49MzQwMzUKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDMzIEFORCAzNSkgQU5EIGEhPTM0KQogICAgICAgICAg T1IgYT04MAotICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTIzLjE+CkBAIC0x OTU3OCw3ICsxOTU3OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNDcgQU5EIDQ5KSBBTkQgYSE9NDgpCiAgICAg ICAgICBPUiBiPTUxNwotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkpIEFORCBhIT02OCkK ICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdmZ2hpaionKQogICAgICAg ICAgT1IgZj0nZGVmZ2hpamtsJwpAQCAtMTk1ODYsNyArMTk1ODYsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBjPj0zNDAzNQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzMg QU5EIDM1KSBBTkQgYSE9MzQpCiAgICAgICAgICBPUiBhPTgwCi0gICAgICAgICBPUiAoZD49 MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIzLjAg QU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi41MjMuMj4KQEAgLTE5NTk5LDcgKzE5NTk5LDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk2LjAgQU5E IGQ8OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ni4wIEFORCBkPDk3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTIwOQogICAgICAgICAgT1Ig Yj0zOTkKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICd0dXZ3eConKQpA QCAtMTk2MTUsNyArMTk2MTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCi0gICAgICBXSEVSRSAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgV0hFUkUgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9MjA5CiAgICAgICAgICBPUiBiPTM5OQogICAgICAgICAgT1IgKGc9J2Zl ZGNiYXonIEFORCBmIEdMT0IgJ3R1dnd4KicpCkBAIC0xOTYzOCw3ICsxOTYzOCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdkZWZn aConKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3phYmMqJyBBTkQgZiBHTE9CICd5emFiKicp CiAgICAgICAgICBPUiBiPTQzMgotICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu NTI1LjE+CkBAIC0xOTY1OCw3ICsxOTY1OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIChnPSdubWxramloJyBBTkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgKGYg R0xPQiAnP3phYmMqJyBBTkQgZiBHTE9CICd5emFiKicpCiAgICAgICAgICBPUiBiPTQzMgot ICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTI1LjI+CkBAIC0xOTY3MSw3ICsx OTY3MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0x NTcKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc4IEFORCA4MCkgQU5EIGEhPTc5KQogICAg ICAgICAgT1IgYT0zCkBAIC0xOTY5Myw3ICsxOTY5Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04OC4wIEFORCBkPDg5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTcKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDc4IEFORCA4MCkgQU5EIGEhPTc5KQogICAgICAgICAgT1IgYT0zCkBAIC0xOTgxMywxMSAr MTk4MTMsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFO RCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiBiPTc4NAogICAgICAgICAgT1IgYj01 ODMKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdn aGlqayonKQogICAgICAgICAgT1IgYj02MTkKLSAgICAgICAgIE9SIChkPj04MC4wIEFORCBk PDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjUzMC4xPgpAQCAtMTk4MzQsMTEgKzE5ODM0LDExIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAg ICAgT1IgYj03ODQKICAgICAgICAgIE9SIGI9NTgzCi0gICAgICAgICBPUiAoZD49NTQuMCBB TkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8 NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODE0CiAgICAgICAgICBP UiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hpamsqJykKICAgICAgICAgIE9SIGI9NjE5 Ci0gICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MzAuMj4KQEAgLTE5ODk3LDcg KzE5ODk3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTIzMQogICAgICAgICAgT1IgYT04MQogICAgICAgICAgT1IgYT03MgpAQCAtMTk5MTUsNyAr MTk5MTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 MjMxCiAgICAgICAgICBPUiBhPTgxCiAgICAgICAgICBPUiBhPTcyCkBAIC0xOTkzMywxMyAr MTk5MzMsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBh PTYzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MCBBTkQgNzIpIEFORCBhIT03MSkKICAg ICAgICAgIE9SIGE9NzEKICAgICAgICAgIE9SIGI9MjIKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDc2IEFORCA3OCkgQU5EIGEhPTc3KQotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8 MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OSBBTkQgNjEp IEFORCBhIT02MCkKICAgICAgICAgIE9SIGE9NTMKICAgXV0pCkBAIC0xOTk1NCwxMyArMTk5 NTQsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hF UkUgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChk Pj03NC4wIEFORCBkPDc1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTYz CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MCBBTkQgNzIpIEFORCBhIT03MSkKICAgICAg ICAgIE9SIGE9NzEKICAgICAgICAgIE9SIGI9MjIKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDc2IEFORCA3OCkgQU5EIGEhPTc3KQotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OSBBTkQgNjEpIEFO RCBhIT02MCkKICAgICAgICAgIE9SIGE9NTMKICAgXV0pCkBAIC0yMDAxNiw3ICsyMDAxNiw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjM0CiAgICAgICAgICBPUiBiPTU1 CiAgICAgICAgICBPUiAoZiBHTE9CICc/d3h5eionIEFORCBmIEdMT0IgJ3Z3eHkqJykKLSAg ICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjUzNS4xPgpAQCAtMjAwMzgsNyArMjAw MzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTIzNAogICAgICAgICAgT1Ig Yj01NQogICAgICAgICAgT1IgKGYgR0xPQiAnP3d4eXoqJyBBTkQgZiBHTE9CICd2d3h5Kicp Ci0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41MzUuMj4KQEAgLTIwMDUyLDcg KzIwMDUyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTM1NQotICAg ICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgICAgICAgIE9SIGI9ODA2 CiAgICAgICAgICBPUiBiPTQ2MgpAQCAtMjAwNzIsNyArMjAwNzIsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKICAgICAgIFdIRVJFIGI9MzU1Ci0gICAgICAgICBPUiAoZD49NDkuMCBBTkQg ZDw1MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBH TE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj04MDYKICAgICAgICAgIE9SIGI9NDYyCkBA IC0yMDEzMSw3ICsyMDEzMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSd1 dHNycXBvJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgYj03NDgKICAgICAg ICAgIE9SIGI9OTEzCi0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYT0yMgogICBdXSkKICAgICBlbmQsIHsKQEAgLTIwMTQ5LDcgKzIw MTQ5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBm IEdMT0IgJ3Z3eHl6KicpCiAgICAgICAgICBPUiBiPTc0OAogICAgICAgICAgT1IgYj05MTMK LSAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTUuMCBBTkQgZDw2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTIyCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjAyNDQsMTEgKzIwMjQ0LDExIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9ODE0CiAgICAgICAgICBPUiBjPTMwMDMwCiAg ICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMqJykKLSAgICAgICAg IE9SIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0x NgogICAgICAgICAgT1IgYj0xMDQ4CiAgICAgICAgICBPUiBiPTExMwotICAgICAgICAgT1Ig KGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02 MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0neHd2 dXRzcicgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGI9NzI5CiAgICAgICAg ICBPUiBhPTU0CkBAIC0yMDI2NywxMSArMjAyNjcsMTEgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgV0hFUkUgYj04MTQKICAgICAgICAgIE9SIGM9MzAwMzAKICAgICAgICAgIE9SIChnPSdx cG9ubWxrJyBBTkQgZiBHTE9CICdvcHFycyonKQotICAgICAgICAgT1IgKGQ+PTM0LjAgQU5E IGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNC4wIEFORCBkPDM1 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE2CiAgICAgICAgICBPUiBi PTEwNDgKICAgICAgICAgIE9SIGI9MTEzCi0gICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2 Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9C ICdkZWZnaConKQogICAgICAgICAgT1IgYj03MjkKICAgICAgICAgIE9SIGE9NTQKQEAgLTIw MjkxLDcgKzIwMjkxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J2tqaWhn ZmUnIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiBiPTgxNAogICAgICAgICAg T1IgYz0yMjAyMgotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChmIEdMT0IgJz9tbm9wKicgQU5EIGYgR0xPQiAnbG1ubyonKQogICAg ICAgICAgT1IgYT0xCiAgICAgICAgICBPUiBiPTMxMQpAQCAtMjAzMTQsNyArMjAzMTQsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAn dHV2d3gqJykKICAgICAgICAgIE9SIGI9ODE0CiAgICAgICAgICBPUiBjPTIyMDIyCi0gICAg ICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYg R0xPQiAnP21ub3AqJyBBTkQgZiBHTE9CICdsbW5vKicpCiAgICAgICAgICBPUiBhPTEKICAg ICAgICAgIE9SIGI9MzExCkBAIC0yMDMzNCw3ICsyMDMzNCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj0xNDYKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01NwogICBdXSkKICAgICBlbmQsIHsK QEAgLTIwMzQ5LDcgKzIwMzQ5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVS RSBiPTE0NgotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTU3CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjAzNjMsMTAgKzIw MzYzLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGY9J2ZnaGlqa2xtbicKICAgICAgICAgIE9SIGE9NzAKLSAgICAgICAgIE9SIChkPj00LjAg QU5EIGQ8NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQuMCBBTkQgZDw1 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuNTQ0LjE+CkBAIC0yMDM3OSwxMCArMjAzNzksMTAgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTEwMC4wIEFORCBkPDEw MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTEwMC4wIEFORCBkPDEwMS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0nZmdoaWprbG1uJwogICAgICAg ICAgT1IgYT03MAotICAgICAgICAgT1IgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41NDQuMj4KQEAgLTIw Mzk3LDEyICsyMDM5NywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGE9NDIKICAgICAgICAgIE9SIGI9MzMzCi0gICAgICAgICBPUiAo ZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM1 LjAgQU5EIGQ8MzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA4OQot ICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBhPTIyCiAgICAgICAgICBPUiBiPTU5NAotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5E IGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/Z2hpaionIEFO RCBmIEdMT0IgJ2ZnaGkqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yMDQxOCwxMiArMjA0 MTgsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSBhPTQyCiAgICAgICAgICBPUiBiPTMzMwotICAgICAgICAgT1IgKGQ+PTM1LjAgQU5E IGQ8MzYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwODkKLSAgICAgICAgIE9S IChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMgog ICAgICAgICAgT1IgYj01OTQKLSAgICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2doaWoqJyBBTkQgZiBHTE9CICdm Z2hpKicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjA0MzcsMTUgKzIwNDM3LDE1IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02Ny4w IEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQg ZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY3LjAgQU5EIGQ8Njgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExMwotICAgICAgICAgT1IgKGQ+ PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02OS4w IEFORCBkPDcwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjUuMCBBTkQg ZDwyNi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMgQU5E IDUpIEFORCBhIT00KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9C ICdhYmNkKicpCiAgICAgICAgICBPUiBmPSdtbm9wcXJzdHUnCi0gICAgICAgICBPUiAoZD49 MTcuMCBBTkQgZDwxOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAg QU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTAyCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjA0NTksMTUgKzIwNDU5LDE1IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02Ny4wIEFORCBkPDY4LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTExMwotICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8 MjYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMgQU5EIDUpIEFORCBhIT00 KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9CICdhYmNkKicpCiAg ICAgICAgICBPUiBmPSdtbm9wcXJzdHUnCi0gICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwx OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTAyCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjA1MTYsNyArMjA1MTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo Zz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGI9NDE4CiAg ICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAna2xtbm8qJykKLSAgICAgICAg IE9SIChkPj02NS4wIEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjU0OC4xPgpAQCAtMjA1MzQsNyArMjA1MzQsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAn ZWZnaGkqJykKICAgICAgICAgIE9SIGI9NDE4CiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScg QU5EIGYgR0xPQiAna2xtbm8qJykKLSAgICAgICAgIE9SIChkPj02NS4wIEFORCBkPDY2LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2Ni4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjU0OC4yPgpAQCAtMjA1NTEsMTAgKzIwNTUxLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGE9OTUKICAgICAgICAgIE9SIGE9NTYKICAgICAgICAgIE9SIGE9NDYKLSAgICAg ICAgIE9SIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQogICAgICAgICAgT1IgKGc9 J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCi0gICAgICAgICBPUiAoZD49NDEuMCBB TkQgZDw0Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8 NDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi41NDkuMT4KQEAgLTIwNTcxLDEwICsyMDU3MSwxMCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTk1CiAgICAgICAgICBPUiBhPTU2CiAgICAgICAgICBPUiBh PTQ2Ci0gICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKICAgICAg ICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQotICAgICAgICAgT1Ig KGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00 MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNTQ5LjI+CkBAIC0yMDU4NywxNSArMjA1ODcsMTUgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTg3 LjAgQU5EIGQ8ODguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04Ny4wIEFO RCBkPDg4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTEzCi0gICAgICAg ICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 OQogICAgICAgICAgT1IgYT0yNwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODggQU5EIDkw KSBBTkQgYSE9ODkpCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9NDg0Ci0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTk0CiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjA2MDksMTUgKzIwNjA5LDE1IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYT0xMwotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTkKICAgICAgICAgIE9SIGE9MjcKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDg4IEFORCA5MCkgQU5EIGEhPTg5KQotICAgICAgICAgT1Ig KGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0z Ny4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ4NAot ICAgICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTU5NAogICBdXSkKICAgICBlbmQsIHsKQEAgLTIwNjk5LDEyICsyMDY5OSwxMiBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9 Nzk1CiAgICAgICAgICBPUiBiPTY3MQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8Mzku MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3MSBBTkQgNzMpIEFO RCBhIT03MikKLSAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGYgR0xPQiAnP3Fyc3QqJyBBTkQgZiBHTE9CICdwcXJzKicpCiAg ICAgICAgICBPUiBiPTMyMgotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTM0MDM0CiAgICAgICAgICBPUiBiPTQxMAogICBd XSkKQEAgLTIwNzIxLDEyICsyMDcyMSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVD VCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9Nzk1CiAgICAgICAgICBPUiBiPTY3MQotICAg ICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA3MSBBTkQgNzMpIEFORCBhIT03MikKLSAgICAgICAgIE9SIChkPj02 My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjMuMCBB TkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3Fy c3QqJyBBTkQgZiBHTE9CICdwcXJzKicpCiAgICAgICAgICBPUiBiPTMyMgotICAgICAgICAg T1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTM0 MDM0CiAgICAgICAgICBPUiBiPTQxMAogICBdXSkKQEAgLTIwNzQzLDEwICsyMDc0MywxMCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9 MTMwMTMKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdxcnN0dSonKQot ICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKICAgICAgICAgIE9SIGI9 NDcKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBP UiBiPTgyOAogICBdXSkKQEAgLTIwNzYzLDEwICsyMDc2MywxMCBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGM9MTMwMTMKICAgICAgICAg IE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdxcnN0dSonKQotICAgICAgICAgT1IgKGQ+ PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4w IEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbWxramlo ZycgQU5EIGYgR0xPQiAnamtsbW4qJykKICAgICAgICAgIE9SIGI9NDcKLSAgICAgICAgIE9S IChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2tq aWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAgICAgICBPUiBiPTgyOAogICBdXSkK QEAgLTIwODc1LDEyICsyMDg3NSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9ODA2CiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiBkPDAu MAogICAgICAgICAgT1IgYj05ODIKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnamtsbW4q JykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk3IEFORCA5OSkgQU5EIGEhPTk4KQogICAg ICAgICAgT1IgZSBJUyBOVUxMCkBAIC0yMDg5OCwxMiArMjA4OTgsMTIgQEAgdGVzdDpkb190 ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTEyLjAgQU5EIGQ8 MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMi4wIEFORCBkPDEzLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgwNgogICAgICAgICAgT1IgYT00 NwogICAgICAgICAgT1IgZDwwLjAKICAgICAgICAgIE9SIGI9OTgyCi0gICAgICAgICBPUiAo ZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yLjAg QU5EIGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2hnZmVkY2In IEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5NyBBTkQg OTkpIEFORCBhIT05OCkKICAgICAgICAgIE9SIGUgSVMgTlVMTApAQCAtMjA5NTMsMTEgKzIw OTUzLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0x MDU2Ci0gICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzI5Ci0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTIyMAogICAgICAgICAgT1IgYj00OTgKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDk2IEFORCA5OCkgQU5EIGEhPTk3KQpAQCAtMjA5NzMsMTEgKzIw OTczLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0x MDU2Ci0gICAgICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzI5Ci0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTIyMAogICAgICAgICAgT1IgYj00OTgKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDk2IEFORCA5OCkgQU5EIGEhPTk3KQpAQCAtMjEwNzEsNyArMjEw NzEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTEwCiAgICAgICAgICBPUiBi PTE5MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOCBBTkQgMTApIEFORCBhIT05KQotICAg ICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbW5vcHEqJykKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDY3IEFORCA2OSkgQU5EIGEhPTY4KQogICAgICAgICAgT1IgYj0zODUKQEAgLTIx MDk0LDcgKzIxMDk0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0xMAogICAg ICAgICAgT1IgYj0xOTAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDggQU5EIDEwKSBBTkQg YSE9OSkKLSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkpIEFORCBhIT02OCkKICAgICAgICAgIE9SIGI9 Mzg1CkBAIC0yMTE1MiwxMCArMjExNTIsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMzMgQU5EIDM1KSBBTkQgYSE9MzQpCiAgICAgICAgICBPUiBjPTMz MDMzCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnc3R1dncqJykKLSAg ICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgZyBJUyBOVUxMCiAgICAgICAgICBPUiBiPTIyMAotICAgICAgICAgT1IgKGQ+PTcwLjAg QU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03MC4wIEFORCBk PDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAt LSA8d2hlcmU3LTIuNTY1LjE+CkBAIC0yMTE3NSwxMCArMjExNzUsMTAgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzMgQU5EIDM1KSBBTkQgYSE9MzQpCiAg ICAgICAgICBPUiBjPTMzMDMzCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xP QiAnc3R1dncqJykKLSAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgZyBJUyBOVUxMCiAgICAgICAgICBPUiBiPTIyMAotICAgICAg ICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTY1LjI+CkBAIC0yMTI1Niw3ICsyMTI1Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMzAgQU5E IDMyKSBBTkQgYSE9MzEpCi0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIElTIE5PVCBO VUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjU2OC4xPgpA QCAtMjEyNzAsNyArMjEyNzAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBj b3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF ICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5EIGEhPTMxKQotICAgICAgICAgT1IgKGQ+PTUu MCBBTkQgZDw2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NS4wIEFORCBk PDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi41NjguMj4KQEAgLTIxMzEzLDcgKzIxMzEzLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiAwIEFO RCAyKSBBTkQgYSE9MSkKICAgICAgICAgIE9SIGI9MTEwMAotICAgICAgICAgT1IgKGQ+PTcw LjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03MC4wIEFO RCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQyMQogICAgICAg ICAgT1IgYj00NjUKICAgICAgICAgIE9SIGI9ODk0CkBAIC0yMTMzNSw3ICsyMTMzNSw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChh IEJFVFdFRU4gMCBBTkQgMikgQU5EIGEhPTEpCiAgICAgICAgICBPUiBiPTExMDAKLSAgICAg ICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj00MjEKICAgICAgICAgIE9SIGI9NDY1CiAgICAgICAgICBPUiBiPTg5NApAQCAtMjEzNTks NyArMjEzNTksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycg QU5EIGYgR0xPQiAnYWJjZGUqJykKICAgICAgICAgIE9SIGI9NDEwCiAgICAgICAgICBPUiBi PTg1OAotICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNTcxLjE+CkBAIC0yMTM3 Niw3ICsyMTM3Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdpaGdmZWRj JyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1IgYj00MTAKICAgICAgICAgIE9S IGI9ODU4Ci0gICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41NzEuMj4KQEAgLTIx NDIyLDkgKzIxNDIyLDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT01NAogICAg ICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBP UiBhPTkKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKGYgR0xPQiAnP2lqa2wqJyBBTkQgZiBHTE9CICdoaWprKicpCi0gICAg ICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi41NzMuMT4KQEAgLTIxNDQyLDkgKzIxNDQy LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT01NAogICAgICAgICAgT1IgKGc9 J3RzcnFwb24nIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiBhPTkKLSAgICAg ICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGYgR0xPQiAnP2lqa2wqJyBBTkQgZiBHTE9CICdoaWprKicpCi0gICAgICAgICBPUiAoZD49 NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAg QU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi41NzMuMj4KQEAgLTIxNTI4LDcgKzIxNTI4LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgV0hFUkUgYj01NTMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIx IEFORCAyMykgQU5EIGEhPTIyKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdM T0IgJ3d4eXphKicpCi0gICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU5LjAgQU5EIGQ8NjAuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQog ICAgICAgICAgT1IgYj01ODMKICAgICAgICAgIE9SIGE9NTYKQEAgLTIxNTQ3LDcgKzIxNTQ3 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj01NTMKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDIxIEFORCAyMykgQU5EIGEhPTIyKQogICAgICAgICAgT1IgKGc9J29ubWxr amknIEFORCBmIEdMT0IgJ3d4eXphKicpCi0gICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2 MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU5LjAgQU5EIGQ8NjAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdtbGtqaWhnJyBBTkQgZiBHTE9C ICdqa2xtbionKQogICAgICAgICAgT1IgYj01ODMKICAgICAgICAgIE9SIGE9NTYKQEAgLTIx NTY0LDcgKzIxNTY0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTgz Ci0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1Ig YT0xCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKQEAg LTIxNTgzLDcgKzIxNTgzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBh PTgzCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAg T1IgYT0xCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkK QEAgLTIxNjM0LDcgKzIxNjM0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj05 MjQKICAgICAgICAgIE9SIGE9OTIKICAgICAgICAgIE9SIGE9NjMKLSAgICAgICAgIE9SIChk Pj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAu MCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ZlZGNi YXonIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjE2NTEs NyArMjE2NTEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTkyNAogICAgICAg ICAgT1IgYT05MgogICAgICAgICAgT1IgYT02MwotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5E IGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZmVkY2JheicgQU5EIGYg R0xPQiAndHV2d3gqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yMTY2OSw3ICsyMTY2OSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J3Z3eHl6YWJjZCcKICAgICAgICAg IE9SIGI9MTkwCiAgICAgICAgICBPUiAoZiBHTE9CICc/bW5vcConIEFORCBmIEdMT0IgJ2xt bm8qJykKLSAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj04OAogICAgICAgICAgT1IgYj01OAogICBdXSkKQEAgLTIxNjg4LDcg KzIxNjg4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgZj0ndnd4eXphYmNkJwog ICAgICAgICAgT1IgYj0xOTAKICAgICAgICAgIE9SIChmIEdMT0IgJz9tbm9wKicgQU5EIGYg R0xPQiAnbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTg4CiAgICAgICAgICBPUiBiPTU4CiAgIF1dKQpAQCAt MjE3MDUsMTIgKzIxNzA1LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj00OTUKICAgICAgICAgIE9SIGM9MjQwMjQKLSAgICAgICAg IE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0x MDAxCiAgICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYgR0xPQiAnemFiY2QqJykKICAg ICAgICAgIE9SIGQ+MWUxMAogICAgICAgICAgT1IgYj01MzEKLSAgICAgICAgIE9SIChkPj00 OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBB TkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDg5CiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjE3MjYsMTIgKzIxNzI2LDEyIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj00OTUKICAgICAgICAgIE9S IGM9MjQwMjQKLSAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj0xMDAxCiAgICAgICAgICBPUiAoZz0ndHNycXBvbicgQU5EIGYg R0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SIGQ+MWUxMAogICAgICAgICAgT1IgYj01MzEK LSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0xMDg5CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjE3NDUsOCArMjE3NDUsOCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQxLjAg QU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00OC4wIEFORCBk PDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDEuMCBBTkQgZDw0 Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0g PHdoZXJlNy0yLjU4Mi4xPgpAQCAtMjE3NTksOCArMjE3NTksOCBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NDguMCBBTkQgZDw0OS4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDEuMCBBTkQgZDw0Mi4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjU4Mi4y PgpAQCAtMjE3NzYsNyArMjE3NzYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAo KGEgQkVUV0VFTiA3MSBBTkQgNzMpIEFORCBhIT03MikKICAgICAgICAgIE9SIChnPSd5eHd2 dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODAg QU5EIDgyKSBBTkQgYSE9ODEpCi0gICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkxIEFORCA5MykgQU5EIGEh PTkyKQogICAgICAgICAgT1IgZD4xZTEwCiAgICAgICAgICBPUiBiPTIyCkBAIC0yMTc5Nyw3 ICsyMTc5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDcx IEFORCA3MykgQU5EIGEhPTcyKQogICAgICAgICAgT1IgKGc9J3l4d3Z1dHMnIEFORCBmIEdM T0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFORCBh IT04MSkKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTEgQU5EIDkzKSBBTkQgYSE9OTIpCiAgICAgICAg ICBPUiBkPjFlMTAKICAgICAgICAgIE9SIGI9MjIKQEAgLTIxODkyLDggKzIxODkyLDggQEAg dGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOTQgQU5EIDk2KSBBTkQg YSE9OTUpCiAgICAgICAgICBPUiBiPTg1OAogICAgICAgICAgT1IgYj04MDYKLSAgICAgICAg IE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYz LjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ny4w IEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAg ICAgICAtLSA8d2hlcmU3LTIuNTg2LjE+CkBAIC0yMTkwOSw4ICsyMTkwOSw4IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDk0IEFORCA5NikgQU5EIGEhPTk1 KQogICAgICAgICAgT1IgYj04NTgKICAgICAgICAgIE9SIGI9ODA2Ci0gICAgICAgICBPUiAo ZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTc3 LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFO RCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzcuMCBBTkQg ZDw3OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjU4Ni4yPgpAQCAtMjE5MjUsMTAgKzIxOTI1LDEwIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgZj0ndnd4eXphYmNk JwogICAgICAgICAgT1IgYT03MgotICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTkzNQotICAgICAgICAgT1IgKGQ+PTQwLjAg QU5EIGQ8NDEuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zNi4wIEFORCBk PDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4w IEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MTMwMTMKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0yMTk0NCwxMCArMjE5NDQsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBmPSd2d3h5emFiY2QnCiAgICAgICAgICBPUiBh PTcyCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9OTM1Ci0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBk IE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgSVMgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYz0xMzAxMwogICBdXSkKICAgICBlbmQsIHsKQEAgLTIxOTYzLDcg KzIxOTYzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSBjPTUwMDUKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdr bG1ubyonKQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAg ICAgIE9SIGI9MTQzCiAgICAgICAgICBPUiBhPTY4CkBAIC0yMTk4Myw3ICsyMTk4Myw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz01 MDA1CiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAna2xtbm8qJykKLSAg ICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAgICAgICBPUiBiPTE0 MwogICAgICAgICAgT1IgYT02OApAQCAtMjIwMDEsOSArMjIwMDEsOSBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NS4wIEFORCBkPDYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2do aWprKicpCi0gICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc2IEFORCA3OCkgQU5EIGEhPTc3KQogICAgICAg ICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBh PTk5CkBAIC0yMjAyMCw5ICsyMjAyMCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTUuMCBBTkQgZDw2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAg IE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNzYgQU5EIDc4KSBBTkQgYSE9NzcpCiAgICAgICAgICBPUiAoZz0na2ppaGdm ZScgQU5EIGYgR0xPQiAncXJzdHUqJykKICAgICAgICAgIE9SIGE9OTkKQEAgLTIyMDQxLDcg KzIyMDQxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDg4IEFORCA5MCkgQU5EIGEhPTg5KQotICAgICAgICAgT1IgKGQ+PTEz LjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFO RCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicg QU5EIGYgR0xPQiAnZmdoaWoqJykKICAgICAgICAgIE9SIGI9OTcxCiAgICAgICAgICBPUiAo Zz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZmdoaWoqJykKQEAgLTIyMDU5LDcgKzIyMDU5LDcg QEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAo Zz0ncXBvbm1saycgQU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDg4IEFORCA5MCkgQU5EIGEhPTg5KQotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8 MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xP QiAnZmdoaWoqJykKICAgICAgICAgIE9SIGI9OTcxCiAgICAgICAgICBPUiAoZz0neHd2dXRz cicgQU5EIGYgR0xPQiAnZmdoaWoqJykKQEAgLTIyMTE0LDcgKzIyMTE0LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgV0hFUkUgZj0nbm9wcXJzdHV2JwogICAgICAgICAgT1IgYj05OTMK ICAgICAgICAgIE9SIGE9NzYKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0yMDAyMAogICAgICAgICAgT1IgYT0yNgogICAg ICAgICAgT1IgYj0xMDQ4CkBAIC0yMjEzNyw3ICsyMjEzNyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgIFdIRVJFIGY9J25vcHFyc3R1dicKICAgICAgICAgIE9SIGI9OTkzCiAgICAgICAg ICBPUiBhPTc2Ci0gICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGM9MjAwMjAKICAgICAgICAgIE9SIGE9MjYKICAgICAgICAgIE9S IGI9MTA0OApAQCAtMjIxNTksMTEgKzIyMTU5LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj03ODEKICAgICAgICAgIE9SIGI9Njcx Ci0gICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5PVCBOVUxMKQotICAg ICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQgYSE9NDApCiAgICAgICAgICBPUiBiPTExMwot ICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTM4NQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2ZnaGlq KicpCiAgIF1dKQpAQCAtMjIxODAsMTEgKzIyMTgwLDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj03ODEKICAgICAgICAgIE9SIGI9 NjcxCi0gICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5PVCBOVUxMKQot ICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQgYSE9NDApCiAgICAgICAgICBPUiBiPTEx MwotICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTM4NQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2Zn aGlqKicpCiAgIF1dKQpAQCAtMjIyMDUsNyArMjIyMDUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBiPTgyNQogICAgICAgICAgT1IgYj03MDQKICAgICAgICAgIE9SIChnPSdt bGtqaWhnJyBBTkQgZiBHTE9CICdqa2xtbionKQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQg ZDwxMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTggQU5EIDYw KSBBTkQgYSE9NTkpCiAgICAgICAgICBPUiBhPTc2CiAgICAgICAgICBPUiBjPTMyMDMyCkBA IC0yMjIyOCw3ICsyMjIyOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9ODI1 CiAgICAgICAgICBPUiBiPTcwNAogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdM T0IgJ2prbG1uKicpCi0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKICAg ICAgICAgIE9SIGE9NzYKICAgICAgICAgIE9SIGM9MzIwMzIKQEAgLTIyMjc1LDcgKzIyMjc1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBiPTg2OQogICAgICAgICAgT1IgYT0zNAotICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8 ODguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hl cmU3LTIuNTk2LjE+CkBAIC0yMjI5MCw3ICsyMjI5MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj04NjkKICAgICAgICAgIE9SIGE9 MzQKLSAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjU5Ni4yPgpAQCAtMjIzODQs OSArMjIzODQsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NDQzCi0g ICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGI9ODM5Ci0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICd4eXphYionKQogICAg ICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBP UiBjPTcwMDcKQEAgLTIyNDAzLDkgKzIyNDAzLDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAg ICAgICBXSEVSRSBiPTQ0MwotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTgzOQotICAgICAgICAgT1IgKGQ+PTUxLjAgQU5E IGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MS4wIEFORCBkPDUy LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYg R0xPQiAneHl6YWIqJykKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdu b3BxcionKQogICAgICAgICAgT1IgYz03MDA3CkBAIC0yMjQyMywxMCArMjI0MjMsMTAgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZiBH TE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAgICAgICAgIE9SIGE9MjEKLSAg ICAgICAgIE9SIChkPj05LjAgQU5EIGQ8MTAuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAg IE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTMu MCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSd6YWJjZGVm Z2gnCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NTA2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNCBBTkQgMTYpIEFO RCBhIT0xNSkKICAgICAgICAgIE9SIGI9ODgKQEAgLTIyNDQ1LDEwICsyMjQ0NSwxMCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChmIEdM T0IgJz9yc3R1KicgQU5EIGYgR0xPQiAncXJzdConKQogICAgICAgICAgT1IgYT0yMQotICAg ICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 OS4wIEFORCBkPDEwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49My4w IEFORCBkPDQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3phYmNkZWZn aCcKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj01MDYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE0IEFORCAxNikgQU5E IGEhPTE1KQogICAgICAgICAgT1IgYj04OApAQCAtMjI0NjUsMTQgKzIyNDY1LDE0IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj00MS4w IEFORCBkPDQyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDEuMCBBTkQg ZDw0Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0nYmNkZWZnaGlqJwog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjggQU5EIDcwKSBBTkQgYSE9NjkpCi0gICAgICAg ICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChn PSdzcnFwb25tJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgKGc9J21sa2pp aGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiBiPTc2MgotICAgICAgICAg T1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0n amloZ2ZlZCcgQU5EIGYgR0xPQiAneXphYmMqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0y MjQ4NiwxNCArMjI0ODYsMTQgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwotICAgICAgV0hFUkUgKGQ+PTQxLjAgQU5EIGQ8NDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgIFdIRVJFIChkPj00MS4wIEFORCBkPDQyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBmPSdiY2RlZmdoaWonCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OCBBTkQg NzApIEFORCBhIT02OSkKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2VmZ2hpKicp CiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamtsbW4qJykKICAgICAg ICAgIE9SIGI9NzYyCi0gICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd5emFiYyonKQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTIyNTA3LDkgKzIyNTA3LDkgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTg1LjAgQU5EIGQ8ODYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04NS4wIEFORCBkPDg2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCi0gICAgICAgICBP UiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi42MDIuMT4KQEAgLTIyNTIyLDkgKzIyNTIyLDkgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTg1 LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04NS4wIEFO RCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHkn Ci0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MDIuMj4KQEAgLTIyNTM3LDgg KzIyNTM3LDggQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49 ODkuMCBBTkQgZDw5MC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU3 LjAgQU5EIGQ8NTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjEKICAg ICAgICAgIE9SIGI8MAogICAgICAgICAgT1IgZj0nYmNkZWZnaGlqJwpAQCAtMjI1NTUsOCAr MjI1NTUsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1Ig KGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj04 OS4wIEFORCBkPDkwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTcu MCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMQogICAg ICAgICAgT1IgYjwwCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCkBAIC0yMjU3Myw5ICsy MjU3Myw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9 J2hnZmVkY2InIEFORCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBPUiAoZD49NDAuMCBB TkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8 NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA2NwogICAgICAgICAg T1IgYj0yMzEKICAgICAgICAgIE9SIGI9MTEzCkBAIC0yMjU5NCw5ICsyMjU5NCw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01NS4w IEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTUuMCBBTkQg ZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFO RCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA2NwogICAgICAgICAgT1IgYj0yMzEKICAg ICAgICAgIE9SIGI9MTEzCkBAIC0yMjY1NSw3ICsyMjY1NSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0yNi4wIEFORCBkPDI3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zMDgKICAgICAgICAgIE9SIGM8PTEwCiAg ICAgICAgICBPUiAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnaGlqa2wqJykKQEAgLTIyNjc3 LDcgKzIyNjc3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAg ICAgV0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdI RVJFIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTMwOAogICAgICAgICAgT1IgYzw9MTAKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBB TkQgZiBHTE9CICdoaWprbConKQpAQCAtMjI3MDAsMTQgKzIyNzAwLDE0IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gOTUgQU5EIDk3KSBBTkQgYSE9 OTYpCi0gICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9OTkzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0MyBBTkQgNDUpIEFO RCBhIT00NCkKICAgICAgICAgIE9SIChmIEdMT0IgJz96YWJjKicgQU5EIGYgR0xPQiAneXph YionKQogICAgICAgICAgT1IgYj02NjMKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQg ZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgYj04NjkKLSAgICAgICAgIE9SIChkPj00 My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBB TkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMjEKICAgXV0p CiAgICAgZW5kLCB7CkBAIC0yMjcyMiwxNCArMjI3MjIsMTQgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA5NSBBTkQgOTcpIEFORCBhIT05NikKLSAg ICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj05OTMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQzIEFORCA0NSkgQU5EIGEhPTQ0 KQogICAgICAgICAgT1IgKGYgR0xPQiAnP3phYmMqJyBBTkQgZiBHTE9CICd5emFiKicpCiAg ICAgICAgICBPUiBiPTY2MwogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0Ig J2RlZmdoKicpCiAgICAgICAgICBPUiBiPTg2OQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5E IGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEyMQogICBdXSkKICAgICBl bmQsIHsKQEAgLTIyODE0LDkgKzIyODE0LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYj04OTQKICAgICAgICAgIE9SIGE9MzEKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg0 IEFORCA4NikgQU5EIGEhPTg1KQotICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTk0Ci0gICAgICAgICBPUiAoZD49MjEuMCBB TkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8 MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkzIEFO RCA5NSkgQU5EIGEhPTk0KQogICAgICAgICAgT1IgYT0yMQogICAgICAgICAgT1IgYj0xMDAx CkBAIC0yMjgzNyw5ICsyMjgzNyw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9 ODk0CiAgICAgICAgICBPUiBhPTMxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NCBBTkQg ODYpIEFORCBhIT04NSkKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYT05NAotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8 MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUp IEFORCBhIT05NCkKICAgICAgICAgIE9SIGE9MjEKICAgICAgICAgIE9SIGI9MTAwMQpAQCAt MjI5NjAsMTAgKzIyOTYwLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg KGYgR0xPQiAnP29wcXIqJyBBTkQgZiBHTE9CICdub3BxKicpCi0gICAgICAgICBPUiAoZD49 NDcuMCBBTkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ3LjAg QU5EIGQ8NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NTIwCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA0IEFORCA2KSBBTkQgYSE9NSkKLSAgICAgICAgIE9SIChk Pj01MC4wIEFORCBkPDUxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTAu MCBBTkQgZDw1MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5E IGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGE9MjEKQEAgLTIyOTgwLDEwICsyMjk4 MCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChmIEdMT0IgJz9vcHFy KicgQU5EIGYgR0xPQiAnbm9wcSonKQotICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDgu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTUyMAogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNCBBTkQgNikgQU5EIGEhPTUpCi0gICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1 MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAzMykg QU5EIGEhPTMyKQogICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3d4eXph KicpCiAgICAgICAgICBPUiBhPTIxCkBAIC0yMzAwNSw3ICsyMzAwNSw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGI9NDE4CiAgICAgICAgICBPUiBhPTU3CiAgICAgICAgICBP UiBmPSdtbm9wcXJzdHUnCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYx NS4xPgpAQCAtMjMwMjQsNyArMjMwMjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiBiPTQxOAogICAgICAgICAgT1IgYT01NwogICAgICAgICAgT1IgZj0nbW5vcHFyc3R1Jwot ICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MTUuMj4KQEAgLTIzMDQxLDEy ICsyMzA0MSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0ncG9ubWxraicg QU5EIGYgR0xPQiAndnd4eXoqJykKICAgICAgICAgIE9SIGI9NDE4CiAgICAgICAgICBPUiAo Zz0na2ppaGdmZScgQU5EIGYgR0xPQiAnc3R1dncqJykKLSAgICAgICAgIE9SIChkPj00My4w IEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMuMCBBTkQg ZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OTQKICAgICAgICAg IE9SIGE9MjEKICAgICAgICAgIE9SIGE9NzgKICAgICAgICAgIE9SIGE9OTEKLSAgICAgICAg IE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYxNi4xPgpAQCAtMjMwNjMsMTIgKzIzMDYzLDEy IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9C ICd2d3h5eionKQogICAgICAgICAgT1IgYj00MTgKICAgICAgICAgIE9SIChnPSdramloZ2Zl JyBBTkQgZiBHTE9CICdzdHV2dyonKQotICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00My4wIEFORCBkPDQ0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTU5NAogICAgICAgICAgT1IgYT0yMQog ICAgICAgICAgT1IgYT03OAogICAgICAgICAgT1IgYT05MQotICAgICAgICAgT1IgKGQ+PTgw LjAgQU5EIGQ8ODEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MC4wIEFO RCBkPDgxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuNjE2LjI+CkBAIC0yMzExMSwxMCArMjMxMTEsMTAgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTIuMCBBTkQg ZDwzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Mi4wIEFORCBkPDMuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzI2CiAgICAgICAgICBPUiBiPTY2 MwotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTI1CiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCiAgIF1dKQpAQCAtMjMx MjksMTAgKzIzMTI5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg V0hFUkUgKGQ+PTIuMCBBTkQgZDwzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTcyNgogICAgICAgICAgT1IgYj02NjMKLSAgICAgICAgIE9SIChkPj0xMy4wIEFORCBk PDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNQogICAgICAgICAgT1IgZj0n cXJzdHV2d3h5JwogICBdXSkKQEAgLTIzMTQ5LDcgKzIzMTQ5LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTgwNgogICAgICAgICAg T1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCi0gICAgICAgICBPUiAoZD49 NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAg QU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDEwIEFORCAxMikgQU5EIGEhPTExKQogICAgICAgICAgT1IgYj0yNzUKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDgwIEFORCA4MikgQU5EIGEhPTgxKQpAQCAtMjMxNjcsNyArMjMxNjcs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IGI9ODA2CiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkqJykK LSAgICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCiAgICAgICAgICBPUiBi PTI3NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gODAgQU5EIDgyKSBBTkQgYSE9ODEpCkBA IC0yMzI5MSw4ICsyMzI5MSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NzE4 CiAgICAgICAgICBPUiBhPTQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU2IEFORCA1OCkg QU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIElTIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg XV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MjMuMT4KQEAgLTIzMzEx LDggKzIzMzExLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MTgKICAgICAg ICAgIE9SIGE9NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTYgQU5EIDU4KSBBTkQgYSE9 NTcpCi0gICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQot ICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYyMy4yPgpAQCAtMjM0MjAsMTIgKzIz NDIwLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj05OTAKLSAgICAg ICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNDEgQU5EIDQzKSBBTkQgYSE9NDIpCiAgICAgICAgICBPUiAoZz0nbm1s a2ppaCcgQU5EIGYgR0xPQiAnZmdoaWoqJykKLSAgICAgICAgIE9SIChkPj04Ni4wIEFORCBk PDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01MzEKLSAgICAgICAgIE9SIChk Pj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Njcu MCBBTkQgZDw2OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAn P2hpamsqJyBBTkQgZiBHTE9CICdnaGlqKicpCiAgICAgICAgICBPUiBmPSdxcnN0dXZ3eHkn CiAgIF1dKQpAQCAtMjM0NDEsMTIgKzIzNDQxLDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgYj05OTAKLSAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDEgQU5EIDQzKSBBTkQgYSE9 NDIpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZmdoaWoqJykKLSAg ICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj01MzEKLSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2hpamsqJyBBTkQgZiBHTE9CICdnaGlqKicpCiAg ICAgICAgICBPUiBmPSdxcnN0dXZ3eHknCiAgIF1dKQpAQCAtMjM0NjUsMTIgKzIzNDY1LDEy IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9C ICd2d3h5eionKQogICAgICAgICAgT1IgYj02MjcKICAgICAgICAgIE9SIChnPSdlZGNiYXp5 JyBBTkQgZiBHTE9CICd2d3h5eionKQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8Mzku MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElT IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBPUiAoZD49OTMuMCBBTkQg ZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkzLjAgQU5EIGQ8OTQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3l6YWJjZGVmZycKLSAgICAg ICAgIE9SIChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBl bmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYyOC4xPgpAQCAtMjM0ODcsMTIgKzIzNDg3 LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBH TE9CICd2d3h5eionKQogICAgICAgICAgT1IgYj02MjcKICAgICAgICAgIE9SIChnPSdlZGNi YXp5JyBBTkQgZiBHTE9CICd2d3h5eionKQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8 MzkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBPUiAoZD49OTMuMCBB TkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkzLjAgQU5EIGQ8 OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3l6YWJjZGVmZycKLSAg ICAgICAgIE9SIChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAg ICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjYyOC4yPgpAQCAtMjM2NzcsOSArMjM2 NzcsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAw MQotICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjM0LjE+CkBAIC0yMzY5Miw5 ICsyMzY5Miw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAg IFdIRVJFIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVS RSAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0xMDAxCi0gICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4Ny4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42MzQuMj4KQEAgLTIz NzkwLDcgKzIzNzkwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGYgR0xPQiAn P3N0dXYqJyBBTkQgZiBHTE9CICdyc3R1KicpCiAgICAgICAgICBPUiBiPTc1MQogICAgICAg ICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCi0gICAgICAgICBPUiAo ZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEw LjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjcKICAg ICAgICAgIE9SIGI9MTAyCiAgIF1dKQpAQCAtMjM4MDgsNyArMjM4MDgsNyBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICBXSEVSRSAoZiBHTE9CICc/c3R1dionIEFORCBmIEdMT0IgJ3JzdHUq JykKICAgICAgICAgIE9SIGI9NzUxCiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYg R0xPQiAna2xtbm8qJykKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYT02NwogICAgICAgICAgT1IgYj0xMDIKICAgXV0pCkBA IC0yMzgyMywxMiArMjM4MjMsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTY5LjAgQU5EIGQ8NzAuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTI1NgogICAgICAgICAgT1IgYz03MDA3CiAgICAgICAgICBPUiBjPTI2 MDI2CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFORCBhIT04MSkKLSAg ICAgICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYT02NgogICBdXSkKICAgICBlbmQsIHsKQEAgLTIzODQyLDEyICsyMzg0MiwxMiBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49Njku MCBBTkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTY5LjAgQU5E IGQ8NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjU2CiAgICAgICAg ICBPUiBjPTcwMDcKICAgICAgICAgIE9SIGM9MjYwMjYKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDgwIEFORCA4MikgQU5EIGEhPTgxKQotICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8 NzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03NC4wIEFORCBkPDc1LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTY2CiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjM4NjgsOSArMjM4NjgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBi PTMzCiAgICAgICAgICBPUiBiPTgxNwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBm IEdMT0IgJ3R1dnd4KicpCi0gICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdlZmdoaSon KQotICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjM5LjE+CkBAIC0yMzg5MCw5 ICsyMzg5MCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MzMKICAgICAgICAg IE9SIGI9ODE3CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAndHV2d3gq JykKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2VmZ2hpKicpCi0gICAgICAgICBP UiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi42MzkuMj4KQEAgLTIzOTEzLDcgKzIzOTEzLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT00OQogICAgICAgICAgT1IgYT01MwogICAg ICAgICAgT1IgYT01NgotICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjQwLjE+ CkBAIC0yMzkzNCw3ICsyMzkzNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9 NDkKICAgICAgICAgIE9SIGE9NTMKICAgICAgICAgIE9SIGE9NTYKLSAgICAgICAgIE9SIChk Pj04My4wIEFORCBkPDg0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODMu MCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjY0MC4yPgpAQCAtMjQwMTksNyArMjQwMTksNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZGVmZ2gq JykKICAgICAgICAgIE9SIGI9NTA5CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQg NjApIEFORCBhIT01OSkKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ2FiY2RlKicp CiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgIF1dKQpAQCAtMjQwMzgsNyArMjQwMzgs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xP QiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGI9NTA5CiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA1OCBBTkQgNjApIEFORCBhIT01OSkKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUw LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0Ig J2FiY2RlKicpCiAgICAgICAgICBPUiBmPSdiY2RlZmdoaWonCiAgIF1dKQpAQCAtMjQwNTYs NyArMjQwNTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBhPTIzCiAgICAgICAg ICBPUiBhPTQzCiAgICAgICAgICBPUiBjPTE5MDE5Ci0gICAgICAgICBPUiAoZD49NDcuMCBB TkQgZDw0OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8 NDguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MTgwMTgKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0yNDA3Myw3ICsyNDA3Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg IFdIRVJFIGE9MjMKICAgICAgICAgIE9SIGE9NDMKICAgICAgICAgIE9SIGM9MTkwMTkKLSAg ICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYz0xODAxOAogICBdXSkKICAgICBlbmQsIHsKQEAgLTI0MDg4LDcgKzI0MDg4LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTM2Ci0gICAgICAgICBPUiAoZD49 MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAg QU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjMxCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjQxMDMsNyArMjQxMDMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFIGE9MzYKLSAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMzEKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0yNDE0NywxNCArMjQxNDcsMTQgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTQyMQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0Ig J3Fyc3R1KicpCiAgICAgICAgICBPUiBiPTcwNAogICAgICAgICAgT1IgYT05MAogICAgICAg ICAgT1IgYT03OAogICAgICAgICAgT1IgMTAwMDAwMDxiCi0gICAgICAgICBPUiAoZD49ODAu MCBBTkQgZDw4MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgwLjAgQU5E IGQ8ODEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBB TkQgZiBHTE9CICdkZWZnaConKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1 KSBBTkQgYSE9NTQpCiAgIF1dKQpAQCAtMjQxNjksMTQgKzI0MTY5LDE0IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0yOC4wIEFORCBk PDI5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MjguMCBBTkQgZDwyOS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00MjEKICAgICAgICAgIE9SIChn PSdxcG9ubWxrJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1IgYj03MDQKICAg ICAgICAgIE9SIGE9OTAKICAgICAgICAgIE9SIGE9NzgKICAgICAgICAgIE9SIDEwMDAwMDA8 YgotICAgICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0KQogICBdXSkKQEAgLTI0MjYwLDcg KzI0MjYwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VF TiA5NCBBTkQgOTYpIEFORCBhIT05NSkKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMgogICBdXSkKICAgICBlbmQsIHsK QEAgLTI0Mjc1LDcgKzI0Mjc1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVS RSAoKGEgQkVUV0VFTiA5NCBBTkQgOTYpIEFORCBhIT05NSkKLSAgICAgICAgIE9SIChkPj03 OC4wIEFORCBkPDc5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzguMCBB TkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMgogICBdXSkK ICAgICBlbmQsIHsKQEAgLTI0MjkxLDkgKzI0MjkxLDkgQEAgdGVzdDpkb190ZXN0KAogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTI3NQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNTcgQU5EIDU5KSBBTkQgYSE9NTgpCi0gICAgICAgICBPUiAoZD49OTIuMCBB TkQgZDw5My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8 OTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdycXBvbm1sJyBBTkQg ZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdpamtsbW5vcHEnCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjQzMDksOSArMjQzMDksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDMKICAgICAgIFdIRVJFIGI9Mjc1CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1 NyBBTkQgNTkpIEFORCBhIT01OCkKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2xt bm9wKicpCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGY9J2lqa2xtbm9wcScKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNDM5 OSw3ICsyNDM5OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYz0xMjAxMgogICAgICAgICAgT1IgYT0xNgogICAgICAgICAgT1IgYT0xNQpAQCAtMjQ0 MjEsNyArMjQ0MjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0g ICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg V0hFUkUgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGM9MTIwMTIKICAgICAgICAgIE9SIGE9MTYKICAgICAgICAgIE9SIGE9MTUKQEAgLTI0 NDQ5LDggKzI0NDQ5LDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3Fwb25t bGsnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMyBB TkQgMzUpIEFORCBhIT0zNCkKICAgICAgICAgIE9SIGI9NTM5Ci0gICAgICAgICBPUiAoZD49 NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTYxLjAg QU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBk PDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2 Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMQogICBdXSkKICAgICBl bmQsIHsKQEAgLTI0NDcwLDggKzI0NDcwLDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ3BxcnN0KicpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAzMyBBTkQgMzUpIEFORCBhIT0zNCkKICAgICAgICAgIE9SIGI9NTM5Ci0gICAg ICAgICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NjEuMCBBTkQgZDw2Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMQog ICBdXSkKICAgICBlbmQsIHsKQEAgLTI0NTYxLDkgKzI0NTYxLDkgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTI0MgogICAgICAgICAg T1IgYj05MDUKLSAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdMT0IgJ2lqa2xtKicpCi0gICAg ICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGE9MjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY3IEFORCA2OSkgQU5EIGEhPTY4KQog ICAgICAgICAgT1IgYj0xMTAwCkBAIC0yNDU4Myw5ICsyNDU4Myw5IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj0yNDIKICAgICAgICAg IE9SIGI9OTA1Ci0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdpamtsbSonKQotICAg ICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTI0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NyBBTkQgNjkpIEFORCBhIT02OCkK ICAgICAgICAgIE9SIGI9MTEwMApAQCAtMjQ2MDcsNyArMjQ2MDcsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTcyCiAgICAgICAgICBPUiBiPTM3NwogICAgICAgICAgT1Ig KGYgR0xPQiAnP2JjZGUqJyBBTkQgZiBHTE9CICdhYmNkKicpCi0gICAgICAgICBPUiAoZD49 OTMuMCBBTkQgZDw5NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkzLjAg QU5EIGQ8OTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDc2CiAgICAg ICAgICBPUiAoZz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgXV0pCkBAIC0y NDYyNiw3ICsyNDYyNiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9NzIKICAg ICAgICAgIE9SIGI9Mzc3CiAgICAgICAgICBPUiAoZiBHTE9CICc/YmNkZSonIEFORCBmIEdM T0IgJ2FiY2QqJykKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj00NzYKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQg ZiBHTE9CICdjZGVmZyonKQogICBdXSkKQEAgLTI0NjQzLDEwICsyNDY0MywxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9MjQ1CiAg ICAgICAgICBPUiBiPTYzOAotICAgICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbGtqaWhnZicgQU5EIGYgR0xPQiAncHFyc3Qq JykKICAgICAgICAgIE9SIGY9J29wcXJzdHV2dycKLSAgICAgICAgIE9SIChkPj04Ni4wIEFO RCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODYuMCBBTkQgZDw4 Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MTcKICAgICAgICAgIE9S IGE9ODUKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdtbm9wcSonKQpA QCAtMjQ2NjQsMTAgKzI0NjY0LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEg RlJPTSB0MwogICAgICAgV0hFUkUgYj0yNDUKICAgICAgICAgIE9SIGI9NjM4Ci0gICAgICAg ICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChn PSdsa2ppaGdmJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1IgZj0nb3BxcnN0 dXZ3JwotICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTgxNwogICAgICAgICAgT1IgYT04NQogICAgICAgICAgT1IgKGc9J2xr amloZ2YnIEFORCBmIEdMT0IgJ21ub3BxKicpCkBAIC0yNDc0Niw3ICsyNDc0Niw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNTUgQU5EIDU3KSBB TkQgYSE9NTYpCi0gICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGM8PTEwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3NSBBTkQg NzcpIEFORCBhIT03NikKICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICd1 dnd4eSonKQpAQCAtMjQ3NjYsNyArMjQ3NjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAg ICAgIFdIRVJFICgoYSBCRVRXRUVOIDU1IEFORCA1NykgQU5EIGEhPTU2KQotICAgICAgICAg T1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj04NS4wIEFORCBkPDg2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPD0x MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzUgQU5EIDc3KSBBTkQgYSE9NzYpCiAgICAg ICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndXZ3eHkqJykKQEAgLTI0ODM5LDcg KzI0ODM5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFO RCBmIEdMT0IgJ2tsbW5vKicpCiAgICAgICAgICBPUiBhPTQ0CiAgICAgICAgICBPUiAoZz0n cXBvbm1saycgQU5EIGYgR0xPQiAnbW5vcHEqJykKLSAgICAgICAgIE9SIChkPj05OS4wIEFO RCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8 MTAwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwOTIKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0yNDg2MSw3ICsyNDg2MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdrbG1ubyonKQogICAgICAgICAgT1Ig YT00NAogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ21ub3BxKicpCi0g ICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0xMDkyCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjQ5MjEsMTQgKzI0OTIxLDE0 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg YT0xMgogICAgICAgICAgT1IgYj05MzUKLSAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDcwCiAgICAgICAgICBPUiBhPTI0 CiAgICAgICAgICBPUiBhPTk1CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNyBBTkQgMjkp IEFORCBhIT0yOCkKICAgICAgICAgIE9SIGE9NDAKICAgICAgICAgIE9SIGI9OTM1Ci0gICAg ICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi42NjcuMT4KQEAgLTI0OTQzLDE0ICsyNDk0 MywxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFIGE9MTIKICAgICAgICAgIE9SIGI9OTM1Ci0gICAgICAgICBPUiAoZD49ODcuMCBBTkQg ZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODgu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTA3MAogICAgICAgICAgT1Ig YT0yNAogICAgICAgICAgT1IgYT05NQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjcgQU5E IDI5KSBBTkQgYSE9MjgpCiAgICAgICAgICBPUiBhPTQwCiAgICAgICAgICBPUiBiPTkzNQot ICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjY3LjI+CkBAIC0yNDk2OCw3ICsy NDk2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjA5CiAgICAgICAgICBP UiBiPTM3NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzYgQU5EIDc4KSBBTkQgYSE9Nzcp Ci0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGM9MjIwMjIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNDk4Nyw3ICsyNDk4Nyw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjA5CiAgICAgICAgICBPUiBiPTM3 NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNzYgQU5EIDc4KSBBTkQgYSE9NzcpCi0gICAg ICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGM9MjIwMjIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNTA0Nyw5ICsyNTA0Nyw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj05OQog ICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAg ICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1Ig KGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDYu MCBBTkQgZDw0Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk4LjAgQU5E IGQ8OTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8 Mi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi42NzAuMT4KQEAgLTI1MDY0LDkgKzI1MDY0LDkgQEAgdGVzdDpkb190ZXN0KAog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTk5CiAgICAgICAgICBPUiAo Zz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZmdoaWoqJykKLSAgICAgICAgIE9SIChkPj05OC4w IEFORCBkPDk5LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MS4wIEFORCBk PDIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTguMCBBTkQgZDw5OS4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY3MC4y PgpAQCAtMjUwODAsNyArMjUwODAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFIGE9MwotICAgICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIChn PSdpaGdmZWRjJyBBTkQgZiBHTE9CICdiY2RlZionKQpAQCAtMjUxMDEsNyArMjUxMDEsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9MwotICAgICAgICAgT1IgKGQ+ PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Mi4w IEFORCBkPDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM1NQogICAg ICAgICAgT1IgYj04MTQKICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdi Y2RlZionKQpAQCAtMjUxMjEsOCArMjUxMjEsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICBXSEVSRSAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2Zn aGlqKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NCBBTkQgNjYpIEFORCBhIT02NSkK QEAgLTI1MTQxLDggKzI1MTQxLDggQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwotICAgICAgV0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9UIE5VTEwpCi0g ICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg V0hFUkUgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj0zNjMKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdmZ2hpaionKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjQgQU5EIDY2KSBBTkQgYSE9NjUpCkBAIC0yNTE5 OCw4ICsyNTE5OCw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9NzkKICAgICAg ICAgIE9SIGI9MjAxCiAgICAgICAgICBPUiBiPTk5Ci0gICAgICAgICBPUiAoZD49MjEuMCBB TkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8 MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NAogICAgICAgICAgT1IgKGYgR0xP QiAnP3JzdHUqJyBBTkQgZiBHTE9CICdxcnN0KicpCiAgICAgICAgICBPUiBhPTg5CkBAIC0y NTIxOCw4ICsyNTIxOCw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGE9NzkKICAg ICAgICAgIE9SIGI9MjAxCiAgICAgICAgICBPUiBiPTk5Ci0gICAgICAgICBPUiAoZD49MjEu MCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5E IGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIy LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02NAogICAgICAgICAgT1IgKGYg R0xPQiAnP3JzdHUqJyBBTkQgZiBHTE9CICdxcnN0KicpCiAgICAgICAgICBPUiBhPTg5CkBA IC0yNTI3OSw3ICsyNTI3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAg ICAgT1IgZj0na2xtbm9wcXJzJwogICAgICAgICAgT1IgZj0nbG1ub3BxcnN0JwpAQCAtMjUy OTUsNyArMjUyOTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAg ICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0g ICAgICBXSEVSRSAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xPQiAndHV2d3gqJykKICAgICAgICAgIE9S IGY9J2tsbW5vcHFycycKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcKQEAgLTI1MzkzLDcg KzI1MzkzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFO RCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiBiPTcwNwogICAgICAgICAgT1IgYj0z NjMKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0xNTcKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd5 emFiYyonKQogICBdXSkKQEAgLTI1NDE0LDcgKzI1NDE0LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAg ICBPUiBiPTcwNwogICAgICAgICAgT1IgYj0zNjMKLSAgICAgICAgIE9SIChkPj0xMi4wIEFO RCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwx My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNTcKICAgICAgICAgIE9S IChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd5emFiYyonKQogICBdXSkKQEAgLTI1NDI5LDcg KzI1NDI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBh PTIKICAgICAgICAgIE9SIGE9ODQKICAgICAgICAgIE9SIGI9Mzk5CkBAIC0yNTQ1MSw3ICsy NTQ1MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0y CiAgICAgICAgICBPUiBhPTg0CiAgICAgICAgICBPUiBiPTM5OQpAQCAtMjU0NzgsNyArMjU0 NzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOCBBTkQg NDApIEFORCBhIT0zOSkKICAgICAgICAgIE9SIGM9MzAwMwogICAgICAgICAgT1IgYT0xOQot ICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAyMCBBTkQgMjIpIEFORCBhIT0yMSkKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0yNTQ5Nyw3ICsyNTQ5Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDM4IEFORCA0MCkgQU5EIGEhPTM5KQogICAgICAgICAgT1IgYz0zMDAz CiAgICAgICAgICBPUiBhPTE5Ci0gICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIwIEFORCAyMikgQU5EIGEh PTIxKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTI1NTEzLDEwICsyNTUxMywxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9NjUyCiAg ICAgICAgICBPUiBhPTgzCi0gICAgICAgICBPUiAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAyCiAgICAgICAgICBPUiBiPTMwMAotICAgICAg ICAgT1IgKGQ+PTQ5LjAgQU5EIGQ8NTAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjgyLjE+CkBAIC0yNTUzMSwxMCArMjU1MzEs MTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVS RSBiPTY1MgogICAgICAgICAgT1IgYT04MwotICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8 OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwMgogICAgICAgICAgT1IgYj0z MDAKLSAgICAgICAgIE9SIChkPj00OS4wIEFORCBkPDUwLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NDkuMCBBTkQgZDw1MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY4Mi4yPgpAQCAtMjU1OTQs MTQgKzI1NTk0LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9MjA5CiAgICAg ICAgICBPUiBiPTE5OAogICAgICAgICAgT1IgYT01MgotICAgICAgICAgT1IgKGQ+PTY0LjAg QU5EIGQ8NjUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBk PDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBkPDAuMAogICAgICAgICAg T1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiAoZiBH TE9CICc/aWprbConIEFORCBmIEdMT0IgJ2hpamsqJykKICAgICAgICAgIE9SIGI9MTY4Ci0g ICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGY9J3V2d3h5emFiYycKLSAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIElT IE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY4 NC4xPgpAQCAtMjU2MTcsMTQgKzI1NjE3LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdI RVJFIGI9MjA5CiAgICAgICAgICBPUiBiPTE5OAogICAgICAgICAgT1IgYT01MgotICAgICAg ICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBk PDAuMAogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAg ICAgICAgICBPUiAoZiBHTE9CICc/aWprbConIEFORCBmIEdMT0IgJ2hpamsqJykKICAgICAg ICAgIE9SIGI9MTY4Ci0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGY9J3V2d3h5emFiYycKLSAgICAgICAgIE9SIChkPj00Mi4w IEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDIuMCBBTkQg ZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjY4NC4yPgpAQCAtMjU2NDUsNyArMjU2NDUsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnZ2hpamsqJykKICAg ICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdpamtsbSonKQogICAgICAgICAg T1IgYT0xNAotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNjg1LjE+CkBAIC0y NTY2Niw3ICsyNTY2Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdoZ2Zl ZGNiJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFO RCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAgICBPUiBhPTE0Ci0gICAgICAgICBPUiAoZD49 MTIuMCBBTkQgZDwxMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEyLjAg QU5EIGQ8MTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi42ODUuMj4KQEAgLTI1Nzk1LDEwICsyNTc5NSwxMCBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MjcwMjcK ICAgICAgICAgIE9SIGI9OTY4Ci0gICAgICAgICBPUiAoZD49NTEuMCBBTkQgZDw1Mi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiBiPTkyNAotICAg ICAgICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBjPTE0MDE0CiAgICAgICAgICBPUiBiPTEwMDEKICAgXV0pCkBAIC0yNTgxNSwxMCArMjU4 MTUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSBjPTI3MDI3CiAgICAgICAgICBPUiBiPTk2OAotICAgICAgICAgT1IgKGQ+PTUxLjAg QU5EIGQ8NTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MS4wIEFORCBk PDUyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ4NwogICAgICAgICAg T1IgYj05MjQKLSAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYz0xNDAxNAogICAgICAgICAgT1IgYj0xMDAxCiAgIF1dKQpAQCAt MjU4MzcsNyArMjU4MzcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA0MyBBTkQgNDUpIEFORCBhIT00NCkKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBB TkQgZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3V2d3gqJyBBTkQg ZiBHTE9CICd0dXZ3KicpCi0gICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDQzCiAgICAgICAgICBPUiBiPTU2NAogICAgICAg ICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3JzdHV2KicpCkBAIC0yNTg2MCw3ICsy NTg2MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQzIEFO RCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0Ig J21ub3BxKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/dXZ3eConIEFORCBmIEdMT0IgJ3R1 dncqJykKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj00NDMKICAgICAgICAgIE9SIGI9NTY0CiAgICAgICAgICBPUiAoZz0n a2ppaGdmZScgQU5EIGYgR0xPQiAncnN0dXYqJykKQEAgLTI1OTEwLDcgKzI1OTEwLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3N0 dXZ3KicpCiAgICAgICAgICBPUiBiPTUzMQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTMg QU5EIDk1KSBBTkQgYSE9OTQpCi0gICAgICAgICBPUiAoZD49My4wIEFORCBkPDQuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjY5Mi4x PgpAQCAtMjU5MjYsNyArMjU5MjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSAo Zz0na2ppaGdmZScgQU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SIGI9NTMxCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFORCBhIT05NCkKLSAgICAgICAg IE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTMuMCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNjkyLjI+CkBAIC0yNTk2NywxMCArMjU5NjcsMTAgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTYw LjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02MC4wIEFO RCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAy NCBBTkQgMjYpIEFORCBhIT0yNSkKLSAgICAgICAgIE9SIChkPj04My4wIEFORCBkPDg0LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTc4NAogICAgICAgICAgT1IgYj03MTgKICAgICAgICAg IE9SIGE9MTgKQEAgLTI1OTkwLDEwICsyNTk5MCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBT RUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI0IEFORCAyNikgQU5EIGEhPTI1 KQotICAgICAgICAgT1IgKGQ+PTgzLjAgQU5EIGQ8ODQuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODMuMCBBTkQgZDw4NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9Nzg0CiAgICAgICAgICBPUiBiPTcxOAogICAgICAgICAgT1IgYT0xOApAQCAtMjYwMTYs MTEgKzI2MDE2LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9NDczCiAgICAg ICAgICBPUiBiPTY0OQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDYgQU5EIDQ4KSBBTkQg YSE9NDcpCi0gICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5Mi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MTEwMAogICAgICAgICAgT1IgYj0xMDEyCiAgICAgICAgICBPUiBh PTcyCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9MTc2CiAgICAgICAgICBPUiBiPTM1NQogICBdXSkKQEAgLTI2MDM4LDEx ICsyNjAzOCwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTQ3MwogICAgICAg ICAgT1IgYj02NDkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ2IEFORCA0OCkgQU5EIGEh PTQ3KQotICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTExMDAKICAgICAgICAgIE9SIGI9MTAxMgogICAgICAgICAgT1IgYT03 MgotICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTE3NgogICAgICAgICAgT1IgYj0zNTUKICAgXV0pCkBAIC0yNjA1NywxMyAr MjYwNTcsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBm PSdjZGVmZ2hpamsnCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5EIGEhPTMxKQot ICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZ2hpamsqJykKLSAgICAgICAgIE9SIChk Pj05MS4wIEFORCBkPDkyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTEu MCBBTkQgZDw5Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjY5Ni4xPgpAQCAtMjYwNzYsMTMgKzI2MDc2LDEzIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xNS4w IEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTUuMCBBTkQg ZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0nY2RlZmdoaWprJwot ICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAzMCBBTkQgMzIpIEFORCBhIT0zMSkKLSAgICAgICAgIE9SIChk Pj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Mjku MCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBv bm0nIEFORCBmIEdMT0IgJ2doaWprKicpCi0gICAgICAgICBPUiAoZD49OTEuMCBBTkQgZDw5 Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi42OTYuMj4KQEAgLTI2MDk3LDcgKzI2MDk3LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZz0nbWxramloZycgQU5EIGYgR0xP QiAnaWprbG0qJykKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBPUiAoZD49MjIuMCBB TkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8 MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKICAgICAgICAgIE9SIGY9J2Rl ZmdoaWprbCcKQEAgLTI2MTE3LDcgKzI2MTE3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBT RUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0nbWxramloZycgQU5EIGYgR0xPQiAn aWprbG0qJykKICAgICAgICAgIE9SIGI9ODgzCi0gICAgICAgICBPUiAoZD49MjIuMCBBTkQg ZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKICAgICAgICAgIE9SIGY9J2RlZmdo aWprbCcKQEAgLTI2MTM2LDcgKzI2MTM2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSAoKGEgQkVUV0VFTiA3IEFORCA5KSBBTkQgYSE9OCkKLSAgICAgICAgIE9SIChk Pj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzYu MCBBTkQgZDw3Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05MDIKICAg ICAgICAgIE9SIGI9MjUKICAgXV0pCkBAIC0yNjE1Miw3ICsyNjE1Miw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNyBBTkQgOSkgQU5EIGEhPTgp Ci0gICAgICAgICBPUiAoZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9OTAyCiAgICAgICAgICBPUiBiPTI1CiAgIF1dKQpAQCAtMjYxNjgsNyArMjYx NjgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSd0c3JxcG9uJyBB TkQgZiBHTE9CICdhYmNkZSonKQotICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OCBBTkQgNzApIEFORCBh IT02OSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc0IEFORCA3NikgQU5EIGEhPTc1KQog ICAgICAgICAgT1IgYj0xMDkyCkBAIC0yNjE4Niw3ICsyNjE4Niw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEg RlJPTSB0MwogICAgICAgV0hFUkUgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ2FiY2RlKicp Ci0gICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDY4IEFORCA3MCkgQU5EIGEhPTY5KQogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNzQgQU5EIDc2KSBBTkQgYSE9NzUpCiAgICAgICAgICBPUiBiPTEwOTIK QEAgLTI2MzI1LDcgKzI2MzI1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03 NwogICAgICAgICAgT1IgYj05MjcKICAgICAgICAgIE9SIGE9OTkKLSAgICAgICAgIE9SIChk Pj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjYu MCBBTkQgZDw2Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAn P3Z3eHkqJyBBTkQgZiBHTE9CICd1dnd4KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjYz NDcsNyArMjYzNDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTc3CiAgICAg ICAgICBPUiBiPTkyNwogICAgICAgICAgT1IgYT05OQotICAgICAgICAgT1IgKGQ+PTY2LjAg QU5EIGQ8NjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ni4wIEFORCBk PDY3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/dnd4eSon IEFORCBmIEdMT0IgJ3V2d3gqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yNjM2MSw4ICsy NjM2MSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdI RVJFIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAo ZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTc2 LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00NS4w IEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAyMSBBTkQgMjMpIEFORCBhIT0yMikKICAgXV0pCkBAIC0y NjM3Nyw4ICsyNjM3Nyw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTExCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMSBBTkQgMjMpIEFORCBhIT0yMikKICAg XV0pCkBAIC0yNjQyMSwxMyArMjY0MjEsMTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj00NC4wIEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1NCBBTkQgNTYpIEFORCBhIT01NSkKICAg ICAgICAgIE9SIGY9J2xtbm9wcXJzdCcKICAgICAgICAgIE9SIChmIEdMT0IgJz9sbW5vKicg QU5EIGYgR0xPQiAna2xtbionKQogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdM T0IgJ2RlZmdoKicpCiAgICAgICAgICBPUiBhPTIzCi0gICAgICAgICBPUiAoZD49NjkuMCBB TkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0t IDx3aGVyZTctMi43MDYuMT4KQEAgLTI2NDQwLDEzICsyNjQ0MCwxMyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NDQuMCBBTkQgZDw0 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDU0IEFORCA1Nikg QU5EIGEhPTU1KQogICAgICAgICAgT1IgZj0nbG1ub3BxcnN0JwogICAgICAgICAgT1IgKGYg R0xPQiAnP2xtbm8qJyBBTkQgZiBHTE9CICdrbG1uKicpCiAgICAgICAgICBPUiAoZz0naWhn ZmVkYycgQU5EIGYgR0xPQiAnZGVmZ2gqJykKICAgICAgICAgIE9SIGE9MjMKLSAgICAgICAg IE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQs IHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjcwNi4yPgpAQCAtMjY0NjIsNyArMjY0NjIsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTgzNgogICAgICAgICAgT1IgKChhIEJF VFdFRU4gODkgQU5EIDkxKSBBTkQgYSE9OTApCiAgICAgICAgICBPUiBiPTYwNQotICAgICAg ICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0na2ppaGdmZScgQU5EIGYgR0xPQiAnc3R1dncqJykKICAgICAgICAgIE9SIGI9NzU5CiAg ICAgICAgICBPUiAoZiBHTE9CICc/emFiYyonIEFORCBmIEdMT0IgJ3l6YWIqJykKQEAgLTI2 NDg1LDcgKzI2NDg1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj04MzYKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDg5IEFORCA5MSkgQU5EIGEhPTkwKQogICAgICAgICAg T1IgYj02MDUKLSAgICAgICAgIE9SIChkPj00Ni4wIEFORCBkPDQ3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3N0dXZ3KicpCiAgICAg ICAgICBPUiBiPTc1OQogICAgICAgICAgT1IgKGYgR0xPQiAnP3phYmMqJyBBTkQgZiBHTE9C ICd5emFiKicpCkBAIC0yNjUwNSw4ICsyNjUwNSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQg Tk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgV0hFUkUgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzA4LjE+CkBAIC0y NjUxOSw4ICsyNjUxOSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj01MS4wIEFORCBkPDUyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00Mi4wIEFORCBkPDQzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzA4LjI+CkBAIC0yNjYwNCw3ICsyNjYwNCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChnPSdubWxramloJyBBTkQgZiBHTE9C ICdlZmdoaSonKQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1IgKChhIEJFVFdFRU4g NiBBTkQgOCkgQU5EIGEhPTcpCi0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjcKICAgICAgICAgIE9SIGE9MjgKICAgXV0p CkBAIC0yNjYyMiw3ICsyNjYyMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIChn PSdubWxramloJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgYT0zNAogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNiBBTkQgOCkgQU5EIGEhPTcpCi0gICAgICAgICBPUiAo ZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc1 LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NjcKICAg ICAgICAgIE9SIGE9MjgKICAgXV0pCkBAIC0yNjY0MCw3ICsyNjY0MCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdwcXJzdConKQog ICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjggQU5EIDcwKSBB TkQgYSE9NjkpCi0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGY9J2doaWprbG1ubycKICAgICAgICAgIE9SIChnPSd1dHNycXBv JyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2hpamsqJyBB TkQgZiBHTE9CICdnaGlqKicpCkBAIC0yNjY2Myw3ICsyNjY2Myw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgIFdIRVJFIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdwcXJzdConKQogICAg ICAgICAgT1IgYT01MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjggQU5EIDcwKSBBTkQg YSE9NjkpCi0gICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGY9J2doaWprbG1ubycKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBB TkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2hpamsqJyBBTkQg ZiBHTE9CICdnaGlqKicpCkBAIC0yNjY4NSw3ICsyNjY4NSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKGc9J3Fwb25tbGsnIEFORCBm IEdMT0IgJ3BxcnN0KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OSBBTkQgNzEpIEFO RCBhIT03MCkKLSAgICAgICAgIE9SIChkPj03MS4wIEFORCBkPDcyLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYT00NwogICBdXSkKICAgICBlbmQsIHsKQEAgLTI2NzAxLDcgKzI2 NzAxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncHFyc3QqJykKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDY5IEFORCA3MSkgQU5EIGEhPTcwKQotICAgICAgICAgT1IgKGQ+PTcxLjAg QU5EIGQ8NzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03MS4wIEFORCBk PDcyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ3CiAgIF1dKQogICAg IGVuZCwgewpAQCAtMjY3ODAsNyArMjY3ODAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIGM9MzEwMzEKLSAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3R1dnd4 KicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NiBBTkQgNjgpIEFORCBhIT02NykKICAg ICAgICAgIE9SIGI9MjU2CkBAIC0yNjgwMyw3ICsyNjgwMyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MwogICAgICAgV0hFUkUgYz0zMTAzMQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8 MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xP QiAndHV2d3gqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDY2IEFORCA2OCkgQU5EIGEh PTY3KQogICAgICAgICAgT1IgYj0yNTYKQEAgLTI2ODMzLDcgKzI2ODMzLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYT0yCiAgICAgICAgICBPUiBhPTUxCiAgICAgICAgICBP UiBiPTI4NgotICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTgwCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjY4NTUsNyArMjY4 NTUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTIKICAgICAgICAgIE9SIGE9 NTEKICAgICAgICAgIE9SIGI9Mjg2Ci0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODAKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0yNjg3MSw3ICsyNjg3MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgYj04NDcKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKLSAg ICAgICAgIE9SIChkPj02LjAgQU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTYuMCBBTkQgZDw3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzE4LjE+CkBAIC0yNjg4Niw3ICsyNjg4Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUg Yj04NDcKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKLSAgICAgICAgIE9SIChkPj02LjAg QU5EIGQ8Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYuMCBBTkQgZDw3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuNzE4LjI+CkBAIC0yNjkzMSw3ICsyNjkzMSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAzMykgQU5EIGEhPTMyKQogICAgICAg ICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiBh PTQzCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzI5CiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAn b3BxcnMqJykKICAgXV0pCkBAIC0yNjk1MCw3ICsyNjk1MCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAzMykgQU5EIGEhPTMyKQogICAgICAg ICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiBh PTQzCi0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzI5CiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAn b3BxcnMqJykKICAgXV0pCkBAIC0yNzAwNiw3ICsyNzAwNiw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gNDAgQU5EIDQyKSBBTkQgYSE9NDEpCi0g ICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTYyLjAgQU5EIGQ8NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGM8PTEwCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZmdoaWoq JykKICAgICAgICAgIE9SIGE9MzUKQEAgLTI3MDE1LDcgKzI3MDE1LDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICAgT1IgYT03MwogICAgICAgICAgT1IgYj03MzcKICAgICAgICAgIE9S IGM9MTgwMTgKLSAgICAgICAgIE9SIChkPj0yMy4wIEFORCBkPDI0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjcyMi4xPgpAQCAt MjcwMjksNyArMjcwMjksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgo YSBCRVRXRUVOIDQwIEFORCA0MikgQU5EIGEhPTQxKQotICAgICAgICAgT1IgKGQ+PTYyLjAg QU5EIGQ8NjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Mi4wIEFORCBk PDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPD0xMAogICAgICAgICAg T1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2ZnaGlqKicpCiAgICAgICAgICBPUiBhPTM1 CkBAIC0yNzAzOCw3ICsyNzAzOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9 NzMKICAgICAgICAgIE9SIGI9NzM3CiAgICAgICAgICBPUiBjPTE4MDE4Ci0gICAgICAgICBP UiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi43MjIuMj4KQEAgLTI3MDUyLDcgKzI3MDUyLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiAwIEFORCAyKSBB TkQgYSE9MSkKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3JzdHV2KicpCiAgICAg ICAgICBPUiBiPTc2MgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzkgQU5EIDQxKSBBTkQg YSE9NDApCkBAIC0yNzA3MCw3ICsyNzA3MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg cmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAg ICAgV0hFUkUgKChhIEJFVFdFRU4gMCBBTkQgMikgQU5EIGEhPTEpCi0gICAgICAgICBPUiAo ZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc5 LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdmZWRj YmF6JyBBTkQgZiBHTE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj03NjIKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDM5IEFORCA0MSkgQU5EIGEhPTQwKQpAQCAtMjcwOTMsNyArMjcw OTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTk3OQogICAgICAgICAgT1Ig YT0zNgogICAgICAgICAgT1IgKGYgR0xPQiAnP3Z3eHkqJyBBTkQgZiBHTE9CICd1dnd4Kicp Ci0gICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGE9NTUKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9CICdyc3R1 dionKQogICBdXSkKQEAgLTI3MTE0LDcgKzI3MTE0LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYj05NzkKICAgICAgICAgIE9SIGE9MzYKICAgICAgICAgIE9SIChmIEdMT0Ig Jz92d3h5KicgQU5EIGYgR0xPQiAndXZ3eConKQotICAgICAgICAgT1IgKGQ+PTUwLjAgQU5E IGQ8NTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01MC4wIEFORCBkPDUx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTU1CiAgICAgICAgICBPUiAo Zz0nZmVkY2JheicgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgXV0pCkBAIC0yNzE2Myw3ICsy NzE2Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj0xMDA0CiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnamts bW4qJykKLSAgICAgICAgIE9SIChkPj03LjAgQU5EIGQ8OC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTcuMCBBTkQgZDw4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBhPTU2CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjcxNzksNyArMjcxNzksNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9 MTAwNAogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCi0g ICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj03LjAgQU5EIGQ8OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig YT01NgogICBdXSkKICAgICBlbmQsIHsKQEAgLTI3MjAyLDcgKzI3MjAyLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj05MjQKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBB TkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01MAotICAgICAgICAgT1IgKGQ+ PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4w IEFORCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAg ICAgICAtLSA8d2hlcmU3LTIuNzI3LjE+CkBAIC0yNzIyNCw3ICsyNzIyNCw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9OTI0CiAgICAgICAgICBPUiAoZz0nbGtqaWhnZicg QU5EIGYgR0xPQiAnb3BxcnMqJykKICAgICAgICAgIE9SIGE9NTAKLSAgICAgICAgIE9SIChk Pj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Mzgu MCBBTkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjcyNy4yPgpAQCAtMjcyOTksMTIgKzI3Mjk5LDEyIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJF VFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMpCiAgICAgICAgICBPUiBiPTYwNQotICAgICAg ICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnbW5vcHEqJykKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDcyIEFORCA3NCkgQU5EIGEhPTczKQogICAgICAgICAgT1IgZj0naWprbG1ub3BxJwog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gODYgQU5EIDg4KSBBTkQgYSE9ODcpCi0gICAgICAg ICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9 OTAwOQogICAgICAgICAgT1IgYj0zNzQKICAgXV0pCkBAIC0yNzMyMSwxMiArMjczMjEsMTIg QEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAo KGEgQkVUV0VFTiA3MiBBTkQgNzQpIEFORCBhIT03MykKICAgICAgICAgIE9SIGI9NjA1Ci0g ICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNzIgQU5EIDc0KSBBTkQgYSE9NzMpCiAgICAgICAgICBPUiBmPSdpamtsbW5v cHEnCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NiBBTkQgODgpIEFORCBhIT04NykKLSAg ICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYz05MDA5CiAgICAgICAgICBPUiBiPTM3NAogICBdXSkKQEAgLTI3Mzc5LDcgKzI3Mzc5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MTgKICAgICAgICAgIE9SIChn PSdmZWRjYmF6JyBBTkQgZiBHTE9CICdwcXJzdConKQogICAgICAgICAgT1IgKGYgR0xPQiAn P2NkZWYqJyBBTkQgZiBHTE9CICdiY2RlKicpCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQg ZDwyNi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3 aGVyZTctMi43MzIuMT4KQEAgLTI3Mzk2LDcgKzI3Mzk2LDcgQEAgdGVzdDpkb190ZXN0KAog ICAgICAgICAgT1IgYj03MTgKICAgICAgICAgIE9SIChnPSdmZWRjYmF6JyBBTkQgZiBHTE9C ICdwcXJzdConKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBHTE9CICdi Y2RlKicpCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43MzIuMj4KQEAgLTI3 NDA5LDcgKzI3NDA5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA5NiBBTkQgOTgpIEFORCBhIT05NykKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0yNzQyMyw3ICsyNzQyMyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKLSAgICAgIFdIRVJFIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTYgQU5EIDk4KSBBTkQgYSE9OTcpCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMjc0MzgsNyArMjc0MzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGI9MTc2Ci0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI3IEFORCAyOSkgQU5E IGEhPTI4KQogICAgICAgICAgT1IgYj02MTkKICAgICAgICAgIE9SIGI9NTk3CkBAIC0yNzQ0 Niw3ICsyNzQ0Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MjcKICAgICAg ICAgIE9SIGI9OTEKICAgICAgICAgIE9SIGE9NzcKLSAgICAgICAgIE9SIChkPj04MC4wIEFO RCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4 MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0g PHdoZXJlNy0yLjczNC4xPgpAQCAtMjc0NjAsNyArMjc0NjAsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKICAgICAgIFdIRVJFIGI9MTc2Ci0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwy Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI3IEFORCAyOSkg QU5EIGEhPTI4KQogICAgICAgICAgT1IgYj02MTkKICAgICAgICAgIE9SIGI9NTk3CkBAIC0y NzQ2OCw3ICsyNzQ2OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MjcKICAg ICAgICAgIE9SIGI9OTEKICAgICAgICAgIE9SIGE9NzcKLSAgICAgICAgIE9SIChkPj04MC4w IEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODAuMCBBTkQg ZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjczNC4yPgpAQCAtMjc1MjEsNyArMjc1MjEsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTM3CiAgICAgICAgICBPUiBiPTEwNTYKICAgICAgICAgIE9S IChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaConKQotICAgICAgICAgT1IgKGQ+PTQu MCBBTkQgZDw1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBk PDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAyMwogICBdXSkKICAg ICBlbmQsIHsKQEAgLTI3NTQxLDcgKzI3NTQxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAg ICAgT1IgYT0zNwogICAgICAgICAgT1IgYj0xMDU2CiAgICAgICAgICBPUiAoZz0nc3JxcG9u bScgQU5EIGYgR0xPQiAnZGVmZ2gqJykKLSAgICAgICAgIE9SIChkPj00LjAgQU5EIGQ8NS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEwMjMKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0yNzU5NiwxMCArMjc1OTYsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0x MDgxCiAgICAgICAgICBPUiBiPTU0MgogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBm IEdMT0IgJ2prbG1uKicpCi0gICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODI4Ci0gICAgICAgICBPUiAoZD49NjcuMCBBTkQg ZDw2OC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2NS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xOAogICBdXSkKICAgICBlbmQsIHsKQEAg LTI3NjE2LDEwICsyNzYxNiwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTEw ODEKICAgICAgICAgIE9SIGI9NTQyCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYg R0xPQiAnamtsbW4qJykKLSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYj04MjgKLSAgICAgICAgIE9SIChkPj02Ny4wIEFORCBk PDY4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2NS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTE4CiAgIF1dKQogICAgIGVuZCwgewpAQCAt Mjc2MzUsNyArMjc2MzUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGY9J2FiY2RlZmdoaScKICAgICAgICAgIE9SIGE9MTQKLSAgICAg ICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yz0yNzAyNwogICAgICAgICAgT1IgYT00NwogICBdXSkKQEAgLTI3NjUyLDcgKzI3NjUyLDcg QEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBm PSdhYmNkZWZnaGknCiAgICAgICAgICBPUiBhPTE0Ci0gICAgICAgICBPUiAoZD49MTMuMCBB TkQgZDwxNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8 MTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM9MjcwMjcKICAgICAgICAg IE9SIGE9NDcKICAgXV0pCkBAIC0yNzY3MSwxMSArMjc2NzEsMTEgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj03MzcKICAgICAgICAgIE9SIGE9MzcKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkKLSAgICAgICAgIE9SIChkPj05NC4w IEFORCBkPDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTQuMCBBTkQg ZDw5NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjUg QU5EIDY3KSBBTkQgYSE9NjYpCiAgICAgICAgICBPUiBhPTkxCiAgICAgICAgICBPUiBiPTc3 Ci0gICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NDAuMT4KQEAgLTI3NjkyLDEx ICsyNzY5MiwxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTczNwogICAgICAg ICAgT1IgYT0zNwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTggQU5EIDEwMCkgQU5EIGEh PTk5KQotICAgICAgICAgT1IgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA2NSBBTkQgNjcpIEFORCBhIT02NikKICAgICAgICAg IE9SIGE9OTEKICAgICAgICAgIE9SIGI9NzcKLSAgICAgICAgIE9SIChkPj05NC4wIEFORCBk PDk1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTQuMCBBTkQgZDw5NS4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjc0MC4yPgpAQCAtMjc3ODIsMTAgKzI3NzgyLDEwIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgIFdIRVJFIChnPSd0c3JxcG9uJyBBTkQgZiBHTE9CICd6YWJjZConKQogICAgICAg ICAgT1IgYT0yNAogICAgICAgICAgT1IgZiBJUyBOVUxMCi0gICAgICAgICBPUiAoZD49Nzcu MCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTU3LjAgQU5E IGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ny4wIEFORCBkPDc4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz0xMjAxMgotICAgICAgICAgT1Ig KGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04 OC4wIEFORCBkPDg5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuNzQzLjE+CkBAIC0yNzgwMSwxMCArMjc4MDEsMTAgQEAg dGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3ph YmNkKicpCiAgICAgICAgICBPUiBhPTI0CiAgICAgICAgICBPUiBmIElTIE5VTEwKLSAgICAg ICAgIE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBP UiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01 Ny4wIEFORCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTEyMDEy Ci0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0p CiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NDMuMj4KQEAgLTI3ODE4LDcg KzI3ODE4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNf c29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTk0Ci0gICAg ICAgICBPUiAoZD49NzQuMCBBTkQgZDw3NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQogICAgICAgICAgT1IgYj03OTIK ICAgICAgICAgIE9SIGE9NzcKQEAgLTI3ODM4LDcgKzI3ODM4LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCiAgICAgICBXSEVSRSBhPTk0Ci0gICAgICAgICBPUiAoZD49NzQuMCBBTkQgZDw3 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc0LjAgQU5EIGQ8NzUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9C ICdoaWprbConKQogICAgICAgICAgT1IgYj03OTIKICAgICAgICAgIE9SIGE9NzcKQEAgLTI3 ODU4LDE0ICsyNzg1OCwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgo YSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEhPTUyKQotICAgICAgICAgT1IgKGQ+PTMwLjAg QU5EIGQ8MzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMC4wIEFORCBk PDMxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTE0CiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA4OSBBTkQgOTEpIEFORCBhIT05MCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDE1IEFORCAxNykgQU5EIGEhPTE2KQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5E IGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEyMQotICAgICAgICAgT1Ig KGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj04 Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjMuMCBB TkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg2LjAgQU5E IGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAg IC0tIDx3aGVyZTctMi43NDUuMT4KQEAgLTI3ODc5LDE0ICsyNzg3OSwxNCBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDUxIEFORCA1MykgQU5EIGEh PTUyKQotICAgICAgICAgT1IgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTE0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4OSBBTkQgOTEpIEFO RCBhIT05MCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE1IEFORCAxNykgQU5EIGEhPTE2 KQotICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTEyMQotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj04Ni4wIEFORCBkPDg3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NDUuMj4KQEAgLTI3 OTI5LDE1ICsyNzkyOSwxNSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49ODQuMCBBTkQgZDw4NS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1Ig Yj0yNjcKICAgICAgICAgIE9SIGM9MTkwMTkKICAgICAgICAgIE9SIGE9NDIKICAgICAgICAg IE9SIGI9OTM4CiAgICAgICAgICBPUiAoZiBHTE9CICc/c3R1dionIEFORCBmIEdMT0IgJ3Jz dHUqJykKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIzKQogICAgICAgICAgT1IgKGYgR0xP QiAnP2tsbW4qJyBBTkQgZiBHTE9CICdqa2xtKicpCiAgIF1dKQpAQCAtMjc5NTIsMTUgKzI3 OTUyLDE1IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVy biBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdI RVJFIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAo ZD49ODQuMCBBTkQgZDw4NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gMzIgQU5EIDM0KSBBTkQgYSE9MzMpCiAgICAgICAgICBPUiBiPTI2NwogICAg ICAgICAgT1IgYz0xOTAxOQogICAgICAgICAgT1IgYT00MgogICAgICAgICAgT1IgYj05MzgK ICAgICAgICAgIE9SIChmIEdMT0IgJz9zdHV2KicgQU5EIGYgR0xPQiAncnN0dSonKQotICAg ICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAg IE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x LjAgQU5EIGQ8Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gMjIgQU5EIDI0KSBBTkQgYSE9MjMpCiAgICAgICAgICBPUiAoZiBHTE9CICc/a2xtbion IEFORCBmIEdMT0IgJ2prbG0qJykKICAgXV0pCkBAIC0yODA1MiwxMyArMjgwNTIsMTMgQEAg dGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0xMDU2CiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA5MSBBTkQgOTMpIEFORCBhIT05MikKICAgICAgICAgIE9SIGI9MTA3OAotICAgICAg ICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBj PTMxMDMxCiAgICAgICAgICBPUiBiPTg2OQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFO RCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAgICBPUiBiPTI0NQogICAgICAgICAgT1IgYT05 MgotICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTg4MAogICBdXSkKICAgICBlbmQsIHsKQEAgLTI4MDc1LDEzICsyODA3NSwx MyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTEwNTYKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDkxIEFORCA5MykgQU5EIGEhPTkyKQogICAgICAgICAgT1IgYj0xMDc4Ci0g ICAgICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGM9MzEwMzEKICAgICAgICAgIE9SIGI9ODY5CiAgICAgICAgICBPUiAoZz0namloZ2Zl ZCcgQU5EIGYgR0xPQiAnemFiY2QqJykKICAgICAgICAgIE9SIGI9MjQ1CiAgICAgICAgICBP UiBhPTkyCi0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9ODgwCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjgwOTcsMTQgKzI4 MDk3LDE0IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgYj0xMDc4CiAgICAgICAgICBPUiBjPTI4MDI4Ci0gICAgICAgICBPUiAoZD49NDAu MCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5E IGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGYgR0xPQiAnP3JzdHUqJyBBTkQg ZiBHTE9CICdxcnN0KicpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAn amtsbW4qJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE3IEFORCAxOSkgQU5EIGEhPTE4 KQogICAgICAgICAgT1IgYz05MDA5CiAgICAgICAgICBPUiBhPTE3Ci0gICAgICAgICBPUiAo ZD49MzkuMCBBTkQgZDw0MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM5 LjAgQU5EIGQ8NDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAg ICAgICAgIC0tIDx3aGVyZTctMi43NTEuMT4KQEAgLTI4MTE5LDE0ICsyODExOSwxNCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MTA3 OAogICAgICAgICAgT1IgYz0yODAyOAotICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElT IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9yc3R1KicgQU5EIGYgR0xPQiAncXJz dConKQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2prbG1uKicpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkKICAgICAgICAg IE9SIGM9OTAwOQogICAgICAgICAgT1IgYT0xNwotICAgICAgICAgT1IgKGQ+PTM5LjAgQU5E IGQ8NDAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOS4wIEFORCBkPDQw LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuNzUxLjI+CkBAIC0yODEzOSwxNCArMjgxMzksMTQgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTU3LjAgQU5EIGQ8NTgu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj01Ny4wIEFORCBkPDU4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgogICAgICAgICAgT1IgKGc9J21s a2ppaGcnIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiBmPSd0dXZ3eHl6YWIn Ci0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAzMykgQU5EIGEhPTMyKQogICAgICAgICAgT1Ig Yj0xMDM0Ci0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi43NTIuMT4KQEAgLTI4 MTU5LDE0ICsyODE1OSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz Ci0gICAgICBXSEVSRSAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9NzYyCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnZ2hp amsqJykKICAgICAgICAgIE9SIGY9J3R1dnd4eXphYicKLSAgICAgICAgIE9SIChkPj00NC4w IEFORCBkPDQ1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQuMCBBTkQg ZDw0NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzEg QU5EIDMzKSBBTkQgYSE9MzIpCiAgICAgICAgICBPUiBiPTEwMzQKLSAgICAgICAgIE9SIChk Pj0xNC4wIEFORCBkPDE1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTQu MCBBTkQgZDwxNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAg ICAgICAgLS0gPHdoZXJlNy0yLjc1Mi4yPgpAQCAtMjgyMTgsMTEgKzI4MjE4LDExIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGM9MTEwMTEKICAgICAgICAgIE9SIGE9MTQKICAg ICAgICAgIE9SIGM9MTYwMTYKLSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdMT0IgJ2VmZ2hp KicpCiAgICAgICAgICBPUiBmPSdqa2xtbm9wcXInCi0gICAgICAgICBPUiAoZD49MjUuMCBB TkQgZDwyNi4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8 OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAg QU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05MTYKICAgXV0pCiAgICAgZW5kLCB7 CkBAIC0yODIzOSwxMSArMjgyMzksMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUg Yz0xMTAxMQogICAgICAgICAgT1IgYT0xNAogICAgICAgICAgT1IgYz0xNjAxNgotICAgICAg ICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZWZnaGkqJykKICAgICAgICAgIE9SIGY9J2prbG1u b3BxcicKLSAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTkxNgogICBdXSkKICAgICBlbmQsIHsKQEAgLTI4MjY0LDcgKzI4MjY0LDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0xNAogICAgICAgICAgT1IgYj02MDgKICAg ICAgICAgIE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4eSonKQotICAgICAgICAg T1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTEy MQogICAgICAgICAgT1IgYj0zMzMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkzIEFORCA5 NSkgQU5EIGEhPTk0KQpAQCAtMjgyODcsNyArMjgyODcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBhPTE0CiAgICAgICAgICBPUiBiPTYwOAogICAgICAgICAgT1IgKGc9J2Vk Y2JhenknIEFORCBmIEdMT0IgJ3V2d3h5KicpCi0gICAgICAgICBPUiAoZD49NjYuMCBBTkQg ZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8Njcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTIxCiAgICAgICAgICBPUiBi PTMzMwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTMgQU5EIDk1KSBBTkQgYSE9OTQpCkBA IC0yODM0MCw3ICsyODM0MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg KGc9J3h3dnV0c3InIEFORCBmIEdMT0IgJ2VmZ2hpKicpCi0gICAgICAgICBPUiAoZD49Nzku MCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc5LjAgQU5E IGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAg IC0tIDx3aGVyZTctMi43NTcuMT4KQEAgLTI4MzU0LDcgKzI4MzU0LDcgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSAoZz0neHd2dXRzcicgQU5EIGYgR0xPQiAnZWZnaGkq JykKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjc1Ny4yPgpAQCAtMjgzNzUs NyArMjgzNzUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBjPTEwMDEKICAgICAg ICAgIE9SIGI9Nzg0CiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZ2hp amsqJykKLSAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjc1OC4xPgpAQCAtMjgz OTYsNyArMjgzOTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBjPTEwMDEKICAg ICAgICAgIE9SIGI9Nzg0CiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAn Z2hpamsqJykKLSAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NjkuMCBBTkQgZDw3MC4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjc1OC4yPgpAQCAt Mjg0ODksOCArMjg0ODksOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDIKICAgICAgIFdIRVJFIGI9NzgxCiAgICAgICAgICBPUiAoZiBHTE9CICc/cHFycyonIEFO RCBmIEdMT0IgJ29wcXIqJykKLSAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSd5eHd2dXRzJyBBTkQgZiBHTE9CICdiY2RlZionKQog ICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAg ICBPUiBmPSdsbW5vcHFyc3QnCkBAIC0yODUxMSw4ICsyODUxMSw4IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj03ODEKICAgICAgICAg IE9SIChmIEdMT0IgJz9wcXJzKicgQU5EIGYgR0xPQiAnb3BxcionKQotICAgICAgICAgT1Ig KGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj05 OS4wIEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU2LjAg QU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFO RCBkPDEwMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3l4d3Z1dHMn IEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYg R0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIGY9J2xtbm9wcXJzdCcKQEAgLTI4NTM1LDcg KzI4NTM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MTgKICAgICAgICAg IE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01 MAotICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xMS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2lq a2xtKicpCiAgICAgICAgICBPUiBiPTEwMjMKQEAgLTI4NTU1LDcgKzI4NTU1LDcgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICAgT1IgYj03MTgKICAgICAgICAgIE9SIChnPSdxcG9ubWxr JyBBTkQgZiBHTE9CICdvcHFycyonKQogICAgICAgICAgT1IgYT01MAotICAgICAgICAgT1Ig KGQ+PTExLjAgQU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x MS4wIEFORCBkPDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM2Mwog ICAgICAgICAgT1IgKGc9J3JxcG9ubWwnIEFORCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAg ICBPUiBiPTEwMjMKQEAgLTI4NTcyLDcgKzI4NTcyLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSBiPTEwODEKLSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00NzMKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDQzIEFORCA0NSkgQU5EIGEhPTQ0KQogICAgICAgICAgT1IgYj01ODYKQEAgLTI4NTkx LDcgKzI4NTkxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTEwODEK LSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTUuMCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj00NzMKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQzIEFORCA0NSkgQU5EIGEh PTQ0KQogICAgICAgICAgT1IgYj01ODYKQEAgLTI4NjEwLDggKzI4NjEwLDggQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSAoZiBHTE9CICc/aWprbConIEFORCBmIEdMT0Ig J2hpamsqJykKLSAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5V TEwpCi0gICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuNzY0LjE+CkBAIC0yODYyNSw4 ICsyODYyNSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGYgR0xPQiAn P2lqa2wqJyBBTkQgZiBHTE9CICdoaWprKicpCi0gICAgICAgICBPUiAoZD49NTguMCBBTkQg ZDw1OS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y Ljc2NC4yPgpAQCAtMjg2NDQsNyArMjg2NDQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBhPTQ3CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUq JykKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdsbW5vcConKQotICAg ICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBmPSdsbW5vcHFyc3QnCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMjg2NjMsNyArMjg2NjMs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiAoZz0n a2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKICAgICAgICAgIE9SIChnPSdsa2ppaGdm JyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdsbW5vcHFyc3QnCiAgIF1dKQogICAg IGVuZCwgewpAQCAtMjg3MTcsMTYgKzI4NzE3LDE2IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQg Tk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgV0hFUkUgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTY5NgogICAgICAgICAgT1IgYj0xNTQKLSAgICAgICAgIE9SIChk Pj0yNC4wIEFORCBkPDI1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjQu MCBBTkQgZDwyNS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yMgotICAg ICAgICAgT1IgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTUyCiAgICAgICAgICBPUiBhPTIxCi0gICAgICAgICBPUiAoZD49NzAuMCBBTkQgZDw3 MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcwLjAgQU5EIGQ8NzEuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi43NjcuMT4KQEAgLTI4NzM5LDE2ICsyODczOSwxNiBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj02OTYKICAgICAgICAgIE9SIGI9MTU0Ci0gICAgICAgICBP UiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjIK LSAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYT01MgogICAgICAgICAgT1IgYT0yMQotICAgICAgICAgT1IgKGQ+PTcwLjAgQU5E IGQ8NzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03MC4wIEFORCBkPDcx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuNzY3LjI+CkBAIC0yODc2Nyw3ICsyODc2Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGI9NTIwCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMyBBTkQgMjUp IEFORCBhIT0yNCkKICAgICAgICAgIE9SIGI9NDA3Ci0gICAgICAgICBPUiAoZD49MzcuMCBB TkQgZDwzOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8 MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGM+PTM0MDM1CiAgICAgICAg ICBPUiBiPTEzNQogICBdXSkKQEAgLTI4Nzg4LDcgKzI4Nzg4LDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj01MjAKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIzIEFORCAy NSkgQU5EIGEhPTI0KQogICAgICAgICAgT1IgYj00MDcKLSAgICAgICAgIE9SIChkPj0zNy4w IEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzcuMCBBTkQg ZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYz49MzQwMzUKICAgICAg ICAgIE9SIGI9MTM1CiAgIF1dKQpAQCAtMjg4MDMsNyArMjg4MDMsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDMuMCBBTkQgZDw0 NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzA3CiAgICAgICAgICBPUiBiPTE0 CiAgICAgICAgICBPUiBiPTEwODkKQEAgLTI4ODIwLDcgKzI4ODIwLDcgQEAgdGVzdDpkb190 ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQo W1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTQzLjAgQU5EIGQ8 NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00My4wIEFORCBkPDQ0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTcwNwogICAgICAgICAgT1IgYj0x NAogICAgICAgICAgT1IgYj0xMDg5CkBAIC0yODkwOCw3ICsyODkwOCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT04NwotICAgICAgICAgT1IgKGQ+PTQ3LjAgQU5E IGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ4NwogICAgICAgICAgT1Ig KGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21ub3BxKicpCiAgIF1dKQpAQCAtMjg5MjQsNyAr Mjg5MjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9ODcKLSAgICAg ICAgIE9SIChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49NDcuMCBBTkQgZDw0OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig Yj00ODcKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdtbm9wcSonKQog ICBdXSkKQEAgLTI4OTQ0LDkgKzI4OTQ0LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYj02MDgKICAgICAgICAgIE9SIGI9ODE0CiAgICAgICAgICBPUiBhPTY3Ci0gICAgICAg ICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 MTA1OQotICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTE4CiAgICAgICAgICBPUiBiPTQwNwogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCkBAIC0yODk2Nyw5ICsyODk2Nyw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NjA4CiAgICAgICAgICBPUiBiPTgxNAogICAg ICAgICAgT1IgYT02NwotICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTEwNTkKLSAgICAgICAgIE9SIChkPj01OC4wIEFORCBk PDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1OS4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0xOAogICAgICAgICAgT1IgYj00 MDcKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDEwIEFORCAxMikgQU5EIGEhPTExKQpAQCAt MjkwMjAsOSArMjkwMjAsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTIyMAog ICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAg ICBPUiBiPTM2MwotICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZGVmZ2gqJykKLSAg ICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjkwMzksOSArMjkwMzksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBi PTIyMAogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAg ICAgICAgICBPUiBiPTM2MwotICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnZGVmZ2gq JykKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gMTAgQU5EIDEyKSBBTkQgYSE9MTEpCiAgIF1dKQogICAg IGVuZCwgewpAQCAtMjkwNTYsMTEgKzI5MDU2LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYj00OTgKLSAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUuMCBBTkQgZDw2LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTg4MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjAg QU5EIDYyKSBBTkQgYSE9NjEpCiAgICAgICAgICBPUiBiPTgyOAotICAgICAgICAgT1IgKGQ+ PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNS4w IEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTExMwogICBd XSkKICAgICBlbmQsIHsKQEAgLTI5MDc1LDExICsyOTA3NSwxMSBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZS T00gdDMKICAgICAgIFdIRVJFIGI9NDk4Ci0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01LjAgQU5EIGQ8Ni4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04ODAKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDYwIEFORCA2MikgQU5EIGEhPTYxKQogICAgICAgICAgT1IgYj04MjgKLSAgICAgICAg IE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MTUuMCBBTkQgZDwxNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0x MTMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yOTA5NCw3ICsyOTA5NCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0xMDU5Ci0gICAgICAgICBPUiAoZD49MjAuMCBB TkQgZDwyMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8 MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTYwCiAgICAgICAgICBP UiAoZiBHTE9CICc/cnN0dSonIEFORCBmIEdMT0IgJ3Fyc3QqJykKICAgICAgICAgIE9SIChn PSd3dnV0c3JxJyBBTkQgZiBHTE9CICdtbm9wcSonKQpAQCAtMjkxMTMsNyArMjkxMTMsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MTA1OQotICAgICAgICAgT1Ig KGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0y MC4wIEFORCBkPDIxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk2MAog ICAgICAgICAgT1IgKGYgR0xPQiAnP3JzdHUqJyBBTkQgZiBHTE9CICdxcnN0KicpCiAgICAg ICAgICBPUiAoZz0nd3Z1dHNycScgQU5EIGYgR0xPQiAnbW5vcHEqJykKQEAgLTI5MTY2LDcg KzI5MTY2LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjEg QU5EIDIzKSBBTkQgYSE9MjIpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NiBBTkQgODgp IEFORCBhIT04NykKICAgICAgICAgIE9SIGM9MjMwMjMKLSAgICAgICAgIE9SIChkPj05OS4w IEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk5LjAgQU5E IGQ8MTAwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuNzc5LjE+CkBAIC0yOTE4Niw3ICsyOTE4Niw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIxIEFORCAyMykgQU5EIGEhPTIyKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gODYgQU5EIDg4KSBBTkQgYSE9ODcpCiAgICAgICAg ICBPUiBjPTIzMDIzCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjc3OS4y PgpAQCAtMjkyMDMsNyArMjkyMDMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo ZiBHTE9CICc/cXJzdConIEFORCBmIEdMT0IgJ3BxcnMqJykKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDggQU5EIDEwKSBBTkQgYSE9OSkKICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScK LSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj04NjkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yOTIyMSw3ICsyOTIyMSw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChmIEdMT0IgJz9xcnN0KicgQU5EIGYgR0xP QiAncHFycyonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOCBBTkQgMTApIEFORCBhIT05 KQogICAgICAgICAgT1IgZj0nYWJjZGVmZ2hpJwotICAgICAgICAgT1IgKGQ+PTkyLjAgQU5E IGQ8OTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkz LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg2OQogICBdXSkKICAgICBl bmQsIHsKQEAgLTI5MjcxLDEwICsyOTI3MSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBiPTEwMzcKICAgICAgICAgIE9SIGI9MTMyCiAgICAgICAgICBPUiBjPTEwMDEKLSAg ICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0n Z2ZlZGNiYScgQU5EIGYgR0xPQiAnbm9wcXIqJykKLSAgICAgICAgIE9SIChkPj01OC4wIEFO RCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1 OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBm IEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBhPTMyCiAgIF1dKQpAQCAtMjkyOTMsMTAg KzI5MjkzLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTAzNwogICAgICAg ICAgT1IgYj0xMzIKICAgICAgICAgIE9SIGM9MTAwMQotICAgICAgICAgT1IgKGQ+PTIwLjAg QU5EIGQ8MjEuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xOC4wIEFORCBk PDE5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4w IEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9C ICdub3BxcionKQotICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKICAg ICAgICAgIE9SIGE9MzIKICAgXV0pCkBAIC0yOTMxMyw3ICsyOTMxMyw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT0yNAogICAgICAg ICAgT1IgYj05MjcKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYT03CiAgICAgICAgICBPUiBiPTQ2MgogICAgICAgICAgT1Ig Yj02MDgKQEAgLTI5MzM1LDcgKzI5MzM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTI0CiAgICAgICAgICBPUiBiPTkyNwotICAg ICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTcKICAgICAgICAgIE9SIGI9NDYyCiAgICAgICAgICBPUiBiPTYwOApAQCAtMjkzODcs MTYgKzI5Mzg3LDE2IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBX SEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgYj0zNgogICAgICAgICAgT1IgKGYgR0xPQiAnP2VmZ2gqJyBBTkQgZiBHTE9CICdkZWZn KicpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDQ2IEFORCA0OCkgQU5EIGEhPTQ3KQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCi0gICAgICAgICBPUiAoZD49 OTEuMCBBTkQgZDw5Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkxLjAg QU5EIGQ8OTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdpaGdmZWRj JyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBm IEdMT0IgJ3Z3eHl6KicpCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDI2IEFORCAyOCkgQU5EIGEhPTI3 KQogICBdXSkKICAgICBlbmQsIHsKQEAgLTI5NDEwLDE2ICsyOTQxMCwxNiBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29y dChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NjAuMCBBTkQg ZDw2MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTYwLjAgQU5EIGQ8NjEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MzYKICAgICAgICAgIE9SIChm IEdMT0IgJz9lZmdoKicgQU5EIGYgR0xPQiAnZGVmZyonKQogICAgICAgICAgT1IgKGc9J2lo Z2ZlZGMnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0 NiBBTkQgNDgpIEFORCBhIT00NykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMxIEFORCAz MykgQU5EIGEhPTMyKQotICAgICAgICAgT1IgKGQ+PTkxLjAgQU5EIGQ8OTIuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05MS4wIEFORCBkPDkyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycgQU5EIGYgR0xPQiAnZWZnaGkqJykK ICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd2d3h5eionKQotICAgICAg ICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAyNiBBTkQgMjgpIEFORCBhIT0yNykKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0yOTQ0MCw3ICsyOTQ0MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MzAw CiAgICAgICAgICBPUiBhPTQxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkp IEFORCBhIT0zOCkKLSAgICAgICAgIE9SIChkPj0xLjAgQU5EIGQ8Mi4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTMzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxMCBBTkQgMTIp IEFORCBhIT0xMSkKICAgXV0pCkBAIC0yOTQ2Miw3ICsyOTQ2Miw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICAgICAgIE9SIGI9MzAwCiAgICAgICAgICBPUiBhPTQxCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKLSAgICAgICAgIE9SIChkPj0xLjAg QU5EIGQ8Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwy LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTMzCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiAxMCBBTkQgMTIpIEFORCBhIT0xMSkKICAgXV0pCkBAIC0yOTQ3OCw3ICsy OTQ3OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgKChhIEJFVFdFRU4g NjggQU5EIDcwKSBBTkQgYSE9NjkpCi0gICAgICAgICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcxLjAgQU5EIGQ8NzIuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDk0IEFORCA5NikgQU5E IGEhPTk1KQogICAgICAgICAgT1IgKGYgR0xPQiAnP2NkZWYqJyBBTkQgZiBHTE9CICdiY2Rl KicpCiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbW5vcHEqJykKQEAg LTI5NTAxLDcgKzI5NTAxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSAo KGEgQkVUV0VFTiA2OCBBTkQgNzApIEFORCBhIT02OSkKLSAgICAgICAgIE9SIChkPj03MS4w IEFORCBkPDcyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzEuMCBBTkQg ZDw3Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTQg QU5EIDk2KSBBTkQgYSE9OTUpCiAgICAgICAgICBPUiAoZiBHTE9CICc/Y2RlZionIEFORCBm IEdMT0IgJ2JjZGUqJykKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdt bm9wcSonKQpAQCAtMjk1NTcsNyArMjk1NTcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBiPTczNwogICAgICAgICAgT1IgYj0yMDEKICAgICAgICAgIE9SIGE9NwotICAgICAg ICAgT1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0neXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIGI9OTU3CiAg IF1dKQpAQCAtMjk1NzYsNyArMjk1NzYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBP UiBiPTczNwogICAgICAgICAgT1IgYj0yMDEKICAgICAgICAgIE9SIGE9NwotICAgICAgICAg T1IgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0n eXh3dnV0cycgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAgICAgIE9SIGI9OTU3CiAgIF1d KQpAQCAtMjk2MjksNyArMjk2MjksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MTc5CiAgICAgICAgICBPUiBiPTEwODEKICAgICAgICAgIE9SIGI9 Mzc3CkBAIC0yOTY0OSw3ICsyOTY0OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj0xNzkKICAgICAgICAgIE9SIGI9MTA4MQogICAgICAgICAgT1Ig Yj0zNzcKQEAgLTI5Nzg5LDcgKzI5Nzg5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTUwOQogICAgICAgICAgT1IgYj0xMDA0CiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiAyOCBBTkQgMzApIEFORCBhIT0yOSkKQEAgLTI5ODA4LDcgKzI5ODA4 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUg KGQ+PTI1LjAgQU5EIGQ8MjYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0y NS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTUwOQog ICAgICAgICAgT1IgYj0xMDA0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyOCBBTkQgMzAp IEFORCBhIT0yOSkKQEAgLTI5ODU1LDcgKzI5ODU1LDcgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05NS4wIEFORCBkPDk2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdhYmNkZWZnaGknCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMjk4NjksNyArMjk4NjksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTUuMCBBTkQgZDw5Ni4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGY9J2FiY2RlZmdoaScKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0yOTkx OCw3ICsyOTkxOCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgZj0nbG1u b3BxcnN0JwotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9NDcKICAgICAgICAgIE9SIGE9NzEKICAgXV0pCkBAIC0yOTkzNCw3ICsy OTkzNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgZj0nbG1ub3BxcnN0 JwotICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9NDcKICAgICAgICAgIE9SIGE9NzEKICAgXV0pCkBAIC0yOTk1MCw3ICsyOTk1MCw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj01MzEKLSAgICAgICAgIE9S IChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gOTUgQU5EIDk3KSBBTkQgYSE9OTYpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAz MiBBTkQgMzQpIEFORCBhIT0zMykKICAgICAgICAgIE9SIGI9NDQKQEAgLTI5OTcxLDcgKzI5 OTcxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29y dChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTUzMQotICAgICAg ICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA5NSBBTkQgOTcpIEFORCBhIT05NikKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDMyIEFORCAzNCkgQU5EIGEhPTMzKQogICAgICAgICAgT1IgYj00NApAQCAtMjk5OTMs NyArMjk5OTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAg ICAgIFdIRVJFIChmIEdMT0IgJz9lZmdoKicgQU5EIGYgR0xPQiAnZGVmZyonKQogICAgICAg ICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2VmZ2hpKicpCi0gICAgICAgICBPUiAo ZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg5 LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J2prbG1u b3BxcicKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDAwOSw3ICszMDAwOSw3IEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGYgR0xPQiAn P2VmZ2gqJyBBTkQgZiBHTE9CICdkZWZnKicpCiAgICAgICAgICBPUiAoZz0naWhnZmVkYycg QU5EIGYgR0xPQiAnZWZnaGkqJykKLSAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgZj0namtsbW5vcHFyJwogICBdXSkKICAgICBl bmQsIHsKQEAgLTMwMDI3LDcgKzMwMDI3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAgICAgICBPUiBhPTQ3 CiAgICAgICAgICBPUiAoZz0ncXBvbm1saycgQU5EIGYgR0xPQiAncXJzdHUqJykKLSAgICAg ICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1Ig KGc9J3d2dXRzcnEnIEFORCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAgICBPUiBiPTgwCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA2MCBBTkQgNjIpIEFORCBhIT02MSkKQEAgLTMwMDQ4 LDcgKzMwMDQ4LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMn IEFORCBmIEdMT0IgJ2FiY2RlKicpCiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiAo Zz0ncXBvbm1saycgQU5EIGYgR0xPQiAncXJzdHUqJykKLSAgICAgICAgIE9SIChkPj05My4w IEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQg ZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRzcnEnIEFO RCBmIEdMT0IgJ2lqa2xtKicpCiAgICAgICAgICBPUiBiPTgwCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA2MCBBTkQgNjIpIEFORCBhIT02MSkKQEAgLTMwMDY2LDE0ICszMDA2NiwxNCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGE9NDgKLSAgICAgICAgIE9SIChk Pj01NS4wIEFORCBkPDU2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTUu MCBBTkQgZDw1Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xMDE1CiAg ICAgICAgICBPUiBhPTU3CiAgICAgICAgICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBmIEdM T0IgJ2prbG0qJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ3IEFORCA0OSkgQU5EIGEh PTQ4KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTggQU5EIDEwMCkgQU5EIGEhPTk5KQog ICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ3l6YWJjKicpCi0gICAgICAg ICBPUiAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj00LjAgQU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0xNjUK ICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDA4OCwxNCArMzAwODgsMTQgQEAgdGVzdDpkb190 ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1Qg YSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTQ4Ci0gICAgICAgICBPUiAoZD49NTUuMCBBTkQg ZDw1Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTAxNQogICAgICAgICAgT1Ig YT01NwogICAgICAgICAgT1IgKGYgR0xPQiAnP2tsbW4qJyBBTkQgZiBHTE9CICdqa2xtKicp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0NyBBTkQgNDkpIEFORCBhIT00OCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDk4IEFORCAxMDApIEFORCBhIT05OSkKICAgICAgICAgIE9S IChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICd5emFiYyonKQotICAgICAgICAgT1IgKGQ+PTQu MCBBTkQgZDw1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NC4wIEFORCBk PDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTY1CiAgIF1dKQogICAg IGVuZCwgewpAQCAtMzAxODYsNyArMzAxODYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFORCBhIT05NCkKICAgICAgICAgIE9SIChn PSdwb25tbGtqJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgYT0xNAotICAg ICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBiPTk0NgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1KSBBTkQgYSE9NTQp CiAgICAgICAgICBPUiBiPTEyNApAQCAtMzAyMDksNyArMzAyMDksNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFORCBhIT05NCkKICAg ICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAg T1IgYT0xNAotICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTk0NgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1 KSBBTkQgYSE9NTQpCiAgICAgICAgICBPUiBiPTEyNApAQCAtMzAyMjYsOCArMzAyMjYsOCBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDg4IEFORCA5 MCkgQU5EIGEhPTg5KQotICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIElTIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9CICdrbG1ubyonKQogICBdXSkK ICAgICBlbmQsIHsKQEAgLTMwMjQyLDggKzMwMjQyLDggQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQz CiAgICAgICBXSEVSRSAoKGEgQkVUV0VFTiA4OCBBTkQgOTApIEFORCBhIT04OSkKLSAgICAg ICAgIE9SIChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBP UiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02 Ni4wIEFORCBkPDY3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZ2Zl ZGNiYScgQU5EIGYgR0xPQiAna2xtbm8qJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDI5 Myw3ICszMDI5Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3phYmNkKicpCiAgICAgICAg ICBPUiAoZiBHTE9CICc/bW5vcConIEFORCBmIEdMT0IgJ2xtbm8qJykKLSAgICAgICAgIE9S IChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NDMuMCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gNzkgQU5EIDgxKSBBTkQgYSE9ODApCiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScg QU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIChmIEdMT0IgJz9rbG1uKicgQU5E IGYgR0xPQiAnamtsbSonKQpAQCAtMzAzMTMsNyArMzAzMTMsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdqaWhnZmVkJyBBTkQg ZiBHTE9CICd6YWJjZConKQogICAgICAgICAgT1IgKGYgR0xPQiAnP21ub3AqJyBBTkQgZiBH TE9CICdsbW5vKicpCi0gICAgICAgICBPUiAoZD49NDMuMCBBTkQgZDw0NC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc5IEFORCA4MSkgQU5EIGEhPTgwKQog ICAgICAgICAgT1IgKGc9J2VkY2JhenknIEFORCBmIEdMT0IgJ3d4eXphKicpCiAgICAgICAg ICBPUiAoZiBHTE9CICc/a2xtbionIEFORCBmIEdMT0IgJ2prbG0qJykKQEAgLTMwMzMxLDEw ICszMDMzMSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49MzAuMCBBTkQgZDwzMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IChnPSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgKGc9J2dm ZWRjYmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCi0gICAgICAgICBPUiAoZD49NjQuMCBBTkQg ZDw2NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBH TE9CICdub3BxcionKQogICAgICAgICAgT1IgYT01OQogICBdXSkKQEAgLTMwMzQ5LDEwICsz MDM0OSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49MzAuMCBBTkQgZDwzMS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChn PSd4d3Z1dHNyJyBBTkQgZiBHTE9CICdlZmdoaSonKQogICAgICAgICAgT1IgKGc9J2dmZWRj YmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCi0gICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2 NS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2JhJyBBTkQgZiBHTE9C ICdub3BxcionKQogICAgICAgICAgT1IgYT01OQogICBdXSkKQEAgLTMwMzc1LDggKzMwMzc1 LDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgZj0nZ2hpamtsbW5vJwogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAgICAgICAgICBPUiBm PSdnaGlqa2xtbm8nCi0gICAgICAgICBPUiAoZD49NjQuMCBBTkQgZDw2NS4wIEFORCBkIE5P VCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQgSVMgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj0xMDgxCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzAzOTgsOCArMzAz OTgsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBmPSdnaGlqa2xtbm8nCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAxNCBBTkQgMTYpIEFORCBhIT0xNSkKICAgICAgICAgIE9S IGY9J2doaWprbG1ubycKLSAgICAgICAgIE9SIChkPj02NC4wIEFORCBkPDY1LjAgQU5EIGQg Tk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MTkuMCBBTkQgZDwyMC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTY0LjAgQU5EIGQ8NjUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTEwODEKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDQxNiwxMCAr MzA0MTYsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMzAg QU5EIDMyKSBBTkQgYSE9MzEpCiAgICAgICAgICBPUiBhPTk2CiAgICAgICAgICBPUiBiPTM1 NQotICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTU5NwogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTIgQU5EIDk0KSBBTkQg YSE9OTMpCi0gICAgICAgICBPUiAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTg4LjAgQU5EIGQ8ODkuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChmIEdMT0IgJz9sbW5vKicgQU5EIGYgR0xPQiAna2xtbionKQogICAg ICAgICAgT1IgYj0xNjgKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdw cXJzdConKQpAQCAtMzA0MzgsMTAgKzMwNDM4LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg IFdIRVJFICgoYSBCRVRXRUVOIDMwIEFORCAzMikgQU5EIGEhPTMxKQogICAgICAgICAgT1Ig YT05NgogICAgICAgICAgT1IgYj0zNTUKLSAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgy LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01OTcKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDkyIEFORCA5NCkgQU5EIGEhPTkzKQotICAgICAgICAgT1IgKGQ+PTg4LjAgQU5E IGQ8ODkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OC4wIEFORCBkPDg5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/bG1ubyonIEFO RCBmIEdMT0IgJ2tsbW4qJykKICAgICAgICAgIE9SIGI9MTY4CiAgICAgICAgICBPUiAoZz0n dnV0c3JxcCcgQU5EIGYgR0xPQiAncHFyc3QqJykKQEAgLTMwNDU3LDkgKzMwNDU3LDkgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQ3 LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00Ny4wIEFO RCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk1NwotICAgICAg ICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gODcgQU5EIDg5KSBBTkQgYSE9ODgpCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA1OCBBTkQgNjApIEFORCBhIT01OSkKICAgICAgICAgIE9SIGE9NDAKQEAgLTMwNDc1LDkg KzMwNDc1LDkgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAg V0hFUkUgKGQ+PTQ3LjAgQU5EIGQ8NDguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj00Ny4wIEFORCBkPDQ4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTk1NwotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gODcgQU5EIDg5KSBBTkQgYSE9ODgpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA1OCBBTkQgNjApIEFORCBhIT01OSkKICAgICAgICAgIE9SIGE9NDAK QEAgLTMwNDk3LDkgKzMwNDk3LDkgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0z NgogICAgICAgICAgT1IgYT03NQogICAgICAgICAgT1IgYj0xNzkKLSAgICAgICAgIE9SIChk Pj00My4wIEFORCBkPDQ0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDMu MCBBTkQgZDw0NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3V0c3Jx cG8nIEFORCBmIEdMT0IgJ3N0dXZ3KicpCi0gICAgICAgICBPUiAoZD49NjUuMCBBTkQgZDw2 Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY1LjAgQU5EIGQ8NjYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODUwCiAgICAgICAgICBPUiBhPTYy CiAgIF1dKQpAQCAtMzA1MTgsOSArMzA1MTgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiBhPTM2CiAgICAgICAgICBPUiBhPTc1CiAgICAgICAgICBPUiBiPTE3OQotICAgICAg ICAgT1IgKGQ+PTQzLjAgQU5EIGQ8NDQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj00My4wIEFORCBkPDQ0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAo Zz0ndXRzcnFwbycgQU5EIGYgR0xPQiAnc3R1dncqJykKLSAgICAgICAgIE9SIChkPj02NS4w IEFORCBkPDY2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjUuMCBBTkQg ZDw2Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04NTAKICAgICAgICAg IE9SIGE9NjIKICAgXV0pCkBAIC0zMDU0MCw3ICszMDU0MCw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGE9NjYKICAgICAgICAgIE9SIGI9NDg3CiAgICAgICAgICBPUiBhPTEK LSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYz01MDA1CiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiBjPTUwMDUKQEAg LTMwNTYzLDcgKzMwNTYzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT02Ngog ICAgICAgICAgT1IgYj00ODcKICAgICAgICAgIE9SIGE9MQotICAgICAgICAgT1IgKGQ+PTU0 LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NC4wIEFO RCBkPDU1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTUwMDUKICAgICAg ICAgIE9SIGE9NDcKICAgICAgICAgIE9SIGM9NTAwNQpAQCAtMzA2MTMsMTMgKzMwNjEzLDEz IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj0xMC4wIEFORCBkPDExLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTAu MCBBTkQgZDwxMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gOTAgQU5EIDkyKSBBTkQgYSE9OTEpCiAgICAgICAgICBPUiBiPTMxOQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gMzEgQU5EIDMzKSBBTkQgYSE9MzIpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA5IEFORCAxMSkgQU5EIGEhPTEwKQogICAgICAgICAgT1IgYT0yMQotICAgICAg ICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODE3LjE+CkBAIC0zMDYzMiwxMyArMzA2MzIs MTMgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUg KGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0x MC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA5MCBBTkQgOTIpIEFORCBhIT05MSkKICAgICAgICAgIE9SIGI9MzE5CiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAzMSBBTkQgMzMpIEFORCBhIT0zMikKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDkgQU5EIDExKSBBTkQgYSE9MTApCiAgICAgICAgICBPUiBhPTIxCi0gICAg ICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAg ZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44MTcuMj4KQEAgLTMwNjUxLDEzICszMDY1 MSwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9Mzk2 CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgICAg ICAgIE9SIGI9MTAxMgogICAgICAgICAgT1IgKGYgR0xPQiAnP2tsbW4qJyBBTkQgZiBHTE9C ICdqa2xtKicpCiAgICAgICAgICBPUiBiPTc4NAotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5E IGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTk3OQogICAgICAgICAgT1Ig Yzw9MTAKICAgICAgICAgIE9SIGI9OTEzCkBAIC0zMDY3NCwxMyArMzA2NzQsMTMgQEAgdGVz dDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTIyLjAg QU5EIGQ8MjMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0yMi4wIEFORCBk PDIzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTM5NgogICAgICAgICAg T1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiBiPTEw MTIKICAgICAgICAgIE9SIChmIEdMT0IgJz9rbG1uKicgQU5EIGYgR0xPQiAnamtsbSonKQog ICAgICAgICAgT1IgYj03ODQKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05NzkKICAgICAgICAgIE9SIGM8PTEwCiAgICAg ICAgICBPUiBiPTkxMwpAQCAtMzA3NjMsNyArMzA3NjMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBiPTEwMTIKICAgICAgICAgIE9SIGY9J3h5emFiY2RlZicKICAgICAgICAg IE9SIGI9NjgyCi0gICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44MjEuMT4KQEAg LTMwNzgyLDcgKzMwNzgyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj0xMDEy CiAgICAgICAgICBPUiBmPSd4eXphYmNkZWYnCiAgICAgICAgICBPUiBiPTY4MgotICAgICAg ICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj01Mi4wIEFORCBkPDUzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODIxLjI+CkBAIC0zMDc5Niw3ICszMDc5Niw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT05NgotICAgICAgICAgT1Ig KGQ+PTE5LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x OS4wIEFORCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuODIyLjE+CkBAIC0zMDgxMCw3ICszMDgxMCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYT05NgotICAgICAgICAgT1IgKGQ+PTE5 LjAgQU5EIGQ8MjAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOS4wIEFO RCBkPDIwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuODIyLjI+CkBAIC0zMDgyNCw3ICszMDgyNCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT0yCi0gICAgICAgICBPUiAoZD49MTEuMCBBTkQg ZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTExLjAgQU5EIGQ8MTIu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjMKICAgICAgICAgIE9SIGI9 MTA5MgogICAgICAgICAgT1IgYz0xOTAxOQpAQCAtMzA4NDcsNyArMzA4NDcsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGE9MgotICAgICAgICAgT1IgKGQ+PTExLjAg QU5EIGQ8MTIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMS4wIEFORCBk PDEyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTIzCiAgICAgICAgICBP UiBiPTEwOTIKICAgICAgICAgIE9SIGM9MTkwMTkKQEAgLTMwODY5LDEzICszMDg2OSwxMyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49 MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTE2LjAg QU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTkzCiAgICAg ICAgICBPUiBjPTE3MDE3Ci0gICAgICAgICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBk IE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBOT1Qg TlVMTCkKLSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwp Ci0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTg1LjAgQU5EIGQ8ODYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MzMzCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzA4ODksMTMgKzMwODg5LDEzIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xNi4w IEFORCBkPDE3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTYuMCBBTkQg ZDwxNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj05OTMKICAgICAgICAg IE9SIGM9MTcwMTcKLSAgICAgICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0z MzMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDkxMSw4ICszMDkxMSw4IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0zMzAKICAgICAg ICAgIE9SIGE9NzMKLSAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgTk9U IE5VTEwpCi0gICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTYxLjAgQU5EIGQ8NjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj00MC4wIEFORCBkPDQxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTgyOAogICAgICAgICAgT1IgYj0zNjMKICAgICAgICAgIE9SIChnPSdy cXBvbm1sJyBBTkQgZiBHTE9CICdsbW5vcConKQpAQCAtMzA5MzAsOCArMzA5MzAsOCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9MzMw CiAgICAgICAgICBPUiBhPTczCi0gICAgICAgICBPUiAoZD49NjEuMCBBTkQgZDw2Mi4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MS4wIEFORCBkPDYyLjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj04MjgKICAgICAgICAgIE9SIGI9MzYzCiAgICAgICAgICBP UiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnbG1ub3AqJykKQEAgLTMwOTQ5LDcgKzMwOTQ5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSAoZz0nZ2ZlZGNiYScgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SIGE9NDEK LSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj04MjUKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMDk2NSw3ICszMDk2NSw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9 J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBhPTQxCi0gICAg ICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9ODI1CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzA5ODAsNyArMzA5ODAsNyBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDQ2IEFORCA0OCkgQU5E IGEhPTQ3KQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTkwNQogICAgICAgICAgT1IgYj0xNzYKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDg5IEFORCA5MSkgQU5EIGEhPTkwKQpAQCAtMzEwMDIsNyArMzEwMDIsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFICgoYSBCRVRXRUVOIDQ2IEFORCA0 OCkgQU5EIGEhPTQ3KQotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5EIGQ8MTEuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDExLjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBiPTkwNQogICAgICAgICAgT1IgYj0xNzYKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDg5IEFORCA5MSkgQU5EIGEhPTkwKQpAQCAtMzExMDksOSArMzEx MDksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdI RVJFICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEhPTE5KQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNDAgQU5EIDQyKSBBTkQgYSE9NDEpCi0gICAgICAgICBPUiAoZD49NzIuMCBB TkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8 NTcuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBk IElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSd6YWJjZGVmZ2gnCiAgICAgICAgICBPUiBiPTg2 MQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0IgJ3BxcnN0KicpCkBAIC0z MTEzMiw5ICszMTEzMiw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwogICAgICAgV0hFUkUgKChhIEJFVFdFRU4gMTggQU5EIDIwKSBBTkQgYSE9MTkpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA0MCBBTkQgNDIpIEFORCBhIT00MSkKLSAgICAgICAgIE9S IChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTYzLjAg QU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Mi4wIEFORCBk PDczLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1 Ny4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J3phYmNkZWZnaCcKICAgICAg ICAgIE9SIGI9ODYxCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncHFy c3QqJykKQEAgLTMxMTU1LDcgKzMxMTU1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTU3NQogICAgICAgICAgT1IgKGYgR0xPQiAn P25vcHEqJyBBTkQgZiBHTE9CICdtbm9wKicpCi0gICAgICAgICBPUiAoZD49NzMuMCBBTkQg ZDw3NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDE4CiAgICAgICAgICBPUiAo ZiBHTE9CICc/cXJzdConIEFORCBmIEdMT0IgJ3BxcnMqJykKICAgICAgICAgIE9SIGI9Nzky CkBAIC0zMTE3Niw3ICszMTE3Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEg RlJPTSB0MwogICAgICAgV0hFUkUgYj01NzUKICAgICAgICAgIE9SIChmIEdMT0IgJz9ub3Bx KicgQU5EIGYgR0xPQiAnbW5vcConKQotICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQxOAogICAgICAgICAgT1IgKGYgR0xP QiAnP3Fyc3QqJyBBTkQgZiBHTE9CICdwcXJzKicpCiAgICAgICAgICBPUiBiPTc5MgpAQCAt MzExOTksOSArMzExOTksOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTkxMwog ICAgICAgICAgT1IgYj0yNTMKICAgICAgICAgIE9SIGI9MTk4Ci0gICAgICAgICBPUiAoZD49 MjcuMCBBTkQgZDwyOC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAg QU5EIGQ8MjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTcKLSAgICAg ICAgIE9SIChkPj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49ODUuMCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBl bmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjgzMy4xPgpAQCAtMzEyMTgsOSArMzEyMTgs OSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTkxMwogICAgICAgICAgT1IgYj0y NTMKICAgICAgICAgIE9SIGI9MTk4Ci0gICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MTcKLSAgICAgICAgIE9SIChkPj04NS4w IEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODUuMCBBTkQg ZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAg LS0gPHdoZXJlNy0yLjgzMy4yPgpAQCAtMzEyMzgsOCArMzEyMzgsOCBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgICBPUiBhPTczCiAgICAgICAgICBPUiBiPTYyNwogICAgICAgICAgT1Ig Yz01MDA1Ci0gICAgICAgICBPUiAoZD49NjIuMCBBTkQgZDw2My4wIEFORCBkIE5PVCBOVUxM KQotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj02Mi4wIEFORCBkPDYzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj0yNjcKICAgICAgICAgIE9SIGI9ODcyCiAgICAgICAgICBPUiBhPTI3CkBAIC0z MTI2MSw4ICszMTI2MSw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9NzMKICAg ICAgICAgIE9SIGI9NjI3CiAgICAgICAgICBPUiBjPTUwMDUKLSAgICAgICAgIE9SIChkPj02 Mi4wIEFORCBkPDYzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjguMCBB TkQgZDwyOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTYyLjAgQU5EIGQ8 NjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI2NwogICAgICAgICAgT1Ig Yj04NzIKICAgICAgICAgIE9SIGE9MjcKQEAgLTMxMzE5LDcgKzMxMzE5LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgYj0xMDM3CiAgICAgICAg ICBPUiBiPTE5OAotICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBhPTI1CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzEzMzcsNyAr MzEzMzcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTMyCiAgICAgICAgICBP UiBiPTEwMzcKICAgICAgICAgIE9SIGI9MTk4Ci0gICAgICAgICBPUiAoZD49MTMuMCBBTkQg ZDwxNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MjUKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0zMTM1NiwxMSArMzEzNTYsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYj0zMjIKICAgICAgICAgIE9SIGI9NDY1CiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScg QU5EIGYgR0xPQiAnbG1ub3AqJykKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49Ny4wIEFORCBkPDguMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDc3IEFORCA3OSkgQU5EIGEhPTc4KQogICAg ICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ21ub3BxKicpCi0gICAgICAgICBP UiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDU0 CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzEzNzksMTEgKzMxMzc5LDExIEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGI9MzIyCiAgICAgICAgICBPUiBiPTQ2NQogICAgICAgICAg T1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCi0gICAgICAgICBPUiAoZD49 MzguMCBBTkQgZDwzOS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTcuMCBB TkQgZDw4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwz OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcuMCBBTkQgZDw4LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3NyBBTkQgNzkp IEFORCBhIT03OCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9CICdtbm9w cSonKQotICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTQ1NAogICBdXSkKICAgICBlbmQsIHsKQEAgLTMxNDAwLDcgKzMxNDAw LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj05MjQKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDM1IEFORCAzNykgQU5EIGEhPTM2KQogICAgICAgICAgT1IgYz0xNTAxNQot ICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAzIEFORCA1KSBBTkQgYSE9NCkKICAgICAgICAgIE9SIChnPSdv bm1sa2ppJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1IgYj04MDMKQEAgLTMx NDE5LDcgKzMxNDE5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj05MjQKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDM1IEFORCAzNykgQU5EIGEhPTM2KQogICAgICAgICAg T1IgYz0xNTAxNQotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzIEFORCA1KSBBTkQgYSE9NCkKICAgICAg ICAgIE9SIChnPSdvbm1sa2ppJyBBTkQgZiBHTE9CICdhYmNkZSonKQogICAgICAgICAgT1Ig Yj04MDMKQEAgLTMxNDQzLDcgKzMxNDQzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYT00NQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21ub3BxKicp CiAgICAgICAgICBPUiBhPTI3Ci0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODUwCiAgICAgICAgICBPUiAoKGEgQkVUV0VF TiA1NSBBTkQgNTcpIEFORCBhIT01NikKICAgXV0pCkBAIC0zMTQ2Niw3ICszMTQ2Niw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9NDUKICAgICAgICAgIE9SIChnPSdnZmVk Y2JhJyBBTkQgZiBHTE9CICdtbm9wcSonKQogICAgICAgICAgT1IgYT0yNwotICAgICAgICAg T1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTg1 MAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTUgQU5EIDU3KSBBTkQgYSE9NTYpCiAgIF1d KQpAQCAtMzE0ODMsOSArMzE0ODMsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9NzUxCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5 NiBBTkQgOTgpIEFORCBhIT05NykKLSAgICAgICAgIE9SIChkPj03MS4wIEFORCBkPDcyLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzEuMCBBTkQgZDw3Mi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ2xt bm9wKicpCi0gICAgICAgICBPUiAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9ODkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM2IEFORCAzOCkg QU5EIGEhPTM3KQogICBdXSkKQEAgLTMxNTAyLDkgKzMxNTAyLDkgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTc1MQogICAgICAgICAg T1IgKChhIEJFVFdFRU4gOTYgQU5EIDk4KSBBTkQgYSE9OTcpCi0gICAgICAgICBPUiAoZD49 NzEuMCBBTkQgZDw3Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTcxLjAg QU5EIGQ8NzIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdnZmVkY2Jh JyBBTkQgZiBHTE9CICdsbW5vcConKQotICAgICAgICAgT1IgKGQ+PTU2LjAgQU5EIGQ8NTcu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ni4wIEFORCBkPDU3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTg5CiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAzNiBBTkQgMzgpIEFORCBhIT0zNykKICAgXV0pCkBAIC0zMTU5Myw3ICszMTU5Myw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChk Pj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49Mzcu MCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMTIKICAg ICAgICAgIE9SIGY9J2NkZWZnaGlqaycKICAgXV0pCkBAIC0zMTYwOCw3ICszMTYwOCw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9z dGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0z Ny4wIEFORCBkPDM4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MzcuMCBB TkQgZDwzOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yMTIKICAgICAg ICAgIE9SIGY9J2NkZWZnaGlqaycKICAgXV0pCkBAIC0zMTYyNSw5ICszMTYyNSw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj02ODUK ICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdyc3R1dionKQotICAgICAg ICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTUyMAotICAgICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTUzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MSBBTkQgOTMpIEFO RCBhIT05MikKICAgICAgICAgIE9SIGI9OTM4CkBAIC0zMTY0Nyw5ICszMTY0Nyw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYj02ODUK ICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICdyc3R1dionKQotICAgICAg ICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTUyMAotICAgICAgICAgT1IgKGQ+PTc2LjAgQU5EIGQ8NzcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBhPTUzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MSBBTkQgOTMpIEFO RCBhIT05MikKICAgICAgICAgIE9SIGI9OTM4CkBAIC0zMTY3MCw3ICszMTY3MCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJFIGI9NTgzCiAgICAgICAgICBPUiBiPTg5NAogICAg ICAgICAgT1IgYz0yNjAyNgotICAgICAgICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODQ1 LjE+CkBAIC0zMTY4Niw3ICszMTY4Niw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF IGI9NTgzCiAgICAgICAgICBPUiBiPTg5NAogICAgICAgICAgT1IgYz0yNjAyNgotICAgICAg ICAgT1IgKGQ+PTg0LjAgQU5EIGQ8ODUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj04NC4wIEFORCBkPDg1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVu ZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuODQ1LjI+CkBAIC0zMTczNSw3ICszMTczNSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGY9J25vcHFyc3R1dicKICAgICAgICAg IE9SIGI9MjY0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMyBBTkQgMzUpIEFORCBhIT0z NCkKLSAgICAgICAgIE9SIChkPj01OC4wIEFORCBkPDU5LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjg0Ny4xPgpAQCAtMzE3NTYs NyArMzE3NTYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBmPSdub3BxcnN0dXYn CiAgICAgICAgICBPUiBiPTI2NAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzMgQU5EIDM1 KSBBTkQgYSE9MzQpCi0gICAgICAgICBPUiAoZD49NTguMCBBTkQgZDw1OS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU4LjAgQU5EIGQ8NTkuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44NDcuMj4K QEAgLTMxODAxLDcgKzMxODAxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCiAgICAgICBXSEVSRSBiPTIwOQogICAgICAgICAgT1IgYj04MDYKLSAgICAgICAg IE9SIChkPj04LjAgQU5EIGQ8OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTguMCBBTkQgZDw5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndnV0 c3JxcCcgQU5EIGYgR0xPQiAncnN0dXYqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMTgx Nyw3ICszMTgxNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgYj0yMDkKICAgICAgICAgIE9SIGI9ODA2Ci0gICAgICAgICBPUiAoZD49 OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04LjAgQU5E IGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFO RCBmIEdMT0IgJ3JzdHV2KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzE4NjEsNyArMzE4 NjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00 LjAgQU5EIGQ8NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00NQogICAg ICAgICAgT1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBP UiBhPTY5CkBAIC0zMTg3OSw3ICszMTg3OSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5j dGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVD VCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgV0hFUkUgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTQ1CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xP QiAndXZ3eHkqJykKICAgICAgICAgIE9SIGE9NjkKQEAgLTMxODk4LDkgKzMxODk4LDkgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBjPTkwMDkKLSAgICAgICAgIE9SIChk Pj04NS4wIEFORCBkPDg2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49ODUu MCBBTkQgZDw4Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRz cnEnIEFORCBmIEdMT0IgJ2tsbW5vKicpCi0gICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEw LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OS4wIEFORCBkPDEwLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbGtqaWhnZicgQU5EIGYgR0xPQiAn cHFyc3QqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMTkxNSw5ICszMTkxNSw5IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz05MDA5Ci0gICAgICAgICBPUiAoZD49 ODUuMCBBTkQgZDw4Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTg1LjAg QU5EIGQ8ODYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd3dnV0c3Jx JyBBTkQgZiBHTE9CICdrbG1ubyonKQotICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkuMCBBTkQgZDwxMC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ3Bx cnN0KicpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzE5MzIsMTMgKzMxOTMyLDEzIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYT05OAotICAgICAgICAgT1IgKGQ+PTEw MC4wIEFORCBkPDEwMS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTYzLjAg QU5EIGQ8NjQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQg ZDwxMDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBk PDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBP UiBjPTI0MDI0CiAgICAgICAgICBPUiBhPTI3CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicg QU5EIGYgR0xPQiAndHV2d3gqJykKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y Ljg1My4xPgpAQCAtMzE5NTIsMTMgKzMxOTUyLDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mwog ICAgICAgV0hFUkUgYT05OAotICAgICAgICAgT1IgKGQ+PTEwMC4wIEFORCBkPDEwMS4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTYzLjAgQU5EIGQ8NjQuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMDAuMCBBTkQgZDwxMDEuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9U IE5VTEwpCiAgICAgICAgICBPUiBhPTQ3CiAgICAgICAgICBPUiBjPTI0MDI0CiAgICAgICAg ICBPUiBhPTI3CiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAndHV2d3gq JykKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjg1My4yPgpAQCAtMzIwMDQs NyArMzIwMDQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MTIwMTIK LSAgICAgICAgIE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49ODAuMCBBTkQgZDw4MS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMTYgQU5EIDE4KSBBTkQgYSE9MTcpCiAgICAgICAgICBPUiAo Zz0nZWRjYmF6eScgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgXV0pCkBAIC0zMjAyMCw3ICsz MjAyMCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0xMjAxMgotICAg ICAgICAgT1IgKGQ+PTgwLjAgQU5EIGQ8ODEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj04MC4wIEFORCBkPDgxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiAxNiBBTkQgMTgpIEFORCBhIT0xNykKICAgICAgICAgIE9SIChnPSdl ZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4eSonKQogICBdXSkKQEAgLTMyMDM5LDcgKzMyMDM5 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGYgR0xPQiAnP25vcHEqJyBBTkQg ZiBHTE9CICdtbm9wKicpCiAgICAgICAgICBPUiBiPTQyOQogICAgICAgICAgT1IgZj0namts bW5vcHFyJwotICAgICAgICAgT1IgKGQ+PTQ4LjAgQU5EIGQ8NDkuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA3NyBBTkQgNzkpIEFORCBhIT03OCkKICAgXV0p CiAgICAgZW5kLCB7CkBAIC0zMjA1Nyw3ICszMjA1Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgIE9SIChmIEdMT0IgJz9ub3BxKicgQU5EIGYgR0xPQiAnbW5vcConKQogICAgICAg ICAgT1IgYj00MjkKICAgICAgICAgIE9SIGY9J2prbG1ub3BxcicKLSAgICAgICAgIE9SIChk Pj00OC4wIEFORCBkPDQ5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDgu MCBBTkQgZDw0OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNzcgQU5EIDc5KSBBTkQgYSE9NzgpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzIyMjQs NyArMzIyMjQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9MjMxCi0g ICAgICAgICBPUiAoZD49MjQuMCBBTkQgZDwyNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SIGE9MzgKICAgICAgICAgIE9SIGE9NAogICAgICAgICAgT1IgYj03ODQKQEAgLTMyMjQx LDcgKzMyMjQxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3Rl cHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTIzMQot ICAgICAgICAgT1IgKGQ+PTI0LjAgQU5EIGQ8MjUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0yNC4wIEFORCBkPDI1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBhPTM4CiAgICAgICAgICBPUiBhPTQKICAgICAgICAgIE9SIGI9Nzg0CkBAIC0zMjI2 MSw3ICszMjI2MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MjYKICAgICAg ICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1Ig YT04MQotICAgICAgICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49My4wIEFORCBkPDQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDI4IEFORCAzMCkgQU5EIGEhPTI5KQogICAgICAgICAgT1Ig Yj0yNzUKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdqa2xtbionKQpA QCAtMzIyODQsNyArMzIyODQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTI2 CiAgICAgICAgICBPUiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKICAgICAg ICAgIE9SIGE9ODEKLSAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTMuMCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyOCBBTkQgMzApIEFORCBhIT0yOSkKICAgICAg ICAgIE9SIGI9Mjc1CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnamts bW4qJykKQEAgLTMyMzMxLDcgKzMyMzMxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NC4wIEFORCBkPDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9ODUKICAgICAgICAgIE9SIGYgSVMgTlVMTAogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNDkgQU5EIDUxKSBBTkQgYSE9NTApCkBAIC0zMjMzOSw3ICszMjMzOSw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTU0CiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA0MCBBTkQgNDIpIEFORCBhIT00MSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVO IDg3IEFORCA4OSkgQU5EIGEhPTg4KQotICAgICAgICAgT1IgKGQ+PTI1LjAgQU5EIGQ8MjYu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuODY1LjE+CkBAIC0zMjM1Miw3ICszMjM1Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00LjAgQU5EIGQ8NS4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQuMCBBTkQgZDw1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBhPTg1CiAgICAgICAgICBPUiBmIElTIE5VTEwKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDQ5IEFORCA1MSkgQU5EIGEhPTUwKQpAQCAtMzIzNjAsNyArMzIz NjAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTE1NAogICAgICAgICAgT1Ig KChhIEJFVFdFRU4gNDAgQU5EIDQyKSBBTkQgYSE9NDEpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiA4NyBBTkQgODkpIEFORCBhIT04OCkKLSAgICAgICAgIE9SIChkPj0yNS4wIEFORCBk PDI2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4w IEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdo ZXJlNy0yLjg2NS4yPgpAQCAtMzIzODAsNyArMzIzODAsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiAxMDAwMDAwPGIKICAgICAgICAgIE9SIGE9MjQKICAgICAgICAgIE9SIGI9 MTA4OQotICAgICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj03NS4wIEFORCBkPDc2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoZz0ncnFwb25tbCcgQU5EIGYgR0xPQiAnaGlqa2wqJykKICAgXV0pCiAg ICAgZW5kLCB7CkBAIC0zMjQwMSw3ICszMjQwMSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIDEwMDAwMDA8YgogICAgICAgICAgT1IgYT0yNAogICAgICAgICAgT1IgYj0xMDg5 Ci0gICAgICAgICBPUiAoZD49NzUuMCBBTkQgZDw3Ni4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTc1LjAgQU5EIGQ8NzYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIChnPSdycXBvbm1sJyBBTkQgZiBHTE9CICdoaWprbConKQogICBdXSkKICAgICBl bmQsIHsKQEAgLTMyNDE1LDcgKzMyNDE1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj0xNi4wIEFORCBkPDE3LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MCBBTkQgODIpIEFORCBhIT04MSkKICAg ICAgICAgIE9SIGI9MzYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDMzIEFORCAzNSkgQU5E IGEhPTM0KQpAQCAtMzI0MzEsNyArMzI0MzEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49MTYuMCBBTkQgZDwxNy4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTE2LjAgQU5EIGQ8MTcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDgwIEFORCA4MikgQU5EIGEhPTgxKQog ICAgICAgICAgT1IgYj0zNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzMgQU5EIDM1KSBB TkQgYSE9MzQpCkBAIC0zMjQ0NywxNCArMzI0NDcsMTQgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGM9MjYwMjYKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM3IEFO RCAzOSkgQU5EIGEhPTM4KQogICAgICAgICAgT1IgYT01NgogICAgICAgICAgT1IgYj01MDYK ICAgICAgICAgIE9SIGI9NzgxCi0gICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44 NjguMT4KQEAgLTMyNDY3LDE0ICszMjQ2NywxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVu Y3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5P VCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgIFdIRVJFIChkPj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYz0yNjAyNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzcgQU5EIDM5 KSBBTkQgYSE9MzgpCiAgICAgICAgICBPUiBhPTU2CiAgICAgICAgICBPUiBiPTUwNgogICAg ICAgICAgT1IgYj03ODEKLSAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjguMCBBTkQgZDwyOS4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjg2OC4y PgpAQCAtMzI1ODksMTMgKzMyNTg5LDEzIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQgQU5EIDE2KSBBTkQgYSE9MTUpCiAgICAg ICAgICBPUiBiPTgzOQogICAgICAgICAgT1IgZj0nZGVmZ2hpamtsJwotICAgICAgICAgT1Ig KGQ+PTk1LjAgQU5EIGQ8OTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05 NS4wIEFORCBkPDk2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbWxr amloZycgQU5EIGYgR0xPQiAnaWprbG0qJykKLSAgICAgICAgIE9SIChkPj01Mi4wIEFORCBk PDUzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2hnZmVkY2InIEFORCBmIEdM T0IgJ2hpamtsKicpCiAgICAgICAgICBPUiBiPTQ5OAogICBdXSkKQEAgLTMyNjEwLDEzICsz MjYxMCwxMyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1 cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBX SEVSRSAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTU5LjAgQU5EIGQ8NjAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDE0IEFORCAxNikgQU5EIGEhPTE1KQogICAgICAgICAgT1IgYj04MzkKICAg ICAgICAgIE9SIGY9J2RlZmdoaWprbCcKLSAgICAgICAgIE9SIChkPj05NS4wIEFORCBkPDk2 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTUuMCBBTkQgZDw5Ni4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0Ig J2lqa2xtKicpCi0gICAgICAgICBPUiAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdoaWprbConKQogICAg ICAgICAgT1IgYj00OTgKICAgXV0pCkBAIC0zMjYzNCw3ICszMjYzNCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgIFdIRVJFIGI9MjU2CiAgICAgICAgICBPUiBjPTE5MDE5CiAgICAgICAg ICBPUiBhPTU0Ci0gICAgICAgICBPUiAoZD49NDYuMCBBTkQgZDw0Ny4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTQ2LjAgQU5EIGQ8NDcuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9NDk4CiAgICAgICAgICBPUiBiPTc3CiAgIF1dKQpAQCAtMzI2 NTIsNyArMzI2NTIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTI1NgogICAg ICAgICAgT1IgYz0xOTAxOQogICAgICAgICAgT1IgYT01NAotICAgICAgICAgT1IgKGQ+PTQ2 LjAgQU5EIGQ8NDcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00Ni4wIEFO RCBkPDQ3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTQ5OAogICAgICAg ICAgT1IgYj03NwogICBdXSkKQEAgLTMyNjcyLDcgKzMyNjcyLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj01ODYKICAgICAgICAgIE9SIGE9NzQKICAgICAgICAgIE9SIGI9 MTEzCi0gICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj00OTUKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMjY5MSw3ICszMjY5 MSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NTg2CiAgICAgICAgICBPUiBh PTc0CiAgICAgICAgICBPUiBiPTExMwotICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAw LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NDk1CiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMzI3MDcsNyArMzI3MDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGE9MTIKICAgICAgICAgIE9SIGE9NTAKLSAgICAgICAg IE9SIChkPj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChh IEJFVFdFRU4gNjYgQU5EIDY4KSBBTkQgYSE9NjcpCiAgIF1dKQogICAgIGVuZCwgewpAQCAt MzI3MjMsNyArMzI3MjMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00g dDMKICAgICAgIFdIRVJFIGE9MTIKICAgICAgICAgIE9SIGE9NTAKLSAgICAgICAgIE9SIChk Pj0zMy4wIEFORCBkPDM0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzMu MCBBTkQgZDwzNC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNjYgQU5EIDY4KSBBTkQgYSE9NjcpCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzI3Mzgs MTEgKzMyNzM4LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYj0zMDgK LSAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NzMuMCBBTkQgZDw3NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiBh PTgzCiAgICAgICAgICBPUiBjPTIzMDIzCi0gICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1 OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU3LjAgQU5EIGQ8NTguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdsa2ppaGdmJyBBTkQgZiBHTE9C ICdub3BxcionKQogICAgICAgICAgT1IgYT01OAogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MTcgQU5EIDE5KSBBTkQgYSE9MTgpCkBAIC0zMjc2MSwxMSArMzI3NjEsMTEgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTMwOAotICAgICAgICAgT1IgKGQ+PTczLjAg QU5EIGQ8NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03My4wIEFORCBk PDc0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5E IGYgR0xPQiAnYmNkZWYqJykKICAgICAgICAgIE9SIGE9ODMKICAgICAgICAgIE9SIGM9MjMw MjMKLSAgICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKGc9J2xramloZ2YnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBP UiBhPTU4CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAxNyBBTkQgMTkpIEFORCBhIT0xOCkK QEAgLTMyNzg1LDEwICszMjc4NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9NDc2CiAgICAgICAgICBPUiBhPTI2Ci0gICAgICAg ICBPUiAoZD49ODcuMCBBTkQgZDw4OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTg3LjAgQU5EIGQ8ODguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NzYyCiAgICAgICAgICBPUiBiPTE1NwotICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTgu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAn Y2RlZmcqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMjgwNCwxMCArMzI4MDQsMTAgQEAg dGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTQ3 NgogICAgICAgICAgT1IgYT0yNgotICAgICAgICAgT1IgKGQ+PTg3LjAgQU5EIGQ8ODguMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ny4wIEFORCBkPDg4LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc2MgogICAgICAgICAgT1IgYj0xNTcKLSAg ICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0IgJ2NkZWZnKicpCiAgIF1dKQogICAgIGVuZCwg ewpAQCAtMzI4MjEsNyArMzI4MjEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9MQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTMgQU5EIDk1KSBB TkQgYSE9OTQpCiAgICAgICAgICBPUiBiPTI3OApAQCAtMzI4MzEsNyArMzI4MzEsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4MiBBTkQgODQpIEFORCBh IT04MykKICAgICAgICAgIE9SIChnPSdlZGNiYXp5JyBBTkQgZiBHTE9CICd1dnd4eSonKQog ICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3d4eXphKicpCi0gICAgICAg ICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTcyLjAgQU5EIGQ8NzMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44NzguMT4KQEAgLTMyODQ0LDcgKzMyODQ0LDcg QEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+ PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03Ny4w IEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTEKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDkzIEFORCA5NSkgQU5EIGEhPTk0KQogICAgICAgICAgT1Ig Yj0yNzgKQEAgLTMyODU0LDcgKzMyODU0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKChhIEJFVFdFRU4gODIgQU5EIDg0KSBBTkQgYSE9ODMpCiAgICAgICAgICBPUiAoZz0n ZWRjYmF6eScgQU5EIGYgR0xPQiAndXZ3eHkqJykKICAgICAgICAgIE9SIChnPSdqaWhnZmVk JyBBTkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8NzMu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3 LTIuODc4LjI+CkBAIC0zMjg2OCw5ICszMjg2OCw5IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgog ICAgICAgV0hFUkUgYj0xMjQKLSAgICAgICAgIE9SIChkPj05Mi4wIEFORCBkPDkzLjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNDEgQU5EIDQzKSBBTkQgYSE9 NDIpCi0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGI9NzU5CiAgICAgICAgICBPUiAoZiBHTE9CICc/bm9wcSonIEFORCBmIEdM T0IgJ21ub3AqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQ1IEFORCA0NykgQU5EIGEh PTQ2KQpAQCAtMzI4ODgsOSArMzI4ODgsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJl dHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAg IFdIRVJFIGI9MTI0Ci0gICAgICAgICBPUiAoZD49OTIuMCBBTkQgZDw5My4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTkyLjAgQU5EIGQ8OTMuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQxIEFORCA0MykgQU5EIGEhPTQyKQot ICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiBiPTc1OQogICAgICAgICAgT1IgKGYgR0xPQiAnP25vcHEqJyBBTkQgZiBHTE9CICdt bm9wKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA0NSBBTkQgNDcpIEFORCBhIT00NikK QEAgLTMyOTUxLDcgKzMyOTUxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj0yNi4wIEFORCBkPDI3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBmPSd4eXphYmNkZWYnCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzI5NjUs NyArMzI5NjUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAg ICBXSEVSRSAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hF UkUgKGQ+PTI2LjAgQU5EIGQ8MjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGY9J3h5emFiY2RlZicKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zMjk4MiwxMiArMzI5ODIs MTIgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj00ODcKICAgICAgICAgIE9SIGI9 MzU1CiAgICAgICAgICBPUiBjPTkwMDkKLSAgICAgICAgIE9SIChkPj04LjAgQU5EIGQ8OS4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTguMCBBTkQgZDw5LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzMiBBTkQgMzQpIEFORCBh IT0zMykKICAgICAgICAgIE9SIGI9MTEzCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNCBB TkQgMjYpIEFORCBhIT0yNSkKICAgICAgICAgIE9SIGE9OTAKLSAgICAgICAgIE9SIChkPj02 Ni4wIEFORCBkPDY3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjYuMCBB TkQgZDw2Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2hnZmVkY2In IEFORCBmIEdMT0IgJ2prbG1uKicpCiAgICAgICAgICBPUiBmPSdub3BxcnN0dXYnCiAgIF1d KQpAQCAtMzMwMDUsMTIgKzMzMDA1LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdIRVJF IGI9NDg3CiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAgT1IgYz05MDA5Ci0gICAgICAg ICBPUiAoZD49OC4wIEFORCBkPDkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj04LjAgQU5EIGQ8OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMzIgQU5EIDM0KSBBTkQgYSE9MzMpCiAgICAgICAgICBPUiBiPTExMwogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gMjQgQU5EIDI2KSBBTkQgYSE9MjUpCiAgICAgICAgICBPUiBh PTkwCi0gICAgICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIChnPSdoZ2ZlZGNiJyBBTkQgZiBHTE9CICdqa2xtbionKQogICAgICAgICAg T1IgZj0nbm9wcXJzdHV2JwogICBdXSkKQEAgLTMzMDI1LDcgKzMzMDI1LDcgQEAgdGVzdDpk b190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3Nv cnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTM0LjAgQU5E IGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0zNC4wIEFORCBkPDM1 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTI3NQogICBdXSkKICAgICBl bmQsIHsKQEAgLTMzMDM5LDcgKzMzMDM5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0 aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNU IGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgIFdIRVJFIChkPj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBiPTI3NQogICBdXSkKICAgICBlbmQsIHsKQEAgLTMzMDk5LDcg KzMzMDk5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAg ICBXSEVSRSAoZiBHTE9CICc/dXZ3eConIEFORCBmIEdMT0IgJ3R1dncqJykKICAgICAgICAg IE9SIGI9ODE0Ci0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44ODUuMT4KQEAg LTMzMTE0LDcgKzMzMTE0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSAoZiBHTE9CICc/dXZ3eConIEFORCBmIEdMT0IgJ3R1dncqJykK ICAgICAgICAgIE9SIGI9ODE0Ci0gICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi44 ODUuMj4KQEAgLTMzMTg5LDcgKzMzMTg5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYj0yNTMKICAgICAgICAgIE9SIChmIEdMT0IgJz9wcXJzKicgQU5EIGYgR0xPQiAnb3Bx cionKQogICAgICAgICAgT1IgYj0yODYKLSAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDEx LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTAuMCBBTkQgZDwxMS4wIEFO RCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJl Ny0yLjg4OC4xPgpAQCAtMzMyMDYsNyArMzMyMDYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAg ICAgICBPUiBiPTI1MwogICAgICAgICAgT1IgKGYgR0xPQiAnP3BxcnMqJyBBTkQgZiBHTE9C ICdvcHFyKicpCiAgICAgICAgICBPUiBiPTI4NgotICAgICAgICAgT1IgKGQ+PTEwLjAgQU5E IGQ8MTEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMC4wIEFORCBkPDEx LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuODg4LjI+CkBAIC0zMzIxOSw3ICszMzIxOSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTUuMCBBTkQgZDwxNi4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0IgJ21u b3BxKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNiBBTkQgMjgpIEFORCBhIT0yNykK ICAgICAgICAgIE9SIGI9NDIxCkBAIC0zMzIzOSw3ICszMzIzOSw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtb CiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xNS4wIEFORCBkPDE2 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTUuMCBBTkQgZDwxNi4wIEFO RCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J2dmZWRjYmEnIEFORCBmIEdMT0Ig J21ub3BxKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyNiBBTkQgMjgpIEFORCBhIT0y NykKICAgICAgICAgIE9SIGI9NDIxCkBAIC0zMzI5Nyw3ICszMzI5Nyw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdmZ2hpaionKQog ICAgICAgICAgT1IgKChhIEJFVFdFRU4gNCBBTkQgNikgQU5EIGEhPTUpCiAgICAgICAgICBP UiAoZz0na2ppaGdmZScgQU5EIGYgR0xPQiAncXJzdHUqJykKLSAgICAgICAgIE9SIChkPj0x MS4wIEFORCBkPDEyLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTEuMCBB TkQgZDwxMi4wIEFORCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAg ICAgLS0gPHdoZXJlNy0yLjg5MS4xPgpAQCAtMzMzMTQsNyArMzMzMTQsNyBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZmdoaWoqJykK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDQgQU5EIDYpIEFORCBhIT01KQogICAgICAgICAg T1IgKGc9J2tqaWhnZmUnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCi0gICAgICAgICBPUiAoZD49 MTEuMCBBTkQgZDwxMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTExLjAg QU5EIGQ8MTIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi44OTEuMj4KQEAgLTMzMzMyLDcgKzMzMzMyLDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICAgT1IgYj00MzIKICAgICAgICAgIE9SIGI9NDEwCiAgICAgICAg ICBPUiBhPTg2Ci0gICAgICAgICBPUiAoZD49ODkuMCBBTkQgZDw5MC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9NjM4CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA1OCBBTkQg NjApIEFORCBhIT01OSkKICAgICAgICAgIE9SIGI9MTkwCkBAIC0zMzM1Myw3ICszMzM1Myw3 IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9NDMyCiAgICAgICAgICBPUiBiPTQx MAogICAgICAgICAgT1IgYT04NgotICAgICAgICAgT1IgKGQ+PTg5LjAgQU5EIGQ8OTAuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04OS4wIEFORCBkPDkwLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTYzOAogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTggQU5EIDYwKSBBTkQgYSE9NTkpCiAgICAgICAgICBPUiBiPTE5MApAQCAtMzM0Mzgs NyArMzM0MzgsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFICgoYSBCRVRX RUVOIDY3IEFORCA2OSkgQU5EIGEhPTY4KQotICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02OS4wIEFORCBkPDcwLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndXRzcnFwbycgQU5EIGYgR0xP QiAndXZ3eHkqJykKICAgICAgICAgIE9SIGE9NDYKICAgICAgICAgIE9SIGI9MTg3CkBAIC0z MzQ1Nyw3ICszMzQ1Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50 X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKChh IEJFVFdFRU4gNjcgQU5EIDY5KSBBTkQgYSE9NjgpCi0gICAgICAgICBPUiAoZD49NjkuMCBB TkQgZDw3MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY5LjAgQU5EIGQ8 NzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd1dHNycXBvJyBBTkQg ZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgYT00NgogICAgICAgICAgT1IgYj0xODcK QEAgLTMzNDc1LDEwICszMzQ3NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGE9OTkKICAgICAgICAgIE9SIGM9MzAwMwotICAgICAgICAgT1IgKGQ+ PTU3LjAgQU5EIGQ8NTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01Ny4w IEFORCBkPDU4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTMwMAogICAg ICAgICAgT1IgYj03MTgKICAgICAgICAgIE9SIGM+PTM0MDM1CkBAIC0zMzQ5NSwxMCArMzM0 OTUsMTAgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hF UkUgKGQ+PTk3LjAgQU5EIGQ8OTguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChk Pj05Ny4wIEFORCBkPDk4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTk5 CiAgICAgICAgICBPUiBjPTMwMDMKLSAgICAgICAgIE9SIChkPj01Ny4wIEFORCBkPDU4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTcuMCBBTkQgZDw1OC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0zMDAKICAgICAgICAgIE9SIGI9NzE4CiAg ICAgICAgICBPUiBjPj0zNDAzNQpAQCAtMzM1NTksNyArMzM1NTksNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGM9MjkwMjkKICAgICAg ICAgIE9SIGY9J2VmZ2hpamtsbScKLSAgICAgICAgIE9SIChkPj00OC4wIEFORCBkPDQ5LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDguMCBBTkQgZDw0OS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNgogICAgICAgICAgT1IgKGYgR0xPQiAn P2VmZ2gqJyBBTkQgZiBHTE9CICdkZWZnKicpCiAgIF1dKQpAQCAtMzM1NzYsNyArMzM1NzYs NyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJF IGM9MjkwMjkKICAgICAgICAgIE9SIGY9J2VmZ2hpamtsbScKLSAgICAgICAgIE9SIChkPj00 OC4wIEFORCBkPDQ5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDguMCBB TkQgZDw0OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0yNgogICAgICAg ICAgT1IgKGYgR0xPQiAnP2VmZ2gqJyBBTkQgZiBHTE9CICdkZWZnKicpCiAgIF1dKQpAQCAt MzM3NTIsOCArMzM3NTIsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTEwNjcK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0KQogICAgICAg ICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3Z3eHl6KicpCi0gICAgICAgICBPUiAo ZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTU0 LjAgQU5EIGQ8NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOC4wIEFO RCBkPDE5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQg ZDw1NS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj01MjAKICAgICAgICAg IE9SIGI9Mzk5CiAgICAgICAgICBPUiBiPTIwOQpAQCAtMzM3NzQsOCArMzM3NzQsOCBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTEwNjcKICAgICAgICAgIE9SICgoYSBCRVRX RUVOIDUzIEFORCA1NSkgQU5EIGEhPTU0KQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFO RCBmIEdMT0IgJ3Z3eHl6KicpCi0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xOC4wIEFORCBkPDE5LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgYj01MjAKICAgICAgICAgIE9SIGI9Mzk5CiAgICAgICAgICBP UiBiPTIwOQpAQCAtMzM3OTMsMTAgKzMzNzkzLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYT01NwogICAgICAgICAgT1IgYj01NQotICAgICAgICAg T1IgKGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0zNC4wIEFORCBkPDM1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAyMCBBTkQgMjIpIEFORCBhIT0yMSkKICAgICAgICAgIE9SIChnPSdycXBvbm1s JyBBTkQgZiBHTE9CICdsbW5vcConKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMCBBTkQg MikgQU5EIGEhPTEpCkBAIC0zMzgxMywxMCArMzM4MTMsMTAgQEAgdGVzdDpkb190ZXN0KAog ICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTU3CiAgICAgICAgICBPUiBiPTU1Ci0gICAg ICAgICBPUiAoZD49MzQuMCBBTkQgZDwzNS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTM0LjAgQU5EIGQ8MzUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S ICgoYSBCRVRXRUVOIDIwIEFORCAyMikgQU5EIGEhPTIxKQogICAgICAgICAgT1IgKGc9J3Jx cG9ubWwnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAw IEFORCAyKSBBTkQgYSE9MSkKQEAgLTMzODY5LDggKzMzODY5LDggQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTUxLjAgQU5EIGQ8NTIu MCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElT IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzQ4CiAgICAgICAgICBPUiBiPTIwOQogICAgICAg ICAgT1IgYT0xMDAKQEAgLTMzODg2LDggKzMzODg2LDggQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTUxLjAgQU5EIGQ8NTIuMCBBTkQg ZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICBXSEVSRSAoZD49NTEuMCBBTkQgZDw1Mi4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGI9NzQ4CiAgICAgICAgICBPUiBiPTIwOQogICAgICAgICAgT1Ig YT0xMDAKQEAgLTMzOTU0LDcgKzMzOTU0LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKChhIEJFVFdFRU4gNjMgQU5EIDY1KSBBTkQgYSE9NjQpCiAgICAgICAgICBPUiAoZiBH TE9CICc/eHl6YSonIEFORCBmIEdMT0IgJ3d4eXoqJykKICAgICAgICAgIE9SIChnPSdqaWhn ZmVkJyBBTkQgZiBHTE9CICd3eHl6YSonKQotICAgICAgICAgT1IgKGQ+PTcyLjAgQU5EIGQ8 NzMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTc4CiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA5MCBBTkQgOTIpIEFORCBhIT05MSkKICAgXV0pCkBAIC0zMzk3NCw3ICszMzk3 NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYzIEFORCA2 NSkgQU5EIGEhPTY0KQogICAgICAgICAgT1IgKGYgR0xPQiAnP3h5emEqJyBBTkQgZiBHTE9C ICd3eHl6KicpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAnd3h5emEq JykKLSAgICAgICAgIE9SIChkPj03Mi4wIEFORCBkPDczLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NzIuMCBBTkQgZDw3My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYT03OAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gOTAgQU5EIDkyKSBBTkQg YSE9OTEpCiAgIF1dKQpAQCAtMzQwMjMsNyArMzQwMjMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICAgICBPUiBiPTI1MwogICAgICAgICAgT1IgYT04MAogICAgICAgICAgT1IgYT04Nwot ICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg ICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQog ICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTExLjE+CkBAIC0zNDA0Miw3ICsz NDA0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MjUzCiAgICAgICAgICBP UiBhPTgwCiAgICAgICAgICBPUiBhPTg3Ci0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwz OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi45MTEuMj4KQEAgLTM0MDU1LDEwICszNDA1NSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDIuMCBBTkQgZDw0My4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODI1CiAgICAgICAgICBPUiBhPTEwMAotICAg ICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAg IE9SIChkPj03Ny4wIEFORCBkPDc4LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBP UiBhPTYwCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzQwNzIsMTAgKzM0MDcyLDEwIEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00Mi4w IEFORCBkPDQzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NDIuMCBBTkQg ZDw0My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04MjUKICAgICAgICAg IE9SIGE9MTAwCi0gICAgICAgICBPUiAoZD49NzcuMCBBTkQgZDw3OC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTc3LjAgQU5EIGQ8NzguMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIGE9NjAKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNDA4OSwxMiAr MzQwODksMTIgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0 dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAg V0hFUkUgKGQ+PTk0LjAgQU5EIGQ8OTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJF IChkPj05NC4wIEFORCBkPDk1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBi PTg4MwotICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBOT1QgTlVMTCkK LSAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAg ICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MzUuMCBBTkQgZDwzNi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTMu MCBBTkQgZDw0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzguMCBB TkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5E IGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9ODEKICAgICAgICAg IE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZnaConKQogICAgICAgICAgT1Ig Zj0nbW5vcHFyc3R1JwpAQCAtMzQxMTAsMTIgKzM0MTEwLDEyIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj05NC4wIEFORCBkPDk1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTQuMCBBTkQgZDw5NS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj04ODMKLSAgICAgICAgIE9SIChkPj0zNS4w IEFORCBkPDM2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49My4wIEFORCBk PDQuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAg QU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM1LjAgQU5EIGQ8MzYuMCBBTkQgZCBJUyBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zLjAgQU5EIGQ8NC4wIEFORCBkIElTIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBhPTgxCiAgICAgICAgICBPUiAoZiBHTE9CICc/ZmdoaSonIEFORCBm IEdMT0IgJ2VmZ2gqJykKICAgICAgICAgIE9SIGY9J21ub3BxcnN0dScKQEAgLTM0MTM1LDcg KzM0MTM1LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTQg QU5EIDE2KSBBTkQgYSE9MTUpCiAgICAgICAgICBPUiBiPTY2MwogICAgICAgICAgT1IgYj05 MDUKLSAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj04ODMKICAgICAgICAgIE9SIGM9MjIwMjIKICAgICAgICAgIE9SIGI9NjM4 CkBAIC0zNDE1NSw3ICszNDE1NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDE0IEFORCAxNikgQU5EIGEhPTE1KQogICAgICAgICAgT1IgYj02NjMKICAg ICAgICAgIE9SIGI9OTA1Ci0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODgzCiAgICAgICAgICBPUiBjPTIyMDIyCiAgICAg ICAgICBPUiBiPTYzOApAQCAtMzQyMTcsMTAgKzM0MjE3LDEwIEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIChnPSdramloZ2ZlJyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAg ICAgT1IgKChhIEJFVFdFRU4gNTMgQU5EIDU1KSBBTkQgYSE9NTQpCiAgICAgICAgICBPUiBh PTI1Ci0gICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKLSAg ICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49NS4wIEFORCBkPDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9S IChkPj0xMy4wIEFORCBkPDE0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBm PSdvcHFyc3R1dncnCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIGI9OTM4CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzQyNDAs MTAgKzM0MjQwLDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdramloZ2Zl JyBBTkQgZiBHTE9CICd1dnd4eSonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTMgQU5E IDU1KSBBTkQgYSE9NTQpCiAgICAgICAgICBPUiBhPTI1Ci0gICAgICAgICBPUiAoZD49NS4w IEFORCBkPDYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0xMy4wIEFORCBk PDE0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NS4wIEFORCBkPDYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xMy4wIEFORCBkPDE0LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdvcHFyc3R1dncnCi0gICAgICAgICBP UiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTUzLjAgQU5EIGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9OTM4 CiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzQyNTgsNyArMzQyNTgsNyBAQCB0ZXN0OmRvX3Rl c3QoCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIChnPSdubWxramloJyBBTkQgZiBHTE9CICdmZ2hpaion KQotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xNS4wIEFORCBkPDE2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1d KQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTE3LjE+CkBAIC0zNDI3Miw3 ICszNDI3Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBz X3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J25tbGtq aWgnIEFORCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwx Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi45MTcuMj4KQEAgLTM0MjkwLDcgKzM0MjkwLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgYj0xMTAKICAgICAgICAgIE9SIGI9Mjk3Ci0g ICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAg ICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDYwIEFORCA2MikgQU5EIGEhPTYxKQogICAgICAgICAgT1IgZj0n Z2hpamtsbW5vJwogICAgICAgICAgT1IgYj00NzMKQEAgLTM0MzEyLDcgKzM0MzEyLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0zMgogICAgICAgICAgT1IgYj0xMTAKICAg ICAgICAgIE9SIGI9Mjk3Ci0gICAgICAgICBPUiAoZD49MTMuMCBBTkQgZDwxNC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEzLjAgQU5EIGQ8MTQuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDYwIEFORCA2MikgQU5EIGEhPTYx KQogICAgICAgICAgT1IgZj0nZ2hpamtsbW5vJwogICAgICAgICAgT1IgYj00NzMKQEAgLTM0 MzI5LDE0ICszNDMyOSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAg ICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQy Ci0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGI9OTA1CiAgICAgICAgICBPUiBhPTk3CiAgICAgICAgICBPUiAoZz0naGdmZWRj YicgQU5EIGYgR0xPQiAnaGlqa2wqJykKICAgICAgICAgIE9SIGM9MjcwMjcKICAgICAgICAg IE9SIGY9J2JjZGVmZ2hpaicKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOCBBTkQgNDApIEFORCBhIT0zOSkKICAg ICAgICAgIE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZnaConKQogICBdXSkK QEAgLTM0MzUxLDE0ICszNDM1MSwxNCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCi0gICAgICBXSEVSRSAoZD49MzMuMCBBTkQgZDwzNC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTMzLjAgQU5EIGQ8MzQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9OTA1CiAgICAgICAgICBPUiBhPTk3CiAgICAgICAgICBPUiAoZz0n aGdmZWRjYicgQU5EIGYgR0xPQiAnaGlqa2wqJykKICAgICAgICAgIE9SIGM9MjcwMjcKICAg ICAgICAgIE9SIGY9J2JjZGVmZ2hpaicKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1 LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MjUuMCBBTkQgZDwyNi4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8NTUuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNS4wIEFORCBkPDI2LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOCBBTkQgNDApIEFORCBhIT0z OSkKICAgICAgICAgIE9SIChmIEdMT0IgJz9mZ2hpKicgQU5EIGYgR0xPQiAnZWZnaConKQog ICBdXSkKQEAgLTM0NDEwLDcgKzM0NDEwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgYj04MjgKICAgICAgICAgIE9SIGE9ODgKICAgICAgICAgIE9SIChnPSd0c3JxcG9uJyBB TkQgZiBHTE9CICd4eXphYionKQotICAgICAgICAgT1IgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIu OTIxLjE+CkBAIC0zNDQzMiw3ICszNDQzMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAg IE9SIGI9ODI4CiAgICAgICAgICBPUiBhPTg4CiAgICAgICAgICBPUiAoZz0ndHNycXBvbicg QU5EIGYgR0xPQiAneHl6YWIqJykKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBk IElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0y LjkyMS4yPgpAQCAtMzQ0NDUsMTAgKzM0NDQ1LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3h5emFiKicp CiAgICAgICAgICBPUiBiPTM2NgotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBjPTE2MDE2CiAgICAgICAgICBPUiAoZz0nZWRj YmF6eScgQU5EIGYgR0xPQiAnd3h5emEqJykKICAgICAgICAgIE9SIGM9OTAwOQpAQCAtMzQ0 NjQsMTAgKzM0NDY0LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAg ICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMK LSAgICAgIFdIRVJFIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICBXSEVSRSAoZD49MTcuMCBBTkQgZDwxOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgKGc9J2ppaGdmZWQnIEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBi PTM2NgotICAgICAgICAgT1IgKGQ+PTI4LjAgQU5EIGQ8MjkuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0yOC4wIEFORCBkPDI5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBjPTE2MDE2CiAgICAgICAgICBPUiAoZz0nZWRjYmF6eScgQU5EIGYgR0xP QiAnd3h5emEqJykKICAgICAgICAgIE9SIGM9OTAwOQpAQCAtMzQ1MTcsNyArMzQ1MTcsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIGI9 ODYxCiAgICAgICAgICBPUiAoZiBHTE9CICc/eHl6YSonIEFORCBmIEdMT0IgJ3d4eXoqJykK LSAgICAgICAgIE9SIChkPj0yOS4wIEFORCBkPDMwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj02ODIKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDkzIEFORCA5NSkgQU5EIGEh PTk0KQogICAgICAgICAgT1IgYj0yODYKQEAgLTM0NTM1LDcgKzM0NTM1LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTg2MQogICAg ICAgICAgT1IgKGYgR0xPQiAnP3h5emEqJyBBTkQgZiBHTE9CICd3eHl6KicpCi0gICAgICAg ICBPUiAoZD49MjkuMCBBTkQgZDwzMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTI5LjAgQU5EIGQ8MzAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9 NjgyCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA5MyBBTkQgOTUpIEFORCBhIT05NCkKICAg ICAgICAgIE9SIGI9Mjg2CkBAIC0zNDYyMSw3ICszNDYyMSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGI9MTAxNQogICAgICAgICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdM T0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBiPTkxNgotICAgICAgICAgT1IgKGQ+PTMxLjAg QU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zMS4wIEFORCBk PDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5CiAgICAgICAgICBP UiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAnZmdoaWoqJykKICAgXV0pCkBAIC0zNDY0Miw3 ICszNDY0Miw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTAxNQogICAgICAg ICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBi PTkxNgotICAgICAgICAgT1IgKGQ+PTMxLjAgQU5EIGQ8MzIuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zMS4wIEFORCBkPDMyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiBiPTY5CiAgICAgICAgICBPUiAoZz0naGdmZWRjYicgQU5EIGYgR0xPQiAn ZmdoaWoqJykKICAgXV0pCkBAIC0zNDY2MSw3ICszNDY2MSw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIGE9MQogICAgICAgICAgT1IgZj0ndXZ3eHl6YWJjJwogICAgICAgICAg T1IgYj00OTgKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYT02MwogICAgICAgICAgT1IgZj0nbW5vcHFyc3R1JwogICAgICAg ICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2lqa2xtKicpCkBAIC0zNDY4NCw3ICsz NDY4NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGE9MQogICAgICAgICAgT1Ig Zj0ndXZ3eHl6YWJjJwogICAgICAgICAgT1IgYj00OTgKLSAgICAgICAgIE9SIChkPj0yMC4w IEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQg ZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02MwogICAgICAgICAg T1IgZj0nbW5vcHFyc3R1JwogICAgICAgICAgT1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0Ig J2lqa2xtKicpCkBAIC0zNDc3NSw3ICszNDc3NSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAg ICAgIE9SIGI9MTA3OAogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjEgQU5EIDIzKSBBTkQg YSE9MjIpCiAgICAgICAgICBPUiAoZz0nbWxramloZycgQU5EIGYgR0xPQiAnaWprbG0qJykK LSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj00MjkKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNDc5Myw3ICszNDc5Myw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIGI9MTA3OAogICAgICAgICAgT1IgKChhIEJF VFdFRU4gMjEgQU5EIDIzKSBBTkQgYSE9MjIpCiAgICAgICAgICBPUiAoZz0nbWxramloZycg QU5EIGYgR0xPQiAnaWprbG0qJykKLSAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj00MjkKICAgXV0pCiAgICAgZW5kLCB7CkBA IC0zNDgwNyw3ICszNDgwNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49ODIuMCBBTkQgZDw4My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj0yNjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg1IEFORCA4NykgQU5E IGEhPTg2KQogICAgICAgICAgT1IgYj0xMDQ4CkBAIC0zNDgyNCw3ICszNDgyNCw3IEBAIHRl c3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVw c19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04Mi4w IEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODIuMCBBTkQg ZDw4My4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yNjQKICAgICAgICAg IE9SICgoYSBCRVRXRUVOIDg1IEFORCA4NykgQU5EIGEhPTg2KQogICAgICAgICAgT1IgYj0x MDQ4CkBAIC0zNDg3Myw3ICszNDg3Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDIKLSAgICAgIFdIRVJFIChkPj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj04NTgKICAgICAgICAgIE9SIGE9NTgKICAgICAgICAgIE9SIChn PSdvbm1sa2ppJyBBTkQgZiBHTE9CICd4eXphYionKQpAQCAtMzQ4OTQsNyArMzQ4OTQsNyBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRf c3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49 NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU2LjAg QU5EIGQ8NTcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9ODU4CiAgICAg ICAgICBPUiBhPTU4CiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYgR0xPQiAneHl6 YWIqJykKQEAgLTM0OTk2LDggKzM0OTk2LDggQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAg T1IgKGYgR0xPQiAnP3l6YWIqJyBBTkQgZiBHTE9CICd4eXphKicpCiAgICAgICAgICBPUiBh PTU5CiAgICAgICAgICBPUiBiPTQ0Ci0gICAgICAgICBPUiAoZD49MTQuMCBBTkQgZDwxNS4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTU5LjAgQU5EIGQ8NjAuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNC4wIEFORCBkPDE1LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjkzNy4x PgpAQCAtMzUwMTcsOCArMzUwMTcsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo ZiBHTE9CICc/eXphYionIEFORCBmIEdMT0IgJ3h5emEqJykKICAgICAgICAgIE9SIGE9NTkK ICAgICAgICAgIE9SIGI9NDQKLSAgICAgICAgIE9SIChkPj0xNC4wIEFORCBkPDE1LjAgQU5E IGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NTkuMCBBTkQgZDw2MC4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE0LjAgQU5EIGQ8MTUuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj01OS4wIEFORCBkPDYwLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTM3LjI+CkBA IC0zNTAzMiw3ICszNTAzMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNv dW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUg Yj01NjQKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5VTEwp CisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxMKQog ICAgICAgICAgT1IgYj00NTEKICAgICAgICAgIE9SIGI9MzMwCiAgICAgICAgICBPUiBhPTQ3 CkBAIC0zNTA1MCw3ICszNTA1MCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJu IGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hF UkUgYj01NjQKLSAgICAgICAgIE9SIChkPj05My4wIEFORCBkPDk0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49OTMuMCBBTkQgZDw5NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgYj00NTEKICAgICAgICAgIE9SIGI9MzMwCiAgICAgICAgICBPUiBh PTQ3CkBAIC0zNTA5NywxMiArMzUwOTcsMTIgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTkyNAogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNiBBTkQgOCkgQU5EIGEhPTcpCi0gICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYT0xMDAKICAgICAgICAgIE9SIGM9MTUwMTUKLSAgICAg ICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBP UiAoZD49Mi4wIEFORCBkPDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04 Mi4wIEFORCBkPDgzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49Mi4w IEFORCBkPDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAg ICAgIC0tIDx3aGVyZTctMi45NDAuMT4KQEAgLTM1MTE3LDEyICszNTExNywxMiBAQCB0ZXN0 OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIGI9OTI0CiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA2IEFORCA4KSBBTkQgYSE9NykKLSAgICAgICAgIE9S IChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49 NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAg QU5EIGQ8MzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00MC4wIEFO RCBkPDQxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTEwMAogICAgICAg ICAgT1IgYz0xNTAxNQotICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBO T1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0yLjAgQU5EIGQ8My4wIEFORCBkIElTIE5PVCBOVUxMKQogICBd XSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjk0MC4yPgpAQCAtMzUxMzUs OSArMzUxMzUsOSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChk Pj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49NjMu MCBBTkQgZDw2NC4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQ0LjAg QU5EIGQ8NDUuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0zNi4wIEFO RCBkPDM3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAg ICAtLSA8d2hlcmU3LTIuOTQxLjE+CkBAIC0zNTE1MCw5ICszNTE1MCw5IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02My4wIEFORCBk PDY0LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4w IEFORCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDQuMCBBTkQgZDw0NS4wIEFORCBkIElTIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NDEuMj4K QEAgLTM1MjEyLDcgKzM1MjEyLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVS RSBhPTk2Ci0gICAgICAgICBPUiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgICAgT1IgKGQ+PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAg ICAgT1IgKGYgR0xPQiAnP2ZnaGkqJyBBTkQgZiBHTE9CICdlZmdoKicpCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiAzNyBBTkQgMzkpIEFORCBhIT0zOCkKQEAgLTM1MjM1LDcgKzM1MjM1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChb WwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBhPTk2Ci0gICAgICAgICBP UiAoZD49MjMuMCBBTkQgZDwyNC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTIzLjAgQU5EIGQ8MjQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdw b25tbGtqJyBBTkQgZiBHTE9CICd2d3h5eionKQogICAgICAgICAgT1IgKGYgR0xPQiAnP2Zn aGkqJyBBTkQgZiBHTE9CICdlZmdoKicpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAzNyBB TkQgMzkpIEFORCBhIT0zOCkKQEAgLTM1MjYzLDcgKzM1MjYzLDcgQEAgdGVzdDpkb190ZXN0 KAogICAgICAgICAgT1IgYj03NzMKICAgICAgICAgIE9SIGE9MQogICAgICAgICAgT1IgYj03 MjYKLSAgICAgICAgIE9SIChkPj05OS4wIEFORCBkPDEwMC4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NyBBTkQgODkpIEFORCBhIT04OCkKICAgICAgICAg IE9SIGI9MTEwCiAgIF1dKQpAQCAtMzUyODQsNyArMzUyODQsNyBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgICAgICBPUiBiPTc3MwogICAgICAgICAgT1IgYT0xCiAgICAgICAgICBPUiBiPTcy NgotICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDg3IEFORCA4OSkgQU5EIGEhPTg4KQogICAgICAgICAg T1IgYj0xMTAKICAgXV0pCkBAIC0zNTMwNiw3ICszNTMwNiw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SIChnPSdpaGdmZWRjJyBBTkQgZiBHTE9CICdiY2RlZionKQogICAgICAg ICAgT1IgYT00NAogICAgICAgICAgT1IgYT0zNgotICAgICAgICAgT1IgKGQ+PTc2LjAgQU5E IGQ8NzcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03Ni4wIEFORCBkPDc3 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYg R0xPQiAncXJzdHUqJykKICAgICAgICAgIE9SIGI9NzE1CiAgICAgICAgICBPUiAoZz0ndnV0 c3JxcCcgQU5EIGYgR0xPQiAncXJzdHUqJykKQEAgLTM1MzI5LDcgKzM1MzI5LDcgQEAgdGVz dDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J2loZ2ZlZGMnIEFORCBmIEdMT0IgJ2JjZGVm KicpCiAgICAgICAgICBPUiBhPTQ0CiAgICAgICAgICBPUiBhPTM2Ci0gICAgICAgICBPUiAo ZD49NzYuMCBBTkQgZDw3Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc2 LjAgQU5EIGQ8NzcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRz cnFwJyBBTkQgZiBHTE9CICdxcnN0dSonKQogICAgICAgICAgT1IgYj03MTUKICAgICAgICAg IE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdxcnN0dSonKQpAQCAtMzUzNDcsMTEgKzM1 MzQ3LDExIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAg V0hFUkUgKChhIEJFVFdFRU4gMyBBTkQgNSkgQU5EIGEhPTQpCiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiA1NiBBTkQgNTgpIEFORCBhIT01NykKLSAgICAgICAgIE9SIChkPj0xNS4wIEFO RCBkPDE2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NTUuMCBBTkQgZDw1 Ni4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTE1LjAgQU5EIGQ8MTYuMCBB TkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0namloZ2ZlZCcgQU5EIGYgR0xPQiAn eXphYmMqJykKICAgICAgICAgIE9SIGE9MjQKLSAgICAgICAgIE9SIChkPj05OS4wIEFORCBk PDEwMC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8MTAw LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZiBHTE9CICc/YmNkZSonIEFO RCBmIEdMT0IgJ2FiY2QqJykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNTM2NywxMSArMzUz NjcsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBX SEVSRSAoKGEgQkVUV0VFTiAzIEFORCA1KSBBTkQgYSE9NCkKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDU2IEFORCA1OCkgQU5EIGEhPTU3KQotICAgICAgICAgT1IgKGQ+PTE1LjAgQU5E IGQ8MTYuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj01NS4wIEFORCBkPDU2 LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MTUuMCBBTkQgZDwxNi4wIEFO RCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTU1LjAgQU5EIGQ8NTYuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd5 emFiYyonKQogICAgICAgICAgT1IgYT0yNAotICAgICAgICAgT1IgKGQ+PTk5LjAgQU5EIGQ8 MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTkuMCBBTkQgZDwxMDAu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChmIEdMT0IgJz9iY2RlKicgQU5E IGYgR0xPQiAnYWJjZConKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTM1NDI2LDcgKzM1NDI2 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYT0yOAogICAgICAgICAgT1IgYj05 MjcKICAgICAgICAgIE9SIGI9NTIwCi0gICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5EIGQ8NTQuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjM4CiAgICAgICAgICBPUiBmPSd2d3h5 emFiY2QnCiAgIF1dKQpAQCAtMzU0NDQsNyArMzU0NDQsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgICBXSEVSRSBhPTI4CiAgICAgICAgICBPUiBiPTkyNwogICAgICAgICAgT1IgYj01MjAK LSAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgTk9UIE5VTEwpCisgICAg ICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAg ICAgT1IgYj02MzgKICAgICAgICAgIE9SIGY9J3Z3eHl6YWJjZCcKICAgXV0pCkBAIC0zNTQ2 MSwxMSArMzU0NjEsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9NIHQy CiAgICAgICBXSEVSRSAoZz0nbm1sa2ppaCcgQU5EIGYgR0xPQiAnY2RlZmcqJykKICAgICAg ICAgIE9SIGI9MTAyNgotICAgICAgICAgT1IgKGQ+PTEuMCBBTkQgZDwyLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSd3dnV0c3JxJyBBTkQgZiBHTE9CICdsbW5vcConKQogICAg ICAgICAgT1IgYj0zNTUKICAgICAgICAgIE9SIGI9NjQxCi0gICAgICAgICBPUiAoZD49NTMu MCBBTkQgZDw1NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUzLjAgQU5E IGQ8NTQuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAg IC0tIDx3aGVyZTctMi45NDkuMT4KQEAgLTM1NDgwLDExICszNTQ4MCwxMSBAQCB0ZXN0OmRv X3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdIRVJFIChnPSdubWxramlo JyBBTkQgZiBHTE9CICdjZGVmZyonKQogICAgICAgICAgT1IgYj0xMDI2Ci0gICAgICAgICBP UiAoZD49MS4wIEFORCBkPDIuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0x LjAgQU5EIGQ8Mi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3d2dXRz cnEnIEFORCBmIEdMT0IgJ2xtbm9wKicpCiAgICAgICAgICBPUiBiPTM1NQogICAgICAgICAg T1IgYj02NDEKLSAgICAgICAgIE9SIChkPj01My4wIEFORCBkPDU0LjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICAgICBPUiAoZD49NTMuMCBBTkQgZDw1NC4wIEFORCBkIElTIE5PVCBOVUxM KQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjk0OS4yPgpAQCAt MzU1MDIsNyArMzU1MDIsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTY0MQog ICAgICAgICAgT1IgYT0zCiAgICAgICAgICBPUiBhPTM1Ci0gICAgICAgICBPUiAoZD49ODEu MCBBTkQgZDw4Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTgxLjAgQU5E IGQ8ODIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J29wcXJzdHV2dycK ICAgICAgICAgIE9SIGE9NDEKICAgICAgICAgIE9SIGE9ODMKQEAgLTM1NTI1LDcgKzM1NTI1 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYj02NDEKICAgICAgICAgIE9SIGE9 MwogICAgICAgICAgT1IgYT0zNQotICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBB TkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04MS4wIEFORCBkPDgyLjAgQU5EIGQg SVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdvcHFyc3R1dncnCiAgICAgICAgICBPUiBh PTQxCiAgICAgICAgICBPUiBhPTgzCkBAIC0zNTU0OCw3ICszNTU0OCw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SIGM9MTUwMTUKICAgICAgICAgIE9SIGI9MTQ2CiAgICAgICAg ICBPUiBiPTEwOTIKLSAgICAgICAgIE9SIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBO VUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJlNy0yLjk1MS4xPgpA QCAtMzU1NjYsNyArMzU1NjYsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBjPTE1 MDE1CiAgICAgICAgICBPUiBiPTE0NgogICAgICAgICAgT1IgYj0xMDkyCi0gICAgICAgICBP UiAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7 CiAgICAgICAgIC0tIDx3aGVyZTctMi45NTEuMj4KQEAgLTM1NTg0LDEyICszNTU4NCwxMiBA QCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBmPSdoaWprbG1ub3AnCiAgICAgICAgICBP UiBhPTY1CiAgICAgICAgICBPUiBmPSdpamtsbW5vcHEnCi0gICAgICAgICBPUiAoZD49Nzku MCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTc5LjAgQU5E IGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGcgSVMgTlVMTAogICAg ICAgICAgT1IgYT0yNgogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMzggQU5EIDQwKSBBTkQg YSE9MzkpCiAgICAgICAgICBPUiBhPTkKLSAgICAgICAgIE9SIChkPj0zMi4wIEFORCBkPDMz LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzIuMCBBTkQgZDwzMy4wIEFO RCBkIElTIE5PVCBOVUxMKQogICBdXSkKICAgICBlbmQsIHsKICAgICAgICAgLS0gPHdoZXJl Ny0yLjk1Mi4xPgpAQCAtMzU2MDcsMTIgKzM1NjA3LDEyIEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICAgICAgIE9SIGY9J2hpamtsbW5vcCcKICAgICAgICAgIE9SIGE9NjUKICAgICAgICAgIE9S IGY9J2lqa2xtbm9wcScKLSAgICAgICAgIE9SIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgZyBJUyBOVUxMCiAgICAgICAgICBPUiBhPTI2CiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAzOCBBTkQgNDApIEFORCBhIT0zOSkKICAgICAgICAgIE9S IGE9OQotICAgICAgICAgT1IgKGQ+PTMyLjAgQU5EIGQ8MzMuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgICAgIE9SIChkPj0zMi4wIEFORCBkPDMzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg IF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTUyLjI+CkBAIC0zNTY5 OCw3ICszNTY5OCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgogICAgICAgV0hFUkUgYz0zMDAz Ci0gICAgICAgICBPUiAoZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAg ICAgICAgT1IgKGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAg ICAgIE9SIGE9OTMKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNTcxMyw3ICszNTcxMyw3IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwogICAgICAgV0hFUkUgYz0zMDAzCi0gICAgICAgICBPUiAo ZD49NjcuMCBBTkQgZDw2OC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3 LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9OTMKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0zNTcyNywxMCArMzU3MjcsMTAgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTQyLjAgQU5EIGQ8NDMu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj00Mi4wIEFORCBkPDQzLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0ncG9ubWxraicgQU5EIGYgR0xPQiAn c3R1dncqJykKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIxIEFORCAyMykgQU5EIGEhPTIy KQotICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiBiPTczNwogICBdXSkKICAgICBlbmQsIHsKQEAgLTM1NzQ0LDEwICszNTc0NCwx MCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAo ZD49NDIuMCBBTkQgZDw0My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQy LjAgQU5EIGQ8NDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdwb25t bGtqJyBBTkQgZiBHTE9CICdzdHV2dyonKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMjEg QU5EIDIzKSBBTkQgYSE9MjIpCi0gICAgICAgICBPUiAoZD49MTIuMCBBTkQgZDwxMy4wIEFO RCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTEyLjAgQU5EIGQ8MTMuMCBBTkQgZCBJ UyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NzM3CiAgIF1dKQogICAgIGVuZCwgewpAQCAt MzU4MjUsMTAgKzM1ODI1LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAg ICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00g dDIKLSAgICAgIFdIRVJFIChkPj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICBXSEVSRSAoZD49MTIuMCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgKChhIEJFVFdFRU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiA4NiBBTkQgODgpIEFORCBhIT04NykKLSAgICAgICAgIE9SIChkPj0z OC4wIEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBB TkQgZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yNDUKICAgICAg ICAgIE9SIGI9NTI4CiAgICAgICAgICBPUiBiPTM2NgpAQCAtMzU4NDgsMTAgKzM1ODQ4LDEw IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3Vu dF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChk Pj0xMi4wIEFORCBkPDEzLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTIu MCBBTkQgZDwxMy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNTkgQU5EIDYxKSBBTkQgYSE9NjApCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NiBB TkQgODgpIEFORCBhIT04NykKLSAgICAgICAgIE9SIChkPj0zOC4wIEFORCBkPDM5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwzOS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0yNDUKICAgICAgICAgIE9SIGI9NTI4CiAgICAg ICAgICBPUiBiPTM2NgpAQCAtMzU4NzEsNyArMzU4NzEsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVSRSAoZD49MTAwLjAgQU5EIGQ8MTAxLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49MTAwLjAgQU5EIGQ8MTAxLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4IEFORCAxMCkgQU5E IGEhPTkpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA4NiBBTkQgODgpIEFORCBhIT04NykK ICAgICAgICAgIE9SIGI9MTQ2CkBAIC0zNTg5Myw3ICszNTg5Myw3IEBAIHRlc3Q6ZG9fdGVz dCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtb CiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwx MDEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj0xMDAuMCBBTkQgZDwxMDEu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDggQU5EIDEw KSBBTkQgYSE9OSkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDg2IEFORCA4OCkgQU5EIGEh PTg3KQogICAgICAgICAgT1IgYj0xNDYKQEAgLTM2MDE4LDcgKzM2MDE4LDcgQEAgdGVzdDpk b190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxF Q1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBiPTYzOAotICAgICAgICAgT1IgKGQ+PTQ0LjAg QU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00NC4wIEFORCBk PDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZ2ZlZGNiYScgQU5E IGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SIGI9MTY1CiAgICAgICAgICBPUiAoKGEg QkVUV0VFTiAxMCBBTkQgMTIpIEFORCBhIT0xMSkKQEAgLTM2MDQwLDcgKzM2MDQwLDcgQEAg dGVzdDpkb190ZXN0KAogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAg ICBTRUxFQ1QgYSBGUk9NIHQzCiAgICAgICBXSEVSRSBiPTYzOAotICAgICAgICAgT1IgKGQ+ PTQ0LjAgQU5EIGQ8NDUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj00NC4w IEFORCBkPDQ1LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nZ2ZlZGNi YScgQU5EIGYgR0xPQiAnbG1ub3AqJykKICAgICAgICAgIE9SIGI9MTY1CiAgICAgICAgICBP UiAoKGEgQkVUV0VFTiAxMCBBTkQgMTIpIEFORCBhIT0xMSkKQEAgLTM2MDYxLDEyICszNjA2 MSwxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4g Y291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAgICBXSEVS RSAoZD49NTIuMCBBTkQgZDw1My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+ PTUyLjAgQU5EIGQ8NTMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J29w cXJzdHV2dycKICAgICAgICAgIE9SIGE9ODMKICAgICAgICAgIE9SIGE9OTMKICAgICAgICAg IE9SIGI9ODU4Ci0gICAgICAgICBPUiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBOT1QgTlVM TCkKICAgICAgICAgIE9SIChnPSdqaWhnZmVkJyBBTkQgZiBHTE9CICd2d3h5eionKQogICBd XSkKICAgICBlbmQsIHsKQEAgLTM2MDgwLDEyICszNjA4MCwxMiBAQCB0ZXN0OmRvX3Rlc3Qo CiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwog ICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAoZD49NTIuMCBBTkQgZDw1My4w IEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTUyLjAgQU5EIGQ8NTMuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGY9J29wcXJzdHV2dycKICAgICAgICAgIE9S IGE9ODMKICAgICAgICAgIE9SIGE9OTMKICAgICAgICAgIE9SIGI9ODU4Ci0gICAgICAgICBP UiAoZD49MTguMCBBTkQgZDwxOS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+ PTE4LjAgQU5EIGQ8MTkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdq aWhnZmVkJyBBTkQgZiBHTE9CICd2d3h5eionKQogICBdXSkKICAgICBlbmQsIHsKQEAgLTM2 MTI5LDcgKzM2MTI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTYwLjAgQU5EIGQ8NjEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA1MCBBTkQgNTIpIEFORCBhIT01MSkKICAgXV0pCiAgICAgZW5k LCB7CkBAIC0zNjE0Myw3ICszNjE0Myw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlv bigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBh IEZST00gdDMKLSAgICAgIFdIRVJFIChkPj02MC4wIEFORCBkPDYxLjAgQU5EIGQgTk9UIE5V TEwpCisgICAgICBXSEVSRSAoZD49NjAuMCBBTkQgZDw2MS4wIEFORCBkIElTIE5PVCBOVUxM KQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNTAgQU5EIDUyKSBBTkQgYSE9NTEpCiAgIF1d KQogICAgIGVuZCwgewpAQCAtMzYxOTMsNyArMzYxOTMsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAg ICAgIFNFTEVDVCBhIEZST00gdDIKICAgICAgIFdIRVJFIChnPSdmZWRjYmF6JyBBTkQgZiBH TE9CICdyc3R1dionKQogICAgICAgICAgT1IgYj03NDgKLSAgICAgICAgIE9SIChkPj05Ny4w IEFORCBkPDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTcuMCBBTkQg ZDw5OC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gNjkg QU5EIDcxKSBBTkQgYSE9NzApCiAgICAgICAgICBPUiBiPTUzMQogICAgICAgICAgT1IgYj0x MDkyCkBAIC0zNjIxMiw3ICszNjIxMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgU0VMRUNU IGEgRlJPTSB0MwogICAgICAgV0hFUkUgKGc9J2ZlZGNiYXonIEFORCBmIEdMT0IgJ3JzdHV2 KicpCiAgICAgICAgICBPUiBiPTc0OAotICAgICAgICAgT1IgKGQ+PTk3LjAgQU5EIGQ8OTgu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj05Ny4wIEFORCBkPDk4LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiA2OSBBTkQgNzEpIEFO RCBhIT03MCkKICAgICAgICAgIE9SIGI9NTMxCiAgICAgICAgICBPUiBiPTEwOTIKQEAgLTM2 MjI5LDcgKzM2MjI5LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAg ICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0Mgot ICAgICAgV0hFUkUgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAg IFdIRVJFIChkPj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiA4IEFORCAxMCkgQU5EIGEhPTkpCiAgICAgICAgICBPUiAoZiBH TE9CICc/cHFycyonIEFORCBmIEdMT0IgJ29wcXIqJykKICAgICAgICAgIE9SIGE9NTAKQEAg LTM2MjQ3LDcgKzM2MjQ3LDcgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAg ICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0 MwotICAgICAgV0hFUkUgKGQ+PTMwLjAgQU5EIGQ8MzEuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgIFdIRVJFIChkPj0zMC4wIEFORCBkPDMxLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiA4IEFORCAxMCkgQU5EIGEhPTkpCiAgICAgICAgICBPUiAo ZiBHTE9CICc/cHFycyonIEFORCBmIEdMT0IgJ29wcXIqJykKICAgICAgICAgIE9SIGE9NTAK QEAgLTM2MjY4LDEwICszNjI2OCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBh PTI0CiAgICAgICAgICBPUiAoKGEgQkVUV0VFTiAyMiBBTkQgMjQpIEFORCBhIT0yMykKICAg ICAgICAgIE9SIGI9NDg3Ci0gICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDEzIEFORCAxNSkgQU5EIGEhPTE0 KQogICAgICAgICAgT1IgYj0xMzIKLSAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NTQuMCBBTkQgZDw1NS4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03OTUKICAgICAgICAgIE9SIGI9NzM3CiAg IF1dKQpAQCAtMzYyODksMTAgKzM2Mjg5LDEwIEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgIFdI RVJFIGE9MjQKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIz KQogICAgICAgICAgT1IgYj00ODcKLSAgICAgICAgIE9SIChkPj05Ni4wIEFORCBkPDk3LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49OTYuMCBBTkQgZDw5Ny4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKChhIEJFVFdFRU4gMTMgQU5EIDE1KSBBTkQg YSE9MTQpCiAgICAgICAgICBPUiBiPTEzMgotICAgICAgICAgT1IgKGQ+PTU0LjAgQU5EIGQ8 NTUuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj01NC4wIEFORCBkPDU1LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTc5NQogICAgICAgICAgT1IgYj03 MzcKICAgXV0pCkBAIC0zNjMwNyw3ICszNjMwNyw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBm dW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNF TEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj04OC4wIEFORCBkPDg5LjAgQU5EIGQg Tk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElTIE5P VCBOVUxMKQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1IgYz0xNjAxNgogICAgICAg ICAgT1IgYj0xMDc4CkBAIC0zNjMyNSw3ICszNjMyNSw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAg ICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAg IFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj04OC4wIEFORCBkPDg5LjAgQU5E IGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49ODguMCBBTkQgZDw4OS4wIEFORCBkIElT IE5PVCBOVUxMKQogICAgICAgICAgT1IgYT0zNAogICAgICAgICAgT1IgYz0xNjAxNgogICAg ICAgICAgT1IgYj0xMDc4CkBAIC0zNjM0Nyw3ICszNjM0Nyw3IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE5IEFORCAyMSkgQU5EIGEhPTIwKQogICAgICAg ICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAo KGEgQkVUV0VFTiA3MyBBTkQgNzUpIEFORCBhIT03NCkKLSAgICAgICAgIE9SIChkPj0zOC4w IEFORCBkPDM5LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzguMCBBTkQg ZDwzOS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT02CiAgIF1dKQogICAg IGVuZCwgewpAQCAtMzYzNjUsNyArMzYzNjUsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAg ICBPUiAoKGEgQkVUV0VFTiAxOSBBTkQgMjEpIEFORCBhIT0yMCkKICAgICAgICAgIE9SIChn PSdwb25tbGtqJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgKChhIEJFVFdF RU4gNzMgQU5EIDc1KSBBTkQgYSE9NzQpCi0gICAgICAgICBPUiAoZD49MzguMCBBTkQgZDwz OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM4LjAgQU5EIGQ8MzkuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NgogICBdXSkKICAgICBlbmQsIHsK QEAgLTM2NDI1LDEwICszNjQyNSwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQyCi0gICAgICBXSEVSRSAoZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTQwLjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SIGI9MTEwCiAgICAgICAgICBPUiBmPSdnaGlqa2xtbm8nCi0gICAgICAg ICBPUiAoZD49MjEuMCBBTkQgZDwyMi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTIxLjAgQU5EIGQ8MjIuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NzUuMT4KQEAgLTM2NDQxLDEwICszNjQ0MSwx MCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICByZXR1cm4gY291 bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQzCi0gICAgICBXSEVSRSAo ZD49NDAuMCBBTkQgZDw0MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQw LjAgQU5EIGQ8NDEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTEwCiAg ICAgICAgICBPUiBmPSdnaGlqa2xtbm8nCi0gICAgICAgICBPUiAoZD49MjEuMCBBTkQgZDwy Mi4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi45NzUuMj4KQEAgLTM2NDYxLDcgKzM2NDYxLDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICAgICAgT1IgKGc9J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBP UiAoZiBHTE9CICc/Y2RlZionIEFORCBmIEdMT0IgJ2JjZGUqJykKICAgICAgICAgIE9SIGI9 OTEKLSAgICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisg ICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAg ICAgICAgT1IgYj03NwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3V2 d3h5KicpCiAgICAgICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncHFyc3QqJykK QEAgLTM2NDgxLDcgKzM2NDgxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J3V0c3JxcG8nIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/ Y2RlZionIEFORCBmIEdMT0IgJ2JjZGUqJykKICAgICAgICAgIE9SIGI9OTEKLSAgICAgICAg IE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj03 NwogICAgICAgICAgT1IgKGc9J3Bvbm1sa2onIEFORCBmIEdMT0IgJ3V2d3h5KicpCiAgICAg ICAgICBPUiAoZz0ndnV0c3JxcCcgQU5EIGYgR0xPQiAncHFyc3QqJykKQEAgLTM2NDk3LDEy ICszNjQ5NywxMiBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24oKQogICAgICAgICBy ZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBGUk9NIHQyCi0gICAg ICBXSEVSRSAoZD49NTYuMCBBTkQgZDw1Ny4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChk Pj01Ni4wIEFORCBkPDU3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 NzguMCBBTkQgZDw3OS4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj02OTMK LSAgICAgICAgIE9SIChkPj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgTk9UIE5VTEwpCi0gICAg ICAgICBPUiAoZD49MjYuMCBBTkQgZDwyNy4wIEFORCBkIE5PVCBOVUxMKQotICAgICAgICAg T1IgKGQ+PTQyLjAgQU5EIGQ8NDMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj0yMS4wIEFORCBkPDIyLjAgQU5EIGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 MjYuMCBBTkQgZDwyNy4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTQy LjAgQU5EIGQ8NDMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9NTIKICAg ICAgICAgIE9SIGI9Mzc3CiAgIF1dKQpAQCAtMzY1MTcsMTIgKzM2NTE3LDEyIEBAIHRlc3Q6 ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19z b3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj01Ni4wIEFO RCBkPDU3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NzguMCBBTkQgZDw3 OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTU2LjAgQU5EIGQ8NTcuMCBB TkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03OC4wIEFORCBkPDc5LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBiPTY5MwotICAgICAgICAgT1IgKGQ+PTIx LjAgQU5EIGQ8MjIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9SIChkPj0yNi4wIEFO RCBkPDI3LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0 My4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIxLjAgQU5EIGQ8MjIuMCBB TkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yNi4wIEFORCBkPDI3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49NDIuMCBBTkQgZDw0My4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT01MgogICAgICAgICAgT1IgYj0zNzcKICAg XV0pCkBAIC0zNjU0NCw3ICszNjU0NCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9S IGI9MTAwNAogICAgICAgICAgT1IgYj04NzIKICAgICAgICAgIE9SIGE9OTUKLSAgICAgICAg IE9SIChkPj0yNy4wIEFORCBkPDI4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAo ZD49MjcuMCBBTkQgZDwyOC4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYj0x NzYKICAgICAgICAgIE9SIGI9MzAwCiAgIF1dKQpAQCAtMzY1NjYsNyArMzY1NjYsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBiPTEwMDQKICAgICAgICAgIE9SIGI9ODcyCiAg ICAgICAgICBPUiBhPTk1Ci0gICAgICAgICBPUiAoZD49MjcuMCBBTkQgZDwyOC4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTI3LjAgQU5EIGQ8MjguMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTc2CiAgICAgICAgICBPUiBiPTMwMAogICBdXSkK QEAgLTM2NTkwLDcgKzM2NTkwLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9 J25tbGtqaWgnIEFORCBmIEdMT0IgJ2JjZGVmKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/ aGlqayonIEFORCBmIEdMT0IgJ2doaWoqJykKICAgICAgICAgIE9SIGI9OTI3Ci0gICAgICAg ICBPUiAoZD49NTAuMCBBTkQgZDw1MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTUwLjAgQU5EIGQ8NTEuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5k LCB7CiAgICAgICAgIC0tIDx3aGVyZTctMi45NzkuMT4KQEAgLTM2NjEyLDcgKzM2NjEyLDcg QEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFORCBmIEdMT0Ig J2JjZGVmKicpCiAgICAgICAgICBPUiAoZiBHTE9CICc/aGlqayonIEFORCBmIEdMT0IgJ2do aWoqJykKICAgICAgICAgIE9SIGI9OTI3Ci0gICAgICAgICBPUiAoZD49NTAuMCBBTkQgZDw1 MS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTUwLjAgQU5EIGQ8NTEuMCBB TkQgZCBJUyBOT1QgTlVMTCkKICAgXV0pCiAgICAgZW5kLCB7CiAgICAgICAgIC0tIDx3aGVy ZTctMi45NzkuMj4KQEAgLTM2NjI3LDcgKzM2NjI3LDcgQEAgdGVzdDpkb190ZXN0KAogICAg ICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBmPSdmZ2hpamtsbW4nCiAgICAgICAg ICBPUiBiPTEwNzgKLSAgICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgZj0nZmdoaWprbG1uJwogICBdXSkKICAgICBlbmQsIHsKQEAg LTM2NjQzLDcgKzM2NjQzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSBmPSdmZ2hpamtsbW4nCiAgICAgICAgICBPUiBiPTEwNzgKLSAg ICAgICAgIE9SIChkPj0zNS4wIEFORCBkPDM2LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAg ICBPUiAoZD49MzUuMCBBTkQgZDwzNi4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAg T1IgZj0nZmdoaWprbG1uJwogICBdXSkKICAgICBlbmQsIHsKQEAgLTM2NzM0LDcgKzM2NzM0 LDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgV0hFUkUgYj0zNjMKICAgICAgICAgIE9SIGI9 NjMwCiAgICAgICAgICBPUiBiPTkzNQotICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0yMC4wIEFORCBkPDIxLjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoZz0nc3JxcG9ubScgQU5EIGYgR0xPQiAn ZGVmZ2gqJykKICAgICAgICAgIE9SIGY9J3l6YWJjZGVmZycKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDM3IEFORCAzOSkgQU5EIGEhPTM4KQpAQCAtMzY3NTMsNyArMzY3NTMsNyBAQCB0 ZXN0OmRvX3Rlc3QoCiAgICAgICBXSEVSRSBiPTM2MwogICAgICAgICAgT1IgYj02MzAKICAg ICAgICAgIE9SIGI9OTM1Ci0gICAgICAgICBPUiAoZD49MjAuMCBBTkQgZDwyMS4wIEFORCBk IE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTIwLjAgQU5EIGQ8MjEuMCBBTkQgZCBJUyBO T1QgTlVMTCkKICAgICAgICAgIE9SIChnPSdzcnFwb25tJyBBTkQgZiBHTE9CICdkZWZnaCon KQogICAgICAgICAgT1IgZj0neXphYmNkZWZnJwogICAgICAgICAgT1IgKChhIEJFVFdFRU4g MzcgQU5EIDM5KSBBTkQgYSE9MzgpCkBAIC0zNjc2OSw5ICszNjc2OSw5IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0 KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAgICAgIFdIRVJFIChkPj05Ny4wIEFORCBk PDk4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4w IEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00MAotICAgICAgICAgT1IgKGQ+ PTg2LjAgQU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ni4w IEFORCBkPDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdhYmNkZWZn aGknCiAgICAgICAgICBPUiBiPTY5NgogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBm IEdMT0IgJ3Fyc3R1KicpCkBAIC0zNjc5Miw5ICszNjc5Miw5IEBAIHRlc3Q6ZG9fdGVzdCgK ICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAg ICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj05Ny4wIEFORCBkPDk4LjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTcuMCBBTkQgZDw5OC4wIEFORCBk IElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgYT00MAotICAgICAgICAgT1IgKGQ+PTg2LjAg QU5EIGQ8ODcuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04Ni4wIEFORCBk PDg3LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBmPSdhYmNkZWZnaGknCiAg ICAgICAgICBPUiBiPTY5NgogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFORCBmIEdMT0Ig J3Fyc3R1KicpCkBAIC0zNjg0NSwxMSArMzY4NDUsMTEgQEAgdGVzdDpkb190ZXN0KAogICAg IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAg U0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk2LjAgQU5EIGQ8OTcuMCBBTkQg ZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ni4wIEFORCBkPDk3LjAgQU5EIGQgSVMg Tk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTczCiAgICAgICAgICBPUiBiPTcyOQotICAgICAg ICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAgICAgIE9S IChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49 ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY3 LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9MzIKICAg XV0pCiAgICAgZW5kLCB7CkBAIC0zNjg2MywxMSArMzY4NjMsMTEgQEAgdGVzdDpkb190ZXN0 KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sK ICAgICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTk2LjAgQU5EIGQ8OTcu MCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgIFdIRVJFIChkPj05Ni4wIEFORCBkPDk3LjAgQU5E IGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiBhPTczCiAgICAgICAgICBPUiBiPTcyOQot ICAgICAgICAgT1IgKGQ+PTgxLjAgQU5EIGQ8ODIuMCBBTkQgZCBOT1QgTlVMTCkKLSAgICAg ICAgIE9SIChkPj02Ny4wIEFORCBkPDY4LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBP UiAoZD49ODEuMCBBTkQgZDw4Mi4wIEFORCBkIElTIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTY3LjAgQU5EIGQ8NjguMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGE9 MzIKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNjg4Niw3ICszNjg4Niw3IEBAIHRlc3Q6ZG9f dGVzdCgKICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDM4IEFORCA0MCkgQU5EIGEhPTM5KQog ICAgICAgICAgT1IgKGc9J3RzcnFwb24nIEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAg ICBPUiBiPTQ4NAotICAgICAgICAgT1IgKGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj04Mi4wIEFORCBkPDgzLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTg3LjE+CkBA IC0zNjkwNCw3ICszNjkwNCw3IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SICgoYSBC RVRXRUVOIDM4IEFORCA0MCkgQU5EIGEhPTM5KQogICAgICAgICAgT1IgKGc9J3RzcnFwb24n IEFORCBmIEdMT0IgJ3h5emFiKicpCiAgICAgICAgICBPUiBiPTQ4NAotICAgICAgICAgT1Ig KGQ+PTgyLjAgQU5EIGQ8ODMuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj04 Mi4wIEFORCBkPDgzLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewog ICAgICAgICAtLSA8d2hlcmU3LTIuOTg3LjI+CkBAIC0zNjkxNywxNiArMzY5MTcsMTYgQEAg dGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0 ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJPTSB0MgotICAgICAgV0hFUkUgKGQ+PTk5 LjAgQU5EIGQ8MTAwLjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTkuMCBB TkQgZDwxMDAuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTM1Ci0gICAg ICAgICBPUiAoZD49NjYuMCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAg T1IgKGQ+PTY2LjAgQU5EIGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9S IGI9MjA5CiAgICAgICAgICBPUiBiPTM2MwogICAgICAgICAgT1IgYz0yNzAyNwogICAgICAg ICAgT1IgYj0xMDI2CiAgICAgICAgICBPUiBjPTYwMDYKICAgICAgICAgIE9SIChnPSdwb25t bGtqJyBBTkQgZiBHTE9CICd1dnd4eSonKQotICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8 NzQuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAg QU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hl cmU3LTIuOTg4LjE+CkBAIC0zNjkzOSwxNiArMzY5MzksMTYgQEAgdGVzdDpkb190ZXN0KAog ICAgIGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAg ICAgU0VMRUNUIGEgRlJPTSB0MwotICAgICAgV0hFUkUgKGQ+PTk5LjAgQU5EIGQ8MTAwLjAg QU5EIGQgTk9UIE5VTEwpCisgICAgICBXSEVSRSAoZD49OTkuMCBBTkQgZDwxMDAuMCBBTkQg ZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MTM1Ci0gICAgICAgICBPUiAoZD49NjYu MCBBTkQgZDw2Ny4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTY2LjAgQU5E IGQ8NjcuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9MjA5CiAgICAgICAg ICBPUiBiPTM2MwogICAgICAgICAgT1IgYz0yNzAyNwogICAgICAgICAgT1IgYj0xMDI2CiAg ICAgICAgICBPUiBjPTYwMDYKICAgICAgICAgIE9SIChnPSdwb25tbGtqJyBBTkQgZiBHTE9C ICd1dnd4eSonKQotICAgICAgICAgT1IgKGQ+PTczLjAgQU5EIGQ8NzQuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj03My4wIEFORCBkPDc0LjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8d2hlcmU3LTIuOTg4LjI+CkBA IC0zNjk2MSwxMSArMzY5NjEsMTEgQEAgdGVzdDpkb190ZXN0KAogICAgIGZ1bmN0aW9uKCkK ICAgICAgICAgcmV0dXJuIGNvdW50X3N0ZXBzX3NvcnQoW1sKICAgICAgU0VMRUNUIGEgRlJP TSB0MgotICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBOT1QgTlVMTCkK KyAgICAgIFdIRVJFIChkPj03OS4wIEFORCBkPDgwLjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAxOCBBTkQgMjApIEFORCBhIT0xOSkKICAgICAgICAg IE9SIChnPSdxcG9ubWxrJyBBTkQgZiBHTE9CICdub3BxcionKQogICAgICAgICAgT1IgYT05 NwotICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBOT1QgTlVMTCkKKyAg ICAgICAgIE9SIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAg ICAgICBPUiAoKGEgQkVUV0VFTiAyMiBBTkQgMjQpIEFORCBhIT0yMykKICAgICAgICAgIE9S IChnPSdtbGtqaWhnJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgYj02NzQK QEAgLTM2OTgzLDExICszNjk4MywxMSBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgZnVuY3Rpb24o KQogICAgICAgICByZXR1cm4gY291bnRfc3RlcHNfc29ydChbWwogICAgICBTRUxFQ1QgYSBG Uk9NIHQzCi0gICAgICBXSEVSRSAoZD49NzkuMCBBTkQgZDw4MC4wIEFORCBkIE5PVCBOVUxM KQorICAgICAgV0hFUkUgKGQ+PTc5LjAgQU5EIGQ8ODAuMCBBTkQgZCBJUyBOT1QgTlVMTCkK ICAgICAgICAgIE9SICgoYSBCRVRXRUVOIDE4IEFORCAyMCkgQU5EIGEhPTE5KQogICAgICAg ICAgT1IgKGc9J3Fwb25tbGsnIEFORCBmIEdMT0IgJ25vcHFyKicpCiAgICAgICAgICBPUiBh PTk3Ci0gICAgICAgICBPUiAoZD49NDUuMCBBTkQgZDw0Ni4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SICgoYSBCRVRXRUVOIDIyIEFORCAyNCkgQU5EIGEhPTIzKQogICAgICAgICAg T1IgKGc9J21sa2ppaGcnIEFORCBmIEdMT0IgJ2doaWprKicpCiAgICAgICAgICBPUiBiPTY3 NApAQCAtMzcwMDcsNyArMzcwMDcsNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBh IEZST00gdDIKICAgICAgIFdIRVJFIGI9Mjk3CiAgICAgICAgICBPUiBhPTgzCi0gICAgICAg ICBPUiAoZD49NzguMCBBTkQgZDw3OS4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1Ig KGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SICgo YSBCRVRXRUVOIDE2IEFORCAxOCkgQU5EIGEhPTE3KQogICBdXSkKICAgICBlbmQsIHsKQEAg LTM3MDIzLDcgKzM3MDIzLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICBTRUxFQ1QgYSBGUk9N IHQzCiAgICAgICBXSEVSRSBiPTI5NwogICAgICAgICAgT1IgYT04MwotICAgICAgICAgT1Ig KGQ+PTc4LjAgQU5EIGQ8NzkuMCBBTkQgZCBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj03 OC4wIEFORCBkPDc5LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgICAgICAgICBPUiAoKGEgQkVU V0VFTiAxNiBBTkQgMTgpIEFORCBhIT0xNykKICAgXV0pCiAgICAgZW5kLCB7CkBAIC0zNzA3 Nyw4ICszNzA3Nyw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAg IHJldHVybiBjb3VudF9zdGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDIKLSAg ICAgIFdIRVJFIChkPj00NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAg ICBPUiAoZD49NjMuMCBBTkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUg KGQ+PTQ1LjAgQU5EIGQ8NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChk Pj02My4wIEFORCBkPDY0LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwg ewogICAgICAgICAtLSA8d2hlcmU3LTIuOTkyLjE+CkBAIC0zNzA5MSw4ICszNzA5MSw4IEBA IHRlc3Q6ZG9fdGVzdCgKICAgICBmdW5jdGlvbigpCiAgICAgICAgIHJldHVybiBjb3VudF9z dGVwc19zb3J0KFtbCiAgICAgIFNFTEVDVCBhIEZST00gdDMKLSAgICAgIFdIRVJFIChkPj00 NS4wIEFORCBkPDQ2LjAgQU5EIGQgTk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49NjMuMCBB TkQgZDw2NC4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgV0hFUkUgKGQ+PTQ1LjAgQU5EIGQ8 NDYuMCBBTkQgZCBJUyBOT1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj02My4wIEFORCBkPDY0 LjAgQU5EIGQgSVMgTk9UIE5VTEwpCiAgIF1dKQogICAgIGVuZCwgewogICAgICAgICAtLSA8 d2hlcmU3LTIuOTkyLjI+CkBAIC0zNzE3OSwxMCArMzcxNzksMTAgQEAgdGVzdDpkb190ZXN0 KAogICAgICBTRUxFQ1QgYSBGUk9NIHQyCiAgICAgICBXSEVSRSBhPTQxCiAgICAgICAgICBP UiBiPTk5MAotICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0zNi4wIEFORCBkPDM3LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiBiPTYwNQogICAgICAgICAgT1IgKGc9J3NycXBvbm0nIEFORCBmIEdM T0IgJ2NkZWZnKicpCi0gICAgICAgICBPUiAoZD49MzYuMCBBTkQgZDwzNy4wIEFORCBkIE5P VCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8MzcuMCBBTkQgZCBJUyBOT1Qg TlVMTCkKICAgICAgICAgIE9SIChnPSd2dXRzcnFwJyBBTkQgZiBHTE9CICdxcnN0dSonKQog ICAgICAgICAgT1IgYj05NjgKICAgICAgICAgIE9SIGE9NjYKQEAgLTM3MjAwLDEwICszNzIw MCwxMCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgIFNFTEVDVCBhIEZST00gdDMKICAgICAgIFdI RVJFIGE9NDEKICAgICAgICAgIE9SIGI9OTkwCi0gICAgICAgICBPUiAoZD49MzYuMCBBTkQg ZDwzNy4wIEFORCBkIE5PVCBOVUxMKQorICAgICAgICAgT1IgKGQ+PTM2LjAgQU5EIGQ8Mzcu MCBBTkQgZCBJUyBOT1QgTlVMTCkKICAgICAgICAgIE9SIGI9NjA1CiAgICAgICAgICBPUiAo Zz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnY2RlZmcqJykKLSAgICAgICAgIE9SIChkPj0zNi4w IEFORCBkPDM3LjAgQU5EIGQgTk9UIE5VTEwpCisgICAgICAgICBPUiAoZD49MzYuMCBBTkQg ZDwzNy4wIEFORCBkIElTIE5PVCBOVUxMKQogICAgICAgICAgT1IgKGc9J3Z1dHNycXAnIEFO RCBmIEdMT0IgJ3Fyc3R1KicpCiAgICAgICAgICBPUiBiPTk2OAogICAgICAgICAgT1IgYT02 NgpAQCAtMzcyMjMsOCArMzcyMjMsOCBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiAo Zz0nc3JxcG9ubScgQU5EIGYgR0xPQiAnZ2hpamsqJykKICAgICAgICAgIE9SIChnPSd1dHNy cXBvJyBBTkQgZiBHTE9CICd0dXZ3eConKQogICAgICAgICAgT1IgKGc9J25tbGtqaWgnIEFO RCBmIEdMT0IgJ2ZnaGlqKicpCi0gICAgICAgICBPUiAoZD49MTcuMCBBTkQgZDwxOC4wIEFO RCBkIE5PVCBOVUxMKQotICAgICAgICAgT1IgKGQ+PTM3LjAgQU5EIGQ8MzguMCBBTkQgZCBO T1QgTlVMTCkKKyAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQgSVMgTk9U IE5VTEwpCisgICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIElTIE5PVCBO VUxMKQogICAgICAgICAgT1IgKGc9J29ubWxramknIEFORCBmIEdMT0IgJ2FiY2RlKicpCiAg ICAgICAgICBPUiAoKGEgQkVUV0VFTiAzOSBBTkQgNDEpIEFORCBhIT00MCkKICAgXV0pCkBA IC0zNzI0Myw4ICszNzI0Myw4IEBAIHRlc3Q6ZG9fdGVzdCgKICAgICAgICAgIE9SIChnPSdz cnFwb25tJyBBTkQgZiBHTE9CICdnaGlqayonKQogICAgICAgICAgT1IgKGc9J3V0c3JxcG8n IEFORCBmIEdMT0IgJ3R1dnd4KicpCiAgICAgICAgICBPUiAoZz0nbm1sa2ppaCcgQU5EIGYg R0xPQiAnZmdoaWoqJykKLSAgICAgICAgIE9SIChkPj0xNy4wIEFORCBkPDE4LjAgQU5EIGQg Tk9UIE5VTEwpCi0gICAgICAgICBPUiAoZD49MzcuMCBBTkQgZDwzOC4wIEFORCBkIE5PVCBO VUxMKQorICAgICAgICAgT1IgKGQ+PTE3LjAgQU5EIGQ8MTguMCBBTkQgZCBJUyBOT1QgTlVM TCkKKyAgICAgICAgIE9SIChkPj0zNy4wIEFORCBkPDM4LjAgQU5EIGQgSVMgTk9UIE5VTEwp CiAgICAgICAgICBPUiAoZz0nb25tbGtqaScgQU5EIGYgR0xPQiAnYWJjZGUqJykKICAgICAg ICAgIE9SICgoYSBCRVRXRUVOIDM5IEFORCA0MSkgQU5EIGEhPTQwKQogICBdXSkKQEAgLTM3 NDIxLDcgKzM3NDIxLDcgQEAgdGVzdDpkb190ZXN0KAogICAgICAgICAgT1IgYT0yMwogICAg ICAgICAgT1IgKGYgR0xPQiAnP2RlZmcqJyBBTkQgZiBHTE9CICdjZGVmKicpCiAgICAgICAg ICBPUiBkPDAuMAotICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBOT1Qg TlVMTCkKKyAgICAgICAgIE9SIChkPj0yMi4wIEFORCBkPDIzLjAgQU5EIGQgSVMgTk9UIE5V TEwpCiAgICAgICAgICBPUiBhPTkxCiAgIF1dKQogICAgIGVuZCwgewpAQCAtMzc0MzksNyAr Mzc0MzksNyBAQCB0ZXN0OmRvX3Rlc3QoCiAgICAgICAgICBPUiBhPTIzCiAgICAgICAgICBP UiAoZiBHTE9CICc/ZGVmZyonIEFORCBmIEdMT0IgJ2NkZWYqJykKICAgICAgICAgIE9SIGQ8 MC4wCi0gICAgICAgICBPUiAoZD49MjIuMCBBTkQgZDwyMy4wIEFORCBkIE5PVCBOVUxMKQor ICAgICAgICAgT1IgKGQ+PTIyLjAgQU5EIGQ8MjMuMCBBTkQgZCBJUyBOT1QgTlVMTCkKICAg ICAgICAgIE9SIGE9OTEKICAgXV0pCiAgICAgZW5kLCB7Cg== --------------476BA1A36B03911253D857C2--