Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bLVrf-0007D7-HW for pgadmin-hackers@arkaria.postgresql.org; Fri, 08 Jul 2016 13:30:43 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bLVrf-0004Uv-4A for pgadmin-hackers@arkaria.postgresql.org; Fri, 08 Jul 2016 13:30:43 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bLVrb-0004Tz-Cp for pgadmin-hackers@postgresql.org; Fri, 08 Jul 2016 13:30:39 +0000 Received: from mail-qk0-x235.google.com ([2607:f8b0:400d:c09::235]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bLVrX-0007YY-3k for pgadmin-hackers@postgresql.org; Fri, 08 Jul 2016 13:30:38 +0000 Received: by mail-qk0-x235.google.com with SMTP id 82so37513685qko.3 for ; Fri, 08 Jul 2016 06:30:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=mR8NWCeT2Kqm6Ic4bME74gXdYvv7Lf0v95pLpSli+PY=; b=j2TLtjDo87a5AYeh+6QxUCBuaL4ljaRMKVqc6/f5Oic1TxHzi7iT8vXjUUf7C8UosF mth43Mec4EYIDflwa9HVW2omFbKhmHVGp0bEXUxqPR10YoDsqC5qPIX3DvdCo4gVavhM X0Q0zCajZAJF9B4F7AoSDFLyLIJPzjOryEm/rXPIc9VSmAC0w9RuU2dE1vlO4DxrPfAL hVwRRqIR6rPiEQmIPfasDyv7MYFNIN6rpJe0Gt4E0Lv6s2Ser1bHc1FArRNH8K4J0c8K uiz4YkacISTIislR/lOt1edITbTYXZuj60OKm0bZmStZfWTjsjG5B+vmTao14h2c6GBa pGAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=mR8NWCeT2Kqm6Ic4bME74gXdYvv7Lf0v95pLpSli+PY=; b=OzbTnNZi1X9lGbuaB9lp7gSEeG9WnSG7WsLXOlXzQ2gnEtQmpwutVu9FMl1GVULwDe W63JOWz1JSpQ96CzDDRu8ABg3AYudFhG90bZITA/J3xA5493SfQt42BrRr1uJnvP/XA3 SGf0H5zxl52LrCW1nxbQW53ywdR6cflqmgrhXoZhDmauGZL/nZ4tUlY46iraQ27+tckh 0kYXZZIz7rMWXLyKR1MRL6iKNa1J6SNApgvtVnTEMPsoHQJ7YFFJouCU2POxNtndU5lW BeapZZ+OU9yPW8AtUjAfViXKqs7INbQ8bqQUqv0i6S+FaltLBZl5ZMyU8yB2RRJ3LFQh 9MIg== X-Gm-Message-State: ALyK8tI1OJgtZjoGfOUnLb3SSr0a5lrx+uqrZi8dOKIJxzLGU1AcNiKgbU4Z/NgM5Rx5Zdv4/fXFAOVq4CVsJWT7 X-Received: by 10.55.120.5 with SMTP id t5mr7500682qkc.131.1467984634285; Fri, 08 Jul 2016 06:30:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.93 with HTTP; Fri, 8 Jul 2016 06:30:33 -0700 (PDT) In-Reply-To: References: From: Navnath Gadakh Date: Fri, 8 Jul 2016 19:00:33 +0530 Message-ID: Subject: Fwd: pgAdmin IV : Unittest modular patch To: Dave Page Cc: pgadmin-hackers@postgresql.org, Kanchan Mohitey Content-Type: multipart/mixed; boundary=94eb2c05e7caaa332d05371fce78 X-Pg-Spam-Score: -1.5 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --94eb2c05e7caaa332d05371fce78 Content-Type: multipart/alternative; boundary=94eb2c05e7caaa332805371fce76 --94eb2c05e7caaa332805371fce76 Content-Type: text/plain; charset=UTF-8 Hi Dave, PFA patch for modular API test cases. Kindly, review the same and let me know for any modification. -- *Thanks,* *Navnath Gadakh* *Software Engineer* *Phone : + 91 9975389878* *The Postgres Database Company* --94eb2c05e7caaa332805371fce76 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Hi Da= ve,

PFA patch for modular API test cases.

Kindly, review the same and let me know for any modificati= on.=C2=A0
<= div>
--
Thanks,
= Navnath Gadakh
Software Engineer
Phone : + 91 9975389878

The Postgres Database Company
<= /div>


--94eb2c05e7caaa332805371fce76-- --94eb2c05e7caaa332d05371fce78 Content-Type: text/x-patch; charset=UTF-8; name="pgadmin_unittest_modular.patch" Content-Disposition: attachment; filename="pgadmin_unittest_modular.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iqdrqavq0 ZGlmZiAtLWdpdCBhL3dlYi9jb25maWcucHkgYi93ZWIvY29uZmlnLnB5Cmlu ZGV4IGZmN2MxZGIuLjZmYjAxY2EgMTAwNjQ0Ci0tLSBhL3dlYi9jb25maWcu cHkKKysrIGIvd2ViL2NvbmZpZy5weQpAQCAtMjgsNyArMjgsMTAgQEAgQVBQ X1JFVklTSU9OID0gMAogCiAjIEFwcGxpY2F0aW9uIHZlcnNpb24gc3VmZml4 LCBlLmcuICdiZXRhMScsICdkZXYnLiBVc3VhbGx5IGFuIGVtcHR5IHN0cmlu ZwogIyBmb3IgR0EgcmVsZWFzZXMuCi1BUFBfU1VGRklYID0gJ2JldGEyLjEn CitBUFBfU1VGRklYID0gJ2JldGEyJworCisjIFJvb3QgcGF0aCBmb3IgcGdh ZG1pbgorQVBQX1JPT1QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNw YXRoKF9fZmlsZV9fKSkKIAogIyBDb3B5cmlnaHQgc3RyaW5nIGZvciBkaXNw bGF5IGluIHRoZSBhcHAKIEFQUF9DT1BZUklHSFQgPSAnQ29weXJpZ2h0IDIw MTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtJwpAQCAt MTU0LDYgKzE1NywxMCBAQCBNQVhfU0VTU0lPTl9JRExFX1RJTUUgPSA2MAog IyBVc2VyIGFjY291bnQgYW5kIHNldHRpbmdzIHN0b3JhZ2UKICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKKyMgVGhlIHNjaGVtYSB2ZXJzaW9u IG51bWJlciBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gZGF0YWJhc2UKKyMgRE8g Tk9UIENIQU5HRSBVTkxFU1MgWU9VIEFSRSBBIFBHQURNSU4gREVWRUxPUEVS ISEKK1NFVFRJTkdTX1NDSEVNQV9WRVJTSU9OID0gMTMKKwogIyBUaGUgZGVm YXVsdCBwYXRoIHRvIHRoZSBTUUxpdGUgZGF0YWJhc2UgdXNlZCB0byBzdG9y ZSB1c2VyIGFjY291bnRzIGFuZAogIyBzZXR0aW5ncy4gVGhpcyBkZWZhdWx0 IHBsYWNlcyB0aGUgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhp cwogIyBjb25maWcgZmlsZSwgYnV0IGdlbmVyYXRlcyBhbiBhYnNvbHV0ZSBw YXRoIGZvciB1c2UgdGhyb3Vnb3V0IHRoZSBhcHAuCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvX19pbml0 X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEw MTI5NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRf Xy5weQpAQCAtMCwwICsxLDE1IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjICNwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjICNDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjICNUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisKK2NsYXNzIERh dGFiYXNlQ3JlYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICByZXR1cm4KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0 cy90ZXN0X2RiX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40Y2I1MDkyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rl c3RzL3Rlc3RfZGJfYWRkLnB5CkBAIC0wLDAgKzEsOTMgQEAKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlk CisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgYWR2YW5j ZV9jb25maWdfZGF0YQorCisKK2NsYXNzIERhdGFiYXNlQWRkVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAgIFRoaXMgY2xhc3Mg d2lsbCBjaGVjayBzZXJ2ZXIgZ3JvdXAgbm9kZSBwcmVzZW50IG9uIHRoZSBv YmplY3QgYnJvd3NlcidzCisgICAgdHJlZSBub2RlIGJ5IHJlc3BvbnNlIGNv ZGUuCisgICAgIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMg RmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRhdGFiYXNlIG5vZGUuCisgICAg ICAgICgnQ2hlY2sgRGF0YWJhc2VzIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9i cm93c2VyL2RhdGFiYXNlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0 VXAoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IHBlcmZvcm0gdGhlIHR3byB0YXNrcworICAgICAgICAgMS4gTG9naW4gdG8g dGVzdCBjbGllbnQKKyAgICAgICAgIDIuIEFkZCB0aGUgdGVzdCBzZXJ2ZXIK KworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAg ICAgIHV0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQor ICAgICAgICAjIEFkZCB0aGUgc2VydmVyCisgICAgICAgIHV0aWxzLmFkZF9z ZXJ2ZXIoc2VsZi50ZXN0ZXIpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgZGF0YWJhc2Ug dW5kZXIgMXN0IHNlcnZlciBvZiB0cmVlIG5vZGUuICIiIgorCisgICAgICAg IHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZl cl9pZCA9IFwKKyAgICAgICAgICAgIHV0aWxzLmNvbm5lY3Rfc2VydmVyKHNl bGYudGVzdGVyKQorCisgICAgICAgIGlmIHNlcnZlcl9jb25uZWN0X3Jlc3Bv bnNlWydkYXRhJ11bJ2Nvbm5lY3RlZCddOgorICAgICAgICAgICAgZGF0YSA9 IHsKKyAgICAgICAgICAgICAgICAiZGF0YWNsIjogYWR2YW5jZV9jb25maWdf ZGF0YVsndGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWzBdCisgICAgICAgICAg ICAgICAgWyd0ZXN0X3ByaXZpbGVnZXNfYWNsJ10sCisgICAgICAgICAgICAg ICAgImRhdGNvbm5saW1pdCI6IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAgICAg ICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVswXVsndGVz dF9jb25uX2xpbWl0J10sCisgICAgICAgICAgICAgICAgImRhdG93bmVyIjog YWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAgICAgICAgIFsndGVzdF9h ZGRfZGF0YWJhc2VfZGF0YSddWzBdWyd0ZXN0X293bmVyJ10sCisgICAgICAg ICAgICAgICAgImRlZmZ1bmNhY2wiOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisg ICAgICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1b J3Rlc3RfZnVuX2FjbCddLAorICAgICAgICAgICAgICAgICJkZWZzZXFhY2wi OiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgWyd0ZXN0 X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rlc3Rfc2VxX2FjbCddLAorICAg ICAgICAgICAgICAgICJkZWZ0YmxhY2wiOiBhZHZhbmNlX2NvbmZpZ19kYXRh CisgICAgICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11b MF1bJ3Rlc3RfdGJsX2FjbCddLAorICAgICAgICAgICAgICAgICJkZWZ0eXBl YWNsIjogYWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAgICAgICAgIFsn dGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3R5cGVfYWNsJ10s CisgICAgICAgICAgICAgICAgImVuY29kaW5nIjogYWR2YW5jZV9jb25maWdf ZGF0YQorICAgICAgICAgICAgICAgIFsndGVzdF9hZGRfZGF0YWJhc2VfZGF0 YSddWzBdWyd0ZXN0X2VuY29kaW5nJ10sCisgICAgICAgICAgICAgICAgIm5h bWUiOiBzdHIodXVpZC51dWlkNCgpKVsxOjhdLAorICAgICAgICAgICAgICAg ICJwcml2aWxlZ2VzIjogYWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAg ICAgICAgIFsndGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3By aXZpbGVnZXMnXSwKKyAgICAgICAgICAgICAgICAic2VjdXJpdGllcyI6IGFk dmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRk X2RhdGFiYXNlX2RhdGEnXVswXVsndGVzdF9zZWN1cml0aWVzJ10sCisgICAg ICAgICAgICAgICAgInZhcmlhYmxlcyI6IGFkdmFuY2VfY29uZmlnX2RhdGEK KyAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVsw XVsndGVzdF92YXJpYWJsZXMnXQorICAgICAgICAgICAgfQorCisgICAgICAg ICAgICBkYl9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51cmwg KyBzdHIoc2VydmVyX2dyb3VwKSArICIvIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsgc2VydmVyX2lkICsgIi8iLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicp CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZGJfcmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKKyAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBq c29uLmxvYWRzKGRiX3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisgICAgICAg ICAgICB1dGlscy53cml0ZV9kYl9wYXJlbnRfaWQocmVzcG9uc2VfZGF0YSkK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgJ3BhcmVudF9pZC5wa2wn IGZpbGUgd2hpY2ggaXMgY3JlYXRlZCBpbgorICAgICAgICBzZXR1cCgpIGZ1 bmN0aW9uLiBBbHNvIHRoaXMgZnVuY3Rpb24gbG9nb3V0IHRoZSB0ZXN0IGNs aWVudAorCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisK KyAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxlKCkKKyAgICAg ICAgdXRpbHMubG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQor CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjIxOTA1YgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5weQpAQCAtMCww ICsxLDcwIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRt aW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9y dCBqc29uCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQg Y29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9y dCB0ZXN0X2dldG5vZGVzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBp bXBvcnQgZ2V0X2lkcworCisKK2NsYXNzIERhdGFiYXNlRGVsZXRlVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdp bGwgZGVsZXRlIHRoZSBkYXRhYmFzZSB1bmRlciBsYXN0IGFkZGVkIHNlcnZl ci4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hp bmcgZGVmYXVsdCBVUkwgZm9yIGRhdGFiYXNlIG5vZGUuCisgICAgICAgICgn Q2hlY2sgRGF0YWJhc2VzIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2Vy L2RhdGFiYXNlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZv cm0gdGhlIHRocmVlIHRhc2tzCisgICAgICAgICAxLiBMb2dpbiB0byB0ZXN0 IGNsaWVudAorICAgICAgICAgMi4gQWRkIHRoZSB0ZXN0IHNlcnZlcgorICAg ICAgICAgMy4gQ29ubmVjdCB0byBzZXJ2ZXIKKworICAgICAgICA6cmV0dXJu OiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgIHV0aWxzLmxvZ2luX3Rl c3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQorICAgICAgICAjIEZpcnN0bHks IGFkZCB0aGUgc2VydmVyCisgICAgICAgIHV0aWxzLmFkZF9zZXJ2ZXIoc2Vs Zi50ZXN0ZXIpCisgICAgICAgICMgU2Vjb25kbHksIGNvbm5lY3QgdG8gc2Vy dmVyL2RhdGFiYXNlCisgICAgICAgIHV0aWxzLmNvbm5lY3Rfc2VydmVyKHNl bGYudGVzdGVyKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSBkYXRhYmFzZS4i IiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKyAgICAgICAgc2Vy dmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9IGFs bF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRh Wyd0ZXN0X3NlcnZlcl9ncm91cCddCisgICAgICAgIGRiX2NvbiA9IHRlc3Rf Z2V0bm9kZXMobm9kZT1zZWxmKQorICAgICAgICBpZiBsZW4oZGJfY29uKSA9 PSAwOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBkYXRhYmFz ZShzKSB0byBkZWxldGUhISEiKQorICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihz ZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorCisgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShy ZXNwb25zZV9kYXRhWydzdWNjZXNzJ10sIDEpCisKKyAgICBkZWYgdGVhckRv d24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGRlbGV0ZXMgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxlIHdoaWNoIGlzIGNy ZWF0ZWQgaW4KKyAgICAgICAgc2V0dXAoKSBmdW5jdGlvbi4gQWxzbyB0aGlz IGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBjbGllbnQKKworICAgICAgICA6 cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgIHV0aWxzLmRl bGV0ZV9wYXJlbnRfaWRfZmlsZSgpCisgICAgICAgIHV0aWxzLmxvZ291dF90 ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKKwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3Rlc3RzL3Rlc3RfZGJfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3Rf ZGJfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmUwN2ZiYmEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVz dF9kYl9nZXQucHkKQEAgLTAsMCArMSw2NyBAQAorIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1w b3J0IGNvbmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBp bXBvcnQgdGVzdF9nZXRub2RlcworZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRp bHMgaW1wb3J0IGdldF9pZHMKKworCitjbGFzcyBEYXRhYmFzZXNHZXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisgICAgVGhpcyBj bGFzcyB3aWxsIGZldGNoIGRhdGFiYXNlIGFkZGVkIHVuZGVyIGxhc3QgYWRk ZWQgc2VydmVyLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gWworICAg ICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2Rl LgorICAgICAgICAoJ0NoZWNrIERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3Qo dXJsPScvYnJvd3Nlci9kYXRhYmFzZS9vYmovJykpCisgICAgXQorCisgICAg ZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiBwZXJmb3JtIHRoZSB0aHJlZSB0YXNrcworICAgICAgICAgMS4g TG9naW4gdG8gdGVzdCBjbGllbnQKKyAgICAgICAgIDIuIEFkZCB0aGUgdGVz dCBzZXJ2ZXIKKyAgICAgICAgIDMuIENvbm5lY3QgdG8gc2VydmVyCisKKyAg ICAgICAgOnJldHVybjogTm9uZQorICAgICAgICAiIiIKKworICAgICAgICB1 dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKKyAgICAg ICAgIyBGaXJzdGx5LCBhZGQgdGhlIHNlcnZlcgorICAgICAgICB1dGlscy5h ZGRfc2VydmVyKHNlbGYudGVzdGVyKQorICAgICAgICAjIFNlY29uZGx5LCBj b25uZWN0IHRvIHNlcnZlci9kYXRhYmFzZQorICAgICAgICB1dGlscy5jb25u ZWN0X3NlcnZlcihzZWxmLnRlc3RlcikKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFk ZGVkIGRhdGFiYXNlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRz KCkKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAg ICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc3J2X2dy cCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAg ICAgZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisgICAgICAg IGlmIGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoK KyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYu dXJsICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsg c3RyKGRiX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisK KyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlICdwYXJlbnRfaWQucGtsJyBm aWxlIHdoaWNoIGlzIGNyZWF0ZWQgaW4KKyAgICAgICAgc2V0dXAoKSBmdW5j dGlvbi4gQWxzbyB0aGlzIGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBjbGll bnQKKworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisg ICAgICAgIHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCisgICAgICAg IHV0aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy90ZXN0cy90ZXN0X2RiX3B1dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi41ZDM2NDAwCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CkBAIC0wLDAgKzEsNzYgQEAKKyMg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIwor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KKworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz Citmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YSwg YWR2YW5jZV9jb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9k ZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2Zyb20gcmVncmVzc2lvbi50ZXN0 X3V0aWxzIGltcG9ydCBnZXRfaWRzCisKKworY2xhc3MgRGF0YWJhc2VzVXBk YXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAg IFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdGhlIGRhdGFiYXNlIHVuZGVyIGxh c3QgYWRkZWQgc2VydmVyLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFz ZSBub2RlLgorICAgICAgICAoJ0NoZWNrIERhdGFiYXNlcyBOb2RlJywgZGlj dCh1cmw9Jy9icm93c2VyL2RhdGFiYXNlL29iai8nKSkKKyAgICBdCisKKyAg ICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHBlcmZvcm0gdGhlIHRocmVlIHRhc2tzCisgICAgICAgICAx LiBMb2dpbiB0byB0ZXN0IGNsaWVudAorICAgICAgICAgMi4gQWRkIHRoZSB0 ZXN0IHNlcnZlcgorICAgICAgICAgMy4gQ29ubmVjdCB0byBzZXJ2ZXIKKwor ICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAg IHV0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQorICAg ICAgICAjIEZpcnN0bHksIGFkZCB0aGUgc2VydmVyCisgICAgICAgIHV0aWxz LmFkZF9zZXJ2ZXIoc2VsZi50ZXN0ZXIpCisgICAgICAgICMgU2Vjb25kbHks IGNvbm5lY3QgdG8gc2VydmVyL2RhdGFiYXNlCisgICAgICAgIHV0aWxzLmNv bm5lY3Rfc2VydmVyKHNlbGYudGVzdGVyKQorCisgICAgZGVmIHJ1blRlc3Qo c2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRl IHRoZSBjb21tZW50cyBmaWVsZCBvZiBkYXRhYmFzZS4iIiIKKworICAgICAg ICBhbGxfaWQgPSBnZXRfaWRzKCkKKyAgICAgICAgc2VydmVyX2lkID0gYWxs X2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1b MF0KKyAgICAgICAgdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisgICAgICAg IHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQor CisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiY29tbWVudHMiOiBh ZHZhbmNlX2NvbmZpZ19kYXRhWyJ0ZXN0X2RiX3VwZGF0ZV9kYXRhIl1bMF0K KyAgICAgICAgICAgIFsidGVzdF9jb21tZW50Il0sCisgICAgICAgICAgICAi aWQiOiBkYl9pZAorICAgICAgICB9CisKKyAgICAgICAgcHV0X3Jlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucHV0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsg Jy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAg ICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxl IHdoaWNoIGlzIGNyZWF0ZWQgaW4KKyAgICAgICAgc2V0dXAoKSBmdW5jdGlv bi4gQWxzbyB0aGlzIGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBjbGllbnQK KworICAgICAgICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAg ICAgIHV0aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCisgICAgICAgIHV0 aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKKwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9fX2luaXRfXy5weQppbmRl eCAyOGNkYjk0Li41NWEzYTE3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9fX2luaXRfXy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy9fX2luaXRfXy5weQpAQCAtMTIsNCArMTIsNCBAQCBmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y CiAKIGNsYXNzIFNlcnZlckdlbmVyYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBwcmlu dCAoIkluIFNlcnZlckdlbmVyYXRlVGVzdENhc2UuLi4iKQorICAgICAgICBy ZXR1cm4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy90ZXN0X3NlcnZlcl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9hZGQu cHkKaW5kZXggMGFmMTNkMy4uMzU5MmNmMiAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVz dF9zZXJ2ZXJfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weQpA QCAtOSw0NSArOSw0NyBAQAogCiBpbXBvcnQganNvbgogCi1mcm9tIHBnYWRt aW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RD YXNlCi1mcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0 YQorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiAKIAotY2xhc3MgU2VydmVyc0FkZFRlc3RDYXNlKExvZ2luVGVz dENhc2UpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2lsbCBhZGQgdGhl IHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAgYW5kIHZlcmlm eSB3aXRoCi0gICAgc2VydmVyJ3MgbmFtZS4KLSAgICAiIiIKLQotICAgIHBy aW9yaXR5ID0gNAorY2xhc3MgU2VydmVyc0FkZFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0aGUg c2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCiAKICAg ICBzY2VuYXJpb3MgPSBbCiAgICAgICAgICMgRmV0Y2ggdGhlIGRlZmF1bHQg dXJsIGZvciBzZXJ2ZXIgb2JqZWN0CiAgICAgICAgICgnRGVmYXVsdCBTZXJ2 ZXIgTm9kZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8n KSkKICAgICBdCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICBkZWYg c2V0VXAoc2VsZik6CiAgICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgYWRkIHRoZSBzZXJ2ZXIgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIg Z3JvdXAuCi0gICAgICAgIFZlcmlmeSB0aGUgYWRkZWQgc2VydmVyIHdpdGgg cmVzcG9uc2UgY29kZSBhcyB3ZWxsIGFzIHNlcnZlciBuYW1lLgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIGxvZ2luIHRoZSB0ZXN0IGFjY291bnQgYmVmb3Jl IHJ1bm5pbmcgdGhlIGxvZ291dAorICAgICAgICB0ZXN0IGNhc2UKICAgICAg ICAgIiIiCiAKLSAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0 X3NlcnZlcl9ncm91cCddCi0KLSAgICAgICAgZm9yIHNydiBpbiBjb25maWdf ZGF0YVsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXToKLSAgICAgICAgICAg IGRhdGEgPSB7Im5hbWUiOiBzcnZbJ3Rlc3RfbmFtZSddLAotICAgICAgICAg ICAgICAgICAgICAiY29tbWVudCI6ICIiLAotICAgICAgICAgICAgICAgICAg ICAiaG9zdCI6IHNydlsndGVzdF9ob3N0J10sCi0gICAgICAgICAgICAgICAg ICAgICJwb3J0Ijogc3J2Wyd0ZXN0X2RiX3BvcnQnXSwKLSAgICAgICAgICAg ICAgICAgICAgImRiIjogc3J2Wyd0ZXN0X21haW50ZW5hbmNlX2RiJ10sCi0g ICAgICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6IHNydlsndGVzdF9kYl91 c2VybmFtZSddLAotICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICIiLAot ICAgICAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsndGVzdF9zc2xt b2RlJ119CisgICAgICAgIHV0aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHNl bGYudGVzdGVyKQogCi0gICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0 cihzcnZfZ3JwKSArICIvIgorICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0aGUgc2VydmVyIHVu ZGVyIGRlZmF1bHQgc2VydmVyIGdyb3VwLiIiIgogCi0gICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsLCBkYXRhPWpzb24uZHVt cHMoZGF0YSksCisgICAgICAgIHNlcnZlcl9ncm91cCwgY29uZmlnX2RhdGEs IHBpY2tsZV9pZF9kaWN0ID0gdXRpbHMuZ2V0X2NvbmZpZ19kYXRhKCkKKyAg ICAgICAgZm9yIHNlcnZlcl9kYXRhIGluIGNvbmZpZ19kYXRhOgorICAgICAg ICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwgc2VydmVy X2dyb3VwKQorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w b3N0KHVybCwgZGF0YT1qc29uLmR1bXBzKHNlcnZlcl9kYXRhKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5 cGU9J2h0bWwvanNvbicpCisKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAgICAgcmVz cGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEpCi0gICAgICAgICAg ICBzZWxmLmFzc2VydFRydWUocmVzcGRhdGFbJ25vZGUnXVsnbGFiZWwnXSwg c3J2Wyd0ZXN0X25hbWUnXSkKKworICAgICAgICAgICAgcmVzcG9uc2VfZGF0 YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICAg ICAgICAgIHV0aWxzLndyaXRlX3BhcmVudF9pZChyZXNwb25zZV9kYXRhLCBw aWNrbGVfaWRfZGljdCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUg J3BhcmVudF9pZC5wa2wnIGZpbGUgd2hpY2ggaXMgY3JlYXRlZCBpbgorICAg ICAgICBzZXR1cCgpIGZ1bmN0aW9uLiBBbHNvIHRoaXMgZnVuY3Rpb24gbG9n b3V0IHRoZSB0ZXN0IGNsaWVudAorCisgICAgICAgIDpyZXR1cm46IE5vbmUK KyAgICAgICAgIiIiCisKKyAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9p ZF9maWxlKCkKKyAgICAgICAgdXRpbHMubG9nb3V0X3Rlc3Rlcl9hY2NvdW50 KHNlbGYudGVzdGVyKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVs ZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5CmluZGV4IDMyOWQ3 NGYuLjFlOWE2ODYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0 ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKQEAgLTksNDkg KzksNTYgQEAKIAogaW1wb3J0IGpzb24KIAotZnJvbSBwZ2FkbWluLmJyb3dz ZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQorZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz CiBmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQog CiAKLWNsYXNzIFNlcnZlcnNEZWxldGVUZXN0Q2FzZShMb2dpblRlc3RDYXNl KToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgc2VydmVy IG5vZGUgcHJlc2VudCBvbiB0aGUgb2JqZWN0IGJyb3dzZXIncyB0cmVlIG5v ZGUKLSAgICBieSByZXNwb25zZSBjb2RlLgotICAgICIiIgotICAgIHByaW9y aXR5ID0gNworY2xhc3MgU2VydmVyRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHRo ZSBsYXN0IHNlcnZlciBwcmVzZW50IHVuZGVyIHRyZWUgbm9kZS4iIiIKIAog ICAgIHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBGZXRjaGluZyB0aGUgZGVm YXVsdCB1cmwgZm9yIHNlcnZlciBub2RlCiAgICAgICAgICgnRGVmYXVsdCBT ZXJ2ZXIgTm9kZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29i ai8nKSkKICAgICBdCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICBk ZWYgc2V0VXAoc2VsZik6CiAgICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1 bmN0aW9uIHdpbGwgZ2V0IGFsbCBhdmFpbGFibGUgc2VydmVycyB1bmRlciBv YmplY3QgYnJvd3NlcgotICAgICAgICBhbmQgZGVsZXRlIHRoZSBzZXJ2ZXJz IHVzaW5nIHNlcnZlciBpZC4KKyAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJm b3JtIHRoZSB0d28gdGFza3MKKyAgICAgICAgIDEuIExvZ2luIHRvIHRlc3Qg Y2xpZW50CisgICAgICAgICAyLiBBZGQgdGhlIHRlc3Qgc2VydmVyCisKKyAg ICAgICAgOnJldHVybjogTm9uZQogICAgICAgICAiIiIKIAotICAgICAgICBz cnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKyAg ICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIp CisgICAgICAgICMgRmlyc3RseSwgYWRkIHRoZSBzZXJ2ZXIKKyAgICAgICAg dXRpbHMuYWRkX3NlcnZlcihzZWxmLnRlc3RlcikKIAotICAgICAgICBmb3Ig c3J2IGluIGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9jcmVkZW50aWFscydd OgorICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBm dW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxhYmxlIHNlcnZlcnMgdW5kZXIg b2JqZWN0IGJyb3dzZXIKKyAgICAgICAgYW5kIGRlbGV0ZSB0aGUgbGFzdCBz ZXJ2ZXIgdXNpbmcgc2VydmVyIGlkLiIiIgogCi0gICAgICAgICAgICBkYXRh ID0geyJuYW1lIjogc3J2Wyd0ZXN0X25hbWUnXSwKLSAgICAgICAgICAgICAg ICAgICAgImhvc3QiOiBzcnZbJ3Rlc3RfaG9zdCddLAotICAgICAgICAgICAg ICAgICAgICAicG9ydCI6IHNydlsndGVzdF9kYl9wb3J0J10sCi0gICAgICAg ICAgICAgICAgICAgICJkYiI6IHNydlsndGVzdF9tYWludGVuYW5jZV9kYidd LAotICAgICAgICAgICAgICAgICAgICAidXNlcm5hbWUiOiBzcnZbJ3Rlc3Rf ZGJfdXNlcm5hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAi IiwKLSAgICAgICAgICAgICAgICAgICAgInNzbG1vZGUiOiBzcnZbJ3Rlc3Rf c3NsbW9kZSddfQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rl c3Rfc2VydmVyX2dyb3VwJ10KKyAgICAgICAgdXJsID0gc2VsZi51cmwgKyBz dHIoc3J2X2dycCkgKyAiLyIKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQodXJsKQorICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgICAgICBpZiBsZW4o cmVzcG9uc2VfZGF0YSkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiTm8gc2VydmVyKHMpIHRvIGRlbGV0ZSEhISIpCiAKLSAgICAgICAg ICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgIi8iCisgICAg ICAgICMgRGVsZXRlIGxhc3Qgc2VydmVyCisgICAgICAgIHNlcnZlciA9IHJl c3BvbnNlX2RhdGFbLTFdCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZGVsZXRlKHVybCArIHN0cihzZXJ2ZXJbJ2lkJ10pKQorICAgICAgICBz ZWxmLmFzc2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAg ICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YS5kZWNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNl X2RhdGFbJ3N1Y2Nlc3MnXSwgMSkKIAotICAgICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5nZXQodXJsLCBkYXRhPWpzb24uZHVtcHMoZGF0YSks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy dFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgICAg IHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhKQorICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gZGVsZXRlcyB0aGUgJ3BhcmVudF9pZC5wa2wnIGZpbGUgd2hp Y2ggaXMgY3JlYXRlZCBpbgorICAgICAgICBzZXR1cCgpIGZ1bmN0aW9uLiBB bHNvIHRoaXMgZnVuY3Rpb24gbG9nb3V0IHRoZSB0ZXN0IGNsaWVudAogCi0g ICAgICAgICAgICBmb3Igc2VydmVyIGluIHJlc3BkYXRhOgotICAgICAgICAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVybCArIGpz b24uZHVtcHMoc2VydmVyWydpZCddKSkKLSAgICAgICAgICAgICAgICBzZWxm LmFzc2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAg ICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcGRhdGFb J3N1Y2Nlc3MnXSwgMSkKKyAgICAgICAgOnJldHVybjogTm9uZQorICAgICAg ICAiIiIKKyAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxlKCkK KyAgICAgICAgdXRpbHMubG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVz dGVyKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv dGVzdF9zZXJ2ZXJfZ2V0LnB5CmluZGV4IDA1MDg0M2UuLmFiZjQ5YTMgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0 X3NlcnZlcl9nZXQucHkKQEAgLTcsNDMgKzcsNTMgQEAKICMKICMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotaW1wb3J0IGpzb24KLQotZnJv bSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9n aW5UZXN0Q2FzZQorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCiBmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9y dCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1w b3J0IGdldF9pZHMKIAogCi1jbGFzcyBTZXJ2ZXJzR2V0VGVzdENhc2UoTG9n aW5UZXN0Q2FzZSk6CitjbGFzcyBTZXJ2ZXJzR2V0VGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2lsbCBj aGVjayBzZXJ2ZXIgbm9kZSBwcmVzZW50IG9uIHRoZSBvYmplY3QgYnJvd3Nl cidzIHRyZWUgbm9kZQorICAgIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBhZGRl ZCBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdyb3VwCiAgICAgYnkg cmVzcG9uc2UgY29kZS4KICAgICAiIiIKIAotICAgIHByaW9yaXR5ID0gNQot CiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZldGNoIHRoZSBkZWZh dWx0IHVybCBmb3Igc2VydmVyIG5vZGUKICAgICAgICAgKCdEZWZhdWx0IFNl cnZlciBOb2RlIHVybCcsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2Jq LycpKQogICAgIF0KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgIGRl ZiBzZXRVcChzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCBnZXQgYWxsIGF2YWlsYWJsZSBzZXJ2ZXJzIHByZXNlbnQg dW5kZXIKLSAgICAgICAgb2JqZWN0IGJyb3dzZXIuCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gcGVyZm9ybSB0aGUgdHdvIHRhc2tzCisgICAgICAgICAxLiBM b2dpbiB0byB0ZXN0IGNsaWVudAorICAgICAgICAgMi4gQWRkIHRoZSB0ZXN0 IHNlcnZlcgorCisgICAgICAgIDpyZXR1cm46IE5vbmUKICAgICAgICAgIiIi CiAKKyAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoc2VsZi50 ZXN0ZXIpCisgICAgICAgIHV0aWxzLmFkZF9zZXJ2ZXIoc2VsZi50ZXN0ZXIp CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgYWRkZWQgc2VydmVycyB0byBvYmpl Y3QgYnJvd3Nlci4gIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygp CisgICAgICAgIHNlcnZlcl9pZHMgPSBhbGxfaWRbInNpZCJdCiAgICAgICAg IHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQog Ci0gICAgICAgIGZvciBzcnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVy X2NyZWRlbnRpYWxzJ106Ci0gICAgICAgICAgICBkYXRhID0geyJuYW1lIjog c3J2Wyd0ZXN0X25hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgImhvc3Qi OiBzcnZbJ3Rlc3RfaG9zdCddLAotICAgICAgICAgICAgICAgICAgICAicG9y dCI6IHNydlsndGVzdF9kYl9wb3J0J10sCi0gICAgICAgICAgICAgICAgICAg ICJkYiI6IHNydlsndGVzdF9tYWludGVuYW5jZV9kYiddLAotICAgICAgICAg ICAgICAgICAgICAidXNlcm5hbWUiOiBzcnZbJ3Rlc3RfZGJfdXNlcm5hbWUn XSwKLSAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAiIiwKLSAgICAgICAg ICAgICAgICAgICAgInNzbG1vZGUiOiBzcnZbJ3Rlc3Rfc3NsbW9kZSddfQot Ci0gICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0cihzcnZfZ3JwKSAr ICIvIgotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo dXJsLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKKyAgICAgICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2 ZXJfaWRzOgorICAgICAgICAgICAgdXJsID0gInswfXsxfS97Mn0iLmZvcm1h dChzZWxmLnVybCwgc3J2X2dycCwgc2VydmVyX2lkKQorICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsLCBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3du KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBk ZWxldGVzIHRoZSAncGFyZW50X2lkLnBrbCcgZmlsZSB3aGljaCBpcyBjcmVh dGVkIGluCisgICAgICAgIHNldHVwKCkgZnVuY3Rpb24uIEFsc28gdGhpcyBm dW5jdGlvbiBsb2dvdXQgdGhlIHRlc3QgY2xpZW50CisKKyAgICAgICAgOnJl dHVybjogTm9uZQorICAgICAgICAiIiIKKyAgICAgICAgdXRpbHMuZGVsZXRl X3BhcmVudF9pZF9maWxlKCkKKyAgICAgICAgdXRpbHMubG9nb3V0X3Rlc3Rl cl9hY2NvdW50KHNlbGYudGVzdGVyKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9z ZXJ2ZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CmluZGV4IDMw NmJiMDMuLmUyY2QzMjkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1 dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKQEAgLTksNTcgKzks NjYgQEAKIAogaW1wb3J0IGpzb24KIAotZnJvbSBwZ2FkbWluLmJyb3dzZXIu dGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQorZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQogCiAK LWNsYXNzIFNlcnZlcnNVcGRhdGVUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToK LSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgc2VydmVyIG5v ZGUgcHJlc2VudCBvbiB0aGUgb2JqZWN0IGJyb3dzZXIncyB0cmVlIG5vZGUK LSAgICBieSByZXNwb25zZSBjb2RlLgotICAgICIiIgotCi0gICAgcHJpb3Jp dHkgPSA2CitjbGFzcyBTZXJ2ZXJVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgc2Vy dmVyJ3MgY29tbWVudCBmaWVsZC4gIiIiCiAKICAgICBzY2VuYXJpb3MgPSBb CiAgICAgICAgICMgRmV0Y2hpbmcgdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2 ZXIgbm9kZQogICAgICAgICAoJ0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywg ZGljdCh1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJykpCiAgICAgXQogCi0g ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgZWRpdCBhbmQgdXBkYXRlIHRoZSBzZXJ2ZXIn cyBjb21tZW50IGZpZWxkCi0gICAgICAgIGJ5IHRoZSBzZXJ2ZXIgaWQuCisg ICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiBwZXJmb3JtIHRoZSBmb3VyIHRhc2tzCisgICAgICAgICAx LiBMb2dpbiB0byB0ZXN0IGNsaWVudAorICAgICAgICAgMi4gQWRkIHRoZSB0 ZXN0IHNlcnZlcgorICAgICAgICAgMy4gR2V0IHRoZSBzZXJ2ZXIKKyAgICAg ICAgIDQuIENvbm5lY3QgdG8gc2VydmVyCiAKLSAgICAgICAgc3J2X2dycCA9 IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisgICAgICAgIDpy ZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCiAKLSAgICAgICAgZm9yIHNydiBp biBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXToKKyAg ICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIp CisgICAgICAgICMgRmlyc3RseSwgYWRkIHRoZSBzZXJ2ZXIKKyAgICAgICAg dXRpbHMuYWRkX3NlcnZlcihzZWxmLnRlc3RlcikKKyAgICAgICAgIyBHZXQg dGhlIHNlcnZlcgorICAgICAgICB1dGlscy5nZXRfc2VydmVyKHNlbGYudGVz dGVyKQorICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVyCisgICAgICAgIHNl bGYuc2VydmVyX2Nvbm5lY3QsIHNlbGYuc2VydmVyX2dyb3VwLCBzZWxmLnNl cnZlcl9pZCA9IFwKKyAgICAgICAgICAgIHV0aWxzLmNvbm5lY3Rfc2VydmVy KHNlbGYudGVzdGVyKQorICAgICAgICBpZiBsZW4oc2VsZi5zZXJ2ZXJfY29u bmVjdCkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8g U2VydmVyKHMpIGNvbm5lY3RlZCB0byB1cGRhdGUhISEiKQogCi0gICAgICAg ICAgICBkYXRhID0geyJuYW1lIjogc3J2Wyd0ZXN0X25hbWUnXSwKLSAgICAg ICAgICAgICAgICAgICAgImhvc3QiOiBzcnZbJ3Rlc3RfaG9zdCddLAotICAg ICAgICAgICAgICAgICAgICAicG9ydCI6IHNydlsndGVzdF9kYl9wb3J0J10s Ci0gICAgICAgICAgICAgICAgICAgICJkYiI6IHNydlsndGVzdF9tYWludGVu YW5jZV9kYiddLAotICAgICAgICAgICAgICAgICAgICAidXNlcm5hbWUiOiBz cnZbJ3Rlc3RfZGJfdXNlcm5hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAg InJvbGUiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgInNzbG1vZGUiOiBz cnZbJ3Rlc3Rfc3NsbW9kZSddfQorICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgc2Vy dmVyJ3MgY29tbWVudCBmaWVsZC4gIiIiCiAKLSAgICAgICAgICAgIHVybCA9 IHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgIi8iCisgICAgICAgIGRhdGEg PSB7CisgICAgICAgICAgICAiY29tbWVudCI6CisgICAgICAgICAgICAgICAg Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX3VwZGF0ZV9kYXRhJ11bJ3Rlc3Rf Y29tbWVudCddLAorICAgICAgICAgICAgImlkIjogc2VsZi5zZXJ2ZXJfaWQK KyAgICAgICAgfQogCi0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLmdldCh1cmwsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKKyAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucHV0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2VsZi5zZXJ2 ZXJfZ3JvdXApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZl cl9pZCksIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICAg ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQotICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3Bv bnNlLmRhdGEpCisgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRz KHB1dF9yZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgICAgICBzZWxmLmFz c2VydFRydWUocmVzcG9uc2VfZGF0YVsnc3VjY2VzcyddLCAxKQogCi0gICAg ICAgICAgICBmb3Igc2VydmVyIGluIHJlc3BkYXRhOgorICAgIGRlZiB0ZWFy RG93bihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gZGVsZXRlcyB0aGUgJ3BhcmVudF9pZC5wa2wnIGZpbGUgd2hpY2ggaXMg Y3JlYXRlZCBpbgorICAgICAgICBzZXR1cCgpIGZ1bmN0aW9uLiBBbHNvIHRo aXMgZnVuY3Rpb24gbG9nb3V0IHRoZSB0ZXN0IGNsaWVudAogCi0gICAgICAg ICAgICAgICAgdXJsID0gc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAiLyIg KyBqc29uLmR1bXBzKHNlcnZlclsnaWQnXSkKKyAgICAgICAgOnJldHVybjog Tm9uZQorICAgICAgICAiIiIKIAotICAgICAgICAgICAgICAgIGZvciBzZXJ2 ZXIgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX3VwZGF0ZV9kYXRhJ106 Ci0gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7ImNvbW1lbnQiOiBzZXJ2 ZXJbJ3Rlc3RfY29tbWVudCddfQotICAgICAgICAgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnB1dCh1cmwsIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICAg ICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKLSAgICAgICAgICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29u LmxvYWRzKHJlc3BvbnNlLmRhdGEpCi0gICAgICAgICAgICAgICAgICAgIHNl bGYuYXNzZXJ0VHJ1ZShyZXNwZGF0YVsnc3VjY2VzcyddLCAxKQorICAgICAg ICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQorICAgICAgICB1dGls cy5sb2dvdXRfdGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMv X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggOWZhYmVkOS4uN2ZkZDVjNyAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5weQpAQCAtMTIsNCArMTIs NCBAQCBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCiAKIGNsYXNzIFNHR2VuZXJhdGVUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg IHByaW50ICgiSW4gU0dHZW5lcmF0ZVRlc3RDYXNlLi4uIikKKyAgICAgICAg cmV0dXJuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL3Rl c3Rfc2dfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3Rlc3RzL3Rlc3Rfc2dfYWRkLnB5CmluZGV4IGU3MGJiNjUuLjA3YmJl OTYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy90ZXN0cy90ZXN0X3NnX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19hZGQucHkKQEAg LTksMjggKzksNDAgQEAKIAogaW1wb3J0IGpzb24KIAotZnJvbSBwZ2FkbWlu LmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2Fz ZQorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiBmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdf ZGF0YQogCiAKLWNsYXNzIFNnTm9kZVRlc3RDYXNlKExvZ2luVGVzdENhc2Up OgorY2xhc3MgU2dOb2RlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICIiIgogICAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgYXZhaWxhYmxl IHNlcnZlciBncm91cHMgaW4gcGdBZG1pbi4KICAgICAiIiIKIAotICAgIHBy aW9yaXR5ID0gMQotCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZl dGNoaW5nIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVyIGdyb3VwIG5vZGUK ICAgICAgICAgKCdDaGVjayBTZXJ2ZXIgR3JvdXAgTm9kZScsIGRpY3QodXJs PScvYnJvd3Nlci9zZXJ2ZXItZ3JvdXAvb2JqLycpKQogICAgIF0KIAorICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gbG9naW4gdGhlIHRlc3QgYWNjb3VudCBiZWZvcmUgcnVubmlu ZyB0aGUgbG9nb3V0CisgICAgICAgIHRlc3QgY2FzZQorICAgICAgICAiIiIK KworICAgICAgICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChzZWxmLnRl c3RlcikKKwogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYXZhaWxhYmxlIHNlcnZlciBncm91 cHMuIiIiCiAKLSAgICAgICAgaSA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZl cl9ncm91cCddCi0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5n ZXQoc2VsZi51cmwgKyBzdHIoaSksIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JykKKyAgICAgICAgc2VydmVyX2dyb3VwX2lkID0gY29uZmlnX2RhdGFbJ3Rl c3Rfc2VydmVyX2dyb3VwJ10KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc2VydmVyX2dyb3VwX2lkKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVzcGRhdGEgPSBqc29u LmxvYWRzKHJlc3BvbnNlLmRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZShyZXNwZGF0YVsnaWQnXSwgaSkKKyAgICAgICAgcmVzcG9uc2VfZGF0YSA9 IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSkKKyAg ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlX2RhdGFbJ2lkJ10sIHNl cnZlcl9ncm91cF9pZCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiBsb2dvdXQgdGhlIHRlc3QgYWNjb3Vu dCAiIiIKKworICAgICAgICB1dGlscy5sb2dvdXRfdGVzdGVyX2FjY291bnQo c2VsZi50ZXN0ZXIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0 cy9fX2luaXRfXy5weQppbmRleCAyMzgxZWZkLi4zZmFiNmZlIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL19faW5pdF9fLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvX19pbml0X18ucHkKQEAg LTEyLDQgKzEyLDQgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgogCiBjbGFzcyBCcm93c2VyR2VuZXJhdGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgIHByaW50ICgiSW4gQnJvd3NlckdlbmVyYXRlVGVz dENhc2UuLi4iKQorICAgICAgICByZXR1cm4KXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rl c3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNzd29yZC5weQppbmRleCBkZWRi N2Q5Li44YjQ3ZTI1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFuZ2VfcGFzc3dvcmQucHkKQEAg LTksMTkgKzksMTggQEAKIAogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWlu LmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2Fz ZQorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmln X2RhdGEKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscwogCiAKLWNsYXNzIENoYW5nZVBhc3N3b3JkVGVzdENhc2UoTG9naW5U ZXN0Q2FzZSk6CitjbGFzcyBDaGFuZ2VQYXNzd29yZFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKICAgICAiIiIKICAgICBUaGlzIGNsYXNzIHZhbGlk YXRlcyB0aGUgY2hhbmdlIHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkKICAgICBi eSBkZWZpbmluZyBjaGFuZ2UgcGFzc3dvcmQgc2NlbmFyaW9zOyB3aGVyZSBk aWN0IG9mCiAgICAgcGFyYW1ldGVycyBkZXNjcmliZXMgdGhlIHNjZW5hcmlv IGFwcGVuZGVkIGJ5IHRlc3QgbmFtZS4KICAgICAiIiIKIAotICAgIHByaW9y aXR5ID0gMgotCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIFRoaXMg dGVzdGNhc2UgdmFsaWRhdGVzIGludmFsaWQgY29uZmlybWF0aW9uIHBhc3N3 b3JkCiAgICAgICAgICgnVGVzdENhc2UgZm9yIFZhbGlkYXRpbmcgSW5jb3Jy ZWN0X05ld19QYXNzd29yZCcsIGRpY3QoCkBAIC00OCw4ICs0Nyw3IEBAIGNs YXNzIENoYW5nZVBhc3N3b3JkVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CiAg ICAgICAgICAgICBuZXdfcGFzc3dvcmQ9JycsIG5ld19wYXNzd29yZF9jb25m aXJtPScnLAogICAgICAgICAgICAgcmVzcGRhdGE9J1Bhc3N3b3JkIG5vdCBw cm92aWRlZCcpKSwKIAotICAgICAgICAjIFRoaXMgdGVzdGNhc2UgdmFsaWRh dGVzIGlmIGN1cnJlbnQgZW50ZXJlZCBwYXNzd29yZAotICAgICAgICAjIGlz IGluY29ycmVjdAorICAgICAgICAjIFRoaXMgdGVzdGNhc2UgdmFsaWRhdGVz IGlmIGN1cnJlbnQgZW50ZXJlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QKICAg ICAgICAgKCdUZXN0Q2FzZSBmb3IgVmFsaWRhdGluZyBJbmNvcnJlY3RfQ3Vy cmVudF9QYXNzd29yZCcsIGRpY3QoCiAgICAgICAgICAgICBwYXNzd29yZD1z dHIodXVpZC51dWlkNCgpKVs0OjhdLAogICAgICAgICAgICAgbmV3X3Bhc3N3 b3JkPShjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMn XQpAQCAtNzAsNiArNjgsNyBAQCBjbGFzcyBDaGFuZ2VQYXNzd29yZFRlc3RD YXNlKExvZ2luVGVzdENhc2UpOgogICAgICAgICAgICAgICAgIFsndGVzdF9u ZXdfcGFzc3dvcmQnXSksCiAgICAgICAgICAgICByZXNwZGF0YT0nWW91IHN1 Y2Nlc3NmdWxseSBjaGFuZ2VkIHlvdXIgcGFzc3dvcmQuJykpLAogICAgICAg ICAoJ1JlYXNzaWduaW5nX1Bhc3N3b3JkJywgZGljdCgKKyAgICAgICAgICAg IHRlc3RfY2FzZT0ncmVhc3NpZ25pbmdfcGFzc3dvcmQnLAogICAgICAgICAg ICAgcGFzc3dvcmQ9KGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVk ZW50aWFscyddCiAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X25ld19w YXNzd29yZCddKSwKICAgICAgICAgICAgIG5ld19wYXNzd29yZD0oY29uZmln X2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KQEAgLTgxLDE0 ICs4MCw0NCBAQCBjbGFzcyBDaGFuZ2VQYXNzd29yZFRlc3RDYXNlKExvZ2lu VGVzdENhc2UpOgogCiAgICAgXQogCisgICAgZGVmIHNldFVwKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBsb2dpbiB0aGUg dGVzdCBhY2NvdW50IGJlZm9yZSBydW5uaW5nIHRoZSBsb2dvdXQKKyAgICAg ICAgdGVzdCBjYXNlCisgICAgICAgICIiIgorCisgICAgICAgIHV0aWxzLmxv Z2luX3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQorCiAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBj aGVjayBjaGFuZ2UgcGFzc3dvcmQgZnVuY3Rpb25hbGl0eS4iIiIKIAorICAg ICAgICAjIENoZWNrIGZvciAndGVzdF9jYXNlJyBleGlzdHMgaW4gc2VsZiBG b3IgcmVhc3NpZ25pbmcgdGhlIHBhc3N3b3JkLgorICAgICAgICAjIFBhc3N3 b3JkIGdldHMgY2hhbmdlIGluIGNoYW5nZSBwYXNzd29yZCB0ZXN0IGNhc2Uu CisgICAgICAgIGlmICd0ZXN0X2Nhc2UnIGluIGRpcihzZWxmKToKKyAgICAg ICAgICAgIGVtYWlsID0gXAorICAgICAgICAgICAgICAgIGNvbmZpZ19kYXRh WydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddWworICAgICAgICAgICAg ICAgICAgICAndGVzdF9sb2dpbl91c2VybmFtZSddCisgICAgICAgICAgICBw YXNzd29yZCA9IFwKKyAgICAgICAgICAgICAgICBjb25maWdfZGF0YVsncGdB ZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXVsKKyAgICAgICAgICAgICAgICAg ICAgJ3Rlc3RfbmV3X3Bhc3N3b3JkJ10KKyAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucG9zdCgnL2xvZ2luJywgZGF0YT1kaWN0KAorICAg ICAgICAgICAgICAgIGVtYWlsPWVtYWlsLCBwYXNzd29yZD1wYXNzd29yZCks IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKwogICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmdldCgnL2NoYW5nZScsIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbigncGdBZG1pbiA0IFBhc3N3 b3JkIENoYW5nZScsIHJlc3BvbnNlLmRhdGEpCisgICAgICAgIHNlbGYuYXNz ZXJ0SW4oJ3BnQWRtaW4gNCBQYXNzd29yZCBDaGFuZ2UnLCByZXNwb25zZS5k YXRhLmRlY29kZSgpKQorCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucG9zdCgnL2NoYW5nZScsIGRhdGE9ZGljdCgKICAgICAgICAgICAgIHBh c3N3b3JkPXNlbGYucGFzc3dvcmQsCiAgICAgICAgICAgICBuZXdfcGFzc3dv cmQ9c2VsZi5uZXdfcGFzc3dvcmQsCiAgICAgICAgICAgICBuZXdfcGFzc3dv cmRfY29uZmlybT1zZWxmLm5ld19wYXNzd29yZF9jb25maXJtKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRh LCByZXNwb25zZS5kYXRhKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYu cmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICBkZWYg dGVhckRvd24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1 bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBjbGllbnQKKworICAgICAgICA6cmV0 dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgIHV0aWxzLmxvZ291 dF90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weQppbmRleCA3YzJi Nzk2Li44ODU2NzAwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3RfbG9naW4ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci90ZXN0cy90ZXN0X2xvZ2luLnB5CkBAIC04LDkgKzgsOSBAQAogIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogaW1wb3J0IHV1aWQKLQogZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgogZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEK K2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwog CiAKIGNsYXNzIExvZ2luVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpA QCAtMjAsOCArMjAsNiBAQCBjbGFzcyBMb2dpblRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICBkZXNjcmliZSB0aGUgc2NlbmFyaW8gYXBwZW5k ZWQgYnkgdGVzdCBuYW1lLgogICAgICIiIgogCi0gICAgcHJpb3JpdHkgPSAw Ci0KICAgICBzY2VuYXJpb3MgPSBbCiAgICAgICAgICMgVGhpcyB0ZXN0IGNh c2UgdmFsaWRhdGVzIHRoZSBpbnZhbGlkL2luY29ycmVjdCBwYXNzd29yZAog ICAgICAgICAoJ1Rlc3RDYXNlIGZvciBDaGVja2luZyBJbnZhbGlkX1Bhc3N3 b3JkJywgZGljdCgKQEAgLTY3LDEzICs2NSwyOCBAQCBjbGFzcyBMb2dpblRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAg ICBbJ3Rlc3RfbG9naW5fdXNlcm5hbWUnXSksCiAgICAgICAgICAgICBwYXNz d29yZD0oY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxz J10KICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbG9naW5fcGFzc3dv cmQnXSksCi0gICAgICAgICAgICByZXNwZGF0YT0nWW91IGFyZSBjdXJyZW50 bHkgcnVubmluZyB2ZXJzaW9uJykpCisgICAgICAgICAgICByZXNwZGF0YT0n R3JhdmF0YXIgaW1hZ2UgZm9yICVzJyAlCisgICAgICAgICAgICAgICAgICAg ICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXQor ICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3VzZXJuYW1lJ10p KQogICAgIF0KIAorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgcGFz cworCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gY2hlY2tzIGxvZ2luIGZ1bmN0aW9uYWxpdHkuIiIiCiAKICAg ICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KCcvbG9naW4nLCBk YXRhPWRpY3QoCiAgICAgICAgICAgICBlbWFpbD1zZWxmLmVtYWlsLCBwYXNz d29yZD1zZWxmLnBhc3N3b3JkKSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAg c2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhKQor ICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNl LmRhdGEuZGVjb2RlKCd1dGY4JykpCisKKyAgICBkZWYgdGVhckRvd24oc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0 ZXMgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxlIHdoaWNoIGlzIGNyZWF0ZWQg aW4KKyAgICAgICAgc2V0dXAoKSBmdW5jdGlvbi4gQWxzbyB0aGlzIGZ1bmN0 aW9uIGxvZ291dCB0aGUgdGVzdCBjbGllbnQKKworICAgICAgICA6cmV0dXJu OiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgIHV0aWxzLmxvZ291dF90 ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dvdXQucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9nb3V0LnB5CmluZGV4IDg5NzFl NzIuLmMyY2NmOTQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dGVzdHMvdGVzdF9sb2dvdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci90ZXN0cy90ZXN0X2xvZ291dC5weQpAQCAtNywzOCArNywzMyBAQAogIwog IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1mcm9tIHBnYWRt aW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RD YXNlCi1mcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0 YQogCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKIAotY2xhc3MgTG9nb3V0VGVzdChMb2dpblRlc3RDYXNlKToK KworY2xhc3MgTG9nb3V0VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg IiIiCiAgICAgVGhpcyBjbGFzcyB2ZXJpZmllcyB0aGUgbG9nb3V0IGZ1bmN0 aW9uYWxpdHk7IHByb3ZpZGVkIHRoZSB1c2VyIGlzIGFscmVhZHkKICAgICBs b2dnZWQtaW4uIERpY3Rpb25hcnkgcGFyYW1ldGVycyBkZWZpbmUgdGhlIHNj ZW5hcmlvIGFwcGVuZGVkIGJ5IHRlc3QKICAgICBuYW1lLgogICAgICIiIgog Ci0gICAgcHJpb3JpdHkgPSAzCi0KICAgICBzY2VuYXJpb3MgPSBbCiAgICAg ICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGUgdGhlIGxvZ291dCBwYWdl CiAgICAgICAgICgnTG9nZ2luZyBPdXQnLCBkaWN0KHJlc3BkYXRhPSdSZWRp cmVjdGluZy4uLicpKQogICAgIF0KIAorICAgIGRlZiBzZXRVcChzZWxmKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhl IHRlc3QgYWNjb3VudCBiZWZvcmUgcnVubmluZyB0aGUgbG9nb3V0CisgICAg ICAgIHRlc3QgY2FzZQorICAgICAgICAiIiIKKworICAgICAgICB1dGlscy5s b2dpbl90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKKwogICAgIGRlZiBy dW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGNoZWNr cyB0aGUgbG9nb3V0IGZ1bmN0aW9uYWxpdHkuIiIiCiAKICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9sb2dvdXQnKQotICAgICAgICBz ZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEpCi0K LSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIgotICAgICAg ICBEZWZpbmluZyB0ZWFyIGRvd24gY2xhc3MsIHdoaWNoIHdpbGwgcnVuIGFm dGVyIGVhY2ggdGVzdCBtZXRob2QgZXhlY3V0ZS4KLSAgICAgICAgUmUtbG9n Z2luZyBpbiBhcyBmdXJ0aGVyIG1vZHVsZXMgcmVxdWlyZSBsb2dpbi4KLSAg ICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi50ZXN0ZXIucG9zdCgnL2xvZ2lu JywgZGF0YT1kaWN0KAotICAgICAgICAgICAgZW1haWw9KGNvbmZpZ19kYXRh WydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAg ICAgICAgWyd0ZXN0X2xvZ2luX3VzZXJuYW1lJ10pLAotICAgICAgICAgICAg cGFzc3dvcmQ9KGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50 aWFscyddCi0gICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3Bh c3N3b3JkJ10pKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICBz ZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEuZGVj b2RlKCd1dGY4JykpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkKaW5kZXggMDMw YjE4Mi4uMjZkZDgwYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNzd29yZC5weQpAQCAt MTEsNiArMTEsNyBAQCBpbXBvcnQgdXVpZAogCiBmcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jl c3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNz aW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAogY2xhc3MgUmVz ZXRQYXNzd29yZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKQEAgLTE5 LDcgKzIwLDYgQEAgY2xhc3MgUmVzZXRQYXNzd29yZFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKICAgICBzY2VuYXJpb3M7IEVhY2ggZGljdCBwYXJh bWV0ZXIgZGVzY3JpYmUgYSBzY2VuYXJpbyBhcHBlbmRlZCBieQogICAgIHRl c3QgbmFtZS4KICAgICAiIiIKLSAgICBwcmlvcml0eSA9IDEKIAogICAgIHNj ZW5hcmlvcyA9IFsKICAgICAgICAgIyBUaGlzIHRlc3QgY2FzZSB2YWxpZGF0 ZXMgdGhlIGVtcHR5IGVtYWlsIGZpZWxkCkBAIC0zNywxMiArMzcsMjkgQEAg Y2xhc3MgUmVzZXRQYXNzd29yZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgIFsndGVzdF9sb2dpbl91c2VybmFtZSddLCByZXNw ZGF0YT0ncGdBZG1pbiA0JykpCiAgICAgXQogCisgICAgZGVmIHNldFVwKHNl bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBsb2dp biB0aGUgdGVzdCBhY2NvdW50IGJlZm9yZSBydW5uaW5nIHRoZSBsb2dvdXQK KyAgICAgICAgdGVzdCBjYXNlCisgICAgICAgICIiIgorCisgICAgICAgIHV0 aWxzLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KHNlbGYudGVzdGVyKQorCiAgICAg ZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24g Y2hlY2tzIHJlc2V0IHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkuIiIiCiAKICAg ICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9yZXNldCcpCi0g ICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1JlY292ZXIgcGdBZG1pbiA0IFBhc3N3 b3JkJywgcmVzcG9uc2UuZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbign UmVjb3ZlciBwZ0FkbWluIDQgUGFzc3dvcmQnLCByZXNwb25zZS5kYXRhLmRl Y29kZSgpKQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qo CiAgICAgICAgICAgICAnL3Jlc2V0JywgZGF0YT1kaWN0KGVtYWlsPXNlbGYu ZW1haWwpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQot ICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNl LmRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5yZXNwZGF0YSwg cmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gbG9n b3V0IHRoZSB0ZXN0IGNsaWVudAorCisgICAgICAgIDpyZXR1cm46IE5vbmUK KyAgICAgICAgIiIiCisKKyAgICAgICAgdXRpbHMubG9nb3V0X3Rlc3Rlcl9h Y2NvdW50KHNlbGYudGVzdGVyKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v dXRpbHMvcm91dGUucHkgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQpp bmRleCBmYjlkZTY5Li5hMmNkMWViIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi91dGlscy9yb3V0ZS5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0 ZS5weQpAQCAtNTIsOCArNTIsMTAgQEAgY2xhc3MgVGVzdHNHZW5lcmF0b3JS ZWdpc3RyeShBQkNNZXRhKToKICAgICAgICAgZnJvbSB3ZXJremV1Zy51dGls cyBpbXBvcnQgZmluZF9tb2R1bGVzCiAKICAgICAgICAgZm9yIG1vZHVsZV9u YW1lIGluIGZpbmRfbW9kdWxlcyhwa2csIEZhbHNlLCBUcnVlKToKLSAgICAg ICAgICAgIG1vZHVsZSA9IGltcG9ydF9tb2R1bGUobW9kdWxlX25hbWUpCi0K KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtb2R1bGUgPSBp bXBvcnRfbW9kdWxlKG1vZHVsZV9uYW1lKQorICAgICAgICAgICAgZXhjZXB0 IEltcG9ydEVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKIAogaW1wb3J0 IHNpeAogCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9SRUFETUUgYi93 ZWIvcmVncmVzc2lvbi9SRUFETUUKaW5kZXggZTAwMDNlNC4uZWY5ZmQyOSAx MDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FCisrKyBiL3dlYi9y ZWdyZXNzaW9uL1JFQURNRQpAQCAtNDAsMjkgKzQwLDQwIEBAIEdlbmVyYWwg SW5mb3JtYXRpb24KICAgICAzLiB0ZXN0X3NlcnZlcl9nZXQucHkKICAgICA0 LiB0ZXN0X3NlcnZlcl91cGRhdGUucHkKIAotMikgVGhlIHBnQWRtaW40IHNv dXJjZSB0cmVlIGluY2x1ZGVzIGEgZmlsZSB0ZW1wbGF0ZSBmb3IgdGhlIHNl cnZlciBjb25maWd1cmF0aW9uCi0gICBuYW1lZCDigJh0ZXN0X2NvbmZpZy5q c29uLmluJyBpbiB0aGUg4oCYcGdBZG1pbjQvd2ViL3JlZ3Jlc3Npb27igJkg ZGlyZWN0b3J5LiBBZnRlcgotICAgY29tcGxldGluZyB0aGUgcGdBZG1pbjQg Y29uZmlndXJhdGlvbiwgeW91IG11c3QgbWFrZSBhIHdvcmtpbmcgY29weSBv ZiB0aGUKLSAgIHRlbXBsYXRlIGNhbGxlZCB0ZXN0X2NvbmZpZy5qc29uIGJl Zm9yZSBtb2RpZnlpbmcgdGhlIGZpbGUgY29udGVudHMuCisyKSBUaGUgcGdB ZG1pbjQgc291cmNlIHRyZWUgaW5jbHVkZXMgMiBkaWZmZXJlbnQgY29uZmln dXJhdGlvbiBmaWxlIHRlbXBsYXRlcy4KKyAgIE9uZSBmaWxlIHRlbXBsYXRl IGZvciB0aGUgc2VydmVyIGNvbmZpZ3VyYXRpb24KKyAgIG5hbWVkIOKAmHRl c3RfY29uZmlnLmpzb24uaW4nIGFuZCBhbm90aGVyIGZvciB0ZXN0IGNvbmZp Z3VyYXRpb24gbmFtZWQKKyAgICd0ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24u aW4nIGluIHRoZSDigJhwZ0FkbWluNC93ZWIvcmVncmVzc2lvbuKAmSBkaXJl Y3RvcnkuCisgICBBZnRlciBjb21wbGV0aW5nIHRoZSBwZ0FkbWluNCBjb25m aWd1cmF0aW9uLCB5b3UgbXVzdCBtYWtlIGEgd29ya2luZyBjb3B5IG9mCisg ICB0aGUgdGVtcGxhdGVzIGNhbGxlZCB0ZXN0X2NvbmZpZy5qc29uIGFuZCB0 ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24KKyAgIGJlZm9yZSBtb2RpZnlpbmcg dGhlIGZpbGUgY29udGVudHMuCiAKLQkyYSkgVGhlIGZvbGxvd2luZyBjb21t YW5kIGNvcGllcyB0aGUgdGVzdF9jb25maWcuanNvbi5pbiBmaWxlLCBjcmVh dGluZyBhCi0JICAgIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lZCB0ZXN0X2Nv bmZpZy5qc29uCisgICAgMmEpIFRoZSBmb2xsb3dpbmcgY29tbWFuZCBjb3Bp ZXMgdGhlIHRlc3RfY29uZmlnLmpzb24uaW4gZmlsZSwgY3JlYXRpbmcgYQor ICAgICAgICBjb25maWd1cmF0aW9uIGZpbGUgbmFtZWQgdGVzdF9jb25maWcu anNvbiAoc2FtZSB3YXkgdXNlciBjYW4gY29weQorICAgICAgICB0ZXN0X2Fk dmFuY2VfY29uZmlnLmpzb24uaW4gZmlsZSBpbnRvIHRlc3RfYWR2YW5jZV9j b25maWcuanNvbikKIAotICAgICAgICAgICAgIyBjcCBwZ2FkbWluNC93ZWIv cmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29uLmluIFwKLSAgICAgICAgICAg ICAgcGdhZG1pbjQvd2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbgor ICAgICAgICAgICAgICMgY3AgcGdhZG1pbjQvd2ViL3JlZ3Jlc3Npb24vdGVz dF9jb25maWcuanNvbi5pbiBcCisgICAgICAgICAgICAgICBwZ2FkbWluNC93 ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29uCiAKLQkyYikgQWZ0ZXIg Y3JlYXRpbmcgdGhlIHNlcnZlciBjb25maWd1cmF0aW9uIGZpbGUsIGFkZCAo b3IgbW9kaWZ5KQotCSAgICBwYXJhbWV0ZXIgdmFsdWVzIGFzIHBlciByZXF1 aXJlbWVudHMuIFRoZSBjb25maWd1cmF0aW9uCi0JICAgIGZpbGVzIGFyZSBv d25lZCBieSByb290L3VzZXIuIFRoZSBwZ0FkbWluNCByZWdyZXNzaW9uIGZy YW1ld29yayBleHBlY3RzCi0JICAgIHRvIGZpbmQgdGhlIGZpbGVzIGluIHRo ZSAgZGlyZWN0b3J5ICcvPGluc3RhbGxhdGlvbiBkaXI+L3dlYi9yZWdyZXNz aW9uLycuCi0JICAgIElmIHlvdSBtb3ZlIHRoZSBmaWxlIHRvIGFub3RoZXIg bG9jYXRpb24sIHlvdSBtdXN0IGNyZWF0ZSBhIHN5bWJvbGljIGxpbmsKLQkg ICAgdGhhdCBzcGVjaWZpZXMgdGhlIG5ldyBsb2NhdGlvbi4KKyAgICAyYikg QWZ0ZXIgY3JlYXRpbmcgdGhlIHNlcnZlciBhbmQgdGVzdCBjb25maWd1cmF0 aW9uIGZpbGUsIGFkZCAob3IgbW9kaWZ5KQorICAgICAgICBwYXJhbWV0ZXIg dmFsdWVzIGFzIHBlciByZXF1aXJlbWVudHMuIFRoZSBjb25maWd1cmF0aW9u CisgICAgICAgIGZpbGVzIGFyZSBvd25lZCBieSByb290L3VzZXIuIFRoZSBw Z0FkbWluNCByZWdyZXNzaW9uIGZyYW1ld29yayBleHBlY3RzCisgICAgICAg IHRvIGZpbmQgdGhlIGZpbGVzIGluIHRoZSAgZGlyZWN0b3J5ICcvPGluc3Rh bGxhdGlvbiBkaXI+L3dlYi9yZWdyZXNzaW9uLycuCisgICAgICAgIElmIHlv dSBtb3ZlIHRoZSBmaWxlIHRvIGFub3RoZXIgbG9jYXRpb24sIHlvdSBtdXN0 IGNyZWF0ZSBhIHN5bWJvbGljCisgICAgICAgIGxpbmsgdGhhdCBzcGVjaWZp ZXMgdGhlIG5ldyBsb2NhdGlvbi4KIAotCTJjKSBTcGVjaWZ5aW5nIFNlcnZl ciBDb25maWd1cmF0aW9uIGZpbGU6CisgICAgMmMpIFNwZWNpZnlpbmcgU2Vy dmVyIENvbmZpZ3VyYXRpb24gZmlsZToKKworICAgICAgICBzZXJ2ZXIgZGV0 YWlscyBhbmQgY29ubmVjdGlvbiBwcm9wZXJ0aWVzIGFzIHBlciB0aGVpciBs b2NhbCBzZXR1cC4gVGhlCisgICAgICAgIHRlc3RfY29uZmlnIGZpbGUgaXMg aW4ganNvbiBmb3JtYXQgYW5kIHByb3BlcnR5IHZhbHVlcyBhcmUKKyAgICAg ICAgY2FzZS1zZW5zaXRpdmUuCisKKyAgICAyZCkgU3BlY2lmeWluZyB0aGUg VGVzdCBDb25maWd1cmF0aW9uIGZpbGU6CisKKyAgICAgICAgVGhlIHVzZXIg Y2FuIGFkZC9jaGFuZ2UgdGVzdCBkYXRhIGFzIHBlciB0aGVpciBuZWVkLiBU aGUKKyAgICAgICAgdGVzdF9hZHZhbmNlX2NvbmZpZyBmaWxlIGlzIGluIGpz b24gZm9ybWF0IGFuZCBwcm9wZXJ0eSB2YWx1ZXMgYXJlCisgICAgICAgIGNh c2Utc2Vuc2l0aXZlLgogCi0JICAgIFRoZSB1c2VyIGNhbiB1c2UgdGhlIHBh cmFtZXRlcnMgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBzcGVjaWZ5 IHRoZQotCSAgICBzZXJ2ZXIgZGV0YWlscyBhbmQgY29ubmVjdGlvbiBwcm9w ZXJ0aWVzIGFzIHBlciB0aGVpciBsb2NhbCBzZXR1cC4gVGhlCi0JICAgIHRl c3RfY29uZmlnIGZpbGUgaXMgaW4ganNvbiBmb3JtYXQgYW5kIHByb3BlcnR5 IHZhbHVlcyBhcmUgY2FzZS1zZW5zaXRpdmUuCiAKIFRlc3QgRGF0YSBEZXRh aWxzCiAtLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTIsNSArMTAzLDE4IEBAIEV4 ZWN1dGlvbjoKICAgYW5kIHJlZ2lzdGVyZWQgYXV0b21hdGljYWxseSBieSBp dHMgbW9kdWxlIG5hbWUgaW4KICAgJ3BnYWRtaW40L3dlYi9wZ2FkbWluL3V0 aWxzL3Rlc3QucHknIGZpbGUuCiAKLS0gRXhlY3V0ZSB0ZXN0IGZyYW1ld29y ayBydW4gJ3JlZ3Jlc3Npb24vdGVzdHN1aXRlLnB5JyBmaWxlLgorLSBBcyB0 aGUgdGVzdCBmcmFtZXdvcmsgaXMgbW9kdWxhciBhbmQgZHluYW1pY2FsbHkg bG9jYXRlcyB0aGUgdGVzdHMKKyAgcGFja2FnZSwgV2UgY2FuIG5vdyBleGVj dXRlcyB0ZXN0IGZyYW1ld29yayBub2RlIHdpc2UKKworLSBFeGVjdXRlIHRl c3QgZnJhbWV3b3JrIGZvciBhbGwgbm9kZXMKKyAgICAgcnVuICdyZWdyZXNz aW9uL3Rlc3RzdWl0ZS5weSAtLXBrZyBhbGwnCisKKy0gRXhlY3V0ZSB0ZXN0 IGZyYW1ld29yayBmb3Igc2luZ2xlIG5vZGUgYXQgYSB0aW1lCisKKyAgICAg RXhhbXBsZSAxKSBSdW4gdGVzdCBmcmFtZXdvcmsgZm9yICdicm93c2VyJyBu b2RlCisgICAgIHJ1biAncmVncmVzc2lvbi90ZXN0c3VpdGUucHkgLS1wa2cg YnJvd3NlcicKKworICAgICBFeGFtcGxlIDIpIFJ1biB0ZXN0IGZyYW1ld29y ayBmb3IgJ2RhdGFiYXNlJyBub2RlCisgICAgIHJ1biAncmVncmVzc2lvbi90 ZXN0c3VpdGUucHkgLS1wa2cgYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzJworCiAKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9u L2NvbmZpZy5weSBiL3dlYi9yZWdyZXNzaW9uL2NvbmZpZy5weQppbmRleCBi ZWY2NWZiLi5mNDhlYWRlIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9j b25maWcucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vY29uZmlnLnB5CkBAIC0x NCwzICsxNCw4IEBAIHJvb3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5y ZWFscGF0aChfX2ZpbGVfXykpCiAKIHdpdGggb3Blbihyb290ICsgJy90ZXN0 X2NvbmZpZy5qc29uJykgYXMgZGF0YV9maWxlOgogICAgIGNvbmZpZ19kYXRh ID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKKword2l0aCBvcGVuKHJvb3QgKyAn L3Rlc3RfYWR2YW5jZV9jb25maWcuanNvbicpIGFzIGRhdGFfZmlsZToKKyAg ICBhZHZhbmNlX2NvbmZpZ19kYXRhID0ganNvbi5sb2FkKGRhdGFfZmlsZSkK KworcGlja2xlX3BhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwgJ3BhcmVudF9p ZC5wa2wnKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF9hZHZh bmNlX2NvbmZpZy5qc29uLmluIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9hZHZh bmNlX2NvbmZpZy5qc29uLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmJjYjg2N2MKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVn cmVzc2lvbi90ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24uaW4KQEAgLTAsMCAr MSwxMDUgQEAKK3sKKyAgInRlc3RfYWRkX2RhdGFiYXNlX2RhdGEiOiBbCisg ICB7CisgICAgInRlc3RfcHJpdmlsZWdlc19hY2wiOiBbCisgICAgICB7Cisg ICAgICAgICJncmFudGVlIjogInBvc3RncmVzIiwKKyAgICAgICAgImdyYW50 b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAicHJpdmlsZWdlcyI6IFsKKyAg ICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiQyIs CisgICAgICAgICAgICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAg ICJ3aXRoX2dyYW50IjogdHJ1ZQorICAgICAgICAgIH0sCisgICAgICAgICAg eworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogIlQiLAorICAgICAg ICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAgICAgICAgICAid2l0aF9n cmFudCI6IGZhbHNlCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9 CisgICAgXSwKKyAgICAidGVzdF9jb25uX2xpbWl0IjogLTEsCisgICAgInRl c3Rfb3duZXIiOiAicG9zdGdyZXMiLAorICAgICJ0ZXN0X2Z1bl9hY2wiOiBb CisgICAgICB7CisgICAgICAgICJncmFudGVlIjogInBvc3RncmVzIiwKKyAg ICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAicHJpdmls ZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdl X3R5cGUiOiAiWCIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjogdHJ1ZSwK KyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAgICAgICAgICB9 CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgICJ0ZXN0X3NlcV9h Y2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjogInBvc3RncmVz IiwKKyAgICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAi cHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJp dmlsZWdlX3R5cGUiOiAiciIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjog dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAgICAg ICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2Vf dHlwZSI6ICJ3IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAor ICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0s CisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjog IlUiLAorICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAgICAg ICAgICAid2l0aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfQorICAgICAg ICBdCisgICAgICB9CisgICAgXSwKKyAgICAidGVzdF90YmxfYWNsIjogWwor ICAgICAgeworICAgICAgICAiZ3JhbnRlZSI6ICJwb3N0Z3JlcyIsCisgICAg ICAgICJncmFudG9yIjogInBvc3RncmVzIiwKKyAgICAgICAgInByaXZpbGVn ZXMiOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90 eXBlIjogImEiLAorICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisg ICAgICAgICAgICAid2l0aF9ncmFudCI6IHRydWUKKyAgICAgICAgICB9LAor ICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJy IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAg ICAgIndpdGhfZ3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0KKyAgICAgICAg XQorICAgICAgfQorICAgIF0sCisgICAgInRlc3RfdHlwZV9hY2wiOiBbCisg ICAgICB7CisgICAgICAgICJncmFudGVlIjogInBvc3RncmVzIiwKKyAgICAg ICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAicHJpdmlsZWdl cyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5 cGUiOiAiVSIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAg ICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAgICAgICAgICB9Cisg ICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgICJ0ZXN0X2VuY29kaW5n IjogIlVURjgiLAorICAgICJ0ZXN0X25hbWUiOiAidGVzdF9kYl9hdXRvbWF0 aW9uIiwKKyAgICAidGVzdF9wcml2aWxlZ2VzIjogW10sCisgICAgInRlc3Rf c2VjdXJpdGllcyI6IFtdLAorICAgICJ0ZXN0X3ZhcmlhYmxlcyI6IFtdCisg IH0KKyBdLAorCisgICJ0ZXN0X2RiX3VwZGF0ZV9kYXRhIjogWworICB7Cisg ICAgICAidGVzdF9jb21tZW50IjogIlRoaXMgaXMgZGIgdXBkYXRlIGNvbW1l bnQiCisgIH0KKyBdCisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X25vZGVzLnB5IGIv d2ViL3JlZ3Jlc3Npb24vdGVzdF9ub2Rlcy5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4wZmE0Njk1Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9ub2Rlcy5weQpAQCAtMCwwICsxLDQw IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgor Citmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQor ZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKKwor CitkZWYgdGVzdF9nZXRub2Rlcyhub2RlPU5vbmUpOgorICAgICMgQ29ubmVj dCB0byBzZXJ2ZXIgYW5kIGRhdGFiYXNlLgorCisgICAgaWYgbm90IG5vZGU6 CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBhbGxfaWQgPSBnZXRfaWRz KCkKKworICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICBk Yl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICBzcnZfZ3JwID0gY29uZmln X2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICMgQ29ubmVjdCB0 byBzZXJ2ZXIKKyAgICByZXNwb25zZSA9IG5vZGUudGVzdGVyLnBvc3QoJ2Jy b3dzZXIvc2VydmVyL2Nvbm5lY3QvezB9L3sxfScuZm9ybWF0KAorICAgICAg ICBzcnZfZ3JwLCBzZXJ2ZXJfaWQpLCBkYXRhID0gZGljdCgKKyAgICAgICAg cGFzc3dvcmQ9Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxz J11bMF1bJ3Rlc3RfZGJfcGFzc3dvcmQnXSksCisgICAgICAgIGZvbGxvd19y ZWRpcmVjdHMgPSBUcnVlKQorCisgICAgIyBDb25uZWN0IHRvIGRhdGFiYXNl CisgICAgY29uX3Jlc3BvbnNlID0gbm9kZS50ZXN0ZXIucG9zdCgKKyAgICAg ICAgJ2Jyb3dzZXIvZGF0YWJhc2UvY29ubmVjdC97MH0vezF9L3syfScuZm9y bWF0KAorICAgICAgICAgICAgc3J2X2dycCwgc2VydmVyX2lkLCBkYl9pZCks IGZvbGxvd19yZWRpcmVjdHMgPSBUcnVlKQorCisgICAgZGJfY29uID0ganNv bi5sb2Fkcyhjb25fcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgIHJl dHVybiBkYl9jb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5IGIvd2ViL3Jl Z3Jlc3Npb24vdGVzdF91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mMjFkZTU0Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpAQCAtMCwwICsxLDI4OSBAQAor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgb3MKK2ltcG9y dCBwaWNrbGUKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorCitpbXBvcnQg Y29uZmlnCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdf ZGF0YQorCitTRVJWRVJfVVJMID0gJy9icm93c2VyL3NlcnZlci9vYmovJwor U0VSVkVSX0NPTk5FQ1RfVVJMID0gJ2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3Qv JworREFUQUJBU0VfQ09OTkVDVF9VUkwgPSAnL2Jyb3dzZXIvZGF0YWJhc2Uv b2JqLycKKworCitkZWYgZ2V0X2lkcyh1cmw9Y29uZmlnLkFQUF9ST09UICsg Jy9yZWdyZXNzaW9uL3BhcmVudF9pZC5wa2wnKToKKyAgICAiIiIKKyAgICBU aGlzIGZ1bmN0aW9uIHJlYWQgdGhlIHBhcmVudCBub2RlJ3MgaWQgYW5kIHJl dHVybiBpdAorCisgICAgOnBhcmFtIHVybDogZmlsZSBwYXRoIGZyb20gd2hp Y2ggaXQgd2lsbCByZWQgdGhlIGlkcworICAgIDp0eXBlIHVybDogc3RyCisg ICAgOnJldHVybjogbm9kZSBpZHMKKyAgICA6cnR5cGU6IGRpY3QKKyAgICAi IiIKKworICAgIG91dHB1dCA9IG9wZW4odXJsLCAncmInKQorICAgIGlkcyA9 IHBpY2tsZS5sb2FkKG91dHB1dCkKKyAgICBvdXRwdXQuY2xvc2UoKQorCisg ICAgcmV0dXJuIGlkcworCisKK2RlZiBsb2dpbl90ZXN0ZXJfYWNjb3VudCh0 ZXN0ZXIpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhl IHRlc3QgYWNjb3VudCB1c2luZyBjcmVkZW50aWFscyBtZW50aW9uZWQgaW4K KyAgICBjb25maWcgZmlsZQorCisgICAgOnBhcmFtIHRlc3RlcjogdGVzdCBj bGllbnQKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9i amVjdAorICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKworICAgIGVtYWls ID0gXAorICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3Jl ZGVudGlhbHMnXVsndGVzdF9sb2dpbl91c2VybmFtZSddCisgICAgcGFzc3dv cmQgPSBcCisgICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9j cmVkZW50aWFscyddWyd0ZXN0X2xvZ2luX3Bhc3N3b3JkJ10KKyAgICByZXNw b25zZSA9IHRlc3Rlci5wb3N0KCcvbG9naW4nLCBkYXRhPWRpY3QoCisgICAg ICAgIGVtYWlsPWVtYWlsLCBwYXNzd29yZD1wYXNzd29yZCksIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKKworCitkZWYgbG9nb3V0X3Rlc3Rlcl9hY2NvdW50 KHRlc3Rlcik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBsb2dvdXQg dGhlIHRlc3QgYWNjb3VudAorCisgICAgOnBhcmFtIHRlc3RlcjogdGVzdCBj bGllbnQKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9i amVjdAorICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKworICAgIHJlc3Bv bnNlID0gdGVzdGVyLmdldCgnL2xvZ291dCcpCisKKworZGVmIGdldF9jb25m aWdfZGF0YSgpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRo ZSBkYXRhIHJlbGF0ZWQgdG8gc2VydmVyIGdyb3VwIGFuZCBkYXRhYmFzZQor ICAgIGxpa2UgZGIgbmFtZSwgaG9zdCwgcG9ydCBhbmQgdXNlcm5hbWUgZXRj LgorCisgICAgOnJldHVybjogc2VydmVyX2dyb3VwLCBkYl9kYXRhLCBwaWNr bGVfaWRfZGljdAorICAgIDpydHlwZTogc2VydmVyX2dyb3VwOmRpY3QsIGRi X2RhdGE6bGlzdCwgcGlja2xlX2lkX2RpY3Q6ZGljdAorICAgICIiIgorCisg ICAgZGJfZGF0YSA9IFtdCisKKyAgICBwaWNrbGVfaWRfZGljdCA9IHsKKyAg ICAgICAgInNpZCI6IFtdLCAgIyBzZXJ2ZXIKKyAgICAgICAgImRpZCI6IFtd LCAgIyBkYXRhYmFzZQorICAgICAgICAibHJpZCI6IFtdLCAgIyBsb2dpbiBy b2xlCisgICAgICAgICJ0c2lkIjogW10sICAjIHRhYmxzcGFjZQorICAgICAg ICAiY2lkIjogW10sICAjIGNhc3QKKyAgICAgICAgImVpZCI6IFtdLCAgIyBl eHRlbnRpb24KKyAgICAgICAgImxpZCI6IFsxMjM5N10sICAjIGxhbmd1YWdl CisgICAgICAgICJzY2lkIjogW10sICAjIHNjaGVtYQorICAgICAgICAidGZu aWQiOiBbXSwgICMgdHJpZ2dlciBmdW5jdGlvbgorICAgICAgICAiZXRpZCI6 IFtdLCAgIyBldmVudCB0cmlnZ2VyCisgICAgICAgICJjb2lkIjogW10sICAj IGNvbGxhdGlvbgorICAgICAgICAiZmlkIjogW10sICAjIEZEVworICAgICAg ICAiZG9pZCI6IFtdLCAgIyBEb21haW4KKyAgICAgICAgInNlaWQiOiBbXSwg ICMgU2VxdWVuY2UKKyAgICAgICAgInRpZCI6IFtdLCAgIyB0YWJsZQorICAg ICAgICAidmlkIjogW10sICAjIHZpZXcKKyAgICAgICAgIm12aWQiOiBbXSwg ICMgbXZpZXcKKyAgICAgICAgImZzaWQiOiBbXSwgICMgZm9yZWlnbiBzZXJ2 ZXIKKyAgICAgICAgInVtaWQiOiBbXSwgICMgVXNlciBtYXBwaW5nCisgICAg ICAgICJmb2lkIjogW10gICMgZm9yZWlnbiB0YWJsZQorICAgIH0KKworICAg IHNlcnZlcl9ncm91cCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91 cCddCisKKyAgICBmb3Igc3J2IGluIGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZl cl9jcmVkZW50aWFscyddOgorICAgICAgICBkYXRhID0geyJuYW1lIjogc3J2 Wyd0ZXN0X25hbWUnXSwKKyAgICAgICAgICAgICAgICAiY29tbWVudCI6ICIi LAorICAgICAgICAgICAgICAgICJob3N0Ijogc3J2Wyd0ZXN0X2hvc3QnXSwK KyAgICAgICAgICAgICAgICAicG9ydCI6IHNydlsndGVzdF9kYl9wb3J0J10s CisgICAgICAgICAgICAgICAgImRiIjogc3J2Wyd0ZXN0X21haW50ZW5hbmNl X2RiJ10sCisgICAgICAgICAgICAgICAgInVzZXJuYW1lIjogc3J2Wyd0ZXN0 X2RiX3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgInJvbGUiOiAiIiwK KyAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsndGVzdF9zc2xtb2Rl J119CisgICAgICAgIGRiX2RhdGEuYXBwZW5kKGRhdGEpCisgICAgcmV0dXJu IHNlcnZlcl9ncm91cCwgZGJfZGF0YSwgcGlja2xlX2lkX2RpY3QKKworCitk ZWYgd3JpdGVfcGFyZW50X2lkKHJlc3BvbnNlX2RhdGEsIHBpY2tsZV9pZF9k aWN0KToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdyaXRlcyB0aGUg c2VydmVyJ3MgZGV0YWlscyB0byBmaWxlIHBhcmVudF9pZC5wa2wKKworICAg IDpwYXJhbSByZXNwb25zZV9kYXRhOiBzZXJ2ZXIncyBkYXRhCisgICAgOnR5 cGUgcmVzcG9uc2VfZGF0YTogbGlzdCBvZiBkaWN0aW9uYXJ5CisgICAgOnBh cmFtIHBpY2tsZV9pZF9kaWN0OiBjb250YWlucyBpZHMgb2Ygc2VydmVyLGRh dGFiYXNlLHRhYmxlcyBldGMuCisgICAgOnR5cGUgcGlja2xlX2lkX2RpY3Q6 IGRpY3QKKyAgICA6cmV0dXJuOiBOb25lCisgICAgIiIiCisKKyAgICBzZXJ2 ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisgICAgaWYg b3MucGF0aC5pc2ZpbGUoY29uZmlnLkFQUF9ST09UICsgJy9yZWdyZXNzaW9u L3BhcmVudF9pZC5wa2wnKToKKyAgICAgICAgZXhpc3RlZF9zZXJ2ZXJfaWQg PSBvcGVuKAorICAgICAgICAgICAgY29uZmlnLkFQUF9ST09UICsgJy9yZWdy ZXNzaW9uL3BhcmVudF9pZC5wa2wnLCAncmInKQorICAgICAgICBwaWNrbGVf aWRfZGljdCA9IHBpY2tsZS5sb2FkKGV4aXN0ZWRfc2VydmVyX2lkKQorCisg ICAgcGlja2xlX2lkX2RpY3RbInNpZCJdLmFwcGVuZChzZXJ2ZXJfaWQpCisg ICAgb3V0cHV0ID0gb3Blbihjb25maWcuQVBQX1JPT1QgKyAnL3JlZ3Jlc3Np b24vcGFyZW50X2lkLnBrbCcsICd3YicpCisgICAgcGlja2xlLmR1bXAocGlj a2xlX2lkX2RpY3QsIG91dHB1dCkKKyAgICBvdXRwdXQuY2xvc2UoKQorCisK K2RlZiB3cml0ZV9kYl9wYXJlbnRfaWQocmVzcG9uc2VfZGF0YSk6CisgICAg IiIiCisgICAgVGhpcyBmdW5jdGlvbiB3cml0ZXMgdGhlIHNlcnZlciBhbmQg ZGF0YWJhc2UgcmVsYXRlZCBkYXRhIGxpa2Ugc2VydmVyCisgICAgbmFtZSwg c2VydmVyIGlkICwgZGF0YWJhc2UgbmFtZSwgZGF0YWJhc2UgaWQgZXRjLgor CisgICAgOnBhcmFtIHJlc3BvbnNlX2RhdGE6IHNlcnZlciBhbmQgZGF0YWJh c2VzIGRldGFpbHMKKyAgICA6dHlwZSByZXNwb25zZV9kYXRhOiBkaWN0Cisg ICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisgICAgZGJfaWQgPSByZXNw b25zZV9kYXRhWydub2RlJ11bJ19pZCddCisgICAgaWYgb3MucGF0aC5pc2Zp bGUoY29uZmlnLkFQUF9ST09UICsgJy9yZWdyZXNzaW9uL3BhcmVudF9pZC5w a2wnKToKKyAgICAgICAgZXhpc3Rpbmdfc2VydmVyX2lkID0gb3BlbigKKyAg ICAgICAgICAgIGNvbmZpZy5BUFBfUk9PVCArICcvcmVncmVzc2lvbi9wYXJl bnRfaWQucGtsJywgJ3JiJykKKyAgICAgICAgdG9sX3NlcnZlcl9pZCA9IHBp Y2tsZS5sb2FkKGV4aXN0aW5nX3NlcnZlcl9pZCkKKyAgICAgICAgcGlja2xl X2lkX2RpY3QgPSB0b2xfc2VydmVyX2lkCisKKyAgICAgICAgcGlja2xlX2lk X2RpY3RbImRpZCJdLmFwcGVuZChkYl9pZCkKKworICAgICAgICBkYl9vdXRw dXQgPSBvcGVuKAorICAgICAgICAgICAgY29uZmlnLkFQUF9ST09UICsgJy9y ZWdyZXNzaW9uL3BhcmVudF9pZC5wa2wnLCAnd2InKQorICAgICAgICBwaWNr bGUuZHVtcChwaWNrbGVfaWRfZGljdCwgZGJfb3V0cHV0KQorICAgICAgICBk Yl9vdXRwdXQuY2xvc2UoKQorCisKK2RlZiBkZWxldGVfcGFyZW50X2lkX2Zp bGUoKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhl IGZpbGUgcGFyZW50X2lkLnBrbCB3aGljaCBjb250YWlucyBzZXJ2ZXIgYW5k CisgICAgZGF0YWJhc2UgZGV0YWlscworCisgICAgOnJldHVybjogTm9uZQor ICAgICIiIgorCisgICAgaWYgb3MucGF0aC5pc2ZpbGUoY29uZmlnLkFQUF9S T09UICsgJy9yZWdyZXNzaW9uL3BhcmVudF9pZC5wa2wnKToKKyAgICAgICAg b3MucmVtb3ZlKGNvbmZpZy5BUFBfUk9PVCArICcvcmVncmVzc2lvbi9wYXJl bnRfaWQucGtsJykKKworCitkZWYgYWRkX3NlcnZlcih0ZXN0ZXIpOgorICAg ICIiIgorICAgIFRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIgaW4gdGhl IGV4aXN0aW5nIHNlcnZlciBncm91cAorCisgICAgOnBhcmFtIHRlc3Rlcjog dGVzdCBvYmplY3QKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2Jq ZWN0CisgICAgOnJldHVybjpOb25lCisgICAgIiIiCisKKyAgICBzZXJ2ZXJf Z3JvdXAsIGRiX2RhdGEsIHBpY2tsZV9pZF9kaWN0ID0gZ2V0X2NvbmZpZ19k YXRhKCkKKyAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KFNFUlZFUl9VUkws IHNlcnZlcl9ncm91cCkKKyAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KHVy bCwgZGF0YT1qc29uLmR1bXBzKGRiX2RhdGFbMF0pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAg IHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVj b2RlKCkpCisgICAgd3JpdGVfcGFyZW50X2lkKHJlc3BvbnNlX2RhdGEsIHBp Y2tsZV9pZF9kaWN0KQorCisKK2RlZiBnZXRfc2VydmVyKHRlc3Rlcik6Cisg ICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBhZGRlZCBzZXJl ciBkZXRhaWxzCisKKyAgICA6cGFyYW0gdGVzdGVyOiB0ZXN0IGNsaWVudCBv YmplY3QKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0Cisg ICAgOnJldHVybjogcmVzcG9uc2VfZGF0YQorICAgIDpydHlwZTogbGlzdAor ICAgICIiIgorCisgICAgYWxsX2lkID0gZ2V0X2lkcygpCisgICAgc2VydmVy X2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgIHNlcnZlcl9ncm91cCA9IGNv bmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICByZXNwb25z ZSA9IHRlc3Rlci5nZXQoU0VSVkVSX1VSTCArIHN0cihzZXJ2ZXJfZ3JvdXAp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZl cl9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKyAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2Fkcyhy ZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgIHJldHVybiByZXNwb25zZV9k YXRhCisKKworZGVmIGNvbm5lY3Rfc2VydmVyKHRlc3Rlcik6CisgICAgIiIi CisgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGNvbm5lY3QgYWRkZWQgc2Vy dmVyCisKKyAgICA6cGFyYW0gdGVzdGVyOnRlc3QgY2xpZW50IG9iamVjdAor ICAgIDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBvYmplY3QKKyAgICA6cmV0 dXJuOiBzZXJ2ZXJfY29ubmVjdCwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQK KyAgICA6cnR5cGU6IHNlcnZlcl9jb25uZWN0OmRpY3QsIHNlcnZlcl9ncm91 cDpkaWN0LCBzZXJ2ZXJfaWQ6c3RyCisgICAgIiIiCisKKyAgICBzcnZfaWQg PSBnZXRfaWRzKCkKKyAgICBzZXJ2ZXJfaWQgPSBzcnZfaWRbInNpZCJdWzBd CisgICAgc2VydmVyX2dyb3VwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVy X2dyb3VwJ10KKyAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KFNFUlZFUl9D T05ORUNUX1VSTCArIHN0cihzZXJ2ZXJfZ3JvdXApICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICcvJyArIHNlcnZlcl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXNzd29yZD1jb25maWdfZGF0YQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9zZXJ2ZXJfY3JlZGVudGlh bHMnXVswXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVz dF9kYl9wYXNzd29yZCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICBzZXJ2ZXJfY29ubmVjdCA9 IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICBjb25u ZWN0X2RhdGFiYXNlKHRlc3Rlciwgc2VydmVyX2Nvbm5lY3QsIHNlcnZlcl9p ZCwgc2VydmVyX2dyb3VwKQorICAgIHJldHVybiBzZXJ2ZXJfY29ubmVjdCwg c2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQKKworCitkZWYgY29ubmVjdF9kYXRh YmFzZSh0ZXN0ZXIsIHNlcnZlcl9jb25uZWN0LCBzZXJ2ZXJfaWQsIHNlcnZl cl9ncm91cCk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2Vk IHRvIGNvbm5lY3QgZGF0YWJhc2UgYW5kIHdyaXRlcyBpdCdzIGRldGFpbHMg dG8KKyAgICBmaWxlICdwYXJlbnRfaWQucGtsJworCisgICAgOnBhcmFtIHRl c3RlcjogdGVzdCBjbGllbnQgb2JqZWN0CisgICAgOnR5cGUgdGVzdGVyOiBm bGFzayB0ZXN0IGNsaWVudCBvYmplY3QKKyAgICA6cGFyYW0gc2VydmVyX2Nv bm5lY3Q6IHNlcnZlcidzIGRhdGEKKyAgICA6dHlwZSBzZXJ2ZXJfY29ubmVj dDogZGljdAorICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBpZAorICAg IDp0eXBlIHNlcnZlcl9pZDogc3RyCisgICAgOnBhcmFtIHNlcnZlcl9ncm91 cDogc2VydmVyIGdyb3VwIG5hbWUKKyAgICA6dHlwZSBzZXJ2ZXJfZ3JvdXA6 IHN0cgorICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKworICAgIGlmIHNl cnZlcl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCddOgorICAgICAgICBk YXRhID0geworICAgICAgICAgICAgImRhdGFjbCI6IGNvbmZpZ19kYXRhWyd0 ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10KKyAgICAgICAgICAgIFsndGVzdF9w cml2aWxlZ2VzX2FjbCddLAorICAgICAgICAgICAgImRhdGNvbm5saW1pdCI6 IGNvbmZpZ19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10KKyAgICAg ICAgICAgIFsndGVzdF9jb25uX2xpbWl0J10sCisgICAgICAgICAgICAiZGF0 b3duZXIiOiBjb25maWdfZGF0YVsndGVzdF9hZGRfZGF0YWJhc2VfZGF0YSdd CisgICAgICAgICAgICBbJ3Rlc3Rfb3duZXInXSwKKyAgICAgICAgICAgICJk ZWZmdW5jYWNsIjogY29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFiYXNlX2Rh dGEnXQorICAgICAgICAgICAgWyd0ZXN0X2Z1bl9hY2wnXSwKKyAgICAgICAg ICAgICJkZWZzZXFhY2wiOiBjb25maWdfZGF0YVsndGVzdF9hZGRfZGF0YWJh c2VfZGF0YSddCisgICAgICAgICAgICBbJ3Rlc3Rfc2VxX2FjbCddLAorICAg ICAgICAgICAgImRlZnRibGFjbCI6IGNvbmZpZ19kYXRhWyd0ZXN0X2FkZF9k YXRhYmFzZV9kYXRhJ10KKyAgICAgICAgICAgIFsndGVzdF90YmxfYWNsJ10s CisgICAgICAgICAgICAiZGVmdHlwZWFjbCI6IGNvbmZpZ19kYXRhWyd0ZXN0 X2FkZF9kYXRhYmFzZV9kYXRhJ10KKyAgICAgICAgICAgIFsndGVzdF90eXBl X2FjbCddLAorICAgICAgICAgICAgImVuY29kaW5nIjogY29uZmlnX2RhdGFb J3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXQorICAgICAgICAgICAgWyd0ZXN0 X2VuY29kaW5nJ10sCisgICAgICAgICAgICAibmFtZSI6IHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0sCisgICAgICAgICAgICAicHJpdmlsZWdlcyI6IGNvbmZp Z19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10KKyAgICAgICAgICAg IFsndGVzdF9wcml2aWxlZ2VzJ10sCisgICAgICAgICAgICAic2VjdXJpdGll cyI6IGNvbmZpZ19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10KKyAg ICAgICAgICAgIFsndGVzdF9zZWN1cml0aWVzJ10sCisgICAgICAgICAgICAi dmFyaWFibGVzIjogY29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFiYXNlX2Rh dGEnXQorICAgICAgICAgICAgWyd0ZXN0X3ZhcmlhYmxlcyddCisgICAgICAg IH0KKyAgICAgICAgZGJfcmVzcG9uc2UgPSB0ZXN0ZXIucG9zdCgKKyAgICAg ICAgICAgIERBVEFCQVNFX0NPTk5FQ1RfVVJMICsgc3RyKHNlcnZlcl9ncm91 cCkgKyAiLyIgKyBzZXJ2ZXJfaWQgKyAiLyIsCisgICAgICAgICAgICBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCisgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxv YWRzKGRiX3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisgICAgICAgIHdyaXRl X2RiX3BhcmVudF9pZChyZXNwb25zZV9kYXRhKQpkaWZmIC0tZ2l0IGEvd2Vi L3JlZ3Jlc3Npb24vdGVzdHN1aXRlLnB5IGIvd2ViL3JlZ3Jlc3Npb24vdGVz dHN1aXRlLnB5CmluZGV4IDc1ZDQzN2IuLmMzNDI4MDUgMTAwNjQ0Ci0tLSBh L3dlYi9yZWdyZXNzaW9uL3Rlc3RzdWl0ZS5weQorKysgYi93ZWIvcmVncmVz c2lvbi90ZXN0c3VpdGUucHkKQEAgLTEwLDcwICsxMCwxNDAgQEAKICIiIiBU aGlzIGZpbGUgY29sbGVjdCBhbGwgbW9kdWxlcy9maWxlcyBwcmVzZW50IGlu IHRlc3RzIGRpcmVjdG9yeSBhbmQgYWRkCiB0aGVtIHRvIFRlc3RTdWl0ZS4g IiIiCiAKK2ltcG9ydCBhcmdwYXJzZQogaW1wb3J0IG9zCiBpbXBvcnQgc3lz CiBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBsb2dnaW5nCiAKIGZyb20gdGVz dHNjZW5hcmlvcy5zY2VuYXJpb3MgaW1wb3J0IGdlbmVyYXRlX3NjZW5hcmlv cwogCi0jIFdlIG5lZWQgdG8gaW5jbHVkZSB0aGUgcm9vdCBkaXJlY3Rvcnkg aW4gc3lzLnBhdGggdG8gZW5zdXJlIHRoYXQgd2UgY2FuCi0jIGZpbmQgZXZl cnl0aGluZyB3ZSBuZWVkIHdoZW4gcnVubmluZyBpbiB0aGUgc3RhbmRhbG9u ZSBydW50aW1lLgotY3VycmVudF9wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9z LnBhdGgucmVhbHBhdGgoX19maWxlX18pKQotcm9vdCA9IG9zLnBhdGguZGly bmFtZShjdXJyZW50X3BhdGgpCitDVVJSRU5UX1BBVEggPSBvcy5wYXRoLmRp cm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCiAKLWlmIHN5cy5w YXRoWzBdICE9IHJvb3Q6Ci0gICAgc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3Qp CiAKLWZyb20gcGdhZG1pbiBpbXBvcnQgY3JlYXRlX2FwcAotaW1wb3J0IGNv bmZpZworZGVmIGNyZWF0ZV9wZ2FkbWluX2FwcCgpOgorICAgICIiIgorICAg IFRoaXMgZnVuY3Rpb24gY3JlYXRlcyB0aGUgcGdhZG1pbiBhcHAgZm9yIHRl c3RpbmcKIAotIyBHZXQgdGhlIGNvbmZpZyBkYXRhYmFzZSBzY2hlbWEgdmVy c2lvbi4gV2Ugc3RvcmUgdGhpcyBpbiBwZ2FkbWluLm1vZGVsCi0jIGFzIGl0 IHR1cm5zIG91dCB0aGF0IHB1dHRpbmcgaXQgaW4gdGhlIGNvbmZpZyBmaWxl cyBpc24ndCBhIGdyZWF0IGlkZWEKLWZyb20gcGdhZG1pbi5tb2RlbCBpbXBv cnQgU0NIRU1BX1ZFUlNJT04KLWNvbmZpZy5TRVRUSU5HU19TQ0hFTUFfVkVS U0lPTiA9IFNDSEVNQV9WRVJTSU9OCisgICAgOnJldHVybjogdGVzdCBjbGll bnQKKyAgICA6cnR5cGU6IHRlc3QgYXBwIG9iamVjdAorICAgICIiIgogCi0j IENyZWF0ZSB0aGUgYXBwIQotYXBwID0gY3JlYXRlX2FwcCgpCisgICAgIyBT ZXQgc3lzIHBhdGggdG8gY3VycmVudCBkaXJlY3Rvcnkgc28gdGhhdCB3ZSBj YW4gaW1wb3J0IHBnYWRtaW4gcGFja2FnZQorICAgIHJvb3QgPSBvcy5wYXRo LmRpcm5hbWUoQ1VSUkVOVF9QQVRIKQorICAgIGlmIHN5cy5wYXRoWzBdICE9 IHJvb3Q6CisgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCByb290KQogCi0j IERpc2FibGluZyBDcm9zcy1zaXRlIHJlcXVlc3QgZm9yZ2VyeShDU1JGIHRv a2VuKSBmb3IgdGVzdGluZyBwdXJwb3NlLgotIyBDU1JGIHByZXZlbnQgc2Vz c2lvbiBhZ2FpbnN0IG1hbGljaW91cyBXZWIgc2l0ZSwgb3IgZW5kIHVzZXJz IHdobyB3YW50cyB0bwotIyBleGVjdXRlIHVud2FudGVkIGFjdGlvbnMuCi1h cHAuY29uZmlnWydXVEZfQ1NSRl9FTkFCTEVEJ10gPSBGYWxzZQorICAgIGZy b20gcGdhZG1pbiBpbXBvcnQgY3JlYXRlX2FwcAogCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkKKyAg ICAjIENyZWF0ZSB0aGUgYXBwCisgICAgYXBwID0gY3JlYXRlX2FwcCgpCisg ICAgYXBwLmNvbmZpZ1snV1RGX0NTUkZfRU5BQkxFRCddID0gRmFsc2UKKyAg ICB0ZXN0X2FwcF9jbGllbnQgPSBhcHAudGVzdF9jbGllbnQoKQogCi0jIFJl Z2lzdHJ5IHdpbGwgbG9hZCBhbGwgdGhlIHRlc3RjYXNlcy9tb2R1bGVzIGZy b20gcGdhZG1pbiBwYXRoIHRob3NlIGFyZQotIyByZWdpc3RlciBhcyBCYXNl VGVzdEdlbmVyYXRvci4KLVRlc3RzR2VuZXJhdG9yUmVnaXN0cnkubG9hZF9n ZW5lcmF0b3JzKCdwZ2FkbWluJykKKyAgICByZXR1cm4gdGVzdF9hcHBfY2xp ZW50CiAKLSMgQ3JlYXRlIHRlc3QgY2xpZW50Ci0jIHdlcmt6ZXVnIHByb3Zp ZGVzIGEgdGVzdCBjbGllbnQgd2hpY2ggZ2l2ZXMgYSBzaW1wbGUgaW50ZXJm YWNlIHRvIHRoZQotIyBhcHBsaWNhdGlvbi4gV2UgY2FuIHRyaWdnZXIgdGVz dCByZXF1ZXN0IHRvIHRoZSBhcHBsaWNhdGlvbi4KLXRlc3RfY2xpZW50ID0g YXBwLnRlc3RfY2xpZW50KCkKIAorZGVmIGdldF9zdWl0ZShhcmd1bWVudHMs IHRlc3RfYXBwX2NsaWVudCk6CisgICAgIiIiCisgICAgIFRoaXMgZnVuY3Rp b24gbG9hZHMgdGhlIGFsbCBtb2R1bGVzIGluIHRoZSB0ZXN0cyBkaXJlY3Rv cnkgaW50byB0ZXN0aW5nCisgICAgIGVudmlyb25tZW50LgogCi1kZWYgc3Vp dGUoKToKLSAgICAiIiIgRGVmaW5pbmcgdGVzdCBzdWl0ZSB3aGljaCB3aWxs IGV4ZWN1dGUgYWxsIHRoZSB0ZXN0Y2FzZXMgcHJlc2VudCBpbgotICAgIHRl c3RzIGRpcmVjdG9yeSBhY2NvcmRpbmcgdG8gc2V0IHByaW9yaXR5LiIiIgor ICAgIDpwYXJhbSBhcmd1bWVudHM6IHRoaXMgaXMgY29tbWFuZCBsaW5lIGFy Z3VtZW50cyBmb3IgbW9kdWxlIG5hbWUgdG8KKyAgICB3aGljaCB0ZXN0IHN1 aXRlIHdpbGwgcnVuCisgICAgOnR5cGUgYXJndW1lbnRzOiBzdHIKKyAgICA6 cGFyYW0gdGVzdF9hcHBfY2xpZW50OiB0ZXN0IGNsaWVudAorICAgIDp0eXBl IHRlc3RfYXBwX2NsaWVudDogcGdhZG1pbiBhcHAgb2JqZWN0CisgICAgOnJl dHVybiBwZ2FkbWluX3N1aXRlOiB0ZXN0IHN1aXRlIHdpdGggdGVzdCBjYXNl cworICAgIDpydHlwZTogVGVzdFN1aXRlCisgICAgIiIiCiAKLSAgICBwZ2Fk bWluX3N1aXRlID0gdW5pdHRlc3QuVGVzdFN1aXRlKCkKKyAgICBmcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IFRlc3RzR2VuZXJhdG9yUmVnaXN0 cnkKIAogICAgIG1vZHVsZXMgPSBbXQorICAgIHBnYWRtaW5fc3VpdGUgPSB1 bml0dGVzdC5UZXN0U3VpdGUoKQogCisgICAgIyBMb2FkIHRoZSB0ZXN0IG1v ZHVsZXMgd2hpY2ggYXJlIGluIGdpdmVuIHBhY2thZ2UoaS5lLiBhcmd1bWVu dHMucGtnKQorICAgIGlmIGFyZ3VtZW50cy5wa2cgPT0gImFsbCI6CisgICAg ICAgIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkubG9hZF9nZW5lcmF0b3JzKCdw Z2FkbWluJykKKyAgICBlbHNlOgorICAgICAgICBUZXN0c0dlbmVyYXRvclJl Z2lzdHJ5LmxvYWRfZ2VuZXJhdG9ycygncGdhZG1pbi57fS50ZXN0cycuZm9y bWF0KAorICAgICAgICAgICAgYXJndW1lbnRzLnBrZykpCisKKyAgICAjIEdl dCB0aGUgZWFjaCB0ZXN0IG1vZHVsZSBhbmQgYWRkIGludG8gbGlzdAogICAg IGZvciBrZXksIGtsYXNzIGluIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkucmVn aXN0cnkuaXRlbXMoKToKICAgICAgICAgZ2VuID0ga2xhc3MKKyAgICAgICAg bW9kdWxlcy5hcHBlbmQoZ2VuKQogCi0gICAgICAgIG1vZHVsZXMuaW5zZXJ0 KGdlbi5wcmlvcml0eSwgZ2VuKQotCi0gICAgZm9yIG0gaW4gbW9kdWxlczoK LSAgICAgICAgb2JqID0gbSgpCi0gICAgICAgIG9iai5zZXRUZXN0Q2xpZW50 KHRlc3RfY2xpZW50KQorICAgICMgU2V0IHRoZSB0ZXN0IGNsaWVudCB0byBl YWNoIG1vZHVsZSAmIGdlbmVyYXRlIHRoZSBzY2VuYXJpb3MKKyAgICBmb3Ig bW9kdWxlIGluIG1vZHVsZXM6CisgICAgICAgIG9iaiA9IG1vZHVsZSgpCisg ICAgICAgIG9iai5zZXRUZXN0Q2xpZW50KHRlc3RfYXBwX2NsaWVudCkKICAg ICAgICAgc2NlbmFyaW8gPSBnZW5lcmF0ZV9zY2VuYXJpb3Mob2JqKQogICAg ICAgICBwZ2FkbWluX3N1aXRlLmFkZFRlc3RzKHNjZW5hcmlvKQogCiAgICAg cmV0dXJuIHBnYWRtaW5fc3VpdGUKIAogCitkZWYgYWRkX2FyZ3VtZW50cygp OgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gcGFyc2UgdGhlIGNvbW1h bmQgbGluZSBhcmd1bWVudHMocHJvamVjdCdzIHBhY2thZ2UgbmFtZQorICAg IGUuZy4gYnJvd3NlcikgJiBhZGQgaW50byBwYXJzZXIKKworICAgIDpyZXR1 cm4gYXJnczogY29tbWFuZCBsaW5lIGFyZ3VtZW50IGZvciBwZ2FkbWluJ3Mg cGFja2FnZSBuYW1lCisgICAgOnJ0eXBlOiBhcmdwYXJzZSBuYW1lc3BhY2UK KyAgICAiIiIKKworICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFy c2VyKGRlc2NyaXB0aW9uPSdUZXN0IHN1aXRlIGZvciBwZ0FkbWluNCcpCisg ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wa2cnLCBoZWxwPSdFeGVjdXRl cyB0aGUgdGVzdCBjYXNlcyBvZiBwYXJ0aWN1bGFyJworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnIHBhY2thZ2UnKQorICAgIGFy ZyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIHJldHVybiBhcmcKKwor CitjbGFzcyBTdHJlYW1Ub0xvZ2dlcihvYmplY3QpOgorICAgIGRlZiBfX2lu aXRfXyhzZWxmLCBsb2dnZXIsIGxvZ19sZXZlbD1sb2dnaW5nLklORk8pOgor ICAgICAgICBzZWxmLnRlcm1pbmFsID0gc3lzLnN0ZGVycgorICAgICAgICBz ZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLmxvZ19sZXZlbCA9 IGxvZ19sZXZlbAorICAgICAgICBzZWxmLmxpbmVidWYgPSAnJworCisgICAg ZGVmIHdyaXRlKHNlbGYsIGJ1Zik6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIHdyaXRlcyB0aGUgbG9nIGluIHRoZSBsb2dnZXIgZmls ZSBhcyB3ZWxsIGFzIG9uIGNvbnNvbGUKKworICAgICAgICA6cGFyYW0gYnVm OiBsb2cgbWVzc2FnZQorICAgICAgICA6dHlwZSBidWY6IHN0cgorICAgICAg ICA6cmV0dXJuOiBOb25lCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYu dGVybWluYWwud3JpdGUoYnVmKQorICAgICAgICBmb3IgbGluZSBpbiBidWYu cnN0cmlwKCkuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgc2VsZi5sb2dn ZXIubG9nKHNlbGYubG9nX2xldmVsLCBsaW5lLnJzdHJpcCgpKQorCisgICAg ZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICBwYXNzCisKKwogaWYgX19uYW1l X18gPT0gJ19fbWFpbl9fJzoKLSAgICBzdWl0ZSA9IHN1aXRlKCkKLSAgICB0 ZXN0cyA9IHVuaXR0ZXN0LlRleHRUZXN0UnVubmVyKGRlc2NyaXB0aW9ucz1U cnVlLCB2ZXJib3NpdHk9MikucnVuKHN1aXRlKQorICAgICMgU2V0IGJhc2lj IGxvZ2dpbmcgY29uZmlndXJhdGlvbiBmb3IgbG9nIGZpbGUKKyAgICBsb2dn aW5nLmJhc2ljQ29uZmlnKGxldmVsPWxvZ2dpbmcuREVCVUcsCisgICAgICAg ICAgICAgICAgICAgICAgICBmb3JtYXQ9JyUoYXNjdGltZSlzOiUobGV2ZWxu YW1lKXM6JShuYW1lKXM6JShtZXNzYWdlKXMnLAorICAgICAgICAgICAgICAg ICAgICAgICAgZmlsZW5hbWU9ImxvZ2dlci5sb2ciLAorICAgICAgICAgICAg ICAgICAgICAgICAgZmlsZW1vZGU9J3cnCisgICAgICAgICAgICAgICAgICAg ICAgICApCisKKyAgICAjIENyZWF0ZSBsb2dnZXIgdG8gd3JpdGUgbG9nIGlu IHRoZSBsb2dnZXIgZmlsZSB3aXRoIG9uIGNvbnNvbGUKKyAgICBzdGRlcnJf bG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoJ1NUREVSUicpCisgICAgc3lz LnN0ZGVyciA9IFN0cmVhbVRvTG9nZ2VyKHN0ZGVycl9sb2dnZXIsIGxvZ2dp bmcuRVJST1IpCisKKyAgICAjIENyZWF0ZSB0aGUgcGdhZG1pbiBhcHAKKyAg ICB0ZXN0X2NsaWVudCA9IGNyZWF0ZV9wZ2FkbWluX2FwcCgpCisgICAgYXJn cyA9IGFkZF9hcmd1bWVudHMoKQorICAgIHN1aXRlID0gZ2V0X3N1aXRlKGFy Z3MsIHRlc3RfY2xpZW50KQorICAgIHRlc3RzID0gdW5pdHRlc3QuVGV4dFRl c3RSdW5uZXIoc3RyZWFtPXN5cy5zdGRlcnIsIGRlc2NyaXB0aW9ucz1UcnVl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9z aXR5PTIpLnJ1bihzdWl0ZSkKKworICAgIHByaW50KCJcblxuIFBsZWFzZSBj aGVjayBvdXRwdXQgaW4gZmlsZTogbG9nZ2VyLmxvZyBwbGFjZWQgYXQgIiwK KyAgICAgICAgICBDVVJSRU5UX1BBVEgpCg== --94eb2c05e7caaa332d05371fce78 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --94eb2c05e7caaa332d05371fce78--