Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bvrXH-00085g-Os for pgadmin-hackers@arkaria.postgresql.org; Sun, 16 Oct 2016 19:55:56 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bvrXH-0000T6-91 for pgadmin-hackers@arkaria.postgresql.org; Sun, 16 Oct 2016 19:55:55 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bv25S-0005JE-8z for pgadmin-hackers@postgresql.org; Fri, 14 Oct 2016 12:59:46 +0000 Received: from mail-qt0-x232.google.com ([2607:f8b0:400d:c0d::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bv25O-0006MS-P5 for pgadmin-hackers@postgresql.org; Fri, 14 Oct 2016 12:59:45 +0000 Received: by mail-qt0-x232.google.com with SMTP id s49so72807490qta.0 for ; Fri, 14 Oct 2016 05:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to:cc; bh=UxEEB+ziHRuqxBp4udjTJulYrNbmK6biUESrBh3AN8Q=; b=qdQ4AIFDDPinNWy0bnaktekKtemA5Wc3GJs3Z/fe2O1Tryb2bvA0Y+2vbkBZgUwSod DhcsZK56NVD5j7JETl7A+K1PrxR5qJo/T7wtzMWE6WrOhBkrCIXsAR4I7ksaOtotWMOv Ir36EtnQBS4QCjQWZGJoSyKxUq3PRJJuqP+cTFk0DfeiFhBc9v6b8ZwcPmS6WRwr8WFW f/O9p6tGGaW1vO1JbrdRHPUB9mGX2ZerJ0qhAhQcrYXzDK+CYt9vxhIdRHB5ipiVHglG WmHmp1N/kUDTJnTH2s0k60Wp5XZeAS56emQGP0ACSaYib81SFAr0X4UEslkfUYPxTKzc p9Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=UxEEB+ziHRuqxBp4udjTJulYrNbmK6biUESrBh3AN8Q=; b=SDfK4Wk9IEzGm45Snny/VqMsEreD0aNWAzT2J5JJ17G1jzGgGqXON6Nwl+2wrULqft 34NRh5aBupkFMPPTsBTzM/daRdCNvefQ4Yj1/29WZotqoGsbPQ8Uy++s6R8GmaD837yV qz5fSr7lIWnIsLqyYtccgsq0kuWVyhn2qq0w0QhI/PFIFsN4ITKGE/CwtxKCaOPrc6Nu Gb/RLfolwtENMP6BYxNpJlOhCupYq2tfkRf+ww2tnIhCGlYQHCShO8UJgjwRbaqQncwD kcgxMe1YiDRw5+tLBtnmTNEasynfx9uZgM/9xVoFjjNJjZjhKPBYMX39gNzaaSCvCUlU +Vqg== X-Gm-Message-State: AA6/9Rl84eRopNVSBgoTnTKahLOTBSj63gan/2FlpjLnDKKIilZ4RPbDJVLmERm+snfiS8HUZh0a3b/TyX4vwL3N X-Received: by 10.237.55.34 with SMTP id i31mr12262352qtb.105.1476449980226; Fri, 14 Oct 2016 05:59:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.68 with HTTP; Fri, 14 Oct 2016 05:59:39 -0700 (PDT) From: Navnath Gadakh Date: Fri, 14 Oct 2016 18:29:39 +0530 Message-ID: Subject: pgAdmin IV: API test cases for Tables, Types and Views To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a1149c23a9a9625053ed2ccfe X-Pg-Spam-Score: -2.6 (--) 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 --001a1149c23a9a9625053ed2ccfe Content-Type: multipart/alternative; boundary=001a1149c23a9a9621053ed2ccfc --001a1149c23a9a9621053ed2ccfc Content-Type: text/plain; charset=UTF-8 Hi Dave, Please find the patch for API test cases of Tables and sub-nodes, types, views and materialized views. To run the test suite, use: python runtests.py Thanks. -- Regards, Navnath Gadakh EnterpriseDB Corporation The Enterprise PostgreSQL Company --001a1149c23a9a9621053ed2ccfc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 =C2=A0 =C2=A0 Please find t= he patch for API test cases of Tables and=C2=A0sub-nodes,=C2=A0types, views and=C2=A0materialized vi= ews.

To run the te= st suite, use:

=C2= =A0 =C2=A0 =C2=A0 =C2=A0python runtests= .py

Thanks.


--
Regards,
Navnath Gadakh

EnterpriseDB Corporatio= n
The Enterprise PostgreSQL Company


<= /div>
--001a1149c23a9a9621053ed2ccfc-- --001a1149c23a9a9625053ed2ccfe Content-Type: application/octet-stream; name="tables_types_views.patch" Content-Disposition: attachment; filename="tables_types_views.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iu9s69ou0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvX19pbml0X18ucHkKaW5kZXggNjFkYjQ4MC4uZTg1NjRi OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvX19pbml0X18ucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvX19pbml0X18ucHkKQEAgLTk5OCw3ICs5OTgs NyBAQCBJdCBtYXkgaGF2ZSBiZWVuIHJlbW92ZWQgYnkgYW5vdGhlciB1c2Vy LgogICAgICAgICBzcWxfaGVhZGVyID0gIiIiCiAtLSBDQVRBTE9HOiB7MH0K IAotLS0gRFJPUCBTQ0hFTUEgezB9OworLS0gRFJPUCBTQ0hFTUEgezB9OygK IAogIiIiLmZvcm1hdChvbGRfZGF0YVsnbmFtZSddKQogICAgICAgICBpZiBo YXNhdHRyKHN0ciwgJ2RlY29kZScpOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3Rlc3RzL3V0aWxzLnB5CmluZGV4IDg2NjE1YjQuLmZk MTIwY2UgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvdXRpbHMucHkKQEAgLTM5LDYgKzM5LDMzIEBAIGRlZiBjcmVhdGVf dHJpZ2dlcl9mdW5jdGlvbihzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1l LCBmdW5jX25hbWUpOgogICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZp bGU9c3lzLnN0ZGVycikKIAogCitkZWYgY3JlYXRlX3RyaWdnZXJfZnVuY3Rp b25fd2l0aF90cmlnZ2VyKHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZ1bmNfbmFtZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhl IHRyaWdnZXIgZnVuY3Rpb24gdG8gc2NoZW1hIiIiCisgICAgdHJ5OgorICAg ICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dv cmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10pCisgICAg ICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAg cXVlcnkgPSAiQ1JFQVRFIEZVTkNUSU9OICIrc2NoZW1hX25hbWUrIi4iK2Z1 bmNfbmFtZSsiKCkiIFwKKyAgICAgICAgICAgICAgICAiIFJFVFVSTlMgdHJp Z2dlciBMQU5HVUFHRSAncGxwZ3NxbCcgU1RBQkxFIExFQUtQUk9PRiIgXAor ICAgICAgICAgICAgICAgICIgU0VDVVJJVFkgREVGSU5FUiBTRVQgZW5hYmxl X3NvcnQ9dHJ1ZSBBUyAkQk9EWSQgQkVHSU4iIFwKKyAgICAgICAgICAgICAg ICAiIE5VTEw7IEVORDsgJEJPRFkkIgorICAgICAgICBwZ19jdXJzb3IuZXhl Y3V0ZShxdWVyeSkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAg ICAgICAjIEdldCAnb2lkJyBmcm9tIG5ld2x5IGNyZWF0ZWQgZnVuY3Rpb24K KyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwcm8ub2lkLCBw cm8ucHJvbmFtZSBGUk9NIgorICAgICAgICAgICAgICAgICAgICAgICAgICAi IHBnX3Byb2MgcHJvIFdIRVJFIHByby5wcm9uYW1lPSclcyciICUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgZnVuY19uYW1lKQorICAgICAgICBmdW5j dGlvbnMgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBjb25uZWN0 aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucworICAgIGV4 Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMo ZmlsZT1zeXMuc3RkZXJyKQorCisKIGRlZiB2ZXJpZnlfdHJpZ2dlcl9mdW5j dGlvbihzZXJ2ZXIsIGRiX25hbWUsIGZ1bmNfbmFtZSk6CiAgICAgIiIiVGhp cyBmdW5jdGlvbiB2ZXJpZmllcyB0aGUgdHJpZ2dlciBmdW5jdGlvbiBpbiBk YiIiIgogICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlv bihkYl9uYW1lLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbi90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb2x1bW4vdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZjZiOGY1ZgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvX19pbml0 X18ucHkKQEAgLTAsMCArMSwxNSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBDb2x1bW5zVGVz dEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6CisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1u X2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMv dGVzdF9jb2x1bW5fYWRkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmQxMDNiMjIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX2FkZC5w eQpAQCAtMCwwICsxLDc0IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKKworZnJvbSByZWdyZXNzaW9u IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1h X3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBp bXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCisKKworY2xhc3MgQ29sdW1u QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMg Y2xhc3Mgd2lsbCBhZGQgbmV3IGNvbHVtbiB1bmRlciB0YWJsZSBub2RlLiIi IgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCdBZGQgdGFibGUgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sdW1uL29iai8nKSkKKyAg ICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJf bmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hl bWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNj aGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAg ICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNj aGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQor ICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAl IChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRhYmxl X2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnRhYmxlX25hbWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBjb2x1bW4gdW5kZXIg dGFibGUgbm9kZS4iIiIKKyAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSA9ICJ0 ZXN0X2NvbHVtbl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0p CisgICAgICAgIGRhdGEgPSB7Im5hbWUiOiBzZWxmLmNvbHVtbl9uYW1lLAor ICAgICAgICAgICAgICAgICJjbHR5cGUiOiAiXCJjaGFyXCIiLAorICAgICAg ICAgICAgICAgICJhdHRhY2wiOiBbXSwKKyAgICAgICAgICAgICAgICAiaXNf cHJpbWFyeV9rZXkiOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAiYXR0bm90 bnVsbCI6IEZhbHNlLAorICAgICAgICAgICAgICAgICJhdHRsZW4iOiBGYWxz ZSwKKyAgICAgICAgICAgICAgICAiYXR0cHJlY2lzaW9uIjogTm9uZSwKKyAg ICAgICAgICAgICAgICAiYXR0b3B0aW9ucyI6IFtdLAorICAgICAgICAgICAg ICAgICJzZWNsYWJlbHMiOiBbXQorICAgICAgICB9CisgICAgICAgICMgQWRk IHRhYmxlCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgK KyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHNlbGYudGFibGVfaWQp ICsgJy8nLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAor ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nv bm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29s dW1uL3Rlc3RzL3Rlc3RfY29sdW1uX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5fZGVsZXRlLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZGUxODEK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29s dW1uL3Rlc3RzL3Rlc3RfY29sdW1uX2RlbGV0ZS5weQpAQCAtMCwwICsxLDcz IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAor Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK K2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFi YXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAg ICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJs ZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMK K2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgY29sdW1uc191dGlscworCisKK2Ns YXNzIENvbHVtbkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK KyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIGNvbHVtbiB1bmRlciB0 YWJsZSBub2RlLiIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCdE ZWxldGUgdGFibGUgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29s dW1uL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAg c2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg dXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQi XQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNj aGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1h X3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAg ICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBh ZGQgYSB0YWJsZS4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFi bGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAg ICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJs ZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYu Y29sdW1uX25hbWUgPSAidGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLmNvbHVtbl9pZCA9 IGNvbHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29s dW1uX25hbWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgY29sdW1uIHVuZGVyIHRhYmxl IG5vZGUuIiIiCisgICAgICAgIGNvbF9yZXNwb25zZSA9IGNvbHVtbnNfdXRp bHMudmVyaWZ5X2NvbHVtbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKKyAgICAgICAgaWYgbm90IGNvbF9y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIGNvbHVtbiB0byBkcm9wLiIpCisgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNl bGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnRh YmxlX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZWxmLmNvbHVtbl9pZCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAg ICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFz ZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9nZXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX2dl dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjk5 Yjc5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9nZXQucHkKQEAgLTAsMCArMSw2 OSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHV1aWQK KworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRh YmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisg ICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFi bGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxz Citmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNvbHVtbnNfdXRpbHMKKworCitj bGFzcyBDb2x1bW5HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Cisg ICAgIiIiVGhpcyBjbGFzcyB3aWxsIGdldCBjb2x1bW4gdW5kZXIgdGFibGUg bm9kZS4iIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnRmV0Y2gg dGFibGUgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sdW1uL29i ai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAg IHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1b LTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRf bm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5k Yl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk KQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJd OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAg aWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0 YWJsZS4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29s dW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBz ZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYuY29sdW1u X25hbWUgPSAidGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIodXVpZC51 dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IGNvbHVt bnNfdXRpbHMuY3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25h bWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhp cyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBjb2x1bW4gdW5kZXIgdGFibGUg bm9kZS4iIiIKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo c2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlbGYudGFibGVfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlbGYuY29sdW1uX2lkKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg ICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX3B1dC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5f cHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1 NzA1MmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX3B1dC5weQpAQCAtMCwwICsx LDgxIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVp ZAoraW1wb3J0IGpzb24KKworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMg YXMgdGFibGVzX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNvbHVt bnNfdXRpbHMKKworCitjbGFzcyBDb2x1bW5QdXRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSB0 aGUgY29sdW1uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAoJ1B1dCB0YWJsZSBOb2RlIFVSTCcsIGRpY3QodXJs PScvYnJvd3Nlci9jb2x1bW4vb2JqLycpKQorICAgIF0KKworICAgIGRlZiBz ZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBz Y2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJf aWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lk Il0KKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBh IHRhYmxlLiIpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2lu Zm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCisgICAgICAgIHNlbGYudGFi bGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6Nl0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkK KyAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9wdXRf JXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAgIHNlbGYu Y29sdW1uX2lkID0gY29sdW1uc191dGlscy5jcmVhdGVfY29sdW1uKHNlbGYu c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5jb2x1bW5fbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYp OgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBj b2x1bW4gdW5kZXIgdGFibGUgbm9kZS4iIiIKKyAgICAgICAgY29sX3Jlc3Bv bnNlID0gY29sdW1uc191dGlscy52ZXJpZnlfY29sdW1uKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVtbl9uYW1lKQorICAg ICAgICBpZiBub3QgY29sX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgY29sdW1uIHRvIHVwZGF0 ZS4iKQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImF0dG51bSI6 IHNlbGYuY29sdW1uX2lkLAorICAgICAgICAgICAgIm5hbWUiOiBzZWxmLmNv bHVtbl9uYW1lLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMg aXMgdGVzdCBjb21tZW50IGZvciBjb2x1bW4iCisgICAgICAgIH0KKyAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNl bGYudGFibGVfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmNv bHVtbl9pZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSks CisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29u bmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1 bW4vdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29s dW1uL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmYxNzdkNDIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAg KzEsODYgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgI3BnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgI0NvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgI1RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j dGlvbgoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHN5cworCitmcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworCitkZWYg Y3JlYXRlX2NvbHVtbihzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCB0 YWJsZV9uYW1lLCBjb2xfbmFtZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5j dGlvbiBjcmVhdGVzIGEgY29sdW1uIHVuZGVyIHByb3ZpZGVkIHRhYmxlLgor ICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUg c2VydmVyOiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5h bWUKKyAgICA6dHlwZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gc2NoZW1h X25hbWU6IHNjaGVtYSBuYW1lCisgICAgOnR5cGUgc2NoZW1hX25hbWU6IHN0 cgorICAgIDpwYXJhbSB0YWJsZV9uYW1lOiB0YWJsZSBuYW1lCisgICAgOnR5 cGUgdGFibGVfbmFtZTogc3RyCisgICAgOnBhcmFtIGNvbF9uYW1lOiBjb2x1 bW4gbmFtZQorICAgIDp0eXBlIGNvbF9uYW1lOiBzdHIKKyAgICA6cmV0dXJu IHRhYmxlX2lkOiB0YWJsZSBpZAorICAgIDpydHlwZTogaW50CisgICAgIiIi CisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2Ri X2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy Wydwb3J0J10pCisgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25u ZWN0aW9uLmlzb2xhdGlvbl9sZXZlbAorICAgICAgICBjb25uZWN0aW9uLnNl dF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAgcGdfY3Vyc29yID0gY29u bmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBxdWVyeSA9ICJBTFRFUiBUQUJM RSAlcy4lcyBBREQgQ09MVU1OICVzIGNoYXIiICUgXAorICAgICAgICAgICAg ICAgIChzY2hlbWFfbmFtZSwgdGFibGVfbmFtZSwgY29sX25hbWUpCisgICAg ICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0 aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkK KyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICAjIEdldCBj b2x1bW4gcG9zaXRpb24gb2YgbmV3bHkgYWRkZWQgY29sdW1uCisgICAgICAg IHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3QgYXR0bnVtIGZyb20gcGdfYXR0 cmlidXRlIHdoZXJlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGF0 dG5hbWU9JyVzJyIgJSBjb2xfbmFtZSkKKyAgICAgICAgY29sID0gcGdfY3Vy c29yLmZldGNob25lKCkKKyAgICAgICAgY29sX3BvcyA9ICcnCisgICAgICAg IGlmIGNvbDoKKyAgICAgICAgICAgIGNvbF9wb3MgPSBjb2xbMF0KKyAgICAg ICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBjb2xfcG9z CisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnBy aW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJhaXNlCisKKwor ZGVmIHZlcmlmeV9jb2x1bW4oc2VydmVyLCBkYl9uYW1lLCBjb2xfbmFtZSk6 CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB2ZXJpZmllcyB0YWJsZSBl eGlzdCBpbiBkYXRhYmFzZSBvciBub3QuCisgICAgOnBhcmFtIHNlcnZlcjog c2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAgICA6 cGFyYW0gZGJfbmFtZTogZGF0YWJhc2UgbmFtZQorICAgIDp0eXBlIGRiX25h bWU6IHN0cgorICAgIDpwYXJhbSBjb2xfbmFtZTogY29sdW1uIG5hbWUKKyAg ICA6dHlwZSBjb2xfbmFtZTogc3RyCisgICAgOnJldHVybiB0YWJsZTogdGFi bGUgcmVjb3JkIGZyb20gZGF0YWJhc2UKKyAgICA6cnR5cGU6IHR1cGxlCisg ICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMu Z2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyWydwb3J0J10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rp b24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVj dCAqIGZyb20gcGdfYXR0cmlidXRlIHdoZXJlIGF0dG5hbWU9JyVzJyIgJQor ICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfbmFtZSkKKyAgICAgICAg Y29sID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlv bi5jbG9zZSgpCisgICAgICAgIHJldHVybiBjb2wKKyAgICBleGNlcHQgRXhj ZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lz LnN0ZGVycikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rl c3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvX19pbml0X18ucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY4NDQ4NgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL19faW5pdF9fLnB5CkBAIC0w LDAgKzEsMTQgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgIworIyAjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMgIwor IyAjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMgIworIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisjCisjCisjIGNsYXNz IENoZWNrQ29uc3RyYWludFRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0 b3IpOgorIyAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisjICAgICAgICAgcmV0 dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2Nv bnN0cmFpbnRfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25z dHJhaW50X2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41ZTI5YmI1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMv dGVzdF9jaGVja19jb25zdHJhaW50X2FkZC5weQpAQCAtMCwwICsxLDczIEBA CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQganNvbgoraW1w b3J0IHV1aWQKKworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2Rl X2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK KyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGlt cG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFi bGVzX3V0aWxzCisKKworY2xhc3MgQ2hlY2tDb25zdHJhaW50QWRkVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2ls bCBhZGQgY2hlY2sgY29uc3RyYWludCB0byBleGlzdGluZyB0YWJsZSIiIgor ICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCdBZGQgY2hlY2sgY29uc3Ry YWludCB0byB0YWJsZScsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIv Y2hlY2tfY29uc3RyYWludHMvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBz ZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBz Y2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJf aWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lk Il0KKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBh IGNoZWNrICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3Ry YWludC4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZv WyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2No ZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBhZGQgYSBjaGVjayAiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImNvbnN0cmFpbnQuIikKKyAgICAgICAgc2VsZi50YWJsZV9u YW1lID0gInRhYmxlX2NoZWNrY29uc3RyYWludF9hZGRfJXMiICUgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2 XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVh dGVfdGFibGUoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQor CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gd2lsbCBhZGQgY2hlY2sgY29uc3RyYWludCB0byB0YWJsZS4iIiIK KyAgICAgICAgY2hlY2tfY29uc3RyYWludF9uYW1lID0gInRlc3RfY2hlY2tj b25zdHJhaW50X2FkZF8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBk YXRhID0geyJuYW1lIjogY2hlY2tfY29uc3RyYWludF9uYW1lLAorICAgICAg ICAgICAgICAgICJjb25zcmMiOiAiIChpZCA+IDApIiwKKyAgICAgICAgICAg ICAgICAiY29udmFsaWRhdGVkIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAi Y29tbWVudCI6ICJ0aGlzIGlzIHRlc3QgY29tbWVudCJ9CisgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRi X2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQp ICsgJy8nICsgc3RyKHNlbGYudGFibGVfaWQpICsgJy8nLAorICAgICAgICAg ICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJE b3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNl CisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uo c2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29u c3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfZGVsZXRlLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X2RlbGV0ZS5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2NkNzE2 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19j b25zdHJhaW50X2RlbGV0ZS5weQpAQCAtMCwwICsxLDc5IEBACisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50 ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAor ICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gLiBpbXBv cnQgdXRpbHMgYXMgY2hrX2NvbnN0cmFpbnRfdXRpbHMKKworCitjbGFzcyBD aGVja0NvbnN0cmFpbnREZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBjaGVjayBjb25z dHJhaW50IHRvIGV4aXN0aW5nIHRhYmxlIiIiCisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAoJ0RlbGV0ZSBjaGVjayBjb25zdHJhaW50IHRvIHRhYmxl JywKKyAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9jaGVja19jb25zdHJh aW50cy9vYmovJykpCisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgor ICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRh YmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0g cGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAg IHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25u ZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIGEgY2hlY2sgIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdHJhaW50LiIpCisg ICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9p ZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1si c2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQor ICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGRlbGV0ZSBhIGNoZWNrICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiY29uc3RyYWludC4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAi dGFibGVfY2hlY2tjb25zdHJhaW50X2RlbGV0ZV8lcyIgJSBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQor ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90 YWJsZShzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAg ICAgIHNlbGYuY2hlY2tfY29uc3RyYWludF9uYW1lID0gInRlc3RfY2hlY2tj b25zdHJhaW50X2RlbGV0ZV8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisg ICAgICAgIHNlbGYuY2hlY2tfY29uc3RyYWludF9pZCA9IFwKKyAgICAgICAg ICAgIGNoa19jb25zdHJhaW50X3V0aWxzLmNyZWF0ZV9jaGVja19jb25zdHJh aW50KAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFibGVfbmFtZSwKKyAgICAg ICAgICAgICAgICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfbmFtZSkKKworICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHdpbGwgZGVsZXRlIGNoZWNrIGNvbnN0cmFpbnQgdG8gdGFibGUuIiIiCisg ICAgICAgIGNoa19jb25zdHJhaW50ID0gY2hrX2NvbnN0cmFpbnRfdXRpbHMu dmVyaWZ5X2NoZWNrX2NvbnN0cmFpbnQoCisgICAgICAgICAgICBzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfbmFt ZSkKKyAgICAgICAgaWYgbm90IGNoa19jb25zdHJhaW50OgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgY2hlY2sg Y29uc3RyYWludCB0byBkZWxldGUuIikKKyAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICAiezB9ezF9L3syfS97 M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNo ZWNrX2NvbnN0cmFpbnRfaWQpLAorICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFy RG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFz ZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X2dldC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25z dHJhaW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9nZXQucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFhN2Y4NgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3Ry YWludF9nZXQucHkKQEAgLTAsMCArMSw3NSBAQAorIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworaW1wb3J0IHV1aWQKKworZnJvbSByZWdyZXNzaW9uIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1w b3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0 aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBv cnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIGNoa19jb25zdHJhaW50X3V0aWxzCisKKworY2xhc3MgQ2hlY2tDb25z dHJhaW50R2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIi IlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBjaGVjayBjb25zdHJhaW50IHRvIGV4 aXN0aW5nIHRhYmxlIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAo J0ZldGNoIGNoZWNrIGNvbnN0cmFpbnQgdG8gdGFibGUnLAorICAgICAgICAg ZGljdCh1cmw9Jy9icm93c2VyL2NoZWNrX2NvbnN0cmFpbnRzL29iai8nKSkK KyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZSB0byBmZXRjaCBhIGNoZWNrICIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiY29uc3RyYWludC4iKQorICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBmZXRjaCBhIGNoZWNr ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RyYWludC4i KQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY2hlY2tjb25z dHJhaW50X2dldF8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAg IChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRhYmxl X2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYuY2hlY2tfY29u c3RyYWludF9uYW1lID0gInRlc3RfY2hlY2tjb25zdHJhaW50X2dldF8lcyIg JSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAgIHNlbGYuY2hlY2tfY29u c3RyYWludF9pZCA9IFwKKyAgICAgICAgICAgIGNoa19jb25zdHJhaW50X3V0 aWxzLmNyZWF0ZV9jaGVja19jb25zdHJhaW50KAorICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUs IHNlbGYudGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNr X2NvbnN0cmFpbnRfbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggY2hlY2sgY29u c3RyYWludCB0byB0YWJsZS4iIiIKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5nZXQoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9 L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYudGFibGVfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX2Nv bnN0cmFpbnRfaWQpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFp bnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X3B1dC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50 L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9wdXQucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVkODU0NwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9j aGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9w dXQucHkKQEAgLTAsMCArMSw4MiBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworaW1wb3J0IHV1aWQKK2ltcG9ydCBqc29uCisKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNj aGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisg ICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBjaGtfY29uc3RyYWludF91dGlscworCisKK2NsYXNzIENo ZWNrQ29uc3RyYWludFB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK KyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGNoZWNrIGNvbnN0cmFp bnQgdG8gZXhpc3RpbmcgdGFibGUiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisg ICAgICAgICgnVXBkYXRlIGNoZWNrIGNvbnN0cmFpbnQgdG8gdGFibGUnLAor ICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2NoZWNrX2NvbnN0cmFpbnRz L29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJl bnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2Vs Zi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZSB0byB1cGRhdGUgYSBjaGVjayAiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQuIikKKyAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0K KyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAg ICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gdXBk YXRlIGEgY2hlY2sgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj b25zdHJhaW50LiIpCisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJs ZV9jaGVja2NvbnN0cmFpbnRfcHV0XyVzIiAlIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAg IHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNl bGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2Vs Zi5jaGVja19jb25zdHJhaW50X25hbWUgPSAidGVzdF9jaGVja2NvbnN0cmFp bnRfcHV0XyVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2Vs Zi5jaGVja19jb25zdHJhaW50X2lkID0gXAorICAgICAgICAgICAgY2hrX2Nv bnN0cmFpbnRfdXRpbHMuY3JlYXRlX2NoZWNrX2NvbnN0cmFpbnQoCisgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5z Y2hlbWFfbmFtZSwgc2VsZi50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAg IHNlbGYuY2hlY2tfY29uc3RyYWludF9uYW1lKQorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxl dGUgY2hlY2sgY29uc3RyYWludCB0byB0YWJsZS4iIiIKKyAgICAgICAgY2hr X2NvbnN0cmFpbnQgPSBjaGtfY29uc3RyYWludF91dGlscy52ZXJpZnlfY2hl Y2tfY29uc3RyYWludCgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsIHNlbGYuY2hlY2tfY29uc3RyYWludF9uYW1lKQorICAgICAg ICBpZiBub3QgY2hrX2NvbnN0cmFpbnQ6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBjaGVjayBjb25zdHJhaW50 IHRvIHVwZGF0ZS4iKQorICAgICAgICBkYXRhID0geyJvaWQiOiBzZWxmLmNo ZWNrX2NvbnN0cmFpbnRfaWQsCisgICAgICAgICAgICAgICAgImNvbW1lbnQi OiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQgZm9yIGNoZWNrIGNvbnN0cmFpbnQu In0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAg ICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChz ZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfaWQpLAorICAg ICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRl YXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFi YXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tf Y29uc3RyYWludC90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3V0aWxz LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NmVi MzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy91dGlscy5weQpA QCAtMCwwICsxLDg5IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjICNwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj ICNDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjICNUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp bnRfZnVuY3Rpb24KK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCBzeXMKKwor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCisK KworZGVmIGNyZWF0ZV9jaGVja19jb25zdHJhaW50KHNlcnZlciwgZGJfbmFt ZSwgc2NoZW1hX25hbWUsIHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hlY2tfY29uc3RyYWludF9uYW1lKToKKyAgICAiIiIK KyAgICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBjaGVjayBjb25zdHJhaW50 IHVuZGVyIHByb3ZpZGVkIHRhYmxlLgorICAgIDpwYXJhbSBzZXJ2ZXI6IHNl cnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0CisgICAgOnBh cmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlwZSBkYl9uYW1l OiBzdHIKKyAgICA6cGFyYW0gc2NoZW1hX25hbWU6IHNjaGVtYSBuYW1lCisg ICAgOnR5cGUgc2NoZW1hX25hbWU6IHN0cgorICAgIDpwYXJhbSB0YWJsZV9u YW1lOiB0YWJsZSBuYW1lCisgICAgOnR5cGUgdGFibGVfbmFtZTogc3RyCisg ICAgOnBhcmFtIGNoZWNrX2NvbnN0cmFpbnRfbmFtZTogY29uc3RyYWludCBu YW1lCisgICAgOnR5cGUgY2hlY2tfY29uc3RyYWludF9uYW1lOiBzdHIKKyAg ICA6cmV0dXJuIGNoa19jb25zdHJhaW50X2lkOiBjaGVjayBjb25zdHJhaW50 IGlkCisgICAgOnJ0eXBlOiBpbnQKKyAgICAiIiIKKyAgICB0cnk6CisgICAg ICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29y ZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAg ICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9u X2xldmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZl bCgwKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigp CisgICAgICAgIHF1ZXJ5ID0gIkFMVEVSIFRBQkxFICVzLiVzIEFERCBDT05T VFJBSU5UICVzIENIRUNLICggKGlkID4gMCkpICIgXAorICAgICAgICAgICAg ICAgICJOT1QgVkFMSUQ7IENPTU1FTlQgT04gQ09OU1RSQUlOVCAlcyBPTiAl cy4lcyBJUyAiIFwKKyAgICAgICAgICAgICAgICAiJ3RoaXMgaXMgdGVzdCBj b21tZW50JyIgJSAoc2NoZW1hX25hbWUsIHRhYmxlX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2Nv bnN0cmFpbnRfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2hlY2tfY29uc3RyYWludF9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFf bmFtZSwgdGFibGVfbmFtZSkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUo cXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZl bChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICBjb25uZWN0aW9uLmNv bW1pdCgpCisgICAgICAgICMgR2V0IG9pZCBvZiBuZXdseSBhZGRlZCBjaGVj ayBjb25zdHJhaW50CisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKAorICAg ICAgICAgICAgIlNFTEVDVCBvaWQgRlJPTSBwZ19jb25zdHJhaW50IHdoZXJl IGNvbm5hbWU9JyVzJyIgJQorICAgICAgICAgICAgY2hlY2tfY29uc3RyYWlu dF9uYW1lKQorICAgICAgICBjaGtfY29uc3RyYWludF9yZWNvcmQgPSBwZ19j dXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkK KyAgICAgICAgY2hrX2NvbnN0cmFpbnRfaWQgPSBjaGtfY29uc3RyYWludF9y ZWNvcmRbMF0KKyAgICAgICAgcmV0dXJuIGNoa19jb25zdHJhaW50X2lkCisg ICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50 X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisKKworZGVmIHZlcmlmeV9jaGVja19j b25zdHJhaW50KHNlcnZlciwgZGJfbmFtZSwgY2hlY2tfY29uc3RyYWludF9u YW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzIGNo ZWNrIGNvbnN0cmFpbnQgY29uc3RyYWludCBleGlzdCBvciBub3QuCisgICAg OnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2 ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJfbmFtZTogZGF0YWJhc2UgbmFtZQor ICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJhbSBjaGVja19jb25z dHJhaW50X25hbWU6IGNvbnN0cmFpbnQgbmFtZQorICAgIDp0eXBlIGNoZWNr X2NvbnN0cmFpbnRfbmFtZTogc3RyCisgICAgOnJldHVybiBjaGtfY29uc3Ry YWludF9yZWNvcmQ6IGNoZWNrIGNvbnN0cmFpbnQgcmVjb3JkIGZyb20gZGF0 YWJhc2UKKyAgICA6cnR5cGU6IHR1cGxlCisgICAgIiIiCisgICAgdHJ5Ogor ICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24o ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFz c3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10pCisg ICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAg ICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisgICAgICAgICAgICAiU0VMRUNUIG9p ZCBGUk9NIHBnX2NvbnN0cmFpbnQgd2hlcmUgY29ubmFtZT0nJXMnIiAlCisg ICAgICAgICAgICBjaGVja19jb25zdHJhaW50X25hbWUpCisgICAgICAgIGNo a19jb25zdHJhaW50X3JlY29yZCA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisg ICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gY2hr X2NvbnN0cmFpbnRfcmVjb3JkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAg ICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Zm9yZWlnbl9rZXkvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvX19pbml0 X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ0 NTAxNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy9fX2luaXRfXy5weQpA QCAtMCwwICsxLDE1IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjICMKKyMgIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj ICMKKyMgIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjICMKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorIworIworIyBj bGFzcyBGb3JlaWduS2V5VGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRv cik6CisjCisjICAgICBkZWYgcnVuVGVzdChzZWxmKToKKyMgICAgICAgICBy ZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5 X2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9m b3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2FkZC5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmNiMmZhCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFp bnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWlnbl9rZXlfYWRkLnB5 CkBAIC0wLDAgKzEsNzkgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK K2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFf dXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGlt cG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKKworCitjbGFzcyBGb3JlaWdu S2V5QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRo aXMgY2xhc3Mgd2lsbCBhZGQgZm9yZWlnbiBrZXkgdG8gZXhpc3RpbmcgdGFi bGUiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnQWRkIGZvcmVp Z24gS2V5IGNvbnN0cmFpbnQgdG8gdGFibGUnLAorICAgICAgICAgZGljdCh1 cmw9Jy9icm93c2VyL2ZvcmVpZ25fa2V5L29iai8nKSkKKyAgICBdCisKKyAg ICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAg ICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEi XVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1si c2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3Qg ZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0 byBhZGQgYSBmb3JlaWduICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAia2V5IGNvbnN0cmFpbnQuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQg PSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAg IHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFf cmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgZm9yZWlnbiAiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImtleSBjb25zdHJhaW50LiIpCisg ICAgICAgIHNlbGYubG9jYWxfdGFibGVfbmFtZSA9ICJ0YWJsZV9mb3JlaWdu a2V5XyVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAgIHNlbGYubG9jYWxf dGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9jYWxfdGFibGVf bmFtZSkKKyAgICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUgPSAidGFi bGVfZm9yZWlnbmtleV8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAg IHNlbGYuZm9yZWlnbl90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVf dGFibGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LCBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi5mb3JlaWdu X3RhYmxlX25hbWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBmb3JlaWduIGtleSB0YWJs ZSBjb2x1bW4uIiIiCisgICAgICAgIGZvcmVpZ25rZXlfbmFtZSA9ICJ0ZXN0 X2ZvcmVpZ25rZXlfYWRkXyVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAgIGRhdGEg PSB7Im5hbWUiOiBmb3JlaWdua2V5X25hbWUsCisgICAgICAgICAgICAgICAg ImNvbHVtbnMiOiBbeyJsb2NhbF9jb2x1bW4iOiAiaWQiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAicmVmZXJlbmNlcyI6IHNlbGYuZm9yZWln bl90YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl ZmVyZW5jZWQiOiAiaWQifV0sCisgICAgICAgICAgICAgICAgImNvbmZ1cGR0 eXBlIjogImEiLCAiY29uZmRlbHR5cGUiOiAiYSIsICJhdXRvaW5kZXgiOiBG YWxzZX0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAor ICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsgc3RyKHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0 cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoc2VsZi5sb2NhbF90YWJs ZV9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0 YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25f a2V5X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2RlbGV0 ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmZm OTRiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWlnbl9r ZXlfZGVsZXRlLnB5CkBAIC0wLDAgKzEsODMgQEAKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKK2ltcG9ydCB1dWlkCisKK2Zyb20gcmVncmVzc2lvbiBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1w b3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSAuIGltcG9ydCB1dGls cyBhcyBma191dGlscworCisKK2NsYXNzIEZvcmVpZ25LZXlEZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGRlbGV0ZSBmb3JlaWduIGtleSB0byBleGlzdGluZyB0YWJsZSIiIgor ICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCdEZWxldGUgZm9yZWlnbiBL ZXkgY29uc3RyYWludC4nLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2Vy L2ZvcmVpZ25fa2V5L29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAo c2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2Rp Y3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1h X2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRh J11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZSB0byBkZWxldGUgYSBmb3JlaWduICIKKyAgICAgICAgICAgICAgICAi a2V5IGNvbnN0cmFpbnQuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhz ZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVz cG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIGEgZm9yZWlnbiAiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImtleSBjb25zdHJhaW50LiIpCisg ICAgICAgIHNlbGYubG9jYWxfdGFibGVfbmFtZSA9ICJsb2NhbF90YWJsZV9m b3JlaWdua2V5X2RlbGV0ZV8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAg ICBzZWxmLmxvY2FsX3RhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90 YWJsZSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs IHNlbGYuc2NoZW1hX25hbWUsIHNlbGYubG9jYWxfdGFibGVfbmFtZSkKKyAg ICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUgPSAiZm9yZWlnbl90YWJs ZV9mb3JlaWdua2V5X2RlbGV0ZV8lcyIgJSBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisg ICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9pZCA9IHRhYmxlc191dGlscy5j cmVhdGVfdGFibGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi5m b3JlaWduX3RhYmxlX25hbWUpCisgICAgICAgIHNlbGYuZm9yZWlnbl9rZXlf bmFtZSA9ICJ0ZXN0X2ZvcmVpZ25rZXlfZGVsZXRlXyVzIiAlIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkp WzE6Nl0pCisgICAgICAgIHNlbGYuZm9yZWlnbl9rZXlfaWQgPSBma191dGls cy5jcmVhdGVfZm9yZWlnbmtleSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYubG9jYWxf dGFibGVfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9u YW1lKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgZm9yZWlnbiBrZXkgYXR0YWNoZWQg dG8gdGFibGUgY29sdW1uLiIiIgorICAgICAgICBma19yZXNwb25zZSA9IGZr X3V0aWxzLnZlcmlmeV9mb3JlaWdua2V5KHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9uYW1lKQorICAgICAgICBp ZiBub3QgZmtfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBmaW5kIHRoZSBmb3JlaWduIGtleSBjb25zdHJhaW50 IHRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsZXRlLiIp CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAg ICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQo c2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmxvY2FsX3RhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5mb3JlaWduX2tleV9pZCksCisg ICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAgKQor ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAj IERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3JlaWdu X2tleV9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tleV9nZXQucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA3ZDZjNwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2dl dC5weQpAQCAtMCwwICsxLDc4IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCitpbXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGls cyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZmtf dXRpbHMKKworCitjbGFzcyBGb3JlaWduR2V0RGVsZXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRj aCBmb3JlaWduIGtleSBmcm9tIGV4aXN0aW5nIHRhYmxlIiIiCisgICAgc2Nl bmFyaW9zID0gWworICAgICAgICAoJ0ZldGNoIGZvcmVpZ24gS2V5IGNvbnN0 cmFpbnQuJywKKyAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWdu X2tleS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgor ICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRh YmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0g cGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAg IHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25u ZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAg ICAgICAgICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8g ZmV0Y2ggYSBmb3JlaWduICIKKyAgICAgICAgICAgICAgICAia2V5IGNvbnN0 cmFpbnQuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5m b1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBzY2hlbWEgdG8gZmV0Y2ggYSBmb3JlaWduICIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAia2V5IGNvbnN0cmFpbnQuIikKKyAgICAgICAgc2Vs Zi5sb2NhbF90YWJsZV9uYW1lID0gImxvY2FsX3RhYmxlX2ZvcmVpZ25rZXlf Z2V0XyVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAgIHNlbGYubG9jYWxf dGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKAorICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFf bmFtZSwgc2VsZi5sb2NhbF90YWJsZV9uYW1lKQorICAgICAgICBzZWxmLmZv cmVpZ25fdGFibGVfbmFtZSA9ICJmb3JlaWduX3RhYmxlX2ZvcmVpZ25rZXlf Z2V0XyVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2VsZi5mb3Jl aWduX3RhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKKyAg ICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2No ZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVfbmFt ZSkKKyAgICAgICAgc2VsZi5mb3JlaWduX2tleV9uYW1lID0gInRlc3RfZm9y ZWlnbmtleV9nZXRfJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2Vs Zi5mb3JlaWduX2tleV9pZCA9IGZrX3V0aWxzLmNyZWF0ZV9mb3JlaWdua2V5 KAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5zY2hlbWFfbmFtZSwgc2VsZi5sb2NhbF90YWJsZV9uYW1lLAorICAgICAg ICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUpCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRl bGV0ZSBmb3JlaWduIGtleSBhdHRhY2hlZCB0byB0YWJsZSBjb2x1bW4uIiIi CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAg ICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQoc2Vs Zi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LCBzZWxmLmRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxv Y2FsX3RhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5mb3JlaWduX2tleV9pZCksCisgICAg ICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAgKQorICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tl eV9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Zm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tleV9wdXQucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE5OTZjZAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X3B1dC5w eQpAQCAtMCwwICsxLDgyIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSByZWdyZXNzaW9u IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1h X3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBp bXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGZrX3V0aWxzCisKKworY2xhc3MgRm9yZWlnblB1dERlbGV0ZVRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNz IHdpbGwgdXBkYXRlIGZvcmVpZ24ga2V5IGZyb20gZXhpc3RpbmcgdGFibGUi IiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnRmV0Y2ggZm9yZWln biBLZXkgY29uc3RyYWludC4nLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93 c2VyL2ZvcmVpZ25fa2V5L29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0 VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lk Il0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJd CisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydk YXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBmZXRjaCBhIGZvcmVpZ24gIgorICAgICAgICAgICAgICAg ICJrZXkgY29uc3RyYWludC4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9 IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVt YV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAg c2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byBmZXRjaCBhIGZvcmVpZ24gIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgY29uc3RyYWludC4iKQor ICAgICAgICBzZWxmLmxvY2FsX3RhYmxlX25hbWUgPSAibG9jYWxfdGFibGVf Zm9yZWlnbmtleV9nZXRfJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAg c2VsZi5sb2NhbF90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFi bGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBz ZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmxvY2FsX3RhYmxlX25hbWUpCisgICAg ICAgIHNlbGYuZm9yZWlnbl90YWJsZV9uYW1lID0gImZvcmVpZ25fdGFibGVf Zm9yZWlnbmtleV9nZXRfJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAg ICBzZWxmLmZvcmVpZ25fdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuZm9yZWln bl90YWJsZV9uYW1lKQorICAgICAgICBzZWxmLmZvcmVpZ25fa2V5X25hbWUg PSAidGVzdF9mb3JlaWdua2V5X2dldF8lcyIgJSBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQor ICAgICAgICBzZWxmLmZvcmVpZ25fa2V5X2lkID0gZmtfdXRpbHMuY3JlYXRl X2ZvcmVpZ25rZXkoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmxvY2FsX3RhYmxlX25h bWUsCisgICAgICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVfbmFtZSkKKwor ICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlIGZvcmVpZ24ga2V5IGF0dGFjaGVkIHRvIHRhYmxl IGNvbHVtbi4iIiIKKyAgICAgICAgZGF0YSA9IHsib2lkIjogc2VsZi5mb3Jl aWduX2tleV9pZCwKKyAgICAgICAgICAgICAgICAiY29tbWVudCI6ICJUaGlz IGlzIFRFU1QgY29tbWVudCBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludC4i CisgICAgICAgICAgICAgICAgfQorICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLnB1dCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0v ezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZm9y ZWlnbl9rZXlfaWQpLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvdXRpbHMucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVz dHMvdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uODExMTgwMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy91dGlscy5w eQpAQCAtMCwwICsxLDg4IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjICNwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjICNDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjICNUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg cHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCBzeXMK KworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz CisKKworZGVmIGNyZWF0ZV9mb3JlaWdua2V5KHNlcnZlciwgZGJfbmFtZSwg c2NoZW1hX25hbWUsIGxvY2FsX3RhYmxlX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgZm9yZWlnbl90YWJsZV9uYW1lKToKKyAgICAiIiIKKyAgICBU aGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBjb2x1bW4gdW5kZXIgcHJvdmlkZWQg dGFibGUuCisgICAgOnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKKyAg ICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJfbmFtZTogZGF0 YWJhc2UgbmFtZQorICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJh bSBzY2hlbWFfbmFtZTogc2NoZW1hIG5hbWUKKyAgICA6dHlwZSBzY2hlbWFf bmFtZTogc3RyCisgICAgOnBhcmFtIGxvY2FsX3RhYmxlX25hbWU6IGxvY2Fs IHRhYmxlIG5hbWUKKyAgICA6dHlwZSBsb2NhbF90YWJsZV9uYW1lOiBzdHIK KyAgICA6cGFyYW0gZm9yZWlnbl90YWJsZV9uYW1lOiBmb3JlaWduIHRhYmxl IG5hbWUKKyAgICA6dHlwZSBmb3JlaWduX3RhYmxlX25hbWU6IHN0cgorICAg IDpyZXR1cm4gdGFibGVfaWQ6IHRhYmxlIGlkCisgICAgOnJ0eXBlOiBpbnQK KyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGls cy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFt ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZl bCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAgIGNvbm5l Y3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19jdXJz b3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHF1ZXJ5ID0gIkFM VEVSIFRBQkxFICVzLiVzIEFERCBGT1JFSUdOIEtFWSAoaWQpIFJFRkVSRU5D RVMgJXMuJXMgIiBcCisgICAgICAgICAgICAgICAgIihpZCkgTUFUQ0ggU0lN UExFIE9OIFVQREFURSBOTyBBQ1RJT04gT04gREVMRVRFIE5PIEFDVElPTiIg JSBcCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICBz Y2hlbWFfbmFtZSwgbG9jYWxfdGFibGVfbmFtZSwgc2NoZW1hX25hbWUsCisg ICAgICAgICAgICAgICAgICAgIGZvcmVpZ25fdGFibGVfbmFtZSkKKyAgICAg ICAgcGdfY3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rp b24uc2V0X2lzb2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQor ICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgICMgR2V0IG9p ZCBvZiBuZXdseSBhZGRlZCBmb3JlaWduIGtleQorICAgICAgICBwZ19jdXJz b3IuZXhlY3V0ZSgKKyAgICAgICAgICAgICJTRUxFQ1Qgb2lkIEZST00gcGdf Y29uc3RyYWludCB3aGVyZSBjb25uYW1lPSclc19pZF9ma2V5JyIgJQorICAg ICAgICAgICAgbG9jYWxfdGFibGVfbmFtZSkKKyAgICAgICAgZmtfcmVjb3Jk ID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5j bG9zZSgpCisgICAgICAgIGZrX2lkID0gZmtfcmVjb3JkWzBdCisgICAgICAg IHJldHVybiBma19pZAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg IHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorCisKK2Rl ZiB2ZXJpZnlfZm9yZWlnbmtleShzZXJ2ZXIsIGRiX25hbWUsIGxvY2FsX3Rh YmxlX25hbWUpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZp ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCBleGlzdCBvciBub3QuCisgICAg OnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2 ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJfbmFtZTogZGF0YWJhc2UgbmFtZQor ICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJhbSBsb2NhbF90YWJs ZV9uYW1lOiBsb2NhbCB0YWJsZSBuYW1lCisgICAgOnR5cGUgbG9jYWxfdGFi bGVfbmFtZTogc3RyCisgICAgOnJldHVybiB0YWJsZTogdGFibGUgcmVjb3Jk IGZyb20gZGF0YWJhc2UKKyAgICA6cnR5cGU6IHR1cGxlCisgICAgIiIiCisg ICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nv bm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydw b3J0J10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29y KCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisgICAgICAgICAgICAi U0VMRUNUIG9pZCBGUk9NIHBnX2NvbnN0cmFpbnQgd2hlcmUgY29ubmFtZT0n JXNfaWRfZmtleSciICUKKyAgICAgICAgICAgIGxvY2FsX3RhYmxlX25hbWUp CisgICAgICAgIGZrX3JlY29yZCA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisg ICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gZmtf cmVjb3JkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2Vi YWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3Ry YWludC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9pbmRleF9jb25zdHJhaW50L19faW5pdF9fLnB5CmluZGV4IGYz NTAzNDUuLjM5OWZkMDYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L19faW5pdF9fLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRl eF9jb25zdHJhaW50L19faW5pdF9fLnB5CkBAIC01NzcsNyArNTc3LDYgQEAg Y2xhc3MgSW5kZXhDb25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgog ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4sCiAg ICAgICAgICAgICAgICAgY29uc3RyYWludF9uYW1lPXNlbGYuY29uc3RyYWlu dF9uYW1lCiAgICAgICAgICAgICApCi0KICAgICAgICAgICAgIHN0YXR1cywg bXNnID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICAgICAgc2VsZi5lbmRf dHJhbnNhY3Rpb24oKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5k ZXhfY29uc3RyYWludC90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjJjZjM4Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4 X2NvbnN0cmFpbnQvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNSBA QAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyAjCisjICMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIyAjCisjICMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIyAjCisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKKyMKKyMKKyMgY2xhc3MgSW5kZXhDb25z dHJhaW50VGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6CisjCisj ICAgICBkZWYgcnVuVGVzdChzZWxmKToKKyMgICAgICAgICByZXR1cm4gW10K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50 cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWlu dF9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv aW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRf YWRkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5 N2YyNDkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2lu ZGV4X2NvbnN0cmFpbnRfYWRkLnB5CkBAIC0wLDAgKzEsODQgQEAKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVp ZAorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRh dGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwK KyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50 YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRp bHMKKworCitjbGFzcyBJbmRleENvbnN0cmFpbnRBZGRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFkZCBp bmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkpIHRv CisgICAgdGFibGUgY29sdW1uIiIiCisgICAgcHJpbWFyeV9rZXlfbmFtZSA9 ICJ0ZXN0X3ByaW1hcnlrZXlfYWRkXyVzIiAlIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgcHJpbWFy eV9rZXlfZGF0YSA9IHsibmFtZSI6IHByaW1hcnlfa2V5X25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAic3BjbmFtZSI6ICJwZ19kZWZhdWx0IiwK KyAgICAgICAgICAgICAgICAgICAgICAgICJjb2x1bW5zIjogW3siY29sdW1u IjogImlkIn1dCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgdW5p cXVlX2tleV9uYW1lID0gInRlc3RfdW5pcXVla2V5X2FkZF8lcyIgJSBcCisg ICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0p CisgICAgdW5pcXVlX2tleV9kYXRhID0geyJuYW1lIjogdW5pcXVlX2tleV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAic3BjbmFtZSI6ICJwZ19k ZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgImNvbHVtbnMiOiBb eyJjb2x1bW4iOiAiaWQifV19CisgICAgc2NlbmFyaW9zID0gWworICAgICAg ICAoJ0FkZCBwcmltYXJ5IEtleSBjb25zdHJhaW50IHRvIHRhYmxlJywKKyAg ICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9wcmltYXJ5X2tleS9vYmovJywg ZGF0YT1wcmltYXJ5X2tleV9kYXRhKSksCisgICAgICAgICgnQWRkIHVuaXF1 ZSBLZXkgY29uc3RyYWludCB0byB0YWJsZScsCisgICAgICAgICBkaWN0KHVy bD0nL2Jyb3dzZXIvdW5pcXVlX2NvbnN0cmFpbnQvb2JqLycsIGRhdGE9dW5p cXVlX2tleV9kYXRhKSkKKyAgICBdCisKKyAgICBAY2xhc3NtZXRob2QKKyAg ICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICBjbHMuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K KyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hl bWEiXVstMV0KKyAgICAgICAgY2xzLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfaWQiXQorICAgICAgICBjbHMuZGJfaWQgPSBzY2hlbWFfaW5m b1siZGJfaWQiXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKGNscywgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8g YWRkIGEgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRleCBj b25zdHJhaW50KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkpLiIpCisgICAg ICAgIGNscy5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0K KyAgICAgICAgY2xzLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKGNscy5zZXJ2ZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMu ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSkKKyAgICAgICAg aWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBp bmRleCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFp bnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKKyAgICAgICAgY2xz LnRhYmxlX25hbWUgPSAidGFibGVfaW5kZXhjb25zdHJhaW50XyVzIiAlIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlb MTo2XSkKKyAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNy ZWF0ZV90YWJsZShjbHMuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNscy5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKworICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHdpbGwgYWRkIGluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5p cXVlIGtleSkKKyAgICAgICAgdG8gdGFibGUgY29sdW1uLiIiIgorICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2Vs Zi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1h X2lkKSArICcvJyArIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJywKKyAgICAg ICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLmRhdGEpLAorICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAg QGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAg ICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKGNscywgY2xzLnNlcnZl cl9pZCwgY2xzLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVz dF9pbmRleF9jb25zdHJhaW50X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rl c3RfaW5kZXhfY29uc3RyYWludF9kZWxldGUucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMjU1MmExYgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9j b25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9kZWxldGUu cHkKQEAgLTAsMCArMSw4NSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworaW1wb3J0IHV1aWQKKworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMg YXMgdGFibGVzX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGluZGV4 X2NvbnN0cmFpbnRfdXRpbHMKKworCitjbGFzcyBJbmRleENvbnN0cmFpbnRE ZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhp cyBjbGFzcyB3aWxsIGRlbGV0ZSBpbmRleCBjb25zdHJhaW50KHByaW1hcnkg a2V5IG9yIHVuaXF1ZSBrZXkpIG9mCisgICAgdGFibGUgY29sdW1uIiIiCisg ICAgcHJpbWFyeV9rZXlfbmFtZSA9ICJ0ZXN0X3ByaW1hcnlrZXlfZGVsZXRl XyVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6Nl0pCisgICAgdW5pcXVlX2tleV9uYW1lID0gInRlc3RfdW5p cXVla2V5X2RlbGV0ZV8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAg KHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgc2NlbmFyaW9zID0gWwor ICAgICAgICAoJ0RlbGV0ZSBwcmltYXJ5IEtleSBjb25zdHJhaW50IG9mIHRh YmxlJywKKyAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9wcmltYXJ5X2tl eS9vYmovJywgbmFtZT1wcmltYXJ5X2tleV9uYW1lLAorICAgICAgICAgICAg ICB0eXBlPSJQUklNQVJZIEtFWSIpKSwKKyAgICAgICAgKCdEZWxldGUgdW5p cXVlIEtleSBjb25zdHJhaW50IG9mIHRhYmxlJywKKyAgICAgICAgIGRpY3Qo dXJsPScvYnJvd3Nlci91bmlxdWVfY29uc3RyYWludC9vYmovJywgbmFtZT11 bmlxdWVfa2V5X25hbWUsCisgICAgICAgICAgICAgIHR5cGU9IlVOSVFVRSIp KQorICAgIF0KKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXRVcENs YXNzKGNscyk6CisgICAgICAgIGNscy5kYl9uYW1lID0gcGFyZW50X25vZGVf ZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAg ICAgICBjbHMuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJd CisgICAgICAgIGNscy5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2UoY2xzLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9p ZCwgY2xzLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11b ImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSAiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4IGNvbnN0cmFpbnQocHJp bWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKKyAgICAgICAgY2xzLnNjaGVt YV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBjbHMu c2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAg ICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3Nj aGVtYXMoY2xzLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xzLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1h X3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGluZGV4ICIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RyYWludChwcmltYXJ5IGtl eSBvciB1bmlxdWUga2V5KS4iKQorICAgICAgICBjbHMudGFibGVfbmFtZSA9 ICJ0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMiICUgXAorICAgICAgICAgICAg ICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAg ICBjbHMudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNs cy5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNscy50YWJsZV9uYW1lKQorCisgICAgZGVmIHJ1blRlc3Qo c2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUg aW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBvcgorICAgICAgICB1bmlx dWUga2V5KSBvZiB0YWJsZSBjb2x1bW4uIiIiCisgICAgICAgIGluZGV4X2Nv bnN0cmFpbnRfaWQgPSBcCisgICAgICAgICAgICBpbmRleF9jb25zdHJhaW50 X3V0aWxzLmNyZWF0ZV9pbmRleF9jb25zdHJhaW50KAorICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25h bWUsIHNlbGYudGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICBzZWxmLm5h bWUsIHNlbGYudHlwZSkKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5kZWxldGUoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1 fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYudGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9jb25zdHJhaW50 X2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAg ICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYg dGVhckRvd25DbGFzcyhjbHMpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2UoY2xzLCBjbHMuc2VydmVyX2lkLCBjbHMuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5k ZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZ2V0 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4 X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2dldC5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTJjZjYz Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9j b25zdHJhaW50X2dldC5weQpAQCAtMCwwICsxLDg1IEBACisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hl bWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAg IGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gLiBpbXBvcnQg dXRpbHMgYXMgaW5kZXhfY29uc3RyYWludF91dGlscworCisKK2NsYXNzIElu ZGV4Q29uc3RyYWludEdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK KyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggdGhlIGluZGV4IGNvbnN0 cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkgb2YKKyAgICB0YWJs ZSBjb2x1bW4iIiIKKyAgICBwcmltYXJ5X2tleV9uYW1lID0gInRlc3RfcHJp bWFyeWtleV9kZWxldGVfJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICB1bmlxdWVfa2V5X25h bWUgPSAidGVzdF91bmlxdWVrZXlfZGVsZXRlXyVzIiAlIFwKKyAgICAgICAg ICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICBz Y2VuYXJpb3MgPSBbCisgICAgICAgICgnRmV0Y2ggcHJpbWFyeSBLZXkgY29u c3RyYWludCBvZiB0YWJsZScsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dz ZXIvcHJpbWFyeV9rZXkvb2JqLycsIG5hbWU9cHJpbWFyeV9rZXlfbmFtZSwK KyAgICAgICAgICAgICAgdHlwZT0iUFJJTUFSWSBLRVkiKSksCisgICAgICAg ICgnRmV0Y2ggdW5pcXVlIEtleSBjb25zdHJhaW50IG9mIHRhYmxlJywKKyAg ICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci91bmlxdWVfY29uc3RyYWludC9v YmovJywgbmFtZT11bmlxdWVfa2V5X25hbWUsCisgICAgICAgICAgICAgIHR5 cGU9IlVOSVFVRSIpKQorICAgIF0KKworICAgIEBjbGFzc21ldGhvZAorICAg IGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAgICAgIGNscy5kYl9uYW1lID0g cGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQor ICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVt YSJdWy0xXQorICAgICAgICBjbHMuc2VydmVyX2lkID0gc2NoZW1hX2luZm9b InNlcnZlcl9pZCJdCisgICAgICAgIGNscy5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2UoY2xzLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBh ZGQgYSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4IGNv bnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKKyAgICAg ICAgY2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQor ICAgICAgICBjbHMuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1h X25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lKQorICAgICAgICBp ZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGlu ZGV4ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RyYWlu dChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQorICAgICAgICBjbHMu dGFibGVfbmFtZSA9ICJ0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMiICUgXAor ICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsx OjZdKQorICAgICAgICBjbHMudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3Jl YXRlX3RhYmxlKGNscy5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNscy50YWJsZV9uYW1lKQorCisgICAg ZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24g d2lsbCBmZXRjaCB0aGUgaW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBv cgorICAgICAgICB1bmlxdWUga2V5KSBvZiB0YWJsZSBjb2x1bW4uIiIiCisg ICAgICAgIGluZGV4X2NvbnN0cmFpbnRfaWQgPSBcCisgICAgICAgICAgICBp bmRleF9jb25zdHJhaW50X3V0aWxzLmNyZWF0ZV9pbmRleF9jb25zdHJhaW50 KAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs IHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFibGVfbmFtZSwKKyAgICAgICAg ICAgICAgICBzZWxmLm5hbWUsIHNlbGYudHlwZSkKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICAiezB9ezF9L3sy fS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRl eF9jb25zdHJhaW50X2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZQorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICBAY2xhc3NtZXRo b2QKKyAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2UoY2xzLCBjbHMuc2VydmVyX2lkLCBjbHMu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2Nv bnN0cmFpbnRfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25z dHJhaW50X3B1dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5iYTE5NjgxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMv dGVzdF9pbmRleF9jb25zdHJhaW50X3B1dC5weQpAQCAtMCwwICsxLDg4IEBA CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAoraW1w b3J0IGpzb24KKworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2Rl X2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK KyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGlt cG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFi bGVzX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGluZGV4X2NvbnN0 cmFpbnRfdXRpbHMKKworCitjbGFzcyBJbmRleENvbnN0cmFpbnRVcGRhdGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFz cyB3aWxsIHVwZGF0ZSBpbmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9y IHVuaXF1ZSBrZXkpIG9mCisgICAgdGFibGUgY29sdW1uIiIiCisgICAgcHJp bWFyeV9rZXlfbmFtZSA9ICJ0ZXN0X3ByaW1hcnlrZXlfcHV0XyVzIiAlIFwK KyAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 Nl0pCisgICAgdW5pcXVlX2tleV9uYW1lID0gInRlc3RfdW5pcXVla2V5X3B1 dF8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6Nl0pCisgICAgZGF0YSA9IHsib2lkIjogIiIsICJjb21tZW50 IjogInRoaXMgaXMgdGVzdCBjb21tZW50In0KKyAgICBzY2VuYXJpb3MgPSBb CisgICAgICAgICgnVXBkYXRlIHByaW1hcnkgS2V5IGNvbnN0cmFpbnQgb2Yg dGFibGUnLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3ByaW1hcnlf a2V5L29iai8nLCBuYW1lPXByaW1hcnlfa2V5X25hbWUsCisgICAgICAgICAg ICAgIHR5cGU9IlBSSU1BUlkgS0VZIiwgZGF0YT1kYXRhKSksCisgICAgICAg ICgnVXBkYXRlIHVuaXF1ZSBLZXkgY29uc3RyYWludCBvZiB0YWJsZScsCisg ICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdW5pcXVlX2NvbnN0cmFpbnQv b2JqLycsIG5hbWU9dW5pcXVlX2tleV9uYW1lLAorICAgICAgICAgICAgICB0 eXBlPSJVTklRVUUiLCBkYXRhPWRhdGEpKQorICAgIF0KKworICAgIEBjbGFz c21ldGhvZAorICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAgICAgIGNs cy5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1b ImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2Rl X2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBjbHMuc2VydmVyX2lkID0g c2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIGNscy5kYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2UoY2xzLCB1dGlscy5TRVJWRVJf R1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQorICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgYSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtl eSkuIikKKyAgICAgICAgY2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJz Y2hlbWFfaWQiXQorICAgICAgICBjbHMuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2Ug PSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNscy5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1l KQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGFkZCBhIGluZGV4ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQor ICAgICAgICBjbHMudGFibGVfbmFtZSA9ICJ0YWJsZV9pbmRleGNvbnN0cmFp bnRfJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVp ZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBjbHMudGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNscy5zZXJ2ZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy50YWJsZV9u YW1lKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgaW5kZXggY29uc3RyYWludChwcmlt YXJ5IGtleSBvcgorICAgICAgICB1bmlxdWUga2V5KSBvZiB0YWJsZSBjb2x1 bW4uIiIiCisgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfaWQgPSBcCisgICAg ICAgICAgICBpbmRleF9jb25zdHJhaW50X3V0aWxzLmNyZWF0ZV9pbmRleF9j b25zdHJhaW50KAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFibGVfbmFtZSwK KyAgICAgICAgICAgICAgICBzZWxmLm5hbWUsIHNlbGYudHlwZSkKKyAgICAg ICAgc2VsZi5kYXRhWyJvaWQiXSA9IGluZGV4X2NvbnN0cmFpbnRfaWQKKyAg ICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAg ICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVy bCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluZGV4X2NvbnN0cmFpbnRfaWQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwKKyAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIEBjbGFzc21ldGhv ZAorICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICMgRGlz Y29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShjbHMsIGNscy5zZXJ2ZXJfaWQsIGNscy5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3V0aWxzLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFp bnQvdGVzdHMvdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uM2UwZWM5OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rl c3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEsODYgQEAKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgI3BnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKyMKKyMgI0NvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRo ZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgI1RoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIwor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHRyYWNlYmFjawor aW1wb3J0IHN5cworCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKKworCitkZWYgY3JlYXRlX2luZGV4X2NvbnN0cmFpbnQo c2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgdGFibGVfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbmFtZSwga2V5X3R5cGUp OgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIGluZGV4 IGNvbnN0cmFpbnQoUEsgb3IgVUspIHVuZGVyIHByb3ZpZGVkIHRhYmxlLgor ICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUg c2VydmVyOiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5h bWUKKyAgICA6dHlwZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gc2NoZW1h X25hbWU6IHNjaGVtYSBuYW1lCisgICAgOnR5cGUgc2NoZW1hX25hbWU6IHN0 cgorICAgIDpwYXJhbSB0YWJsZV9uYW1lOiB0YWJsZSBuYW1lCisgICAgOnR5 cGUgdGFibGVfbmFtZTogc3RyCisgICAgOnBhcmFtIGtleV9uYW1lOiB0ZXN0 IG5hbWUgZm9yIHByaW1hcnkgb3IgdW5pcXVlIGtleQorICAgIDp0eXBlIGtl eV9uYW1lOiBzdHIKKyAgICA6cGFyYW0ga2V5X3R5cGU6IGtleSB0eXBlIGku ZS4gcHJpbWFyeSBvciB1bmlxdWUga2V5CisgICAgOnR5cGUga2V5X3R5cGU6 IHN0cgorICAgIDpyZXR1cm4gb2lkOiBrZXkgY29uc3RyYWludCBpZAorICAg IDpydHlwZTogaW50CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25u ZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10pCisgICAgICAgIG9sZF9p c29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9uLmlzb2xhdGlvbl9sZXZlbAor ICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAg ICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAg ICBxdWVyeSA9ICJBTFRFUiBUQUJMRSAlcy4lcyBBREQgQ09OU1RSQUlOVCAl cyAlcyAoaWQpIiAlIFwKKyAgICAgICAgICAgICAgICAoc2NoZW1hX25hbWUs IHRhYmxlX25hbWUsIGtleV9uYW1lLCBrZXlfdHlwZSkKKyAgICAgICAgcGdf Y3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uc2V0 X2lzb2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAg ICBjb25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgICMgR2V0IG9pZCBvZiBu ZXdseSBhZGRlZCBpbmRleCBjb25zdHJhaW50CisgICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKAorICAgICAgICAgICAgIlNFTEVDVCBjb25pbmRpZCBGUk9N IHBnX2NvbnN0cmFpbnQgd2hlcmUgY29ubmFtZT0nJXMnIiAlIGtleV9uYW1l KQorICAgICAgICBpbmRleF9jb25zdHJhaW50ID0gcGdfY3Vyc29yLmZldGNo b25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIG9p ZCA9IGluZGV4X2NvbnN0cmFpbnRbMF0KKyAgICAgICAgcmV0dXJuIG9pZAor ICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmlu dF9leGMoZmlsZT1zeXMuc3RkZXJyKQorCisKK2RlZiB2ZXJpZnlfaW5kZXhf Y29uc3RyYWludChzZXJ2ZXIsIGRiX25hbWUsIHRhYmxlX25hbWUpOgorICAg ICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgdGhhdCBpbmRleCBj b25zdHJhaW50KFBLIG9yIFVLKSBpcyBleGlzdHMgb3Igbm90LgorICAgIDpw YXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVy OiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAg ICA6dHlwZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gdGFibGVfbmFtZTog dGFibGUgbmFtZQorICAgIDp0eXBlIHRhYmxlX25hbWU6IHN0cgorICAgIDpy ZXR1cm4gaW5kZXhfY29uc3RyYWludDogaW5kZXggY29uc3RyYWludCByZWNv cmQgZnJvbSBkYXRhYmFzZQorICAgIDpydHlwZTogdHVwbGUKKyAgICAiIiIK KyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJf Y29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J3BvcnQnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJz b3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgKKyAgICAgICAgICAg ICJTRUxFQ1Qgb2lkIEZST00gcGdfY29uc3RyYWludCB3aGVyZSBjb25uYW1l PSclcyciICUKKyAgICAgICAgICAgIHRhYmxlX25hbWUpCisgICAgICAgIGlu ZGV4X2NvbnN0cmFpbnQgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAg ICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIGluZGV4X2Nv bnN0cmFpbnQKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFj ZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy90ZXN0cy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy90 ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40YjM1MWE2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL3Rlc3RzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsMTUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCisKKworY2xhc3MgQ29uc3RyYWludHNUZXN0R2Vu ZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgIGRlZiBydW5UZXN0 KHNlbGYpOgorICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvX19pbml0X18u cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdlZDQx ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9p bmRleGVzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTUgQEAKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitmcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisK KworY2xhc3MgSW5kZXhlc1Rlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0 b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVy biBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4 ZXMvdGVzdHMvdGVzdF9pbmRleGVzX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19hZGQucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ3Y2ZhMwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVz L3Rlc3RzL3Rlc3RfaW5kZXhlc19hZGQucHkKQEAgLTAsMCArMSw2OCBAQAor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IGpzb24KK2ltcG9y dCB1dWlkCisKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9k aWN0Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisg ICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBv cnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxl c191dGlscworCisKK2NsYXNzIEluZGV4ZXNBZGRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcg aW5kZXggdG8gZXhpc3RpbmcgdGFibGUgY29sdW1uIiIiCisgICAgc2NlbmFy aW9zID0gWworICAgICAgICAoJ0FkZCBpbmRleCBOb2RlIFVSTCcsIGRpY3Qo dXJsPScvYnJvd3Nlci9pbmRleC9vYmovJykpCisgICAgXQorCisgICAgZGVm IHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAg IHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFd CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZl cl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJf aWQiXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2Nv blsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRk IGEgdGFibGUuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFf aW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9 IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9y ZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNl cnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikKKyAgICAgICAgc2VsZi50 YWJsZV9uYW1lID0gInRhYmxlX2Zvcl9jb2x1bW5fJXMiICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6Nl0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVf bmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGluZGV4IHRvIGV4aXN0aW5nIHRhYmxl IGNvbHVtbi4iIiIKKyAgICAgICAgc2VsZi5pbmRleF9uYW1lID0gInRlc3Rf aW5kZXhfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAg ICAgICBkYXRhID0geyJuYW1lIjogc2VsZi5pbmRleF9uYW1lLAorICAgICAg ICAgICAgICAgICJzcGNuYW1lIjogInBnX2RlZmF1bHQiLAorICAgICAgICAg ICAgICAgICJhbW5hbWUiOiAiYnRyZWUiLAorICAgICAgICAgICAgICAgICJj b2x1bW5zIjogWworICAgICAgICAgICAgICAgICAgICB7ImNvbG5hbWUiOiAi aWQiLCAic29ydF9vcmRlciI6IEZhbHNlLCAibnVsbHMiOiBGYWxzZX1dfQor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAg ICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYu c2NoZW1hX2lkKSArICcvJyArIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJywK KyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAg IGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRo ZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVz dHMvdGVzdF9pbmRleGVzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19kZWxldGUucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBiYzI3YgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVz L3Rlc3RzL3Rlc3RfaW5kZXhlc19kZWxldGUucHkKQEAgLTAsMCArMSw4MSBA QAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHV1aWQKKwor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFz ZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAg dXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVz LnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGFibGVzLmNvbHVtbi4gXAorICAgIHRlc3RzIGlt cG9ydCB1dGlscyBhcyBjb2x1bW5zX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGluZGV4ZXNfdXRpbHMKKworCitjbGFzcyBJbmRleGVzRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xh c3Mgd2lsbCBkZWxldGUgdGhlIGV4aXN0aW5nIGluZGV4IG9mIGNvbHVtbi4i IiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnRGVsZXRlIGluZGV4 IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2luZGV4L29iai8nKSkK KyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4i KQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRh YmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYuY29sdW1uX25hbWUg PSAidGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjZdKQorICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IGNvbHVtbnNfdXRp bHMuY3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCisg ICAgICAgIHNlbGYuaW5kZXhfbmFtZSA9ICJ0ZXN0X2luZGV4X2RlbGV0ZV8l cyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2VsZi5p bmRleF9pZCA9IGluZGV4ZXNfdXRpbHMuY3JlYXRlX2luZGV4KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbmRleF9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKKworICAgIGRlZiBydW5UZXN0 KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRl IGluZGV4IG9mIGV4aXN0aW5nIGNvbHVtbi4iIiIKKyAgICAgICAgaW5kZXhf cmVzcG9uc2UgPSBpbmRleGVzX3V0aWxzLnZlcmlmeV9pbmRleChzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5kZXhfbmFtZSkK KyAgICAgICAgaWYgbm90IGluZGV4X3Jlc3BvbnNlOgorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgaW5kZXggdG8g ZGVsZXRlLiIpCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVs ZXRlKHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIo c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYu c2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJyArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmlu ZGV4X2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVm IHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRh dGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZXN0cy90 ZXN0X2luZGV4ZXNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2lu ZGV4ZXMvdGVzdHMvdGVzdF9pbmRleGVzX2dldC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODYwOWVjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVz dF9pbmRleGVzX2dldC5weQpAQCAtMCwwICsxLDc2IEBACisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hl bWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAg IGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50YWJsZXMuY29sdW1uLiBcCisgICAgdGVzdHMgaW1wb3J0IHV0aWxzIGFz IGNvbHVtbnNfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgaW5kZXhl c191dGlscworCisKK2NsYXNzIEluZGV4ZXNHZXRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIHRo ZSBleGlzdGluZyBpbmRleCBvZiBjb2x1bW4uIiIiCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAoJ0ZldGNoIGluZGV4IE5vZGUgVVJMJywgZGljdCh1 cmw9Jy9icm93c2VyL2luZGV4L29iai8nKSkKKyAgICBdCisKKyAgICBkZWYg c2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0K KyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVy X2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9p ZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQg YSB0YWJsZS4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0g c2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToK KyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg dGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICBzZWxmLnRh YmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0 aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUp CisgICAgICAgIHNlbGYuY29sdW1uX25hbWUgPSAidGVzdF9jb2x1bW5fZGVs ZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBz ZWxmLmNvbHVtbl9pZCA9IGNvbHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVtbihz ZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuY29sdW1uX25hbWUpCisgICAgICAgIHNlbGYuaW5kZXhf bmFtZSA9ICJ0ZXN0X2luZGV4X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo2XSkKKyAgICAgICAgc2VsZi5pbmRleF9pZCA9IGluZGV4ZXNf dXRpbHMuY3JlYXRlX2luZGV4KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5pbmRleF9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb2x1 bW5fbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGV4aXN0aW5nIGNvbHVt biBpbmRleC4iIiIKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5n ZXQoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0i LmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwg c2VsZi50YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuaW5kZXhfaWQpLAorICAgICAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVm IHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRh dGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZXN0cy90 ZXN0X2luZGV4ZXNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2lu ZGV4ZXMvdGVzdHMvdGVzdF9pbmRleGVzX3B1dC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmRhYTBkCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVz dF9pbmRleGVzX3B1dC5weQpAQCAtMCwwICsxLDg0IEBACisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKwor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFz ZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAg dXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVz LnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGFibGVzLmNvbHVtbi4gXAorICAgIHRlc3RzIGlt cG9ydCB1dGlscyBhcyBjb2x1bW5zX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGluZGV4ZXNfdXRpbHMKKworCitjbGFzcyBJbmRleGVzVXBkYXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xh c3Mgd2lsbCB1cGRhdGUgdGhlIGV4aXN0aW5nIGluZGV4IG9mIGNvbHVtbi4i IiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnUHV0IGluZGV4IE5v ZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2luZGV4L29iai8nKSkKKyAg ICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJf bmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hl bWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNj aGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAg ICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNj aGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQor ICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAl IChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRhYmxl X2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYuY29sdW1uX25hbWUgPSAi dGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsx OjZdKQorICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IGNvbHVtbnNfdXRpbHMu Y3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCisgICAg ICAgIHNlbGYuaW5kZXhfbmFtZSA9ICJ0ZXN0X2luZGV4X2RlbGV0ZV8lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2VsZi5pbmRl eF9pZCA9IGluZGV4ZXNfdXRpbHMuY3JlYXRlX2luZGV4KHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbmRleF9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRo ZSBpbmRleCBvZiBleGlzdGluZyBjb2x1bW4uIiIiCisgICAgICAgIGluZGV4 X3Jlc3BvbnNlID0gaW5kZXhlc191dGlscy52ZXJpZnlfaW5kZXgoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluZGV4X25hbWUp CisgICAgICAgIGlmIG5vdCBpbmRleF9yZXNwb25zZToKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIGluZGV4IHRv IHVwZGF0ZS4iKQorICAgICAgICBkYXRhID0geyJvaWQiOiBzZWxmLmluZGV4 X2lkLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlz IHRlc3QgY29tbWVudCBmb3IgaW5kZXgifQorICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3sz fS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJf R1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX2lkLCBzZWxmLnRhYmxlX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbmRleF9p ZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAg ICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAg ICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rl c3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMv dGVzdHMvdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNmE5MTUwNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEs OTAgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg I3BnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgI0NvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgI1RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv bgoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHN5cworCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworCitkZWYgY3Jl YXRlX2luZGV4KHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIHRhYmxl X25hbWUsIGluZGV4X25hbWUsCisgICAgICAgICAgICAgICAgIGNvbF9uYW1l KToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSBu ZXcgaW5kZXggdG8gZXhpc3RpbmcgY29sdW1uLgorICAgIDpwYXJhbSBzZXJ2 ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0Cisg ICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlwZSBk Yl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gc2NoZW1hX25hbWU6IHNjaGVtYSBu YW1lCisgICAgOnR5cGUgc2NoZW1hX25hbWU6IHN0cgorICAgIDpwYXJhbSB0 YWJsZV9uYW1lOiB0YWJsZSBuYW1lCisgICAgOnR5cGUgdGFibGVfbmFtZTog c3RyCisgICAgOnBhcmFtIGluZGV4X25hbWU6IGluZGV4IG5hbWUKKyAgICA6 dHlwZSBpbmRleF9uYW1lOiBzdHIKKyAgICA6cGFyYW0gY29sX25hbWU6IGNv bHVtbiBuYW1lCisgICAgOnR5cGUgY29sX25hbWU6IHN0cgorICAgIDpyZXR1 cm4gdGFibGVfaWQ6IHRhYmxlIGlkCisgICAgOnJ0eXBlOiBpbnQKKyAgICAi IiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRf ZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJbJ3BvcnQnXSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNv bm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAgIGNvbm5lY3Rpb24u c2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19jdXJzb3IgPSBj b25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBJ TkRFWCAlcyBPTiAlcy4lcyBVU0lORyBidHJlZSAoJXMgQVNDIE5VTExTIExB U1QpICIgXAorICAgICAgICAgICAgICAgICJUQUJMRVNQQUNFIHBnX2RlZmF1 bHQiICUgKGluZGV4X25hbWUsIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUsIGNv bF9uYW1lKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVyeSkKKyAg ICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29s YXRpb25fbGV2ZWwpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAg ICAgICAgIyBHZXQgb2lkIG9mIG5ld2x5IGFkZGVkIGluZGV4CisgICAgICAg IHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3Qgb2lkIGZyb20gcGdfY2xhc3Mg d2hlcmUgcmVsbmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGluZGV4X25hbWUpCisgICAgICAgIGluZGV4X3JlY29yZCA9IHBnX2N1 cnNvci5mZXRjaG9uZSgpCisgICAgICAgIGluZGV4X29pZCA9ICcnCisgICAg ICAgIGlmIGluZGV4X3JlY29yZDoKKyAgICAgICAgICAgIGluZGV4X29pZCA9 IGluZGV4X3JlY29yZFswXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkK KyAgICAgICAgcmV0dXJuIGluZGV4X29pZAorICAgIGV4Y2VwdCBFeGNlcHRp b246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3Rk ZXJyKQorICAgICAgICByYWlzZQorCisKK2RlZiB2ZXJpZnlfaW5kZXgoc2Vy dmVyLCBkYl9uYW1lLCBpbmRleF9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlz IGZ1bmN0aW9uIHZlcmlmaWVzIGluZGV4IGV4aXN0IG9yIG5vdC4KKyAgICA6 cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNlcnZl cjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisg ICAgOnR5cGUgZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIGluZGV4X25hbWU6 IGluZGV4IG5hbWUKKyAgICA6dHlwZSBpbmRleF9uYW1lOiBzdHIKKyAgICA6 cmV0dXJuIHRhYmxlOiB0YWJsZSByZWNvcmQgZnJvbSBkYXRhYmFzZQorICAg IDpydHlwZTogdHVwbGUKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNv bm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgcGdf Y3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJz b3IuZXhlY3V0ZSgic2VsZWN0ICogZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxu YW1lPSclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhf bmFtZSkKKyAgICAgICAgaW5kZXhfcmVjb3JkID0gcGdfY3Vyc29yLmZldGNo b25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJl dHVybiBpbmRleF9yZWNvcmQKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAg ICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKyAg ICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9ydWxlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9ydWxlcy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi42Zjg4YjE5Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3RzL19faW5pdF9f LnB5CkBAIC0wLDAgKzEsMTUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xhc3MgUnVsZXNUZXN0R2Vu ZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgIGRlZiBydW5UZXN0 KHNlbGYpOgorICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2FkZC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1 bGVzX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mY2Y5ZTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3J1bGVzL3Rlc3RzL3Rlc3RfcnVsZXNfYWRkLnB5CkBAIC0wLDAg KzEsNjkgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCBq c29uCitpbXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGls cyBhcyB0YWJsZXNfdXRpbHMKKworCitjbGFzcyBSdWxlc0FkZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwg YWRkIG5ldyBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2NlbmFy aW9zID0gWworICAgICAgICAoJ0FkZCBydWxlIE5vZGUgVVJMJywgZGljdCh1 cmw9Jy9icm93c2VyL3J1bGUvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBz ZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBz Y2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJf aWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lk Il0KKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBh IHJ1bGUuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5m b1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBzY2hlbWEgdG8gYWRkIGEgcnVsZS4iKQorICAgICAgICBzZWxmLnRhYmxl X25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjZdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5j dGlvbiB3aWxsIHJ1bGUgdW5kZXIgdGFibGUgbm9kZS4iIiIKKyAgICAgICAg cnVsZV9uYW1lID0gInRlc3RfcnVsZV9hZGRfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6Nl0pCisgICAgICAgIGRhdGEgPSB7InNjaGVtYSI6IHNlbGYu c2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgInZpZXciOiBzZWxmLnRh YmxlX25hbWUsCisgICAgICAgICAgICAgICAgIm5hbWUiOiBydWxlX25hbWUs CisgICAgICAgICAgICAgICAgImV2ZW50IjogIlVwZGF0ZSIKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9z dCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9LyIuZm9y bWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnRhYmxl X2lkKSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAg ICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICAp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAg ICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2RlbGV0ZS5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2RlbGV0 ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWM1 NWY1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3J1bGVzL3Rlc3RzL3Rlc3RfcnVsZXNfZGVsZXRlLnB5CkBAIC0wLDAgKzEs NzIgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCB1dWlk CisKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0 YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAor ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRh Ymxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBydWxlc191dGlscworCisKK2Ns YXNzIFJ1bGVzRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgor ICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgcnVsZSB1bmRlciB0YWJs ZSBub2RlLiIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCdEZWxl dGUgcnVsZSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9ydWxlL29i ai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAg IHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1b LTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRf bm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5k Yl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk KQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJd OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgcnVsZS4iKQorICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAg aWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUg cnVsZS4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29s dW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBz ZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYucnVsZV9u YW1lID0gInRlc3RfcnVsZV9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6Nl0pCisgICAgICAgIHNlbGYucnVsZV9pZCA9IHJ1bGVzX3V0aWxz LmNyZWF0ZV9ydWxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5y dWxlX25hbWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBydWxlIHVuZGVyIHRhYmxl IG5vZGUuIiIiCisgICAgICAgIHJ1bGVfcmVzcG9uc2UgPSBydWxlc191dGls cy52ZXJpZnlfcnVsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5ydWxlX25hbWUpCisgICAgICAgIGlmIG5vdCBydWxlX3Jlc3BvbnNl OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgcnVsZSB0byBkZWxldGUuIikKKyAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICAiezB9ezF9L3syfS97 M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucnVsZV9p ZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAg ICAgKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg ICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvcnVsZXMvdGVzdHMvdGVzdF9ydWxlc19nZXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMvdGVzdF9ydWxlc19nZXQu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZjYzEz NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9y dWxlcy90ZXN0cy90ZXN0X3J1bGVzX2dldC5weQpAQCAtMCwwICsxLDY4IEBA CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAorCitm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zy b20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNl X3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1 dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMu dGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zy b20gLiBpbXBvcnQgdXRpbHMgYXMgcnVsZXNfdXRpbHMKKworCitjbGFzcyBS dWxlc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJU aGlzIGNsYXNzIHdpbGwgZmV0Y2ggdGhlIHJ1bGUgdW5kZXIgdGFibGUgbm9k ZS4iIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnRmV0Y2ggcnVs ZSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9ydWxlL29iai8nKSkK KyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZSB0byBkZWxldGUgcnVsZS4iKQorICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcnVsZS4i KQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRh YmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYucnVsZV9uYW1lID0g InRlc3RfcnVsZV9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 Nl0pCisgICAgICAgIHNlbGYucnVsZV9pZCA9IHJ1bGVzX3V0aWxzLmNyZWF0 ZV9ydWxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ydWxlX25h bWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhp cyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBydWxlIHVuZGVyIHRhYmxlIG5v ZGUuIiIiCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAor ICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3Jt YXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLCBzZWxmLmRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsIHNlbGYu dGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnJ1bGVfaWQpLAorICAgICAgICAgICAgZm9s bG93X3JlZGlyZWN0cz1UcnVlCisgICAgICAgICkKKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAg IGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRo ZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3Rz L3Rlc3RfcnVsZXNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1 bGVzL3Rlc3RzL3Rlc3RfcnVsZXNfcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmYzZWM0NjkKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMvdGVzdF9ydWxl c19wdXQucHkKQEAgLTAsMCArMSw3NiBAQAorIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworaW1wb3J0IHV1aWQKK2ltcG9ydCBqc29uCisKK2Zyb20gcmVn cmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFz IHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBc CisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBydWxlc191dGlscworCisKK2NsYXNzIFJ1bGVzVXBk YXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMg Y2xhc3Mgd2lsbCB1cGRhdGUgdGhlIHJ1bGUgdW5kZXIgdGFibGUgbm9kZS4i IiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnUHV0IHJ1bGUgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcnVsZS9vYmovJykpCisgICAg XQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFt ZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1h X2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hl bWFfaW5mb1siZGJfaWQiXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAg aWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UgdG8gZGVsZXRlIHJ1bGUuIikKKyAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAg ICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2No ZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hl bWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHJ1bGUuIikKKyAg ICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2VsZi50YWJsZV9p ZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNl bGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi50YWJsZV9uYW1lKQorICAgICAgICBzZWxmLnJ1bGVfbmFtZSA9ICJ0ZXN0 X3J1bGVfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQor ICAgICAgICBzZWxmLnJ1bGVfaWQgPSBydWxlc191dGlscy5jcmVhdGVfcnVs ZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucnVsZV9uYW1lKQor CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gd2lsbCB1cGRhdGUgdGhlIHJ1bGUgdW5kZXIgdGFibGUgbm9kZS4i IiIKKyAgICAgICAgcnVsZV9yZXNwb25zZSA9IHJ1bGVzX3V0aWxzLnZlcmlm eV9ydWxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1 bGVfbmFtZSkKKyAgICAgICAgZGF0YSA9IHsiaWQiOiBzZWxmLnJ1bGVfaWQs CisgICAgICAgICAgICAgICAgImNvbW1lbnQiOiAiVGhpcyBpcyB0ZXN0aW5n IGNvbW1lbnQuIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgaWYgbm90 IHJ1bGVfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIHRoZSBydWxlIHRvIHVwZGF0ZS4iKQorICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgICJ7 MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1 dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnRhYmxlX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5ydWxlX2lkKSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBE aXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGls cy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3J1bGVzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3J1bGVzL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmNkNjQ2OGEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMvdXRpbHMucHkKQEAgLTAs MCArMSw4NiBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyAjcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyAjQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyAjVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1 bmN0aW9uCitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgc3lzCisKK2Zyb20g cmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworCisKK2Rl ZiBjcmVhdGVfcnVsZShzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCB0 YWJsZV9uYW1lLCBydWxlX25hbWUpOgorICAgICIiIgorICAgIFRoaXMgZnVu Y3Rpb24gY3JlYXRlcyBhIHJ1bGUgdW5kZXIgcHJvdmlkZWQgdGFibGUuCisg ICAgOnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBz ZXJ2ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJfbmFtZTogZGF0YWJhc2UgbmFt ZQorICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJhbSBzY2hlbWFf bmFtZTogc2NoZW1hIG5hbWUKKyAgICA6dHlwZSBzY2hlbWFfbmFtZTogc3Ry CisgICAgOnBhcmFtIHRhYmxlX25hbWU6IHRhYmxlIG5hbWUKKyAgICA6dHlw ZSB0YWJsZV9uYW1lOiBzdHIKKyAgICA6cGFyYW0gcnVsZV9uYW1lOiBydWxl IG5hbWUKKyAgICA6dHlwZSBydWxlX25hbWU6IHN0cgorICAgIDpyZXR1cm4g cnVsZV9pZDogcm9sZSBpZAorICAgIDpydHlwZTogaW50CisgICAgIiIiCisg ICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nv bm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydw b3J0J10pCisgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0 aW9uLmlzb2xhdGlvbl9sZXZlbAorICAgICAgICBjb25uZWN0aW9uLnNldF9p c29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVj dGlvbi5jdXJzb3IoKQorICAgICAgICBxdWVyeSA9ICJDUkVBVEUgT1IgUkVQ TEFDRSBSVUxFICVzIEFTIE9OIFVQREFURSBUTyAlcy4lcyBETyBOT1RISU5H IiAlXAorICAgICAgICAgICAgICAgIChydWxlX25hbWUsIHNjaGVtYV9uYW1l LCB0YWJsZV9uYW1lKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVy eSkKKyAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKG9s ZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0 KCkKKyAgICAgICAgIyBHZXQgcm9sZSBvaWQgb2YgbmV3bHkgYWRkZWQgcnVs ZQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBmcm9t IHBnX3Jld3JpdGUgd2hlcmUgcnVsZW5hbWU9JyVzJyIgJQorICAgICAgICAg ICAgICAgICAgICAgICAgICBydWxlX25hbWUpCisgICAgICAgIHJ1bGUgPSBw Z19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBydWxlX2lkID0gJycKKyAg ICAgICAgaWYgcnVsZToKKyAgICAgICAgICAgIHJ1bGVfaWQgPSBydWxlWzBd CisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4g cnVsZV9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNl YmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlz ZQorCisKK2RlZiB2ZXJpZnlfcnVsZShzZXJ2ZXIsIGRiX25hbWUsIHJ1bGVf bmFtZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB2ZXJpZmllcyBy dWxlIGV4aXN0IGluIGRhdGFiYXNlIG9yIG5vdC4KKyAgICA6cGFyYW0gc2Vy dmVyOiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAor ICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUg ZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHJ1bGVfbmFtZTogcnVsZSBuYW1l CisgICAgOnR5cGUgcnVsZV9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHJ1bGU6 IHJ1bGUgcmVjb3JkIGZyb20gZGF0YWJhc2UKKyAgICA6cnR5cGU6IHR1cGxl CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRp bHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5h bWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWydwb3J0J10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5l Y3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNl bGVjdCAqIGZyb20gcGdfcmV3cml0ZSB3aGVyZSBydWxlbmFtZT0nJXMnIiAl CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSkKKyAgICAg ICAgcnVsZSA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIGNvbm5l Y3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gcnVsZQorICAgIGV4Y2Vw dCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmls ZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YmM4MWEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvX19pbml0X18u cHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisKK2NsYXNzIFRhYmxlc1Rlc3RH ZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfYWRkLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfYWRkLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NGFmMTcK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVz dHMvdGVzdF90YWJsZV9hZGQucHkKQEAgLTAsMCArMSwxODIgQEAKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVp ZAorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRh dGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwK KyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50YWJsZXNwYWNlcy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgXAorICAgIHRhYmxlc3BhY2VfdXRpbHMKK2Zyb20g LiBpbXBvcnQgdXRpbHMgYXMgdGFibGVfdXRpbHMKKworCitjbGFzcyBUYWJs ZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhp cyBjbGFzcyB3aWxsIGFkZCBuZXcgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBu b2RlLiAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hp bmcgZGVmYXVsdCBVUkwgZm9yIHRhYmxlIG5vZGUuCisgICAgICAgICgnRmV0 Y2ggdGFibGUgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGUv b2JqLycpKQorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2Ui XVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVu dF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZl cl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxm LmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVk Il06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCisgICAgICAg IHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1h X25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAg ICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBh IHRhYmxlLiIpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGFibGUgdW5kZXIgc2NoZW1h IG5vZGUuICIiIgorICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJbInVz ZXJuYW1lIl0KKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRlc3RfdGFi bGVfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAg ICBkYXRhID0geworICAgICAgICAgICAgImNoZWNrX2NvbnN0cmFpbnQiOiBb XSwKKyAgICAgICAgICAgICJjb2xsX2luaGVyaXRzIjogIltdIiwKKyAgICAg ICAgICAgICJjb2x1bW5zIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgIm5hbWUiOiAiZW1wbm8iLAorICAgICAgICAgICAg ICAgICAgICAiY2x0eXBlIjogIm51bWVyaWMiLAorICAgICAgICAgICAgICAg ICAgICAiYXR0YWNsIjogW10sCisgICAgICAgICAgICAgICAgICAgICJpc19w cmltYXJ5X2tleSI6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAiYXR0 b3B0aW9ucyI6IFtdLAorICAgICAgICAgICAgICAgICAgICAic2VjbGFiZWxz IjogW10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZW1wbmFtZSIsCisgICAg ICAgICAgICAgICAgICAgICJjbHR5cGUiOiAiY2hhcmFjdGVyW10iLAorICAg ICAgICAgICAgICAgICAgICAiYXR0YWNsIjogW10sCisgICAgICAgICAgICAg ICAgICAgICJpc19wcmltYXJ5X2tleSI6IEZhbHNlLAorICAgICAgICAgICAg ICAgICAgICAiYXR0b3B0aW9ucyI6IFtdLAorICAgICAgICAgICAgICAgICAg ICAic2VjbGFiZWxzIjogW10KKyAgICAgICAgICAgICAgICB9LAorICAgICAg ICAgICAgICAgIHsibmFtZSI6ICJET0oiLAorICAgICAgICAgICAgICAgICAi Y2x0eXBlIjogImRhdGVbXSIsCisgICAgICAgICAgICAgICAgICJhdHRhY2wi OiBbXSwKKyAgICAgICAgICAgICAgICAgImlzX3ByaW1hcnlfa2V5IjogRmFs c2UsCisgICAgICAgICAgICAgICAgICJhdHRvcHRpb25zIjogW10sCisgICAg ICAgICAgICAgICAgICJzZWNsYWJlbHMiOiBbXQorICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImV4Y2x1ZGVfY29u c3RyYWludCI6IFtdLAorICAgICAgICAgICAgImZpbGxmYWN0b3IiOiAiMTEi LAorICAgICAgICAgICAgImhhc3RvYXN0dGFibGUiOiBUcnVlLAorICAgICAg ICAgICAgImxpa2VfY29uc3RyYWludHMiOiBUcnVlLAorICAgICAgICAgICAg Imxpa2VfZGVmYXVsdF92YWx1ZSI6IFRydWUsCisgICAgICAgICAgICAibGlr ZV9yZWxhdGlvbiI6ICJwZ19jYXRhbG9nLnBnX3RhYmxlcyIsCisgICAgICAg ICAgICAibmFtZSI6IHNlbGYudGFibGVfbmFtZSwKKyAgICAgICAgICAgICJw cmltYXJ5X2tleSI6IFtdLAorICAgICAgICAgICAgInJlbGFjbCI6IFsKKyAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJncmFudGVl IjogZGJfdXNlciwKKyAgICAgICAgICAgICAgICAgICAgImdyYW50b3IiOiBk Yl91c2VyLAorICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlcyI6Cisg ICAgICAgICAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi cHJpdmlsZWdlX3R5cGUiOiAiYSIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAid2l0aF9ncmFudCI6IFRydWUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBy aXZpbGVnZV90eXBlIjogInIiLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBGYWxzZQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJp dmlsZWdlX3R5cGUiOiAidyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAid2l0aF9ncmFudCI6IEZhbHNlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg XQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAg ICAgICAicmVsaGFzb2lkcyI6IFRydWUsCisgICAgICAgICAgICAicmVsb3du ZXIiOiBkYl91c2VyLAorICAgICAgICAgICAgInNjaGVtYSI6IHNlbGYuc2No ZW1hX25hbWUsCisgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAg ICAgICAgICAic3BjbmFtZSI6ICJwZ19kZWZhdWx0IiwKKyAgICAgICAgICAg ICJ1bmlxdWVfY29uc3RyYWludCI6IFtdLAorICAgICAgICAgICAgInZhY3V1 bV90YWJsZSI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgICJuYW1lIjogImF1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0 b3IiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgICJuYW1lIjogImF1dG92YWN1dW1fYW5hbHl6 ZV90aHJlc2hvbGQiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImF1dG92YWN1 dW1fZnJlZXplX21heF9hZ2UiCisgICAgICAgICAgICAgICAgfSwKKyAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImF1 dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkiCisgICAgICAgICAgICAgICAg fSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJu YW1lIjogImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQiCisgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgICJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rv ciIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1f dGhyZXNob2xkIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJhdXRvdmFjdXVt X2ZyZWV6ZV9taW5fYWdlIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJhdXRv dmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UiCisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ2YWN1dW1fdG9hc3QiOiBb CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFt ZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlIgorICAgICAgICAgICAg ICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICAibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5IgorICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICAibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xp bWl0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1 bV9zY2FsZV9mYWN0b3IiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImF1dG92 YWN1dW1fdmFjdXVtX3RocmVzaG9sZCIKKyAgICAgICAgICAgICAgICB9LAor ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUi OiAiYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZSIKKyAgICAgICAgICAgICAg ICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlIgorICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgICAg ICAjIEFkZCB0YWJsZQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZl cl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAg Jy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKKyAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93 bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQor ICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfZGVsZXRl LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVf ZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjM2MmNhMTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9kZWxldGUucHkKQEAgLTAsMCArMSw2 NSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHV1aWQK KworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRh YmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisg ICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIHRhYmxlc191dGlscworCisKK2NsYXNzIFRhYmxlRGVsZXRlVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2ls bCBkZWxldGUgbmV3IHRhYmxlIHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAg IHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3IgdGFibGUgbm9kZS4KKyAgICAgICAgKCdGZXRjaCB0YWJsZSBOb2Rl IFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZS9vYmovJykpCisgICAg XQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFt ZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1h X2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hl bWFfaW5mb1siZGJfaWQiXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAg aWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKKyAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAg ICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2No ZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hl bWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikKKyAg ICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRlc3RfdGFibGVfZGVsZXRlXyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRh YmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBhZGRlZCB0 YWJsZSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICAgICAgdGFibGVfcmVz cG9uc2UgPSB0YWJsZXNfdXRpbHMudmVyaWZ5X3RhYmxlKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2lkKQorICAgICAg ICBpZiBub3QgdGFibGVfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB0YWJsZSB0byBkZWxldGUu IikKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2Vs Zi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFf aWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlbGYudGFibGVfaWQpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy90ZXN0X3RhYmxlX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZXN0cy90ZXN0X3RhYmxlX2dldC5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi42NjY3NTFmCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfZ2V0 LnB5CkBAIC0wLDAgKzEsNjEgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5 cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKK2ltcG9ydCB1dWlkCisKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50 ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJv bSAuIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKKworCitjbGFzcyBU YWJsZUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJU aGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBjb2xsYXRpb24gdW5kZXIgc2NoZW1h IG5vZGUuIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciB0YWJsZSBub2RlLgorICAgICAgICAoJ0Zl dGNoIHRhYmxlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxl L29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJl bnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2Vs Zi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQor ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAg ICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQg YSB0YWJsZS4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGVzdF90 YWJsZV9nZXRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAg ICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxl KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVs ZXRlIGFkZGVkIHRhYmxlIHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi50YWJsZV9pZCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfcHV0LnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0NDFhYzIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVz dHMvdGVzdF90YWJsZV9wdXQucHkKQEAgLTAsMCArMSw2OSBAQAorIyAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHV1aWQKK2ltcG9ydCBqc29u CisKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0 YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAor ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSAuIGltcG9ydCB1dGls cyBhcyB0YWJsZXNfdXRpbHMKKworCitjbGFzcyBUYWJsZVVwZGF0ZVRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdp bGwgYWRkIG5ldyBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuIiIiCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQg VVJMIGZvciB0YWJsZSBub2RlLgorICAgICAgICAoJ0ZldGNoIHRhYmxlIE5v ZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29iai8nKSkKKyAg ICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJf bmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hl bWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNj aGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAg ICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNj aGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQor ICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGVzdF90YWJsZV9wdXRfJXMi ICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0pCisgICAgICAgIHNlbGYudGFi bGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYudGFibGVfbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgdGFi bGUgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCisgICAgICAgIHRhYmxlX3Jlc3Bv bnNlID0gdGFibGVzX3V0aWxzLnZlcmlmeV90YWJsZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9pZCkKKyAgICAgICAg aWYgbm90IHRhYmxlX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgdGFibGUgdG8gdXBkYXRlLiIp CisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24i OiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQgZm9yIHRhYmxlIiwKKyAgICAgICAg ICAgICJpZCI6IHNlbGYudGFibGVfaWQKKyAgICAgICAgfQorICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRi X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQp ICsgJy8nICsgc3RyKHNlbGYudGFibGVfaWQpLAorICAgICAgICAgICAgZGF0 YT1qc29uLmR1bXBzKGRhdGEpLCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0 cy91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li42ODBmODY5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEsODUgQEAKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgI3BnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgI0NvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgI1RoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHRy YWNlYmFjaworaW1wb3J0IHN5cworCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworCitkZWYgY3JlYXRlX3RhYmxlKHNl cnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIHRhYmxlX25hbWUpOgorICAg ICIiIgorICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIHRhYmxlIHVuZGVy IHByb3ZpZGVkIHNjaGVtYS4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIg ZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpwYXJhbSBk Yl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFtZTogc3Ry CisgICAgOnBhcmFtIHNjaGVtYV9uYW1lOiBzY2hlbWEgbmFtZQorICAgIDp0 eXBlIHNjaGVtYV9uYW1lOiBzdHIKKyAgICA6cGFyYW0gdGFibGVfbmFtZTog dGFibGUgbmFtZQorICAgIDp0eXBlIHRhYmxlX25hbWU6IHN0cgorICAgIDpy ZXR1cm4gdGFibGVfaWQ6IHRhYmxlIGlkCisgICAgOnJ0eXBlOiBpbnQKKyAg ICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5n ZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9 IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAgIGNvbm5lY3Rp b24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19jdXJzb3Ig PSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHF1ZXJ5ID0gIkNSRUFU RSBUQUJMRSAlcy4lcyhpZCBzZXJpYWwgVU5JUVVFIE5PVCBOVUxMLCBuYW1l IHRleHQsIiBcCisgICAgICAgICAgICAgICAgIiBsb2NhdGlvbiB0ZXh0KSIg JVwKKyAgICAgICAgICAgICAgICAoc2NoZW1hX25hbWUsIHRhYmxlX25hbWUp CisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBj b25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9s ZXZlbCkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICAj IEdldCAnb2lkJyBmcm9tIG5ld2x5IGNyZWF0ZWQgdGFibGUKKyAgICAgICAg cGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCBvaWQgZnJvbSBwZ19jbGFzcyB3 aGVyZSByZWxuYW1lPSclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgdGFibGVfbmFtZSkKKyAgICAgICAgdGFibGUgPSBwZ19jdXJzb3IuZmV0 Y2hvbmUoKQorICAgICAgICB0YWJsZV9pZCA9ICcnCisgICAgICAgIGlmIHRh YmxlOgorICAgICAgICAgICAgdGFibGVfaWQgPSB0YWJsZVswXQorICAgICAg ICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHRhYmxlX2lk CisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnBy aW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJhaXNlCisKKwor ZGVmIHZlcmlmeV90YWJsZShzZXJ2ZXIsIGRiX25hbWUsIHRhYmxlX2lkKToK KyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzIHRhYmxlIGV4 aXN0IGluIGRhdGFiYXNlIG9yIG5vdC4KKyAgICA6cGFyYW0gc2VydmVyOiBz ZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpw YXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFt ZTogc3RyCisgICAgOnBhcmFtIHRhYmxlX2lkOiBzY2hlbWEgbmFtZQorICAg IDp0eXBlIHRhYmxlX2lkOiBpbnQKKyAgICA6cmV0dXJuIHRhYmxlOiB0YWJs ZSByZWNvcmQgZnJvbSBkYXRhYmFzZQorICAgIDpydHlwZTogdHVwbGUKKyAg ICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5n ZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlv bi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNU ICogRlJPTSBwZ19jbGFzcyB0YiBXSEVSRSB0Yi5vaWQ9JXMiICUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgdGFibGVfaWQpCisgICAgICAgIHRhYmxl ID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5j bG9zZSgpCisgICAgICAgIHJldHVybiB0YWJsZQorICAgIGV4Y2VwdCBFeGNl cHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMu c3RkZXJyKQorICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL19faW5pdF9fLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5ZjZlNGQK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNSBAQAorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKwor CitjbGFzcyBUcmlnZ2Vyc1Rlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0 b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVy biBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdn ZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfYWRkLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfYWRkLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5MGQ2YzMK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvdGVzdHMvdGVzdF90cmlnZ2Vyc19hZGQucHkKQEAgLTAsMCArMSw3 OCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IGpzb24K K2ltcG9ydCB1dWlkCisKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0 cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFz IHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLmZ1bmN0aW9ucy50ZXN0 cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJfZnVuY3NfdXRpbHMK KworCitjbGFzcyBUcmlnZ2Vyc0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyB0cmlnZ2Vy IHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2NlbmFyaW9zID0gWworICAg ICAgICAoJ0FkZCB0cmlnZ2VyIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93 c2VyL3RyaWdnZXIvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBzZXRVcChz ZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGlj dFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFf aW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEn XVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRyaWdn ZXIuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1si c2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25z ZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEgdG8gYWRkIGEgdHJpZ2dlci4iKQorICAgICAgICBzZWxmLnRhYmxl X25hbWUgPSAidGFibGVfdHJpZ2dlcl8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo2XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGls cy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQor ICAgICAgICBzZWxmLmZ1bmNfbmFtZSA9ICJ0cmlnZ2VyX2Z1bmNfYWRkXyVz IiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0KKyAgICAgICAgc2VsZi5mdW5j dGlvbl9pbmZvID0gXAorICAgICAgICAgICAgdHJpZ2dlcl9mdW5jc191dGls cy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbl93aXRoX3RyaWdnZXIoCisgICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVt YV9uYW1lLCBzZWxmLmZ1bmNfbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdHJpZ2dlciB1 bmRlciB0YWJsZSBub2RlLiIiIgorICAgICAgICB0cmlnZ2VyX25hbWUgPSAi dGVzdF90cmlnZ2VyX2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo2 XSkKKyAgICAgICAgZGF0YSA9IHsibmFtZSI6IHRyaWdnZXJfbmFtZSwKKyAg ICAgICAgICAgICAgICAiaXNfcm93X3RyaWdnZXIiOiBUcnVlLAorICAgICAg ICAgICAgICAgICJmaXJlcyI6ICJCRUZPUkUiLAorICAgICAgICAgICAgICAg ICJjb2x1bW5zIjogW10sCisgICAgICAgICAgICAgICAgInRmdW5jdGlvbiI6 ICJ7MH0uezF9Ii5mb3JtYXQoc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1 bmNfbmFtZSksCisgICAgICAgICAgICAgICAgImV2bnRfaW5zZXJ0IjogVHJ1 ZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0 fS97NX0vIi5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQs IHNlbGYudGFibGVfaWQpLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBz KGRhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n CisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxm KToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAg ICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl bGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNf ZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rl c3RzL3Rlc3RfdHJpZ2dlcnNfZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmJiYmI2NjQKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVzdF90 cmlnZ2Vyc19kZWxldGUucHkKQEAgLTAsMCArMSw4MSBAQAorIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHV1aWQKKworZnJvbSByZWdyZXNz aW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVz dHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2No ZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAg ICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMuZnVuY3Rpb25zLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdHJp Z2dlcl9mdW5jc191dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0cmln Z2Vyc191dGlscworCisKK2NsYXNzIFRyaWdnZXJzRGVsZXRlVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBk ZWxldGUgdHJpZ2dlciB1bmRlciB0YWJsZSBub2RlLiIiIgorICAgIHNjZW5h cmlvcyA9IFsKKyAgICAgICAgKCdEZWxldGUgdHJpZ2dlciBOb2RlIFVSTCcs IGRpY3QodXJsPScvYnJvd3Nlci90cmlnZ2VyL29iai8nKSkKKyAgICBdCisK KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K KyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hl bWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5m b1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9p bmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBu b3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFz ZSB0byBkZWxldGUgdHJpZ2dlci4iKQorICAgICAgICBzZWxmLnNjaGVtYV9p ZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVt YV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgdHJpZ2dlci4iKQor ICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfdHJpZ2dlcl8lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2VsZi50YWJs ZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi50YWJsZV9uYW1lKQorICAgICAgICBzZWxmLmZ1bmNfbmFtZSA9ICJ0 cmlnZ2VyX2Z1bmNfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 Nl0KKyAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gXAorICAgICAgICAg ICAgdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlv bl93aXRoX3RyaWdnZXIoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ1bmNfbmFtZSkK KyAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUgPSAidGVzdF90cmlnZ2VyX2Rl bGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAg c2VsZi50cmlnZ2VyX2lkID0gdHJpZ2dlcnNfdXRpbHMuY3JlYXRlX3RyaWdn ZXIoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50 YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5mdW5jX25hbWUpCisKKyAgICBkZWYgcnVuVGVzdChz ZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0 cmlnZ2VyIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgICAgIHRyaWdnZXJf cmVzcG9uc2UgPSB0cmlnZ2Vyc191dGlscy52ZXJpZnlfdHJpZ2dlcihzZWxm LnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudHJpZ2dlcl9uYW1lKQorICAgICAgICBpZiBub3QgdHJpZ2dl cl9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHRyaWdnZXIgdG8gZGVsZXRlLiIpCisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAg InswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQoc2VsZi51cmws IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsIHNlbGYudGFibGVfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRyaWdnZXJfaWQpLAorICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFy RG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFz ZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3Rf dHJpZ2dlcnNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdn ZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMDY0NTMKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVz dF90cmlnZ2Vyc19nZXQucHkKQEAgLTAsMCArMSw3NiBAQAorIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHV1aWQKKworZnJvbSByZWdyZXNz aW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVz dHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2No ZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAg ICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMuZnVuY3Rpb25zLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdHJp Z2dlcl9mdW5jc191dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0cmln Z2Vyc191dGlscworCisKK2NsYXNzIFRyaWdnZXJzR2V0VGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRj aCB0cmlnZ2VyIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAoJ0ZldGNoIHRyaWdnZXIgTm9kZSBVUkwnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvdHJpZ2dlci9vYmovJykpCisgICAgXQorCisgICAg ZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJl bnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAg ICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1b LTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNl cnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1si ZGJfaWQiXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8g Z2V0IGEgdHJpZ2dlci4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2No ZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNl bGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNw b25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYSB0byBnZXQgYSB0cmlnZ2VyLiIpCisgICAgICAg IHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV90cmlnZ2VyXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0g dGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRh YmxlX25hbWUpCisgICAgICAgIHNlbGYuZnVuY19uYW1lID0gInRyaWdnZXJf ZnVuY19nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo2XQorICAgICAg ICBzZWxmLmZ1bmN0aW9uX2luZm8gPSBcCisgICAgICAgICAgICB0cmlnZ2Vy X2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uX3dpdGhfdHJp Z2dlcigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs IHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lKQorICAgICAgICBz ZWxmLnRyaWdnZXJfbmFtZSA9ICJ0ZXN0X3RyaWdnZXJfZ2V0XyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnRyaWdnZXJf aWQgPSB0cmlnZ2Vyc191dGlscy5jcmVhdGVfdHJpZ2dlcihzZWxmLnNlcnZl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYudHJpZ2dlcl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmZ1bmNfbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdHJpZ2dlciB1bmRlciB0 YWJsZSBub2RlLiIiIgorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LmdldCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2 fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lk LCBzZWxmLnRhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmlnZ2VyX2lkKSwKKyAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlz Y29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJzX3B1dC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJzX3B1 dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmM5 ZDdlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfcHV0LnB5CkBAIC0wLDAg KzEsODcgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCB1 dWlkCitpbXBvcnQganNvbgorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGls cyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5mdW5jdGlvbnMu dGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNzX3V0 aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJzX3V0aWxzCisK KworY2xhc3MgVHJpZ2dlcnNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSB0cmlnZ2Vy IHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2NlbmFyaW9zID0gWworICAg ICAgICAoJ1B1dCB0cmlnZ2VyIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93 c2VyL3RyaWdnZXIvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBzZXRVcChz ZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGlj dFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFf aW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEn XVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o CisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFi YXNlIHRvIHVwZGF0ZSBhIHRyaWdnZXIuIikKKyAgICAgICAgc2VsZi5zY2hl bWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisg ICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlf c2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBz Y2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gdXBkYXRlIGEgdHJpZ2dl ci4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfdHJpZ2dl cl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAgICAgc2Vs Zi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICBzZWxmLmZ1bmNfbmFt ZSA9ICJ0cmlnZ2VyX2Z1bmNfYWRkXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkp WzE6Nl0KKyAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gXAorICAgICAg ICAgICAgdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5j dGlvbl93aXRoX3RyaWdnZXIoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ1bmNfbmFt ZSkKKyAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUgPSAidGVzdF90cmlnZ2Vy X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICAg ICAgc2VsZi50cmlnZ2VyX2lkID0gdHJpZ2dlcnNfdXRpbHMuY3JlYXRlX3Ry aWdnZXIoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mdW5jX25hbWUpCisKKyAgICBkZWYgcnVuVGVz dChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0 ZSB0cmlnZ2VyIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgICAgIHRyaWdn ZXJfcmVzcG9uc2UgPSB0cmlnZ2Vyc191dGlscy52ZXJpZnlfdHJpZ2dlcihz ZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudHJpZ2dlcl9uYW1lKQorICAgICAgICBpZiBub3QgdHJp Z2dlcl9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHRyaWdnZXIgdG8gZGVsZXRlLiIpCisgICAg ICAgIGRhdGEgPSB7ImlkIjogc2VsZi50cmlnZ2VyX2lkLAorICAgICAgICAg ICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIHRlc3QgY29tbWVudC4i CisgICAgICAgICAgICAgICAgfQorICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLnB1dCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0v ezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX2lkLCBzZWxmLnRhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmlnZ2VyX2lkKSwK KyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29u bmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmln Z2Vycy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 cmlnZ2Vycy90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5iNTNjYTVmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3V0aWxzLnB5CkBA IC0wLDAgKzEsOTAgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgI3BnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg I0NvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgI1RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu dF9mdW5jdGlvbgoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHN5cworCitm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKwor CitkZWYgY3JlYXRlX3RyaWdnZXIoc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFf bmFtZSwgdGFibGVfbmFtZSwgdHJpZ2dlcl9uYW1lLAorICAgICAgICAgICAg ICAgICAgIHRyaWdnZXJfZnVuY19uYW1lKToKKyAgICAiIiIKKyAgICBUaGlz IGZ1bmN0aW9uIGNyZWF0ZXMgYSBjb2x1bW4gdW5kZXIgcHJvdmlkZWQgdGFi bGUuCisgICAgOnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKKyAgICA6 dHlwZSBzZXJ2ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJfbmFtZTogZGF0YWJh c2UgbmFtZQorICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJhbSBz Y2hlbWFfbmFtZTogc2NoZW1hIG5hbWUKKyAgICA6dHlwZSBzY2hlbWFfbmFt ZTogc3RyCisgICAgOnBhcmFtIHRhYmxlX25hbWU6IHRhYmxlIG5hbWUKKyAg ICA6dHlwZSB0YWJsZV9uYW1lOiBzdHIKKyAgICA6cGFyYW0gdHJpZ2dlcl9u YW1lOiB0cmlnZ2VyIG5hbWUKKyAgICA6dHlwZSB0cmlnZ2VyX25hbWU6IHN0 cgorICAgIDpwYXJhbSB0cmlnZ2VyX2Z1bmNfbmFtZTogdHJpZ2dlciBmdW5j dGlvbiBuYW1lCisgICAgOnR5cGUgdHJpZ2dlcl9mdW5jX25hbWU6IHN0cgor ICAgIDpyZXR1cm4gdHJpZ2dlcl9pZDogdHJpZ2dlciBpZAorICAgIDpydHlw ZTogaW50CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9u ID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn dXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn aG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWydwb3J0J10pCisgICAgICAgIG9sZF9pc29sYXRp b25fbGV2ZWwgPSBjb25uZWN0aW9uLmlzb2xhdGlvbl9sZXZlbAorICAgICAg ICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAg cGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBxdWVy eSA9ICJDUkVBVEUgVFJJR0dFUiAlcyBCRUZPUkUgSU5TRVJUIE9OICVzLiVz IEZPUiBFQUNIIFJPVyAiIFwKKyAgICAgICAgICAgICAgICAiRVhFQ1VURSBQ Uk9DRURVUkUgJXMuJXMoKSIgJSAodHJpZ2dlcl9uYW1lLCBzY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGFibGVfbmFtZSwgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJfZnVu Y19uYW1lKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVyeSkKKyAg ICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29s YXRpb25fbGV2ZWwpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAg ICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBvaWQgRlJPTSBwZ190 cmlnZ2VyIHdoZXJlIHRnbmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyaWdnZXJfbmFtZSkKKyAgICAgICAgdHJpZ2dlciA9IHBn X2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIHRyaWdnZXJfaWQgPSAnJwor ICAgICAgICBpZiB0cmlnZ2VyOgorICAgICAgICAgICAgdHJpZ2dlcl9pZCA9 IHRyaWdnZXJbMF0KKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAg ICAgIHJldHVybiB0cmlnZ2VyX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoK KyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIp CisgICAgICAgIHJhaXNlCisKKworZGVmIHZlcmlmeV90cmlnZ2VyKHNlcnZl ciwgZGJfbmFtZSwgdHJpZ2dlcl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlz IGZ1bmN0aW9uIHZlcmlmaWVzIHRhYmxlIGV4aXN0IGluIGRhdGFiYXNlIG9y IG5vdC4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscworICAg IDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRh YmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFtZTogc3RyCisgICAgOnBhcmFt IHRyaWdnZXJfbmFtZTogY29sdW1uIG5hbWUKKyAgICA6dHlwZSB0cmlnZ2Vy X25hbWU6IHN0cgorICAgIDpyZXR1cm4gdGFibGU6IHRhYmxlIHJlY29yZCBm cm9tIGRhdGFiYXNlCisgICAgOnJ0eXBlOiB0dXBsZQorICAgICIiIgorICAg IHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25u ZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9y dCddKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigp CisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJTRUxFQ1Qgb2lkIEZST00g cGdfdHJpZ2dlciB3aGVyZSB0Z25hbWU9JyVzJyIgJQorICAgICAgICAgICAg ICAgICAgICAgICAgICB0cmlnZ2VyX25hbWUpCisgICAgICAgIHRyaWdnZXIg PSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBjb25uZWN0aW9uLmNs b3NlKCkKKyAgICAgICAgcmV0dXJuIHRyaWdnZXIKKyAgICBleGNlcHQgRXhj ZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lz LnN0ZGVycikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3R5cGVzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdHlwZXMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNGIyYjgyYQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0w LDAgKzEsMTYgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBUeXBlc1Rlc3RHZW5lcmF0b3Io QmFzZVRlc3RHZW5lcmF0b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CisgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19hZGQucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2FkZC5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjkzNDA4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMvdGVzdF90eXBl c19hZGQucHkKQEAgLTAsMCArMSw2OCBAQAorIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlkCisKK2Zyb20gcmVn cmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFz IHNjaGVtYV91dGlscworCisKK2NsYXNzIFR5cGVzQWRkVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRk IHR5cGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgIHNjZW5hcmlvcyA9 IFsKKyAgICAgICAgKCdBZGQgdHlwZSB1bmRlciBzY2hlbWEgbm9kZScsIGRp Y3QodXJsPScvYnJvd3Nlci90eXBlL29iai8nKSkKKyAgICBdCisKKyAgICBk ZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVu dF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAg ICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVst MV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2Vy dmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJk Yl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBh ZGQgYSB0eXBlLiIpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1h X2luZm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFf cmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5z ZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNl OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHR5cGUuIikKKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFk ZCB0eXBlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICAgICAgZGJfdXNl ciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAgIHNlbGYudHlw ZV9uYW1lID0gInRlc3RfdHlwZV9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6Nl0pCisgICAgICAgIGRhdGEgPSB7Im5hbWUiOiBzZWxmLnR5cGVf bmFtZSwKKyAgICAgICAgICAgICAgICAiaXNfc3lzX3R5cGUiOiBGYWxzZSwK KyAgICAgICAgICAgICAgICAidHlwdHlwZSI6ICJjIiwKKyAgICAgICAgICAg ICAgICAidHlwZW93bmVyIjogZGJfdXNlciwKKyAgICAgICAgICAgICAgICAi c2NoZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAi Y29tcG9zaXRlIjogW3sibWVtYmVyX25hbWUiOiAib25lIiwgInR5cGUiOiAi YWJzdGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlz X3RsZW5ndGgiOiBGYWxzZSwgImlzX3ByZWNpc2lvbiI6IEZhbHNlfSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibWVtYmVyX25hbWUiOiAi dHdvIiwgInR5cGUiOiAiXCJjaGFyXCJbXSIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImlzX3RsZW5ndGgiOiBGYWxzZSwgImlzX3ByZWNp c2lvbiI6IEZhbHNlfV0sCisgICAgICAgICAgICAgICAgImVudW0iOiBbXSwg InR5cGFjbCI6IFtdLCAic2VjbGFiZWxzIjogW119CisgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lk KSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQor CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90 ZXN0X3R5cGVzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl c3RzL3Rlc3RfdHlwZXNfZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjc0Y2QzYTIKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2RlbGV0ZS5w eQpAQCAtMCwwICsxLDY1IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CitpbXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50 X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMg YXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVz dHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20g LiBpbXBvcnQgdXRpbHMgYXMgdHlwZXNfdXRpbHMKKworCitjbGFzcyBUeXBl c0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIg VGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2Rl LiAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnRGVsZXRlIHR5 cGUgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdHlw ZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAg ICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFy ZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2Vy dmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNl bGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBkYl9j b24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0 aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0 ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIGEgdHlwZS4iKQorICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQi XQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNj aGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1h X3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAg ICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBk ZWxldGUgYSB0eXBlLiIpCisgICAgICAgIHNlbGYudHlwZV9uYW1lID0gInRl c3RfdHlwZV9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0p CisgICAgICAgIHNlbGYudHlwZV9pZCA9IHR5cGVzX3V0aWxzLmNyZWF0ZV90 eXBlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUsIHNlbGYudHlwZV9uYW1lCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgIGRlZiBydW5UZXN0 KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0 ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICAgICAgdHlwZV9y ZXNwb25zZSA9IHR5cGVzX3V0aWxzLnZlcmlmeV90eXBlKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnR5cGVfbmFtZSkKKyAgICAgICAg aWYgbm90IHR5cGVfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSAgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgdHlwZSB0byBkZWxldGUuIikK KyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAg ICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fSIuZm9ybWF0KHNlbGYu dXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50eXBlX2lkCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAg ICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAgKQorICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZXN0cy90ZXN0X3R5cGVzX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVz L3Rlc3RzL3Rlc3RfdHlwZXNfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjYxYzIxMTcKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2dldC5weQpA QCAtMCwwICsxLDYxIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitp bXBvcnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25v ZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMg XAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMg aW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gLiBp bXBvcnQgdXRpbHMgYXMgdHlwZXNfdXRpbHMKKworCitjbGFzcyBUeXBlc0dl dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIGdldCB0aGUgdHlwZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIi CisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJ0dldCB0eXBlIHVuZGVy IHNjaGVtYSBub2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3R5cGUvb2JqLycp KQorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1b ImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2Rl X2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lk ID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisg ICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlIHRvIGdldCBhIHR5cGUuIikKKyAgICAgICAgc2VsZi5z Y2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJd CisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJp Znlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5v dCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZ2V0IGEgdHlwZS4i KQorICAgICAgICBzZWxmLnR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVfZ2V0XyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnR5 cGVfaWQgPSB0eXBlc191dGlscy5jcmVhdGVfdHlwZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnR5cGVf bmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgYSB0eXBlIHVuZGVyIHNjaGVt YSBub2RlLiAiIiIKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5n ZXQoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fSIuZm9y bWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50eXBlX2lk CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAg ICAgKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg ICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX3B1dC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3R5cGVzL3Rlc3RzL3Rlc3RfdHlwZXNfcHV0LnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwYTlkMGEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVz X3B1dC5weQpAQCAtMCwwICsxLDY4IEBACisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSByZWdy ZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscwor ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMg c2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHR5cGVzX3V0 aWxzCisKKworY2xhc3MgVHlwZXNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdHlw ZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAgc2NlbmFyaW9zID0gWwor ICAgICAgICAoJ1VwZGF0ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2RlJywgZGlj dCh1cmw9Jy9icm93c2VyL3R5cGUvb2JqLycpKQorICAgIF0KKworICAgIGRl ZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAg ICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0x XQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2 ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRi X2lkIl0KKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIHVw ZGF0ZSBhIHR5cGUuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hl bWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxm LnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEgdG8gdXBkYXRlIGEgdHlwZS4iKQorICAgICAgICBz ZWxmLnR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVfcHV0XyVzIiAlIChzdHIodXVp ZC51dWlkNCgpKVsxOjZdKQorICAgICAgICBzZWxmLnR5cGVfaWQgPSB0eXBl c191dGlscy5jcmVhdGVfdHlwZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnR5cGVfbmFtZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVu Y3Rpb24gd2lsbCB1cGRhdGUgdHlwZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIi CisgICAgICAgIHR5cGVfcmVzcG9uc2UgPSB0eXBlc191dGlscy52ZXJpZnlf dHlwZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50eXBl X25hbWUpCisgICAgICAgIGlmIG5vdCB0eXBlX3Jlc3BvbnNlOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgdHlw ZSB0byB1cGRhdGUuIikKKyAgICAgICAgZGF0YSA9IHsiaWQiOiBzZWxmLnR5 cGVfaWQsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogInRoaXMg aXMgdGVzdCBjb21tZW50LiJ9CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIucHV0KAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97 NX0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsIHNlbGYu dHlwZV9pZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEp LAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nv bm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0 cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL3V0aWxz LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ZmQ0 NGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZXN0cy91dGlscy5weQpAQCAtMCwwICsxLDgyIEBACisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjICNwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjICNDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjICNUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB0cmFjZWJhY2sK K2ltcG9ydCBzeXMKKworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCisKKworZGVmIGNyZWF0ZV90eXBlKHNlcnZlciwgZGJf bmFtZSwgc2NoZW1hX25hbWUsIHR5cGVfbmFtZSk6CisgICAgIiIiCisgICAg VGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgdHlwZSB1bmRlciBwcm92aWRlZCBz Y2hlbWEuCisgICAgOnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKKyAg ICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJfbmFtZTogZGF0 YWJhc2UgbmFtZQorICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJh bSBzY2hlbWFfbmFtZTogc2NoZW1hIG5hbWUKKyAgICA6dHlwZSBzY2hlbWFf bmFtZTogc3RyCisgICAgOnBhcmFtIHR5cGVfbmFtZTogdHlwZSBuYW1lCisg ICAgOnR5cGUgdHlwZV9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHR5cGVfaWQ6 IHR5cGUgaWQKKyAgICA6cnR5cGU6IGludAorICAgICIiIgorICAgIHRyeToK KyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9u KGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bh c3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddKQor ICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVsID0gY29ubmVjdGlvbi5pc29s YXRpb25fbGV2ZWwKKyAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9u X2xldmVsKDApCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vy c29yKCkKKyAgICAgICAgcXVlcnkgPSAnQ1JFQVRFIFRZUEUgJXMuJXMgQVMg IChvbmUgImNoYXIiLCB0d28gImNoYXIiW10pOyAnIFwKKyAgICAgICAgICAg ICAgICAnQUxURVIgVFlQRSAlcy4lcyAgT1dORVIgVE8gJXMnICUgKHNjaGVt YV9uYW1lLCB0eXBlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwgdHlwZV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddKQorICAgICAgICBwZ19j dXJzb3IuZXhlY3V0ZShxdWVyeSkKKyAgICAgICAgY29ubmVjdGlvbi5zZXRf aXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAg IGNvbm5lY3Rpb24uY29tbWl0KCkKKyAgICAgICAgIyBHZXQgJ29pZCcgZnJv bSBuZXdseSBjcmVhdGVkIHR5cGUKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1 dGUoCisgICAgICAgICAgICAic2VsZWN0IG9pZCBmcm9tIHBnX3R5cGUgd2hl cmUgdHlwbmFtZT0nJXMnIiAlIHR5cGVfbmFtZSkKKyAgICAgICAgc2NoZW1h X3R5cGUgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICB0eXBlX2lk ID0gc2NoZW1hX3R5cGVbMF0KKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgp CisgICAgICAgIHJldHVybiB0eXBlX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlv bjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRl cnIpCisKKworZGVmIHZlcmlmeV90eXBlKHNlcnZlciwgZGJfbmFtZSwgdHlw ZV9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVz IHR5cGUgZXhpc3QgaW4gZGF0YWJhc2Ugb3Igbm90LgorICAgIDpwYXJhbSBz ZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0 CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlw ZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gdHlwZV9uYW1lOiB0eXBlIG5h bWUKKyAgICA6dHlwZSB0eXBlX25hbWU6IHN0cgorICAgIDpyZXR1cm4gc2No ZW1hX3R5cGU6IHR5cGUgcmVjb3JkIGZyb20gZGF0YWJhc2UKKyAgICA6cnR5 cGU6IHR1cGxlCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0 aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyWydwb3J0J10pCisgICAgICAgIHBnX2N1cnNv ciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4 ZWN1dGUoCisgICAgICAgICAgICAic2VsZWN0IG9pZCBmcm9tIHBnX3R5cGUg d2hlcmUgdHlwbmFtZT0nJXMnIiAlIHR5cGVfbmFtZSkKKyAgICAgICAgc2No ZW1hX3R5cGUgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICBjb25u ZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHNjaGVtYV90eXBlCisg ICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50 X2V4YyhmaWxlPXN5cy5zdGRlcnIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmFmNDQ4NWUKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy9fX2luaXRfXy5weQpAQCAtMCww ICsxLDE2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCisKKworY2xhc3MgVmlld3NUZXN0R2VuZXJhdG9yKEJh c2VUZXN0R2VuZXJhdG9yKToKKworICAgIGRlZiBnZW5lcmF0ZV90ZXN0cyhz ZWxmKToKKyAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2FkZC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfYWRkLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMWVlNTgKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3Zp ZXdzX2FkZC5weQpAQCAtMCwwICsxLDk1IEBACisjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSBy ZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGls cworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCisKKworY2xhc3MgVmlld3NBZGRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFk ZCBuZXcgdmlldyB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICB2aWV3X25h bWUgPSAidGVzdF92aWV3X2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlb MTo2XSkKKyAgICB2X2RhdGEgPSB7InNjaGVtYSI6ICIiLAorICAgICAgICAg ICAgICAib3duZXIiOiAiIiwKKyAgICAgICAgICAgICAgImRhdGFjbCI6IFtd LAorICAgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAgICAgICAg ICAgICJuYW1lIjogdmlld19uYW1lLAorICAgICAgICAgICAgICAiZGVmaW5p dGlvbiI6ICJTRUxFQ1QgJ0hlbGxvIFdvcmxkJzsiCisgICAgICAgICAgICAg IH0KKyAgICBtX3ZpZXdfbmFtZSA9ICJ0ZXN0X212aWV3X2FkZF8lcyIgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo2XSkKKyAgICBtX3ZpZXdfZGF0YSA9IHsi c3BjbmFtZSI6ICJwZ19kZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAi dG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkIjogRmFsc2UsCisgICAgICAgICAg ICAgICAgICAgImF1dG92YWN1dW1fZW5hYmxlZCI6IEZhbHNlLAorICAgICAg ICAgICAgICAgICAgICJzY2hlbWEiOiAiIiwKKyAgICAgICAgICAgICAgICAg ICAib3duZXIiOiAiIiwKKyAgICAgICAgICAgICAgICAgICAidmFjdXVtX3Rh YmxlIjogWworICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0 b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciJ9LAorICAgICAgICAgICAg ICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9hbmFseXplX3RocmVz aG9sZCJ9LAorICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0 b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSJ9LAorICAgICAgICAgICAgICAgICAg ICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSJ9 LAorICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1 bV92YWN1dW1fY29zdF9saW1pdCJ9LAorICAgICAgICAgICAgICAgICAgICAg ICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yIn0s CisgICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVt X3ZhY3V1bV90aHJlc2hvbGQifSwKKyAgICAgICAgICAgICAgICAgICAgICAg eyJuYW1lIjogImF1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UifSwKKyAgICAg ICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fZnJlZXpl X3RhYmxlX2FnZSJ9XSwKKyAgICAgICAgICAgICAgICAgICAidmFjdXVtX3Rv YXN0IjogW3sibmFtZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlIn0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUi OiAiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSJ9LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1 dW1fdmFjdXVtX2Nvc3RfbGltaXQifSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9z Y2FsZV9mYWN0b3IifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQi fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibmFt ZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlIn0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1 bV9mcmVlemVfdGFibGVfYWdlIn1dLAorICAgICAgICAgICAgICAgICAgICJk YXRhY2wiOiBbXSwKKyAgICAgICAgICAgICAgICAgICAic2VjbGFiZWxzIjog W10sCisgICAgICAgICAgICAgICAgICAgIm5hbWUiOiBtX3ZpZXdfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAiZGVmaW5pdGlvbiI6ICJTRUxFQ1QgJ3Rl c3RfcGdhZG1pbic7In0KKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgn QWRkIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvdmlldy9vYmovJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YT12X2RhdGEpKSwKKyAgICAgICAgKCdBZGQg bWF0ZXJpYWxpemVkIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUnLAorICAgICAg ICAgZGljdCh1cmw9Jy9icm93c2VyL212aWV3L29iai8nLCBkYXRhPW1fdmll d19kYXRhKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJl bnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2Vs Zi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgdmlldy4iKQorICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAg aWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhl IHZpZXcuIikKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHZpZXcgdW5kZXIgc2NoZW1hIG5v ZGUuIiIiCisgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5h bWUiXQorICAgICAgICBzZWxmLmRhdGFbInNjaGVtYSJdID0gc2VsZi5zY2hl bWFfbmFtZQorICAgICAgICBzZWxmLmRhdGFbIm93bmVyIl0gPSBkYl91c2Vy CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpCisgICAgICAgICAgICArICcvJyAr IHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkg KyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRh KSwgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAg ZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3Zp ZXdzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rl c3Rfdmlld3NfZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjg1YzI3ZTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2RlbGV0ZS5weQpAQCAt MCwwICsxLDc5IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBv cnQgdXVpZAorCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVf ZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAor ICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gLiBpbXBv cnQgdXRpbHMgYXMgdmlld3NfdXRpbHMKKworCitjbGFzcyBWaWV3c0RlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNs YXNzIHdpbGwgZGVsZXRlIHRoZSB2aWV3L212aWV3IHVuZGVyIHNjaGVtYSBu b2RlLiIiIgorICAgIHZpZXdfc3FsID0gIkNSRUFURSBPUiBSRVBMQUNFIFZJ RVcgJXMuJXMgQVMgU0VMRUNUICdIZWxsbyBXb3JsZCc7ICIgXAorICAgICAg ICAgICAgICAgIkFMVEVSIFRBQkxFICVzLiVzIE9XTkVSIFRPICVzIgorICAg IG1fdmlld19zcWwgPSAiQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXICVzLiVz IFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCBBUyAiIFwKKyAgICAgICAgICAgICAg ICAgIlNFTEVDVCAndGVzdF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7QUxURVIg VEFCTEUgJXMuJXMgT1dORVIiIFwKKyAgICAgICAgICAgICAgICAgIiBUTyAl cyIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnRGVsZXRlIHZpZXcg dW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdmlldy9v YmovJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmlld19uYW1lPQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAidGVzdF92aWV3X2RlbGV0ZV8lcyIg JQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxbF9xdWVyeT12 aWV3X3NxbCkpLAorICAgICAgICAoJ0RlbGV0ZSBtYXRlcmlhbGl6ZWQgdmll dyB1bmRlciBzY2hlbWEgbm9kZScsCisgICAgICAgICBkaWN0KHVybD0nL2Jy b3dzZXIvbXZpZXcvb2JqLycsCisgICAgICAgICAgICAgIHZpZXdfbmFtZT0i dGVzdF9tdmlld19kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 Nl0pLAorICAgICAgICAgICAgICBzcWxfcXVlcnk9bV92aWV3X3NxbCkpCisg ICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRi X25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJf bmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2No ZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBz Y2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAg ICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UgdG8gZGVsZXRlIHZpZXcuIikKKyAgICAgICAgc2VsZi5zY2hl bWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisg ICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlf c2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBz Y2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHRoZSB2aWV3 LiIpCisgICAgICAgIHNlbGYudmlld19pZCA9IHZpZXdzX3V0aWxzLmNyZWF0 ZV92aWV3KHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc3FsX3F1ZXJ5LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZpZXdf bmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSB2aWV3L212aWV3IHVuZGVy IHNjaGVtYSBub2RlLiIiIgorICAgICAgICB2aWV3X3Jlc3BvbnNlID0gdmll d3NfdXRpbHMudmVyaWZ5X3ZpZXcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudmlld19uYW1lKQorICAgICAgICBpZiBub3Qgdmlld19y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHZpZXcgdG8gZGVsZXRlLiIpCisgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgInswfXsx fS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfaWQsIHNlbGYudmlld19pZAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBk YXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92aWV3 c19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3Zp ZXdzX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5jZGRiYTFiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVzdHMvdGVzdF92aWV3c19nZXQucHkKQEAgLTAsMCArMSw3NSBA QAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHV1aWQKKwor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFz ZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAg dXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFz IHZpZXdzX3V0aWxzCisKKworY2xhc3MgVmlld3NHZXRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNo IHRoZSB2aWV3IHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAgIHZpZXdfc3Fs ID0gIkNSRUFURSBPUiBSRVBMQUNFIFZJRVcgJXMuJXMgQVMgU0VMRUNUICdI ZWxsbyBXb3JsZCc7ICIgXAorICAgICAgICAgICAgICAgIkFMVEVSIFRBQkxF ICVzLiVzIE9XTkVSIFRPICVzIgorICAgIG1fdmlld19zcWwgPSAiQ1JFQVRF IE1BVEVSSUFMSVpFRCBWSUVXICVzLiVzIFRBQkxFU1BBQ0UgcGdfZGVmYXVs dCBBUyAiIFwKKyAgICAgICAgICAgICAgICAgIlNFTEVDVCAndGVzdF9wZ2Fk bWluJyBXSVRIIE5PIERBVEE7QUxURVIgVEFCTEUgJXMuJXMgT1dORVIiIFwK KyAgICAgICAgICAgICAgICAgIiBUTyAlcyIKKyAgICBzY2VuYXJpb3MgPSBb CisgICAgICAgICgnR2V0IHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvdmlldy9vYmovJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19uYW1lPQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF92 aWV3X2dldF8lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo2XSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxbF9x dWVyeT12aWV3X3NxbCkpLAorICAgICAgICAoJ0dldCBtYXRlcmlhbGl6ZWQg dmlldyB1bmRlciBzY2hlbWEgbm9kZScsCisgICAgICAgICBkaWN0KHVybD0n L2Jyb3dzZXIvbXZpZXcvb2JqLycsCisgICAgICAgICAgICAgIHZpZXdfbmFt ZT0idGVzdF9tdmlld19nZXRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 Nl0pLAorICAgICAgICAgICAgICBzcWxfcXVlcnk9bV92aWV3X3NxbCkpCisg ICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRi X25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJf bmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2No ZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBz Y2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAg ICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UgdG8gZmV0Y2ggdGhlIHZpZXcuIikKKyAgICAgICAgc2VsZi5z Y2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJd CisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJp Znlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5v dCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZmV0Y2ggdGhlIHZp ZXcuIikKKyAgICAgICAgc2VsZi52aWV3X2lkID0gdmlld3NfdXRpbHMuY3Jl YXRlX3ZpZXcoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zcWxfcXVlcnksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmll d19uYW1lKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIi IlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgdmlldy9tdmlldyB1bmRl ciBzY2hlbWEgbm9kZS4iIiIKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1 fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi52 aWV3X2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUK KyAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYp OgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAg IGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX3B1dC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfcHV0LnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4OWJkOTEKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0 X3ZpZXdzX3B1dC5weQpAQCAtMCwwICsxLDgzIEBACisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJv bSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHZp ZXdzX3V0aWxzCisKKworY2xhc3MgVmlld3NVcGRhdGVUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0 ZSB0aGUgdmlldy9tdmlldyB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICB2 aWV3X3NxbCA9ICJDUkVBVEUgT1IgUkVQTEFDRSBWSUVXICVzLiVzIEFTIFNF TEVDVCAnSGVsbG8gV29ybGQnOyAiIFwKKyAgICAgICAgICAgICAgICJBTFRF UiBUQUJMRSAlcy4lcyBPV05FUiBUTyAlcyIKKyAgICBtX3ZpZXdfc3FsID0g IkNSRUFURSBNQVRFUklBTElaRUQgVklFVyAlcy4lcyBUQUJMRVNQQUNFIHBn X2RlZmF1bHQgQVMgIiBcCisgICAgICAgICAgICAgICAgICJTRUxFQ1QgJ3Rl c3RfcGdhZG1pbicgV0lUSCBOTyBEQVRBO0FMVEVSIFRBQkxFICVzLiVzIE9X TkVSIiBcCisgICAgICAgICAgICAgICAgICIgVE8gJXMiCisgICAgc2NlbmFy aW9zID0gWworICAgICAgICAoJ1VwZGF0ZSB2aWV3IHVuZGVyIHNjaGVtYSBu b2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3ZpZXcvb2JqLycsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdf bmFtZT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInRlc3Rfdmlld19wdXRfJXMiICUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6Nl0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcWxfcXVlcnk9dmlld19zcWwpKSwKKyAgICAg ICAgKCdVcGRhdGUgbWF0ZXJpYWxpemVkIHZpZXcgdW5kZXIgc2NoZW1hIG5v ZGUnLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL212aWV3L29iai8n LAorICAgICAgICAgICAgICB2aWV3X25hbWU9InRlc3RfbXZpZXdfcHV0XyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjZdKSwKKyAgICAgICAgICAgICAg c3FsX3F1ZXJ5PW1fdmlld19zcWwpKQorICAgIF0KKworICAgIGRlZiBzZXRV cChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVf ZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQi XQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0K KyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2Rh dGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIHVwZGF0ZSBh IHZpZXcuIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5m b1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBzY2hlbWEgdG8gdXBkYXRlIGEgdmlldy4iKQorICAgICAgICBzZWxmLnZp ZXdfaWQgPSB2aWV3c191dGlscy5jcmVhdGVfdmlldyhzZWxmLnNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNxbF9xdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi52aWV3X25hbWUpCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVw ZGF0ZSB0aGUgdmlldy9tdmlldyB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAg ICAgICAgdmlld19yZXNwb25zZSA9IHZpZXdzX3V0aWxzLnZlcmlmeV92aWV3 KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZpZXdfbmFt ZSkKKyAgICAgICAgaWYgbm90IHZpZXdfcmVzcG9uc2U6CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB2aWV3IHRv IHVwZGF0ZS4iKQorICAgICAgICBkYXRhID0geyJpZCI6IHNlbGYudmlld19p ZCwKKyAgICAgICAgICAgICAgICAiY29tbWVudCI6ICJUaGlzIGlzIHRlc3Qg Y29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgInswfXsxfS97Mn0v ezN9L3s0fS97NX0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFf aWQsIHNlbGYudmlld19pZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKGRhdGEpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAg ICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNl X3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl c3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmI5ODFmOGEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZXN0cy91dGlscy5weQpAQCAtMCwwICsxLDg0IEBACisjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjICNwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjICNDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjICNUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zy b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB0 cmFjZWJhY2sKK2ltcG9ydCBzeXMKKworZnJvbSByZWdyZXNzaW9uIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCisKKworZGVmIGNyZWF0ZV92aWV3KHNl cnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIHNxbF9xdWVyeSwgdmlld19u YW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSB0 YWJsZSB1bmRlciBwcm92aWRlZCBzY2hlbWEuCisgICAgOnBhcmFtIHNlcnZl cjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAg ICA6cGFyYW0gZGJfbmFtZTogZGF0YWJhc2UgbmFtZQorICAgIDp0eXBlIGRi X25hbWU6IHN0cgorICAgIDpwYXJhbSBzY2hlbWFfbmFtZTogc2NoZW1hIG5h bWUKKyAgICA6dHlwZSBzY2hlbWFfbmFtZTogc3RyCisgICAgOnBhcmFtIHNx bF9xdWVyeTogc3FsIHF1ZXJ5IHRvIGNyZWF0ZSB2aWV3CisgICAgOnR5cGUg c3FsX3F1ZXJ5OiBzdHIKKyAgICA6cGFyYW0gdmlld19uYW1lOiB2aWV3IG5h bWUKKyAgICA6dHlwZSB2aWV3X25hbWU6IHN0cgorICAgIDpyZXR1cm4gdmll d19pZDogdmlldyBpZAorICAgIDpydHlwZTogaW50CisgICAgIiIiCisgICAg dHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5l Y3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn ZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0 J10pCisgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9u Lmlzb2xhdGlvbl9sZXZlbAorICAgICAgICBjb25uZWN0aW9uLnNldF9pc29s YXRpb25fbGV2ZWwoMCkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlv bi5jdXJzb3IoKQorICAgICAgICBxdWVyeSA9IHNxbF9xdWVyeSAlIChzY2hl bWFfbmFtZSwgdmlld19uYW1lLCBzY2hlbWFfbmFtZSwgdmlld19uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1l J10pCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAg ICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlv bl9sZXZlbCkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAg ICAjIEdldCAnb2lkJyBmcm9tIG5ld2x5IGNyZWF0ZWQgdmlldworICAgICAg ICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBmcm9tIHBnX2NsYXNz IHdoZXJlIHJlbG5hbWU9JyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAg ICAgICB2aWV3X25hbWUpCisgICAgICAgIHZpZXcgPSBwZ19jdXJzb3IuZmV0 Y2hvbmUoKQorICAgICAgICB2aWV3X2lkID0gdmlld1swXQorICAgICAgICBj b25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHZpZXdfaWQKKyAg ICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRf ZXhjKGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgcmFpc2UKKworCitkZWYg dmVyaWZ5X3ZpZXcoc2VydmVyLCBkYl9uYW1lLCB2aWV3X25hbWUpOgorICAg ICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdmVyaWZpZXMgdmlldyBleGlzdCBp biBkYXRhYmFzZSBvciBub3QuCisgICAgOnBhcmFtIHNlcnZlcjogc2VydmVy IGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAgICA6cGFyYW0g ZGJfbmFtZTogZGF0YWJhc2UgbmFtZQorICAgIDp0eXBlIGRiX25hbWU6IHN0 cgorICAgIDpwYXJhbSB2aWV3X25hbWU6IHZpZXcgbmFtZQorICAgIDp0eXBl IHZpZXdfbmFtZTogc3RyCisgICAgOnJldHVybiB0YWJsZTogdGFibGUgcmVj b3JkIGZyb20gZGF0YWJhc2UKKyAgICA6cnR5cGU6IHR1cGxlCisgICAgIiIi CisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2Ri X2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy Wydwb3J0J10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vy c29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCBvaWQg ZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lPSclcyciICUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQorICAgICAgICB2aWV3ID0g cGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9z ZSgpCisgICAgICAgIHJldHVybiB2aWV3CisgICAgZXhjZXB0IEV4Y2VwdGlv bjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRl cnIpCisgICAgICAgIHJhaXNlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMv dXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdXRpbHMucHkKaW5kZXggZjUwYmNh MC4uMWUwZjY2YiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3V0aWxzLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGlscy5weQpAQCAtMTM2LDcgKzEzNiw3 IEBAIGRlZiBjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9ncm91cCwg c2VydmVyX2lkLCBkYl9pZCk6CiAgICAgZGJfY29uID0gc2VsZi50ZXN0ZXIu cG9zdCgnezB9ezF9L3syfS97M30nLmZvcm1hdCgKICAgICAgICAgREFUQUJB U0VfQ09OTkVDVF9VUkwsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lkLCBkYl9p ZCksCiAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICBzZWxm LmFzc2VydEVxdWFscyhkYl9jb24uc3RhdHVzX2NvZGUsIDIwMCkKKyAgICBh c3NlcnQgZGJfY29uLnN0YXR1c19jb2RlID09IDIwMAogICAgIGRiX2NvbiA9 IGpzb24ubG9hZHMoZGJfY29uLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQogICAg IHJldHVybiBkYl9jb24KIApAQCAtMTQ2LDQgKzE0Niw0IEBAIGRlZiBkaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpOgogICAg IGRiX2NvbiA9IHNlbGYudGVzdGVyLmRlbGV0ZSgnezB9ezF9L3syfS97M30n LmZvcm1hdCgKICAgICAgICAgJ2Jyb3dzZXIvZGF0YWJhc2UvY29ubmVjdC8n LCB1dGlscy5TRVJWRVJfR1JPVVAsIHNlcnZlcl9pZCwgZGJfaWQpLAogICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgc2VsZi5hc3NlcnRF cXVhbHMoZGJfY29uLnN0YXR1c19jb2RlLCAyMDApCisgICAgYXNzZXJ0IGRi X2Nvbi5zdGF0dXNfY29kZSA9PSAyMDAK --001a1149c23a9a9625053ed2ccfe 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 --001a1149c23a9a9625053ed2ccfe--