Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lg5IK-00077A-DH for pgadmin-hackers@arkaria.postgresql.org; Mon, 10 May 2021 12:45:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lg5IJ-00016X-2o for pgadmin-hackers@arkaria.postgresql.org; Mon, 10 May 2021 12:45:55 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lg5IH-00015z-TY for pgadmin-hackers@lists.postgresql.org; Mon, 10 May 2021 12:45:54 +0000 Received: from mail-yb1-xb29.google.com ([2607:f8b0:4864:20::b29]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lg5Ht-00078x-TQ for pgadmin-hackers@postgresql.org; Mon, 10 May 2021 12:45:52 +0000 Received: by mail-yb1-xb29.google.com with SMTP id 82so21446091yby.7 for ; Mon, 10 May 2021 05:45:29 -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; bh=E16O8hx9w8IbH3QdNNdg/BrJAS6xG6VPsxJnxJwxqrc=; b=pjh97v7Mb0tlP2VNgUj/s1tyJ+JE2tdYvKmj6b9+/7yWdvSsYt52Y62JkmY56q5CPL 0IvGLlWSBcV2gfss/vI0rrb7yJifMu9pAT4wAkkwZsg/k0pQKpyDJfgGOzwiC44m0Etr yoth4CNiwFnsOmt6L/ydCs6J+LQUNYMSOrTocWuHUodZKP7SnlREMFw4oauAzCgnaz0H LSJDFzms59fNePo5wBayzADnUhakCkDBmIOCihDA5Rot6esJXx21BM5B/j7DSWkhKuSR x0/LDRaYyWYSbmsFbHB9vuBZlHF4dXzeFHDq2SqUJYcO+PSoWXKYAncgTJ1mGd9ELCZW 1j/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=E16O8hx9w8IbH3QdNNdg/BrJAS6xG6VPsxJnxJwxqrc=; b=ZOZ/kq4Y5nls7ck8fBUpqEAexq/k6av0CyFqaKGNKB7TBch/9x79n2pmyVtAhFf4uT bvv9/oRboStcydO+CHDmxUFAwvL5Ek0r2s1b6fnxidnnRMM7ALKjEd72X/Fuv3zJLF7Q GOUsPBXJeOHDJ+R+CZAnNSvQzZb9PuILWVVtY5oCa1DO4pPaTPhgIkTXO6mlavQYodV7 8RIwrR8vn2oMC62zJUo9ZlbQSZ9pFVHnNACS56wihdExbAnUWHkbZdMK6PZ2mF0LA4g2 0h4yNEPqeDqadUDMNDAiaLrGYbIIoC+GEJQlodXpnDg/E30XH/lQQJ10LMmcnPRyDRCP SNXA== X-Gm-Message-State: AOAM530/8R8uUD12KZwqz94yX2Shoz6OvmBtKrBsPZ1vEUidZqC7Tgk3 2ZEFd4SWPhLO7LB2wQYZxI3xFjQbS8p04hIy4ZakOMsHIvFz5meklsFeyfCHbBaqZyzTiPo69KQ kCH1ISmgv4eEBXYpfQ8aO9fFtlME1jv3W8k8Gj27KBisBeyyF3THmQkBlOrCGUEFOOFSelSX2md O81trxNh2IgIVJOKQZv7TAaEwvROJL2xduQ1fu4CiCkuLCBaDcZvjSbr7/Fyih7EEzKA== X-Google-Smtp-Source: ABdhPJwq2plGCvRvv7p19gFw/9E9uSWH5rV4DrV4Hjxs/W7v/KX+7/8ieG27AzYDPfEoIshSDdsgZdw1JWGcYFuJllo= X-Received: by 2002:a25:3342:: with SMTP id z63mr32717783ybz.46.1620650728189; Mon, 10 May 2021 05:45:28 -0700 (PDT) MIME-Version: 1.0 From: Nikhil Mohite Date: Mon, 10 May 2021 18:15:17 +0530 Message-ID: Subject: [pgAdmin][RM-2341]: Add menu option for starting PSQL To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000f5b74605c1f92645" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f5b74605c1f92645 Content-Type: multipart/alternative; boundary="000000000000f5b74305c1f92643" --000000000000f5b74305c1f92643 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Please find the attached patch for RM-2341 : Add Menu option for starting PSQL. 1. Added new Option PSQL Tool in Tools menu. 2. Added the same option for Server and Database nodes from the tree view. -- *Thanks & Regards,* *Nikhil Mohite* *Software Engineer.* *EDB Postgres* *Mob.No: +91-7798364578.* --000000000000f5b74305c1f92643 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Please find the attached pa= tch for RM-2341:= =C2=A0Add Menu option for starting PSQL.
1. Added new Option PSQL= Tool in Tools menu.
2. Added the same option for Server and Data= base nodes from the tree view.



=


--
Thanks & Regards,
Nikhil Mohite
Software Engineer.
Mob.No: +91-7798364578.
=
--000000000000f5b74305c1f92643-- --000000000000f5b74605c1f92645 Content-Type: application/octet-stream; name="RM_2341.patch" Content-Disposition: attachment; filename="RM_2341.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_koikcm2h0 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvZGV2ZWxvcGVyX3Rvb2xzLnJzdCBiL2RvY3MvZW5fVVMv ZGV2ZWxvcGVyX3Rvb2xzLnJzdAppbmRleCAxZmY0NDJjYy4uYmI2N2UzM2EgMTAwNjQ0Ci0tLSBh L2RvY3MvZW5fVVMvZGV2ZWxvcGVyX3Rvb2xzLnJzdAorKysgYi9kb2NzL2VuX1VTL2RldmVsb3Bl cl90b29scy5yc3QKQEAgLTE2LDMgKzE2LDQgQEAgUEwvU1FMIGNvZGUuCiAgICBlZGl0Z3JpZAog ICAgc2NoZW1hX2RpZmYKICAgIGVyZF90b29sCisgICBwc3FsX3Rvb2wKZGlmZiAtLWdpdCBhL2Rv Y3MvZW5fVVMvaW1hZ2VzL3BzcWxfdG9vbC5wbmcgYi9kb2NzL2VuX1VTL2ltYWdlcy9wc3FsX3Rv b2wucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAuLmM1Zjg4YmE1YTU3M2FhNjBiZjdlMDhiOGEzODUyNmRjNzNlOGZj ZDUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIzNzM2CnpjbWVGWWc8bitOX2NseF4tMngmRjNX IylmRHlYQ3xOT3lNKC02XlB+YmMwOUAoJW5jNk5EMlo8IXZJNWY1QWghRQp6dWlrdjAtfX03cFUr fXtaJmYlUUImZmFfTnoxTGRUd2Jyfj5RSWY7T2RXNDA5Z29PTCo8I1NhZUIkUiQ2QjsqKjMKemBA a0t8QX50NnZCcGcjSzg1eHlWR0JVSSgmSk5+UXdxezYzRlcpQzxwekZyVFFNOT82ZWt3O0hqM0dR Qkc5IzloCnojZHNESnBkYmEzQ1ZLZ2hpeEdgUEtwU0U+T2FGbm08TzgjSU54O3YqYTk3ZjlKRX08 M2d4NzN1b3BLS0pVUHtgdQp6P0lTWWhjanBsQjJLZT1HPzxgXnRJbEV3fi19R0xnSTh4eyt5ezlx Z3BeY0Ile2Z8RX05VkpuNDdCRT1QUTk+aSkKelZoRklhYVpkYmBDTVNfVUAwOFVTSEN6aV84KzVC TXQ3MEhZYT89Znd2WT4/JClGQX5WVlZORyNCWlYpaklFYStJCnolPG5Ne2s2aC1JNDdWdDlEIXRG NDBrZyVPNkV9PVk/K3ZaVE1CPEpkUEoqTGtQdjFaT1lBblVSe0tGVG1xNngkdAp6aTtgYEQ9MlJ7 QEtxajR6dm1mNWtAemghci08WmpnQmlNdGlZaW8tYDVQWns8Q0R0X3podk9NMz5aM35JQns3QGMK enlDbER7dSkzfiRLKzI1bkU3JmVlK0BESzRlJXw/TFpYazsmd30mXnBEZXQkX3spVj45PHktb25L ZEYlN1M+RFBQCnpTWj0pbTJMQHFwcTkrcUhWVl5IQDV2MGpiSzRsQzRJS0VLQGVqRjxyekd5OH5B cGdPbVo+cihyXkFGKlYrMkhyagp6PEdhcUooaXp+KykhQHpaMUxRVnExaXpVZG1SIUhUOHRXNDdL XnFHcFEtUEdpSil+U3hjfnV6Z01DaC1WdX5gcHQKekU1NnlqP3dZQldxRztmTEwpQXZyV2dFLU9x UjwmX3clV0A7VHlzKD4tRUcqYW5XRVk4YWNsYGZAOG4jYUZhRkNPCnoqYEw7cklHcDBTcz92QWI9 JEJtTFprJUt9JSVhazlBYHxTTkArfVgkY2x0aGI1WT5SYVA0OGk5ZCNBSXFnc1gxYQp6KGVrVDNW NnVXUTwkaGRQYG5kPElzUWVzYXMrakthbWZCdy1oPl5QYVZIWE5KMjBDa1kycGZlMHZadihlLTBV eDAKemU9QXZmV1NVK25iXj5JOTVfM257c3JLKig7JkdDZ1hRPWRxRG1hN0s2YzAlUGpTRnVDemxA OHtOKUVNSz96Y3p5Cno+XilxUENQMmtuYTlDKylVNX17KT9PfDl5elMoMEJzMzJ8NnIkIVYrcTRI SHxNPkB3TzxxMjU2aWxCVypvY2xpWgp6eHkxfCllaD0hdDx7M2B0QWg4QVBJezFmUUV0NHB0M2pz QWpESXE5Q0MrPG4hTDc2YypIWWkzeUhPPVdIaTUhTCgKekdscWBlOEI4bDsrTEthRz8lM0lxTHhW PytCOEhHOykxYXNtY0FzZUwxMllHNlNlTXIxKX5sJn09WH1sRnl9cF4hCnokbGZSfSFAQlhvUG00 eko+dSh3TDZ9KDhGP0pVSExqTGBEdl5DPT5vNVVNVUU2UT1VMlV4WiU/JWdiUyEjQlJ0VQp6a1JC UEV3SUEofDl2dmtMNS01dT0kNmp7UTc7TEtQeSRiY3RASj5SWVokRCV2UXNodXw7TXtyZTg+aXYx aEhscVYKemRzI3F1Y05+XiVsJVojJXctLXxPYi10eSg4Yj1FMUpYVlAzUEwpMEtPdXk5Vl80UEdG bU1obVReNFg2Xl9UWGBnCno0NEIhT2FLSjglPU5afi0ma0VWRlZqOHFGeypocGo/Ky1MbGJRYUtm NCR4WEAyfHxKfUlQWjRfbzV0V1ZlaVF6PAp6PSM/MDNXa3tOZ3w2VEgpQ2YtRUF1XzRjfGApK3xQ M3JMbnxhX3lMVkpjOVZfZmk/Xkx4KUs9KzxaSC1mUVp6eGQKemszKnQzM0RtbDxEJiV3dGx8diVZ N3prZ29laFVBPnAhSmZTe3paSCp0MH1ULTtNZUM5M183dmUlam5DVCZMfjEzCnpVMTtsSzVISENO JFBURXhSVVRQflhsTFdDRn4+KGJrMzhmaCZqP0BydG9EUCpnfDZ7SWlMfWojbT9mJGdpZGVNMQp6 alFTYytINXFDJFVRZ0ZvRWBmK2hyd1J7TiljJFlGemJMO183SSNeZmR3bklwOUBGMz9uVFR4WmRA cVA8djFzcHoKekQraGE4a0NnUmNfKj5HIz1Ed1o+PmZBZW5aQFZ6REdiV1NfTG5YJjJYYXBXMWB5 c2o9eXdjPTNwVVEoQiF5VTE5CnpAfDhNbD13b3t5M2xtKX0qZWZ1dDU/VC0/NWVOe1M2NiVDZ2Il a341NlRMVG0/Zm0zaz85d1lBUmw9Zig+WnN+NAp6bXZvbnVwUmNeK0MrS3V5I3JrNUdhVnEwPVV6 YX1LV3UjIytWM2VSY2VSSzVtQnAmSXQ9IT0mclFkK1hWbTh8bDAKenpxcUpnNnk2OFBTcmhRM3F7 P0x8bXdjWDNRK342blZ6OUJjX0d8NUlHaCFAdVpENmN1Xm1pRnA3VCE3fWwxZXVpCnorTExFQzhl ZzRQb2wjOVgjV3AxYG9VdFFgcEp5QGhhWlBAYDx8eXZTYD4zdUZYRXdHYFI0LT5vY2gtOUx7JW44 YQp6QEctTzNpNUYkZEUzWVNCMzB+O08+Pkk5fFlEWktANEhySUZMS291flZhRTxAcjtqKnNMfilq SXYyWVV+WnQpQSsKej9FUT19VHtDPVcjTFROfVN3RmI8V2xgcFNQcX4+UklaNipvazZYYEUqI2cy SnkrNlYmO3c/WiUpc3V5QGgwdEZrCnp6b3JHcEpzTz5BX1RRTTA1U3N7ZGRKZHFoYTwzdzx4fj9M T05JTH5QcExkZXQ3dF4/VHstVEltV1h4ZnRrOF9VbQp6V3Q+ISlPUkgzMVAmaWM3TmFqelM8TGV5 TTlxMzY+PGU0XmdgfktDdHs+TlZYViRrQUJDcUI7MkkzPUd1bW9qZ2IKelJxTm5va1lgekYtaSFG cTBwcERCUzBDLT1eVVZzKUdGUG5vTyVuQ3E7dUlTYGRwflluNDEzI0Y2YEA3PjdQPEp0CnpjK1ct IWVfZDRWVFd5Q0xgP3tTZnJ8TVN+UGl1WiNmRn4ySmApZGEpXno1ZHNyJWYhKDFTYWVnXiloRDVQ OUF2SQp6dyoyeGR4dzFrQzs2PnFDO21yJjQzWDhoKEl4UHomM1FoPmtJZWl1aDY7eVBFSTVsbzR4 UntIO01JMm1PbXhDSjUKej5jak9RZGhDcyNPSXU1Y0NMPkYhNyUmKHY8ekNBRGpIcTlmMTtncXxu I0xQdVk1Rk0xTUppb1BWWkhGJkVtXlkmCnpaTFc9QExnZ0x0b3FJZGV2a3UtNXkoMEZSazFiRW1g cDNHfTdQUGlLJDNPMG50bipENF9pY3ZPNzEjQjgkREp6RAp6eWNeY2NhYDRzbTZ+RE1SfEwoaSMr ak9+Z1MkV0JTSGZ1O3hMSHRZcG0mR09Ld2IzPkJEKkNKcWRrPmN4T09SbUMKekIzc0FNWigqbXNB ZVR6K3FwU25YNj15R0ZJODhPKk9PZ1NzQSo/eH51VUhqJGkoeC1RTEB7YmBOIzU7WF87eHQwCnpF PDJxI1dgO0Z7Xj55TmZ3aytPdnY7Z2FMUk99Vio5cWdUOGJjVi09OX19TF4rdEdzPUh0REBUYCtQ USt0JDl4VAp6KzJwZ3ZeWjVtPkoreCtSe28jamdUdmdFTz9oKWZwI3VIR3thTSQrPFEyeXVfJj94 ZEk+I1lueWdySnFLaUQpPnkKenlYLT8tK0NubFgtKHJETm1sR3hvMHVAc19kWVBXIUFeYmo7U0lF a0piYVQwVSp7cldsRW5QTUtYLVNiK1FBJHh3CnprOzc9bSp4VVN+cDZFdnMtazBZdFJXN2YqKWIy bEo7NF9odi0zPHhIdnwpNUh6YzVXUyk2WkhIYmhfeE9pV15gZwp6UTRraV5hXlV0cV97Sip6Uihv UlNFQj5YMkE4d21LVDJjI0xsVXpIPVJ9eFg7Y1VUKE9QMHl1MUN3eWlTa2BqNmIKeiZSbzV9UXU9 K0hDQGxQMF9iZ0dWWTBMNXBlVjRoX1dgWG5sYkNFKj9fOSlmfiR0VWI4RVBRI355enxsOHItXkYk CnolSWglPS1AbHRlaWpkVk42fURyY3ozJDhlLU9wZEIjUyk0KDg+azNCWkZAN3ZmeVo5VD9rQj9M SWB3Vit7I2YxXgp6JEFEdT5nLTFgXnJgfUp5N0UzKCRjeXVoWmhFcFhydVdnNjZPMjlFZnpyb3RA c1ViYlZJPFdyRlgxJjlyISRiSXUKej5WfCR9PDxXUmhefVJ1Q0hxcyVUdiVSIUpobUckcHttVyhv dCs8ek5oeDkoTnJmKDMmVyE7O2t7dyFwUFM7ZFpKCnpnPHNGZ3BPLUpzeEtxIW9gJWJwO1QzOHt0 PWdyYSppSWUxJDM9OVk+alZFNlJDcD52WlF+SWIwViNIX1RkY0w3eQp6ISZvTXl2IyFfUiQ+digo VG1vVUtnOy1fR0htKz1uZTxkcXhkclM0VSNVYzNvVHtwIz8/RjBNZj1CRi1kU0xQb0YKek56JiNX VnI/NTVfXmZTWUI0cmQ7Xz9LI3o/NHMpbT4/TittNVFyJSVhfWdGZHBQOHEjTU48aiYjVSZHRXdR aENpCnpKNyV0eThJYDNyJUJ6fDMta3FvWDw0eGxadihPb2gzWXNtQW90dnckdVFhN0o7WCklYEZ9 fiYzYXRJbSROQEdlRQp6Mmd5Z355aHBxckRBWDAjNnsqNllsPWdPYncmRikpeTsqTTU3Mj5NQ0to TUBHT0A1a1NNPDNJMDIrZDg/K3BMU24KemRNX0RtRT5CRHxMOT8ydF8pQU4hS20kY1E1Xn5vKjJm WG0zZUk2LWBzQn5PRz89d24tRjNmWk81U1Bxe28ke2deCnpvK1B1fnh7WFZBI209dkgoRHJrTnN9 YzVWQzhuUkxHe29UaW9NbV84K3tTNUF4VUBqRyY2REJxLUE0WjI+WF4+Rwp6SXtpIVNPUGwjXlBq P0xXQDRGbEdDQ3dJb1d2Y0A0YEk5MGFiLUNUSmBMO2RVXj41b0BMMUR3eFBwTiZeYmtDQm4Kej5r cjxLJDR3UHZEbzRBI2FNUWMrP2J5djJIWFhpYj83IXdiR3dCMnV6JExFOUZXe2s+YChoYSElTiFS cys2U1hZCnpEPz1Ke1chbTF2VWJgKnFLQ2BGIW1uR31kZGJfYE5tRC1mT1pAeEg4cF50X15xSzli R0IpV1lYI3woYldiSE10fgp6UVJSP3ZfPDVQbzFLUWtCQiRkJHZvRz4kSzclZ3t2UD1oUllpY20y d25aN29WO2V+U2A5aGEtb09nNjl+Wkd7YVEKelE3XnchXmFVeTctNzhGKlIybG1+NUE5ZCRkPVZA Xy03JFRBb2tXVGhsWnQlQ3l0fShRe2NIWSlhUENjbzRwT3prCnpfemQ1O2JjbE59K2VRPDZlVHtX VF82XjtTOEpWYDt7WX5tWmhRMGQrciNDMUIoZUhoRTVzcEx2Pl97fXpkfVhldgp6aHtPVjFWPDZv X0NQRzM1dThASSROWFU8bj8pYEkoZyFDR2o7QEBqa1dhZDlAUD5fKHF0ZFArRHc5eTdXWit+S2QK elVxSmZMQytlcW5OYSg7e3d8I3xWcXhAfSsod35qYF9aczxEMCFkMHU9RzgwVVFfYU5MJSotQmE+ RU0kOFYkSzcmCnpmJDh7QzN5ZyRCYHNEVChgSVlNOUpwZWJrVDdmaU9HISskdU8mc2psalo3Vmsm RGNIYzlCPCEpQjxkanlULXVxcgp6N30wdnorMWk3Sko7ZG4kWCgwPzstYD9oK3J+UmppaTtXbily bEpiMWpEeGNvRWd3NUNKMTR6MzdBLUJVc0kjZkwKenU8Q1EhS2pPZSZWKVR8U0V7PygrOVBhTSE/ Q3cxNTQkYy1GVHRZJVo5R3UpNyt9dnpIM3BUSyl5XkUwdG4/MER9CnpLUUg8RnA2NnlANks1KyY3 Yl4jUStTflVVODlUVlRofCR5RWNKJU1oZjV2SSVWUmhHJkpeMFZHZkMrTmtLSD1iRQp6PWo4YW1p TWQjcnw5Xjx4S0tZTj5LbEEhZWNjUW0xNklLVkNJbTxaTSpfcWs5aH5IXmtecS0jb2tCNHtUe0V3 aUQKem00fShGPTVzNFI1KTh+cW9TVURNX205fkJlRHJANil3JmJxO15wSzJaXylwSF5rMVU0bE1x JlJ3Z05fS2JnTTtpCnpFPlZ2RSpTLUpRVWV5ZmpWQyNDQFQ7MU52TVYkTU8kcDUoZ01AcDNBYzQ3 VyZxNWlXQXs8I1ptMTkyPS1qKEBrNQp6SU0oJGtMb08xTUIreyRyUVhtaUg/T0Y4dCRMYzl6YChQ dUM1M2wxWEA1a1R9LUZ3WFByakgmJk1uJnE/WVphfEcKemhMfGlZUDNgUjJBQD5NMWdWM1ojISli LUVVUSUqMWtpWW04NVZWSFVhX3JhSGFJKVF5KVpqd0czQkQtdFd6VD5wCnpqaHw8bntQeTwrSCRv aGBoaXp3NVo3Y2dtREk4aTtFPUhUR3N2K2hnKD5wJDhoc1JDZSRBZE0oVHZXU1YmYUF0fgp6UFIo T2lFbn4rX018TV8/VmtkSEd0UWp9bjxmbDdicn1LKnM2JT4zXk5BX0UxO1NRKDJyeX57V3JkI3lW O3g7VVoKekQ8QUhfdz5ON2Z2T3MjTmY7KT9YKW4jTVhtbC08fTRydyRedikzOCtsTVF9I2grVyUp b2xYMWItMEFITlk2dGtxCno/dmRjIWBvJmg2WmB1aHcxM0VnbVgrTEVga3d8eXJaKWFmTzF2P2ZQ bEBtWTY7WFU4PG11QzxeOGZGPnxDdUE3Qwp6eHRoT2Vzbk4yaHBXMnRlViRLZGdgT2treDV0MFRa eGQjNVFXOE9ndEBsU0tNJDlhU2ZDeUZVXjNVTEpqI1NnP3gKeko5ZnlhTUllOGhHbXJHNnNFYUY9 MnJ2fl8/I0hYRVVrPnRxPUopX0JWUFZHQ2YzczY4JWAwRWJjTHJCOXRjLVRnCnp6NHtpX2FAZGw4 c3drMTRaMlpCe15YaG1xWjZVPlNZT1VKNDQqeDZJYzRNY2xzPkt+fldAbXRXP30zVVdAO3llVwp6 ITBfZ3E/PiV2ZmgxZlRqYUVZPGA+eXhecDl0d3ZwbSZsPUdibkokVi1OQDY2NTx+SXg8djJPOzdI clVaaF9+TmsKeih+VyNJTWY+Mmk/TUFIU1dYazNXSV9PPjJlREx9TERzZkc/VGZ1UUx7IWBsZlh1 U2VURSRARlptUE9DJjQoTSNGCno3KDZ7UlMpRE0/ZktqPTdESiszaytjcT5UWXlqKX0xUWlWZjwh fGlpRXBVfX1kU3kpNHdHRWpKYyhIRDBNUzVFLQp6X0BBZlNvcnp4X20tJEQrOHl0TDtBR1MzK09w dCNTVFV+Jj1wN35WdkY/fkZDX0NgSGpkLWs4e0pYbXt6JXF7SjAKens8JH0kTn51NipJZWJXOStN dWM8ZkBkaDFSTGVCPkM8b3R7OEhGfS1qNShURGJSfU1gJDBuMGxeKF5BX0t4KGdkCnpsVHZAX0BN KFU4LU9XSyMrdzxAZ3ZxWV4/Ym4oNXdVI15KOD5kODRqTGBCT2lJQkkzc3t+RypBJGt7WCVKUn4j Kgp6aTxZMjxwOFFsKCZidnBkTmpvVGRJUGlsaz5pdFB0cz11YE4pQGlaOW1Held1KSFedV57fCRv b19AXjVGcWN1akMKek9UaVYxaVM2cHU3QmAhcT9UO0wtNH5NcXhNVGc0e0FKJE5+Tjh4WVlEIU84 QGRRMihwYFYxPTMlOWtiZk00ekwxCnp1VlgpQiE4RzhjYT91YnI9PE9NeUJ8eVY1eSojLSs0RUYj MVpudHlrQlMmVlk9VzVGSChDZ244UyZCUlpvSEUqJAp6SWlYOSpYWkVBZiU/Nl57PDJPIzFmfSNo IzQ5ejZhKDxLQV9oLTFzPlRGbD5EXkRxQUYxMjZmMm47VHs3RjlHfjMKekFob3YqSVVIZ2FZcXtA KFcoPEReb0hBeFB3NFVRVkhlQ01CWnJiZDNKZ3pZWU9mO0BgLVZlYiRyb2ZaOGw0S3gwCnpEMn5g Iy16WTlxOGtWXjZMNlohXiUyXkkyKD1ZVm5JKlRwKk1Xaz9eejkoQnhVb1pNNXZ+MDUyZEtuTlNN KD1gJAp6P0FBPWBpX0FMcnZzcCMqT0BzJDg4KUNrMjJ7PFhGQ3p8a3hLSz94KUxPUVlOUTlJK0BV KV9RQT9EK2BPIVdGUEcKejNmfGlfOHJ0UzVXfX5YfFkkVSNvPWN7UkJfRCRRUXpKXig3Yjs4KXcj NT58dz4mZ1lWMHlDVjdlQis/PyQrbTBQCnpgV2wzaUNDeWlQIXphSj8xK0k/OVA3eHlsdE90Znc1 PFMqQzRlJShnIz17fHpUK2cwKy1ZOEVKanU1K1Q1PFM3TQp6TU5GUSVvXntlKEo5K180bWJ3OyFT dF5ZdzNnfiQpYSZVWk10TmxmdntfdXVHTHprOzMhdHRWfSUkTXlWWCNWblcKem4xJUB6bCR6elNe IV52cUhkayF+eHc+IUVXPndhZUVoVCFaa0J+dihNZHU7RC0oSylLelc8cmIqR30rN0tmKl5WCnpO eW9tU3h7b29mPihwVC1LfGByLSZkV3Z7SmpnZlp3T051UmVvXyhMZU1hVEU5Qlp9UGF2RyZGMj18 JWZUb2tEfgp6OGtIfWdheXpwfCtaPER0NU5rQ15aKzBBelhSVWJkMUFqPHl2SGJhdTwhR1VrUkg5 QSQrSUQ+ck9UJW9mbnZSJSgKemk8NnhQdmNefUBrX1VjbT1lODk3IWk3Uyo3PjBEWCFyP0RlKHpN ZlBITDImV24wNHs5ZlBSM1d2Sj89azF7VjNuCnpwNzc/XnM/UXJRTjlmblkmbFpCJCZ0VEVmM29r NUpqQDMydk5FWUt5RnR0S25jaTx2Tk5keXM0KEdwfk9aND9weQp6ZGFHcllhSktkTkJsYCF0d0pz STlGZ01JcG1uZkNYIT5rKzg0NXVGUWJ0Wn1QUn5NczZ0cS1Kakh3fHZRdzV7P0kKem1SdzZPWWMt ZlFlZV5LMChZUjYwZSNwXmUkVk5VUWZwJTc/aURpdllubnp7djdwfXIySi1YcHQjTDV3RjxtZ0ok Cno/NyshKm1fKzQxIXt2TEZPTXxPe0xockFEe0xRfjAhfGdUQmg0MU1zOE1WbDZDQWpnYmNEZ2do aUJpUFBSKFFMNQp6WSYxWDN7dEAhMCpaWUtXbCFTckZkdFQ9Jk5wa2x4M0JGZkVQPlRzaSotaEtr TUg+MlRSWTNDX1IjVHN5eXZsTkQKenlFLWBuUEJUbFpWfkFBe21yMUtzJXtDPT9mUks5cnRWZl9u LUsmXkR4cWE1PmFGQWhQc1MyXnZCdiZwMHNMOHwhCno8M2VQJjg3ekQ+QV9HSTV5alMrMipLXz1L JiZYLWM2UH5CJV9XT3hhPUdpQkJsfmdPKXh5YXM2SEdoU3dBej5UUAp6MT9FKmNFMlUjUUBfUyEo cmZ7ZEE9TXJIVD9Cbk91XihCOXRoa181dmdXeHtkMlIzfklyWmJUT2JBckFIYWFqcnkKenpAQkhJ OzZofmNsO0xWPzRkcTBCSVFTJmJ7QGJBRGFVcjJCblR+Q1IlYTlRS2FTLXZpKUM1eEBwKC1aNWhR Nm02CnoyKnJycmJsem81a3VWX25RQGRCKXRlWn5BUSkhJlY2YHJoZmdgMDIwPHJzcUBsRzZNTT5j VFFGe212R3tVXm9sZwp6RDByS00pZmZATGhFVVM+SnN1fVVQTn0tRGdvTlEqRXRpKjBgP31eYjVT PT5Oa2JxXzwjLXdgZl5HRGZVOWxNKEcKeiZvfFk+ZUo/VnRyM0ltMXQ3dmZPcCZ7Nil1T3dGbEY8 bjhMTVpkVE1YbH5BKzNAO0RFdypnejNuQ1ctMW99Mz5iCnoyNk9Kajc1SCtHT3FjV0ltMWMoWl9v OXhCZlF6UjJEfFZLaWJldSZubCo7YEp6UGtEaTtyTEh7bU5ITiRJZE0tUQp6NzlZYUcybiQ9eWA0 XipkKEwmM3VDbz54U0p0YSRGN3ZCPj5QQ1ZgcWdiKkRFSiZZcDZaVmQ9QVJqT2FaLXUpclIKeihp NEh9PTNfN2ZuNnpLJDI4SWAlPztuaERvREo9bDV1ZDUqITV7ODVwM1pzYVVKU2p6NUI+ZyVkfG5U LTliJFRJCno3RFFZQ1klVCNNQitTfExAYTh6ezglT0I7QGp3M2JmcntiTTE2dURgc0B+RyY+NiFg Y1hJTTUjeTNWZzJFY2ZEPgp6NXxWT2ptJEtyWXFlP3RfdFV3QE1HKHp+aUYhQTc4MjRDeX1hQD9O I0xMaHFuO2pufiteaEB5b1NkPDhSJDZ7cWEKekpCNyQrJG1eUXFQISYwbilWLUdAYm9HU3FGZUNz d1dFVm0kT0A9TlhWQCFrZ20/ZmRKMnU7PEBHP1NaZHYlQ31VCnpCVE83e1pTPHoyPnkpfUZuZUJ+ KzFlcnFZYEZKQzNfR0Q5Xl47am1udzxfZDdRPVVxT0Zva3k7WX5XUFM8O1JCUQp6cTVLJFFYdzdq LSFjUypgblc/fEwoeVckV0t5LThYNWxZM1psY3NCT2M4NkZJcXxAJCZrejlSI3QjRip8czdUUEEK ejUpalVsYkRXbz98QTlFPFMhcTRKbEg7fHVgVVUyMl58em5jTEZ7a1M3ZFdZWm5STEZ3ZiUqSj1C aUhAQHtgQF9iCnpkNDt5QDR1JGN3bkQyZjxUO0psfGVubip1cSlePGk/c3RpYVF4K0czPl9xVGZ0 PTZCRlFuYCNzNSQ+RVBWTkc/MQp6YGMrOE80cUVzZ01RI1kwXiFEQUtyKGxeb1p7anhZZGhtbHVp U35APEpfMl44X2VifkhiIWZkYyVlZHdvRjthIT4KemFjcyVQM1lpYUNRMVBfMjcrcDlPamUmeX54 ekk0e0hyPGBCaXQ8MlJEanpmNXU+KjVvYDMmQF4kZ3ZWTjJydDEqCnpudyheTHYkVG1GQCYpdD4o K0pIUkc3M1YkRUxFdFc8c353PF56ST9JYDAkJDE9K2cmQXUqUG9WV0ApbWpSMUFadAp6KzZ5V09l SnxIP2ZIRUlCKHJVLTNfK2twZCVlP35wWVdJYGg3U01GPDRxQGFwZip2bUNwcG41MkgoTztBIzUw NVEKeipOeU5AQDZvcTlifGZwbDdlUCRscU9EbU1WPGwoQUlZcFY2NGBsYyFFR1A/R3FzWVBUJjAl YzVNaU5KbkJoWlI1CnpqJnpVYXtUPlBnSmpyQkdrU04+OWgke2FqQ3cyV0heby1DdGc/UWwxMzh6 fSNFRTd3PmZWdmhnLXxmVmM1YT4kfgp6Uml0fDtoaCkpUSNDKGB+VmlrUS1naEF8clMrfDdeP0By UGJ5LW89RCZabGspPX1UOHxSUT1YUSV7aVE2I1MwMloKejtxRyh+K0AtV0xZQ254Xj0pSjdNV01X RT4qbCNocz1JMXtPdTliVk16UmZkcV81IXEwX3VEKVRXMyQxKG8/eiUtCnp7Ul5ObShyfGVga2I2 NEEpcDlzMCZrPjM4bjFgXko9RH1ldiR1akE2RkdMallRNmUxIXMydGZKampEcmM4MW9JRgp6YFhl R2lqOGBFRmtmRCU9a1ZHXyFwcnUjcFg3U3NDdzReSzxBPj1fXlFuM3FOKFVYRkw5U15nM3dnWUpV UGVOWHgKeiZ9Tk8lNEl3ZEJGUEE/YlBjP2oxLT8qQTtWKz12Y1RBP1l9S1F+TCNCVGRsQ2YydERz aDI+UU94NWc4dT5hdzk+Cnp0RDdHaWF2dWlOODVMQ1o3Xn1KUm1IPTFlcWQ+RnAwZiRuaSlVUXJN aD5IbyQ8WWptQWh7RDJTNzNhIXRac347awp6Q05FSXYlN25OWUFnT01XY2AwQG4tNV9Wb2VBezhL T0U5V1lkPm1PMjglIz5ZKUMrQSkjUyt+PzZheVkmcH5QfncKejxqODhQb0VHdEhkI3xeaXMxPnNh T348ZFdQdURwQTx6NUV1blhffFRmc0VzVFgxVngwOWJ+fHZgQ09LZ0NjIUM0CnolJXVIMjVxTUU2 RGVqU3xSbmppZm01Q1RtREcqcW5pOTIzYEQlWikzR0lwNzw9VTw2Pk1xZSo9Y358JGgoTzJLIwp6 ZStFPGZtaStQYkUwflQ1Rj14YFRTTGFGSWVpU2NHYSs2PjJLTElifUJ6Sk9TYEtzUzVmOHFIMz00 KngoI3ZfbXIKenJWU2RTXnV0WDs/JSN4Z0A4S2E3azUqJWdpQVQ9citPRD5mOVRYKCM7dDc3ZWdy anw+dGhMUFlFRG9XPml3e3N9CnpZTDs3aismKEl2NkJpP005Q0s9UXZ6O2kyU3tUS25RS14rQXNi cmJVSFU8QmNnNVImSjJicjwkcT1DeE83TD83aAp6QUFOal5PekItM0w+eWpXWGU1ITJyYjVeZ2RW SlZ7WHFNfVJMISkmWlQza2J2UVJ2M1YxPkdqLUVYVk1lOXdybGYKeiprXkY1PGpBS2FjIWIlRXd2 NWZ1JFRgUyFEJDFwbHspSUUmTjJ2KjlWbnhBbEczYnw0N2w5M1hvc2ZMQk1ANElUCnprVzNicDtS SWlQWl89THBUSEtkbVdZb1ZXNUhAOFBqUWlQT0U5dUpkRW1ZVzY/bHslZUdNYTBfeDMmNXhAfHgo Zwp6UiNAJEM4alkxfnozVW56XnhFOHVMSEVhUHQ0Jj8qaytBTX5AZSR9ezgzclojWDUkfmNDaDMz fl5UY2BMYW4qazYKeiExSjl4QCkrQ0tQOGBuTkRue2h8KGwwR3k3QFBPUjdnTEFOT3l+dihjeis4 bWg4JHh8Mys8S2p4WHNLX1hFfmA8CnpDKChldHRGdW0oNXpUJX5pfF5iNz9+X2lNZCFJbE5sPDFy eEJHTndrOXVmPklyeWN7Xylvcko0ISYrR3FRemtpegp6OVhmfihDaiM0UExfOElTYkJJbTglTHJi U1h6bGF9PjZLQkE/QDcxWVIrI3ZrI1Y1TElDR2gyZD5uaTt3P0FgczsKekRgKDB9Q3V5blUxZVA2 fTh4T1d3X2chRFljZmF2QkQte3RQVCs2VzRoWCp6aml9aT1zNyhXJCQoRWJHWGk3TiRZCnpDWT8r bldHTmArYzY5OFMkfnMjeSZUTiUrSmRNJiRPaVdzUW5yLUYxemprKGJvcU50QExjakkyVVYqY297 UmhDZAp6ZjhtSSFRWFptUjRvUjFBLXR8el9XVGUyKyhpKGIoZTtWczNFb2kpczZXRDE3WXRpTEV1 VVh1UiVORWVBZT43QzwKek5wPTZUWiUjfGpsJksqYDN0RVJnWClXOXxBViM0KGZkZHVCbE1AT3Yr RGdgIUYteVlZQW58Smp4c3NnPnpqfX1lCnpzQF9DWD54dFN2cl5oY2E9b0U2QlQ4dFJ8aSZoQD04 bH45JilZTj4oaG58IXB6M31Dd2F1KUwtdV5YIUcheU5GWAp6cFghZnZNQF8xXyo/UU9DOUQkcl5R UztecTVtO1NUOVlUV3dSeUg7Iz9VI3YyP2k4RGJwWjFnLXheM2ZKay15Tn0KemBQMz14LUF0WUN5 dkU8TkV1cm1VZ0lHK2l0KGlSR3R4R2BrKyVQOXxjaUU4ck1WTk1oQypgOF9WWm9RMFZmcFgqCnpI QDRkUD5AWXRudW8qJF9nVWdHQWBMKzZOND5hd0h5XiZrMUt0bX1ldHZBO1FzUDM5KlN0SGBAdG08 Rlh0JldUcAp6d0gkbkBhck48fXA2MVBkYSZjXiZIOVM/XmUpWU9sT1JwbUVuVz0mcC0qQWFBem52 Jm9IU3w1OWchOGloMTJuU14KekZ0TTY0PEdXVCpvSWg7Qi1xNXw/RT5qcUR7OUVAdm9CZzJ2VV9+ ciY8aC1ZUSg+eDBFRHVWbEZHUzNIalJoOVM/Cno8ezxrWTM2KVl3YnBhJj96KUQtNTQ0eX5Sb0g+ b3g1LVJXK0U+Oz97MlY/S2FHPkM/fEBBM0ojdENBVm9eSzBOYwp6eSNZN156X3x2XzVrN1M5IyU3 bTZsISs1M19DWCZnSll8bGlNTFNAYGJ8ODQ5ZG1xYkQmcDdHZW8rdXJRZjVkanEKemU8RD9reXxQ fGkqTkNUZTg4QEY1KmNwakFWTHtOZEttK352Knx3U3xAP1pYQ0gmaHl0UWomMWUhSChZa2haZkJP Cnpkck5LR0hzYHYzNm17RCpINW4pQz1eMHUzJll1a2tOYUM8QF9KeD9PQ2c4eUZZLVRELXVTaDNr Ky1IXmwxT2N9cgp6X1Y1bFErQF51a1RucX1xKTRBNERnZVllXkY1V1hgSzZEWTZMKTdsQmYqQ2Qy ME9Gem95RU00SkJ3R1pxQXRLdT0KenttcjtGYGYjX25CXnkha2l5elRtJE0wU18/VE1RSVNAK35H WCFrP1IqcWJqR0AlO3RHMEY7Z0BFVHh8R2VrakQhCnprTDE+VHZhJDJZays+Jm5uWkdaI0QmTmtI N0pvRkVuKzlOVjZFWEl0ZUVeYCNoV2kzWWwxTCpWKzVoPytjQXd4RAp6RE9ieiZubyleb1MhODt1 ZShha1ZwT2VATiNReUBOX0dYMjJRSTZmPitzenB1Sm0yNFo0cEBxKi1+I30rcStWWjQKencmbVoz d2lPMVkoYTtMODdBSEckaHF5aXZpKDYqSjE8RngtSntCT3BUNChgJEdoMW4wVDZBcHgjKmZ0KkBH dXBeCno5OTNGcWR6bHpKRGghcmtecDFTPVhpUztMSnB8X2JTaEs8KnM9Xm1WJFprS0NNTnB2Mlcy Mn5HJEArME1SUTs3QAp6K1AwdmQ9PGlIbE43ZktDQHFTLVZBZlNQbktlQ2xLQVpMaW14VD5Qc2VV c3BTeGV2ez8+eGxeNl9nRC1pYHxLTmAKem1FYDk8Wjl6S0c4QnJAN0UlQTJtVSo9MTQ5WXZtXyNs QHpaTUJ7TipFbzJpRDNkM1lkQThCMHJASiN5X2olPT53CnpNbnwyVkhEOHJzc2lOdjFZTFJVOWNt czRCJUsrfkF4aHtaKypEVGNjS0F0S3xUcGRqJGJEMW84bER0SSFzLXFxYwp6SjNmYkomRUc8Sjll NnI7Q300T3hJX0o9bjFPPDNGSkxsRUQqP2JMPERJIy0takhgOEBqSmo+bkltbXtYejdCWVIKejMr bDBwWWJNPXZiOEspay1nWFY+ZEdiYmQ3aEU0NU9hJiU2KE5VK31icFQ3bGdsQnZrPUd0Iz8qS0Ar PWs9cyFICnomQGJgTXM2MXwzUVBzYXl6U3Y+N3NsRDBQUzlpM0hxIWc7RzBobyVLJnlAcHUzWXZ3 fmxgNDgpckNsenZacUJvQQp6IVRwIXAkbENZMy0kMlBDJWh3SVdULUpLQWFkaTk4WUZ1NElAZkll NilDfDFWXlF1PThiQEtUcEcjUiQqVk5xNVcKej4tb3ljOz5WX3E4PDY3QitHK2M9QXBuVVYwZWt8 aHA1eCpAdDFUSDU2WXJAazJ0KyN6O0Z8SkdxUSY/IytAYEdGCnpuQntYZl9SQGQrOyhQTCYyfnlf MCt2NUtETzd0cW9uaSg0XnptaX5XTCRZQnE0fmoxbXVMMi0wd049YVUjN0NDaAp6d3lXdjNKZUl4 dVVFZntyYilZTUdkRy1kPW5HVk9RTEheQSk4d3hkd0xkZDg5T0tiSjxFIVVDWmJJYFh3eiUjNU0K emNmSClwSkt1Y3hWdWg2VyFldVFkT2pjKEduZWUwNz0/cVV2PCMoMktmRlNoTXdrZkdHSGZXWX1P fiZIZj1GU1YqCnpIdDspTjtvV1VNP0FmazlvdzZ3dFR2YnlSPDZ+Sjhtfm9WdV4xcnpuMU1YJHFs MXJkX09OQSY3ITBeXz84S1QwUwp6YXorKEc1cXE4WihNfnl2a2FKTGVGPiVKeEV2U1prMlpqQkVa fl49ej56ZUI4Uk0xR1FFWHQrTUx9fj5mVDVPVCkKekpmeVQ7enRnNUdLVHVDYFQhR19pIV5iflJu dDRQWDE/SU9QITJheFg3QFA0U0goTDxyT0ckZHVPMz9UKUN+dnpPCnpLPU0hPFkxVyluUzQ8T0RH fGB8UGQ1KlN0UWF6VSs3K1U9dFo5V2psN3BxJkk7YyFeTXxDVmVVMStaJDJ4VU0zeAp6MlBFfk4w dkxaRC09cj4yMlNaPzdFZH5edXdPa1RTSUc9I0VePXlnb2ApX3BqcFoodiZDQWNGNEkwdHtDPTBD TnEKent2a192a15IRlJMVmE5bCkoXjRHUmtJKjZmM0Flfkl6SX1DJUg9djM9O0FgKkF6TDVXODx+ QUNWS21WdTQxM1gyCnomTDlPZExsI1ZnO0J0KTIoKGBQSGRCSDZva20wQDR1em17eiViV1l6bzFY aClLc31BN1VTeSZLcVNHWm1lSz43Zgp6cjY+JXI2Snk8RTI5eVlmYV81ZX5aaF9ZUSRtJVg0YEww KUpyS35pRlVyPE9+TD1pbT50aXlSZEZHK1VLK3paezgKenNoSyN2P1A5ITRIVnFBWXFBMXhEUzQ1 dGtVRzgoM0hYcVQtR3QwT2U0Nk85az9rVCFPJitOWkdkV3xwOFh9dnNtCno1PXxYdC0yZGooVXZB fDlvUTJUNkkzTTw+Ui1YZ2RyZjBYVEF6PitkKF5oMzZCYWVIY29oRD9SIVlVWS1LaXNufAp6V1lR IWBoPjxKVzE3TlZESCNQdUZuellsMyptP2RVaUNfPlE0Q0B9VjxjRypYIyowZzh3VlE4cFh8OStk XiZtXmsKek5gWk1GYUleQUF8RGtgJWJpWl9STnhzIXt6TkU9RTJ4Sl5oN0RYNXY/NCFscmM2b3Iy Tm51fWEpSTRPQSM8S21hCnp0ZUkkYykmbXh+SzkrVXVCM2Q5bEFZNzJ7e0NkaExqRWNVdWlXO0dK JVNePSp5aztKQG4rMSolVypXYHEwe1Z+cAp6T2NjWVNoWUYkdik8WHh0by1FTU5fa0g1S2g7OHN2 Oz1FNnBleGRSenNUZk48Vkx6NVpGOEB1Z1l+RFhgb3xUQ08KemJnOSpQd2UyOFJsZj5ldWsxLSND KzdEMXlnamRad2poaGByWUtoeW0pOWd4a0o4ZGBEZl5Zcm1VKHBtXmdOLXtzCnppRnh8OUJjbVRo N3JTI2tAQXw3PEZHV0xMWDlAdVhlUTV3UFFjakhqQyNKSmlsfj95dCtGej9ZcChMYF5GemBKLQp6 THc+bVUzQ25gN2pHPT93PStnJFh4KXkxXkJJaiY/b0hUaVlVakZeZFJlYHFtODtud1c5b1FUUzNK bHEhe1lNY2MKendOb3MmQnh9VFgtZnlRRG5gUDBqY0BVNTVTN15TeCE4SD5DKmtjJkZoZWYpUkVT ZUdvYn5xP3RmY0VBaHchcj0/Cnp1JDFFITE0JFQ1WHZXZTQ4Ymg+JnFYTUtzNT5PYHFefW5GOzlF IShfaW5CZ3N0czQ0ZDhEP1RrNHY9dFlUN0hzcwp6Zkd6dW4taHVwM1V8NTl1ZnVnfU5MdiN9QXRI cV8yKSkoX1k+Tz9UYmEwKlI9O0xDMV5FZWlYJUJNSnw0OylxaHsKemA3TkNhOFdBIXduKShoTHVz SHNDcFRwO19oQDNGJDQ7dy1mK0A/YTtYRTBkVHlMTHM0MCpIYm97UERaJjJ1dm8tCnpAJF9UQ0FL NGNKS08+dHRsfFVJPDJXey1qISM8JEAxVUphe3lyY3tkSG9vSmQ2OXFNKCRZdl97JEQ9QCEyalco Jgp6Mnw7Ryg0NGxMI2gzeFFSZzh7ekRuUV5sTF5WaGpAKE5QT2ZVQmd2NDVtOEVfPG9LdEJLXzVM N3hAfSRPejkmeyYKekcoR3RNMF9DNERRKGA+fiFoR2o1Ujc7N2sjKW1ROSZzd0Vgcld6SFJKPlle aFd4QiV3UmEjKStCdGswK0N1WUEqCnpsSnZOSUFiRzF2cnc+TGN6YkpTY1VGOy1eKnk3PkozeCtN U0pQMHdIR01xd3pEdXQlWDEmUVRrNi0mKGs8Uz0wPwp6PTdNezRnVUc1e21pd0cxbW1NLSRlbGNm Mys3KTMwPGArPXhwe1Q9QEliSDgpKnp1JX0xa1VmTSpDSiM1WXI2cEoKeitHaU9AakZ+VXhOSjZs eCU5OVhzTUhxbkRGZmgoMjNjZmAxeEYhaWAxJUtgVTtZYlVSX155SXN1Vk08Z2w/Pz1vCnphI3tl SiFnU3BvO09rN140aUZqYlhPJCEzSCQ/M2ZvWkRZb0hZbEgrKGZvOyNSMUFxb1hrfWBabExsdkxw fFJpdwp6Wmk/UkBrWSpxI2JKUDBnMFMwSnFhVFdIO0FafTUwTzZtenp5RGNtT2sqRTQzWWR6aSRn fmRgWClYTTY1KURGey0KelBoeFo0IU4qNEImKHZfLVNjQzJRJWJ1V253X1VZaEhUWUFOWm9TRCFA N2lSa3VaN1N+TG08OFRqajM2KVpUZlM1Cno8PkRZRiV6ZjteVytsSWAobXVOMXpDaFVQQVB1WHFu cl5SUHk+bnlFQ1chVUN3TDV2S29IIXtCKGA2ZTtCPTNSOQp6Zl93WEp6XnpaOy1GNDUjYHJnXzBO UzA1dFZ5fX4qQn0yWE4xRnZGRGZgMkpJM3gwMGwhSUl1QSpCeV89U2Q8Mk4KekdEY1NUTUhNJDYo aWk+Qkx5O3R8bX5Tc3ZnZTM+V1ViTGpUdk1lQFheNXxaSURvZ2dJVzdOcW5iZzxYJihfWlR4Cnpj NkkkWiplfWchN35RZWolNCNlWWp8QTQyc1I4ZTtJMksrdGxFU0QlcTNIQG9UcjwrQjZ4ZlIzR30l PHtmcVkocQp6aUhSNndgWjdIQiM0PH53YzE3JCRlbW8pNipZU1EzJD54WmBNOENXXnxCMkwtV0l2 fSFEXmFkKkAyKEN+UDRlKi0KekpkTTYlTFohU3hwUnwlNjF3QSM5Xnh1Y0RteXpBanc/Qjl3cDZm TkJNVTM0O2lKZjI8cD4/cG9CSlN2O0FaMFk4Cno+NTxpe3dtbSR6QTkoWDgmPEQ9S15YJXlGKztv dk4zNTFEWUIqeTBsOyg7dFRoYXlyUjRTT3huVU1FdUdWMW5hfAp6UXx4Mk9QJC1iPXo8dTk3bz90 ayFoRysrdz13cG1rfDg1WTJ7dj54NGRVdUsxKzNmMiolYD4zNjRMXjU2XmtwZTQKek01QXJsJlRL bnp2OFN0KUo2NFdTazJjd2paVTJxZzE2QSlPMlQ0aE5HQiFkO0Q/UEZLXnlLTVE2ZTRoNSRFS1Yr Cno7YmpuS2YoYlJJNkcjQkYzezl0MENPdyMyITt0b2k+aVV6UE1EWXpARFolPEZWRlRWRU5mRU0+ eEszN3lXdGZ+OQp6bnB4QDdmIyNXd2NOQUI0SkxSMkdQRzt6U1RlOWxPITNBS0trV2VLQDk5QGJP bmtKX2o+ezhCZTcweFh0USV1Wk4KelpTU3E8N1FrRVNEbkRfKkFBUVZMTlE7UCpALSUqQTc1JiVk R01XV0MtTkBjZGpCXiZVNTt3TFVCJFJjbks8aShsCnoydFhJbVUwSFFjbEw5VW1nN0lZdyV+SEVh YiEtV2QpMUczNkBSaCMpaEpTak5MbkVMMG5TZipOMClHdGt0aVhAYAp6dzA1QEAoVWI3eEVjYHB+ Qio5UlVCJl85NFpmKFJtRTxeRzkhJUt7cVZudDUlS3IzYHNnI15QejdEREJsXll4PDwKelJRd2tz dDc3QHdqPFhpaEFgK1B0VXJgM1ZjQT13TW08fiUxPU9YI2oxbGd4PUdySXExbHU8cGZrb0RBd3M+ KFZpCnpYclNaUnFkfCN0RjxITFJOJlRNbVVUTT9MQmY3S2ZWN3czMz5gOU1KY0clb35VYG1kPF8k aT9RaVlqSkNFSEJfNAp6QHp8dSZMaDM1KURMczVpbkFOKU0/ODsyRWY/emRWTkdIZjNyOVh8Vmc5 bUk0VVFkVVRUT0BPX1p9d2FvaHtLJDEKejF7aUwhMzNifD1LRyVPWTZGYFU4cXJ7NFg3WTVWfj9Y Q0NRUVNyTy1JIWp3dUhAWSR8M2g4O1MwKTt3I2hGcyRzCnomTX1maVZNSGImYHU2eVAoeEhOTmVV eGhfRzV0ckZ0NVFgZWJnUUdidGUqRFY2NXs+Uyt8ZU9lKz5gWUFRfFg8OAp6Syo4fF9CVztNV1Vx RFpYcUZUTX5xY1FSTlc0XjJrJkw8KChnN1ckVGBnZGp0UHp4ak5VWVYrMGpXSiRQaDxXS3gKek5l cFZDO2EtZU4xXjB6MDR+MEhXJnlAc3w0WVlDbmQ8am5GbCFpKSV4a2lAZnR3RT9wJHdDZEZxLWoq fTlEY009CnpgPkhrZmJ+IUZLTEtzTnBHUXs2KFN4OWBPMjtMSiUrQGA9YFVWe1RVdEZeeGRre0RU ZXMyLVFUaGtoNnpDNyp6ewp6WjJGVkB5REFUbyVpOUNXKUJTbSZfLUFLeVJBYTEjSkkpMG5KRmxU TTU8Uil2MDUxPmlwe2RpbzJHWn59TnZ1dTkKempVUSkjTH02IV9xOVZyUmpBdH4zVkw3S2thJWV6 MG9FJUl7aCQ0alRvOzdWIyk/ekd0S01RPSRMdSF2QmpidHQ/CnppYGRSY2A3VHYlcDBtKmNMPili WVYpYSVTNS0wdUc/eFhgcmteTTw7YG1AZHB8SGE8Zj9iQkZ9Pi04STlLMkYzUgp6dCpJU0YteVND RGo3T2hvazNhYWhaKlR1NWJiZnloNXEpek97bm9XKXs7ZXk/JDk/Zil3PmdPUFMtQCVXQ0xoI2gK ejNKNnNZMiNIUEl2ZWNtO0h7eyFVOGxrN2l5RVhHaXhqXn5YamZNSj9DVXkwQ290WkRXc2xpbWM4 V09CcUg9PWNMCno3e1hpMUAjXl5XJkkwP1AmcWVSSEozNzRQVVR+WEsoOH5UaXo/UFE2RkdaNTlM JmNMMzFYcGt7I04hZng4O1VgaQp6YmNnS1g2IzN1Rnd7Wj1wdFA/Z3ZLfmF8c1pDS2c8SWJNVGk+ Jlh4JmI9UE9NRVIhSWdsO0RBOCk2IWxrdmxQM08KeiYpKl9kbDJIZVJ6eEY+X3tnc0h0eXtxUUIl RU9LZTx0Nm0lbEl1PkhjSUQ5dk4lTF5Ud3BpdF5HZTh4bFE3TyViCnp3PnIpITlRTitRan5TMVdD eF9La2w3bG5tWlJZdmc8WS1kbDJUZH18Vz9NNmRANzhycjRFY2JlNFo1a0BZaSgtbQp6JT1we0FV R2JHPjNqWCE9WTFecC1eeXN9MG0+YEgxbSV0Y3Y3O1ImeVNaQHppRVo9RVFNc2smfE4qflZzRUFq PEsKems+P3pEUEk3cX5uUSYpXkE3OyhBMEVkO3QrPSh3WUprXlNOOCsmX01YbW9vUVpaZnBIQjBz UV9SPXM9Kl9VQyV8CnopbkZTc2FWX2VRYnZvfWk7TTA/VkUpQDY+R1RZbnxlT0dCUmgoUXFGbSE2 UmxCYFcoeWE2Yk1xT01pJG9PUyRMKQp6OWsjbCVKJTJ+U0dZXk1FRXNJeGJpYkNvanNpTXFMJllX bG5QbDc0P3hHYWBNcEhiWHZ1QUk2bitRS2lSdDNZTnkKenYtTDF6X3NqOTVmeTlvV0l9clI4Ym1C e2hQUDcyb0Z+c1RjPzMhZn5EdmcjTmR6MjBiKmZvbUU/SDMobmMkX3pDCnpqaFYhZjx2V15rUkox NEhARzlna21kTSYzMHdFbnJNJWh8eWJleEhxTmFeeyYlMDU2VldFRS19MEVkdUVCRiUxJQp6Q0s7 NjBBa0lyaVN1bGU/VyFVR3Rgcz1OcD52O1ZVd0ZYWWs0R3RRRFpkcn02cGtxKlU/LXJ+JnJQPHFt PX01dHIKenU8aVBFUlV5dkF3aGF9d1NIOU54bXE1eGNaRmhYdXxFQlV1Y3FJV15hUllTeUhaNzRC dFArfkgpYkFQeHF9dysmCnohJnExfnZVfXdiayheVi1NUEglRWFhTCYoQ19LPzIoKXBTTWp+WDZP ais9SlNYO2pqZEE2eClRKSVTKy1oRC1+cQp6Vz9SMjFfVHg/SFpMMnNIT3tYQUptIXtLUmAlPWQ9 ZSFCSFBScG5uRzZ3VmhDPVlUU1EzMjVnJmt1RSZUfEpyNW0KejgjPmJ6Nko/Ym5qRCVFKVVRPHhF Z1U4PnEmJVQrbChCI3xvKl8qe158NFowV0ZHRit9Qjs5M0MmaWBOI1IyVCYyCnp7JnQqcXtebF9n Yjt5YTJkc2xPYFpzYnN6QDR0Y1QxQ0wjX288Um8+OH5eaFFEQkFCSXhwSCM5ekJ1PktvPyliYwp6 IzJkSVVsZmExQ1R8Y3RKZlRGPyFAdG5rX08oJTZNZCtVeDQ/LXtTdTUzRkByPTA9VWsqeCV3UVFw JCUjbGFoc28Keig7UWtvd0VAaWluT29sTT49cn5lSysob0YlaTY/IUgrQU07Jik7MDE8fnx5MSlv S04pTT5qWk84WU8oIyh6M2BQCnphbGlrVnZXZj1mQWFefDdHRXVaVTxuK0o9Wj0mR1FVYC0wUkoj VlcyKG42WmdvcVNtKyE5dHUjbSlIeGFGX2BAbwp6d05DdnppV29PWVIwQyh4cW1hOS1jRktBa1Q+ fCpWa3E0KVFDdHx4VW5peGUxdEZXKyZBaWZOTTdzOypDUGZ8REUKemYpTmYlbnJwO048bW8+M2Nq WipnVkpPPWdvck5zNVBCcX56WkI2ZFFTWG17SSZvaHdIKyE7dXxYZkA9IUxvd0VlCnplSWJvak98 dH1iWjhBTlZIXm9ARkJgbEJZQWxjSXBkK08wZ0ptdzBVTG42RGo+aDZ+fD5kMk1xdilkZkNNSiU9 Wgp6bnl3YFlyPTVvPFo3ZWdnWTNkMEFRP00hKSRKIXhAbzY4QUxjKlowb1UlREVDTF9RNjJ6cCVO alkxblZaWUlOZW0KekpNam41U35iTWx2SDBUMFZuRDRgRj1YX2xPK3p1eVFrX21oVXFnV0ZlZH43 SnlrODBBVnA8cHxNYlNCKDBXMTVzCnowVmtrdHIpanM8THd9YUFUcz9IPkVyfWJWPzE4RiFJRSpK TSY9PSYrVzItSnpjVSt8RzNzRGM5ZShSZGxAc159bgp6WFoqZDQ8X09KMk4yNnxERmg3flQkRClU YE1zX3VYZkk0JWx0P0B7fGRBUlhCeTRZdEtFYEh0cjAtTm9ZeFozKzsKemF8N0tFczB6KC10MEJn Z0FCKiM5MDFrYEtCJTgwWUBpbkRKQWNaNWsxU0RBQD51bXA8TD07NjNyQCQjZFVNZkxwCnp7QyVi WHpRWSZgV2x8PkpTZV8qUXhSe29GajZiPXllTmdKYTxzTE9oJVRlOWMqdSR4Xmg7SmI1ZF4lMnZx en5LMQp6QUtCZz52dm5XZ3UjfHcoUSNTakxRO1c2XihwbEtsYkBIRS10S150YmI3N0IzN3dUIygz YXVobjtuc2FPVXlMbncKej1YNEUqNFB0YD5pXjhqUG93YFhYQEY4dVcmSl59PDM0RUdgPHZpVSVw O3dPRW1PRz4jMEQ8PkIlYD9qVnRJQWNGCnpUZ3JGb0N6JjZGQihTPlQqQ2BZYl4lb24oI05iTTtk Uz92aV5XKTQ9aHsoN3JLPnRGJmIhPDFMM0BkaTAoMTV0dgp6fDVEO1dUNFQ0aEpzfEI5Q3Rzalkp ZUpeUmV+QTxFQ3JJVV5GPW9NZFoxI0hFS2BzTyg3Y19BYVpEUWxtQVhrRm4Kelo/bUxHJnFnJD5k fFV6b2MmZzExTSpHKzQxX0V4KDFjbEp2I25eUytYQz45RGtOQilYNUooQU9PZmljcTxkYmk4Cno5 fCUrVzAtIXIlQW04bVNVcShIQnojOEleWiVlUzYoJX1mdVc8NlkteFdQMntSLWY0fCE/TWR9ekp8 MDl7S059LQp6SXdvNTBEKno1cEBnQ1QySXd6I1FTYDc+OFhSb3VKdmRvUCVQRE12Zj1MYjhRLUxS X1hpUlc3cDlIcW9IMTZqfl8KemJQfVNiIWRTYjYyTFNtc2pkNk8zdT9IME1NYkhRdjQ9V2w3OFgy LTUwKmdwJCRETmUrXnkmRzFqdTcqfFgkXnBBCnpjUS1JPlBoWmpYVCFDNylUXzJhX0xjVio0N142 SlhhSTliS3AlYFZXbjwwfHhkQk8pMlRoKEA1Plo4eWtzME9XTQp6ZGhkYCsjRVNyJW4xTyhNSzJm TWFoN0E7Q2xfaiRLTXJ0KmhjSlJgOF5AaUdJMVJ3SUA7SzNXR3l6ZjNoKn5hc0cKemlROXRXZWt5 V2p0NTgyJUlUaUUxMW8qZDt2YChKIUlxVFBRKWlVaUNfQmA5MWxVQE14XykhR1l4ITcpMW1CeTwj CnpYUEBCKDFkOFVFPShGQXx4fEAwcD4jWDNaT0VzYUxBcyliN25BOE87ZzdPKl5KQHtINEUwTFpW SnQ0NyRvWCN3egp6I1Y4cigzbERaPTswbmJxdXV5Pn00c3whck1zRUpnYShKVCpYcURQYTZDRTFm PH1jXjA5Yml7bjUpRH00U0JHfDUKejEoMj5ELUZYPjJwfm4rdGA5ez9jJFUlVkpWZWBWYnNleFZH OGY5P3t5alN8c1A/aX15azNueUJHcmByMXd7JGg/Cno+aU13NEEoKjhEZzlNSEJ3RkJiUGRaSHhn KGdRKGhKSDdGTjZqbE5+ODMtT2lFTFJCa0o9XyFhZjIlJiYkdW9+eAp6MG9sVEBNPVl2PFRNa2Rl cWkkTnBwQS1NKG5ReEQpVkwxPlAhQ0NSXnBKRT1gNnZhRVFWQ0xnK2JfWmF3ai1lSlYKenQlZzN1 MGNuNjs2SGtqcVJRQ3NfeCNnMEQ+T248ZVJwbkhOTm1nK1pgRW58ZT01NVd4YThQPkRGSThtb0RI LXZKCnpsZUIyZzdsRl56VCF4LWRaIytFTUE5V3s8TjspNmslQnI7dGdKbGEzKitobDQ7O1RRa0BC X0R3LXErYTc9QlJmWgp6STUmVW5RSGhyWTdjVT1uRThnbmtzK2JMZDlEYXJXRWl9Vm88YGhOdEdm MWteTHkoJXY5Mm00ZD9hTVo1QEQwOTkKekZQOX5GOThQcWlpU2FXO0wzKyF2KTVeWkFQY0VPKWso SDdua1ZpU3Yod1MhV2ckQG9ENkVqRFB1SUlKTSUlSVdTCnokRSF5Q3pqUStPQi0lVFFNRHpoSUth c35RalViOFhYOUshe0t9VDE5VlFRO3ZKUW0zJkhXSUNNbzVOamE8Vjx3TAp6IVNGNmk3fXdMa1d3 eUl2P2Q2PlpoRWd1JnIqcUx0PC0/flU8cE11Oy19aEMkenk5Xl5GOVhiM2dwRWAwR1ZeN1EKekpv O30lPn18QDRAZzdkVXFWLWhiLSk3bThaJjJRP2UxMTFKYmhta1VwS0AqcV4oKmNpd2Iqfjg4UlZq PVp9ZkFYCnppNHF4aFNiYUA+JHIoZUR2RnRqeFgjKTFZMyYpN2RCO09kTl5xMX5LSkJ9a1VkcyMp RGU+VzltZGE+eGNVeChTUwp6ZlJtKX0mTFotP3NlNnlgYCQwQWh6aHpyViFIQSgkRkNgS3w0azNj VylZSXYqKUFadSpeWlBWMk81VjM2RXdxQ2MKemwrV3JLMFdQJSltZldDVXtWJS1AWGhRNHVMe215 KkNlNEl8JG44KWtrd0wwPmhERV4mVygjNXlhTT8lV0MzeV9DCnpNQip0K2t9OWlzZWhwJDFXOyMy Y3F8PGNLUVlTO0tyITJmeyZIQ0tzYCQmeEsxdnt1Tkg3ISFEXjU0NV4pP0d6awp6amomSlpXQ0ht R245d0hpN3BwTFMlP1ZBRCRvZSNXKlhiUlhkRWU3S0FuVjNjMCtjYFBsVFNDQHNmPkFxb2luPnEK enE1aVJediR1STd6KXx2MVZgaGQ3Nj1lQX0tWHNwcGE3N3A0JV9NKkVyUTVuS2V6OzlBWjI2fShi WSFUfSk9JXJ9CnoqRHFxcUJmUDMqNUNjcXBLcUJuYDteWSZ1YlEwPCs2aCg4cjdpTSpSNHYqRmBJ IXIoQjRZOVYqP35xPmMyJX5hYQp6bnxBPmNhX2Q+T3YyZDxhfDI1KmpgJHtxfWxrNmNgOyhZNDNC clJqTS1+TEFmZzxJeFcralUlaFkrUz0yZ1c2fkIKelRmbDcqITY8aD5ZaDBBallCSSo+PF5+fGUj M1QqQkktUkZNXzYjTD9gfGBGRHdHcUk2Q2UpbUVNRFlUJUVAUmhMCnpMP0llMT9hSEcyJihWSVh6 dHd0QDBhT1k5UXwmbmdXTUA3SFQ+P3lYcH0qczh5ISVnJEhKMlVgXklHKmlOczU0UQp6ayhpLWVl WFNadyU/QW83c3sjTDJ1dER1LXdOYUcrUGVtdnc4RlJZOWRhJllfWXFjNms9NmIpdTROZF43SUZ0 cFEKej8qM3hCK2hTc0QxViMtVWtARWNeYjQqITIrX3piel8xbTBAV0NILXkzVEVCcyNuPUc7K1h8 cX5VcT8kXmRyU2V3CnotMXdxbiZVLWZfNWh6MUYwI3lFbSEqXll0JjsjPjMkWHphKW5yaE1nKSgk KGlUd2lQZ0IpOHwyTDRiMyQwIztaTgp6O0xWLVVDVTB8PGA0JUhSYllZYUFSc207IyhONXZlPl9x UHxAN1JnRUAzcEZCdTlTNT9VfTFkR2J6NXBfbHRRNDgKel9EPipUUzJ6M0Y0bDtDYDB0TGwqVzxm a2tTJFJmNSl0S0t8LV5LLWhgITVUUExxfFh5ZEtrVCZZJSQ7ciZ2NEpMCnpGb0VVK25Gfj1NZ21o aU1DNWVnRVM4bUM1JFJIPi1US3I8fHM2Z1dDc2pwKXl6VTxsO1pGdj4zamx4e3wjfTI/MAp6LWUo VX4tWklYQkFSayswRkZqIWBXKW1vOzBpfDBDbyQ3JV5CZiM0b2hHOH59OFVQaVYzPHx7V2ZHdjQo RypkTykKej9lciEjfDNXYkBNSXdefU5LP0dnVnRrK2BtVCZDKXtiQG0wPiFJMT0odS1yN1hUNGUt YSg2b202QjdxV2JLP3lUCno9JEtQO05fZCUyYXxPbiZWfGA/Kyl2VDdnbXdNaVlIaktYR1BiOz85 aiFPOHM/dzllJHFxTy07TSEkTGk9akdtaQp6cyVgSjMyI28rOyRxVm15NXUwcUZNJXZhZHpXY0Z5 bkA+ajIocEtUR3o4SVNXWUxUZkN3NTs8JEJJRkhXeyooXzsKenUkcCg5UG5tVXNRdGk4KyZiayti KGZBNGFhcldZNDdkQChDYDxDOWw7bCVsMFkpQndHK1dwSVI0aFFBNiRFSEwrCnpmRCNKZDxiTCsq ZX1GQmBxREoxajdzfk1rKnk8Yz9qY2NEUGhKYXUtXlJeUFdrYVFrTWZCY2hKZl5iTmswRTBIYQp6 Kmx9OzgwRG1rKDh3UEMzZHFZSyVXYjAjfj5pZ2xoM24xYUYydmhfYllhMGdNVE94OENOTHk4UFA/ JWwjPFR3eSkKent1P3xqYzlfJHtAR1doZjR3UENIcUlTJTwjaUpOfSNnISQqcTVEMyMqcFBHZk9V dzVHVTVvJEk4dWtvb205bGhnCnpWfjspM1JAVzM/e31NTH1Ccmhwdy1oOGBGI2x4VmszUyktOVAy JmBvViRZI3lXfjNjIUstSzMxXj5yVjArJlBRYwp6eWhMcGwkajw+YWIxRnk9K0ZPPD5VQV5FOTl5 S1k5MXk3cEdXQns3I1QxU35JI0x9ISpQI0srX2xWd0lQXnk4eGQKenkhPmpCNC1hfihuXnIrZjt7 Y3xsZXNiK01JSUhLSit4NVdSWTlyc2Y0QHlrbzgwYiljaWpuS2RmfnYrPCRhcUxpCnptLXcwXjND eGhMeThuY0VuMTktcVlkLW4tO0tAUj1mZFp9QmhrTF4qanIlMUl6UXFPXm8yK24oejtjSHZ2c1Ij VAp6X2hLTChoaC1XUnNwWl9uKFJTKFZQZUY7UXpNVnNnIWVhO1FCNEVFb1oxOEd+V0deWDxValhy Vmw7U2sldjVNViEKej56IypreiZ2N1dJVH5lP1VSRCZDZUlOI0JxJnMpRVp2TksxYSlRT1J4IVNi K0NnRilCUFg+S2sobTYpT3htV01ACnpGaUAyTFQwTGMzNjllTWUlRGVsNi02JH4+P2tSRUphK2JY PFFMWCRVRSExKHlDRV9JMW5zM19xWD4leTRIWiQ8Owp6bnhqTFlDUk5gNWBZXzljPUtpVzEtYH1G MzBGKUsxN14oJiV7aHtvSjAjaEFsSFpgdlh1RE84ayspQGNodVJAYk4KelRoWC1ySUg5cilJVlVS Vm9ue3QtVyk/IXNhNXpJVCZFKmdBP1VpLTFVXn1TeV9IST5sYkpvb0pBLVIrQlJeWW9LCnpuQlVS TlM0SDhUIWBxdCM9fWd0cEMmI3t9fDF3dTI2ZXlAMiZVanI0cF9UPippMCQyJEY/alNfalRURlRS TGlRQwp6N0VDY0ZQQmxJelVicnVxTlljPihBNUxyeXtWJUA4T1VfVklsZjdqY0cmbyg1OTZ4NyhE RVJsaUQkMGlLdThFc2AKekQtKEF7NilYT1VwKGVZSD15djN0d3U2Q3E7NjloIz5wUGwoNn1pKHsz dWZpO20oZlBQX3Zpczl0M2JHdytURU1YCnpGZHJ1TktUYEoye2tPbDc+O1IoJURUT3JFenMmNmVY OEhEVi0zZ0I9aWFWMlg5fCVXcWppPSk4eTRNMV91azBDewp6eVlzRVElIVpvdzFZYE1rLUczK0lX S0g3Qkpkd1F7cVpCYTQ7QUg7MWY0ZiZuMWlKc2FVb0NKcU1xSTNpaTQ8TWMKelB3JT5+TThvTWZp ITVsbFZ8Nlc2K1JKQlheQS1PTXcqRlR8fEVyP14tOWBVPChFZWphez9gYCR1ZXR2Sl9oX2pvCnp6 UGBSY1BAPjxocSRiPG5kM0JYaXojWXcwKUw3aVBCUjtfUUBnZExONkArSCUwIzI7SyNBZik7KF4m JjklTGIqZgp6O20kdWMwUkdWI0krMXpqcG5kfCpjb05NOGVDTzdqZmo2JjJtNThiUj52e3tIOGZ1 bmV1QzNubno1PXx0cEd3QyYKenxJVEJvMHEmVzJXYmlLZ15QTDNudm0mKTgzVXxqSkpNZThXaU8j O0k8X15rOztAdnBDV0J8OEcwa2g/fTZLKjhuCnpXT1daKld4VlVNaDBhaU9DKEB9bD5GJDt1Iz4y IVdOJGBLYypFdkEhdmAyN1N7JSQoI2ZTMTxHWmdfdkUxUDRJTwp6K2EhSEVAOXF7RXBjblIkbmRm Jnk2IyZGcXhRMCZ0bUxAKz8kO0pqME9sRTArJEw7e1oqMU1KZVhaSXgxdDU/RTwKejtYKjRncm5w VmE1cDlBT3lnK1VGSik4RjtDTVJBdjBzWUg1WWNgXmxAfSYpXiZIVUtTSTQjJlA0T2E9c3pmNU9H CnpnSzVZRlF8Z1ljY0hvKFByJEpge3ohSXMkWHYhaXAxSTlHJitxZHQ5NDZyQ0hJKGAkV3okKCRh a2hTJHYlNEdrJQp6aDxCSUhwR0F9K1VnODw1aGxeZSY9bG47QT9HaTdMYXtGR0Voc2RBLUpBZ1V1 MUxMLThTUFY1Vi1RQC1yQmlvQ1MKeiU4V3o2QkN3VHohKEJ1WF8jeklOVyV0Z0ZNJndUc0p6KGRq cnMzXjhMQER3ZVNSQX4yZGszaz1DOzthRGhzLShPCnprekU4Vip6JXVHTHM7Sm13NFBmJlZLPF8p Ynp2e2lqbiZyTTVoYUYzNDZ0PGwhRW9DYVFMZEhpVUFUVUlkZW1DOwp6JCUjTWItcm1gWWFLPU5Y d1BEJnt6eHQqRC04VG8+ZVl9aj9yJWdaSDJ8PCl7SVk5VF9lNFBDcjtsMzxqO2g2bmsKej1TcVpl SC1XeXxib319fnEmZnB3JTNlUUU5RUA8eENTWlcyX09JV0kyKFQ1djslaTt3XkpOSHNyVUx6V1N9 d2pDCno7bS1oSXhnVyFQLVdPNXFwQXJNczhNZ2JyYDV+TUxEakNgNCV8LTxMNmtUQXpTSiU5cWkq Tz5TaH4+MzA0fjVyUQp6OHFxK0x6eH12bmpjfXFBJj5LPH1kNUdnOTA9NUI3ZSlEbF9JbF9zaXoo UmpDZk1EU3w4Ykc1ZDIkblktTXpoI3gKejgzWmtxTStAblpRSHohNlVocnlyeTYpcWgwN1B3Xihg V341RiktJkt3SFM1QHpJZzR1XjZJOGRjWTVkRU1zI1VKCnpeYTdxZm5YPkFAODxVPHg/Nj0rX1Ng UWBhN3M4ak85eGZeYCVSPnlmVVNJfVImdkZ0ZXlBZ3twRlUkcWomKGBNSwp6NWt0VCk3PWlVWEto TElFTThvS1hBRnkzRWNYbCt3XyU5NnlRZXkxUyE0QFpqVFE8a1VIKkIpbSpaQ2dkSXQ+QSkKenck JUxgdTtMQmFmOHpsKlNtYzxGWkFVYWxzJHZ4R0EzUkBxK1YtRjhoVGt4aTQqZ3N1Jm1QcTglYDRw ZytKdEYzCnphMVdiSz9HdDVyOzleMTMmfGxaTllfLXltT2k8SG8rLUh+Y19KakRSY090PCk3dzZZ blo/QXZjWWtyQnstb3AzUQp6WU5KbWFPYG19Q2dfR2lkSkhIO2pLV0tgdVQwfG96O3A1VGk5PHwq MWRrVjRfd3UqVGZwRVVfcWF4R1ZUZVRlckIKenFSRHdjTWI5OWxQV0RhaHl+VWYoRDcheFhybj4o QnYpVEQ+U0FXaC1wVnp4bVZsOE5ZOXFfMTt1JFJDaWd7MVFyCnplYEJqYmo0Q1dSYTcxTVNiNih3 KDg9czJoSzdUJjx7ZFdCNElqWlp1QmpnTnxUJT5IUE5gQlJVWX4mV3ljeWY2VwpQPXA7USlTM2oz XlA2PHJfSlRufikKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL2RvY3MvZW5f VVMvcHNxbF90b29sLnJzdCBiL2RvY3MvZW5fVVMvcHNxbF90b29sLnJzdApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZTBiMzI4N2UKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Nz L2VuX1VTL3BzcWxfdG9vbC5yc3QKQEAgLTAsMCArMSwxOCBAQAorLi4gX3BzcWxfdG9vbDoKKwor KioqKioqKioqKioqKioqKioqCitgUFNRTCBUb29sYDppbmRleDoKKyoqKioqKioqKioqKioqKioq KgorCitQU1FMIHRvb2wgYWxsb3dzIHVzZXIgdG8gY29ubmVjdCB0byBQb3N0Z3JlU1FMIHNlcnZl ciB1c2luZyBwc3FsIHRlcm1pbmFsLgorCisqIExvZ2luIHRvIFBvc3RncmVTUUwgc2VydmVyIHRo cm91Z2ggdGVybWluYWwgaW4gcGdBZG1pbi4KKyogZXhlY3V0ZSBhbGwgdHlwZSBvZiBjb21tYW5k cy4KKworLi4gaW1hZ2U6OiBpbWFnZXMvcHNxbF90b29sLnBuZworICAgIDphbHQ6IFBTUUwgdG9v bCB3aW5kb3cKKyAgICA6YWxpZ246IGNlbnRlcgorCitZb3UgY2FuIG9wZW4gbXVsdGlwbGUgaW5z dGFuY2Ugb2YgdGhlIFBTUUwgdG9vbCBpbiBpbmRpdmlkdWFsIHRhYnMgc2ltdWx0YW5lb3VzbHku CitUbyBjbG9zZSB0aGUgUFNRTCB0b29sLCBjbGljayB0aGUgKlgqIGluIHRoZSB1cHBlci1yaWdo dCBoYW5kIGNvcm5lciBvZiB0aGUgdGFiIGJhci4KKwpkaWZmIC0tZ2l0IGEvcmVxdWlyZW1lbnRz LnR4dCBiL3JlcXVpcmVtZW50cy50eHQKaW5kZXggZWRkNzAwMGIuLmZiOGYyNWNkIDEwMDY0NAot LS0gYS9yZXF1aXJlbWVudHMudHh0CisrKyBiL3JlcXVpcmVtZW50cy50eHQKQEAgLTM2LDMgKzM2 LDYgQEAgc3NodHVubmVsPT0wLioKIGxkYXAzPT0yLioKIEZsYXNrLUJhYmVsRXg9PTAuKgogZ3Nz YXBpPT0xLjYuKgorCitmbGFzay1zb2NrZXRpbz49NS4wLjEKK2V2ZW50bGV0PT0wLjMwLjIKZGlm ZiAtLWdpdCBhL3dlYi9jb25maWcucHkgYi93ZWIvY29uZmlnLnB5CmluZGV4IDI2NDNlZjE5Li4w MDJhOTk1MSAxMDA2NDQKLS0tIGEvd2ViL2NvbmZpZy5weQorKysgYi93ZWIvY29uZmlnLnB5CkBA IC0xNTYsOCArMTU2LDggQEAgWF9GUkFNRV9PUFRJT05TID0gIlNBTUVPUklHSU4iCiAjIHN1Y2gg YXMgSmF2YVNjcmlwdCwgQ1NTLCBvciBwcmV0dHkgbXVjaCBhbnl0aGluZyB0aGF0IHRoZSBicm93 c2VyIGxvYWRzLgogIyBzZWUgaHR0cHM6Ly9jb250ZW50LXNlY3VyaXR5LXBvbGljeS5jb20vI3Nv dXJjZV9saXN0IGZvciBtb3JlIGluZm8KICMgZS5nLiAiZGVmYXVsdC1zcmMgaHR0cHM6IGRhdGE6 ICd1bnNhZmUtaW5saW5lJyAndW5zYWZlLWV2YWwnOyIKLUNPTlRFTlRfU0VDVVJJVFlfUE9MSUNZ ID0gImRlZmF1bHQtc3JjIGh0dHA6IGRhdGE6IGJsb2I6ICd1bnNhZmUtaW5saW5lJyAiIFwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIid1bnNhZmUtZXZhbCc7IgorQ09OVEVOVF9TRUNVUklU WV9QT0xJQ1kgPSAiZGVmYXVsdC1zcmMgd3M6IGh0dHA6IGRhdGE6IGJsb2I6ICd1bnNhZmUtaW5s aW5lJyIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAiICd1bnNhZmUtZXZhbCc7IgogCiAj IFNUUklDVF9UUkFOU1BPUlRfU0VDVVJJVFlfRU5BQkxFRCB3aGVuIHNldCB0byBUcnVlIHdpbGwg c2V0IHRoZQogIyBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5IGhlYWRlcgpAQCAtNjM2LDYgKzYz NiwxOSBAQCBLUkJfQVVUT19DUkVBVEVfVVNFUiA9IFRydWUKIAogS0VSQkVST1NfQ0NBQ0hFX0RJ UiA9IG9zLnBhdGguam9pbihEQVRBX0RJUiwgJ2tyYmNjYWNoZScpCiAKKyMgUFNRTCB0b29sIHNl dHRpbmdzCisjIFRoaXMgd2lsbCBlbmFibGUgUFNRTCB0b29sIGluIHBnQWRtaW4uIFNvIHVzZXIg Y2FuIGV4ZWN1dGUgdGhlIGNvbW1hbmRzIHVzaW5nCisjIFBTUUwgdGVybWluYWwgaW4gcGdBZG1p bi4KK0VOQUJMRV9QU1FMID0gVHJ1ZQorCisjIEFMTE9XX1BTUUxfU0hFTExfQ09NTUFORCA9IFRy dWUgd2lsbCBkaXNhYmxlIHRoZSBleGVjdXRpb24gb2Ygb3MgbGV2ZWwKKyMgY29tbWFuZHMgdXNp bmcgbWV0YSBjb21tYW5kIFwhIGZyb20gUFNRTCB0ZXJtaW5hbC4KKyMgQXMgUFNRTCBhbGxvdyB1 c2VyIHRvIGV4ZWN1dGUgdGhlIG9zIGxldmVsIGNvbW1hbmRzIGZyb20gdGhlIFBTUUwgdGVybWlu YWwKKyMgdXNlciBjYW4gZXhlY3V0ZSBhbnkgc3lzdGVtIGxldmVsIGNvbW1hbmQgYXMgcGVyIHRo ZSBzeXN0ZW0gbG9naW4gdXNlcgorIyBwcml2aWxlZ2VzLiBEZWZhdWx0IHRoaXMgc2V0dGluZyBp cyBzZXQgdG8gRmFsc2UgYnV0IGlmIGl0IHNldCB0byBUcnVlCisjIFVzZXIgd2lsbCBhYmxlIHRv IGV4ZWN1dGUgdGhlIHN5c3RlbSBsZXZlbCBjb21tYW5kcyB0aHJvdWdoIFBTUUwgdGVybWluYWwg aW4KKyMgcGdBZG1pbi4KK0FMTE9XX1BTUUxfU0hFTExfQ09NTUFORFMgPSBGYWxzZQogCiAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwogIyBMb2NhbCBjb25maWcgc2V0dGluZ3MKZGlmZiAtLWdpdCBhL3dlYi9w YWNrYWdlLmpzb24gYi93ZWIvcGFja2FnZS5qc29uCmluZGV4IGNjMWUxNWFiLi4wZDBmNzliOSAx MDA2NDQKLS0tIGEvd2ViL3BhY2thZ2UuanNvbgorKysgYi93ZWIvcGFja2FnZS5qc29uCkBAIC0x MDMsNiArMTAzLDcgQEAKICAgICAianNvbi1iaWdudW1iZXIiOiAiXjEuMC4xIiwKICAgICAia2Fy bWEtY292ZXJhZ2UiOiAiXjIuMC4zIiwKICAgICAibGVhZmxldCI6ICJeMS41LjEiLAorCiAgICAg ImxvZGFzaCI6ICI0LioiLAogICAgICJtbC1tYXRyaXgiOiAiXjYuNS4wIiwKICAgICAibW9tZW50 IjogIl4yLjI0LjAiLApAQCAtMTE4LDEzICsxMTksMTggQEAKICAgICAic2hpbS1sb2FkZXIiOiAi XjEuMC4xIiwKICAgICAic2xpY2tncmlkIjogImdpdCtodHRwczovL2dpdGh1Yi5jb20vNnBhYy9T bGlja0dyaWQuZ2l0IzIuMy4xNiIsCiAgICAgInNuYXBzdmctY2pzIjogIl4wLjAuNiIsCisgICAg InNvY2tldC5pby1jbGllbnQiOiAiXjQuMC4wIiwKICAgICAic3BsaXQuanMiOiAiXjEuNS4xMCIs CiAgICAgInRhYmxlc29ydGVyIjogIl4yLjMxLjIiLAogICAgICJ0ZW1wdXNkb21pbnVzLWJvb3Rz dHJhcC00IjogIl41LjEuMiIsCiAgICAgInRlbXB1c2RvbWludXMtY29yZSI6ICJeNS4wLjMiLAog ICAgICJ1bmRlcnNjb3JlIjogIl4xLjkuMSIsCiAgICAgIndlYmNhYmluLWRvY2tlciI6ICJnaXQr aHR0cHM6Ly9naXRodWIuY29tL0VudGVycHJpc2VEQi93Y0RvY2tlci8jYzRhMzM5OGI4OTU4ODQw OGRjNzA1ODk1Njc1YmNlN2JkNzY2MGQzNiIsCi0gICAgIndreCI6ICJeMC41LjAiCisgICAgIndr eCI6ICJeMC41LjAiLAorICAgICJ4dGVybSI6ICJeNC4xMS4wIiwKKyAgICAieHRlcm0tYWRkb24t Zml0IjogIl4wLjUuMCIsCisgICAgInh0ZXJtLWFkZG9uLXNlYXJjaCI6ICJeMC44LjAiLAorICAg ICJ4dGVybS1hZGRvbi13ZWItbGlua3MiOiAiXjAuNC4wIiwKICAgfSwKICAgInNjcmlwdHMiOiB7 CiAgICAgImxpbnRlciI6ICJ5YXJuIGVzbGludCAtLW5vLWVzbGludHJjIC1jIC5lc2xpbnRyYy5q cyAtLWV4dCAuanMgIC0tZXh0IC5qc3ggLiIsCmRpZmYgLS1naXQgYS93ZWIvcGdBZG1pbjQucHkg Yi93ZWIvcGdBZG1pbjQucHkKaW5kZXggZDJiZDFhZjYuLjZlMWU0ZWE2IDEwMDY0NAotLS0gYS93 ZWIvcGdBZG1pbjQucHkKKysrIGIvd2ViL3BnQWRtaW40LnB5CkBAIC0xNSw2ICsxNSw3IEBAIHRv IHN0YXJ0IGEgd2ViIHNlcnZlci4iIiIKIGltcG9ydCBzeXMKIGZyb20gY2hlcm9vdC53c2dpIGlt cG9ydCBTZXJ2ZXIgYXMgQ2hlcm9vdFNlcnZlcgogCisKIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAo MywgNCk6CiAgICAgcmFpc2UgUnVudGltZUVycm9yKCdUaGlzIGFwcGxpY2F0aW9uIG11c3QgYmUg cnVuIHVuZGVyIFB5dGhvbiAzLjQgJwogICAgICAgICAgICAgICAgICAgICAgICAnb3IgbGF0ZXIu JykKQEAgLTM3LDcgKzM4LDcgQEAgZWxzZToKICAgICBidWlsdGlucy5TRVJWRVJfTU9ERSA9IE5v bmUKIAogaW1wb3J0IGNvbmZpZwotZnJvbSBwZ2FkbWluIGltcG9ydCBjcmVhdGVfYXBwCitmcm9t IHBnYWRtaW4gaW1wb3J0IGNyZWF0ZV9hcHAsIHNvY2tldGlvCiBmcm9tIHBnYWRtaW4udXRpbHMg aW1wb3J0IHVfZW5jb2RlLCBmc19lbmNvZGluZywgZmlsZV9xdW90ZQogZnJvbSBwZ2FkbWluLnV0 aWxzLmNvbnN0YW50cyBpbXBvcnQgSU5URVJOQUwKICMgR2V0IHRoZSBjb25maWcgZGF0YWJhc2Ug c2NoZW1hIHZlcnNpb24uIFdlIHN0b3JlIHRoaXMgaW4gcGdhZG1pbi5tb2RlbApAQCAtOTcsNiAr OTgsOCBAQCBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoY29uZmlnLlNRTElURV9QQVRIKToKICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCiBhcHAgPSBjcmVhdGVfYXBwKCkKIGFwcC5kZWJ1ZyA9IEZhbHNlCithcHAu Y29uZmlnWydzZXNzaW9ucyddID0gZGljdCgpCisKIGlmIGNvbmZpZy5TRVJWRVJfTU9ERToKICAg ICBhcHAud3NnaV9hcHAgPSBSZXZlcnNlUHJveGllZChhcHAud3NnaV9hcHApCiAKQEAgLTIwNiwx NyArMjA5LDE2IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIENh biB1c2UgY2hlcm9vdCBpbnN0ZWFkIG9mIGZsYXNrIGRldiBzZXJ2ZXIgd2hlbiBub3QgaW4gZGVi dWcKICAgICAgICAgICAgICMgMTAgaXMgZGVmYXVsdCB0aHJlYWQgY291bnQgaW4gQ2hlcm9vdFNl cnZlcgotICAgICAgICAgICAgbnVtX3RocmVhZHMgPSAxMCBpZiBjb25maWcuVEhSRUFERURfTU9E RSBlbHNlIDEKLSAgICAgICAgICAgIHByb2Rfc2VydmVyID0gQ2hlcm9vdFNlcnZlcigKLSAgICAg ICAgICAgICAgICAoY29uZmlnLkRFRkFVTFRfU0VSVkVSLCBjb25maWcuRUZGRUNUSVZFX1NFUlZF Ul9QT1JUKSwKLSAgICAgICAgICAgICAgICB3c2dpX2FwcD1hcHAsCi0gICAgICAgICAgICAgICAg bnVtdGhyZWFkcz1udW1fdGhyZWFkcywKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZT1jb25m aWcuQVBQX05BTUUpCisgICAgICAgICAgICAjIG51bV90aHJlYWRzID0gMTAgaWYgY29uZmlnLlRI UkVBREVEX01PREUgZWxzZSAxCiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcHJp bnQoIlVzaW5nIHByb2R1Y3Rpb24gc2VydmVyLi4uIikKLSAgICAgICAgICAgICAgICBwcm9kX3Nl cnZlci5zdGFydCgpCisgICAgICAgICAgICAgICAgc29ja2V0aW8ucnVuKAorICAgICAgICAgICAg ICAgICAgICBhcHAsCisgICAgICAgICAgICAgICAgICAgIGhvc3Q9Y29uZmlnLkRFRkFVTFRfU0VS VkVSLAorICAgICAgICAgICAgICAgICAgICBwb3J0PWNvbmZpZy5FRkZFQ1RJVkVfU0VSVkVSX1BP UlQsCisgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJy dXB0OgotICAgICAgICAgICAgICAgIHByb2Rfc2VydmVyLnN0b3AoKQorICAgICAgICAgICAgICAg IHByaW50KCJDTE9TRSBTRVJWRVIiKQorICAgICAgICAgICAgICAgIHNvY2tldGlvLnN0b3AoKQog CiAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgIGFwcC5sb2dnZXIuZXJyb3IoIkVycm9yIHN0 YXJ0aW5nIHRoZSBhcHAgc2VydmVyOiAlcyIsIHN5cy5leGNfaW5mbygpKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9fX2luaXRfXy5weQppbmRleCBh NzMzMzUzNy4uYTY0MWVhNjYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL19faW5pdF9fLnB5Cisr KyBiL3dlYi9wZ2FkbWluL19faW5pdF9fLnB5CkBAIC0xOSw2ICsxOSw3IEBAIGZyb20gY29sbGVj dGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CiBmcm9tIGltcG9ydGxpYiBpbXBvcnQgaW1wb3J0X21v ZHVsZQogCiBmcm9tIGZsYXNrIGltcG9ydCBGbGFzaywgYWJvcnQsIHJlcXVlc3QsIGN1cnJlbnRf YXBwLCBzZXNzaW9uLCB1cmxfZm9yCitmcm9tIGZsYXNrX3NvY2tldGlvIGltcG9ydCBTb2NrZXRJ TwogZnJvbSB3ZXJremV1Zy5leGNlcHRpb25zIGltcG9ydCBIVFRQRXhjZXB0aW9uCiBmcm9tIGZs YXNrX2JhYmVsZXggaW1wb3J0IEJhYmVsLCBnZXR0ZXh0CiBmcm9tIGZsYXNrX2JhYmVsZXggaW1w b3J0IGdldHRleHQgYXMgXwpAQCAtNTIsMTAgKzUzLDE1IEBAIGltcG9ydCBtaW1ldHlwZXMKIG1p bWV0eXBlcy5hZGRfdHlwZSgnYXBwbGljYXRpb24vamF2YXNjcmlwdCcsICcuanMnKQogbWltZXR5 cGVzLmFkZF90eXBlKCd0ZXh0L2NzcycsICcuY3NzJykKIAorCiB3aW5yZWcgPSBOb25lCiBpZiBv cy5uYW1lID09ICdudCc6CiAgICAgaW1wb3J0IHdpbnJlZwogCitzb2NrZXRpbyA9IFNvY2tldElP KG1hbmFnZV9zZXNzaW9uPUZhbHNlLCBhc3luY19tb2RlPSdldmVudGxldCcsCisgICAgICAgICAg ICAgICAgICAgIGxvZ2dlcj1UcnVlLCBlbmdpbmVpb19sb2dnZXI9VHJ1ZSwgZGVidWc9RmFsc2Us CisgICAgICAgICAgICAgICAgICAgIHBpbmdfaW50ZXJ2YWw9MjUsIHBpbmdfdGltZW91dD0xMjAp CisKIAogY2xhc3MgUGdBZG1pbihGbGFzayk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdz LCAqKmt3YXJncyk6CkBAIC04MTEsNCArODE3LDUgQEAgZGVmIGNyZWF0ZV9hcHAoYXBwX25hbWU9 Tm9uZSk6CiAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgICAjIEFsbCBkb25lIQogICAgICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisgICAgc29ja2V0aW8uaW5pdF9hcHAoYXBwKQogICAgIHJldHVybiBhcHAK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvcmVnaXN0ZXJfYnJvd3Nlcl9wcmVmZXJl bmNlcy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvcmVnaXN0ZXJfYnJvd3Nlcl9wcmVmZXJlbmNl cy5weQppbmRleCAyMzVkYjAyNy4uYjA5M2UzYTQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvcmVnaXN0ZXJfYnJvd3Nlcl9wcmVmZXJlbmNlcy5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3JlZ2lzdGVyX2Jyb3dzZXJfcHJlZmVyZW5jZXMucHkKQEAgLTEwLDYgKzEwLDcgQEAg ZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0CiBmcm9tIHBnYWRtaW4udXRpbHMuY29u c3RhbnRzIGltcG9ydCBQUkVGX0xBQkVMX0RJU1BMQVksXAogICAgIFBSRUZfTEFCRUxfS0VZQk9B UkRfU0hPUlRDVVRTLCBQUkVGX0xBQkVMX1RBQlNfU0VUVElOR1MsIFwKICAgICBQUkVGX0xBQkVM X09QVElPTlMKK2Zyb20gZmxhc2tfc2VjdXJpdHkgaW1wb3J0IGN1cnJlbnRfdXNlcgogaW1wb3J0 IGNvbmZpZwogCiBMT0NLX0xBWU9VVF9MRVZFTCA9IHsKQEAgLTUxMSwxMCArNTEyLDEyIEBAIGRl ZiByZWdpc3Rlcl9icm93c2VyX3ByZWZlcmVuY2VzKHNlbGYpOgogICAgICAgICBvcHRpb25zPVt7 J2xhYmVsJzogZ2V0dGV4dCgnUXVlcnkgVG9vbCcpLCAndmFsdWUnOiAncXQnfSwKICAgICAgICAg ICAgICAgICAgeydsYWJlbCc6IGdldHRleHQoJ0RlYnVnZ2VyJyksICd2YWx1ZSc6ICdkZWJ1Z2dl cid9LAogICAgICAgICAgICAgICAgICB7J2xhYmVsJzogZ2V0dGV4dCgnU2NoZW1hIERpZmYnKSwg J3ZhbHVlJzogJ3NjaGVtYV9kaWZmJ30sCi0gICAgICAgICAgICAgICAgIHsnbGFiZWwnOiBnZXR0 ZXh0KCdFUkQgVG9vbCcpLCAndmFsdWUnOiAnZXJkX3Rvb2wnfV0sCi0gICAgICAgIGhlbHBfc3Ry PWdldHRleHQoJ1NlbGVjdCBRdWVyeSBUb29sLCBEZWJ1Z2dlciwgb3IgU2NoZW1hIERpZmYgZnJv bSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBkcm9wLWRvd24gdG8gc2V0IG9wZW4g aW4gbmV3IGJyb3dzZXIgdGFiIGZvciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3RoYXQg cGFydGljdWxhciBtb2R1bGUuJyksCisgICAgICAgICAgICAgICAgIHsnbGFiZWwnOiBnZXR0ZXh0 KCdFUkQgVG9vbCcpLCAndmFsdWUnOiAnZXJkX3Rvb2wnfSwKKyAgICAgICAgICAgICAgICAgeyds YWJlbCc6IGdldHRleHQoJ1BTUUwgVG9vbCcpLCAndmFsdWUnOiAncHNxbF90b29sJ31dLAorICAg ICAgICBoZWxwX3N0cj1nZXR0ZXh0KCdTZWxlY3QgUXVlcnkgVG9vbCwgRGVidWdnZXIsIFNjaGVt YSBEaWZmLCBFUkQgVG9vbCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgJ29yIFBTUUwgVG9v bCBmcm9tIHRoZSBkcm9wLWRvd24gdG8gc2V0ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAn b3BlbiBpbiBuZXcgYnJvd3NlciB0YWIgZm9yIHRoYXQgcGFydGljdWxhciBtb2R1bGUuJworICAg ICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgIHNlbGVjdDI9ewogICAgICAgICAgICAg J211bHRpcGxlJzogVHJ1ZSwgJ2FsbG93Q2xlYXInOiBGYWxzZSwKICAgICAgICAgICAgICd0YWdz JzogVHJ1ZSwgJ2ZpcnN0X2VtcHR5JzogRmFsc2UsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3RhdGljL2pzL2RhdGFiYXNl LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N0YXRpYy9qcy9kYXRhYmFzZS5qcwppbmRleCAwMWFiODljNS4uYzQ3ODRkNTEgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dGF0aWMvanMvZGF0YWJhc2UuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcwpAQCAtOTEsNiArOTEs MTEgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuZGF0YWJhc2UnLCBbCiAgICAgICAgICAgbmFtZTog J2dlbmVyYXRlX2VyZCcsIG5vZGU6ICdkYXRhYmFzZScsIG1vZHVsZTogdGhpcywKICAgICAgICAg ICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnZ2VuZXJhdGVfZXJk JywKICAgICAgICAgICBjYXRlZ29yeTogJ2VyZCcsIHByaW9yaXR5OiA1LCBsYWJlbDogZ2V0dGV4 dCgnR2VuZXJhdGUgRVJEIChCZXRhKScpLAorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAn cHNxbF90b29sJywgbm9kZTogJ2RhdGFiYXNlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFw cGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdkYl9wc3FsX3Rvb2wnLAor ICAgICAgICAgIGNhdGVnb3J5OiAncHNxbF90b29sJywgcHJpb3JpdHk6IDUsIGxhYmVsOiBnZXR0 ZXh0KCdQU1FMIFRvb2wgKEJldGEpJyksCisgICAgICAgICAgZW5hYmxlOiAnaXNfcHNxbF9lbmFi bGVkJwogICAgICAgICB9XSk7CiAKICAgICAgICAgXy5iaW5kQWxsKHRoaXMsICdjb25uZWN0aW9u X2xvc3QnKTsKQEAgLTEyMiw2ICsxMjcsOSBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5kYXRhYmFz ZScsIFsKICAgICAgIGlzX2Nvbm5lY3RlZDogZnVuY3Rpb24obm9kZSkgewogICAgICAgICByZXR1 cm4gKG5vZGUgJiYgbm9kZS5jb25uZWN0ZWQgPT0gdHJ1ZSAmJiBub2RlLmNhbkRpc2Nvbm4gPT0g dHJ1ZSk7CiAgICAgICB9LAorICAgICAgaXNfcHNxbF9lbmFibGVkOiBmdW5jdGlvbihub2RlKSB7 CisgICAgICAgIHJldHVybiAobm9kZSAmJiBub2RlLmNvbm5lY3RlZCA9PSB0cnVlKSAmJiBwZ0Fk bWluWydlbmFibGVfcHNxbCddOworICAgICAgfSwKICAgICAgIGlzX2Nvbm5fYWxsb3c6IGZ1bmN0 aW9uKG5vZGUpIHsKICAgICAgICAgcmV0dXJuIChub2RlICYmIG5vZGUuYWxsb3dDb25uID09IHRy dWUpOwogICAgICAgfSwKQEAgLTI2Niw2ICsyNzQsMTUgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUu ZGF0YWJhc2UnLCBbCiAgICAgICAgICAgcGdCcm93c2VyLmVyZC5zaG93RXJkVG9vbChkLCBpLCB0 cnVlKTsKICAgICAgICAgfSwKIAorICAgICAgICAvKiBPcGVuIHBzcWwgdG9vbCBmb3IgZGIqLwor ICAgICAgICBkYl9wc3FsX3Rvb2w6IGZ1bmN0aW9uKGFyZ3MpIHsKKyAgICAgICAgICB2YXIgaW5w dXQgPSBhcmdzIHx8IHt9LAorICAgICAgICAgICAgdCA9IHBnQnJvd3Nlci50cmVlLAorICAgICAg ICAgICAgaSA9IGlucHV0Lml0ZW0gfHwgdC5zZWxlY3RlZCgpLAorICAgICAgICAgICAgZCA9IGkg JiYgaS5sZW5ndGggPT0gMSA/IHQuaXRlbURhdGEoaSkgOiB1bmRlZmluZWQ7CisgICAgICAgICAg cGdCcm93c2VyLnBzcWwucHNxbF90b29sKGQsIGksIHRydWUpOworICAgICAgICB9LAorCiAgICAg ICAgIC8qIENvbm5lY3QgdGhlIGRhdGFiYXNlIChpZiBub3QgY29ubmVjdGVkKSwgYmVmb3JlIG9w ZW5pbmcgdGhpcyBub2RlICovCiAgICAgICAgIGJlZm9yZW9wZW46IGZ1bmN0aW9uKGl0ZW0sIGRh dGEpIHsKICAgICAgICAgICBpZighZGF0YSB8fCBkYXRhLl90eXBlICE9ICdkYXRhYmFzZScgfHwg ZGF0YS5sYWJlbCA9PSAndGVtcGxhdGUwJykgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvc3RhdGljL2pzL3NlcnZlci5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy9zZXJ2ZXIuanMKaW5k ZXggYjIxY2JhNDMuLjFhN2EwY2VmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMvc2VydmVyLmpzCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy9zZXJ2ZXIuanMKQEAgLTEw Miw2ICsxMDIsMTIgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAgICAg ICAgZGF0YV9kaXNhYmxlZDogZ2V0dGV4dCgnRGF0YWJhc2UgaXMgYWxyZWFkeSBkaXNjb25uZWN0 ZWQuJyksCiAgICAgICAgICAgfSwKICAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ3NlcnZl cl9wc3FsJywgbm9kZTogJ3NlcnZlcicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2VydmVyX3BzcWxfdG9vbCcsCisg ICAgICAgICAgY2F0ZWdvcnk6ICdwc3FsX3Rvb2wnLCBwcmlvcml0eTogNSwgbGFiZWw6IGdldHRl eHQoJ1BTUUwgVG9vbCAoQmV0YSknKSwKKyAgICAgICAgICBlbmFibGUgOiAnaXNfcHNxbF9lbmFi bGVkJywKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgIG5hbWU6ICdyZWxvYWRfY29u ZmlndXJhdGlvbicsIG5vZGU6ICdzZXJ2ZXInLCBtb2R1bGU6IHRoaXMsCiAgICAgICAgICAgYXBw bGllczogWyd0b29scycsICdjb250ZXh0J10sIGNhbGxiYWNrOiAncmVsb2FkX2NvbmZpZ3VyYXRp b24nLAogICAgICAgICAgIGNhdGVnb3J5OiAncmVsb2FkJywgcHJpb3JpdHk6IDYsIGxhYmVsOiBn ZXR0ZXh0KCdSZWxvYWQgQ29uZmlndXJhdGlvbicpLApAQCAtMTgzLDYgKzE4OSw5IEBAIGRlZmlu ZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsKICAgICAgIGlzX2Nvbm5lY3RlZDogZnVuY3Rpb24o bm9kZSkgewogICAgICAgICByZXR1cm4gKG5vZGUgJiYgbm9kZS5jb25uZWN0ZWQgPT0gdHJ1ZSk7 CiAgICAgICB9LAorICAgICAgaXNfcHNxbF9lbmFibGVkOiBmdW5jdGlvbihub2RlKSB7CisgICAg ICAgIHJldHVybiAobm9kZSAmJiBub2RlLmNvbm5lY3RlZCA9PSB0cnVlKSAmJiBwZ0FkbWluWydl bmFibGVfcHNxbCddOworICAgICAgfSwKICAgICAgIGVuYWJsZV9yZWxvYWRfY29uZmlnOiBmdW5j dGlvbihub2RlKSB7CiAgICAgICAgIC8vIE11c3QgYmUgY29ubmVjdGVkICYgaXMgU3VwZXIgdXNl cgogICAgICAgICBpZiAobm9kZSAmJiBub2RlLl90eXBlID09ICdzZXJ2ZXInICYmCkBAIC03Mjgs NiArNzM3LDE0IEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsKIAogICAgICAgICAg IHJldHVybiBmYWxzZTsKICAgICAgICAgfSwKKyAgICAgICAgLyogT3BlbiBwc3FsIHRvb2wgZm9y IHNlcnZlciovCisgICAgICAgIHNlcnZlcl9wc3FsX3Rvb2w6IGZ1bmN0aW9uKGFyZ3MpIHsKKyAg ICAgICAgICB2YXIgaW5wdXQgPSBhcmdzIHx8IHt9LAorICAgICAgICAgICAgdCA9IHBnQnJvd3Nl ci50cmVlLAorICAgICAgICAgICAgaSA9IGlucHV0Lml0ZW0gfHwgdC5zZWxlY3RlZCgpLAorICAg ICAgICAgICAgZCA9IGkgJiYgaS5sZW5ndGggPT0gMSA/IHQuaXRlbURhdGEoaSkgOiB1bmRlZmlu ZWQ7CisgICAgICAgICAgcGdCcm93c2VyLnBzcWwucHNxbF90b29sKGQsIGksIHRydWUpOworICAg ICAgICB9CiAgICAgICB9LAogICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVs LmV4dGVuZCh7CiAgICAgICAgIGRlZmF1bHRzOiB7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3N0YXRpYy9qcy9wYW5lbC5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pz L3BhbmVsLmpzCmluZGV4IGM5ZTY0MTMyLi4zMDY4YWFiZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zdGF0aWMvanMvcGFuZWwuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z dGF0aWMvanMvcGFuZWwuanMKQEAgLTEyMiwxMCArMTIyLDMwIEBAIGRlZmluZSgKICAgICAgICAg ICAgICAgICAgICAgbXlQYW5lbC5vbihldiwgdGhhdC5oYW5kbGVWaXNpYmlsaXR5LmJpbmQobXlQ YW5lbCwgZXYpKTsKICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICB9CisKKyAg ICAgICAgICAgICAgLy8gTGlzdGVuIG9uIGRldGFjaCBwYW5lbCBldmVudAorICAgICAgICAgICAg ICBteVBhbmVsLm9uKHdjRG9ja2VyLkVWRU5ULkRFVEFDSEVELCBmdW5jdGlvbihvYmopIHsKKyAg ICAgICAgICAgICAgICB0aGF0LnNldENvZGVNaXJyb3JIZWlnaHQob2JqKTsKKyAgICAgICAgICAg ICAgfSk7CiAgICAgICAgICAgICB9LAogICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICB9 LAorICAgICAgc2V0Q29kZU1pcnJvckhlaWdodDogZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIEZp eCBmb3IgbWFjIG9zIGNvZGUtbWlycm9yIHNob3dpbmcgYmxhY2sgc2NyZWVuLgorICAgICAgICB2 YXIgdHh0QXJlYSA9ICQoJy5wZy1wYW5lbC1jb250ZW50IC5zcWxfdGV4dGFyZWEgPiB0ZXh0YXJl YScpLmZpcnN0KCk7CisgICAgICAgIHR4dEFyZWEuY3NzKCd6LWluZGV4JywgLTEpOworICAgICAg ICB2YXIgJHRhYkNvbnRlbnQgPSAkKCcucGctcGFuZWwtY29udGVudCA+IC5zcWxfdGV4dGFyZWEn KS5maXJzdCgpOworICAgICAgICB2YXIgJHNxbFBhbmUgPSAkdGFiQ29udGVudC5maW5kKCcuQ29k ZU1pcnJvciA+IGRpdiA+IHRleHRhcmVhJyk7CisgICAgICAgIGZvcihsZXQgaT0wOyBpPCRzcWxQ YW5lLmxlbmd0aDsgaSsrKSB7JCgkc3FsUGFuZVtpXSkuY3NzKCd6LWluZGV4JywgLTEpO30KKwor ICAgICAgICAkdGFiQ29udGVudCA9ICQoJy5wZy1wYW5lbC1jb250ZW50ID4gLnNxbF90ZXh0YXJl YScpLmZpcnN0KCk7CisgICAgICAgICRzcWxQYW5lID0gJHRhYkNvbnRlbnQuZmluZCgnLnBnLXBh bmVsLWNvbnRlbnQnKTsKKyAgICAgICAgJHNxbFBhbmUuZmluZCgnLkNvZGVNaXJyb3InKS5jc3Mo CisgICAgICAgICAgJ2Nzc1RleHQnLAorICAgICAgICAgICdoZWlnaHQ6ICcgKyAoJHRhYkNvbnRl bnQuaGVpZ2h0KCkpICsgJ3B4ICFpbXBvcnRhbnQ7JworICAgICAgICApOworICAgICAgfSwKICAg ICAgIGV2ZW50RnVuYzogZnVuY3Rpb24oZXZlbnROYW1lKSB7CiAgICAgICAgIHZhciBuYW1lID0g JCh0aGlzKS5kYXRhKCdwZ0FkbWluTmFtZScpOwogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3RlbXBsYXRlcy9icm93c2VyL2pzL3V0aWxzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy91dGlscy5qcwppbmRleCA4NTk3ZGY0OC4uYjBhMzE3YTUg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMvdXRp bHMuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy91dGls cy5qcwpAQCAtNTIsNiArNTIsMTAgQEAgZGVmaW5lKCdwZ2FkbWluLmJyb3dzZXIudXRpbHMnLAog ICBwZ0FkbWluWyd1c2VyX2luYWN0aXZpdHlfdGltZW91dCddID0ge3sgY3VycmVudF9hcHAuY29u ZmlnLmdldCgnVVNFUl9JTkFDVElWSVRZX1RJTUVPVVQnKSB9fTsKICAgcGdBZG1pblsnb3ZlcnJp ZGVfdXNlcl9pbmFjdGl2aXR5X3RpbWVvdXQnXSA9ICd7eyBjdXJyZW50X2FwcC5jb25maWcuZ2V0 KCdPVkVSUklERV9VU0VSX0lOQUNUSVZJVFlfVElNRU9VVCcpIH19JyA9PSAnVHJ1ZSc7CiAKKyAg LyogR0VUIFBTUUwgVG9vbCByZWxhdGVkIGNvbmZpZyAqLworICBwZ0FkbWluWydlbmFibGVfcHNx bCddID0gICd7eyBjdXJyZW50X2FwcC5jb25maWcuZ2V0KCdFTkFCTEVfUFNRTCcpIH19JyA9PSAn VHJ1ZSc7CisgIHBnQWRtaW5bJ2FsbG93X3BzcWxfc2hlbGxfY29tbWFuZHMnXSA9ICAne3sgY3Vy cmVudF9hcHAuY29uZmlnLmdldCgnQUxMT1dfUFNRTF9TSEVMTF9DT01NQU5EUycpIH19JyAgPT0g J1RydWUnOworCiAgIC8vIERlZmluZSBsaXN0IG9mIG5vZGVzIG9uIHdoaWNoIFF1ZXJ5IHRvb2wg b3B0aW9uIGRvZXNuJ3QgYXBwZWFycwogICB2YXIgdW5zdXBwb3J0ZWRfbm9kZXMgPSBwZ0FkbWlu LnVuc3VwcG9ydGVkX25vZGVzID0gWwogICAgICAnc2VydmVyX2dyb3VwJywgJ3NlcnZlcicsICdj b2xsLXRhYmxlc3BhY2UnLCAndGFibGVzcGFjZScsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9z dGF0aWMvYnVuZGxlL2Jyb3dzZXIuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvYnVuZGxlL2Jyb3dz ZXIuanMKaW5kZXggMTQxNDBhMmYuLjBiM2FkODFiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9z dGF0aWMvYnVuZGxlL2Jyb3dzZXIuanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2J1bmRsZS9i cm93c2VyLmpzCkBAIC0xMSw2ICsxMSw3IEBAIGRlZmluZSgnYnVuZGxlZF9icm93c2VyJyxbCiAg ICdwZ2FkbWluLmJyb3dzZXInLAogICAnc291cmNlcy9icm93c2VyL2luZGV4JywKICAgJ3RvcC90 b29scy9lcmQvc3RhdGljL2pzL2luZGV4JywKKyAgJ3RvcC90b29scy9wc3FsL3N0YXRpYy9qcy9p bmRleCcsCiBdLCBmdW5jdGlvbihwZ0Jyb3dzZXIpIHsKICAgcGdCcm93c2VyLmluaXQoKTsKIH0p OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2Nzcy9zdHlsZS5jc3MgYi93ZWIvcGdh ZG1pbi9zdGF0aWMvY3NzL3N0eWxlLmNzcwppbmRleCBjMmE3NzZjOC4uNWI0YTlmMmQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9jc3Mvc3R5bGUuY3NzCisrKyBiL3dlYi9wZ2FkbWlu L3N0YXRpYy9jc3Mvc3R5bGUuY3NzCkBAIC0yMSwzICsyMSw1IEBACiAKIEBpbXBvcnQgJy4uL3Zl bmRvci9iYWNrZ3JpZC9iYWNrZ3JpZC5jc3MnOwogQGltcG9ydCAnLi4vdmVuZG9yL2JhY2tncmlk L2JhY2tncmlkLXNlbGVjdC1hbGwuY3NzJzsKKworQGltcG9ydCAnbm9kZV9tb2R1bGVzL3h0ZXJt L2Nzcy94dGVybS5jc3MnOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvX19pbml0X18ucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjI3YWU3ZTJhCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vdG9vbHMvcHNxbC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDUwMyBAQAorIyEvdXNy L2Jpbi9lbnYgcHl0aG9uMworaW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzZWxlY3QKK2lt cG9ydCBzaWduYWwKK2ltcG9ydCB0ZXJtaW9zCitpbXBvcnQgc3RydWN0CitpbXBvcnQgZmNudGwK K2ltcG9ydCBwdHkKK2ltcG9ydCBjb25maWcKK2ltcG9ydCBldmVudGxldC5ncmVlbi5zdWJwcm9j ZXNzIGFzIHN1YnByb2Nlc3MKK2Zyb20gZmxhc2sgaW1wb3J0IFJlc3BvbnNlLCBzZXNzaW9uLCB1 cmxfZm9yLCByZXF1ZXN0Citmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgdW5kZXJz Y29yZV91bmVzY2FwZQorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBjb3B5X2N1 cnJlbnRfcmVxdWVzdF9jb250ZXh0LCBcCisgICAgY3VycmVudF9hcHAgYXMgYXBwCitmcm9tIGZs YXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgUGdB ZG1pbk1vZHVsZQorZnJvbSBmbGFza19zZWN1cml0eSBpbXBvcnQgbG9naW5fcmVxdWlyZWQsIGN1 cnJlbnRfdXNlcgorZnJvbSBwZ2FkbWluLnV0aWxzLmNvbnN0YW50cyBpbXBvcnQgUFJFRl9MQUJF TF9ESVNQTEFZLCBNSU1FVFlQRV9BUFBfSlMsIFwKKyAgICBFUlJPUl9NU0dfVFJBTlNfSURfTk9U X0ZPVU5ECitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9t IGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi5tb2RlbCBpbXBv cnQgU2VydmVyCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IGdldF9jb21wbGV0ZV9maWxlX3Bh dGgKKworZnJvbSAuLi4gaW1wb3J0IHNvY2tldGlvIGFzIHNpbworCitzZXNzaW9uX2lucHV0ID0g ZGljdCgpCitzZXNzaW9uX2lucHV0X2N1cnNvciA9IGRpY3QoKQorc2Vzc2lvbl9sYXN0X2NtZCA9 IGRpY3QoKQorcGRhdGEgPSBkaWN0KCkKK2NkYXRhID0gZGljdCgpCisKKworY2xhc3MgUFNRTE1v ZHVsZShQZ0FkbWluTW9kdWxlKToKKyAgICAiIiIKKyAgICBjbGFzcyBQU1FMTW9kdWxlKFBnQWRt aW5Nb2R1bGUpCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBQU1FMIGRlcml2ZWQgZnJvbSBQ Z0FkbWluTW9kdWxlLgorICAgICIiIgorCisgICAgTEFCRUwgPSBnZXR0ZXh0KCJQU1FMIikKKwor ICAgIGRlZiBnZXRfb3duX21lbnVpdGVtcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHt9CisKKyAg ICBkZWYgZ2V0X293bl9qYXZhc2NyaXB0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFt7CisgICAg ICAgICAgICAnbmFtZSc6ICdwZ2FkbWluLnBzcWwnLAorICAgICAgICAgICAgJ3BhdGgnOiB1cmxf Zm9yKCdwc3FsLmluZGV4JykgKyAicHNxbCIsCisgICAgICAgICAgICAnd2hlbic6IE5vbmUKKyAg ICAgICAgfV0KKworICAgIGRlZiBnZXRfcGFuZWxzKHNlbGYpOgorICAgICAgICByZXR1cm4gW10K KworICAgIGRlZiBnZXRfZXhwb3NlZF91cmxfZW5kcG9pbnRzKHNlbGYpOgorICAgICAgICAiIiIK KyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIGxpc3Q6IFVSTCBlbmRwb2ludHMgZm9yIFBT UUwgbW9kdWxlCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gWworICAgICAgICAgICAgJ3Bz cWwucGFuZWwnLAorICAgICAgICBdCisKKworYmx1ZXByaW50ID0gUFNRTE1vZHVsZSgncHNxbCcs IF9fbmFtZV9fLCBzdGF0aWNfdXJsX3BhdGg9Jy9zdGF0aWMnKQorCisKK0BibHVlcHJpbnQucm91 dGUoIi9wc3FsLmpzIikKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIHNjcmlwdCgpOgorICAgICIiInJl bmRlciB0aGUgcmVxdWlyZWQgamF2YXNjcmlwdCIiIgorICAgIHJldHVybiBSZXNwb25zZSgKKyAg ICAgICAgcmVzcG9uc2U9cmVuZGVyX3RlbXBsYXRlKCJwc3FsL2pzL3BzcWwuanMiLCBfPWdldHRl eHQpLAorICAgICAgICBzdGF0dXM9MjAwLAorICAgICAgICBtaW1ldHlwZT1NSU1FVFlQRV9BUFBf SlMKKyAgICApCisKKworQGJsdWVwcmludC5yb3V0ZSgnL3BhbmVsLzxpbnQ6dHJhbnNfaWQ+JywK KyAgICAgICAgICAgICAgICAgbWV0aG9kcz1bIlBPU1QiXSwKKyAgICAgICAgICAgICAgICAgZW5k cG9pbnQ9InBhbmVsIikKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIHBhbmVsKHRyYW5zX2lkKToKKyAg ICAiIiIKKyAgICBSZXR1cm4gcGFuZWwgdGVtcGxhdGUgZm9yIFBTUUwgdG9vbHMuCisgICAgOnBh cmFtIHRyYW5zX2lkOgorICAgICIiIgorICAgIHBhcmFtcyA9IHsKKyAgICAgICAgJ3RyYW5zX2lk JzogdHJhbnNfaWQsCisgICAgICAgICd0aXRsZSc6IHJlcXVlc3QuZm9ybVsndGl0bGUnXQorICAg IH0KKyAgICBpZiByZXF1ZXN0LmFyZ3M6CisgICAgICAgIHBhcmFtcy51cGRhdGUoe2s6IHYgZm9y IGssIHYgaW4gcmVxdWVzdC5hcmdzLml0ZW1zKCl9KQorCisgICAgcmV0dXJuIHJlbmRlcl90ZW1w bGF0ZSgnZWRpdG9yX3RlbXBsYXRlLmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg c2lkPXBhcmFtc1snc2lkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkYj1wYXJhbXNb J2RiJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT1wYXJhbXNbJ3Nl cnZlcl90eXBlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19lbmFibGU9Y29uZmln LkVOQUJMRV9QU1FMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9dW5kZXJzY29y ZV91bmVzY2FwZShwYXJhbXNbJ3RpdGxlJ10pKQorCisKK2RlZiBzZXRfdGVybV9zaXplKGZkLCBy b3csIGNvbCwgeHBpeD0wLCB5cGl4PTApOgorICAgICIiIgorICAgIFNldCB0aGUgdGVybWluYWwg c2l6ZSBhcyBwZXIgVUkgeHRlcm0gc2l6ZS4KKyAgICA6cGFyYW0gZmQ6CisgICAgOnBhcmFtIHJv dzoKKyAgICA6cGFyYW0gY29sOgorICAgIDpwYXJhbSB4cGl4OgorICAgIDpwYXJhbSB5cGl4Ogor ICAgICIiIgorICAgIHRlcm1fc2l6ZSA9IHN0cnVjdC5wYWNrKCdISEhIJywgcm93LCBjb2wsIHhw aXgsIHlwaXgpCisgICAgZmNudGwuaW9jdGwoZmQsIHRlcm1pb3MuVElPQ1NXSU5TWiwgdGVybV9z aXplKQorCisKK0BzaW8ub24oJ2Nvbm5lY3QnLCBuYW1lc3BhY2U9Jy9wdHknKQorZGVmIGNvbm5l Y3QoKToKKyAgICAiIiIKKyAgICBDb25uZWN0IHRvIHRoZSBzZXJ2ZXIgdGhyb3VnaCBzb2NrZXQu CisgICAgOnJldHVybjoKKyAgICA6cnR5cGU6CisgICAgIiIiCisgICAgaWYgY29uZmlnLkVOQUJM RV9QU1FMOgorICAgICAgICBzaW8uZW1pdCgnY29ubmVjdGVkJywgeydzaWQnOiByZXF1ZXN0LnNp ZH0sIG5hbWVzcGFjZT0nL3B0eScsCisgICAgICAgICAgICAgICAgIHRvPXJlcXVlc3Quc2lkKQor ICAgICAgICBpZiByZXF1ZXN0LnNpZCBpbiBzZXNzaW9uX2xhc3RfY21kOgorICAgICAgICAgICAg c2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1bJ2lzX25ld19jb25uZWN0aW9uJ10gPSBGYWxz ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNp ZF0gPSB7J2NtZCc6ICcnLCAnYXJyb3dfdXAnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZhbGlkX2NtZCc6IEZhbHNlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzX25ld19jb25uZWN0aW9uJzog VHJ1ZX0KKyAgICBlbHNlOgorICAgICAgICBzaW8uZW1pdCgnY29ubl9ub3RfYWxsb3cnLCB7J3Np ZCc6IHJlcXVlc3Quc2lkfSwgbmFtZXNwYWNlPScvcHR5JywKKyAgICAgICAgICAgICAgICAgdG89 cmVxdWVzdC5zaWQpCisKKworQHNpby5vbignc3RhcnRfcHJvY2VzcycsIG5hbWVzcGFjZT0nL3B0 eScpCitAbG9naW5fcmVxdWlyZWQKK2RlZiBzdGFydF9wcm9jZXNzKGRhdGEpOgorICAgICIiIgor ICAgIFN0YXJ0IHRoZSBwdHkgdGVybWluYWwgYW5kIGV4ZWN1dGUgcHNxbCBjb21tYW5kIGFuZCBl bWl0IHJlc3VsdHMgdG8gdXNlci4KKyAgICA6cGFyYW0gZGF0YToKKyAgICA6cmV0dXJuOgorICAg ICIiIgorCisgICAgQGNvcHlfY3VycmVudF9yZXF1ZXN0X2NvbnRleHQKKyAgICBkZWYgcmVhZF9h bmRfZm9yd2FyZF9wdHlfb3V0cHV0KHNpZCwgZGF0YSk6CisgICAgICAgIG1heF9yZWFkX2J5dGVz ID0gMTAyNCAqIDIwCisgICAgICAgICMgQ3JlYXRlIHRoZSBwdHkgdGVybWluYWwgcHJvY2Vzcywg cGFyZW50IGFuZCBmZCBhcmUgZmlsZSBkZXNjcmlwdG9ycworICAgICAgICAjIGZvciBwYXJlbnQg YW5kIGNoaWxkLgorICAgICAgICBwYXJlbnQsIGZkID0gcHR5Lm9wZW5wdHkoKQorICAgICAgICBw ID0gTm9uZQorICAgICAgICBpZiBwYXJlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIENo aWxkIHByb2Nlc3MKKyAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNvbm5lY3Rpb25f ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWV4ZWNfZm49b3Muc2V0 c2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkaW49ZmQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9ZmQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdGRlcnI9ZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQorCisgICAgICAgICAgICBhcHAuY29uZmlnWydzZXNzaW9ucyddW3JlcXVlc3Quc2lkXSA9 IHBhcmVudAorICAgICAgICAgICAgcGRhdGFbcmVxdWVzdC5zaWRdID0gcAorICAgICAgICAgICAg Y2RhdGFbcmVxdWVzdC5zaWRdID0gZmQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFwcC5j b25maWdbJ3Nlc3Npb25zJ11bcmVxdWVzdC5zaWRdID0gcGFyZW50CisgICAgICAgICAgICBjZGF0 YVtyZXF1ZXN0LnNpZF0gPSBmZAorICAgICAgICAgICAgc2V0X3Rlcm1fc2l6ZShmZCwgNTAsIDUw KQorCisgICAgICAgIHdoaWxlIHAgYW5kIHAucG9sbCgpIGlzIE5vbmU6CisgICAgICAgICAgICBp ZiByZXF1ZXN0LnNpZCBpbiBhcHAuY29uZmlnWydzZXNzaW9ucyddOgorICAgICAgICAgICAgICAg ICMgVGhpcyBjb2RlIGlzIGFkZGVkIHRvIG1ha2UgdGhpcyB1bml0IHRlc3RhYmxlLgorICAgICAg ICAgICAgICAgIGlmICJpc190ZXN0IiBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAg c2lvLnNsZWVwKDAuMDEpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg ICAgZGF0YVsnY291bnQnXSArPSAxCisgICAgICAgICAgICAgICAgICAgIGlmIGRhdGFbJ2NvdW50 J10gPT0gNToKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAg ICB0aW1lb3V0ID0gMAorICAgICAgICAgICAgICAgICMgbW9kdWxlIHByb3ZpZGVzIGFjY2VzcyB0 byBwbGF0Zm9ybS1zcGVjaWZpYyBJL08KKyAgICAgICAgICAgICAgICAjIG1vbml0b3JpbmcgZnVu Y3Rpb25zCisgICAgICAgICAgICAgICAgKGRhdGFfcmVhZHksIF8sIF8pID0gc2VsZWN0LnNlbGVj dChbcGFyZW50LCBmZF0sIFtdLCBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpCisKKyAgICAgICAgICAgICAgICBpZiBwYXJlbnQg aW4gZGF0YV9yZWFkeToKKyAgICAgICAgICAgICAgICAgICAgIyBSZWFkIHRoZSBvdXRwdXQgZnJv bSBwYXJlbnQgZmQgKHRlcm1pbmFsKS4KKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gb3Mu cmVhZChwYXJlbnQsIG1heF9yZWFkX2J5dGVzKQorICAgICAgICAgICAgICAgICAgICBlbWl0X291 dHB1dCA9IFRydWUKKworICAgICAgICAgICAgICAgICAgICBpZiBzaWQgaW4gc2Vzc2lvbl9sYXN0 X2NtZCBhbmQgc2Vzc2lvbl9sYXN0X2NtZFtzaWRdWworICAgICAgICAgICAgICAgICAgICAgICAg J2Fycm93X3VwJ10gYW5kIG5vdCBzZXNzaW9uX2xhc3RfY21kW3JlcXVlc3Quc2lkXVsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnYXJyb3dfbGVmdF9yaWdodCddOgorICAgICAgICAgICAg ICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtzaWRdWydjbWQnXSA9IG91dHB1dC5kZWNvZGUo KQorICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9pbnB1dF9jdXJzb3JbcmVxdWVzdC5z aWRdID0gbGVuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fbGFzdF9jbWRb c2lkXVsnY21kJ10pCisgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX2xhc3RfY21kW3Np ZF1bJ2Fycm93X3VwJ10gPSBUcnVlCisKKyAgICAgICAgICAgICAgICAgICAgaWYgc2lkIGluIHNl c3Npb25fbGFzdF9jbWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAjIElmIGNvbW1hbmQgaXMg aW52YWxpZCB0aGVuIGVtaXQgZXJyb3IgdG8gdXNlci4KKyAgICAgICAgICAgICAgICAgICAgICAg IGlmIHNlc3Npb25fbGFzdF9jbWRbc2lkXVsnaW52YWxpZF9jbWQnXToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBlbWl0X291dHB1dCA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2lvLmVtaXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwdHktb3V0 cHV0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IGdldHRleHQoCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SOiBTaGVsbCBjb21tYW5kcyBhcmUgZGlzYWJs ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbiBwc3FsIGZv ciBzZWN1cml0eTtcclxuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn ZXJyb3InOiBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0nL3B0eScsIHJvb209c2lkKQorICAg ICAgICAgICAgICAgICAgICAjIElmIGNvbW1hbmQgaXMgdmFsaWQgdGhlbiBlbWl0IG91dHB1dCB0 byB1c2VyLgorICAgICAgICAgICAgICAgICAgICBpZiBlbWl0X291dHB1dDoKKyAgICAgICAgICAg ICAgICAgICAgICAgIHNpby5lbWl0KCdwdHktb3V0cHV0JywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsncmVzdWx0Jzogb3V0cHV0LmRlY29kZSgpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdlcnJvcic6IEZhbHNlfSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5hbWVzcGFjZT0nL3B0eScsIHJvb209c2lkKQorICAgICAgICAgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1 ZXN0LnNpZF1bJ2ludmFsaWRfY21kJ10gPSBGYWxzZQorCisgICAgIyBDaGVjayB1c2VyIGlzIGF1 dGhlbnRpY2F0ZWQgYW5kIFBTUUwgaXMgZW5hYmxlZCBpbiBjb25maWcuCisgICAgaWYgY3VycmVu dF91c2VyLmlzX2F1dGhlbnRpY2F0ZWQgYW5kIGNvbmZpZy5FTkFCTEVfUFNRTDoKKyAgICAgICAg Y29ubmVjdGlvbl9kYXRhID0gW10KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGIgPSAnJwor ICAgICAgICAgICAgaWYgZGF0YVsnZGInXToKKyAgICAgICAgICAgICAgICBkYiA9IGRhdGFbJ2Ri J10KKyAgICAgICAgICAgICMgZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikK KyAgICAgICAgICAgICMgbWFuYWdlciA9IGRyaXZlci5jb25uZWN0aW9uX21hbmFnZXIoaW50KGRh dGFbJ3NpZCddKSkKKyAgICAgICAgICAgICMgY29ubiA9IG1hbmFnZXIuY29ubmVjdGlvbigpCisg ICAgICAgICAgICBjb25uLCBtYW5hZ2VyID0gX2dldF9jb25uZWN0aW9uKGludChkYXRhWydzaWQn XSksIGRhdGEpCisgICAgICAgICAgICBwc3FsX3V0aWxpdHkgPSBtYW5hZ2VyLnV0aWxpdHkoJ3Nx bCcpCisgICAgICAgICAgICBwcmludCgicHNxbF91dGlsaXR5OiAiLCBwc3FsX3V0aWxpdHkpCisg ICAgICAgICAgICBjb25uZWN0aW9uX2RhdGEgPSBnZXRfY29ubmVjdGlvbl9zdHIocHNxbF91dGls aXR5LCBjb25uLCBkYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYW5hZ2VyKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICAjIElmIGFueSBlcnJvciByYWlzZWQgZHVyaW5nIHRoZSBzdGFydCB0aGUgUFNRTCBlbWl0 IGVycm9yIHRvIFVJLgorICAgICAgICAgICAgc2lvLmVtaXQoCisgICAgICAgICAgICAgICAgJ2Nv bm5fZXJyb3InLAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2Vycm9y JzogJ0Vycm9yIHdoaWxlIHJ1bm5pbmcgcHNxbCBjb21tYW5kOiB7MH0nLmZvcm1hdChlKSwKKyAg ICAgICAgICAgICAgICB9LCBuYW1lc3BhY2U9Jy9wdHknLCByb29tPXJlcXVlc3Quc2lkKQorCisg ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNpby5zdGFydF9iYWNrZ3JvdW5kX3Rhc2socmVhZF9h bmRfZm9yd2FyZF9wdHlfb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXF1ZXN0LnNpZCwgZGF0YSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgcHJpbnQoZSkKKyAgICBlbHNlOgorICAgICAgICAjIFNob3cgZXJyb3IgaWYg dXNlciBpcyBub3QgYXV0aGVudGljYXRlZC4KKyAgICAgICAgc2lvLmVtaXQoJ2Nvbm5fbm90X2Fs bG93JywgeydzaWQnOiByZXF1ZXN0LnNpZH0sIG5hbWVzcGFjZT0nL3B0eScsCisgICAgICAgICAg ICAgICAgIHRvPXJlcXVlc3Quc2lkKQorCisKK2RlZiBfZ2V0X2Nvbm5lY3Rpb24oc2lkLCBkYXRh KToKKyAgICAiIiIKKyAgICBHZXQgdGhlIGNvbm5lY3Rpb24gb2JqZWN0IG9mIEVSRC4KKyAgICA6 cGFyYW0gc2lkOgorICAgIDpwYXJhbSBkaWQ6CisgICAgOnBhcmFtIHRyYW5zX2lkOgorICAgIDpy ZXR1cm46CisgICAgIiIiCisgICAgbWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklW RVIpLmNvbm5lY3Rpb25fbWFuYWdlcihzaWQpCisgICAgdHJ5OgorICAgICAgICBjb25uID0gbWFu YWdlci5jb25uZWN0aW9uKCkKKyAgICAgICAgaWYgJ3B3ZCcgaW4gZGF0YToKKyAgICAgICAgICAg IGt3YXJncyA9IHsncGFzc3dvcmQnOiBkYXRhWydwd2QnXSwgInVzZXIiOiBkYXRhWyd1c2VyJ119 CisgICAgICAgICAgICBzdGF0dXMsIG1zZyA9IGNvbm4uY29ubmVjdCgqKmt3YXJncykKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHN0YXR1cywgbXNnID0gY29ubi5jb25uZWN0KCkKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIGFwcC5sb2dnZXIuZXJyb3IobXNnKQorICAg ICAgICAgICAgIyByYWlzZSBDb25uZWN0aW9uTG9zdChzaWQsIGNvbm4uZGIsIHRyYW5zX2lkKQor CisgICAgICAgIHJldHVybiBjb25uLCBtYW5hZ2VyCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl OgorICAgICAgICBhcHAubG9nZ2VyLmVycm9yKGUpCisgICAgICAgIHJhaXNlCisKKworZGVmIGdl dF9jb25uZWN0aW9uX3N0cihwc3FsX3V0aWxpdHksIGNvbm4sIGRiLCBtYW5hZ2VyKToKKyAgICAi IiIKKyAgICBHZXQgY29ubmVjdGlvbiBzdHJpbmcodGhyb3VnaCBjb25uZWN0aW9uIGRzbikKKyAg ICA6cGFyYW0gcHNxbF91dGlsaXR5OiBQb3N0Z3JlU1FMIGJpbmFyeSBwYXRoLgorICAgIDpwYXJh bSBjb25uOiBDb25uZWN0aW9uIGRhdGEKKyAgICA6cGFyYW0gZGI6IGRhdGFiYXNlIG5hbWUgdG8g Y29ubmVjdCBzcGVjaWZpYyBkYi4KKyAgICA6cmV0dXJuOiBjb25uZWN0aW9uIGF0dHJpYnV0ZSBs aXN0IGZvciBQU1FMIGNvbm5lY3Rpb24uCisgICAgIiIiCisKKyAgICBjb25uX2F0dHIgPSBjb25u LmNvbm4uZHNuCisgICAgaWYgJ3Bhc3N3b3JkPXh4eCcgaW4gY29ubl9hdHRyOgorICAgICAgICBj b25uX2F0dHIgPSBjb25uX2F0dHIucmVwbGFjZSgncGFzc3dvcmQ9eHh4JywgJycpCisKKyAgICBp ZiBkYiAhPSAnJzoKKyAgICAgICAgY29ubl9hdHRyID0gY29ubl9hdHRyLnJlcGxhY2UoJ2RibmFt ZT1wb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYm5h bWU9ezB9Jy5mb3JtYXQoZGIpKQorICAgICMgQWRkIGFwcGxpY2F0aW9uIG5hbWUgdG8gbmV3IGNy ZWF0ZWQgcHNxbCB0ZXJtaW5hbCBpbnN0YW5jZQorICAgICMgdGhyb3VnaCBwZ0FkbWluIDQuCisg ICAgY29ubl9hdHRyID0gInswfSB7MX0iLmZvcm1hdChjb25uX2F0dHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiIGFwcGxpY2F0aW9uX25hbWU9J3BnQWRtaW40OiBwc3FsJyIp CisKKyAgICBjb25uX2F0dHJfbGlzdCA9IGxpc3QoKQorICAgIGNvbm5fYXR0cl9saXN0LmFwcGVu ZChwc3FsX3V0aWxpdHkpCisgICAgY29ubl9hdHRyX2xpc3QuYXBwZW5kKGNvbm5fYXR0cikKKyAg ICByZXR1cm4gY29ubl9hdHRyX2xpc3QKKworCitAc2lvLm9uKCdzb2NrZXRfaW5wdXQnLCBuYW1l c3BhY2U9Jy9wdHknKQorZGVmIHNvY2tldF9pbnB1dChkYXRhKToKKyAgICAiIiIKKyAgICBUaGlz IGdldCB0aGUgdXNlciBpbnB1dCB0aHJvdWdoIHNvY2tldC4KKyAgICA6cGFyYW0gZGF0YTogVXNl ciBpbnB1dCBmcm9tIHNvY2tldC4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgICMgQ2hlY2sg UFNRTCBlbmFibGVkIHNldHRpbmcgZnJvbSBjb25maWcuCisgICAgICAgIGVuYWJsZV9wc3FsID0g VHJ1ZSBpZiBjb25maWcuRU5BQkxFX1BTUUwgZWxzZSBGYWxzZQorCisgICAgICAgIGlmIHJlcXVl c3Quc2lkIGluIGFwcC5jb25maWdbJ3Nlc3Npb25zJ106CisgICAgICAgICAgICBpZiBkYXRhWydr ZXlfbmFtZSddID09ICdFbnRlcicgYW5kIGVuYWJsZV9wc3FsOgorICAgICAgICAgICAgICAgICMg SWYgdXNlciBnZXQgcHJldmlvdXMgZXhlY3V0ZWQgY29tbWFuZCBmcm9tIGhpc3RvcnkgdGhlbiBz ZXQKKyAgICAgICAgICAgICAgICAjIGN1cnJlbnQgY29tbWFuZCBhcyBwcmV2aW91cyBleGVjdXRl ZCBjb21tYW5kLgorICAgICAgICAgICAgICAgIGlmIHNlc3Npb25fbGFzdF9jbWRbcmVxdWVzdC5z aWRdWydjbWQnXSBcCisgICAgICAgICAgICAgICAgICAgICAgICBhbmQgc2Vzc2lvbl9sYXN0X2Nt ZFtyZXF1ZXN0LnNpZF1bJ2Fycm93X3VwJ106CisgICAgICAgICAgICAgICAgICAgIHVzZXJfaW5w dXQgPSBzdHIoCisgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX2xhc3RfY21kW3JlcXVl c3Quc2lkXVsnY21kJ10pLnN0cmlwKCkKKyAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9sYXN0 X2NtZFtyZXF1ZXN0LnNpZF1bJ2Fycm93X3VwJ10gPSBGYWxzZQorICAgICAgICAgICAgICAgICAg ICBzZXNzaW9uX2xhc3RfY21kW3JlcXVlc3Quc2lkXVsnY21kJ10gPSAnJworICAgICAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHVzZXJfaW5wdXQgPSBzdHIoc2Vzc2lvbl9p bnB1dFtyZXF1ZXN0LnNpZF0pLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBzZXNzaW9uX2lucHV0 X2N1cnNvcltyZXF1ZXN0LnNpZF0gPSAwCisKKyAgICAgICAgICAgICAgICAjIElmIEFMTE9XX1BT UUxfU0hFTExfQ09NTUFORFMgaXMgRmFsc2UgdGhlbiB1c2VyIGNhbid0IGV4ZWN1dGUKKyAgICAg ICAgICAgICAgICAjIFwhIG1ldGEgY29tbWFuZCB0byBydW4gc2hlbGwgY29tbWFuZHMgdGhyb3Vn aCBQU1FMIHRlcm1pbmFsLgorICAgICAgICAgICAgICAgICMgQ2hlY2sgYmVmb3JlIGV4ZWN1dGlu ZyB0aGUgdXNlciBlbnRlcmVkIGNvbW1hbmQgZG9lcyBub3QKKyAgICAgICAgICAgICAgICAjIGNv bnRhaW5zIFwhIGluIGlucHV0LgorICAgICAgICAgICAgICAgIGlzX25ld19jb25uZWN0aW9uID0g c2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1bCisgICAgICAgICAgICAgICAgICAgICdpc19u ZXdfY29ubmVjdGlvbiddCisgICAgICAgICAgICAgICAgaWYgdXNlcl9pbnB1dC5zdGFydHN3aXRo KCdcXCEnKSBhbmQgXAorICAgICAgICAgICAgICAgICAgICByZS5tYXRjaCgiXlxcXCEkIiwgdXNl cl9pbnB1dCkgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgbGVuKHVzZXJfaW5wdXQpID09IDIg YW5kIFwKKyAgICAgICAgICAgICAgICAgICAgbm90IGNvbmZpZy5BTExPV19QU1FMX1NIRUxMX0NP TU1BTkRTIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBub3QgaXNfbmV3X2Nvbm5lY3Rp b246CisKKyAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1b J2ludmFsaWRfY21kJ10gPSBUcnVlCisKKyAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFu Z2UobGVuKHNlc3Npb25faW5wdXRbcmVxdWVzdC5zaWRdKSk6CisgICAgICAgICAgICAgICAgICAg ICAgICBvcy53cml0ZShhcHAuY29uZmlnWydzZXNzaW9ucyddW3JlcXVlc3Quc2lkXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcYiBcYicuZW5jb2RlKCkpCisKKyAgICAgICAg ICAgICAgICAgICAgb3Mud3JpdGUoYXBwLmNvbmZpZ1snc2Vzc2lvbnMnXVtyZXF1ZXN0LnNpZF0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicuZW5jb2RlKCkpCisgICAgICAgICAg ICAgICAgICAgIHNlc3Npb25faW5wdXRbcmVxdWVzdC5zaWRdID0gJycKKyAgICAgICAgICAgICAg ICBlbGlmIHJlLnNlYXJjaCgiXFxcISIsIHVzZXJfaW5wdXQpIGFuZCBcCisgICAgICAgICAgICAg ICAgICAgIG5vdCBjb25maWcuQUxMT1dfUFNRTF9TSEVMTF9DT01NQU5EUyBhbmQgXAorICAgICAg ICAgICAgICAgICAgICAgICAgbm90IHNlc3Npb25fbGFzdF9jbWRbcmVxdWVzdC5zaWRdWydpc19u ZXdfY29ubmVjdGlvbiddOgorICAgICAgICAgICAgICAgICAgICBzdG9wX2V4ZWN1dGlvbiA9IFRy dWUKKyAgICAgICAgICAgICAgICAgICAgIyBDaGVjayBcISBpcyBwYXNzZWQgYXMgc3RyaW5nIG9y IG5vdC4KKyAgICAgICAgICAgICAgICAgICAgZG91YmxlX3F1b3RlX3N0cnMgPSByZS5maW5kYWxs KCciKFteIl0qKSInLCB1c2VyX2lucHV0KQorCisgICAgICAgICAgICAgICAgICAgIGlmIGRvdWJs ZV9xdW90ZV9zdHJzOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHN1Yl9zdHIgaW4gZG91 YmxlX3F1b3RlX3N0cnM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNo KCJcXFwhIiwgc3ViX3N0cik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3Bf ZXhlY3V0aW9uID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBicmVh aworCisgICAgICAgICAgICAgICAgICAgIGlmIHN0b3BfZXhlY3V0aW9uOgorICAgICAgICAgICAg ICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1bJ2ludmFsaWRfY21kJ10g PSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAjIFJlbW92ZSBhbHJlYWR5IGFkZGVkIGNv bW1hbmQgZnJvbSB0ZXJtaW5hbC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJh bmdlKGxlbih1c2VyX2lucHV0KSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3Jp dGUoYXBwLmNvbmZpZ1snc2Vzc2lvbnMnXVtyZXF1ZXN0LnNpZF0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ1xiIFxiJy5lbmNvZGUoKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICMgQWRkIEVudGVyIGV2ZW50IHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmQuCisgICAgICAg ICAgICAgICAgICAgICAgICBvcy53cml0ZShhcHAuY29uZmlnWydzZXNzaW9ucyddW3JlcXVlc3Qu c2lkXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicuZW5jb2RlKCkpCisg ICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9u X2xhc3RfY21kW3JlcXVlc3Quc2lkXVsnaW52YWxpZF9jbWQnXSA9IEZhbHNlCisgICAgICAgICAg ICAgICAgICAgICAgICBvcy53cml0ZShhcHAuY29uZmlnWydzZXNzaW9ucyddW3JlcXVlc3Quc2lk XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicuZW5jb2RlKCkpCisgICAg ICAgICAgICAgICAgZWxpZiB1c2VyX2lucHV0ID09ICdccSc6CisgICAgICAgICAgICAgICAgICAg ICMgSWYgdXNlciBlbnRlciBccSB0byB0ZXJtaW5hdGUgdGhlIFBTUUwsIGVtaXQgdGhlIG1zZyB0 bworICAgICAgICAgICAgICAgICAgICAjIG5vdGlmeSB1c2VyIGNvbm5lY3Rpb24gaXMgdGVybWlu YXRlZC4KKyAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoYXBwLmNvbmZpZ1snc2Vzc2lvbnMn XVtyZXF1ZXN0LnNpZF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicuZW5jb2Rl KCkpCisgICAgICAgICAgICAgICAgICAgIHNpby5lbWl0KCdwdHktb3V0cHV0JywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3Jlc3VsdCc6IGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J0Nvbm5lY3Rpb24gdGVybWluYXRlZCwgVE8gY3JlYXRlIG5ldyAnCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rpb24gcGxlYXNlIG9wZW4gYW5vdGhlciBwc3Fs JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgdG9vbC4nKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcic6IFRydWV9LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9Jy9wdHknLCByb29tPXJlcXVlc3Quc2lkKQorICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKGFwcC5jb25m aWdbJ3Nlc3Npb25zJ11bcmVxdWVzdC5zaWRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhWydpbnB1dCddLmVuY29kZSgpKQorICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRb cmVxdWVzdC5zaWRdID0gJycKKyAgICAgICAgICAgICAgICBzZXNzaW9uX2xhc3RfY21kW3JlcXVl c3Quc2lkXVsnaXNfbmV3X2Nvbm5lY3Rpb24nXSA9IEZhbHNlCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIGlmIGRhdGFbJ2tleV9uYW1lJ10gPT0gJ0Fycm93TGVmdCc6CisgICAg ICAgICAgICAgICAgICAgIHNlc3Npb25fbGFzdF9jbWRbcmVxdWVzdC5zaWRdWydhcnJvd19sZWZ0 X3JpZ2h0J10gPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGlmIHNlc3Npb25faW5wdXRfY3Vy c29yW3JlcXVlc3Quc2lkXSA+IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX2lu cHV0X2N1cnNvcltyZXF1ZXN0LnNpZF0gLT0gMQorCisgICAgICAgICAgICAgICAgZWxpZiBkYXRh WydrZXlfbmFtZSddID09ICdBcnJvd1JpZ2h0JzoKKyAgICAgICAgICAgICAgICAgICAgc2Vzc2lv bl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1bJ2Fycm93X2xlZnRfcmlnaHQnXSA9IFRydWUKKyAgICAg ICAgICAgICAgICAgICAgaWYgc2Vzc2lvbl9pbnB1dF9jdXJzb3JbcmVxdWVzdC5zaWRdIDwgbGVu KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRbcmVxdWVzdC5zaWRd KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRfY3Vyc29yW3JlcXVlc3Qu c2lkXSArPSAxCisKKyAgICAgICAgICAgICAgICBlbGlmIGRhdGFbJ2tleV9uYW1lJ10gPT0gJ0Fy cm93VXAnOgorICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX2xhc3RfY21kW3JlcXVlc3Quc2lk XVsnYXJyb3dfdXAnXSA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2Nt ZFtyZXF1ZXN0LnNpZF1bJ2Fycm93X2xlZnRfcmlnaHQnXSA9IEZhbHNlCisgICAgICAgICAgICAg ICAgICAgIHNlc3Npb25faW5wdXRbcmVxdWVzdC5zaWRdID0gc2Vzc2lvbl9sYXN0X2NtZFtyZXF1 ZXN0LnNpZF1bCisgICAgICAgICAgICAgICAgICAgICAgICAnY21kJ10KKyAgICAgICAgICAgICAg ICAgICAgc2Vzc2lvbl9pbnB1dF9jdXJzb3JbcmVxdWVzdC5zaWRdID0gbGVuKAorICAgICAgICAg ICAgICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1bJ2NtZCddKQorCisg ICAgICAgICAgICAgICAgZWxpZiByZXF1ZXN0LnNpZCBpbiBzZXNzaW9uX2lucHV0IGFuZCBkYXRh WworICAgICAgICAgICAgICAgICAgICAna2V5X25hbWUnXSA9PSAnQmFja3NwYWNlJyBhbmQgKAor ICAgICAgICAgICAgICAgICAgICBsZW4oc2Vzc2lvbl9pbnB1dFtyZXF1ZXN0LnNpZF0pIG9yIGxl bigKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fbGFzdF9jbWRbcmVxdWVzdC5zaWRd KSk6CisKKyAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1b J2Fycm93X2xlZnRfcmlnaHQnXSA9IFRydWUKKworICAgICAgICAgICAgICAgICAgICBpZiBzZXNz aW9uX2xhc3RfY21kW3JlcXVlc3Quc2lkXVsnY21kJ106CisgICAgICAgICAgICAgICAgICAgICAg ICBzZXNzaW9uX2lucHV0W3JlcXVlc3Quc2lkXSA9IFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXNzaW9uX2xhc3RfY21kW3JlcXVlc3Quc2lkXVsnY21kJ10KKworICAgICAgICAgICAg ICAgICAgICB1c2VyX2lucHV0ID0gbGlzdChzZXNzaW9uX2lucHV0W3JlcXVlc3Quc2lkXSkKKwor ICAgICAgICAgICAgICAgICAgICBpZiBzZXNzaW9uX2lucHV0X2N1cnNvcltyZXF1ZXN0LnNpZF0g PT0gMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMAorICAgICAgICAgICAgICAg ICAgICAgICAgc2Vzc2lvbl9pbnB1dF9jdXJzb3JbcmVxdWVzdC5zaWRdIC09IDEKKyAgICAgICAg ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlc3Npb25faW5w dXRfY3Vyc29yW3JlcXVlc3Quc2lkXSA+IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5kZXggPSAoc2Vzc2lvbl9pbnB1dF9jdXJzb3JbcmVxdWVzdC5zaWRdKSAtIDEKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX2lucHV0X2N1cnNvcltyZXF1ZXN0LnNpZF0gLT0g MQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmRleCA9IHNlc3Npb25faW5wdXRfY3Vyc29yW3JlcXVlc3Quc2lkXQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRfY3Vyc29yW3JlcXVlc3Quc2lkXSA9IDAK KworICAgICAgICAgICAgICAgICAgICBpZiBsZW4odXNlcl9pbnB1dCk6CisgICAgICAgICAgICAg ICAgICAgICAgICBkZWwgdXNlcl9pbnB1dFtpbmRleF0KKyAgICAgICAgICAgICAgICAgICAgc2Vz c2lvbl9pbnB1dFtyZXF1ZXN0LnNpZF0gPSAiIi5qb2luKHVzZXJfaW5wdXQpCisKKyAgICAgICAg ICAgICAgICAgICAgaWYgbGVuKHNlc3Npb25faW5wdXRbcmVxdWVzdC5zaWRdKSA9PSAwOgorICAg ICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9pbnB1dF9jdXJzb3JbcmVxdWVzdC5zaWRdID0g MAorICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX2xhc3RfY21kW3JlcXVlc3Quc2lkXVsnY21k J10gPSAnJworICAgICAgICAgICAgICAgIGVsaWYgcmVxdWVzdC5zaWQgaW4gc2Vzc2lvbl9pbnB1 dDoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNpZF1b J2NtZCddIGFuZCBzZXNzaW9uX2lucHV0WworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl cXVlc3Quc2lkXSA9PSAnJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRb cmVxdWVzdC5zaWRdID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fbGFz dF9jbWRbcmVxdWVzdC5zaWRdWydjbWQnXQorICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lv bl9pbnB1dF9jdXJzb3JbcmVxdWVzdC5zaWRdID0gbGVuKAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlc3Npb25faW5wdXRbcmVxdWVzdC5zaWRdKQorICAgICAgICAgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9sYXN0X2NtZFtyZXF1ZXN0LnNp ZF1bJ2Fycm93X3VwJ10gPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9s YXN0X2NtZFtyZXF1ZXN0LnNpZF1bJ2NtZCddID0gJycKKyAgICAgICAgICAgICAgICAgICAgdXNl cl9pbnB1dCA9IGxpc3Qoc2Vzc2lvbl9pbnB1dFtyZXF1ZXN0LnNpZF0pCisgICAgICAgICAgICAg ICAgICAgIHVzZXJfaW5wdXQuaW5zZXJ0KHNlc3Npb25faW5wdXRfY3Vyc29yW3JlcXVlc3Quc2lk XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnaW5wdXQnXSkK KyAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9pbnB1dFtyZXF1ZXN0LnNpZF0gPSAnJy5qb2lu KHVzZXJfaW5wdXQpCisgICAgICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRfY3Vyc29yW3Jl cXVlc3Quc2lkXSArPSAxCisgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fbGFzdF9jbWRbcmVx dWVzdC5zaWRdWydhcnJvd19sZWZ0X3JpZ2h0J10gPSBGYWxzZQorICAgICAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRfY3Vyc29yW3JlcXVlc3Quc2lk XSA9IDAKKyAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9pbnB1dFtyZXF1ZXN0LnNpZF0gPSBk YXRhWydpbnB1dCddCisgICAgICAgICAgICAgICAgICAgIHNlc3Npb25faW5wdXRfY3Vyc29yW3Jl cXVlc3Quc2lkXSArPSAxCisKKyAgICAgICAgICAgICAgICAjIFdyaXRlIHVzZXIgaW5wdXQgdG8g dGVybWluYWwgcGFyZW50IGZkLgorICAgICAgICAgICAgICAgIG9zLndyaXRlKGFwcC5jb25maWdb J3Nlc3Npb25zJ11bcmVxdWVzdC5zaWRdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFb J2lucHV0J10uZW5jb2RlKCkpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAj IERlbGV0ZSBzb2NrZXQgaWQgZnJvbSBzZXNzaW9ucy4KKyAgICAgICAgZGVsIGFwcC5jb25maWdb J3Nlc3Npb25zJ11bcmVxdWVzdC5zaWRdCisKKworQHNpby5vbigncmVzaXplJywgbmFtZXNwYWNl PScvcHR5JykKK2RlZiByZXNpemUoZGF0YSk6CisgICAgIiIiCisgICAgUmVzaXplIHRoZSBwdHkg dGVybWluYWwgYXMgcGVyIHRoZSBVSSB0ZXJtaW5hbC4KKyAgICA6cGFyYW0gZGF0YTogVUkgdGVy bWluYWwgcm93cyBhbmQgY29scyBkYXRhCisgICAgIiIiCisgICAgaWYgcmVxdWVzdC5zaWQgaW4g YXBwLmNvbmZpZ1snc2Vzc2lvbnMnXToKKyAgICAgICAgc2V0X3Rlcm1fc2l6ZShhcHAuY29uZmln WydzZXNzaW9ucyddW3JlcXVlc3Quc2lkXSwgZGF0YVsncm93cyddLAorICAgICAgICAgICAgICAg ICAgICAgIGRhdGFbJ2NvbHMnXSkKKworCitAc2lvLm9uKCdkaXNjb25uZWN0JywgbmFtZXNwYWNl PScvcHR5JykKK2RlZiBkaXNjb25uZWN0KCk6CisgICAgIiIiCisgICAgRGlzY29ubmVjdCB0aGUg c29ja2V0IGFuZCB0ZXJtaW5hdGUgdGhlIHByb2Nlc3MKKyAgICAiIiIKKyAgICBpZiByZXF1ZXN0 LnNpZCBpbiBwZGF0YToKKyAgICAgICAgIyBPbiBkaXNjb25uZWN0IHNvY2tldCBtYW51YWxseSBl eGl0IHRoZSBwc3FsIHRlcm1pbmFsIGFuZCBjbG9zZSB0aGUKKyAgICAgICAgIyBwYXJlbmQgYW5k IGNoaWxkIGZkIHRoZW4ga2lsbCB0aGUgc3VicHJvY2Vzcy4KKyAgICAgICAgb3Mud3JpdGUoYXBw LmNvbmZpZ1snc2Vzc2lvbnMnXVtyZXF1ZXN0LnNpZF0sICdccVxuJy5lbmNvZGUoKSkKKyAgICAg ICAgc2lvLnNsZWVwKDEpCisgICAgICAgIG9zLmNsb3NlKGFwcC5jb25maWdbJ3Nlc3Npb25zJ11b cmVxdWVzdC5zaWRdKQorICAgICAgICBvcy5jbG9zZShjZGF0YVtyZXF1ZXN0LnNpZF0pCisgICAg ICAgIGRlbCBhcHAuY29uZmlnWydzZXNzaW9ucyddW3JlcXVlc3Quc2lkXQorICAgICAgICBvcy5r aWxsKHBkYXRhW3JlcXVlc3Quc2lkXS5waWQsIHNpZ25hbC5TSUdTVE9QKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vdG9vbHMvcHNxbC9zdGF0aWMvanMvaW5kZXguanMgYi93ZWIvcGdhZG1pbi90 b29scy9wc3FsL3N0YXRpYy9qcy9pbmRleC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMC4uNTlhZThiNGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9w c3FsL3N0YXRpYy9qcy9pbmRleC5qcwpAQCAtMCwwICsxLDIyIEBACisvLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MjEsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK2ltcG9ydCBn ZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgdXJsX2ZvciBmcm9tICdzb3Vy Y2VzL3VybF9mb3InOworaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKK2ltcG9ydCBfIGZyb20gJ3Vu ZGVyc2NvcmUnOworaW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKK2ltcG9y dCAqIGFzIGNzcmZUb2tlbiBmcm9tICdzb3VyY2VzL2NzcmYnOworaW1wb3J0IHtpbml0aWFsaXpl fSBmcm9tICcuL3BzcWxfbW9kdWxlJzsKKworbGV0IHBnQnJvd3Nlck91dCA9IGluaXRpYWxpemUo Z2V0dGV4dCwgdXJsX2ZvciwgJCwgXywgcGdBZG1pbiwgY3NyZlRva2VuKTsKKworbW9kdWxlLmV4 cG9ydHMgPSB7CisgIHBnQnJvd3NlcjogcGdCcm93c2VyT3V0LAorfTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3BzcWwvc3RhdGljL2pzL3BzcWxfbW9kdWxlLmpzIGIvd2ViL3BnYWRt aW4vdG9vbHMvcHNxbC9zdGF0aWMvanMvcHNxbF9tb2R1bGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAuLmVjYTYyM2NkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vdG9vbHMvcHNxbC9zdGF0aWMvanMvcHNxbF9tb2R1bGUuanMKQEAgLTAsMCArMSwzMzQgQEAK Ky8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAyMSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLwor Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KK2ltcG9ydCB7IFRlcm1pbmFsIH0gZnJvbSAneHRlcm0nOworaW1wb3J0IExvY2FsRWNo b0NvbnRyb2xsZXIgZnJvbSAnbG9jYWwtZWNoby1jb250cm9sbGVyJzsKK2ltcG9ydCB7IEZpdEFk ZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tZml0JzsKK2ltcG9ydCB7IFdlYkxpbmtzQWRkb24gfSBm cm9tICd4dGVybS1hZGRvbi13ZWItbGlua3MnOworaW1wb3J0IHsgU2VhcmNoQWRkb24gfSBmcm9t ICd4dGVybS1hZGRvbi1zZWFyY2gnOworaW1wb3J0IHsgaW8gfSBmcm9tICdzb2NrZXRpbyc7Citp bXBvcnQgQWxlcnRpZnkgZnJvbSAncGdhZG1pbi5hbGVydGlmeWpzJzsKK2ltcG9ydCBjbGlwYm9h cmQgZnJvbSAnc291cmNlcy9zZWxlY3Rpb24vY2xpcGJvYXJkJzsKKworaW1wb3J0ICd3Y2RvY2tl cic7CitpbXBvcnQge2dldFJhbmRvbUludH0gZnJvbSAnc291cmNlcy91dGlscyc7CitpbXBvcnQg e2dldFRyZWVOb2RlSGllcmFyY2h5RnJvbUlkZW50aWZpZXJ9IGZyb20gJ3NvdXJjZXMvdHJlZS9w Z2FkbWluX3RyZWVfbm9kZSc7CisKKworZXhwb3J0IGZ1bmN0aW9uIHNldFBhbmVsVGl0bGUocHNx bFRvb2xQYW5lbCwgcGFuZWxUaXRsZSkgeworICBwc3FsVG9vbFBhbmVsLnRpdGxlKCc8c3BhbiB0 aXRsZT0iJytwYW5lbFRpdGxlKyciPicrcGFuZWxUaXRsZSsnPC9zcGFuPicpOworfQorCit2YXIg d2NEb2NrZXIgPSB3aW5kb3cud2NEb2NrZXI7CisKK2V4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXpl KGdldHRleHQsIHVybF9mb3IsICQsIF8sIHBnQWRtaW4sIGNzcmZUb2tlbikgeworICB2YXIgcGdC cm93c2VyID0gcGdBZG1pbi5Ccm93c2VyOworICB2YXIgdGVybWluYWwgPSBUZXJtaW5hbDsKKyAg dmFyIHBhcmVudERhdGEgPSBudWxsOworICB2YXIgbG9jYWxDb250cm9sID0gTG9jYWxFY2hvQ29u dHJvbGxlcjsKKyAgLyogUmV0dXJuIGJhY2ssIHRoaXMgaGFzIGJlZW4gY2FsbGVkIG1vcmUgdGhh biBvbmNlICovCisgIGlmIChwZ0Jyb3dzZXIucHNxbCkKKyAgICByZXR1cm4gcGdCcm93c2VyLnBz cWw7CisKKyAgLy8gQ3JlYXRlIGFuIE9iamVjdCBSZXN0b3JlIG9mIHBnQnJvd3NlciBjbGFzcwor ICBwZ0Jyb3dzZXIucHNxbCA9IHsKKyAgICBpbml0OiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMu aW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICBjc3JmVG9rZW4uc2V0UEdDU1JGVG9rZW4ocGdB ZG1pbi5jc3JmX3Rva2VuX2hlYWRlciwgcGdBZG1pbi5jc3JmX3Rva2VuKTsKKyAgICAgIC8vIERl ZmluZSB0aGUgbm9kZXMgb24gd2hpY2ggdGhlIG1lbnVzIHRvIGJlIGFwcGVhcgorICAgICAgdmFy IG1lbnVzID0gW3sKKyAgICAgICAgbmFtZTogJ3BzcWwnLAorICAgICAgICBtb2R1bGU6IHRoaXMs CisgICAgICAgIGFwcGxpZXM6IFsndG9vbHMnXSwKKyAgICAgICAgY2FsbGJhY2s6ICdwc3FsX3Rv b2wnLAorICAgICAgICBwcmlvcml0eTogMSwKKyAgICAgICAgbGFiZWw6IGdldHRleHQoJ1BTUUwg VG9vbCAoQmV0YSknKSwKKyAgICAgICAgZW5hYmxlOiB0aGlzLnBzcWxUb29sRW5hYmxlZCwKKyAg ICAgIH1dOworCisgICAgICB0aGlzLmVuYWJsZV9wc3FsX3Rvb2wgPSBwZ0FkbWluWydlbmFibGVf cHNxbCddOworICAgICAgaWYocGdBZG1pblsnZW5hYmxlX3BzcWwnXSkgeworICAgICAgICBwZ0Jy b3dzZXIuYWRkX21lbnVzKG1lbnVzKTsKKyAgICAgIH0KKworICAgICAgLy8gQ3JlYXRpbmcgYSBu ZXcgcGdCcm93c2VyIGZyYW1lIHRvIHNob3cgdGhlIGRhdGEuCisgICAgICB2YXIgcHNxbEZyYW1l VHlwZSA9IG5ldyBwZ0Jyb3dzZXIuRnJhbWUoeworICAgICAgICBuYW1lOiAnZnJtX3BzcWx0b29s JywKKyAgICAgICAgc2hvd1RpdGxlOiB0cnVlLAorICAgICAgICBpc0Nsb3NlYWJsZTogdHJ1ZSwK KyAgICAgICAgaXNQcml2YXRlOiB0cnVlLAorICAgICAgICB1cmw6ICdhYm91dDpibGFuaycsCisg ICAgICB9KTsKKworICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgLyogQ2FjaGUgbWF5IHRh a2UgdGltZSB0byBsb2FkIGZvciB0aGUgZmlyc3QgdGltZQorICAgICAgICogS2VlcCB0cnlpbmcg dGlsbCBhdmFpbGFibGUKKyAgICAgICAqLworICAgICAgbGV0IGNhY2hlSW50ZXJ2YWxJZCA9IHNl dEludGVydmFsKGZ1bmN0aW9uKCkgeworICAgICAgICBpZihwZ0Jyb3dzZXIucHJlZmVyZW5jZV92 ZXJzaW9uKCkgPiAwKSB7CisgICAgICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5n ZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgncHNxbCcpOworICAgICAgICAgIGNsZWFySW50ZXJ2 YWwoY2FjaGVJbnRlcnZhbElkKTsKKyAgICAgICAgfQorICAgICAgfSwwKTsKKworICAgICAgcGdC cm93c2VyLm9uUHJlZmVyZW5jZXNDaGFuZ2UoJ3BzcWwnLCBmdW5jdGlvbigpIHsKKyAgICAgICAg c2VsZi5wcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgn cHNxbCcpOworICAgICAgfSk7CisKKyAgICAgIC8vIExvYWQgdGhlIG5ld2x5IGNyZWF0ZWQgZnJh bWUKKyAgICAgIHBzcWxGcmFtZVR5cGUubG9hZChwZ0Jyb3dzZXIuZG9ja2VyKTsKKyAgICAgIHJl dHVybiB0aGlzOworICAgIH0sCisKKyAgICBwc3FsVG9vbEVuYWJsZWQ6IGZ1bmN0aW9uKG9iaikg eworICAgICAgLy9TYW1lIGFzIHF1ZXJ5IHRvb2wKKyAgICAgIHZhciBpc0VuYWJsZWQgPSAoKCkg PT4geworICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQob2JqKSAmJiAhXy5pc051bGwob2JqKSkg eworICAgICAgICAgIGlmICgodGhpcy5lbmFibGVfcHNxbF90b29sID09IHRydWUpICYmICgob2Jq Ll90eXBlID09ICdzZXJ2ZXInICYmIG9iai5jb25uZWN0ZWQgPT0gdHJ1ZSApfHwgb2JqLl90eXBl ID09ICdkYXRhYmFzZScpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0KKyAgICAgICAg fSBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgIH0pKCk7 CisgICAgICByZXR1cm4gaXNFbmFibGVkOworICAgIH0sCisgICAgcmV0cmlldmVBbmNlc3Rvck9m VHlwZVNlcnZlcjogZnVuY3Rpb24oaXRlbSkgeworICAgICAgbGV0IHNlcnZlckluZm9ybWF0aW9u ID0gbnVsbDsKKyAgICAgIC8vIGxldCBhY2lUcmVlSXRlbSA9IGl0ZW0gfHwgcGdCcm93c2VyLnRy ZWVNZW51LnNlbGVjdGVkKCk7CisgICAgICBsZXQgdHJlZU5vZGUgPSBwZ0Jyb3dzZXIudHJlZU1l bnUuZmluZE5vZGVCeURvbUVsZW1lbnQoaXRlbSk7CisKKyAgICAgIGlmICh0cmVlTm9kZSkgewor ICAgICAgICBsZXQgbm9kZURhdGE7CisgICAgICAgIGxldCBkYXRhYmFzZU5vZGUgPSB0cmVlTm9k ZS5hbmNlc3Rvck5vZGUoCisgICAgICAgICAgKG5vZGUpID0+IHsKKyAgICAgICAgICAgIG5vZGVE YXRhID0gbm9kZS5nZXREYXRhKCk7CisgICAgICAgICAgICByZXR1cm4gKG5vZGVEYXRhLl90eXBl ID09PSAnZGF0YWJhc2UnKTsKKyAgICAgICAgICB9CisgICAgICAgICk7CisgICAgICAgIGxldCBp c1NlcnZlck5vZGUgPSAobm9kZSkgPT4geworICAgICAgICAgIG5vZGVEYXRhID0gbm9kZS5nZXRE YXRhKCk7CisgICAgICAgICAgcmV0dXJuIG5vZGVEYXRhLl90eXBlID09PSAnc2VydmVyJzsKKyAg ICAgICAgfTsKKworICAgICAgICBpZiAoZGF0YWJhc2VOb2RlICE9PSBudWxsKSB7CisgICAgICAg ICAgaWYgKG5vZGVEYXRhLl9sYWJlbC5pbmRleE9mKCc9JykgPj0gMCkgeworICAgICAgICAgICAg dGhpcy5hbGVydGlmeS5hbGVydCgKKyAgICAgICAgICAgICAgZ2V0dGV4dCh0aGlzLmVycm9yQWxl cnRUaXRsZSksCisgICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgJ0RhdGFi YXNlcyB3aXRoID0gc3ltYm9scyBpbiB0aGUgbmFtZSBjYW5ub3QgYmUgYmFja2VkIHVwIG9yIHJl c3RvcmVkIHVzaW5nIHRoaXMgdXRpbGl0eS4nCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg ICk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChkYXRhYmFzZU5vZGUuYW55 UGFyZW50KGlzU2VydmVyTm9kZSkpCisgICAgICAgICAgICAgIHNlcnZlckluZm9ybWF0aW9uID0g bm9kZURhdGE7CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGlmICh0 cmVlTm9kZS5hbnlGYW1pbHlNZW1iZXIoaXNTZXJ2ZXJOb2RlKSkKKyAgICAgICAgICAgIHNlcnZl ckluZm9ybWF0aW9uID0gbm9kZURhdGE7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgaWYg KHNlcnZlckluZm9ybWF0aW9uID09PSBudWxsKSB7CisgICAgICAgIHRoaXMuYWxlcnRpZnkuYWxl cnQoCisgICAgICAgICAgZ2V0dGV4dCh0aGlzLmVycm9yQWxlcnRUaXRsZSksCisgICAgICAgICAg Z2V0dGV4dCgnUGxlYXNlIHNlbGVjdCBzZXJ2ZXIgb3IgY2hpbGQgbm9kZSBmcm9tIHRoZSBicm93 c2VyIHRyZWUuJykKKyAgICAgICAgKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBzZXJ2ZXJJbmZv cm1hdGlvbjsKKyAgICB9LAorICAgIHBzcWxfdG9vbDogZnVuY3Rpb24oZGF0YSwgYWNpVHJlZUlk ZW50aWZpZXIsIGdlbj1mYWxzZSkgeworICAgICAgY29uc3QgbW9kdWxlID0gJ3BhdGhzJzsKKyAg ICAgIGxldCBwcmVmZXJlbmNlX25hbWUgPSAncGdfYmluX2Rpcic7CisgICAgICBsZXQgbXNnID0g Z2V0dGV4dCgnUGxlYXNlIGNvbmZpZ3VyZSB0aGUgUG9zdGdyZVNRTCBCaW5hcnkgUGF0aCBpbiB0 aGUgUHJlZmVyZW5jZXMgZGlhbG9nLicpOworICAgICAgY29uc3Qgc2VydmVySW5mb3JtYXRpb24g PSB0aGlzLnJldHJpZXZlQW5jZXN0b3JPZlR5cGVTZXJ2ZXIoYWNpVHJlZUlkZW50aWZpZXIpOwor CisgICAgICAvLyBjb25zdCBub2RlMSA9IHBnQnJvd3Nlci50cmVlTWVudS5maW5kTm9kZUJ5RG9t RWxlbWVudChhY2lUcmVlSWRlbnRpZmllcik7CisgICAgICBpZiAoKHNlcnZlckluZm9ybWF0aW9u LnR5cGUgJiYgc2VydmVySW5mb3JtYXRpb24udHlwZSA9PT0gJ3BwYXMnKSB8fAorICAgICAgICBz ZXJ2ZXJJbmZvcm1hdGlvbi5zZXJ2ZXJfdHlwZSA9PT0gJ3BwYXMnKSB7CisgICAgICAgIHByZWZl cmVuY2VfbmFtZSA9ICdwcGFzX2Jpbl9kaXInOworICAgICAgICBtc2cgPSBnZXR0ZXh0KCdQbGVh c2UgY29uZmlndXJlIHRoZSBFREIgQWR2YW5jZWQgU2VydmVyIEJpbmFyeSBQYXRoIGluIHRoZSBQ cmVmZXJlbmNlcyBkaWFsb2cuJyk7CisgICAgICB9CisgICAgICBjb25zdCBwcmVmZXJlbmNlID0g cGdCcm93c2VyLmdldF9wcmVmZXJlbmNlKG1vZHVsZSwgcHJlZmVyZW5jZV9uYW1lKTsKKworICAg ICAgaWYgKHByZWZlcmVuY2UpIHsKKyAgICAgICAgaWYgKCFwcmVmZXJlbmNlLnZhbHVlKSB7Cisg ICAgICAgICAgQWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgnQ29uZmlndXJhdGlvbiByZXF1aXJlZCcp LCBtc2cpOworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgfSBlbHNl IHsKKyAgICAgICAgQWxlcnRpZnkuYWxlcnQoCisgICAgICAgICAgZ2V0dGV4dCh0aGlzLmVycm9y QWxlcnRUaXRsZSksCisgICAgICAgICAgZ2V0dGV4dCgnRmFpbGVkIHRvIGxvYWQgcHJlZmVyZW5j ZSAlcyBvZiBtb2R1bGUgJXMnLCBwcmVmZXJlbmNlX25hbWUsIG1vZHVsZSkKKyAgICAgICAgKTsK KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgICAgY29uc3Qgbm9kZSA9IHBnQnJv d3Nlci50cmVlTWVudS5maW5kTm9kZUJ5RG9tRWxlbWVudChhY2lUcmVlSWRlbnRpZmllcik7Cisg ICAgICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkIHx8ICFub2RlLmdldERhdGEoKSkgeworICAgICAg ICBBbGVydGlmeS5hbGVydCgKKyAgICAgICAgICBnZXR0ZXh0KCdQU1FMIEVycm9yJyksCisgICAg ICAgICAgZ2V0dGV4dCgnTm8gb2JqZWN0IHNlbGVjdGVkLicpCisgICAgICAgICk7CisgICAgICAg IHJldHVybjsKKyAgICAgIH0KKworICAgICAgcGFyZW50RGF0YSA9IGdldFRyZWVOb2RlSGllcmFy Y2h5RnJvbUlkZW50aWZpZXIuY2FsbCgKKyAgICAgICAgcGdCcm93c2VyLAorICAgICAgICBhY2lU cmVlSWRlbnRpZmllcgorICAgICAgKTsKKworICAgICAgaWYoXy5pc1VuZGVmaW5lZChwYXJlbnRE YXRhLnNlcnZlcikpIHsKKyAgICAgICAgQWxlcnRpZnkuYWxlcnQoCisgICAgICAgICAgZ2V0dGV4 dCgnUFNRTCBFcnJvcicpLAorICAgICAgICAgIGdldHRleHQoJ1BsZWFzZSBzZWxlY3QgYSBzZXJ2 ZXIvZGF0YWJhc2Ugb2JqZWN0LicpCisgICAgICAgICk7CisgICAgICAgIHJldHVybjsKKyAgICAg IH0KKworICAgICAgY29uc3QgdHJhbnNJZCA9IGdldFJhbmRvbUludCgxLCA5OTk5OTk5KTsKKwor ICAgICAgdmFyIHBhbmVsVGl0bGUgPSAnJzsKKyAgICAgIGlmIChwYXJlbnREYXRhLmRhdGFiYXNl KSB7CisgICAgICAgIHBhbmVsVGl0bGUgPSBwYXJlbnREYXRhLmRhdGFiYXNlLmxhYmVsICsgJy8n ICsgcGFyZW50RGF0YS5zZXJ2ZXIudXNlcl9uYW1lICsgJ0AnICsgcGFyZW50RGF0YS5zZXJ2ZXIu bGFiZWw7CisgICAgICB9IGVsc2UgeworICAgICAgICBwYW5lbFRpdGxlID0gcGFyZW50RGF0YS5z ZXJ2ZXIudXNlcl9uYW1lICsgJ0AnICsgcGFyZW50RGF0YS5zZXJ2ZXIubGFiZWw7CisgICAgICB9 CisgICAgICBjb25zdCBbcGFuZWxVcmwsIHBhbmVsQ2xvc2VVcmxdID0gdGhpcy5nZXRQYW5lbFVy bHModHJhbnNJZCwgcGFuZWxUaXRsZSwgcGFyZW50RGF0YSwgZ2VuKTsKKworICAgICAgbGV0IHBz cWxUb29sRm9ybSA9IGAKKyAgICAgICAgPGZvcm0gaWQ9InBzcWxUb29sRm9ybSIgYWN0aW9uPSIk e3BhbmVsVXJsfSIgbWV0aG9kPSJwb3N0Ij4KKyAgICAgICAgICA8aW5wdXQgaWQ9InRpdGxlIiBu YW1lPSJ0aXRsZSIgaGlkZGVuIC8+CisgICAgICAgICAgPGlucHV0IG5hbWU9ImNsb3NlX3VybCIg dmFsdWU9IiR7cGFuZWxDbG9zZVVybH0iIGhpZGRlbiAvPgorICAgICAgICA8L2Zvcm0+CisgICAg ICAgIDxzY3JpcHQ+CisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpdGxlIiku dmFsdWUgPSAiJHtfLmVzY2FwZShwYW5lbFRpdGxlKX0iOworICAgICAgICAgIGRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCJwc3FsVG9vbEZvcm0iKS5zdWJtaXQoKTsKKyAgICAgICAgPC9zY3JpcHQ+ CisgICAgICBgOworCisgICAgICB2YXIgb3Blbl9uZXdfdGFiID0gcGdCcm93c2VyLmdldF9wcmVm ZXJlbmNlc19mb3JfbW9kdWxlKCdicm93c2VyJykubmV3X2Jyb3dzZXJfdGFiX29wZW47CisgICAg ICBpZiAob3Blbl9uZXdfdGFiICYmIG9wZW5fbmV3X3RhYi5pbmNsdWRlcygncHNxbF90b29sJykp IHsKKyAgICAgICAgdmFyIG5ld1dpbiA9IHdpbmRvdy5vcGVuKCcnLCAnX2JsYW5rJyk7CisgICAg ICAgIG5ld1dpbi5kb2N1bWVudC53cml0ZShwc3FsVG9vbEZvcm0pOworICAgICAgICBuZXdXaW4u ZG9jdW1lbnQudGl0bGUgPSBwYW5lbFRpdGxlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLyog T24gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemF0aW9uIGZpbmQgdGhlIHByb3BlcnRpZXMgcGFuZWws CisgICAgICAgICAqIGNyZWF0ZSBuZXcgcGFuZWwgYW5kIGFkZCBpdCB0byB0aGUgZGFzaGJvYXJk IHBhbmVsLgorICAgICAgICAgKi8KKyAgICAgICAgdmFyIHByb3BlcnRpZXNQYW5lbCA9IHBnQnJv d3Nlci5kb2NrZXIuZmluZFBhbmVscygncHJvcGVydGllcycpOworICAgICAgICB2YXIgcHNxbFRv b2xQYW5lbCA9IHBnQnJvd3Nlci5kb2NrZXIuYWRkUGFuZWwoJ2ZybV9wc3FsdG9vbCcsIHdjRG9j a2VyLkRPQ0suU1RBQ0tFRCwgcHJvcGVydGllc1BhbmVsWzBdKTsKKworICAgICAgICAvLyBTZXQg cGFuZWwgdGl0bGUgYW5kIGljb24KKyAgICAgICAgc2V0UGFuZWxUaXRsZShwc3FsVG9vbFBhbmVs LCBwYW5lbFRpdGxlKTsKKyAgICAgICAgcHNxbFRvb2xQYW5lbC5pY29uKCdmYXMgZmEtdGVybWlu YWwnKTsKKyAgICAgICAgcHNxbFRvb2xQYW5lbC5mb2N1cygpOworCisgICAgICAgIC8vIExpc3Rl biBvbiB0aGUgcGFuZWwgY2xvc2VkIGV2ZW50LgorICAgICAgICAvKnBzcWxUb29sUGFuZWwub24o d2NEb2NrZXIuRVZFTlQuQ0xPU0VELCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAkLmFqYXgoewor ICAgICAgICAgICAgdXJsOiBwYW5lbENsb3NlVXJsLAorICAgICAgICAgICAgbWV0aG9kOiAnREVM RVRFJywKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Ki8KKworICAgICAgICB2YXIgb3BlblBT UUxUb29sVVJMID0gZnVuY3Rpb24oaikgeworICAgICAgICAgIC8vIGFkZCBzcGlubmVyIGVsZW1l bnQKKyAgICAgICAgICBsZXQgJHNwaW5uZXJfZWwgPQorICAgICAgICAgICAgJChgPGRpdiBjbGFz cz0icGctc3AtY29udGFpbmVyIj4KKyAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBnLXNw LWNvbnRlbnQiPgorICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CisgICAg ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBwZy1zcC1pY29uIj48L2Rp dj4KKyAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgIDwvZGl2 PgorICAgICAgICAgICAgICA8L2Rpdj5gKS5hcHBlbmRUbygkKGopLmRhdGEoJ2VtYmVkZGVkRnJh bWUnKS4kY29udGFpbmVyKTsKKworICAgICAgICAgIGxldCBpbml0X3BvbGxlcl9pZCA9IHNldElu dGVydmFsKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIGZyYW1lSW5pdGlhbGl6ZWQgPSAk KGopLmRhdGEoJ2ZyYW1lSW5pdGlhbGl6ZWQnKTsKKyAgICAgICAgICAgIGlmIChmcmFtZUluaXRp YWxpemVkKSB7CisgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW5pdF9wb2xsZXJfaWQpOwor ICAgICAgICAgICAgICB2YXIgZnJhbWUgPSAkKGopLmRhdGEoJ2VtYmVkZGVkRnJhbWUnKTsKKyAg ICAgICAgICAgICAgaWYgKGZyYW1lKSB7CisgICAgICAgICAgICAgICAgZnJhbWUub25Mb2FkZWQo KCk9PnsKKyAgICAgICAgICAgICAgICAgICRzcGlubmVyX2VsLnJlbW92ZSgpOworICAgICAgICAg ICAgICAgIH0pOworICAgICAgICAgICAgICAgIGZyYW1lLm9wZW5IVE1MKHBzcWxUb29sRm9ybSk7 CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAxMDApOworICAg ICAgICB9OworCisgICAgICAgIG9wZW5QU1FMVG9vbFVSTChwc3FsVG9vbFBhbmVsKTsKKworICAg ICAgfQorCisgICAgICAvLyAgICAgIHZhciB1cmxfcGFyYW1zID0geworICAgICAgLy8gICAgICAg ICdzaWQnOiBwYXJlbnREYXRhLnNlcnZlci5faWQsCisgICAgICAvLyAgICAgIH07CisgICAgICAv LyAgICAgIHZhciAgYmFzZVVybCA9IHVybF9mb3IoJ3BzcWwuaW5pdGlhbGl6ZScsIHVybF9wYXJh bXMpOworICAgICAgLy8KKyAgICAgIC8vICAgICAgd2luZG93Lm9wZW4oYmFzZVVybCwgJ19ibGFu aycpOworICAgIH0sCisgICAgZ2V0UGFuZWxVcmxzOiBmdW5jdGlvbih0cmFuc0lkLCBwYW5lbFRp dGxlLCBwYXJlbnREYXRhKSB7CisgICAgICBsZXQgb3BlblVybCA9IHVybF9mb3IoJ3BzcWwucGFu ZWwnLCB7CisgICAgICAgIHRyYW5zX2lkOiB0cmFuc0lkLAorICAgICAgfSk7CisKKyAgICAgIG9w ZW5VcmwgKz0gYD9zZ2lkPSR7cGFyZW50RGF0YS5zZXJ2ZXJfZ3JvdXAuX2lkfWAKKyAgICAgICAg K2Amc2lkPSR7cGFyZW50RGF0YS5zZXJ2ZXIuX2lkfWAKKyAgICAgICAgK2Amc2VydmVyX3R5cGU9 JHtwYXJlbnREYXRhLnNlcnZlci5zZXJ2ZXJfdHlwZX1gOworCisgICAgICBpZihwYXJlbnREYXRh LmRhdGFiYXNlICYmIHBhcmVudERhdGEuZGF0YWJhc2UuX2lkKSB7CisgICAgICAgIG9wZW5Vcmwg Kz0gYCZkYj0ke3BhcmVudERhdGEuZGF0YWJhc2UuX2xhYmVsfWA7CisgICAgICB9IGVsc2Ugewor ICAgICAgICBvcGVuVXJsICs9IGAmZGI9JHsnJ31gOworICAgICAgfQorCisgICAgICBsZXQgY2xv c2VVcmwgPSB1cmxfZm9yKCdwc3FsLmNsb3NlJywgeworICAgICAgICB0cmFuc19pZDogdHJhbnNJ ZCwKKyAgICAgICAgLy8gICAgICAgIHNnaWQ6IHBhcmVudERhdGEuc2VydmVyX2dyb3VwLl9pZCwK KyAgICAgICAgLy8gICAgICAgIHNpZDogcGFyZW50RGF0YS5zZXJ2ZXIuX2lkLAorICAgICAgICAv LyAgICAgICAgZGlkOiBwYXJlbnREYXRhLmRhdGFiYXNlLl9pZCwKKyAgICAgIH0pOworICAgICAg cmV0dXJuIFtvcGVuVXJsLCBjbG9zZVVybF07CisgICAgfSwKKyAgICBwc3FsX3Rlcm1pbmFsOiBm dW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBuZXcgdGVybWluYWwoeworICAgICAgICBjdXJzb3JC bGluazogdHJ1ZSwKKyAgICAgICAgbWFjT3B0aW9uSXNNZXRhOiB0cnVlLAorICAgICAgICBzY3Jv bGxiYWNrOiAxMDAwMCwKKyAgICAgIH0pOworICAgIH0sCisgICAgcHNxbF9sb2NhbF9jb250cm9s bGVyOiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBuZXcgbG9jYWxDb250cm9sKCk7CisgICAg fSwKKyAgICBwc3FsX2ZpdF9zY3JlZW46IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIG5ldyBG aXRBZGRvbigpOworICAgIH0sCisgICAgcHNxbF93ZWJfbGluazogZnVuY3Rpb24oKSB7CisgICAg ICByZXR1cm4gbmV3IFdlYkxpbmtzQWRkb24oKTsKKyAgICB9LAorICAgIHBzcWxfc2VhcmNoOiBm dW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBuZXcgU2VhcmNoQWRkb24oKTsKKyAgICB9LAorICAg IHBzcWxfc29ja2V0OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBpbygnL3B0eScsIHtwaW5n VGltZW91dDogMTIwMDAwLCBwaW5nSW50ZXJ2YWw6IDI1MDAwfSk7CisgICAgfSwKKyAgICBnZXRf cGFyZW50X2RiOiBmdW5jdGlvbigpeworICAgICAgcmV0dXJuIHBhcmVudERhdGEuc2VydmVyOwor ICAgIH0sCisgICAgX2NsaXBib2FyZDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gY2xpcGJv YXJkOworICAgIH0KKyAgfTsKKworICByZXR1cm4gcGdCcm93c2VyLnBzcWw7Cit9CisKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVtcGxhdGVzL2VkaXRvcl90ZW1wbGF0ZS5o dG1sIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZW1wbGF0ZXMvZWRpdG9yX3RlbXBsYXRlLmh0 bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmU1ZjUwYTI5Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZW1wbGF0ZXMvZWRpdG9yX3RlbXBs YXRlLmh0bWwKQEAgLTAsMCArMSwxMzcgQEAKK3slIGV4dGVuZHMgImJhc2UuaHRtbCIgJX0KK3sl IGJsb2NrIHRpdGxlICV9e3t0aXRsZX19eyUgZW5kYmxvY2sgJX0KKworeyUgYmxvY2sgY3NzX2xp bmsgJX0KKzxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Int7IHVy bF9mb3IoJ2Jyb3dzZXIuYnJvd3Nlcl9jc3MnKX19Ii8+Cit7JSBlbmRibG9jayAlfQoreyUgYmxv Y2sgYm9keSAlfQorPHN0eWxlPgorICAgIGJvZHkge3BhZGRpbmc6IDBweDt9CisgICAgeyUgaWYg aXNfZGVza3RvcF9tb2RlIGFuZCBpc19saW51eCAlfQorICAgIC5hbGVydGlmeSAuYWpzLWRpbW1l ciwuYWxlcnRpZnkgLmFqcy1tb2RhbHstd2Via2l0LXRyYW5zZm9ybTogbm9uZTt9CisgICAgLmFs ZXJ0aWZ5LW5vdGlmaWVyey13ZWJraXQtdHJhbnNmb3JtOiBub25lO30KKyAgICAuYWxlcnRpZnkt bm90aWZpZXIgLmFqcy1tZXNzYWdley13ZWJraXQtdHJhbnNmb3JtOiBub25lO30KKyAgICAuYWxl cnRpZnkgLmFqcy1kaWFsb2cuYWpzLXNoYWtley13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5vbmU7 fQorICAgIC5zcWwtZWRpdG9yLWJ1c3ktaWNvbi5mYS1wdWxzZXstd2Via2l0LWFuaW1hdGlvbjog bm9uZTt9CisgICAgeyUgZW5kaWYgJX0KKzwvc3R5bGU+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTAw JTsgaGVpZ2h0OiAxMDAlOyIgaWQ9InBzcWwtdGVybWluYWwiIGNsYXNzPSJwc3FsX3Rlcm1pbmFs Ij48L2Rpdj4KK3slIGVuZGJsb2NrICV9CisKKworeyUgYmxvY2sgaW5pdF9zY3JpcHQgJX0KK3Jl cXVpcmUoCisgICAgWydzb3VyY2VzL2dlbmVyYXRlZC9wc3FsX3Rvb2wnXSwKKyAgICBmdW5jdGlv bihwZ0Jyb3dzZXIpIHsKKyAgICAgICAgY29uc3QgdGVybSA9IHNlbGYucGdBZG1pbi5Ccm93c2Vy LnBzcWwucHNxbF90ZXJtaW5hbCgpOworCisgICAgICAgIGNvbnN0IGZpdEFkZG9uID0gc2VsZi5w Z0FkbWluLkJyb3dzZXIucHNxbC5wc3FsX2ZpdF9zY3JlZW4oKTsKKyAgICAgICAgdGVybS5sb2Fk QWRkb24oZml0QWRkb24pOworICAgICAgICBsZXQgY2xpcGJvYXJkID0gc2VsZi5wZ0FkbWluLkJy b3dzZXIucHNxbC5fY2xpcGJvYXJkKCk7CisKKyAgICAgICAgY29uc3Qgd2ViTGlua3NBZGRvbiA9 IHNlbGYucGdBZG1pbi5Ccm93c2VyLnBzcWwucHNxbF93ZWJfbGluaygpOworICAgICAgICB0ZXJt LmxvYWRBZGRvbih3ZWJMaW5rc0FkZG9uKTsKKworICAgICAgICBjb25zdCBzZWFyY2hBZGRvbiA9 IHNlbGYucGdBZG1pbi5Ccm93c2VyLnBzcWwucHNxbF9zZWFyY2goKTsKKyAgICAgICAgdGVybS5s b2FkQWRkb24oc2VhcmNoQWRkb24pOworCisgICAgICAgIHRlcm0ub3Blbihkb2N1bWVudC5nZXRF bGVtZW50QnlJZCgncHNxbC10ZXJtaW5hbCcpKTsKKyAgICAgICAgZml0QWRkb24uZml0KCkKKyAg ICAgICAgdGVybS5yZXNpemUoMTUsIDUwKQorICAgICAgICBmaXRBZGRvbi5maXQoKQorICAgICAg ICBsZXQgc2VsZWN0ZWRfdGV4dCA9ICcnOworICAgICAgICBsZXQgdXNlcl9pbnB1dCA9ICcnOwor ICAgICAgICBsZXQgaXNfcHdkID0gdHJ1ZTsKKyAgICAgICAgbGV0IGN1cnNvcl9wb3NpdGlvbiA9 IDA7CisKKyAgICAgICAgdGVybS5hdHRhY2hDdXN0b21LZXlFdmVudEhhbmRsZXIoZSA9PiB7Cisg ICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgaWYoZS50eXBlPT0n a2V5ZG93bicgJiYgZS5tZXRhS2V5ICYmKGUua2V5ID09ICd2JyB8fCBlLmtleSA9PSAnVicpKSB7 CisgICAgICAgICAgICAgICAgaWYoc2VsZWN0ZWRfdGV4dCAhPSAnJykgeworICAgICAgICAgICAg ICAgICAgICBpZiAoc2VsZWN0ZWRfdGV4dC5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICBzb2NrZXQuZW1pdCgic29ja2V0X2lucHV0IiwgeyJpbnB1dCI6IHNlbGVjdGVkX3Rl eHQsICdrZXlfbmFtZSc6IGUuY29kZX0pOworICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0 ZWRfdGV4dCA9ICcnOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgp LnRoZW4oIGNsaXBUZXh0ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX3Rl eHQgPSBjbGlwVGV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZF90ZXh0 Lmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuZW1pdCgi c29ja2V0X2lucHV0IiwgeyJpbnB1dCI6IHNlbGVjdGVkX3RleHQsICdrZXlfbmFtZSc6IGUuY29k ZX0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX3RleHQgPSAnJzsKKyAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg ICAgICAgICAgfQorCisgICAgICAgICAgICB9ZWxzZSBpZihlLnR5cGU9PSdrZXlkb3duJyAmJiBl Lm1ldGFLZXkgJiYgKGUua2V5ID09ICdjJyB8fCBlLmtleSA9PSAnQycpKSB7CisgICAgICAgICAg ICAgICAgaWYgKHRlcm0uaGFzU2VsZWN0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2Vs ZWN0ZWRfdGV4dCA9IHRlcm0uZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRfdGV4dCA9IGNsaXBib2FyZC5yZWFkVGV4 dCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKzwhLS0gICAgICAgICAgICBl bHNlIGlmIChlLnR5cGU9PSdrZXlkb3duJyAmJiBlLmtleUNvZGUgPT0gMzIpIHstLT4KKzwhLS0g ICAgICAgICAgICAgICAgdXNlcl9pbnB1dCArPSBlLmtleTstLT4KKzwhLS0gICAgICAgICAgICAg ICAgY29uc29sZS5sb2coJ1NQQUNFQkFSJyk7LS0+Cis8IS0tICAgICAgICAgICAgICAgIHNvY2tl dC5lbWl0KCJzb2NrZXRfaW5wdXQiLCB7ImlucHV0IjogZS5rZXksICdrZXlfbmFtZSc6IGUuY29k ZX0pOy0tPgorPCEtLSAgICAgICAgICAgIH0tLT4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICAgICB9KTsKKworICAgICAgICB0ZXJtLm9uS2V5KGZ1bmN0aW9uIChldikgeworICAgICAg ICAgICAgaWYgKHBnQWRtaW5bJ2FsbG93X3BzcWxfc2hlbGxfY29tbWFuZHMnXSkgeworICAgICAg ICAgICAgICAgIHNvY2tldC5lbWl0KCJzb2NrZXRfaW5wdXQiLCB7ImlucHV0IjogZXYua2V5LCAn a2V5X25hbWUnOiBldi5kb21FdmVudC5jb2RlfSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJzb2NrZXRfaW5wdXQiICsgZXYua2V5KTsKKyAgICAg ICAgICAgICAgICBzb2NrZXQuZW1pdCgic29ja2V0X2lucHV0IiwgeyJpbnB1dCI6IGV2LmtleSwg J2tleV9uYW1lJzogZXYuZG9tRXZlbnQuY29kZX0pOworICAgICAgICAgICAgfQorICAgICAgICB9 KTsKKworICAgICAgICBjb25zdCBzb2NrZXQgPSBzZWxmLnBnQWRtaW4uQnJvd3Nlci5wc3FsLnBz cWxfc29ja2V0KCk7CisKKyAgICAgICAgc29ja2V0Lm9uKCJwdHktb3V0cHV0IiwgZnVuY3Rpb24o ZGF0YSl7CisgICAgICAgICAgICBpZihkYXRhLmVycm9yKSB7CisgICAgICAgICAgICAgICAgdGVy bS53cml0ZSgnXHJcbicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVybS53cml0ZShk YXRhLnJlc3VsdCk7CisgICAgICAgICAgICBpZihkYXRhLmVycm9yKSB7CisgICAgICAgICAgICAg ICAgdGVybS53cml0ZSgnXHJcbicpOworICAgICAgICAgICAgfQorICAgICAgICB9KQorCisgICAg ICAgIHNvY2tldC5vbigiY29ubmVjdCIsICgpID0+IHsKKyAgICAgICAgICAgIGlmKCd7e2lzX2Vu YWJsZX19JyA9PSAnVHJ1ZScpeworICAgICAgICAgICAgICAgIHNvY2tldC5lbWl0KCdzdGFydF9w cm9jZXNzJywgeyJzaWQiOiB7e3NpZH19LCAiZGIiOiAne3tkYn19JywgJ3N0eXBlJzogJ3t7c2Vy dmVyX3R5cGV9fScgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaXRUb3NjcmVlbigp OworICAgICAgICB9KTsKKworICAgICAgICBzb2NrZXQub24oImNvbm5fZXJyb3IiLCAocmVzcG9u c2UpID0+IHsKKyAgICAgICAgICAgIHRlcm0ud3JpdGUocmVzcG9uc2UuZXJyb3IpOworICAgICAg ICAgICAgZml0VG9zY3JlZW4oKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgc29ja2V0Lm9uKCJj b25uX25vdF9hbGxvdyIsICgpID0+IHsKKyAgICAgICAgICAgIHRlcm0ud3JpdGUoJ1BTUUwgY29u bmVjdGlvbiBub3QgYWxsb3dlZCcpOworICAgICAgICAgICAgZml0VG9zY3JlZW4oKTsKKyAgICAg ICAgfSk7CisKKyAgICAgICAgZnVuY3Rpb24gZml0VG9zY3JlZW4oKXsKKyAgICAgICAgICAgIGZp dEFkZG9uLmZpdCgpCisgICAgICAgICAgICBzb2NrZXQuZW1pdCgicmVzaXplIiwgeyJjb2xzIjog dGVybS5jb2xzLCAicm93cyI6IHRlcm0ucm93c30pCisgICAgICAgIH0KKworICAgICAgICBmdW5j dGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0X21zKSB7CisgICAgICAgICAgICBsZXQgdGltZW91dAor ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgICAgICAgICAgICAgY29u c3QgY29udGV4dCA9IHRoaXMKKyAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpCisg ICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IGZ1bmMuYXBwbHkoY29udGV4 dCwgYXJncyksIHdhaXRfbXMpCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBj b25zdCB3YWl0X21zID0gNTA7OworICAgICAgICB3aW5kb3cub25yZXNpemUgPSBkZWJvdW5jZShm aXRUb3NjcmVlbiwgd2FpdF9tcykKKyAgICB9KTsKK3slIGVuZGJsb2NrICV9CisKKwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3BzcWwvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAuLmU2OWRlMjliCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9wc3Fs L3Rlc3RzL3BzcWxfdGVzdF9kYXRhLmpzb24gYi93ZWIvcGdhZG1pbi90b29scy9wc3FsL3Rlc3Rz L3BzcWxfdGVzdF9kYXRhLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAu LjliMmNmYWY1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0 cy9wc3FsX3Rlc3RfZGF0YS5qc29uCkBAIC0wLDAgKzEsMTc0IEBACit7CisgICJwc3FsX3VzZXJf aW5wdXQiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRW50ZXIgU2VsZWN0IDE7IiwKKyAgICAg ICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFs c2UsCisgICAgICAiaW5wdXRfY21kIjogInNlbGVjdCAxOyIsCisgICAgICAibW9ja19kYXRhIjog eworCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJFbnRlciBCYWNrc3BhY2UiLAorICAgICAgImlzX3Bvc2l0 aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAg ICJpbnB1dF9jbWQiOiAic2VsZWN0IDE7IiwKKyAgICAgICJpc19iYWNrc3BhY2UiOiB0cnVlLAor ICAgICAgIm1vY2tfZGF0YSI6IHsKKworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjog eworICAgICAgfQorICAgIH0seworICAgICAgIm5hbWUiOiAiRW50ZXIgQmFja3NwYWNlIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAiaW5wdXRfY21kIjogInNlbGVjdCAxOyIsCisgICAgICAiaXNfYmFja3Nw YWNlIjogdHJ1ZSwKKyAgICAgICJtb3ZlX2N1cnNvcl91cCI6IHRydWUsCisgICAgICAibW9ja19k YXRhIjogeworCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICB9Cisg ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFbnRlciBBcnJvd1VwIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisg ICAgICAiaW5wdXRfY21kIjogInNlbGVjdCAxOyIsCisgICAgICAiaXNfYXJyb3dVcCI6IHRydWUs CisgICAgICAibW9ja19kYXRhIjogeworCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFbnRlciBBcnJvd1Vw IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAiaW5wdXRfY21kIjogInNlbGVjdCAxOyIsCisgICAgICAiaXNf YXJyb3dVcCI6IHRydWUsCisgICAgICAiaXNfaGlzdG9yeSI6IHRydWUsCisgICAgICAibW9ja19k YXRhIjogeworCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICB9Cisg ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFbnRlciBBcnJvd0xlZnQiLAorICAgICAgImlz X3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwK KyAgICAgICJpbnB1dF9jbWQiOiAic2VsZWN0IDE7IiwKKyAgICAgICJpc19hcnJvd0xlZnQiOiB0 cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9k YXRhIjogeworICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRW50ZXIgQXJy b3dSaWdodCIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2lu Z19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgImlucHV0X2NtZCI6ICJzZWxlY3QgMTsiLAorICAg ICAgImlzX2Fycm93UmlnaHQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKworICAgICAg fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgfQorICAgIH0seworICAgICAgIm5h bWUiOiAiUmVhZCBwcmV2aW91cyBleGVjdXRlZCBjb21tYW5kIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAi aW5wdXRfY21kIjogInNlbGVjdCAxOyIsCisgICAgICAiaXNfYXJyb3dSaWdodCI6IHRydWUsCisg ICAgICAibW92ZV9jdXJzb3JfcmlnaHQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKwor ICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiTWV0YSBjb21tYW5kIFxcISBub3QgYWxsb3dlZCIsCisgICAgICAi aXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNl LAorICAgICAgImlucHV0X2NtZCI6ICJcXCEiLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKworICAg ICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiTWV0YSBjb21tYW5kIFxcISB3aXRoIG90aGVyIGNtZCBub3QgYWxsb3dl ZCIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgImlucHV0X2NtZCI6ICJcXCEgbHMiLAorICAgICAgIm1vY2tf ZGF0YSI6IHsKKworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgfQor ICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVmFsaWQgY29tbWFuZHMiLAorICAgICAgImlz X3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwK KyAgICAgICJpbnB1dF9jbWQiOiAic2VsZWN0IFwiXFwhXCIiLAorICAgICAgIm1vY2tfZGF0YSI6 IHsKKworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgfQorICAgIH0s CisgICAgeworICAgICAgIm5hbWUiOiAiRXhpc3QgcHNxbCB0ZXJtaW5hbCBieSB1c2luZyBcXHEi LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWly ZWQiOiBmYWxzZSwKKyAgICAgICJpbnB1dF9jbWQiOiAiXFxxIiwKKyAgICAgICJtb2NrX2RhdGEi OiB7CisKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgIH0KKyAgICB9 CisgIF0sCisgICJyZXNpemVfdGVybWluYWwiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiUmVz aXplIHBzcWwgdGVybWluYWwgYXMgcGVyIFVJLiIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6 IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgImlucHV0X2Rh dGEiOiAgeworICAgICAgICAiY29scyI6IDE0MSwKKyAgICAgICAgInJvd3MiOiAzOQorICAgICAg fSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJiYWNrZW5kX3Rhc2siOiBbCisgICAgewor ICAgICAgIm5hbWUiOiAiQmFja2VuZCBUYXNrIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0Ijog dHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAiaW5wdXRfY21k IjogIlNlbGVjdCAxOyIsCisgICAgICAiaXNfYmFja2VuZF90YXNrIjogdHJ1ZSwKKyAgICAgICJt b2NrX2RhdGEiOiB7CisgICAgICAgICJpc190ZXN0IjogdHJ1ZQorICAgICAgfSwKKyAgICAgICJl eHBlY3RlZF9kYXRhIjogeworICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy90ZXN0X2JhY2tlbmRfdGFzay5weSBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3BzcWwvdGVzdHMvdGVzdF9iYWNrZW5kX3Rhc2sucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAuLjk5MDczYzBhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vdG9vbHMvcHNxbC90ZXN0cy90ZXN0X2JhY2tlbmRfdGFzay5weQpAQCAtMCwwICsxLDg4 IEBACitpbXBvcnQgdXVpZAoraW1wb3J0IGNvbmZpZworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0 aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdf ZGF0YQorZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0 aWxzCitmcm9tIHBnQWRtaW40IGltcG9ydCBhcHAKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgcHNx bF91dGlscworZnJvbSAuLi4uIGltcG9ydCBzb2NrZXRpbworCisKK2NsYXNzIFBTUUxCYWNrZW5k KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2Vu YXJpb3MoJ2JhY2tlbmRfdGFzaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBzcWxfdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAg ICAgICAgc2VsZi5kYl9uYW1lID0gInBzcWx0ZXN0ZGJfezB9Ii5mb3JtYXQoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKKyAgICAgICAgZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdCisgICAgICAgIHNlbGYuZGlkID0gZGF0YWJhc2VfaW5mb1siZGJfaWQiXQor ICAgICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVy X2lkIl0KKyAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbInNlcnZlcl9ncm91cCJdCisg ICAgICAgIGNvbmZpZy5FTkFCTEVfUFNRTCA9IFRydWUKKyAgICAgICAgc2VsZi5zZXJ2ZXJfY29u ID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2lkKQorCisgICAgZGVm IHJ1blRlc3Qoc2VsZik6CisKKyAgICAgICAgIyBGZXRjaCBmbGFzayBjbGllbnQgdG8gYWNjZXNz IGN1cnJlbnQgdXNlciBhbmQgb3RoZXIgY29va2llcy4KKyAgICAgICAgZmxhc2tfY2xpZW50ID0g YXBwLnRlc3RfY2xpZW50KCkKKyAgICAgICAgZmxhc2tfY2xpZW50LmdldCgnL3Nlc3Npb24nKQor ICAgICAgICBzZWxmLnRlc3RfY2xpZW50ID0gc29ja2V0aW8udGVzdF9jbGllbnQoYXBwLCBuYW1l c3BhY2U9Jy9wdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmxhc2tfdGVzdF9jbGllbnQ9Zmxhc2tfY2xpZW50KQorICAgICAgICBzZWxmLmFzc2Vy dFRydWUoc2VsZi50ZXN0X2NsaWVudC5pc19jb25uZWN0ZWQoJy9wdHknKSkKKyAgICAgICAgcmVj ZWl2ZWQgPSBzZWxmLnRlc3RfY2xpZW50LmdldF9yZWNlaXZlZCgnL3B0eScpCisKKyAgICAgICAg YXNzZXJ0IHJlY2VpdmVkWzBdWyduYW1lJ10gPT0gJ2Nvbm5lY3RlZCcKKyAgICAgICAgYXNzZXJ0 IHJlY2VpdmVkWzBdWydhcmdzJ11bMF1bJ3NpZCddICE9ICcnCisKKyAgICAgICAgZGF0YSA9IHsK KyAgICAgICAgICAgICdzaWQnOiBzZWxmLnNpZCwKKyAgICAgICAgICAgICdkYic6ICdwb3N0Z3Jl cycsCisgICAgICAgICAgICAncHdkJzogc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAg ICAgICAgICAndXNlcic6IHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgJ2lz X3Rlc3QnOiBUcnVlLAorICAgICAgICAgICAgJ2NvdW50JzogMAorICAgICAgICB9CisKKyAgICAg ICAgc2VsZi50ZXN0X2NsaWVudC5lbWl0KCdzdGFydF9wcm9jZXNzJywgZGF0YSwgbmFtZXNwYWNl PScvcHR5JykKKyAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5nZXRfcmVjZWl2ZWQoJy9wdHknKQor CisgICAgICAgIGZvciBwIGluIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddOgorICAgICAgICAg ICAgaW5wdXRfZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAnaW5wdXQnOiBwLAorICAgICAgICAg ICAgICAgICdrZXlfbmFtZSc6ICdLZXl7MH0nLmZvcm1hdChwKQorICAgICAgICAgICAgfQorICAg ICAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5lbWl0KCdzb2NrZXRfaW5wdXQnLCBpbnB1dF9kYXRh LCBuYW1lc3BhY2U9Jy9wdHknKQorICAgICAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5nZXRfcmVj ZWl2ZWQoJy9wdHknKQorCisgICAgICAgIGlucHV0X2RhdGEgPSB7CisgICAgICAgICAgICAnaW5w dXQnOiAnXFxuJywKKyAgICAgICAgICAgICdrZXlfbmFtZSc6ICdFbnRlcicKKyAgICAgICAgfQor ICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3NvY2tldF9pbnB1dCcsIGlucHV0X2RhdGEs IG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgIHNlbGYudGVzdF9jbGllbnQuZ2V0X3JlY2VpdmVk KCcvcHR5JykKKworICAgICAgICBmb3IgaXAgaW4gc2VsZi5pbnB1dF9jbWQ6CisgICAgICAgICAg ICBpbnB1dF9kYXRhID0geworICAgICAgICAgICAgICAgICdpbnB1dCc6IGlwLAorICAgICAgICAg ICAgICAgICdrZXlfbmFtZSc6ICdLZXl7MH0nLmZvcm1hdChpcCkKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIHNlbGYudGVzdF9jbGllbnQuZW1pdCgnc29ja2V0X2lucHV0JywgaW5wdXRfZGF0 YSwgbmFtZXNwYWNlPScvcHR5JykKKyAgICAgICAgICAgIHNlbGYudGVzdF9jbGllbnQuZ2V0X3Jl Y2VpdmVkKCcvcHR5JykKKworICAgICAgICBpbnB1dF9kYXRhID0geworICAgICAgICAgICAgJ2lu cHV0JzogJ1xcbicsCisgICAgICAgICAgICAna2V5X25hbWUnOiAnRW50ZXInCisgICAgICAgIH0K KyAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5lbWl0KCdzb2NrZXRfaW5wdXQnLCBpbnB1dF9kYXRh LCBuYW1lc3BhY2U9Jy9wdHknKQorICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmdldF9yZWNlaXZl ZCgnL3B0eScpCisgICAgICAgIHNlbGYudGVzdF9jbGllbnQuZGlzY29ubmVjdChuYW1lc3BhY2U9 Jy9wdHknKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBjb25uZWN0aW9uID0g dXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy WydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0J10pCisgICAgICAgIHV0aWxzLmRyb3Bf ZGF0YWJhc2UoY29ubmVjdGlvbiwgc2VsZi5kYl9uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvcHNxbC90ZXN0cy90ZXN0X3BhbmVsLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNx bC90ZXN0cy90ZXN0X3BhbmVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw Li44MzQ4MDY4MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVz dHMvdGVzdF9wYW5lbC5weQpAQCAtMCwwICsxLDM1IEBACitpbXBvcnQgdXVpZAoraW1wb3J0IHJh bmRvbQorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVz c2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQorCisKK2NsYXNzIFBTUUxQYW5lbChC YXNlVGVzdEdlbmVyYXRvcik6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYu ZGJfbmFtZSA9ICJwc3FsdGVzdGRiX3swfSIuZm9ybWF0KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CisgICAgICAgIHNlbGYuc2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2 ZXJfaWQiXQorICAgICAgICBzZWxmLmRpZCA9IHV0aWxzLmNyZWF0ZV9kYXRhYmFzZShzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lKQorICAgICAgICBzZWxmLnNnaWQgPSBjb25maWdfZGF0YVsic2Vy dmVyX2dyb3VwIl0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICB0cmFuc19pZCA9 IHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpCisgICAgICAgIHVybCA9ICcvcHNxbC9wYW5lbC97 dHJhbnNfaWR9P3NnaWQ9e3NnaWR9JnNpZD17c2lkfSZzZXJ2ZXJfdHlwZT1wZycgXAorICAgICAg ICAgICAgICAnJmRiPXtkYl9uYW1lfScuXAorICAgICAgICAgICAgZm9ybWF0KHRyYW5zX2lkPXRy YW5zX2lkLCBzZ2lkPXNlbGYuc2dpZCwgc2lkPXNlbGYuc2lkLAorICAgICAgICAgICAgICAgICAg IGRiX25hbWU9c2VsZi5kYl9uYW1lKQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu cG9zdCgKKyAgICAgICAgICAgIHVybCwgZGF0YT17InRpdGxlIjogInBhbmVsX3RpdGxlIn0sCisg ICAgICAgICAgICBjb250ZW50X3R5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl ZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdl dF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFz c3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlclsncG9ydCddKQorICAgICAgICB1dGlscy5kcm9wX2RhdGFiYXNl KGNvbm5lY3Rpb24sIHNlbGYuZGJfbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xz L3BzcWwvdGVzdHMvdGVzdF9wc3FsX2Rpc2FibGVkLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNx bC90ZXN0cy90ZXN0X3BzcWxfZGlzYWJsZWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAuLjMyZWFhNjIzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMv cHNxbC90ZXN0cy90ZXN0X3BzcWxfZGlzYWJsZWQucHkKQEAgLTAsMCArMSwzNiBAQAoraW1wb3J0 IHV1aWQKK2ltcG9ydCBjb25maWcKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9k aWN0Citmcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKKyMgZnJv bSBmbGFzayBpbXBvcnQgY3VycmVudF9hcHAgYXMgYXBwCisKK2Zyb20gcGdBZG1pbjQgaW1wb3J0 IGFwcAorZnJvbSAuLi4uIGltcG9ydCBzb2NrZXRpbworCisKK2NsYXNzIFBTUUxTb2NrZXREaXNh YmxlZChCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBz ZWxmLmRiX25hbWUgPSAicHNxbHRlc3RkYl97MH0iLmZvcm1hdChzdHIodXVpZC51dWlkNCgpKVsx OjhdKQorICAgICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsi c2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kaWQgPSB1dGlscy5jcmVhdGVfZGF0YWJhc2Uoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSkKKyAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFb InNlcnZlcl9ncm91cCJdCisgICAgICAgIGNvbmZpZy5FTkFCTEVfUFNRTCA9IEZhbHNlCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgc2VsZi50ZXN0X2NsaWVudCA9IHNvY2tldGlv LnRlc3RfY2xpZW50KGFwcCwgbmFtZXNwYWNlPScvcHR5JykKKyAgICAgICAgc2VsZi5hc3NlcnRU cnVlKHNlbGYudGVzdF9jbGllbnQuaXNfY29ubmVjdGVkKCcvcHR5JykpCisgICAgICAgIHJlY2Vp dmVkID0gc2VsZi50ZXN0X2NsaWVudC5nZXRfcmVjZWl2ZWQoJy9wdHknKQorICAgICAgICBwcmlu dCgicmVjZWl2ZWQ6IiwgcmVjZWl2ZWQpCisgICAgICAgIGFzc2VydCByZWNlaXZlZFswXVsnbmFt ZSddID09ICdjb25uX25vdF9hbGxvdycKKyAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5kaXNjb25u ZWN0KG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi50ZXN0 X2NsaWVudC5pc19jb25uZWN0ZWQoJy9wdHknKSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToK KyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVy WydkYiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9ydCdd KQorICAgICAgICB1dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sIHNlbGYuZGJfbmFtZSkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVzdHMvdGVzdF9wc3FsX2lucHV0 LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy90ZXN0X3BzcWxfaW5wdXQucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjhmZTBiNDdhCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy90ZXN0X3BzcWxfaW5wdXQucHkKQEAg LTAsMCArMSwxNTkgQEAKK2ltcG9ydCB1dWlkCitpbXBvcnQgY29uZmlnCitmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0 aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1w b3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBh cyBzZXJ2ZXJfdXRpbHMKK2Zyb20gcGdBZG1pbjQgaW1wb3J0IGFwcAorZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBwc3FsX3V0aWxzCitmcm9tIC4uLi4gaW1wb3J0IHNvY2tldGlvCisKKworY2xhc3Mg UFNRTElucHV0KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5l cmF0ZV9zY2VuYXJpb3MoJ3BzcWxfdXNlcl9pbnB1dCcsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBzcWxfdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRV cChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gInBzcWx0ZXN0ZGJfezB9Ii5mb3JtYXQo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCisgICAgICAgIHNlbGYuZGlkID0gZGF0YWJhc2VfaW5m b1siZGJfaWQiXQorICAgICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJd Wy0xXVsic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbInNlcnZl cl9ncm91cCJdCisgICAgICAgIGNvbmZpZy5FTkFCTEVfUFNRTCA9IFRydWUKKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2lk KQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisKKyAgICAgICAgIyBGZXRjaCBmbGFzayBjbGll bnQgdG8gYWNjZXNzIGN1cnJlbnQgdXNlciBhbmQgb3RoZXIgY29va2llcy4KKyAgICAgICAgZmxh c2tfY2xpZW50ID0gYXBwLnRlc3RfY2xpZW50KCkKKyAgICAgICAgZmxhc2tfY2xpZW50LmdldCgn L3Nlc3Npb24nKQorICAgICAgICBzZWxmLnRlc3RfY2xpZW50ID0gc29ja2V0aW8udGVzdF9jbGll bnQoYXBwLCBuYW1lc3BhY2U9Jy9wdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmxhc2tfdGVzdF9jbGllbnQ9Zmxhc2tfY2xpZW50KQorICAgICAg ICBzZWxmLmFzc2VydFRydWUoc2VsZi50ZXN0X2NsaWVudC5pc19jb25uZWN0ZWQoJy9wdHknKSkK KyAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLnRlc3RfY2xpZW50LmdldF9yZWNlaXZlZCgnL3B0eScp CisKKyAgICAgICAgYXNzZXJ0IHJlY2VpdmVkWzBdWyduYW1lJ10gPT0gJ2Nvbm5lY3RlZCcKKyAg ICAgICAgYXNzZXJ0IHJlY2VpdmVkWzBdWydhcmdzJ11bMF1bJ3NpZCddICE9ICcnCisKKyAgICAg ICAgZGF0YSA9IHsKKyAgICAgICAgICAgICdzaWQnOiBzZWxmLnNpZCwKKyAgICAgICAgICAgICdk Yic6ICdwb3N0Z3JlcycsCisgICAgICAgICAgICAncHdkJzogc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10sCisgICAgICAgICAgICAndXNlcic6IHNlbGYuc2VydmVyWyd1c2VybmFtZSddCisgICAg ICAgIH0KKworICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3N0YXJ0X3Byb2Nlc3MnLCBk YXRhLCBuYW1lc3BhY2U9Jy9wdHknKQorICAgICAgICByZWNlaXZlZCA9IHNlbGYudGVzdF9jbGll bnQuZ2V0X3JlY2VpdmVkKCcvcHR5JykKKyAgICAgICAgcHJpbnQoInJlY2VpdmVkIHZhbHVlczog IiwgcmVjZWl2ZWQpCisKKyAgICAgICAgZm9yIHAgaW4gc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3Jk J106CisgICAgICAgICAgICBpbnB1dF9kYXRhID0geworICAgICAgICAgICAgICAgICdpbnB1dCc6 IHAsCisgICAgICAgICAgICAgICAgJ2tleV9uYW1lJzogJ0tleXswfScuZm9ybWF0KHApCisgICAg ICAgICAgICB9CisgICAgICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3NvY2tldF9pbnB1 dCcsIGlucHV0X2RhdGEsIG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgICAgICByZWNlaXZlZCA9 IHNlbGYudGVzdF9jbGllbnQuZ2V0X3JlY2VpdmVkKCcvcHR5JykKKyAgICAgICAgICAgIHByaW50 KCJ1c2VyIEkvUDo6ICIsIHJlY2VpdmVkKQorCisgICAgICAgIGlucHV0X2RhdGEgPSB7CisgICAg ICAgICAgICAnaW5wdXQnOiAnXFxuJywKKyAgICAgICAgICAgICdrZXlfbmFtZSc6ICdFbnRlcicK KyAgICAgICAgfQorICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3NvY2tldF9pbnB1dCcs IGlucHV0X2RhdGEsIG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgIHJlY2VpdmVkID0gc2VsZi50 ZXN0X2NsaWVudC5nZXRfcmVjZWl2ZWQoJy9wdHknKQorCisgICAgICAgIGZvciBpcCBpbiBzZWxm LmlucHV0X2NtZDoKKyAgICAgICAgICAgIGlucHV0X2RhdGEgPSB7CisgICAgICAgICAgICAgICAg J2lucHV0JzogaXAsCisgICAgICAgICAgICAgICAgJ2tleV9uYW1lJzogJ0tleXswfScuZm9ybWF0 KGlwKQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5lbWl0KCdz b2NrZXRfaW5wdXQnLCBpbnB1dF9kYXRhLCBuYW1lc3BhY2U9Jy9wdHknKQorICAgICAgICAgICAg c2VsZi50ZXN0X2NsaWVudC5nZXRfcmVjZWl2ZWQoJy9wdHknKQorCisgICAgICAgIGlmIGhhc2F0 dHIoc2VsZiwgJ2lzX2JhY2tzcGFjZScpIGFuZCBzZWxmLmlzX2JhY2tzcGFjZToKKyAgICAgICAg ICAgIGlmIGhhc2F0dHIoc2VsZiwgJ21vdmVfY3Vyc29yX3VwJykgYW5kIHNlbGYubW92ZV9jdXJz b3JfdXA6CisgICAgICAgICAgICAgICAgaW5wdXRfZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAg ICAgJ2lucHV0JzogJycsCisgICAgICAgICAgICAgICAgICAgICdrZXlfbmFtZSc6ICdBcnJvd1Vw JworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVt aXQoJ3NvY2tldF9pbnB1dCcsIGlucHV0X2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5hbWVzcGFjZT0nL3B0eScpCisKKyAgICAgICAgICAgIGZvciBpcCBpbiBz ZWxmLmlucHV0X2NtZDoKKyAgICAgICAgICAgICAgICBpbnB1dF9kYXRhID0geworICAgICAgICAg ICAgICAgICAgICAnaW5wdXQnOiBpcCwKKyAgICAgICAgICAgICAgICAgICAgJ2tleV9uYW1lJzog J0JhY2tzcGFjZScKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VsZi50ZXN0 X2NsaWVudC5lbWl0KCdzb2NrZXRfaW5wdXQnLCBpbnB1dF9kYXRhLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9Jy9wdHknKQorICAgICAgICAgICAgICAg IHNlbGYudGVzdF9jbGllbnQuZ2V0X3JlY2VpdmVkKCcvcHR5JykKKworICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICdpc19hcnJvd1VwJykgYW5kIHNlbGYuaXNfYXJyb3dVcDoKKyAgICAgICAgICAg IGlmIGhhc2F0dHIoc2VsZiwgJ2lzX2hpc3RvcnknKSBhbmQgc2VsZi5pc19oaXN0b3J5OgorICAg ICAgICAgICAgICAgIGZvciBpcCBpbiBzZWxmLmlucHV0X2NtZDoKKyAgICAgICAgICAgICAgICAg ICAgaW5wdXRfZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dCc6IGlwLAor ICAgICAgICAgICAgICAgICAgICAgICAgJ2tleV9uYW1lJzogJ0tleXswfScuZm9ybWF0KGlwKQor ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9jbGll bnQuZW1pdCgnc29ja2V0X2lucHV0JywgaW5wdXRfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgICAgICAgICAg ICAgIHNlbGYudGVzdF9jbGllbnQuZ2V0X3JlY2VpdmVkKCcvcHR5JykKKworICAgICAgICAgICAg aW5wdXRfZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAnaW5wdXQnOiAnJywKKyAgICAgICAgICAg ICAgICAna2V5X25hbWUnOiAnQXJyb3dVcCcKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNl bGYudGVzdF9jbGllbnQuZW1pdCgnc29ja2V0X2lucHV0JywgaW5wdXRfZGF0YSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9Jy9wdHknKQorICAgICAgICAgICAg c2VsZi50ZXN0X2NsaWVudC5nZXRfcmVjZWl2ZWQoJy9wdHknKQorCisgICAgICAgIGlmIGhhc2F0 dHIoc2VsZiwgJ2lzX2Fycm93TGVmdCcpIGFuZCBzZWxmLmlzX2Fycm93TGVmdDoKKyAgICAgICAg ICAgIGZvciBpcCBpbiBzZWxmLmlucHV0X2NtZDoKKyAgICAgICAgICAgICAgICBpbnB1dF9kYXRh ID0geworICAgICAgICAgICAgICAgICAgICAnaW5wdXQnOiBpcCwKKyAgICAgICAgICAgICAgICAg ICAgJ2tleV9uYW1lJzogJ0Fycm93TGVmdCcKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgc2VsZi50ZXN0X2NsaWVudC5lbWl0KCdzb2NrZXRfaW5wdXQnLCBpbnB1dF9kYXRhLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9Jy9wdHknKQor ICAgICAgICAgICAgICAgIHNlbGYudGVzdF9jbGllbnQuZ2V0X3JlY2VpdmVkKCcvcHR5JykKKwor ICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdpc19hcnJvd1JpZ2h0JykgYW5kIHNlbGYuaXNfYXJy b3dSaWdodDoKKyAgICAgICAgICAgIGZvciBpcCBpbiBzZWxmLmlucHV0X2NtZDoKKyAgICAgICAg ICAgICAgICBpbnB1dF9kYXRhID0geworICAgICAgICAgICAgICAgICAgICAnaW5wdXQnOiBpcCwK KyAgICAgICAgICAgICAgICAgICAgJ2tleV9uYW1lJzogJ0Fycm93UmlnaHQnCisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIHNlbGYudGVzdF9jbGllbnQuZW1pdCgnc29ja2V0X2lu cHV0JywgaW5wdXRfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmFtZXNwYWNlPScvcHR5JykKKyAgICAgICAgICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmdldF9y ZWNlaXZlZCgnL3B0eScpCisKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ21vdmVfY3Vy c29yX3JpZ2h0JykgYW5kIHNlbGYuaXNfYXJyb3dSaWdodDoKKyAgICAgICAgICAgICAgICBmb3Ig aSBpbiByYW5nZSgyKToKKyAgICAgICAgICAgICAgICAgICAgaW5wdXRfZGF0YSA9IHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICdpbnB1dCc6ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAg J2tleV9uYW1lJzogJ0Fycm93TGVmdCcKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3NvY2tldF9pbnB1dCcsIGlucHV0X2Rh dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9 Jy9wdHknKQorICAgICAgICAgICAgICAgIGlucHV0X2RhdGEgPSB7CisgICAgICAgICAgICAgICAg ICAgICdpbnB1dCc6ICcnLAorICAgICAgICAgICAgICAgICAgICAna2V5X25hbWUnOiAnQXJyb3dS aWdodCcKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2NsaWVu dC5lbWl0KCdzb2NrZXRfaW5wdXQnLCBpbnB1dF9kYXRhLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9Jy9wdHknKQorCisgICAgICAgIGlucHV0X2RhdGEg PSB7CisgICAgICAgICAgICAnaW5wdXQnOiAnXFxuJywKKyAgICAgICAgICAgICdrZXlfbmFtZSc6 ICdFbnRlcicKKyAgICAgICAgfQorICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3NvY2tl dF9pbnB1dCcsIGlucHV0X2RhdGEsIG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgIHJlY2VpdmVk ID0gc2VsZi50ZXN0X2NsaWVudC5nZXRfcmVjZWl2ZWQoJy9wdHknKQorCisgICAgZGVmIHRlYXJE b3duKHNlbGYpOgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24o c2VsZi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3Qn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWydwb3J0J10pCisgICAgICAgIHV0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlvbiwgc2Vs Zi5kYl9uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy90ZXN0 X3Jlc2l6ZV90ZXJtaW5hbC5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVzdHMvdGVzdF9y ZXNpemVfdGVybWluYWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjlj ZTdkMDA0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy90 ZXN0X3Jlc2l6ZV90ZXJtaW5hbC5weQpAQCAtMCwwICsxLDYwIEBACitpbXBvcnQgdXVpZAoraW1w b3J0IGNvbmZpZworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20g cmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLnV0 aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHBnQWRtaW40IGlt cG9ydCBhcHAKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgcHNxbF91dGlscworZnJvbSAuLi4uIGlt cG9ydCBzb2NrZXRpbworCisKK2NsYXNzIFBTUUxSZXNpemVUZXJtaW5hbChCYXNlVGVzdEdlbmVy YXRvcik6CisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdyZXNpemVf dGVybWluYWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc3Fs X3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYu ZGJfbmFtZSA9ICJwc3FsdGVzdGRiX3swfSIuZm9ybWF0KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CisgICAgICAgIGRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0x XQorICAgICAgICBzZWxmLmRpZCA9IGRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2Vs Zi5zaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAg ICAgIHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWyJzZXJ2ZXJfZ3JvdXAiXQorICAgICAgICBjb25m aWcuRU5BQkxFX1BTUUwgPSBUcnVlCisgICAgICAgIHNlbGYuc2VydmVyX2NvbiA9IHNlcnZlcl91 dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNpZCkKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorCisgICAgICAgICMgRmV0Y2ggZmxhc2sgY2xpZW50IHRvIGFjY2VzcyBjdXJyZW50IHVz ZXIgYW5kIG90aGVyIGNvb2tpZXMuCisgICAgICAgIGZsYXNrX2NsaWVudCA9IGFwcC50ZXN0X2Ns aWVudCgpCisgICAgICAgIGZsYXNrX2NsaWVudC5nZXQoJy9zZXNzaW9uJykKKyAgICAgICAgc2Vs Zi50ZXN0X2NsaWVudCA9IHNvY2tldGlvLnRlc3RfY2xpZW50KGFwcCwgbmFtZXNwYWNlPScvcHR5 JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXNr X3Rlc3RfY2xpZW50PWZsYXNrX2NsaWVudCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYu dGVzdF9jbGllbnQuaXNfY29ubmVjdGVkKCcvcHR5JykpCisgICAgICAgIHJlY2VpdmVkID0gc2Vs Zi50ZXN0X2NsaWVudC5nZXRfcmVjZWl2ZWQoJy9wdHknKQorCisgICAgICAgIGFzc2VydCByZWNl aXZlZFswXVsnbmFtZSddID09ICdjb25uZWN0ZWQnCisgICAgICAgIGFzc2VydCByZWNlaXZlZFsw XVsnYXJncyddWzBdWydzaWQnXSAhPSAnJworCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAg ICAnc2lkJzogc2VsZi5zaWQsCisgICAgICAgICAgICAnZGInOiAncG9zdGdyZXMnLAorICAgICAg ICAgICAgJ3B3ZCc6IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgJ3Vz ZXInOiBzZWxmLnNlcnZlclsndXNlcm5hbWUnXQorICAgICAgICB9CisKKyAgICAgICAgc2VsZi50 ZXN0X2NsaWVudC5lbWl0KCdzdGFydF9wcm9jZXNzJywgZGF0YSwgbmFtZXNwYWNlPScvcHR5JykK KyAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLnRlc3RfY2xpZW50LmdldF9yZWNlaXZlZCgnL3B0eScp CisKKyAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5lbWl0KCdyZXNpemUnLCBzZWxmLmlucHV0X2Rh dGEsIG5hbWVzcGFjZT0nL3B0eScpCisKKyAgICAgICAgIyBzZWxmLnRlc3RfY2xpZW50LmRpc2Nv bm5lY3QobmFtZXNwYWNlPScvcHR5JykKKyAgICAgICAgIyBzZWxmLmFzc2VydEZhbHNlKHNlbGYu dGVzdF9jbGllbnQuaXNfY29ubmVjdGVkKCcvcHR5JykpCisKKyAgICBkZWYgdGVhckRvd24oc2Vs Zik6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNl cnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Bv cnQnXSkKKyAgICAgICAgdXRpbHMuZHJvcF9kYXRhYmFzZShjb25uZWN0aW9uLCBzZWxmLmRiX25h bWUpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9wc3FsL3Rlc3RzL3Rlc3Rfc29ja2V0 X2Nvbm5lY3QucHkgYi93ZWIvcGdhZG1pbi90b29scy9wc3FsL3Rlc3RzL3Rlc3Rfc29ja2V0X2Nv bm5lY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjdiODAzMWJkCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy90ZXN0X3NvY2tl dF9jb25uZWN0LnB5CkBAIC0wLDAgKzEsMzYgQEAKK2ltcG9ydCB1dWlkCitpbXBvcnQgY29uZmln Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK K2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9u LnRlc3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCisjIGZyb20gZmxhc2sgaW1wb3J0IGN1cnJl bnRfYXBwIGFzIGFwcAorZnJvbSBwZ0FkbWluNCBpbXBvcnQgYXBwCitmcm9tIC4uLi4gaW1wb3J0 IHNvY2tldGlvCisKKworY2xhc3MgUFNRTFNvY2tldENvbm5lY3QoQmFzZVRlc3RHZW5lcmF0b3Ip OgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gInBzcWx0ZXN0 ZGJfezB9Ii5mb3JtYXQoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5zaWQg PSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHNl bGYuZGlkID0gdXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUp CisgICAgICAgIHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWyJzZXJ2ZXJfZ3JvdXAiXQorICAgICAg ICBjb25maWcuRU5BQkxFX1BTUUwgPSBUcnVlCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgc2VsZi50ZXN0X2NsaWVudCA9IHNvY2tldGlvLnRlc3RfY2xpZW50KGFwcCwgbmFtZXNw YWNlPScvcHR5JykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYudGVzdF9jbGllbnQuaXNf Y29ubmVjdGVkKCcvcHR5JykpCisgICAgICAgIHJlY2VpdmVkID0gc2VsZi50ZXN0X2NsaWVudC5n ZXRfcmVjZWl2ZWQoJy9wdHknKQorICAgICAgICBwcmludCgicmVjZWl2ZWQ6IiwgcmVjZWl2ZWQp CisgICAgICAgIGFzc2VydCByZWNlaXZlZFswXVsnbmFtZSddID09ICdjb25uZWN0ZWQnCisgICAg ICAgIGFzc2VydCByZWNlaXZlZFswXVsnYXJncyddWzBdWydzaWQnXSAhPSAnJworICAgICAgICBz ZWxmLnRlc3RfY2xpZW50LmRpc2Nvbm5lY3QobmFtZXNwYWNlPScvcHR5JykKKyAgICAgICAgc2Vs Zi5hc3NlcnRGYWxzZShzZWxmLnRlc3RfY2xpZW50LmlzX2Nvbm5lY3RlZCgnL3B0eScpKQorCisg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2Ri X2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29y ZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWydwb3J0J10pCisgICAgICAgIHV0aWxzLmRyb3BfZGF0YWJhc2UoY29u bmVjdGlvbiwgc2VsZi5kYl9uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvcHNx bC90ZXN0cy90ZXN0X3NvY2tldF9kaXNjb25uZWN0LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNx bC90ZXN0cy90ZXN0X3NvY2tldF9kaXNjb25uZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwLi5jZDJjZjVhYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rv b2xzL3BzcWwvdGVzdHMvdGVzdF9zb2NrZXRfZGlzY29ubmVjdC5weQpAQCAtMCwwICsxLDM1IEBA CitpbXBvcnQgdXVpZAoraW1wb3J0IGNvbmZpZworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0 YQorIyBmcm9tIGZsYXNrIGltcG9ydCBjdXJyZW50X2FwcCBhcyBhcHAKK2Zyb20gcGdBZG1pbjQg aW1wb3J0IGFwcAorZnJvbSAuLi4uIGltcG9ydCBzb2NrZXRpbworCisKK2NsYXNzIFBTUUxTb2Nr ZXREaXNjb25uZWN0KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIHNlbGYuZGJfbmFtZSA9ICJwc3FsdGVzdGRiX3swfSIuZm9ybWF0KHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYuc2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVy Il1bLTFdWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRpZCA9IHV0aWxzLmNyZWF0ZV9kYXRh YmFzZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lKQorICAgICAgICBzZWxmLnNnaWQgPSBjb25m aWdfZGF0YVsic2VydmVyX2dyb3VwIl0KKyAgICAgICAgY29uZmlnLkVOQUJMRV9QU1FMID0gVHJ1 ZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHNlbGYudGVzdF9jbGllbnQgPSBz b2NrZXRpby50ZXN0X2NsaWVudChhcHAsIG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgIHNlbGYu YXNzZXJ0VHJ1ZShzZWxmLnRlc3RfY2xpZW50LmlzX2Nvbm5lY3RlZCgnL3B0eScpKQorICAgICAg ICByZWNlaXZlZCA9IHNlbGYudGVzdF9jbGllbnQuZ2V0X3JlY2VpdmVkKCcvcHR5JykKKyAgICAg ICAgcHJpbnQoInJlY2VpdmVkOiIsIHJlY2VpdmVkKQorICAgICAgICBhc3NlcnQgcmVjZWl2ZWRb MF1bJ25hbWUnXSA9PSAnY29ubmVjdGVkJworICAgICAgICBhc3NlcnQgcmVjZWl2ZWRbMF1bJ2Fy Z3MnXVswXVsnc2lkJ10gIT0gJycKKyAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5kaXNjb25uZWN0 KG5hbWVzcGFjZT0nL3B0eScpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGNv bm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1 c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAg dXRpbHMuZHJvcF9kYXRhYmFzZShjb25uZWN0aW9uLCBzZWxmLmRiX25hbWUpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi90b29scy9wc3FsL3Rlc3RzL3Rlc3Rfc3RhcnRfcHJvY2Vzcy5weSBiL3dl Yi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVzdHMvdGVzdF9zdGFydF9wcm9jZXNzLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4wNTVmN2NlMwotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVzdHMvdGVzdF9zdGFydF9wcm9jZXNzLnB5CkBAIC0w LDAgKzEsNjMgQEAKK2ltcG9ydCB1dWlkCitpbXBvcnQgY29uZmlnCitmcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0 IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBz ZXJ2ZXJfdXRpbHMKK2Zyb20gcGdBZG1pbjQgaW1wb3J0IGFwcAorZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMg XAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBn ZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gLi4u LiBpbXBvcnQgc29ja2V0aW8KKworCitjbGFzcyBQU1FMU3RhcnRQcm9jZXNzKEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9ICJw c3FsdGVzdGRiX3swfSIuZm9ybWF0KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGRh dGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQorICAgICAgICBz ZWxmLmRpZCA9IGRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zaWQgPSBwYXJl bnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuc2dp ZCA9IGNvbmZpZ19kYXRhWyJzZXJ2ZXJfZ3JvdXAiXQorICAgICAgICBjb25maWcuRU5BQkxFX1BT UUwgPSBUcnVlCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5l Y3Rfc2VydmVyKHNlbGYsIHNlbGYuc2lkKQorICAgICAgICBwcmludChzZWxmLnNlcnZlcl9jb24p CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIyBGZXRjaCBmbGFzayBjbGllbnQg dG8gYWNjZXNzIGN1cnJlbnQgdXNlciBhbmQgb3RoZXIgY29va2llcy4KKyAgICAgICAgZmxhc2tf Y2xpZW50ID0gYXBwLnRlc3RfY2xpZW50KCkKKyAgICAgICAgZmxhc2tfY2xpZW50LmdldCgnL3Nl c3Npb24nKQorICAgICAgICBzZWxmLnRlc3RfY2xpZW50ID0gc29ja2V0aW8udGVzdF9jbGllbnQo YXBwLCBuYW1lc3BhY2U9Jy9wdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmxhc2tfdGVzdF9jbGllbnQ9Zmxhc2tfY2xpZW50KQorICAgICAgICBz ZWxmLmFzc2VydFRydWUoc2VsZi50ZXN0X2NsaWVudC5pc19jb25uZWN0ZWQoJy9wdHknKSkKKyAg ICAgICAgcmVjZWl2ZWQgPSBzZWxmLnRlc3RfY2xpZW50LmdldF9yZWNlaXZlZCgnL3B0eScpCisK KyAgICAgICAgYXNzZXJ0IHJlY2VpdmVkWzBdWyduYW1lJ10gPT0gJ2Nvbm5lY3RlZCcKKyAgICAg ICAgYXNzZXJ0IHJlY2VpdmVkWzBdWydhcmdzJ11bMF1bJ3NpZCddICE9ICcnCisKKyAgICAgICAg aW1wb3J0IHJhbmRvbQorICAgICAgICB0cmFuc19pZCA9IHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5 OTkpCisKKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICdzaWQnOiBzZWxmLnNpZCwKKyAg ICAgICAgICAgICdkYic6ICdwb3N0Z3JlcycsCisgICAgICAgICAgICAncHdkJzogc2VsZi5zZXJ2 ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAndXNlcic6IHNlbGYuc2VydmVyWyd1c2Vy bmFtZSddCisgICAgICAgIH0KKworICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3N0YXJ0 X3Byb2Nlc3MnLCBkYXRhLCBuYW1lc3BhY2U9Jy9wdHknKQorICAgICAgICByZWNlaXZlZCA9IHNl bGYudGVzdF9jbGllbnQuZ2V0X3JlY2VpdmVkKCcvcHR5JykKKyAgICAgICAgcHJpbnQoInJlY2Vp dmVkIHZhbHVlczogIiwgcmVjZWl2ZWQpCisKKyAgICAgICAgc2VsZi50ZXN0X2NsaWVudC5kaXNj b25uZWN0KG5hbWVzcGFjZT0nL3B0eScpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi50 ZXN0X2NsaWVudC5pc19jb25uZWN0ZWQoJy9wdHknKSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxm KToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2Vy dmVyWydkYiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9y dCddKQorICAgICAgICB1dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sIHNlbGYuZGJfbmFt ZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVzdHMvdGVzdF9zdGFydF9w cm9jZXNzX2ZhaWwucHkgYi93ZWIvcGdhZG1pbi90b29scy9wc3FsL3Rlc3RzL3Rlc3Rfc3RhcnRf cHJvY2Vzc19mYWlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi44OTVm YzUzMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvdGVzdHMvdGVz dF9zdGFydF9wcm9jZXNzX2ZhaWwucHkKQEAgLTAsMCArMSw2MCBAQAoraW1wb3J0IHV1aWQKK2lt cG9ydCBjb25maWcKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9t IHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi51 dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscworZnJvbSBwZ0FkbWluNCBp bXBvcnQgYXBwCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20g Li4uLiBpbXBvcnQgc29ja2V0aW8KKworCitjbGFzcyBQU1FMU3RhcnRQcm9jZXNzRmFpbChCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25h bWUgPSAicHNxbHRlc3RkYl97MH0iLmZvcm1hdChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAg ICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lk Il0KKyAgICAgICAgc2VsZi5kaWQgPSB1dGlscy5jcmVhdGVfZGF0YWJhc2Uoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSkKKyAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbInNlcnZlcl9n cm91cCJdCisgICAgICAgIGNvbmZpZy5FTkFCTEVfUFNRTCA9IFRydWUKKworICAgICAgICBkYl9j b24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZ2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlkKQorICAg ICAgICBwcmludCgiREIgY29ubmVjdGlvbiIpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgIyBGZXRjaCBmbGFzayBjbGllbnQgdG8gYWNjZXNzIGN1cnJlbnQgdXNlciBhbmQgb3Ro ZXIgY29va2llcy4KKyAgICAgICAgZmxhc2tfY2xpZW50ID0gYXBwLnRlc3RfY2xpZW50KCkKKyAg ICAgICAgZmxhc2tfY2xpZW50LmdldCgnL3Nlc3Npb24nKQorICAgICAgICBzZWxmLnRlc3RfY2xp ZW50ID0gc29ja2V0aW8udGVzdF9jbGllbnQoYXBwLCBuYW1lc3BhY2U9Jy9wdHknLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhc2tfdGVzdF9jbGll bnQ9Zmxhc2tfY2xpZW50KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi50ZXN0X2NsaWVu dC5pc19jb25uZWN0ZWQoJy9wdHknKSkKKyAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLnRlc3RfY2xp ZW50LmdldF9yZWNlaXZlZCgnL3B0eScpCisgICAgICAgIHByaW50KCJyZWNlaXZlZDoiLCByZWNl aXZlZCkKKyAgICAgICAgYXNzZXJ0IHJlY2VpdmVkWzBdWyduYW1lJ10gPT0gJ2Nvbm5lY3RlZCcK KyAgICAgICAgYXNzZXJ0IHJlY2VpdmVkWzBdWydhcmdzJ11bMF1bJ3NpZCddICE9ICcnCisgICAg ICAgIGltcG9ydCByYW5kb20KKyAgICAgICAgdHJhbnNfaWQgPSByYW5kb20ucmFuZGludCgxLCA5 OTk5OTk5KQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgJ3NpZCc6IHNlbGYuc2lkLAor ICAgICAgICAgICAgJ2RiJzogJ3Bvc3RncmVzJywKKyAgICAgICAgICAgICdwd2QnOiBzZWxmLnNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICd1c2VyJzogc2VsZi5zZXJ2ZXJbJ3Vz ZXJuYW1lJ10KKyAgICAgICAgfQorICAgICAgICBjb25maWcuRU5BQkxFX1BTUUwgPSBGYWxzZQor ICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmVtaXQoJ3N0YXJ0X3Byb2Nlc3MnLCBkYXRhLCBuYW1l c3BhY2U9Jy9wdHknKQorICAgICAgICByZWNlaXZlZCA9IHNlbGYudGVzdF9jbGllbnQuZ2V0X3Jl Y2VpdmVkKCcvcHR5JykKKyAgICAgICAgYXNzZXJ0IHJlY2VpdmVkWzBdWyduYW1lJ10gPT0gJ2Nv bm5fbm90X2FsbG93JworICAgICAgICBzZWxmLnRlc3RfY2xpZW50LmRpc2Nvbm5lY3QobmFtZXNw YWNlPScvcHR5JykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLnRlc3RfY2xpZW50Lmlz X2Nvbm5lY3RlZCgnL3B0eScpKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBj b25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn dXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0J10pCisgICAgICAg IHV0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlvbiwgc2VsZi5kYl9uYW1lKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL3Rv b2xzL3BzcWwvdGVzdHMvdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAuLjg1YmQ1MzczCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC90 ZXN0cy91dGlscy5weQpAQCAtMCwwICsxLDYgQEAKK2ltcG9ydCBvcworaW1wb3J0IGpzb24KKwor Q1VSUkVOVF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18p KQord2l0aCBvcGVuKENVUlJFTlRfUEFUSCArICIvcHNxbF90ZXN0X2RhdGEuanNvbiIpIGFzIGRh dGFfZmlsZToKKyAgICB0ZXN0X2Nhc2VzID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvc2Nzcy9fc3FsZWRpdG9yLnNj c3MgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL3Njc3MvX3NxbGVkaXRvci5z Y3NzCmluZGV4IDBiYjQwODAyLi41ZmZjODI0MSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9v bHMvc3FsZWRpdG9yL3N0YXRpYy9zY3NzL19zcWxlZGl0b3Iuc2NzcworKysgYi93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3Ivc3RhdGljL3Njc3MvX3NxbGVkaXRvci5zY3NzCkBAIC0zNzQsMyAr Mzc0LDkgQEAgZGl2LnN0cmlrZW91dDphZnRlciB7CiAvKiBTZXR0aW5nIGl0IHRvIGhhcmRjb2Rl ZCB3aGl0ZSBhcyB0aGUgU1ZHIGdlbmVyYXRlZCBpcyBoYXZpbmcgd2hpdGUgYmcKICAqIE5lZWQg dG8gY2hlY2sgd2hhdCBjYW4gYmUgZG9uZS4KICAqLworCisvKiBDc3MgZm9yIHBzcWwgKi8KKy5w c3FsX3Rlcm1pbmFsIC50ZXJtaW5hbCB7CisgIHBhZGRpbmctdG9wOiAxJTsKKyAgcGFkZGluZy1s ZWZ0OiAwLjUlOworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvY3NyZi5weSBiL3dl Yi9wZ2FkbWluL3V0aWxzL2NzcmYucHkKaW5kZXggMjNhYmZmZmEuLjcxYWU4MmVhIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi91dGlscy9jc3JmLnB5CisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL2Nz cmYucHkKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgX1BHQ1NSRlByb3RlY3QoQ1NSRlByb3RlY3Qp OgogICAgICAgICAgICAgJ3BnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYuZGRsX2NvbXBhcmUnLAog ICAgICAgICAgICAgJ3BnYWRtaW4uYXV0aGVudGljYXRlLmxvZ2luJywKICAgICAgICAgICAgICdw Z2FkbWluLnRvb2xzLmVyZC5wYW5lbCcsCisgICAgICAgICAgICAncGdhZG1pbi50b29scy5wc3Fs LnBhbmVsJywKICAgICAgICAgXQogCiAgICAgICAgIGZvciBleGVtcHQgaW4gZXhlbXB0X3ZpZXdz OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvcHJlZmVyZW5jZXMucHkgYi93ZWIvcGdh ZG1pbi91dGlscy9wcmVmZXJlbmNlcy5weQppbmRleCAxNWNlZWIxYS4uZTllZmU0NzkgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL3ByZWZlcmVuY2VzLnB5CisrKyBiL3dlYi9wZ2FkbWlu L3V0aWxzL3ByZWZlcmVuY2VzLnB5CkBAIC03Miw2ICs3Miw3IEBAIGNsYXNzIF9QcmVmZXJlbmNl KG9iamVjdCk6CiAgICAgICAgIHNlbGYuc2VsZWN0MiA9IGt3YXJncy5nZXQoJ3NlbGVjdDInLCBO b25lKQogICAgICAgICBzZWxmLmZpZWxkcyA9IGt3YXJncy5nZXQoJ2ZpZWxkcycsIE5vbmUpCiAg ICAgICAgIHNlbGYuYWxsb3dfYmxhbmtzID0ga3dhcmdzLmdldCgnYWxsb3dfYmxhbmtzJywgTm9u ZSkKKyAgICAgICAgc2VsZi5kaXNhYmxlZCA9IGt3YXJncy5nZXQoJ2Rpc2FibGVkJywgRmFsc2Up CiAKICAgICAgICAgIyBMb29rIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gdGFibGUgdG8gZmluZCBv dXQgdGhlIGlkIG9mIHRoZSBzcGVjaWZpYwogICAgICAgICAjIHByZWZlcmVuY2UuCkBAIC0yNTIs NiArMjUzLDcgQEAgY2xhc3MgX1ByZWZlcmVuY2Uob2JqZWN0KToKICAgICAgICAgICAgICdzZWxl Y3QyJzogc2VsZi5zZWxlY3QyLAogICAgICAgICAgICAgJ3ZhbHVlJzogc2VsZi5nZXQoKSwKICAg ICAgICAgICAgICdmaWVsZHMnOiBzZWxmLmZpZWxkcywKKyAgICAgICAgICAgICdkaXNhYmxlZCc6 IHNlbGYuZGlzYWJsZWQsCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHJlcwogCkBAIC00MTQs NiArNDE2LDcgQEAgY2xhc3MgUHJlZmVyZW5jZXMob2JqZWN0KToKICAgICAgICAgOnBhcmFtIGZp ZWxkczogZmllbGQgc2NoZW1hIChpZiBwcmVmZXJlbmNlIGhhcyBtb3JlIHRoYW4gb25lIGZpZWxk IHRvCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlIGlucHV0IGZyb20gdXNlciBlLmcuIGtl eWJvYXJkc2hvcnRjdXQgcHJlZmVyZW5jZSkKICAgICAgICAgOnBhcmFtIGFsbG93X2JsYW5rczog RmxhZyBzcGVjaWZ5IHdoZXRoZXIgdG8gYWxsb3cgYmxhbmsgdmFsdWUuCisgICAgICAgIDpwYXJh bSBkaXNhYmxlZDogRmxhZyBzcGVjaWZ5IHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgc2V0dGluZyBv ciBub3QuCiAgICAgICAgICIiIgogICAgICAgICBtaW5fdmFsID0ga3dhcmdzLmdldCgnbWluX3Zh bCcsIE5vbmUpCiAgICAgICAgIG1heF92YWwgPSBrd2FyZ3MuZ2V0KCdtYXhfdmFsJywgTm9uZSkK QEAgLTQyMyw2ICs0MjYsNyBAQCBjbGFzcyBQcmVmZXJlbmNlcyhvYmplY3QpOgogICAgICAgICBz ZWxlY3QyID0ga3dhcmdzLmdldCgnc2VsZWN0MicsIE5vbmUpCiAgICAgICAgIGZpZWxkcyA9IGt3 YXJncy5nZXQoJ2ZpZWxkcycsIE5vbmUpCiAgICAgICAgIGFsbG93X2JsYW5rcyA9IGt3YXJncy5n ZXQoJ2FsbG93X2JsYW5rcycsIE5vbmUpCisgICAgICAgIGRpc2FibGVkID0ga3dhcmdzLmdldCgn ZGlzYWJsZWQnLCBGYWxzZSkKIAogICAgICAgICBjYXQgPSBzZWxmLl9fY2F0ZWdvcnkoY2F0ZWdv cnksIGNhdGVnb3J5X2xhYmVsKQogICAgICAgICBpZiBuYW1lIGluIGNhdFsncHJlZmVyZW5jZXMn XToKQEAgLTQzOSw3ICs0NDMsOCBAQCBjbGFzcyBQcmVmZXJlbmNlcyhvYmplY3QpOgogICAgICAg ICAoY2F0WydwcmVmZXJlbmNlcyddKVtuYW1lXSA9IHJlcyA9IF9QcmVmZXJlbmNlKAogICAgICAg ICAgICAgY2F0WydpZCddLCBuYW1lLCBsYWJlbCwgX3R5cGUsIGRlZmF1bHQsIGhlbHBfc3RyPWhl bHBfc3RyLAogICAgICAgICAgICAgbWluX3ZhbD1taW5fdmFsLCBtYXhfdmFsPW1heF92YWwsIG9w dGlvbnM9b3B0aW9ucywKLSAgICAgICAgICAgIHNlbGVjdDI9c2VsZWN0MiwgZmllbGRzPWZpZWxk cywgYWxsb3dfYmxhbmtzPWFsbG93X2JsYW5rcworICAgICAgICAgICAgc2VsZWN0Mj1zZWxlY3Qy LCBmaWVsZHM9ZmllbGRzLCBhbGxvd19ibGFua3M9YWxsb3dfYmxhbmtzLAorICAgICAgICAgICAg ZGlzYWJsZWQ9ZGlzYWJsZWQKICAgICAgICAgKQogCiAgICAgICAgIHJldHVybiByZXMKZGlmZiAt LWdpdCBhL3dlYi93ZWJwYWNrLmNvbmZpZy5qcyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwppbmRl eCBlOTA2YTU2Ny4uMTA0YTNiMjAgMTAwNjQ0Ci0tLSBhL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwor KysgYi93ZWIvd2VicGFjay5jb25maWcuanMKQEAgLTM1NSw2ICszNTUsNyBAQCBtb2R1bGUuZXhw b3J0cyA9IFt7CiAgICAgZGVidWdnZXJfZGlyZWN0OiAnLi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2Vy L3N0YXRpYy9qcy9kaXJlY3QuanMnLAogICAgIHNjaGVtYV9kaWZmOiAnLi9wZ2FkbWluL3Rvb2xz L3NjaGVtYV9kaWZmL3N0YXRpYy9qcy9zY2hlbWFfZGlmZl9ob29rLmpzJywKICAgICBlcmRfdG9v bDogJy4vcGdhZG1pbi90b29scy9lcmQvc3RhdGljL2pzL2VyZF90b29sX2hvb2suanMnLAorICAg IHBzcWxfdG9vbDogJy4vcGdhZG1pbi90b29scy9wc3FsL3N0YXRpYy9qcy9pbmRleC5qcycsCiAg ICAgZmlsZV91dGlsczogJy4vcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0aWMvanMvdXRp bGl0eS5qcycsCiAgICAgJ3BnYWRtaW4uc3R5bGUnOiBwZ2FkbWluQ3NzU3R5bGVzLAogICAgIHBn YWRtaW46IHBnYWRtaW5TY3NzU3R5bGVzLApAQCAtNDkzLDcgKzQ5NCw3IEBAIG1vZHVsZS5leHBv cnRzID0gW3sKICAgICAgICAgICBdLAogICAgICAgICB9LAogICAgICAgfSwKLSAgICB9LCB7Cisg ICAgfSx7CiAgICAgICB0ZXN0OiByZXF1aXJlLnJlc29sdmUoJy4vbm9kZV9tb2R1bGVzL2FjaXRy ZWUvanMvanF1ZXJ5LmFjaVRyZWUubWluJyksCiAgICAgICB1c2U6IHsKICAgICAgICAgbG9hZGVy OiAnaW1wb3J0cy1sb2FkZXInLApAQCAtNTMyLDYgKzUzMyw3IEBAIG1vZHVsZS5leHBvcnRzID0g W3sKICAgICAgICAgICAgICdwdXJlfHBnYWRtaW4udG9vbHMuc3RvcmFnZV9tYW5hZ2VyJywKICAg ICAgICAgICAgICdwdXJlfHBnYWRtaW4udG9vbHMuc2VhcmNoX29iamVjdHMnLAogICAgICAgICAg ICAgJ3B1cmV8cGdhZG1pbi50b29scy5lcmRfbW9kdWxlJywKKyAgICAgICAgICAgICdwdXJlfHBn YWRtaW4udG9vbHMucHNxbF9tb2R1bGUnLAogICAgICAgICAgIF0sCiAgICAgICAgIH0sCiAgICAg ICB9LApkaWZmIC0tZ2l0IGEvd2ViL3dlYnBhY2suc2hpbS5qcyBiL3dlYi93ZWJwYWNrLnNoaW0u anMKaW5kZXggMDc0YjI1ODAuLmI4NjBkMjFmIDEwMDY0NAotLS0gYS93ZWIvd2VicGFjay5zaGlt LmpzCisrKyBiL3dlYi93ZWJwYWNrLnNoaW0uanMKQEAgLTE1OSw2ICsxNTksMTYgQEAgdmFyIHdl YnBhY2tTaGltQ29uZmlnID0gewogICAgICdqcXVlcnkuYWNpc29ydGFibGUnOiBwYXRoLmpvaW4o X19kaXJuYW1lLCAnLi9ub2RlX21vZHVsZXMvYWNpdHJlZS9qcy9qcXVlcnkuYWNpU29ydGFibGUu bWluJyksCiAgICAgJ2pxdWVyeS5hY2lmcmFnbWVudCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcu L25vZGVfbW9kdWxlcy9hY2l0cmVlL2pzL2pxdWVyeS5hY2lGcmFnbWVudC5taW4nKSwKIAorICAg IC8veHRlcm0KKyAgICAneHRlcm0nOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9ub2RlX21vZHVs ZXMveHRlcm0vbGliL3h0ZXJtLmpzJyksCisgICAgJ3h0ZXJtLWFkZG9uLWZpdCc6IHBhdGguam9p bihfX2Rpcm5hbWUsICcuL25vZGVfbW9kdWxlcy94dGVybS1hZGRvbi1maXQvbGliL3h0ZXJtLWFk ZG9uLWZpdC5qcycpLAorICAgICd4dGVybS1hZGRvbi13ZWItbGlua3MnOiBwYXRoLmpvaW4oX19k aXJuYW1lLCAnLi9ub2RlX21vZHVsZXMveHRlcm0tYWRkb24td2ViLWxpbmtzL2xpYi94dGVybS1h ZGRvbi13ZWItbGlua3MuanMnKSwKKyAgICAneHRlcm0tYWRkb24tc2VhcmNoJzogcGF0aC5qb2lu KF9fZGlybmFtZSwgJy4vbm9kZV9tb2R1bGVzL3h0ZXJtLWFkZG9uLXNlYXJjaC9saWIveHRlcm0t YWRkb24tc2VhcmNoLmpzJyksCisgICAgJ2xvY2FsLWVjaG8tY29udHJvbGxlcic6IHBhdGguam9p bihfX2Rpcm5hbWUsICcuL25vZGVfbW9kdWxlcy9sb2NhbC1lY2hvJyksCisKKyAgICAvL3NvY2tl dAorICAgICdzb2NrZXRpbyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL25vZGVfbW9kdWxlcy9z b2NrZXQuaW8tY2xpZW50L2Rpc3Qvc29ja2V0LmlvLmpzJyksCisKICAgICAvLyBCYWNrYm9uZSBh bmQgQmFja2dyaWQKICAgICAnYmFja2JvbmUnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9ub2Rl X21vZHVsZXMvYmFja2JvbmUvYmFja2JvbmUnKSwKICAgICAnYmFja2JvbmUudW5kbyc6IHBhdGgu am9pbihfX2Rpcm5hbWUsICcuL25vZGVfbW9kdWxlcy9iYWNrYm9uZS11bmRvL0JhY2tib25lLlVu ZG8nKSwKQEAgLTI4OCw2ICsyOTgsOCBAQCB2YXIgd2VicGFja1NoaW1Db25maWcgPSB7CiAgICAg J3BnYWRtaW4udG9vbHMuc3RvcmFnZV9tYW5hZ2VyJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4v cGdhZG1pbi90b29scy9zdG9yYWdlX21hbmFnZXIvc3RhdGljL2pzL3N0b3JhZ2VfbWFuYWdlcicp LAogICAgICdwZ2FkbWluLnRvb2xzLmVyZF9tb2R1bGUnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAn Li9wZ2FkbWluL3Rvb2xzL2VyZC9zdGF0aWMvanMvZXJkX21vZHVsZScpLAogICAgICdwZ2FkbWlu LnRvb2xzLmVyZCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvZXJkL3N0 YXRpYy9qcycpLAorICAgICdwZ2FkbWluLnRvb2xzLnBzcWxfbW9kdWxlJzogcGF0aC5qb2luKF9f ZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9wc3FsL3N0YXRpYy9qcy9wc3FsX21vZHVsZScpLAor ICAgICdwZ2FkbWluLnRvb2xzLnBzcWwnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWlu L3Rvb2xzL3BzcWwvc3RhdGljL2pzJyksCiAgICAgJ3BnYWRtaW4uc2VhcmNoX29iamVjdHMnOiBw YXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3N0YXRp Yy9qcycpLAogICAgICdwZ2FkbWluLnRvb2xzLnVzZXJfbWFuYWdlbWVudCc6IHBhdGguam9pbihf X2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvdXNlcl9tYW5hZ2VtZW50L3N0YXRpYy9qcy91c2Vy X21hbmFnZW1lbnQnKSwKICAgICAncGdhZG1pbi51c2VyX21hbmFnZW1lbnQuY3VycmVudF91c2Vy JzogJy91c2VyX21hbmFnZW1lbnQvY3VycmVudF91c2VyJywKZGlmZiAtLWdpdCBhL3dlYi93ZWJw YWNrLnRlc3QuY29uZmlnLmpzIGIvd2ViL3dlYnBhY2sudGVzdC5jb25maWcuanMKaW5kZXggZTBi NmZkNjkuLjNjYzA3OWY5IDEwMDY0NAotLS0gYS93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5qcwor KysgYi93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5qcwpAQCAtMTc3LDYgKzE3Nyw3IEBAIG1vZHVs ZS5leHBvcnRzID0gewogICAgICAgJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcyc6IHBhdGgu am9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcHJlZmVyZW5jZXMn KSwKICAgICAgICdwZ2FkbWluLmJyb3dzZXIuYWN0aXZpdHknOiBwYXRoLmpvaW4oX19kaXJuYW1l LCAnLi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2FjdGl2aXR5JyksCiAgICAgICAncGdhZG1p bi50b29scy5lcmQnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL2VyZC9z dGF0aWMvanMnKSwKKyAgICAgICdwZ2FkbWluLnRvb2xzLnBzcWwnOiBwYXRoLmpvaW4oX19kaXJu YW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3BzcWwvc3RhdGljL2pzJyksCiAgICAgICAnYnVuZGxlZF9j b2RlbWlycm9yJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0aWMvYnVuZGxl L2NvZGVtaXJyb3InKSwKICAgICAgICd0b29scyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3Bn YWRtaW4vdG9vbHMvJyksCiAgICAgICAncGdhZG1pbi51c2VyX21hbmFnZW1lbnQuY3VycmVudF91 c2VyJzogcmVncmVzc2lvbkRpciArICcvamF2YXNjcmlwdC9mYWtlX2N1cnJlbnRfdXNlcicsCg== --000000000000f5b74605c1f92645--