Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aikzt-0001u4-UV for pgadmin-hackers@arkaria.postgresql.org; Wed, 23 Mar 2016 15:47:02 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aikzt-00045W-G1 for pgadmin-hackers@arkaria.postgresql.org; Wed, 23 Mar 2016 15:47:01 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aiky5-0003kv-Go for pgadmin-hackers@postgresql.org; Wed, 23 Mar 2016 15:45:09 +0000 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aikxy-00041d-4n for pgadmin-hackers@postgresql.org; Wed, 23 Mar 2016 15:45:08 +0000 Received: by mail-wm0-x229.google.com with SMTP id r129so142153231wmr.1 for ; Wed, 23 Mar 2016 08:45:02 -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=cuMUpHH4xHqE672MQKHHCvQO4stCvP8xfLyJlnlgIPw=; b=AT1Z9tGVAo0cQ8gRUPJz0X7mFrV6IMB0jTdZcBCIXIHRqg16EmI0I9FZWqguYkOU9H AhBm9m+kp2kSbS8yL6tFk0BaNME/aHtG/f3XVg+ofrrovB7UkpEa7mP9O/qxkcAgAKbQ Y8sQ8qtjITN0M15jruciYhPNTJTenhn1jPp2lD3UTqsZU9ft5Xls6yIPzP94PT1NB5AJ UrPU2AI/zdg7ZZEH0QTvJ4JXnwk3GrMoY1VzGu2bpvAVsksPMcuUOEzPvHpawr/fj6Ab uxZULCatod0nmGCz1tfmQYT/tNiB47/SLBAbKoZmxvlxKr0ZQmAFF/9HURUPmcbzxuau nqNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=cuMUpHH4xHqE672MQKHHCvQO4stCvP8xfLyJlnlgIPw=; b=AEoQFM/49kM54jqCK+ww8pBij5ZF+tf4Ic/2mi32uTniO71KgRpl772WQGXECIuvm0 Z2GTbXigNDnWKRbwYkUupimud/YvvlvxWn5I6UGVaZNtM9HuEiXiV7CN1Fzw04cn9Xy9 2b8AlUVDy9pERHrcDgJUW5K5TFblvOdz/hpPKvTFkc7Kq1qBaJU4JV8phbOMJrFsApJh onS60ElzJtVjLYV8qmjUvVDyVV1g+uGYy/QYPrQyFw5NcCVgfMV/e6wjH0oKqsOil3te LIn0Abt3jJb8cQLemquMPLjScgaXow6n0yM5VKFN5WojgUJ7ILo6A9SlGZkQLmlXmnZt cJ1w== X-Gm-Message-State: AD7BkJIvZpHbpCYayJnoPbRbzJdMToGMuXMmad+Bptea+vsUOen1iaGVhvD4V0WXwaXkQQLR/FqRW4CmRB07Ci7B X-Received: by 10.28.128.83 with SMTP id b80mr4752801wmd.6.1458747901381; Wed, 23 Mar 2016 08:45:01 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.55.74 with HTTP; Wed, 23 Mar 2016 08:44:31 -0700 (PDT) From: Surinder Kumar Date: Wed, 23 Mar 2016 21:14:31 +0530 Message-ID: Subject: [pgAdmin4][Patch]: Tables Sub nodes(Columns, Indexes, rules & triggers) Patch To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1142052c7b71ba052eb93699 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1142052c7b71ba052eb93699 Content-Type: multipart/alternative; boundary=001a1142052c7b71b4052eb93697 --001a1142052c7b71b4052eb93697 Content-Type: text/plain; charset=UTF-8 Hi, This patch contains following nodes: 1. Columns 2. Indexes 3 Rule 4. Trigger I am using murtuza's patch with little changes to show above nodes under *view and materialized view.* This patch is only for *Tables sub node*. @murtuaza is working on table node which is not completed. *Note*: Please apply patch for utility function "Added Utility functions for triggers node and rules node" first then apply this patch. Please review it. Thanks, Surinder Kumar --001a1142052c7b71b4052eb93697 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

This patch contains following nodes= :
1. Columns
2. Indexes
3 =C2=A0Rule
4. Trigger

I am using murtuza's patch with l= ittle changes to show above nodes under=C2=A0view and materialized view.=

This patch is only for Tables sub n= ode. @murtuaza is working on table node which is not completed.

Note: Please apply patch for utility function &quo= t;Added Utility functions for triggers node and rules node" first then= apply this patch.

Please review it.

Thanks,
Surinder Kumar

<= /div>




--001a1142052c7b71b4052eb93697-- --001a1142052c7b71ba052eb93699 Content-Type: application/octet-stream; name="tables_subnodes.patch" Content-Disposition: attachment; filename="tables_subnodes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_im4zzx9v0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmNjN2YyCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL19faW5pdF9fLnB5 CkBAIC0wLDAgKzEsOCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb2x1bW5zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMDlmMGU2NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL19faW5pdF9fLnB5CkBAIC0wLDAg KzEsOTQ5IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCisiIiIgSW1wbGVtZW50cyBDb2x1bW4gTm9kZSAiIiIKKworZnJv bSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNl LCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZsYXNrLmV4dC5iYWJlbCBpbXBv cnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1h a2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWph eF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBnYWRt aW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9t IHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0aW9u Tm9kZU1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNlCitmcm9tIHBnYWRt aW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCitm cm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitm cm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBv cnQgcGFyc2VfcHJpdl9mcm9tX2RiLCBcCisgICAgcGFyc2VfcHJpdl90b19k YgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCitpbXBvcnQganNvbgor CisKK2NsYXNzIENvbHVtbnNNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUp OgorICAgICIiIgorICAgICBjbGFzcyBDb2x1bW5zTW9kdWxlKENvbGxlY3Rp b25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBD b2x1bW4gbm9kZSBkZXJpdmVkIGZyb20gQ29sbGVjdGlvbk5vZGVNb2R1bGUu CisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8g aW5pdGlhbGl6ZSB0aGUgQ29sdW1uIGFuZCBpdCdzIGJhc2UgbW9kdWxlLgor CisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKQor ICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3Nl ciBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAg ICAgLSBNZXRob2QgaXMgb3ZlcnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNz IHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBzY3Jp cHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9y IHNjaGVtYSwgd2hlbiBhbnkgb2YgdGhlIHNlcnZlciBub2RlIGlzCisgICAg ICAgIGluaXRpYWxpemVkLgorICAgICIiIgorCisgICAgTk9ERV9UWVBFID0g J2NvbHVtbicKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiQ29s dW1ucyIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh cmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRv IGluaXRpYWxpemUgdGhlIENvbHVtbk1vZHVsZSBhbmQgaXQncyBiYXNlIG1v ZHVsZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKmFyZ3M6Cisg ICAgICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIiCisgICAgICAgIHNl bGYubWluX3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9u ZQorICAgICAgICBzdXBlcihDb2x1bW5zTW9kdWxlLCBzZWxmKS5fX2luaXRf XygqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsICoqa3dhcmdzKToKKyAgICAgICAgIiIi CisgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKKyAgICAg ICAgIyBUT0RPOjoKKyAgICAgICAgV2UgY2FuIGhhdmUgZm9sbG93aW5nIGFy Z3VtZW50cyBmb3IgZGlmZmVyZW50IHR5cGUgb2YgcGFyZW50cy4KKyAgICAg ICAgaS5lLgorICAgICAgICB0aWQgLSBmb3IgdGFibGVzCisgICAgICAgIHZp ZCAtIGZvciBtYXRlcmlhbGl6ZWQgdmlld3MKKyAgICAgICAgIiIiCisgICAg ICAgIGFzc2VydCgndGlkJyBpbiBrd2FyZ3Mgb3IgJ3ZpZCcgaW4ga3dhcmdz KQorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVj dGlvbl9ub2RlKAorICAgICAgICAgIGt3YXJnc1sndGlkJ10gaWYgJ3RpZCcg aW4ga3dhcmdzIGVsc2Uga3dhcmdzWyd2aWQnXQorICAgICAgICAgICkKKwor ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9y IHNlcnZlciwgd2hlbiBhbnkgb2YgdGhlIHNlcnZlci1ncm91cCBub2RlIGlz CisgICAgICAgIGluaXRpYWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAg cmV0dXJuIGRhdGFiYXNlLkRhdGFiYXNlTW9kdWxlLk5PREVfVFlQRQorCisg ICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgbm9kZSBhcyBhIGxl YWYgbm9kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisK KworYmx1ZXByaW50ID0gQ29sdW1uc01vZHVsZShfX25hbWVfXykKKworCitj bGFzcyBDb2x1bW5zVmlldyhQR0NoaWxkTm9kZVZpZXcpOgorICAgICIiIgor ICAgIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcg cm91dGVzIGZvciBDb2x1bW4gbm9kZQorCisgICAgTWV0aG9kczoKKyAgICAt LS0tLS0tCisgICAgKiBfX2luaXRfXygqKmt3YXJncykKKyAgICAgIC0gTWV0 aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgQ29sdW1uVmlldyBhbmQg aXQncyBiYXNlIHZpZXcuCisKKyAgICAqIG1vZHVsZV9qcygpCisgICAgICAt IFRoaXMgcHJvcGVydHkgZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3Rz IGZvciB0aGlzIG5vZGUuCisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVy dHkgZm9yIHlvdXIgb3duIGxvZ2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRp dGlvbigpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMg YSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJh c2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFs c28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVf cGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgQ29s dW1uIG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xsZWN0aW9uLgorCisg ICAgKiBub2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2Vk IHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQKKyAg ICAgICAgY29sbGVjdGlvbiwgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhl IENvbHVtbiBub2RlLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBk aWQsIHNjaWQsIHRpZCwgY2xpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3 aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIENvbHVt biBub2RlCisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIG5l dyBDb2x1bW4gb2JqZWN0CisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwgZGlk LCBzY2lkLCB0aWQsIGNsaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2ls bCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZCBDb2x1bW4gbm9k ZQorCisgICAgKiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIHNjaWQsIHRpZCwg Y2xpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBD b2x1bW4gb2JqZWN0CisKKyAgICAqIG1zcWwoZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdGlkLCBjbGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQg dG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAg ICAgIENvbHVtbiBub2RlCisKKyAgICAqIGdldF9zcWwoZGF0YSwgc2NpZCwg dGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3Fs IGZyb20gbW9kZWwgZGF0YQorCisgICAgKiBzcWwoZ2lkLCBzaWQsIGRpZCwg c2NpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBz cWwgdG8gc2hvdyBpdCBpbiBzcWwgcGFuZSBmb3IgdGhlCisgICAgICAgIHNl bGVjdGVkIENvbHVtbiBub2RlLgorCisgICAgKiBkZXBlbmRlbmN5KGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGUgZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4gZGVwZW5kZW5j eQorICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgQ29sdW1uIG5vZGUu CisKKyAgICAqIGRlcGVuZGVudChnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAg ICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIGRlcGVuZGVudCBs aXN0IHRvIHNob3cgaXQgaW4gZGVwZW5kZW50CisgICAgICAgIHBhbmUgZm9y IHRoZSBzZWxlY3RlZCBDb2x1bW4gbm9kZS4KKyAgICAiIiIKKworICAgIG5v ZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9p ZHMgPSBbCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dp ZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQn fSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30s CisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfSwK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAndGlkJ30KKyAg ICAgICAgICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgICAgICAjIEhlcmUg d2Ugc3BlY2lmeSB0eXBlIGFzIGFueSBiZWNhdXNlIHRhYmxlCisgICAgICAg ICAgICAjIGFyZSBhbHNvIGhhcyAnLScgaW4gdGhlbSBpZiB0aGV5IGFyZSBz eXN0ZW0gdGFibGUKKyAgICAgICAgICAgIHsndHlwZSc6ICdzdHJpbmcnLCAn aWQnOiAnY2xpZCd9CisgICAgICAgICAgICBdCisKKyAgICBvcGVyYXRpb25z ID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dl dCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0Jzog J3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0 JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAgICdjaGlsZHJlbic6 IFt7J2dldCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVzJzogW3sn Z2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdz cWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dl dCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0 cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5k ZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdk ZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAg J21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwK KyAgICAgICAgJ2dldF90eXBlcyc6IFt7J2dldCc6ICdnZXRfdHlwZXMnfSwg eydnZXQnOiAnZ2V0X3R5cGVzJ31dLAorICAgICAgICAnZ2V0X2NvbGxhdGlv bnMnOiBbeydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwgeydnZXQnOiAnZ2V0 X2NvbGxhdGlvbnMnfV0KKyAgICB9KQorCisgICAgZGVmIGNoZWNrX3ByZWNv bmRpdGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVj a3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmlu ZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdl cixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAg ICAgICAgIiIiCisgICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3Jh cCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3Nb MF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQs ZGlkCisgICAgICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAg c2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUiku Y29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAgICAgICAgICAgIGt3YXJnc1sn c2lkJ10KKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9 IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQor ICAgICAgICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJu IGVycm9yIHRvIGJyb3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNv bm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNv bmRpdGlvbl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4 dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0 byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB2ZXIg PSBzZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICAgICAgIyB3ZSB3aWxs IHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cworICAgICAgICAg ICAgaWYgdmVyID49IDkwMjAwOgorICAgICAgICAgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICdjb2x1bW4vc3FsLzkuMl9wbHVzJworICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAnY29sdW1uL3NxbC85LjFfcGx1cycKKyAgICAgICAgICAgICMgQWxsb3dl ZCBBQ0wgZm9yIGNvbHVtbiAnU2VsZWN0L1VwZGF0ZS9JbnNlcnQvUmVmZXJl bmNlcycKKyAgICAgICAgICAgIHNlbGYuYWNsID0gWydhJywgJ3InLCAndycs ICd4J10KKworICAgICAgICAgICAgIyBXZSBuZWVkIHBhcmVudCdzIG5hbWUg ZWcgdGFibGUgbmFtZSBhbmQgc2NoZW1hIG5hbWUKKyAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnZ2V0X3BhcmVudC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGlkPWt3YXJnc1sndGlkJ10pCisgICAgICAgICAg ICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNR TCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0 KQorCisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYSA9IHJvd1snc2NoZW1hJ10KKyAg ICAgICAgICAgICAgICBzZWxmLnRhYmxlID0gcm93Wyd0YWJsZSddCisKKyAg ICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgICAg ICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBnZXRfY29sbGF0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIGNsaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGxpc3Qgb2YgY29sbGF0aW9uIGF2YWls YWJsZSB2aWEgQUpBWCByZXNwb25zZQorICAgICAgICAiIiIKKyAgICAgICAg cmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICB0 cnk6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9jb2xsYXRpb25zLnNxbCdd KSkKKyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0 Wydyb3dzJ106CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7J2xhYmVsJzogcm93Wydjb2xsYXRp b24nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzog cm93Wydjb2xsYXRpb24nXX0KKyAgICAgICAgICAgICAgICAgICAgICAgICkK KyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKworICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3R5cGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2xpZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gbGlz dCBvZiB0eXBlcyBhdmFpbGFibGUgdmlhIEFKQVggcmVzcG9uc2UKKyAgICAg ICAgIiIiCisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6 ICcnfV0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRf dHlwZXMuc3FsJ10pKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2Vs Zi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgICMgQXR0 YWNoaW5nIHByb3BlcnRpZXMgZm9yIHByZWNlc3Npb24KKyAgICAgICAgICAg ICAgICAjICYgbGVuZ3RoIHZhbGlkYXRpb24gZm9yIGN1cnJlbnQgdHlwZQor ICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IEZhbHNlCisgICAgICAgICAg ICAgICAgbGVuZ3RoID0gRmFsc2UKKyAgICAgICAgICAgICAgICBtaW5fdmFs ID0gMAorICAgICAgICAgICAgICAgIG1heF92YWwgPSAwCisKKyAgICAgICAg ICAgICAgICAjIENoZWNrIGFnYWluc3QgUEdPSUQgZm9yIHNwZWNpZmljIHR5 cGUKKyAgICAgICAgICAgICAgICBpZiByb3dbJ2VsZW1vaWQnXToKKyAgICAg ICAgICAgICAgICAgICAgaWYgcm93WydlbGVtb2lkJ10gaW4gKDE1NjAsIDE1 NjEsIDE1NjIsIDE1NjMsIDEwNDIsIDEwNDMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDE0LCAxMDE1KToKKyAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGV2YWwgPSAnTCcKKyAgICAgICAgICAg ICAgICAgICAgZWxpZiByb3dbJ2VsZW1vaWQnXSBpbiAoMTA4MywgMTExNCwg MTExNSwgMTE4MywgMTE4NCwgMTE4NSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMTE4NiwgMTE4NywgMTI2NiwgMTI3 MCk6CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBldmFsID0gJ0QnCisg ICAgICAgICAgICAgICAgICAgIGVsaWYgcm93WydlbGVtb2lkJ10gaW4gKDEy MzEsIDE3MDApOgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXZhbCA9 ICdQJworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZXZhbCA9ICcgJworCisgICAgICAgICAgICAgICAg IyBMb2dpYyB0byBzZXQgcHJlY2lzaW9uICYgbGVuZ3RoL21pbi9tYXggdmFs dWVzCisgICAgICAgICAgICAgICAgaWYgdHlwZXZhbCA9PSAnUCc6CisgICAg ICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IFRydWUKKworICAgICAgICAg ICAgICAgIGlmIHByZWNpc2lvbiBvciB0eXBldmFsIGluICgnTCcsICdEJyk6 CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IFRydWUKKyAgICAgICAg ICAgICAgICAgICAgbWluX3ZhbCA9IDAgaWYgdHlwZXZhbCA9PSAnRCcgZWxz ZSAxCisgICAgICAgICAgICAgICAgICAgIGlmIHByZWNpc2lvbjoKKyAgICAg ICAgICAgICAgICAgICAgICAgIG1heF92YWwgPSAxMDAwCisgICAgICAgICAg ICAgICAgICAgIGVsaWYgbWluX3ZhbDoKKyAgICAgICAgICAgICAgICAgICAg ICAgICMgTWF4IG9mIGludGVnZXIgdmFsdWUKKyAgICAgICAgICAgICAgICAg ICAgICAgIG1heF92YWwgPSAyMTQ3NDgzNjQ3CisgICAgICAgICAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhfdmFsID0g MTAKKworICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeydsYWJlbCc6IHJvd1sndHlwbmFtZSddLCAn dmFsdWUnOiByb3dbJ3R5cG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3R5cHZhbCc6IHR5cGV2YWwsICdwcmVjaXNpb24nOiBwcmVj aXNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsZW5ndGgn OiBsZW5ndGgsICdtaW5fdmFsJzogbWluX3ZhbCwgJ21heF92YWwnOiBtYXhf dmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0 IGFsbCB0aGUgc2NoZW1hIG5vZGVzIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24u CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIGdy b3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIEpTT04gb2YgYXZhaWxhYmxlIGNvbHVtbiBu b2RlcworICAgICAgICAiIiIKKworICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5z cWwnXSksIHRpZD10aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaG93X3N5c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LnNob3dfc3lzdGVt X29iamVjdHMpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQg bm9kZSB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0 IHdpbGwgY3JlYXRlIGFsbCB0aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAg ICAgICB0aWQ6IFRhYmxlIElECisKKyAgICAgICAgUmV0dXJuczoKKyAgICAg ICAgICAgIEpTT04gb2YgYXZhaWxhYmxlIHNjaGVtYSBjaGlsZCBub2Rlcwor ICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25v ZGVzLnNxbCddKSwgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNob3dfc3lzX29iamVjdHM9c2VsZi5ibHVlcHJpbnQuc2hvd19z eXN0ZW1fb2JqZWN0cykKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydy b3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAg ICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUo CisgICAgICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBpY29u PSJpY29uLWNvbHVtbiIKKyAgICAgICAgICAgICAgICAgICAgKSkKKworICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICAgICApCisKKyAgICBkZWYgX2Zvcm1hdHRlcihzZWxmLCBz Y2lkLCB0aWQsIGNsaWQsIGRhdGEpOgorICAgICAgICAiIiIKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgICBzY2lkOiBzY2hlbWEgb2lkCisgICAgICAg ICAgICAgdGlkOiB0YWJsZSBvaWQKKyAgICAgICAgICAgICBjbGlkOiBwb3Np dGlvbiBvZiBjb2x1bW4gaW4gdGFibGUKKyAgICAgICAgICAgICBkYXRhOiBk aWN0IG9mIHF1ZXJ5IHJlc3VsdAorCisgICAgICAgIFJldHVybnM6CisgICAg ICAgICAgICBJdCB3aWxsIHJldHVybiBmb3JtYXR0ZWQgb3V0cHV0IG9mIGNv bGxlY3Rpb25zCisgICAgICAgICIiIgorICAgICAgICAjIFRvIGNoZWNrIGlm IGNvbHVtbiBpcyBwcmltYXJ5IGtleQorICAgICAgICBpZiAnYXR0bnVtJyBp biBkYXRhIGFuZCAnaW5ka2V5JyBpbiBkYXRhOgorICAgICAgICAgICAgIyBD dXJyZW50IGNvbHVtbgorICAgICAgICAgICAgYXR0bnVtID0gc3RyKGRhdGFb J2F0dG51bSddKQorCisgICAgICAgICAgICAjIFNpbmdsZS9MaXN0IG9mIHBy aW1hcnkga2V5IGNvbHVtbihzKQorICAgICAgICAgICAgaW5ka2V5ID0gc3Ry KGRhdGFbJ2luZGtleSddKQorCisgICAgICAgICAgICAjIFdlIHdpbGwgY2hl Y2sgaWYgY29sdW1uIGlzIGluIHByaW1hcnkgY29sdW1uKHMpCisgICAgICAg ICAgICBpZiBhdHRudW0gaW4gaW5ka2V5OgorICAgICAgICAgICAgICAgIGRh dGFbJ2lzX3BrJ10gPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgIGRhdGFbJ2lzX3BrJ10gPSBGYWxzZQorCisgICAgICAgICMg V2UgbmVlZCB0byBmZXRjaCBpbmhlcml0ZWQgdGFibGVzIGZvciBlYWNoIHRh YmxlCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdnZXRfaW5oZXJpdGVkX3RhYmxlcy5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkKQorICAg ICAgICBzdGF0dXMsIGluaF9yZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9aW5oX3JlcykK KyAgICAgICAgZm9yIHJvdyBpbiBpbmhfcmVzWydyb3dzJ106CisgICAgICAg ICAgICBpZiByb3dbJ2F0dHJuYW1lJ10gPT0gZGF0YVsnbmFtZSddOgorICAg ICAgICAgICAgICAgIGRhdGFbJ2lzX2luaGVyaXRlZCddID0gVHJ1ZQorICAg ICAgICAgICAgICAgIGRhdGFbJ3RibHNfaW5oZXJpdGVkJ10gPSByb3dbJ2lu aHJlbG5hbWUnXQorCisgICAgICAgICMgV2UgbmVlZCB0byBmb3JtYXQgdmFy aWFibGVzIGFjY29yZGluZyB0byBjbGllbnQganMgY29sbGVjdGlvbgorICAg ICAgICBpZiAnYXR0b3B0aW9ucycgaW4gZGF0YSBhbmQgZGF0YVsnYXR0b3B0 aW9ucyddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3Bjb3B0aW9ucyA9 IFtdCisgICAgICAgICAgICBmb3Igc3Bjb3B0aW9uIGluIGRhdGFbJ2F0dG9w dGlvbnMnXToKKyAgICAgICAgICAgICAgICBrLCB2ID0gc3Bjb3B0aW9uLnNw bGl0KCc9JykKKyAgICAgICAgICAgICAgICBzcGNvcHRpb25zLmFwcGVuZCh7 J25hbWUnOiBrLCAndmFsdWUnOiB2fSkKKworICAgICAgICAgICAgZGF0YVsn YXR0b3B0aW9ucyddID0gc3Bjb3B0aW9ucworCisgICAgICAgICMgTmVlZCB0 byBmb3JtYXQgc2VjdXJpdHkgbGFiZWxzIGFjY29yZGluZyB0byBjbGllbnQg anMgY29sbGVjdGlvbgorICAgICAgICBpZiAnc2VjbGFiZWxzJyBpbiBkYXRh IGFuZCBkYXRhWydzZWNsYWJlbHMnXSBpcyBub3QgTm9uZToKKyAgICAgICAg ICAgIHNlY2xhYmVscyA9IFtdCisgICAgICAgICAgICBmb3Igc2VjbGJscyBp biBkYXRhWydzZWNsYWJlbHMnXToKKyAgICAgICAgICAgICAgICBrLCB2ID0g c2VjbGJscy5zcGxpdCgnPScpCisgICAgICAgICAgICAgICAgc2VjbGFiZWxz LmFwcGVuZCh7J3Byb3ZpZGVyJzogaywgJ3NlY3VyaXR5X2xhYmVsJzogdn0p CisKKyAgICAgICAgICAgIGRhdGFbJ3NlY2xhYmVscyddID0gc2VjbGFiZWxz CisKKyAgICAgICAgIyBXZSBuZWVkIHRvIHBhcnNlICYgY29udmVydCBBQ0wg Y29taW5nIGZyb20gZGF0YWJhc2UgdG8ganNvbiBmb3JtYXQKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsICdhY2wuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGlkPXRpZCwgY2xpZD1jbGlkKQorICAgICAgICBzdGF0dXMsIGFj bCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPWFjbCkKKworICAgICAgICAjIFdlIHdpbGwg c2V0IGdldCBwcml2aWxlZ2VzIGZyb20gYWNsIHNxbCBzbyB3ZSBkb24ndCBu ZWVkCisgICAgICAgICMgaXQgZnJvbSBwcm9wZXJ0aWVzIHNxbAorICAgICAg ICBkYXRhWydhdHRhY2wnXSA9IFtdCisKKyAgICAgICAgZm9yIHJvdyBpbiBh Y2xbJ3Jvd3MnXToKKyAgICAgICAgICAgIHByaXYgPSBwYXJzZV9wcml2X2Zy b21fZGIocm93KQorICAgICAgICAgICAgZGF0YS5zZXRkZWZhdWx0KHJvd1sn ZGVmdHlwZSddLCBbXSkuYXBwZW5kKHByaXYpCisKKyAgICAgICAgIyB3ZSBh cmUgcmVjZWl2aW5nIHJlcXVlc3Qgd2hlbiBpbiBlZGl0IG1vZGUKKyAgICAg ICAgIyB3ZSB3aWxsIHNlbmQgZmlsdGVyZWQgdHlwZXMgcmVsYXRlZCB0byBj dXJyZW50IHR5cGUKKyAgICAgICAgcHJlc2VudF90eXBlID0gZGF0YVsnY2x0 eXBlJ10KKyAgICAgICAgdHlwZV9pZCA9IGRhdGFbJ2F0dHR5cGlkJ10KKwor ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnaXNfcmVmZXJlbmNlZC5zcWwnXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkLCBjbGlkPWNsaWQpCisKKyAg ICAgICAgc3RhdHVzLCBpc19yZWZlcmVuY2UgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorCisgICAgICAgIGVkaXRfdHlwZXNfbGlzdCA9IGxp c3QoKQorICAgICAgICAjIFdlIHdpbGwgbmVlZCBwcmVzZW50IHR5cGUgaW4g ZWRpdCBtb2RlCisgICAgICAgIGVkaXRfdHlwZXNfbGlzdC5hcHBlbmQocHJl c2VudF90eXBlKQorCisgICAgICAgIGlmIGludChpc19yZWZlcmVuY2UpID09 IDA6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXRfbW9kZV90eXBlcy5zcWwn XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9p ZD10eXBlX2lkKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIGVkaXRfdHlw ZXNfbGlzdC5hcHBlbmQocm93Wyd0eXBuYW1lJ10pCisgICAgICAgIGVsc2U6 CisgICAgICAgICAgICBlZGl0X3R5cGVzX2xpc3QuYXBwZW5kKHByZXNlbnRf dHlwZSkKKworICAgICAgICBkYXRhWydlZGl0X3R5cGVzJ10gPSBlZGl0X3R5 cGVzX2xpc3QKKworICAgICAgICByZXR1cm4gZGF0YQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZCwgY2xpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBv ZiB0aGUgc2VsZWN0ZWQgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAg ICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiAgRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisg ICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQKKworICAgICAgICBSZXR1cm5z OgorICAgICAgICAgICAgSlNPTiBvZiBzZWxlY3RlZCBzY2hlbWEgbm9kZQor ICAgICAgICAiIiIKKworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSks IHRpZD10aWQsIGNsaWQ9Y2xpZAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLCBzaG93X3N5c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LnNob3df c3lzdGVtX29iamVjdHMpCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgIyBNYWtpbmcgY29weSBvZiBv dXRwdXQgZm9yIGZ1dHVyZSB1c2UKKyAgICAgICAgZGF0YSA9IGRpY3QocmVz Wydyb3dzJ11bMF0pCisgICAgICAgIGRhdGEgPSBzZWxmLl9mb3JtYXR0ZXIo c2NpZCwgdGlkLCBjbGlkLCBkYXRhKQorCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPWRhdGEsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworICAgIGRlZiBfY2x0eXBlX2Zvcm1hdHRlcihzZWxmLCB0eXBlKToKKyAg ICAgICAgIiIiCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6 IFR5cGUgc3RyaW5nCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAg IFdlIG5lZWQgdG8gcmVtb3ZlIFtdIGZyb20gdHlwZSBhbmQgYXBwZW5kIGl0 CisgICAgICAgICAgICBhZnRlciBsZW5ndGgvcHJlY2lzaW9uIHNvIHdlIHdp bGwgc2V0IGZsYWcgZm9yCisgICAgICAgICAgICBzcWwgdGVtcGxhdGUKKyAg ICAgICAgIiIiCisgICAgICAgIGlmICdbXScgaW4gdHlwZToKKyAgICAgICAg ICAgIHR5cGUgPSB0eXBlLnJlcGxhY2UoJ1tdJywgJycpCisgICAgICAgICAg ICBzZWxmLmhhc1NxckJyYWNrZXQgPSBUcnVlCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICBzZWxmLmhhc1NxckJyYWNrZXQgPSBGYWxzZQorCisgICAg ICAgIHJldHVybiB0eXBlCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNy ZWF0ZXMgbmV3IHRoZSBzY2hlbWEgb2JqZWN0CisKKyAgICAgICAgIEFyZ3M6 CisgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgIHRpZDog VGFibGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0 LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAg ICAgICAgIHJlcXVlc3QuZGF0YS5kZWNvZGUoKQorICAgICAgICApCisgICAg ICAgIHJlcXVpcmVkX2FyZ3MgPSB7CisgICAgICAgICAgICAnbmFtZSc6ICdO YW1lJywKKyAgICAgICAgICAgICdjbHR5cGUnOiAnVHlwZScKKyAgICAgICAg fQorCisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAg ICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAg ICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAs CisgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoCisgICAg ICAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWly ZWQgcGFyYW1ldGVyICglcykuIiAlCisgICAgICAgICAgICAgICAgICAgICAg ICByZXF1aXJlZF9hcmdzW2FyZ10KKyAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgICkKKworICAgICAgICAjIFBhcnNlIHByaXZpbGVn ZSBkYXRhIGNvbWluZyBmcm9tIGNsaWVudCBhY2NvcmRpbmcgdG8gZGF0YWJh c2UgZm9ybWF0CisgICAgICAgIGlmICdhdHRhY2wnIGluIGRhdGE6CisgICAg ICAgICAgICBkYXRhWydhdHRhY2wnXSA9IHBhcnNlX3ByaXZfdG9fZGIoZGF0 YVsnYXR0YWNsJ10sIHNlbGYuYWNsKQorCisgICAgICAgICMgQWRkaW5nIHBh cmVudCBpbnRvIGRhdGEgZGljdCwgd2lsbCBiZSB1c2luZyBpdCB3aGlsZSBj cmVhdGluZyBzcWwKKyAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNj aGVtYQorICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQorCisg ICAgICAgICMgY2hlY2sgdHlwZSBmb3IgJ1tdJyBpbiBpdAorICAgICAgICBk YXRhWydjbHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3JtYXR0ZXIoZGF0YVsn Y2x0eXBlJ10pCisgICAgICAgIGRhdGFbJ2hhc1NxckJyYWNrZXQnXSA9IHNl bGYuaGFzU3FyQnJhY2tldAorCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgIyB3ZSBuZWVkIG9pZCB0byB0byBhZGQg b2JqZWN0IGluIHRyZWUgYXQgYnJvd3NlcgorICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdnZXRfcG9zaXRpb24uc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpZD10aWQsIGRhdGE9ZGF0YSkKKyAgICAgICAgICAg IHN0YXR1cywgY2xpZCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9dGlkKQor CisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAgICAg ICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgY2xpZCwKKyAgICAgICAgICAgICAgICAg ICAgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAor ICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWNvbHVtbiIKKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBF eGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgdGlkLCBjbGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGVzIGV4aXN0aW5nIHRoZSBzY2hlbWEg b2JqZWN0CisKKyAgICAgICAgIEFyZ3M6CisgICAgICAgICAgIGdpZDogU2Vy dmVyIEdyb3VwIElECisgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgc2NpZDogU2No ZW1hIElECisgICAgICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAgICAgICAg Y2xpZDogQ29sdW1uIElECisgICAgICAgICIiIgorICAgICAgICAjIFdlIHdp bGwgZmlyc3QgZmV0Y2ggdGhlIGNvbHVtbiBuYW1lIGZvciBjdXJyZW50IHJl cXVlc3QKKyAgICAgICAgIyBzbyB0aGF0IHdlIGNyZWF0ZSB0ZW1wbGF0ZSBm b3IgZHJvcHBpbmcgY29sdW1uCisgICAgICAgIHRyeToKKworICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwgdGlkPXRpZCwgY2xpZD1j bGlkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBzaG93 X3N5c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LnNob3dfc3lzdGVtX29iamVj dHMpCisKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBkYXRhID0gZGljdChyZXNb J3Jvd3MnXVswXSkKKyAgICAgICAgICAgICMgV2Ugd2lsbCBhZGQgdGFibGUg JiBzY2hlbWEgYXMgd2VsbAorICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10g PSBzZWxmLnNjaGVtYQorICAgICAgICAgICAgZGF0YVsndGFibGUnXSA9IHNl bGYudGFibGUKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUuc3FsJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0 YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHN1 Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIkNvbHVt biBpcyBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAg ICAgICAgICAgICAgICAgICdpZCc6IGNsaWQsCisgICAgICAgICAgICAgICAg ICAgICd0aWQnOiB0aWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHVw ZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNsaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0 ZXMgZXhpc3RpbmcgdGhlIHNjaGVtYSBvYmplY3QKKworICAgICAgICAgQXJn czoKKyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ RAorICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlk OiBUYWJsZSBJRAorICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQKKyAgICAg ICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVz dC5mb3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkp CisKKyAgICAgICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3 aWxsIGJlIHVzaW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICBk YXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAgIGRhdGFbJ3Rh YmxlJ10gPSBzZWxmLnRhYmxlCisKKyAgICAgICAgIyBjaGVjayB0eXBlIGZv ciAnW10nIGluIGl0CisgICAgICAgIGlmICdjbHR5cGUnIGluIGRhdGE6Cisg ICAgICAgICAgICBkYXRhWydjbHR5cGUnXSA9IHNlbGYuX2NsdHlwZV9mb3Jt YXR0ZXIoZGF0YVsnY2x0eXBlJ10pCisgICAgICAgICAgICBkYXRhWydoYXNT cXJCcmFja2V0J10gPSBzZWxmLmhhc1NxckJyYWNrZXQKKworICAgICAgICB0 cnk6CisgICAgICAgICAgICBTUUwgPSBzZWxmLmdldF9zcWwoc2NpZCwgdGlk LCBjbGlkLCBkYXRhKQorICAgICAgICAgICAgaWYgU1FMIGFuZCBTUUwuc3Ry aXAoJ1xuJykgYW5kIFNRTC5zdHJpcCgnICcpOgorICAgICAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAg ICAgICAgICAgICAgICAgaW5mbz0iQ29sdW1uIHVwZGF0ZWQiLAorICAgICAg ICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAg ICdpZCc6IGNsaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAndGlkJzog dGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwK KyAgICAgICAgICAgICAgICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRhdGUi LAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAg ICAgICAgICAgICdpZCc6IGNsaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAndGlkJzogdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQn OiBzY2lkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg bXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNsaWQ9Tm9u ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGVzIG1vZGlmaWVkIHNxbCBmb3Igc2NoZW1hIG9iamVjdAorCisg ICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAg ICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIGNsaWQ6IENvbHVt biBJRCAoV2hlbiB3b3JraW5nIHdpdGggZXhpc3RpbmcgY29sdW1uKQorICAg ICAgICAiIiIKKyAgICAgICAgZGF0YSA9IGRpY3QoKQorICAgICAgICBmb3Ig aywgdiBpbiByZXF1ZXN0LmFyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgIHRy eToKKyAgICAgICAgICAgICAgICBkYXRhW2tdID0ganNvbi5sb2Fkcyh2KQor ICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAg ICAgZGF0YVtrXSA9IHYKKworICAgICAgICAjIEFkZGluZyBwYXJlbnQgaW50 byBkYXRhIGRpY3QsIHdpbGwgYmUgdXNpbmcgaXQgd2hpbGUgY3JlYXRpbmcg c3FsCisgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gc2VsZi5zY2hlbWEKKyAg ICAgICAgZGF0YVsndGFibGUnXSA9IHNlbGYudGFibGUKKworICAgICAgICAj IGNoZWNrIHR5cGUgZm9yICdbXScgaW4gaXQKKyAgICAgICAgaWYgJ2NsdHlw ZScgaW4gZGF0YToKKyAgICAgICAgICAgIGRhdGFbJ2NsdHlwZSddID0gc2Vs Zi5fY2x0eXBlX2Zvcm1hdHRlcihkYXRhWydjbHR5cGUnXSkKKyAgICAgICAg ICAgIGRhdGFbJ2hhc1NxckJyYWNrZXQnXSA9IHNlbGYuaGFzU3FyQnJhY2tl dAorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHNlbGYuZ2V0 X3NxbChzY2lkLCB0aWQsIGNsaWQsIGRhdGEpCisKKyAgICAgICAgICAgIGlm IFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToK KyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1TUUwsCisgICAgICAgICAg ICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgZGVmIGdldF9zcWwoc2VsZiwgc2NpZCwgdGlkLCBj bGlkLCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBnZW5yYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKyAgICAgICAg IiIiCisgICAgICAgIGlmIGNsaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLCB0aWQ9dGlkLCBjbGlkPWNs aWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHNob3df c3lzX29iamVjdHM9c2VsZi5ibHVlcHJpbnQuc2hvd19zeXN0ZW1fb2JqZWN0 cykKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0gZGljdChy ZXNbJ3Jvd3MnXVswXSkKKyAgICAgICAgICAgICMgV2Ugd2lsbCBhZGQgdGFi bGUgJiBzY2hlbWEgYXMgd2VsbAorICAgICAgICAgICAgb2xkX2RhdGEgPSBz ZWxmLl9mb3JtYXR0ZXIoc2NpZCwgdGlkLCBjbGlkLCBvbGRfZGF0YSkKKwor ICAgICAgICAgICAgIyBJZiBuYW1lIGlzIG5vdCBwcmVzZW50IGluIGRhdGEg dGhlbgorICAgICAgICAgICAgIyB3ZSB3aWxsIGZldGNoIGl0IGZyb20gb2xk IGRhdGEsIHdlIGFsc28gbmVlZCBzY2hlbWEgJiB0YWJsZSBuYW1lCisgICAg ICAgICAgICBpZiAnbmFtZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAg ICAgZGF0YVsnbmFtZSddID0gb2xkX2RhdGFbJ25hbWUnXQorCisgICAgICAg ICAgICAjIENvbnZlcnQgYWNsIGNvbWluZyBmcm9tIGNsaWVudCBpbiBkYiBw YXJzaW5nIGZvcm1hdAorICAgICAgICAgICAga2V5ID0gJ2F0dGFjbCcKKyAg ICAgICAgICAgIGlmIGtleSBpbiBkYXRhIGFuZCBkYXRhW2tleV0gaXMgbm90 IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgJ2FkZGVkJyBpbiBkYXRhW2tl eV06CisgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XVsnYWRkZWQnXSA9 IHBhcnNlX3ByaXZfdG9fZGIoCisgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtrZXldWydhZGRlZCddLCBzZWxmLmFjbAorICAgICAgICAgICAgICAgICAg ICApCisgICAgICAgICAgICAgICAgaWYgJ2NoYW5nZWQnIGluIGRhdGFba2V5 XToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydjaGFuZ2VkJ10g PSBwYXJzZV9wcml2X3RvX2RiKAorICAgICAgICAgICAgICAgICAgICAgIGRh dGFba2V5XVsnY2hhbmdlZCddLCBzZWxmLmFjbAorICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgaWYgJ2RlbGV0ZWQnIGluIGRhdGFb a2V5XToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydkZWxldGVk J10gPSBwYXJzZV9wcml2X3RvX2RiKAorICAgICAgICAgICAgICAgICAgICAg IGRhdGFba2V5XVsnZGVsZXRlZCddLCBzZWxmLmFjbAorICAgICAgICAgICAg ICAgICAgICApCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAndXBkYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICBkYXRhPWRh dGEsIG9fZGF0YT1vbGRfZGF0YSwgY29ubj1zZWxmLmNvbm4KKyAgICAgICAg ICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXF1aXJl ZF9hcmdzID0gWworICAgICAgICAgICAgICAgICduYW1lJywKKyAgICAgICAg ICAgICAgICAnY2x0eXBlJworICAgICAgICAgICAgXQorCisgICAgICAgICAg ICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAgICAg aWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICByZXR1 cm4gZ2V0dGV4dCgnLS0gaW5jb21wbGV0ZSBkZWZpbml0aW9uJykKKworICAg ICAgICAgICAgIyBXZSB3aWxsIGNvbnZlcnQgcHJpdmlsZWdlcyBjb21pbmcg ZnJvbSBjbGllbnQgcmVxdWlyZWQKKyAgICAgICAgICAgICMgaW4gc2VydmVy IHNpZGUgZm9ybWF0CisgICAgICAgICAgICBpZiAnYXR0YWNsJyBpbiBkYXRh OgorICAgICAgICAgICAgICAgIGRhdGFbJ2F0dGFjbCddID0gcGFyc2VfcHJp dl90b19kYihkYXRhWydhdHRhY2wnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hY2wpCisgICAg ICAgICAgICAjIElmIHRoZSByZXF1ZXN0IGZvciBuZXcgb2JqZWN0IHdoaWNo IGRvIG5vdCBoYXZlIGRpZAorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgIHJldHVybiBTUUwK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2xpZCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGVzIHJldmVy c2UgZW5naW5lZXJlZCBzcWwgZm9yIHNjaGVtYSBvYmplY3QKKworICAgICAg ICAgQXJnczoKKyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAg ICAgdGlkOiBUYWJsZSBJRAorICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQK KyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAncHJvcGVydGllcy5zcWwnXSksIHRpZD10aWQsIGNsaWQ9Y2xpZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgc2hvd19zeXNfb2Jq ZWN0cz1zZWxmLmJsdWVwcmludC5zaG93X3N5c3RlbV9vYmplY3RzKQorCisg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgZGF0YSA9IGRpY3QocmVzWydyb3dzJ11b MF0pCisgICAgICAgICAgICAjIFdlIGRvIG5vdCB3YW50IHRvIGRpc3BsYXkg bGVuZ3RoIGFzIC0xIGluIGNyZWF0ZSBxdWVyeQorICAgICAgICAgICAgaWYg J2F0dGxlbicgaW4gZGF0YSBhbmQgZGF0YVsnYXR0bGVuJ10gPT0gLTE6Cisg ICAgICAgICAgICAgICAgZGF0YVsnYXR0bGVuJ10gPSAnJworICAgICAgICAg ICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxsIGJlIHVz aW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICAgICAgZGF0YVsn c2NoZW1hJ10gPSBzZWxmLnNjaGVtYQorICAgICAgICAgICAgZGF0YVsndGFi bGUnXSA9IHNlbGYudGFibGUKKyAgICAgICAgICAgICMgY2hlY2sgdHlwZSBm b3IgJ1tdJyBpbiBpdAorICAgICAgICAgICAgaWYgJ2NsdHlwZScgaW4gZGF0 YToKKyAgICAgICAgICAgICAgICBkYXRhWydjbHR5cGUnXSA9IHNlbGYuX2Ns dHlwZV9mb3JtYXR0ZXIoZGF0YVsnY2x0eXBlJ10pCisgICAgICAgICAgICAg ICAgZGF0YVsnaGFzU3FyQnJhY2tldCddID0gc2VsZi5oYXNTcXJCcmFja2V0 CisKKyAgICAgICAgICAgICMgV2Ugd2lsbCBhZGQgdGFibGUgJiBzY2hlbWEg YXMgd2VsbAorICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2Zvcm1hdHRlcihz Y2lkLCB0aWQsIGNsaWQsIGRhdGEpCisKKyAgICAgICAgICAgIFNRTCA9IHNl bGYuZ2V0X3NxbChzY2lkLCB0aWQsIE5vbmUsIGRhdGEpCisKKyAgICAgICAg ICAgIHNxbF9oZWFkZXIgPSAiLS0gQ29sdW1uOiB7MH1cblxuLS0gIi5mb3Jt YXQoZGF0YVsnbmFtZSddKQorICAgICAgICAgICAgc3FsX2hlYWRlciArPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNv bm4pCisgICAgICAgICAgICBTUUwgPSBzcWxfaGVhZGVyICsgJ1xuXG4nICsg U1FMCisKKyAgICAgICAgICAgIHJldHVybiBTUUwKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW50cyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNsaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJl dHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgY29sdW1uIG5v ZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVy IEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2No ZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAg ICBjbGlkOiBDb2x1bW4gSUQKKyAgICAgICAgIiIiCisgICAgICAgICMgU3Bl Y2lmaWMgY29uZGl0aW9uIGZvciBjb2x1bW4gd2hpY2ggd2UgbmVlZCB0byBh cHBlbmQKKyAgICAgICAgd2hlcmUgPSAiV0hFUkUgZGVwLnJlZm9iamlkPXsw fTo6T0lEIEFORCBkZXAucmVmb2Jqc3ViaWQ9ezF9Ii5mb3JtYXQoCisgICAg ICAgICAgICB0aWQsIGNsaWQKKyAgICAgICAgKQorCisgICAgICAgIGRlcGVu ZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cygKKyAgICAgICAg ICAgIHNlbGYuY29ubiwgY2xpZCwgd2hlcmU9d2hlcmUpCisKKyAgICAgICAg IyBTcGVjaWZpYyBzcWwgdG8gcnVuIGFnYWludCBjb2x1bW4gdG8gZmV0Y2gg ZGVwZW5kZW50cworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZGVwZW5kLnNxbCddKSwgd2hlcmU9 d2hlcmUpCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dzJ106CisgICAg ICAgICAgICByZWZfbmFtZSA9IHJvd1sncmVmbmFtZSddCisgICAgICAgICAg ICBpZiByZWZfbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRp bnVlCisKKyAgICAgICAgICAgIGRlcF90eXBlID0gJycKKyAgICAgICAgICAg IGRlcF9zdHIgPSByb3dbJ2RlcHR5cGUnXQorICAgICAgICAgICAgaWYgZGVw X3N0ciA9PSAnYSc6CisgICAgICAgICAgICAgICAgZGVwX3R5cGUgPSAnYXV0 bycKKyAgICAgICAgICAgIGVsaWYgZGVwX3N0ciA9PSAnbic6CisgICAgICAg ICAgICAgICAgZGVwX3R5cGUgPSAnbm9ybWFsJworICAgICAgICAgICAgZWxp ZiBkZXBfc3RyID09ICdpJzoKKyAgICAgICAgICAgICAgICBkZXBfdHlwZSA9 ICdpbnRlcm5hbCcKKworICAgICAgICAgICAgZGVwZW5kZW50c19yZXN1bHQu YXBwZW5kKHsndHlwZSc6ICdzZXF1ZW5jZScsICduYW1lJzogcmVmX25hbWUs ICdmaWVsZCc6IGRlcF90eXBlfSkKKworICAgICAgICByZXR1cm4gYWpheF9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRz X3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk LCBjbGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNl CisgICAgICAgIGZvciB0aGUgY29sdW1uIG5vZGUuCisKKyAgICAgICAgQXJn czoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAg ICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFz ZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAg ICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQK KworICAgICAgICAiIiIKKyAgICAgICAgIyBTcGVjaWZpYyBjb25kaXRpb24g Zm9yIGNvbHVtbiB3aGljaCB3ZSBuZWVkIHRvIGFwcGVuZAorICAgICAgICB3 aGVyZSA9ICJXSEVSRSBkZXAub2JqaWQ9ezB9OjpPSUQgQU5EIGRlcC5vYmpz dWJpZD17MX0iLmZvcm1hdCgKKyAgICAgICAgICAgIHRpZCwgY2xpZAorICAg ICAgICApCisKKyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYu Z2V0X2RlcGVuZGVuY2llcygKKyAgICAgICAgICAgIHNlbGYuY29ubiwgY2xp ZCwgd2hlcmU9d2hlcmUpCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jl c3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICAgICAgKQorCisKK0NvbHVtbnNWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhi bHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29sdW1ucy9zdGF0aWMvaW1nL2NvbGwtY29sdW1uLnBuZyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb2x1bW5zL3N0YXRpYy9pbWcvY29sbC1jb2x1bW4u cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZDc1ODgzNGQ0MTc2YzFk ZjI1NDhkYjEwYjQ2YjFmNmIyZTRlYzUKR0lUIGJpbmFyeSBwYXRjaApsaXRl cmFsIDQwMAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxg R2JLfWN6e29jRTA5KjRgaDNFdiZzKG0meUw8UVUKeikyQzBMSiR1JV58OVNH PDxNLX59ZC0oOS12U3JLT3ltXzszLU1XYEFVIz91YWFfIW8rPih7UztfM0c5 MD1nJUtKCnpjPH1vNT5rbDczZUVhcm8kQnJFdkhmLTNxYXBVKnotYH5Ee1Rh dGdNNktGSkpOc3dQS2dUdTJNWCtSRVZmayRMOQp6a29FdiR4MEJnK0t0X1M1 aShgbnk8PUZHP1Zoc3ZCdGB9VzRFQFpRZ19fcDZxbUBuYnk7cXJHMWowX0lA Y14oO3IKenVoUCkyWDxEX1A/ZHRpMiR2enl2KGsoVipvP2Y/SDxpP2dYaVJB KW1oVFVwd29mUW4qUDhgfExXdz1NY05hWFEhCnp5K3FAQFlkMG0xeWxGM2Z7 KEFuXy1FViQhUDRMXiNfYDA5dmgrPWNXOD0mMilDOVYtQURUeVZpUj4/KUZL I0laMAp6enxjVX4mYDgoN0Z2UTVmJUVae3AjNjtWYClYS29YVnkzRGJpaVhf JGwrM2hCaHowe291bStIN0QrNG8jaEV2bCsKUio4bnZ6YylJJHp0YUQwZTBz I0JZciFAY28KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3N0YXRpYy9pbWcvY29s dW1uLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3N0YXRp Yy9pbWcvY29sdW1uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDlm ODFkZjk4ZmUyN2Q4MWFkZTUxNDRkNjZiM2IwOWI5NjEyM2MxCkdJVCBiaW5h cnkgcGF0Y2gKbGl0ZXJhbCA0MzUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2 cF4wd0IhNjM/d3lsYEdiS31YQEYwTkUwOSo0YGgzRXYmcyhtJnlMPFFVCnp5 P2dpVy1AcEkjPkM8UD1wMCkzUHpISGdEPWcqKE5jPTYpUm4+WHYkdCRYP008 O3M7U1NGQmpFY0oxMnI+KHs/fQp6XzNGV2MyTS1AVWVEdnRpPmVaeyl0WFo+ WikyMHN9S0Q+VllgcVFVUnBGZTs4YHR8RiNae0skOCpzKT41aEsoQ0gKemUq Z2FjP2MyQlMtbzQ5ZUtlIVpWRj1JKVBVb2VCaXZtMHFaNHJoVCFXSEZIVDBB c2g0Kj4qcmlzaSV1JGh7V2FFCnpeQjBBaDZhLW9tNFJtLWl1VjMrWDxvMnJt P3x3JH0/ISFlTl95MCpkY1RfT1JiNng3QT17NmN1PF42WH1rWTJJYgp6WjBU TUhyaWgxSV5DVWheZCVAPHkpM1R2T3YmSzZpSH4tUkNUZFZVNmN6TWU5Kmh+ MWx7VlMxXyhEM345UDZfcTQKemdYaSspKSE2RV58OXhmckIqR3pJLVRBKV49 bTZDYypOQnBvI0ZBOTI8ZjJweyNiOUokWHJPQ29xLSRVcFZxez10CnpWcipx JXFIU1BtV25mQDJRJmtRe0x2RFViVz9DZ2dnTWxTajE0eS0lZmYrPUBzcCs5 PmZFcE0pVUh4M3ZJVkNnIQpFME5ScW5afnk9UgoKbGl0ZXJhbCAwCkhjbVY/ ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9qcy9jb2x1bW4uanMgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL2pzL2Nv bHVtbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x YjhkMzIxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9qcy9jb2x1bW4uanMKQEAg LTAsMCArMSw0MTkgQEAKK2RlZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAn dW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywg J3BnYWRtaW4uYnJvd3NlcicsCisgICAgICAgICdiYWNrZm9ybScsICdhbGVy dGlmeScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rp b24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBCYWNrZm9ybSwgYWxl cnRpZnkpIHsKKworICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1jb2x1 bW4nXSkgeworICAgIHZhciBkYXRhYmFzZXMgPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZXNbJ2NvbGwtY29sdW1uJ10gPQorICAgICAgcGdBZG1pbi5Ccm93c2Vy LkNvbGxlY3Rpb24uZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ2NvbHVtbics CisgICAgICAgIGxhYmVsOiAne3sgXygnQ29sdW1ucycpIH19JywKKyAgICAg ICAgdHlwZTogJ2NvbGwtY29sdW1uJywKKyAgICAgICAgY29sdW1uczogWydu YW1lJywgJ2F0dHR5cGlkJywgJ2Rlc2NyaXB0aW9uJ10KKyAgICAgIH0pOwor ICB9OworCisgICAvLyBUaGlzIE5vZGUgbW9kZWwgd2lsbCBiZSB1c2VkIGZv ciB2YXJpYWJsZSBjb250cm9sIGZvciBjb2x1bW4KKyAgIHZhciBWYXJpYWJs ZXNNb2RlbCA9IEJhY2tmb3JtLlZhcmlhYmxlc01vZGVsID0gcGdBZG1pbi5C cm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogewor ICAgICAgbmFtZTogbnVsbCwKKyAgICAgIHZhbHVlOiBudWxsCisgICAgfSwK KyAgICBzY2hlbWE6IFt7CisgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7 IF8oJ05hbWUnKSB9fScsIGNlbGw6ICdzZWxlY3QyJywKKyAgICAgIHR5cGU6 ICd0ZXh0JywgZGlzYWJsZWQ6IGZhbHNlLCBub2RlOiAnY29sdW1uJywKKyAg ICAgIG9wdGlvbnM6IFtbJ25fZGlzdGluY3QnLCAnbl9kaXN0aW5jdCddLAor ICAgICAgWyduX2Rpc3RpbmN0X2luaGVyaXRlZCcsJ25fZGlzdGluY3RfaW5o ZXJpdGVkJ11dLAorICAgICAgc2VsZWN0Mjoge3BsYWNlaG9sZGVyOiAiU2Vs ZWN0IHZhcmlhYmxlIn0sCisgICAgICBjZWxsSGVhZGVyQ2xhc3Nlczond2lk dGhfcGVyY2VudF81MCcKKyAgICB9LHsKKyAgICAgIGlkOiAndmFsdWUnLCBs YWJlbDogJ3t7IF8oJ1ZhbHVlJykgfX0nLAorICAgICAgdHlwZTogJ3RleHQn LCBkaXNhYmxlZDogZmFsc2UsCisgICAgICBjZWxsSGVhZGVyQ2xhc3Nlczon d2lkdGhfcGVyY2VudF81MCcKKyAgICB9XSwKKyAgICB2YWxpZGF0ZTogZnVu Y3Rpb24oKSB7CisgICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAgZXJy bXNnID0gbnVsbDsKKworICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5n ZXQoJ3ZhbHVlJykpIHx8CisgICAgICAgIF8uaXNOdWxsKHRoaXMuZ2V0KCd2 YWx1ZScpKSB8fAorICAgICAgICBTdHJpbmcodGhpcy5nZXQoJ3ZhbHVlJykp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIGVycm1zZyA9ICAne3sgXygnUGxlYXNlIHByb3ZpZGUgaW5wdXQgZm9y IHZhcmlhYmxlLicpfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVs LnNldCgndmFsdWUnLCBlcnJtc2cpOworICAgICAgICAgICAgcmV0dXJuIGVy cm1zZzsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5l cnJvck1vZGVsLnVuc2V0KCd2YWx1ZScpOworICAgICAgICAgIH0KKyAgICAg IHJldHVybiBudWxsOworICAgIH0KKyAgfSk7CisKKworICBpZiAoIXBnQnJv d3Nlci5Ob2Rlc1snY29sdW1uJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIu Tm9kZXNbJ2NvbHVtbiddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5k KHsKKyAgICAgIHBhcmVudF90eXBlOiBbJ3RhYmxlJywgJ3ZpZXcnLCAnbWF0 ZXJpYWxpemVkX3ZpZXcnXSwKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTogWydj b2xsLXRhYmxlJ10sCisgICAgICB0eXBlOiAnY29sdW1uJywKKyAgICAgIGxh YmVsOiAne3sgXygnQ29sdW1uJykgfX0nLAorICAgICAgaGFzU1FMOiAgdHJ1 ZSwKKyAgICAgIGNhbkRyb3A6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBk YXRhKXsKKyAgICAgICAgaWYgKHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10u Y2FuQ2hpbGREcm9wLmFwcGx5KHRoaXMsIFtpdGVtRGF0YSwgaXRlbSwgZGF0 YV0pKSB7CisgICAgICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwgaSA9 IGl0ZW0sIGQgPSBpdGVtRGF0YSwgcGFyZW50cyA9IFtdOworICAgICAgICAg IC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2Rl CisgICAgICAgICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAgIC8vIElmIGl0 IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gYyByZWF0ZSB0YWJsZQor ICAgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3ZpZXcnLCAnbWF0ZXJpYWxp emVkX3ZpZXcnXSwgZC5fdHlwZSkgPiAtMSkgeworICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJl bnRzLnB1c2goZC5fdHlwZSk7CisgICAgICAgICAgICBpID0gdC5oYXNQYXJl bnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBkID0g aSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOworICAgICAgICAgIH0KKyAgICAg ICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIGhhc0RlcGVuZHM6IHRydWUs CisgICAgICBJbml0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgLyogQXZvaWQg bXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCisgICAgICAgIGlm ICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuOworCisg ICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICAgIHBn QnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRl X2NvbHVtbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwtY29sdW1uJywgbW9kdWxl OiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRl eHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAg ICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDog J3t7IF8oJ0NvbHVtbi4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NU YWJJY29uIGljb24tY29sdW1uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScs IGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUn CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfY29sdW1u Jywgbm9kZTogJ2NvbHVtbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBh cHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hv d19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVh dGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdDb2x1bW4uLi4nKSB9 fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWNvbHVtbics IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAg ICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX2NvbHVtbl9vblRhYmxlJywgbm9kZTogJ3Rh YmxlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2Jq ZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0 aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5 OiA0LCBsYWJlbDogJ3t7IF8oJ0NvbHVtbi4uLicpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tY29sdW1uJywgZGF0YToge2FjdGlv bjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6 ICdjYW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAgICB9 LAorICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4 dGVuZCh7CisgICAgICAgIGRlZmF1bHRzOiB7CisgICAgICAgICAgYXR0bmFt ZTogdW5kZWZpbmVkLAorICAgICAgICAgIGF0dG93bmVyOiB1bmRlZmluZWQs CisgICAgICAgICAgYXR0dHlwaWQ6IHVuZGVmaW5lZCwKKyAgICAgICAgICBh dHRudW06IHVuZGVmaW5lZCwKKyAgICAgICAgICBjbHR5cGU6IHVuZGVmaW5l ZCwKKyAgICAgICAgICBjb2xsc3BjbmFtZTogdW5kZWZpbmVkLAorICAgICAg ICAgIGF0dGFjbDogdW5kZWZpbmVkLAorICAgICAgICAgIGRlc2NyaXB0aW9u OiB1bmRlZmluZWQsCisgICAgICAgICAgcGFyZW50X3RibDogdW5kZWZpbmVk LAorICAgICAgICAgIG1pbl92YWw6IHVuZGVmaW5lZCwKKyAgICAgICAgICBt YXhfdmFsOiB1bmRlZmluZWQsCisgICAgICAgICAgZWRpdF90eXBlczogdW5k ZWZpbmVkLAorICAgICAgICAgIHByaW1hcnlfa2V5OiBmYWxzZQorICAgICAg ICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAgLy8gTmVlZCB0 byBzaG93IHRoaXMgZmllbGQgb25seSB3aGVuIGNyZWF0aW5nIG5ldyB0YWJs ZSBbaW4gU3ViTm9kZSBjb250cm9sXQorICAgICAgICAgIGlkOiAncHJpbWFy eV9rZXknLCBsYWJlbDogJ3t7IF8oJ1ByaW1hcnkgS2V5PycpIH19JywgY2Vs bDogJ3N3aXRjaCcsCisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIGRpc2Fi bGVkOiAnaW5TY2hlbWFXaXRoQ29sdW1uQ2hlY2snLAorICAgICAgICAgIGVk aXRhYmxlOiB0cnVlLAorICAgICAgICAgIGNlbGxIZWFkZXJDbGFzc2VzOid3 aWR0aF9wZXJjZW50XzEwJywKKyAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChtLm5v ZGVfaW5mb1sndGFibGUnXSk7CisgICAgICAgICAgfQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8oJ05hbWUnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg ZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhDb2x1bW5DaGVjaycsCisgICAgICAg ICAgY2VsbEhlYWRlckNsYXNzZXM6J3dpZHRoX3BlcmNlbnRfMzAnCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAnYXR0bnVtJywgbGFiZWw6J3t7IF8o J1Bvc2l0aW9uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0 eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBtb2RlOiBbJ3By b3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2NsdHlw ZScsIGxhYmVsOid7eyBfKCdEYXRhIHR5cGUnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNj aGVtYVdpdGhDb2x1bW5DaGVjaycsCisgICAgICAgICAgY29udHJvbDogJ25v ZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0X3R5cGVzJywgbm9kZTogJ3Rh YmxlJywKKyAgICAgICAgICBjZWxsSGVhZGVyQ2xhc3Nlczond2lkdGhfcGVy Y2VudF8zMCcsCisgICAgICAgICAgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBm YWxzZSB9LCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAg ICAgICAgdHJhbnNmb3JtOiBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAg ICAgIC8qIFdlIG5lZWQgZGlmZmVyZW50IGRhdGEgaW4gY3JlYXRlIG1vZGUg JiBpbiBlZGl0IG1vZGUKKyAgICAgICAgICAgICAgICogaWYgd2UgYXJlIGlu IGNyZWF0ZSBtb2RlIHRoZW4gcmV0dXJuIGRhdGEgYXMgaXQgaXMKKyAgICAg ICAgICAgICAgICogaWYgd2UgYXJlIGluIGVkaXQgbW9kZSB0aGVuIHdlIG5l ZWQgdG8gZmlsdGVyIGRhdGEKKyAgICAgICAgICAgICAgICovCisgICAgICAg ICAgICAgIHRoaXMubW9kZWwuZGF0YXR5cGVzID0gZGF0YTsKKyAgICAgICAg ICAgICAgdmFyIGVkaXRfdHlwZXMgPSB0aGlzLm1vZGVsLmdldCgnZWRpdF90 eXBlcycpLAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFtdOworICAgICAg ICAgICAgICBpZih0aGlzLm1vZGVsLmlzTmV3KCkpIHsKKyAgICAgICAgICAg ICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICAvL2VkaXQgbW9kZQorICAgICAgICAgICAgICAgIF8u ZWFjaChkYXRhLCBmdW5jdGlvbih0KSB7CisgICAgICAgICAgICAgICAgICBp ZiAoXy5pbmRleE9mKGVkaXRfdHlwZXMsIHQudmFsdWUpICE9IC0xKSB7Cisg ICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHQpOworICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAgLy8gTmVlZCB0byBzaG93 IHRoaXMgZmllbGQgb25seSB3aGVuIGNyZWF0aW5nIG5ldyB0YWJsZSBbaW4g U3ViTm9kZSBjb250cm9sXQorICAgICAgICAgIGlkOiAnaW5oZXJpdGVkZnJv bScsIGxhYmVsOiAne3sgXygnSW5oZXJpdGVkIGZyb20gdGFibGUnKSB9fScs CisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZSwgZWRp dGFibGU6IGZhbHNlLAorICAgICAgICAgIGNlbGxIZWFkZXJDbGFzc2VzOid3 aWR0aF9wZXJjZW50XzMwJywKKyAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChtLm5v ZGVfaW5mb1sndGFibGUnXSk7CisgICAgICAgICAgfQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ2F0dGxlbicsIGxhYmVsOid7eyBfKCdMZW5ndGgn KSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgICBkZXBzOiBbJ2Ns dHlwZSddLCB0eXBlOiAnaW50JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9u JykgfX0nLAorICAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgewor ICAgICAgICAgICAgIHZhciBvZl90eXBlID0gbS5nZXQoJ2NsdHlwZScpLAor ICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CisgICAgICAgICAgICAgIF8u ZWFjaChtLmRhdGF0eXBlcywgZnVuY3Rpb24obykgeworICAgICAgICAgICAg ICAgIGlmICggb2ZfdHlwZSA9PSBvLnZhbHVlICkgeworICAgICAgICAgICAg ICAgICAgICBpZihvLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFsJywgby5taW5f dmFsLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICAgICAg bS5zZXQoJ21heF92YWwnLCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsK KyAgICAgICAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7CisgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIH0pOworICAgICAgICAgICAgICByZXR1cm4gZmxhZzsKKyAgICAgICAg ICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2F0dHByZWNpc2lv bicsIGxhYmVsOid7eyBfKCdQcmVjaXNpb24nKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgICBkZXBzOiBbJ2NsdHlwZSddLCB0eXBlOiAnaW50 JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAg ICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgIHZhciBv Zl90eXBlID0gbS5nZXQoJ2NsdHlwZScpLAorICAgICAgICAgICAgICAgZmxh ZyA9IHRydWU7CisgICAgICAgICAgICAgIF8uZWFjaChtLmRhdGF0eXBlcywg ZnVuY3Rpb24obykgeworICAgICAgICAgICAgICAgIGlmICggb2ZfdHlwZSA9 PSBvLnZhbHVlICkgeworICAgICAgICAgICAgICAgICAgICBpZihvLnByZWNp c2lvbikKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICAgIG0uc2V0KCdtaW5fdmFsJywgby5taW5fdmFsLCB7c2lsZW50OiB0 cnVlfSk7CisgICAgICAgICAgICAgICAgICAgICAgbS5zZXQoJ21heF92YWwn LCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICAgICAg ICAgICAgICBmbGFnID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0pOworICAgICAg ICAgICAgICByZXR1cm4gZmxhZzsKKyAgICAgICAgICAgfQorICAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdjb2xsc3BjbmFtZScsIGxhYmVsOid7eyBf KCdDb2xsYXRpb24nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENo ZWNrJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMn LCB1cmw6ICdnZXRfY29sbGF0aW9ucycsCisgICAgICAgICAgZ3JvdXA6ICd7 eyBfKCdEZWZpbml0aW9uJykgfX0nLCBub2RlOiAnY29sbGF0aW9uJworICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ2RlZnZhbCcsIGxhYmVsOid7eyBf KCdEZWZhdWx0IFZhbHVlJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoQ29s dW1uQ2hlY2snLAorICAgICAgICAgIGdyb3VwOiAne3sgXygnRGVmaW5pdGlv bicpIH19JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2F0dG5vdG51 bGwnLCBsYWJlbDone3sgXygnTm90IE5VTEwnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2lu U2NoZW1hV2l0aENvbHVtbkNoZWNrJywKKyAgICAgICAgICBncm91cDogJ3t7 IF8oJ0RlZmluaXRpb24nKSB9fScKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdhdHRzdGF0dGVyZ2V0JywgbGFiZWw6J3t7IF8oJ1N0YXRpc3RpY3Mn KSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0 JywgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhDb2x1bW5DaGVjaycsIG1vZGU6 IFsncHJvcGVydGllcycsICdlZGl0J10sCisgICAgICAgICAgZ3JvdXA6ICd7 eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAgIH0seworICAgICAgICAg IGlkOiAnYXR0c3RvcmFnZScsIGxhYmVsOid7eyBfKCdTdG9yYWdlJykgfX0n LCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAg dHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCddLAor ICAgICAgICAgIGNlbGw6ICdzdHJpbmcnLCBkaXNhYmxlZDogJ2luU2NoZW1h V2l0aENvbHVtbkNoZWNrJywKKyAgICAgICAgICBjb250cm9sOiAnc2VsZWN0 MicsIHNlbGVjdDI6IHsgcGxhY2Vob2xkZXI6ICJTZWxlY3Qgc3RvcmFnZSIs CisgICAgICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgICAg IHdpZHRoOiAiMTAwJSIKKyAgICAgICAgICB9LAorICAgICAgICAgIG9wdGlv bnM6IFsKKyAgICAgICAgICAgIHtsYWJlbDogIlBMQUlOIiwgdmFsdWU6ICJw In0sCisgICAgICAgICAgICB7bGFiZWw6ICJNQUlOIiwgdmFsdWU6ICJtIn0s CisgICAgICAgICAgICB7bGFiZWw6ICJFWFRFUk5BTCIsIHZhbHVlOiAiZSJ9 LAorICAgICAgICAgICAge2xhYmVsOiAiRVhURU5ERUQiLCB2YWx1ZTogIngi fSwKKyAgICAgICAgICAgXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J2lzX3BrJywgbGFiZWw6J3t7IF8oJ1ByaW1hcnkga2V5PycpIH19JywKKyAg ICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6IHRydWUsIG1vZGU6 IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn aXNfZmsnLCBsYWJlbDone3sgXygnRm9yZWlnbiBrZXk/JykgfX0nLAorICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTog Wydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdp c19pbmhlcml0ZWQnLCBsYWJlbDone3sgXygnSW5oZXJpdGVkPycpIH19JywK KyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6IHRydWUsIG1v ZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAndGJsc19pbmhlcml0ZWQnLCBsYWJlbDone3sgXygnSW5oZXJpdGVkIGZy b20gdGFibGUocyknKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBk aXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sIGRlcHM6IFsn aXNfaW5oZXJpdGVkJ10sCisgICAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24o bSkgeworICAgICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQobS5nZXQo J2lzX2luaGVyaXRlZCcpKSAmJiBtLmdldCgnaXNfaW5oZXJpdGVkJykpIHsK KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAg fSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnaXNfc3lzX2NvbHVtbicsIGxhYmVsOid7eyBfKCdTeXN0ZW0g Q29sdW1uPycpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlw ZTogJ3N3aXRjaCcsIGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Rlc2NyaXB0aW9u JywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBtb2RlOiBbJ3Byb3Bl cnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICBkaXNhYmxl ZDogJ2luU2NoZW1hJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2F0 dGFjbCcsIGxhYmVsOiAnUHJpdmlsZWdlcycsIHR5cGU6ICdjb2xsZWN0aW9u JywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1NlY3VyaXR5JykgfX0nLCBj b250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywKKyAgICAgICAgICBt b2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuUHJpdmlsZWdlUm9sZU1vZGVs LmV4dGVuZCh7CisgICAgICAgICAgcHJpdmlsZWdlczogWydhJywncicsJ3cn LCd4J119KSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRp dCddLCBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAg ICB1bmlxdWVDb2wgOiBbJ2dyYW50ZWUnXQorICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ2F0dG9wdGlvbnMnLCBsYWJlbDogJ1ZhcmlhYmxlcycsIHR5 cGU6ICdjb2xsZWN0aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1Nl Y3VyaXR5JykgfX0nLCBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9u JywKKyAgICAgICAgICBtb2RlbDogVmFyaWFibGVzTW9kZWwsIHVuaXF1ZUNv bCA6IFsnbmFtZSddLAorICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVh dGUnXSwgY2FuQWRkOiB0cnVlLCBjYW5FZGl0OiBmYWxzZSwKKyAgICAgICAg ICBjYW5EZWxldGU6IHRydWUKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6 ICdzZWNsYWJlbHMnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXR5IExhYmVscycp IH19JywKKyAgICAgICAgICBtb2RlbDogQmFja2Zvcm0uU2VjdXJpdHlNb2Rl bCwgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAg ICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScpIH19JywgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIG1pbl92ZXJzaW9uOiA5MDIw MCwgY2FuQWRkOiB0cnVlLAorICAgICAgICAgIGNhbkVkaXQ6IGZhbHNlLCBj YW5EZWxldGU6IHRydWUsIGNvbnRyb2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rp b24nCisgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgdmFsaWRhdGU6 IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAg ICAgICAgICAgY2hhbmdlZEF0dHJzID0gdGhpcy5jaGFuZ2VkLAorICAgICAg ICAgICAgICBtc2cgPSB1bmRlZmluZWQ7CisgICAgICAgICAgdGhpcy5lcnJv ck1vZGVsLmNsZWFyKCk7CisKKyAgICAgICAgICBpZiAoXy5oYXMoY2hhbmdl ZEF0dHJzLHRoaXMuZ2V0KCduYW1lJykpCisgICAgICAgICAgICAgICAgICAg ICYmIF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ25hbWUnKSkKKyAgICAgICAg ICAgICAgfHwgU3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJlcGxhY2UoL15c cyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIG1zZyA9ICd7 eyBfKCdOYW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAg ICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0gZWxzZSBpZiAoXy5oYXMo Y2hhbmdlZEF0dHJzLHRoaXMuZ2V0KCdhdHRvd25lcicpKQorICAgICAgICAg ICAgICAgICAgICAgICAgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnYXR0 b3duZXInKSkKKyAgICAgICAgICAgICAgfHwgU3RyaW5nKHRoaXMuZ2V0KCdh dHRvd25lcicpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7 CisgICAgICAgICAgICBtc2cgPSAne3sgXygnU2NoZW1hIGNhbiBub3QgYmUg ZW1wdHkhJykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNl dCgnYXR0b3duZXInLCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsK KyAgICAgICAgICB9IGVsc2UgaWYgKF8uaGFzKGNoYW5nZWRBdHRycyx0aGlz LmdldCgnYXR0b3duZXInKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICYm IF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2F0dG93bmVyJykpCisgICAgICAg ICAgICAgIHx8IFN0cmluZyh0aGlzLmdldCgnYXR0b3duZXInKSkucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgbXNn ID0gJ3t7IF8oJ093bmVyIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnYXR0b3duZXInLCBtc2cp OworICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICB9IGVsc2Ug aWYgKF8uaGFzKGNoYW5nZWRBdHRycyx0aGlzLmdldCgnYXR0bGVuJykpCisg ICAgICAgICAgICAgICAgICAgICAgICAmJiBfLmlzVW5kZWZpbmVkKHRoaXMu Z2V0KCdhdHRsZW4nKSkKKyAgICAgICAgICAgICAgfHwgU3RyaW5nKHRoaXMu Z2V0KCdhdHRsZW4nKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAn JykgeworICAgICAgICAgICAgLy8gVmFsaWRhdGlvbiBmb3IgTGVuZ3RoIGZp ZWxkCisgICAgICAgICAgICBpZiAodGhpcy5nZXQoJ2F0dGxlbicpIDwgdGhp cy5nZXQoJ21pbl92YWwnKSkKKyAgICAgICAgICAgICAgbXNnID0gXygiTGVu Z3RoIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuICIgKyB0aGlzLmdldCgnbWlu X3ZhbCcpKQorICAgICAgICAgICAgaWYgKHRoaXMuZ2V0KCdhdHRsZW4nKSA+ IHRoaXMuZ2V0KCdtYXhfdmFsJykpCisgICAgICAgICAgICAgIG1zZyA9IF8o Ikxlbmd0aCBzaG91bGQgbm90IGJlIGdyZWF0ZXIgdGhhbiAiICsgdGhpcy5n ZXQoJ21heF92YWwnKSkKKyAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW55 IGVycm9yIHNldCB0aGVuIHRocm93IGl0IHRvIHVzZXIKKyAgICAgICAgICAg IGlmKG1zZykgeworICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0 KCdhdHRsZW4nLCBtc2cpCisgICAgICAgICAgICAgIHJldHVybiBtc2c7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgIH0gZWxzZSBpZiAoXy5oYXMoY2hh bmdlZEF0dHJzLHRoaXMuZ2V0KCdhdHRwcmVjaXNpb24nKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICYmIF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2F0 dHByZWNpc2lvbicpKQorICAgICAgICAgICAgICB8fCBTdHJpbmcodGhpcy5n ZXQoJ2F0dHByZWNpc2lvbicpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycp ID09ICcnKSB7CisgICAgICAgICAgICAvLyBWYWxpZGF0aW9uIGZvciBwcmVj aXNpb24gZmllbGQKKyAgICAgICAgICAgIGlmICh0aGlzLmdldCgnYXR0cHJl Y2lzaW9uJykgPCB0aGlzLmdldCgnbWluX3ZhbCcpKQorICAgICAgICAgICAg ICBtc2cgPSBfKCJQcmVjaXNpb24gc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4g IiArIHRoaXMuZ2V0KCdtaW5fdmFsJykpCisgICAgICAgICAgICBpZiAodGhp cy5nZXQoJ2F0dHByZWNpc2lvbicpID4gdGhpcy5nZXQoJ21heF92YWwnKSkK KyAgICAgICAgICAgICAgbXNnID0gXygiUHJlY2lzaW9uIHNob3VsZCBub3Qg YmUgZ3JlYXRlciB0aGFuICIgKyB0aGlzLmdldCgnbWF4X3ZhbCcpKQorICAg ICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbnkgZXJyb3Igc2V0IHRoZW4gdGhy b3cgaXQgdG8gdXNlcgorICAgICAgICAgICAgaWYobXNnKSB7CisgICAgICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ2F0dHByZWNpc2lvbicsIG1z ZykKKyAgICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICB9CisgICAg ICAgIH0sCisgICAgICAgIC8vIFdlIHdpbGwgY2hlY2sgaWYgd2UgYXJlIHVu ZGVyIHNjaGVtYSBub2RlICYgaW4gJ2NyZWF0ZScgbW9kZQorICAgICAgICBp blNjaGVtYTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYodGhpcy5ub2Rl X2luZm8gJiYgICdjYXRhbG9nJyBpbiB0aGlzLm5vZGVfaW5mbykKKyAgICAg ICAgICB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9 CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9LAorICAgICAg ICAvLyBXZSB3aWxsIGNoZWNrIGlmIHdlIGFyZSB1bmRlciBzY2hlbWEgbm9k ZSAmIGluICdjcmVhdGUnIG1vZGUKKyAgICAgICAgaW5TY2hlbWFXaXRoTW9k ZWxDaGVjazogZnVuY3Rpb24obSkgeworICAgICAgICAgIGlmKHRoaXMubm9k ZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlzLm5vZGVfaW5mbykKKyAgICAg ICAgICB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgY29udHJv bCBpZiBpdCdzIGluICdlZGl0JyBtb2RlCisgICAgICAgICAgICBpZiAobS5p c05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgfSwKKyAgICAgICAgLy8gQ2hlY2tzIHdlYXRoZXIg dG8gZW5hYmxlL2Rpc2FibGUgY29udHJvbAorICAgICAgICBpblNjaGVtYVdp dGhDb2x1bW5DaGVjazogZnVuY3Rpb24obSkgeworICAgICAgICAgIGlmKHRo aXMubm9kZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlzLm5vZGVfaW5mbykK KyAgICAgICAgICB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUg Y29udHJvbCBpZiBpdCdzIHN5c3RlbSBjb2x1bW5zCisgICAgICAgICAgICAv LyBpZTogaXQncyBwb3NpdGlvbiBpcyBsZXNzIHRoZW4gMQorICAgICAgICAg ICAgaWYgKG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAvLyBp ZiB3ZSBhcmUgaW4gZWRpdCBtb2RlCisgICAgICAgICAgICAgIGlmICghXy5p c1VuZGVmaW5lZChtLmdldCgnYXR0bnVtJykpICYmIG0uZ2V0KCdhdHRudW0n KSA+PSAxICkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAg ICAgfQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg ICB9KSwKKyAgICAgIC8vIEJlbG93IGZ1bmN0aW9uIHdpbGwgZW5hYmxlIHJp Z2h0IGNsaWNrIG1lbnUgZm9yIGNyZWF0aW5nIGNvbHVtbgorICAgICAgY2Fu Q3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAg ICAgICAgIC8vIElmIGNoZWNrIGlzIGZhbHNlIHRoZW4gLCB3ZSB3aWxsIGFs bG93IGNyZWF0ZSBtZW51CisgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5j aGVjayA9PSBmYWxzZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisg ICAgICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwgaSA9IGl0ZW0sIGQg PSBpdGVtRGF0YSwgcGFyZW50cyA9IFtdOworICAgICAgICAgIC8vIFRvIGl0 ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAg ICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAgIC8vIElmIGl0IGlzIHNjaGVt YSB0aGVuIGFsbG93IHVzZXIgdG8gYyByZWF0ZSB0YWJsZQorICAgICAgICAg ICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBkLl90eXBlKSA+IC0xKSB7 CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQor ICAgICAgICAgICAgZWxzZSBpZiAoXy5pbmRleE9mKFsndmlldycsICdjb2xs LXZpZXcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF0 ZXJpYWxpemVkX3ZpZXcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnY29sbC1tYXRlcmlhbGl6ZWRfdmlldyddLCBkLl90eXBlKSA+IC0x KSB7CisgICAgICAgICAgICAgIHBhcmVudHMucHVzaChkLl90eXBlKTsKKyAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBwYXJlbnRzLnB1c2goZC5fdHlwZSk7CisgICAgICAgICAgICBpID0gdC5o YXNQYXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAg ICBkID0gaSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOworICAgICAgICAgIH0K KworICAgICAgICAgIC8vIElmIG5vZGUgaXMgdW5kZXIgY2F0YWxvZyB0aGVu IGRvIG5vdCBhbGxvdyAnY3JlYXRlJyBtZW51CisgICAgICAgICAgaWYgKF8u aW5kZXhPZihwYXJlbnRzLCAnY2F0YWxvZycpID4gLTEgfHwKKyAgICAgICAg ICAgICAgXy5pbmRleE9mKHBhcmVudHMsICdjb2xsLXZpZXcnKSA+IC0xIHx8 CisgICAgICAgICAgICAgIF8uaW5kZXhPZihwYXJlbnRzLCAnY29sbC1tYXRl cmlhbGl6ZWRfdmlldycpID4gLTEgfHwKKyAgICAgICAgICAgICAgXy5pbmRl eE9mKHBhcmVudHMsICdtYXRlcmlhbGl6ZWRfdmlldycpID4gLTEgfHwKKyAg ICAgICAgICAgICAgXy5pbmRleE9mKHBhcmVudHMsICd2aWV3JykgPiAtMSkg eworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0gZWxz ZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9Cisg ICAgICB9CisgIH0pOworIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5vZGVz Wydjb2x1bW4nXTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9tYWNyb3MvcHJpdmls ZWdlLm1hY3JvcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vbWFjcm9zL3ByaXZpbGVnZS5tYWNyb3MKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VhZmQ2MAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vbWFjcm9zL3ByaXZpbGVnZS5tYWNyb3MKQEAgLTAs MCArMSwxMyBAQAoreyUgbWFjcm8gQVBQTFkoY29ubiwgc2NoZW1hX25hbWUs IHRhYmxlX29iamVjdCwgY29sdW1uX29iamVjdCwgcm9sZSwgcHJpdnMsIHdp dGhfZ3JhbnRfcHJpdnMpIC0lfQoreyUgaWYgcHJpdnMgJX0KK0dSQU5UIHsl IGZvciBwIGluIHByaXZzICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LCB7 JSBlbmRpZiAlfXt7cH19KHt7Y29ubnxxdElkZW50KGNvbHVtbl9vYmplY3Qp fX0peyUgZW5kZm9yICV9CisgT04ge3sgY29ubnxxdElkZW50KHNjaGVtYV9u YW1lLCB0YWJsZV9vYmplY3QpIH19IFRPIHt7IGNvbm58cXRJZGVudChyb2xl KSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiB3aXRoX2dyYW50X3ByaXZzICV9 CitHUkFOVCB7JSBmb3IgcCBpbiB3aXRoX2dyYW50X3ByaXZzICV9eyUgaWYg bG9vcC5pbmRleCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7cH19KHt7Y29ubnxx dElkZW50KGNvbHVtbl9vYmplY3QpfX0peyUgZW5kZm9yICV9CisgT04ge3sg Y29ubnxxdElkZW50KHNjaGVtYV9uYW1lLCB0YWJsZV9vYmplY3QpIH19IFRP IHt7IGNvbm58cXRJZGVudChyb2xlKSB9fSBXSVRIIEdSQU5UIE9QVElPTjsK K3slIGVuZGlmICV9Cit7JS0gZW5kbWFjcm8gJX0KK3slIG1hY3JvIFJFU0VU QUxMKGNvbm4sIHNjaGVtYV9uYW1lLCB0YWJsZV9vYmplY3QsIGNvbHVtbl9v YmplY3QsIHJvbGUpIC0lfQorUkVWT0tFIEFMTCh7eyBjb25ufHF0SWRlbnQo Y29sdW1uX29iamVjdCkgfX0pIE9OIHt7IGNvbm58cXRJZGVudChzY2hlbWFf bmFtZSwgdGFibGVfb2JqZWN0KSB9fSBGUk9NIHt7IGNvbm58cXRJZGVudChy b2xlKSB9fTsKK3slLSBlbmRtYWNybyAlfQpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vbWFjcm9zL3NlY3VyaXR5Lm1hY3Jv cyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9j b2x1bW4vbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4zOTU4N2MzCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2Nv bHVtbi9tYWNyb3Mvc2VjdXJpdHkubWFjcm9zCkBAIC0wLDAgKzEsNiBAQAor eyUgbWFjcm8gQVBQTFkoY29ubiwgdHlwZSwgc2NoZW1hX25hbWUsIHBhcmVu dF9vYmplY3QsIGNoaWxkX29iamVjdCwgcHJvdmlkZXIsIGxhYmVsKSAtJX0K K1NFQ1VSSVRZIExBQkVMIEZPUiB7eyBjb25ufHF0SWRlbnQocHJvdmlkZXIp IH19IE9OIHt7IHR5cGUgfX0ge3sgY29ubnxxdElkZW50KHNjaGVtYV9uYW1l LCBwYXJlbnRfb2JqZWN0LCBjaGlsZF9vYmplY3QpIH19IElTIHt7IGxhYmVs fHF0TGl0ZXJhbCB9fTsKK3slLSBlbmRtYWNybyAlfQoreyUgbWFjcm8gRFJP UChjb25uLCB0eXBlLCBzY2hlbWFfbmFtZSwgcGFyZW50X29iamVjdCwgY2hp bGRfb2JqZWN0LCBwcm92aWRlcikgLSV9CitTRUNVUklUWSBMQUJFTCBGT1Ig e3sgY29ubnxxdElkZW50KHByb3ZpZGVyKSB9fSBPTiB7eyB0eXBlIH19IHt7 IGNvbm58cXRJZGVudChzY2hlbWFfbmFtZSwgcGFyZW50X29iamVjdCwgY2hp bGRfb2JqZWN0KSB9fSBJUyBOVUxMOworeyUtIGVuZG1hY3JvICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0 ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5jYTNkYmM0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMv YWNsLnNxbApAQCAtMCwwICsxLDM3IEBACitTRUxFQ1QgJ2F0dGFjbCcgYXMg ZGVmdHlwZSwgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50 ZWUsIGcucm9sbmFtZSBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5 cGUpIGFzIHByaXZpbGVnZXMsIGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFz IGdyYW50YWJsZQorRlJPTQorICAoU0VMRUNUCisgICAgZC5ncmFudGVlLCBk LmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgIENBU0UgZC5wcml2aWxl Z2VfdHlwZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAg ICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RF TEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAn WCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBX SEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxF Q1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAn VCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAg V0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFU RScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisg ICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgRU5EIEFTIHByaXZpbGVnZV90 eXBlCisgIEZST00KKyAgICAoU0VMRUNUIGF0dGFjbAorICAgICAgICBGUk9N IHBnX2F0dHJpYnV0ZSBhdHQKKyAgICAgICAgV0hFUkUgYXR0LmF0dHJlbGlk ID0ge3t0aWR9fTo6b2lkCisgICAgICAgIEFORCBhdHQuYXR0bnVtID0ge3tj bGlkfX06OmludAorICAgICkgYWNsLAorICAgIChTRUxFQ1QgKGQpLmdyYW50 ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwgKGQpLmlz X2dyYW50YWJsZQorICAgICAgICBBUyBpc19ncmFudGFibGUsIChkKS5wcml2 aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZSBGUk9NIChTRUxFQ1QKKyAg ICAgICAgYWNsZXhwbG9kZShhdHRhY2wpIGFzIGQgRlJPTSBwZ19hdHRyaWJ1 dGUgYXR0CisgICAgICAgIFdIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06 Om9pZAorICAgICAgICBBTkQgYXR0LmF0dG51bSA9IHt7Y2xpZH19OjppbnQp IGEpIGQKKyAgICApIGQKKyAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9s ZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQpCisgIExFRlQgSk9JTiBwZ19j YXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitH Uk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWUKKworCisKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9j b2x1bW4vc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjllMDZhNWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMzYgQEAKK3slIGltcG9ydCAnY29s dW1uL21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7 JSBpbXBvcnQgJ2NvbHVtbi9tYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMg UFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy92YXJpYWJsZS5tYWNy b3MnIGFzIFZBUklBQkxFICV9Cit7JSBpZiBkYXRhICV9Cit7IyMjICBBZGQg Y29sdW1uICMjI30KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlKX19CisgICAgQUREIENPTFVNTiB7e2Nvbm58 cXRJZGVudChkYXRhLm5hbWUpfX0ge3tkYXRhLmNsdHlwZX19eyUgaWYgZGF0 YS5hdHRsZW4gJX0KKyh7e2RhdGEuYXR0bGVufX17JSBpZiBkYXRhLmF0dHBy ZWNpc2lvbiV9LCB7e2RhdGEuYXR0cHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7 JSBlbmRpZiAlfXslIGlmIGRhdGEuaGFzU3FyQnJhY2tldCAlfQorW117JSBl bmRpZiAlfXslIGlmIGRhdGEuY29sbHNwY25hbWUgJX0KKyBDT0xMQVRFIHt7 ZGF0YS5jb2xsc3BjbmFtZX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLmF0dG5v dG51bGwgJX0KKyBOT1QgTlVMTHslIGVuZGlmICV9eyUgaWYgZGF0YS5kZWZ2 YWwgJX0KKyBERUZBVUxUIHt7ZGF0YS5kZWZ2YWx9fXslIGVuZGlmICV9Owor eyMjIyAgQWRkIGNvbW1lbnRzICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEu ZGVzY3JpcHRpb24gJX0KK0NPTU1FTlQgT04gQ09MVU1OIHt7Y29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUpfX0KKyAg ICBJUyB7e2RhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsfX07Cit7JSBlbmRp ZiAlfQoreyMjIyAgQWRkIHZhcmlhYmxlcyB0byBjb2x1bW4gIyMjfQoreyUg aWYgZGF0YS5hdHRvcHRpb25zICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQore3sgVkFSSUFCTEUu U0VUKGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIGRhdGEuYXR0b3B0aW9u cykgfX0KK3slIGVuZGlmICV9Cit7IyMjICBBQ0wgIyMjfQoreyUgaWYgZGF0 YS5hdHRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYXR0YWNsICV9Cit7 eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFi bGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3sjIyMgIFNlY3VyaXR5IExhYmxlcyAjIyN9Cit7JSBpZiBkYXRh LnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0K K3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdDT0xVTU4nLGRhdGEuc2NoZW1h LCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7IyMj IEVuZCBtYWluIGlmICMjI30KK3slIGVuZGlmJX0KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxh dGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzUxMTBmCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxh dGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsx IEBACitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSl9fSBEUk9QIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRh Lm5hbWV9fTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMv Y29sdW1uL3NxbC85LjFfcGx1cy9kZXBlbmQuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvZGVwZW5kLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5mNWYzOWU3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvZGVwZW5kLnNxbApAQCAtMCwwICsxLDkgQEAKK1NFTEVDVAorICAgIHJl Zi5yZWxuYW1lIEFTIHJlZm5hbWUsIGQyLnJlZmNsYXNzaWQsIGRlcC5kZXB0 eXBlIEFTIGRlcHR5cGUKK0ZST00gcGdfZGVwZW5kIGRlcAorICAgIExFRlQg Sk9JTiBwZ19kZXBlbmQgZDIgT04gZGVwLm9iamlkPWQyLm9iamlkIEFORCBk ZXAucmVmb2JqaWQgIT0gZDIucmVmb2JqaWQKKyAgICBMRUZUIEpPSU4gcGdf Y2xhc3MgcmVmIE9OIHJlZi5vaWQ9ZDIucmVmb2JqaWQKKyAgICBMRUZUIEpP SU4gcGdfYXR0cmlidXRlIGF0dCBPTiBkMi5yZWZjbGFzc2lkPWF0dC5hdHRy ZWxpZCBBTkQgZDIucmVmb2Jqc3ViaWQ9YXR0LmF0dG51bQorICAgIHt7IHdo ZXJlIH19IEFORAorICAgIGRlcC5jbGFzc2lkPShTRUxFQ1Qgb2lkIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZT0ncGdfYXR0cmRlZicpIEFORAorICAg IGRlcC5yZWZvYmppZCBOT1QgSU4gKFNFTEVDVCBkMy5yZWZvYmppZCBGUk9N IHBnX2RlcGVuZCBkMyBXSEVSRSBkMy5vYmppZD1kMi5yZWZvYmppZCkKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjFfcGx1cy9lZGl0X21vZGVfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMv ZWRpdF9tb2RlX3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi44YmM2Mzg1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4xX3BsdXMvZWRpdF9tb2RlX3R5cGVzLnNxbApAQCAtMCwwICsxLDUgQEAK K1NFTEVDVCB0dC5vaWQsIGZvcm1hdF90eXBlKHR0Lm9pZCxOVUxMKSBBUyB0 eXBuYW1lCisgIEZST00gcGdfY2FzdAorICBKT0lOIHBnX3R5cGUgdHQgT04g dHQub2lkPWNhc3R0YXJnZXQKK1dIRVJFIGNhc3Rzb3VyY2U9e3t0eXBlX2lk fX0KKyAgIEFORCBjYXN0Y29udGV4dCBJTiAoJ2knLCAnYScpClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvZ2V0X2NvbGxhdGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZ2V0X2Nv bGxhdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjU4ZmNiMzIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9nZXRfY29sbGF0aW9ucy5zcWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1Qg LS1uc3BuYW1lLCBjb2xsbmFtZSwKKwlDQVNFIFdIRU4gbGVuZ3RoKG5zcG5h bWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAgIFRIRU4KKwkgIGNv bmNhdChxdW90ZV9pZGVudChuc3BuYW1lKSwgJy4nLCBxdW90ZV9pZGVudChj b2xsbmFtZSkpCisJRUxTRSAnJyBFTkQgQVMgY29sbGF0aW9uCitGUk9NIHBn X2NvbGxhdGlvbiBjLCBwZ19uYW1lc3BhY2UgbgorICAgIFdIRVJFIGMuY29s bG5hbWVzcGFjZT1uLm9pZAorT1JERVIgQlkgbnNwbmFtZSwgY29sbG5hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90 ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfaW5oZXJpdGVkX3Rh Ymxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1w bGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfaW5oZXJpdGVkX3RhYmxl cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc5 MzRiOAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL2dldF9p bmhlcml0ZWRfdGFibGVzLnNxbApAQCAtMCwwICsxLDEyIEBACitTRUxFQ1Qg YXJyYXlfdG9fc3RyaW5nKGFycmF5X2FnZyhpbmhyZWxuYW1lKSwgJywgJykg aW5ocmVsbmFtZSwgYXR0cm5hbWUKK0ZST00KKyAoU0VMRUNUCisgICBpbmhw YXJlbnQ6OnJlZ2NsYXNzIEFTIGluaHJlbG5hbWUsCisgICBhLmF0dG5hbWUg QVMgYXR0cm5hbWUKKyAgRlJPTSBwZ19pbmhlcml0cyBpCisgIExFRlQgSk9J TiBwZ19hdHRyaWJ1dGUgYSBPTgorICAgKGF0dHJlbGlkID0gaW5ocGFyZW50 IEFORCBhdHRudW0gPiAwKQorICBXSEVSRSBpbmhyZWxpZCA9IHt7dGlkfX06 Om9pZAorICBPUkRFUiBCWSBpbmhzZXFubworICkgYQorR1JPVVAgQlkgYXR0 cm5hbWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2Nv bHVtbi9zcWwvOS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFf cGx1cy9nZXRfcGFyZW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41ZGQ1ZDNjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwKQEAgLTAsMCArMSw1IEBACitTRUxF Q1QgbnNwLm5zcG5hbWUgQVMgc2NoZW1hICxyZWwucmVsbmFtZSBBUyB0YWJs ZQorRlJPTSBwZ19jbGFzcyByZWwKKyAgICBKT0lOIHBnX25hbWVzcGFjZSBu c3AKKyAgICBPTiByZWwucmVsbmFtZXNwYWNlID0gbnNwLm9pZDo6aW50Cisg ICAgV0hFUkUgcmVsLm9pZCA9IHt7dGlkfX06OmludApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL2dl dF9wb3NpdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1u cy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfcG9zaXRpb24u c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlYTU3 MjEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9nZXRfcG9z aXRpb24uc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNUIGF0dC5hdHRudW0K K0ZST00gcGdfYXR0cmlidXRlIGF0dAorICAgIFdIRVJFIGF0dC5hdHRyZWxp ZCA9IHt7dGlkfX06Om9pZAorICAgIEFORCBhdHQuYXR0bmFtZSA9IHt7ZGF0 YS5uYW1lfHF0TGl0ZXJhbH19CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1 cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVt bnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjkwOTZj Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVz LnNxbApAQCAtMCwwICsxLDE0IEBACitTRUxFQ1QgKiBGUk9NCisgICAgKFNF TEVDVCBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAg IENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9p ZCBFTkQgQVMgZWxlbW9pZAorICAgICx0eXBsZW4sIHR5cHR5cGUsIHQub2lk LCBuc3BuYW1lLAorICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBl IHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1 cAorRlJPTSBwZ190eXBlIHQKKyAgICBKT0lOIHBnX25hbWVzcGFjZSBuc3Ag T04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKK1dIRVJFIChOT1QgKHR5cG5hbWUg PSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAg IEFORCB0eXBpc2RlZmluZWQgQU5EIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAn ZCcsICdlJywgJ3InKQorICAgIEFORCBOT1QgRVhJU1RTIChzZWxlY3QgMSBm cm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWVzcGFjZT10eXBuYW1lc3BhY2Ug YW5kIHJlbG5hbWUgPSB0eXBuYW1lIGFuZCByZWxraW5kICE9ICdjJykKKyAg ICBBTkQgKHR5cG5hbWUgbm90IGxpa2UgJ18lJyBPUiBOT1QgRVhJU1RTIChz ZWxlY3QgMSBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWVzcGFjZT10eXBu YW1lc3BhY2UgYW5kIHJlbG5hbWUgPSBzdWJzdHJpbmcodHlwbmFtZSBmcm9t IDIpOjpuYW1lIGFuZCByZWxraW5kICE9ICdjJykpCisgICAgQU5EIG5zcC5u c3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnCisgICAgKSBBUyBkdW1t eQorICAgIE9SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3Bu YW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvaXNfcmVm ZXJlbmNlZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90 ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFfcGx1cy9pc19yZWZlcmVuY2VkLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDBiZmMz Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvaXNfcmVmZXJl bmNlZC5zcWwKQEAgLTAsMCArMSw1IEBACitTRUxFQ1QgQ09VTlQoMSkKK0ZS T00gcGdfZGVwZW5kIGRlcAorICAgIEpPSU4gcGdfY2xhc3MgY2wgT04gZGVw LmNsYXNzaWQ9Y2wub2lkIEFORCByZWxuYW1lPSdwZ19yZXdyaXRlJworICAg IFdIRVJFIHJlZm9iamlkPSB7e3RpZH19OjpvaWQKKyAgICBBTkQgcmVmb2Jq c3ViaWQ9IHt7Y2xpZHxxdExpdGVyYWx9fTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3Fs LzkuMV9wbHVzL25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL25vZGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjljN2Q3 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvbm9kZXMuc3Fs CkBAIC0wLDAgKzEsMTggQEAKK1NFTEVDVCBhdHQuYXR0bmFtZSBhcyBuYW1l LCBhdHQuYXR0bnVtIGFzIE9JRAorRlJPTSBwZ19hdHRyaWJ1dGUgYXR0Cisg ICAgSk9JTiBwZ190eXBlIHR5IE9OIHR5Lm9pZD1hdHR0eXBpZAorICAgIEpP SU4gcGdfbmFtZXNwYWNlIHRuIE9OIHRuLm9pZD10eS50eXBuYW1lc3BhY2UK KyAgICBKT0lOIHBnX2NsYXNzIGNsIE9OIGNsLm9pZD1hdHQuYXR0cmVsaWQK KyAgICBKT0lOIHBnX25hbWVzcGFjZSBuYSBPTiBuYS5vaWQ9Y2wucmVsbmFt ZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3R5cGUgZXQgT04gZXQu b2lkPXR5LnR5cGVsZW0KKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfYXR0cmRl ZiBkZWYgT04gYWRyZWxpZD1hdHQuYXR0cmVsaWQgQU5EIGFkbnVtPWF0dC5h dHRudW0KKyAgICBMRUZUIE9VVEVSIEpPSU4gKHBnX2RlcGVuZCBKT0lOIHBn X2NsYXNzIGNzIE9OIG9iamlkPWNzLm9pZCBBTkQgY3MucmVsa2luZD0nUycp IE9OIHJlZm9iamlkPWF0dC5hdHRyZWxpZCBBTkQgcmVmb2Jqc3ViaWQ9YXR0 LmF0dG51bQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnMg T04gbnMub2lkPWNzLnJlbG5hbWVzcGFjZQorICAgIExFRlQgT1VURVIgSk9J TiBwZ19pbmRleCBwaSBPTiBwaS5pbmRyZWxpZD1hdHQuYXR0cmVsaWQgQU5E IGluZGlzcHJpbWFyeQorV0hFUkUgYXR0LmF0dHJlbGlkID0ge3t0aWR9fTo6 b2lkCit7IyMjIFRvIHNob3cgc3lzdGVtIG9iamVjdHMgIyMjfQoreyUgaWYg bm90IHNob3dfc3lzX29iamVjdHMgJX0KKyAgICBBTkQgYXR0LmF0dG51bSA+ IDAKK3slIGVuZGlmICV9CisgICAgQU5EIGF0dC5hdHRpc2Ryb3BwZWQgSVMg RkFMU0UKKyAgICBPUkRFUiBCWSBhdHQuYXR0bnVtCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1u L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVz L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmQ1MzY5MDYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjFf cGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDQ1IEBACitTRUxFQ1Qg YXR0LmF0dG5hbWUgYXMgbmFtZSwgYXR0LiosIGRlZi4qLCBwZ19jYXRhbG9n LnBnX2dldF9leHByKGRlZi5hZGJpbiwgZGVmLmFkcmVsaWQpIEFTIGRlZnZh bCwKKyAgICAgICAgQ0FTRSBXSEVOIGF0dC5hdHRuZGltcyA+IDAgVEhFTiAx IEVMU0UgMCBFTkQgQVMgaXNhcnJheSwKKyAgICAgICAgZm9ybWF0X3R5cGUo dHkub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAgIGZvcm1hdF90eXBl KHR5Lm9pZCxhdHQuYXR0dHlwbW9kKSBBUyBkaXNwbGF5dHlwbmFtZSwKKyAg ICAgICAgdG4ubnNwbmFtZSBhcyB0eXBuc3BuYW1lLCBldC50eXBuYW1lIGFz IGVsZW10eXBuYW1lLAorICAgICAgICB0eS50eXBzdG9yYWdlIEFTIGRlZmF1 bHRzdG9yYWdlLCBjbC5yZWxuYW1lLCBuYS5uc3BuYW1lLAorICAgICAgICBj b25jYXQocXVvdGVfaWRlbnQobmEubnNwbmFtZSkgLCcuJywgcXVvdGVfaWRl bnQoY2wucmVsbmFtZSkpIEFTIHBhcmVudF90YmwsCisJYXR0LmF0dHN0YXR0 YXJnZXQsIGRlc2NyaXB0aW9uLCBjcy5yZWxuYW1lIEFTIHNlcm5hbWUsCisJ bnMubnNwbmFtZSBBUyBzZXJzY2hlbWEsCisJKFNFTEVDVCBjb3VudCgxKSBG Uk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZT10eS50eXBuYW1lKSA+ IDEgQVMgaXNkdXAsCisJaW5ka2V5LCBjb2xsLmNvbGxuYW1lLCBuc3BjLm5z cG5hbWUgYXMgY29sbG5zcG5hbWUgLCBhdHRvcHRpb25zLAorCS0tIFN0YXJ0 IHBnQWRtaW40LCBhZGRlZCB0byBzYXZlIHRpbWUgb24gY2xpZW50IHNpZGUg cGFyc2luZworCUNBU0UgV0hFTiBsZW5ndGgoY29sbC5jb2xsbmFtZSkgPiAw IEFORCBsZW5ndGgobnNwYy5uc3BuYW1lKSA+IDAgIFRIRU4KKwkgIGNvbmNh dChxdW90ZV9pZGVudChjb2xsLmNvbGxuYW1lKSwnLicscXVvdGVfaWRlbnQo bnNwYy5uc3BuYW1lKSkKKwlFTFNFICcnIEVORCBBUyBjb2xsc3BjbmFtZSwK KwlDQVNFIFdIRU4gc3RycG9zKGZvcm1hdF90eXBlKHR5Lm9pZCxhdHQuYXR0 dHlwbW9kKSwgJy4nKSA+IDAgVEhFTgorCSAgc3BsaXRfcGFydChmb3JtYXRf dHlwZSh0eS5vaWQsYXR0LmF0dHR5cG1vZCksICcuJywgMikKKwlFTFNFIGZv cm1hdF90eXBlKHR5Lm9pZCxhdHQuYXR0dHlwbW9kKSBFTkQgQVMgY2x0eXBl LAorCS0tIEVuZCBwZ0FkbWluNAorCUVYSVNUUyhTRUxFQ1QgMSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBj b250eXBlPSdmJyBBTkQgYXR0LmF0dG51bT1BTlkoY29ua2V5KSkgQXMgaXNf ZmssCisJKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxh YmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEgV0hFUkUgc2wxLm9iam9pZD1h dHQuYXR0dHlwaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNsYWJlbHMs CisJKENBU0UgV0hFTiAoYXR0LmF0dG51bSA8IDEpIFRIRU4gdHJ1ZSBFbFNF IGZhbHNlIEVORCkgQVMgaXNfc3lzX2NvbHVtbgorRlJPTSBwZ19hdHRyaWJ1 dGUgYXR0CisgIEpPSU4gcGdfdHlwZSB0eSBPTiB0eS5vaWQ9YXR0dHlwaWQK KyAgSk9JTiBwZ19uYW1lc3BhY2UgdG4gT04gdG4ub2lkPXR5LnR5cG5hbWVz cGFjZQorICBKT0lOIHBnX2NsYXNzIGNsIE9OIGNsLm9pZD1hdHQuYXR0cmVs aWQKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbmEgT04gbmEub2lkPWNsLnJlbG5h bWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdfdHlwZSBldCBPTiBldC5v aWQ9dHkudHlwZWxlbQorICBMRUZUIE9VVEVSIEpPSU4gcGdfYXR0cmRlZiBk ZWYgT04gYWRyZWxpZD1hdHQuYXR0cmVsaWQgQU5EIGFkbnVtPWF0dC5hdHRu dW0KKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAo ZGVzLm9iam9pZD1hdHQuYXR0cmVsaWQgQU5EIGRlcy5vYmpzdWJpZD1hdHQu YXR0bnVtIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3Mp CisgIExFRlQgT1VURVIgSk9JTiAocGdfZGVwZW5kIEpPSU4gcGdfY2xhc3Mg Y3MgT04gb2JqaWQ9Y3Mub2lkIEFORCBjcy5yZWxraW5kPSdTJykgT04gcmVm b2JqaWQ9YXR0LmF0dHJlbGlkIEFORCByZWZvYmpzdWJpZD1hdHQuYXR0bnVt CisgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lk PWNzLnJlbG5hbWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdfaW5kZXgg cGkgT04gcGkuaW5kcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBpbmRpc3ByaW1h cnkKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2NvbGxhdGlvbiBjb2xsIE9OIGF0 dC5hdHRjb2xsYXRpb249Y29sbC5vaWQKKyAgTEVGVCBPVVRFUiBKT0lOIHBn X25hbWVzcGFjZSBuc3BjIE9OIGNvbGwuY29sbG5hbWVzcGFjZT1uc3BjLm9p ZAorV0hFUkUgYXR0LmF0dHJlbGlkID0ge3t0aWR9fTo6b2lkCit7JSBpZiBj bGlkICV9CisgICAgQU5EIGF0dC5hdHRudW0gPSB7e2NsaWR9fTo6aW50Cit7 JSBlbmRpZiAlfQoreyMjIyBUbyBzaG93IHN5c3RlbSBvYmplY3RzICMjI30K K3slIGlmIG5vdCBzaG93X3N5c19vYmplY3RzICV9CisgICAgQU5EIGF0dC5h dHRudW0gPiAwCit7JSBlbmRpZiAlfQorICAgIEFORCBhdHQuYXR0aXNkcm9w cGVkIElTIEZBTFNFCisgICAgT1JERVIgQlkgYXR0LmF0dG51bQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVz L2NvbHVtbi9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9w bHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZmNlMjRhNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9w bHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMDEgQEAKK3slIGltcG9ydCAn Y29sdW1uL21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ2NvbHVtbi9tYWNyb3MvcHJpdmlsZWdlLm1hY3Jvcycg YXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy92YXJpYWJsZS5t YWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBpZiBkYXRhICV9Cit7IyMjICBS ZW5hbWUgY29sdW1uIG5hbWUgIyMjfQoreyUgaWYgZGF0YS5uYW1lICE9IG9f ZGF0YS5uYW1lICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSl9fQorICAgIFJFTkFNRSB7e2Nvbm58cXRJ ZGVudChvX2RhdGEubmFtZSl9fSBUTyB7e2Nvbm58cXRJZGVudChkYXRhLm5h bWUpfX07Cit7JSBlbmRpZiAlfQoreyMjIyAgQWx0ZXIgY29sdW1uIHR5cGUg YW5kIGNvbGxhdGlvbiAjIyN9Cit7JSBpZiBkYXRhLmNsdHlwZSBhbmQgZGF0 YS5jbHR5cGUgIT0gb19kYXRhLmNsdHlwZSAlfQorQUxURVIgVEFCTEUge3tj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAgICBB TFRFUiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IHt7ZGF0 YS5jbHR5cGV9fXslIGlmIGRhdGEuYXR0bGVuICV9Cisoe3tkYXRhLmF0dGxl bn19eyUgaWYgZGF0YS5hdHRwcmVjaXNpb24lfSwge3tkYXRhLmF0dHByZWNp c2lvbn19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX17JSBpZiBkYXRhLmhhc1Nx ckJyYWNrZXQgJX0KK1tdeyUgZW5kaWYgJX17JSBpZiBkYXRhLmNvbGxzcGNu YW1lIGFuZCBkYXRhLmNvbGxzcGNuYW1lICE9IG9fZGF0YS5jb2xsc3BjbmFt ZSAlfQorIENPTExBVEUge3tkYXRhLmNvbGxzcGNuYW1lfX17JSBlbmRpZiAl fTsKK3slIGVuZGlmICV9Cit7IyMjICBBbHRlciBjb2x1bW4gZGVmYXVsdCB2 YWx1ZSAjIyN9Cit7JSBpZiBkYXRhLmRlZnZhbCBhbmQgZGF0YS5kZWZ2YWwg IT0gb19kYXRhLmRlZnZhbCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAgICBBTFRFUiBDT0xV TU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IFNFVCBERUZBVUxUIHt7 ZGF0YS5kZWZ2YWx9fTsKK3slIGVuZGlmICV9Cit7IyMjICBBbHRlciBjb2x1 bW4gbm90IG51bGwgdmFsdWUgIyMjfQoreyUgaWYgJ2F0dG5vdG51bGwnIGlu IGRhdGEgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLnRhYmxlKX19CisgICAgQUxURVIgQ09MVU1OIHt7Y29ubnxx dElkZW50KGRhdGEubmFtZSl9fSB7JSBpZiBkYXRhLmF0dG5vdG51bGwgJX1T RVR7JSBlbHNlICV9RFJPUHslIGVuZGlmICV9IE5PVCBOVUxMOworeyUgZW5k aWYgJX0KK3sjIyMgIEFsdGVyIGNvbHVtbiBzdGF0aXN0aWNzIHZhbHVlICMj I30KK3slIGlmIGRhdGEuYXR0c3RhdHRlcmdldCAlfQorQUxURVIgVEFCTEUg e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAg ICBBTFRFUiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IFNF VCBTVEFUSVNUSUNTIHt7ZGF0YS5hdHRzdGF0dGVyZ2V0fX07Cit7JSBlbmRp ZiAlfQoreyMjIyAgQWx0ZXIgY29sdW1uIHN0b3JhZ2UgdmFsdWUgIyMjfQor eyUgaWYgZGF0YS5hdHRzdG9yYWdlICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQorICAgIEFMVEVS IENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX0gU0VUIFNUT1JB R0UgeyVpZiBkYXRhLmF0dHN0b3JhZ2UgPT0gJ3AnICV9CitQTEFJTnslIGVs aWYgZGF0YS5hdHRzdG9yYWdlID09ICdtJyV9TUFJTnslIGVsaWYgZGF0YS5h dHRzdG9yYWdlID09ICdlJyV9CitFWFRFUk5BTHslIGVsaWYgZGF0YS5hdHRz dG9yYWdlID09ICd4JyV9RVhURU5ERUR7JSBlbmRpZiAlfTsKK3slIGVuZGlm ICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5UIE9OIENP TFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwg ZGF0YS5uYW1lKX19CisgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0 ZXJhbH19OworeyUgZW5kaWYgJX0KK3sjIyMgVXBkYXRlIGNvbHVtbiB2YXJp YWJsZXMgIyMjfQoreyUgaWYgJ2F0dG9wdGlvbnMnIGluIGRhdGEgYW5kIGRh dGEuYXR0b3B0aW9uc3xsZW5ndGggPiAwICV9Cit7JSBzZXQgdmFyaWFibGVz ID0gZGF0YS5hdHRvcHRpb25zICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gdmFy aWFibGVzIGFuZCB2YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CitB TFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSl9fQore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0NPTFVNTicsIGRh dGEubmFtZSwgdmFyaWFibGVzLmRlbGV0ZWQpIH19Cit7JSBlbmRpZiAlfQor eyUgaWYgJ2FkZGVkJyBpbiB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5hZGRl ZHxsZW5ndGggPiAwICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQore3sgVkFSSUFCTEUuU0VUKGNv bm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZhcmlhYmxlcy5hZGRlZCkgfX0K K3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gdmFyaWFibGVzIGFu ZCB2YXJpYWJsZXMuY2hhbmdlZHxsZW5ndGggPiAwICV9CitBTFRFUiBUQUJM RSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQor e3sgVkFSSUFCTEUuU0VUKGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZh cmlhYmxlcy5jaGFuZ2VkKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 Cit7IyMjIFVwZGF0ZSBjb2x1bW4gcHJpdmlsZWdlcyAjIyN9Cit7IyBDaGFu Z2UgdGhlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuYXR0YWNsICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hdHRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuYXR0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNF VEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1l LCBwcml2LmdyYW50ZWUpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5hdHRhY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuYXR0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5S RVNFVEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5u YW1lLCBwcml2LmdyYW50ZWUpIH19Cit7eyBQUklWSUxFR0UuQVBQTFkoY29u biwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5n cmFudGVlLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcg aW4gZGF0YS5hdHRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYXR0YWNs LmFkZGVkICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hl bWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyMjIFVwcGRhdGUg dGFibGVzcGFjZSBzZWN1cml0eWxhYmVsICMjI30KK3sjIFRoZSBTUUwgZ2Vu ZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNlY3VyaXR5IExhYmVsICN9Cit7 JSBpZiBkYXRhLnNlY2xhYmVscyBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3Ro ID4gMCAlfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu ZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu ZGVsZXRlZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnQ09MVU1OJywg ZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgci5wcm92aWRl cikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBTRUNM QUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSwgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVs KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5n ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7 IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdDT0xVTU4nLGRhdGEuc2NoZW1hLCBk YXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyMjIyBFbmQgbWFpbiBpZiAjIyN9Cit7JSBlbmRpZiV9ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4y X3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5z L3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2FjbC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2EzZGJjNAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2FjbC5zcWwKQEAgLTAsMCAr MSwzNyBAQAorU0VMRUNUICdhdHRhY2wnIGFzIGRlZnR5cGUsIENPQUxFU0NF KGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVlLCBnLnJvbG5hbWUgZ3Jh bnRvciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBhcyBwcml2aWxlZ2Vz LCBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00K KyAgKFNFTEVDVAorICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dy YW50YWJsZSwKKyAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAg V0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRF JyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisg ICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4g J0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycg VEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAg ICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4g J1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBU SEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAg ICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktO T1dOJworICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICBGUk9NCisgICAg KFNFTEVDVCBhdHRhY2wKKyAgICAgICAgRlJPTSBwZ19hdHRyaWJ1dGUgYXR0 CisgICAgICAgIFdIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06Om9pZAor ICAgICAgICBBTkQgYXR0LmF0dG51bSA9IHt7Y2xpZH19OjppbnQKKyAgICAp IGFjbCwKKyAgICAoU0VMRUNUIChkKS5ncmFudGVlIEFTIGdyYW50ZWUsIChk KS5ncmFudG9yIEFTIGdyYW50b3IsIChkKS5pc19ncmFudGFibGUKKyAgICAg ICAgQVMgaXNfZ3JhbnRhYmxlLCAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJp dmlsZWdlX3R5cGUgRlJPTSAoU0VMRUNUCisgICAgICAgIGFjbGV4cGxvZGUo YXR0YWNsKSBhcyBkIEZST00gcGdfYXR0cmlidXRlIGF0dAorICAgICAgICBX SEVSRSBhdHQuYXR0cmVsaWQgPSB7e3RpZH19OjpvaWQKKyAgICAgICAgQU5E IGF0dC5hdHRudW0gPSB7e2NsaWR9fTo6aW50KSBhKSBkCisgICAgKSBkCisg IExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRv ciA9IGcub2lkKQorICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBn dCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xuYW1l LCBndC5yb2xuYW1lCisKKworCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1 cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMv dGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjI2OTIzCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMv dGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApAQCAt MCwwICsxLDM3IEBACit7JSBpbXBvcnQgJ2NvbHVtbi9tYWNyb3Mvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdjb2x1bW4v bWFjcm9zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUg aW1wb3J0ICdtYWNyb3MvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAl fQoreyUgaWYgZGF0YSAlfQoreyMjIyAgQWRkIGNvbHVtbiAjIyN9CitBTFRF UiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJs ZSl9fQorICAgIEFERCBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1l KX19IHt7ZGF0YS5jbHR5cGV9fXslIGlmIGRhdGEuYXR0bGVuICV9Cisoe3tk YXRhLmF0dGxlbn19eyUgaWYgZGF0YS5hdHRwcmVjaXNpb24lfSwge3tkYXRh LmF0dHByZWNpc2lvbn19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX17JSBpZiBk YXRhLmhhc1NxckJyYWNrZXQgJX0KK1tdeyUgZW5kaWYgJX17JSBpZiBkYXRh LmNvbGxzcGNuYW1lICV9CisgQ09MTEFURSB7e2RhdGEuY29sbHNwY25hbWV9 fXslIGVuZGlmICV9eyUgaWYgZGF0YS5hdHRub3RudWxsICV9CisgTk9UIE5V TEx7JSBlbmRpZiAlfXslIGlmIGRhdGEuZGVmdmFsICV9CisgREVGQVVMVCB7 e2RhdGEuZGVmdmFsfX17JSBlbmRpZiAlfTsKK3sjIyMgIEFkZCBjb21tZW50 cyAjIyN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLmRlc2NyaXB0aW9uICV9CitD T01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSwgZGF0YS5uYW1lKX19CisgICAgSVMge3tkYXRhLmRlc2Ny aXB0aW9ufHF0TGl0ZXJhbH19OworeyUgZW5kaWYgJX0KK3sjIyMgIEFkZCB2 YXJpYWJsZXMgdG8gY29sdW1uICMjI30KK3slIGlmIGRhdGEuYXR0b3B0aW9u cyAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEudGFibGUpfX0KK3t7IFZBUklBQkxFLlNFVChjb25uLCAnQ09MVU1O JywgZGF0YS5uYW1lLCBkYXRhLmF0dG9wdGlvbnMpIH19Cit7JSBlbmRpZiAl fQoreyMjIyAgQUNMICMjI30KK3slIGlmIGRhdGEuYXR0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmF0dGFjbCAlfQore3sgUFJJVklMRUdFLkFQUExZ KGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHBy aXYuZ3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7IyMjICBTZWN1 cml0eSBMYWJsZXMgIyMjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBM WShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUg ZW5kZm9yICV9CisKK3slIGVuZGlmICV9Cit7IyMjIEVuZCBtYWluIGlmICMj I30KK3slIGVuZGlmJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1w bGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4yX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4wZTE2MjUxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwv OS4yX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxIEBACitBTFRFUiBUQUJM RSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fSBE Uk9QIENPTFVNTiB7e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX07ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4y X3BsdXMvZGVwZW5kLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1 bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2RlcGVuZC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg3N2UxMgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1 bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2RlcGVuZC5zcWwK QEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAgcmVmLnJlbG5hbWUgQVMg cmVmbmFtZSwgZDIucmVmY2xhc3NpZCwgZGVwLmRlcHR5cGUgQVMgZGVwdHlw ZQorRlJPTSBwZ19kZXBlbmQgZGVwCisgICAgTEVGVCBKT0lOIHBnX2RlcGVu ZCBkMiBPTiBkZXAub2JqaWQ9ZDIub2JqaWQgQU5EIGRlcC5yZWZvYmppZCAh PSBkMi5yZWZvYmppZAorICAgIExFRlQgSk9JTiBwZ19jbGFzcyByZWYgT04g cmVmLm9pZD1kMi5yZWZvYmppZAorICAgIExFRlQgSk9JTiBwZ19hdHRyaWJ1 dGUgYXR0IE9OIGQyLnJlZmNsYXNzaWQ9YXR0LmF0dHJlbGlkIEFORCBkMi5y ZWZvYmpzdWJpZD1hdHQuYXR0bnVtCisgICAge3sgd2hlcmUgfX0gQU5ECisg ICAgZGVwLmNsYXNzaWQ9KFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVS RSByZWxuYW1lPSdwZ19hdHRyZGVmJykgQU5ECisgICAgZGVwLnJlZm9iamlk IE5PVCBJTiAoU0VMRUNUIGQzLnJlZm9iamlkIEZST00gcGdfZGVwZW5kIGQz IFdIRVJFIGQzLm9iamlkPWQyLnJlZm9iamlkKQorCisKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1 bW4vc3FsLzkuMl9wbHVzL2VkaXRfbW9kZV90eXBlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjJfcGx1cy9lZGl0X21vZGVfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjBjMTEyYzUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29s dW1uL3NxbC85LjJfcGx1cy9lZGl0X21vZGVfdHlwZXMuc3FsCkBAIC0wLDAg KzEsNSBAQAorU0VMRUNUIHR0Lm9pZCwgZm9ybWF0X3R5cGUodHQub2lkLE5V TEwpIEFTIHR5cG5hbWUKK0ZST00gcGdfY2FzdAorICAgIEpPSU4gcGdfdHlw ZSB0dCBPTiB0dC5vaWQ9Y2FzdHRhcmdldAorV0hFUkUgY2FzdHNvdXJjZT17 e3R5cGVfaWR9fQorICAgIEFORCBjYXN0Y29udGV4dCBJTiAoJ2knLCAnYScp ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9z cWwvOS4yX3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3Bs dXMvZ2V0X2NvbGxhdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjllNjc5MzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwKQEAgLTAsMCArMSw3IEBA CitTRUxFQ1QgLS1uc3BuYW1lLCBjb2xsbmFtZSwKKwlDQVNFIFdIRU4gbGVu Z3RoKG5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAgIFRI RU4KKwkgIGNvbmNhdChxdW90ZV9pZGVudChuc3BuYW1lKSwgJy4nLCBxdW90 ZV9pZGVudChjb2xsbmFtZSkpCisJRUxTRSAnJyBFTkQgQVMgY29sbGF0aW9u CitGUk9NIHBnX2NvbGxhdGlvbiBjLCBwZ19uYW1lc3BhY2UgbgorICAgIFdI RVJFIGMuY29sbG5hbWVzcGFjZT1uLm9pZAorICAgIE9SREVSIEJZIG5zcG5h bWUsIGNvbGxuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvZ2V0 X2luaGVyaXRlZF90YWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvZ2V0X2lu aGVyaXRlZF90YWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjM3OTM0YjgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjJfcGx1cy9nZXRfaW5oZXJpdGVkX3RhYmxlcy5zcWwKQEAgLTAsMCArMSwx MiBAQAorU0VMRUNUIGFycmF5X3RvX3N0cmluZyhhcnJheV9hZ2coaW5ocmVs bmFtZSksICcsICcpIGluaHJlbG5hbWUsIGF0dHJuYW1lCitGUk9NCisgKFNF TEVDVAorICAgaW5ocGFyZW50OjpyZWdjbGFzcyBBUyBpbmhyZWxuYW1lLAor ICAgYS5hdHRuYW1lIEFTIGF0dHJuYW1lCisgIEZST00gcGdfaW5oZXJpdHMg aQorICBMRUZUIEpPSU4gcGdfYXR0cmlidXRlIGEgT04KKyAgIChhdHRyZWxp ZCA9IGluaHBhcmVudCBBTkQgYXR0bnVtID4gMCkKKyAgV0hFUkUgaW5ocmVs aWQgPSB7e3RpZH19OjpvaWQKKyAgT1JERVIgQlkgaW5oc2Vxbm8KKyApIGEK K0dST1VQIEJZIGF0dHJuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5z L3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL2dldF9wYXJlbnQuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2Nv bHVtbi9zcWwvOS4yX3BsdXMvZ2V0X3BhcmVudC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkNWQzYwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRl cy9jb2x1bW4vc3FsLzkuMl9wbHVzL2dldF9wYXJlbnQuc3FsCkBAIC0wLDAg KzEsNSBAQAorU0VMRUNUIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSAscmVsLnJl bG5hbWUgQVMgdGFibGUKK0ZST00gcGdfY2xhc3MgcmVsCisgICAgSk9JTiBw Z19uYW1lc3BhY2UgbnNwCisgICAgT04gcmVsLnJlbG5hbWVzcGFjZSA9IG5z cC5vaWQ6OmludAorICAgIFdIRVJFIHJlbC5vaWQgPSB7e3RpZH19OjppbnQK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy9nZXRfcG9zaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMv Z2V0X3Bvc2l0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5jZWE1NzIxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4y X3BsdXMvZ2V0X3Bvc2l0aW9uLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVD VCBhdHQuYXR0bnVtCitGUk9NIHBnX2F0dHJpYnV0ZSBhdHQKKyAgICBXSEVS RSBhdHQuYXR0cmVsaWQgPSB7e3RpZH19OjpvaWQKKyAgICBBTkQgYXR0LmF0 dG5hbWUgPSB7e2RhdGEubmFtZXxxdExpdGVyYWx9fQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVt bi9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVz L2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNDY5MDk2YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9w bHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwxNCBAQAorU0VMRUNUICog RlJPTQorICAgIChTRUxFQ1QgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMg dHlwbmFtZSwKKyAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBl bGVtIEVMU0UgdC5vaWQgRU5EIEFTIGVsZW1vaWQKKyAgICAsdHlwbGVuLCB0 eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAoU0VMRUNUIENPVU5UKDEp IEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1l KSA+IDEgQVMgaXNkdXAKK0ZST00gcGdfdHlwZSB0CisgICAgSk9JTiBwZ19u YW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCitXSEVSRSAo Tk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2Nh dGFsb2cnKSkKKyAgICBBTkQgdHlwaXNkZWZpbmVkIEFORCB0eXB0eXBlIElO ICgnYicsICdjJywgJ2QnLCAnZScsICdyJykKKyAgICBBTkQgTk9UIEVYSVNU UyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9 dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gdHlwbmFtZSBhbmQgcmVsa2lu ZCAhPSAnYycpCisgICAgQU5EICh0eXBuYW1lIG5vdCBsaWtlICdfJScgT1Ig Tk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxu YW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gc3Vic3RyaW5n KHR5cG5hbWUgZnJvbSAyKTo6bmFtZSBhbmQgcmVsa2luZCAhPSAnYycpKQor ICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJwor ICAgICkgQVMgZHVtbXkKKyAgICBPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19j YXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzku Ml9wbHVzL2lzX3JlZmVyZW5jZWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvaXNf cmVmZXJlbmNlZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uN2QwYmZjMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9w bHVzL2lzX3JlZmVyZW5jZWQuc3FsCkBAIC0wLDAgKzEsNSBAQAorU0VMRUNU IENPVU5UKDEpCitGUk9NIHBnX2RlcGVuZCBkZXAKKyAgICBKT0lOIHBnX2Ns YXNzIGNsIE9OIGRlcC5jbGFzc2lkPWNsLm9pZCBBTkQgcmVsbmFtZT0ncGdf cmV3cml0ZScKKyAgICBXSEVSRSByZWZvYmppZD0ge3t0aWR9fTo6b2lkCisg ICAgQU5EIHJlZm9ianN1YmlkPSB7e2NsaWR8cXRMaXRlcmFsfX07CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0 ZXMvY29sdW1uL3NxbC85LjJfcGx1cy9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJf cGx1cy9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMzMxOTE5NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9w bHVzL25vZGVzLnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QgYXR0LmF0 dG5hbWUgYXMgbmFtZSwgYXR0LmF0dG51bSBhcyBPSUQKK0ZST00gcGdfYXR0 cmlidXRlIGF0dAorICBKT0lOIHBnX3R5cGUgdHkgT04gdHkub2lkPWF0dHR5 cGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIHRuIE9OIHRuLm9pZD10eS50eXBu YW1lc3BhY2UKKyAgSk9JTiBwZ19jbGFzcyBjbCBPTiBjbC5vaWQ9YXR0LmF0 dHJlbGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIG5hIE9OIG5hLm9pZD1jbC5y ZWxuYW1lc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX3R5cGUgZXQgT04g ZXQub2lkPXR5LnR5cGVsZW0KKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2F0dHJk ZWYgZGVmIE9OIGFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBhZG51bT1hdHQu YXR0bnVtCisgIExFRlQgT1VURVIgSk9JTiAocGdfZGVwZW5kIEpPSU4gcGdf Y2xhc3MgY3MgT04gb2JqaWQ9Y3Mub2lkIEFORCBjcy5yZWxraW5kPSdTJykg T04gcmVmb2JqaWQ9YXR0LmF0dHJlbGlkIEFORCByZWZvYmpzdWJpZD1hdHQu YXR0bnVtCisgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04g bnMub2lkPWNzLnJlbG5hbWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdf aW5kZXggcGkgT04gcGkuaW5kcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBpbmRp c3ByaW1hcnkKK1dIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06Om9pZAor ICAgIHsjIyMgVG8gc2hvdyBzeXN0ZW0gb2JqZWN0cyAjIyN9CisgICAgeyUg aWYgbm90IHNob3dfc3lzX29iamVjdHMgJX0KKyAgICBBTkQgYXR0LmF0dG51 bSA+IDAKKyAgICB7JSBlbmRpZiAlfQorICAgIEFORCBhdHQuYXR0aXNkcm9w cGVkIElTIEZBTFNFCisgICAgT1JERVIgQlkgYXR0LmF0dG51bQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVz L2NvbHVtbi9zcWwvOS4yX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5kNTM2OTA2Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbi9z cWwvOS4yX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSw0NSBAQAor U0VMRUNUIGF0dC5hdHRuYW1lIGFzIG5hbWUsIGF0dC4qLCBkZWYuKiwgcGdf Y2F0YWxvZy5wZ19nZXRfZXhwcihkZWYuYWRiaW4sIGRlZi5hZHJlbGlkKSBB UyBkZWZ2YWwsCisgICAgICAgIENBU0UgV0hFTiBhdHQuYXR0bmRpbXMgPiAw IFRIRU4gMSBFTFNFIDAgRU5EIEFTIGlzYXJyYXksCisgICAgICAgIGZvcm1h dF90eXBlKHR5Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAgICAgICBmb3Jt YXRfdHlwZSh0eS5vaWQsYXR0LmF0dHR5cG1vZCkgQVMgZGlzcGxheXR5cG5h bWUsCisgICAgICAgIHRuLm5zcG5hbWUgYXMgdHlwbnNwbmFtZSwgZXQudHlw bmFtZSBhcyBlbGVtdHlwbmFtZSwKKyAgICAgICAgdHkudHlwc3RvcmFnZSBB UyBkZWZhdWx0c3RvcmFnZSwgY2wucmVsbmFtZSwgbmEubnNwbmFtZSwKKyAg ICAgICAgY29uY2F0KHF1b3RlX2lkZW50KG5hLm5zcG5hbWUpICwnLicsIHF1 b3RlX2lkZW50KGNsLnJlbG5hbWUpKSBBUyBwYXJlbnRfdGJsLAorCWF0dC5h dHRzdGF0dGFyZ2V0LCBkZXNjcmlwdGlvbiwgY3MucmVsbmFtZSBBUyBzZXJu YW1lLAorCW5zLm5zcG5hbWUgQVMgc2Vyc2NoZW1hLAorCShTRUxFQ1QgY291 bnQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWU9dHkudHlw bmFtZSkgPiAxIEFTIGlzZHVwLAorCWluZGtleSwgY29sbC5jb2xsbmFtZSwg bnNwYy5uc3BuYW1lIGFzIGNvbGxuc3BuYW1lICwgYXR0b3B0aW9ucywKKwkt LSBTdGFydCBwZ0FkbWluNCwgYWRkZWQgdG8gc2F2ZSB0aW1lIG9uIGNsaWVu dCBzaWRlIHBhcnNpbmcKKwlDQVNFIFdIRU4gbGVuZ3RoKGNvbGwuY29sbG5h bWUpID4gMCBBTkQgbGVuZ3RoKG5zcGMubnNwbmFtZSkgPiAwICBUSEVOCisJ ICBjb25jYXQocXVvdGVfaWRlbnQoY29sbC5jb2xsbmFtZSksJy4nLHF1b3Rl X2lkZW50KG5zcGMubnNwbmFtZSkpCisJRUxTRSAnJyBFTkQgQVMgY29sbHNw Y25hbWUsCisJQ0FTRSBXSEVOIHN0cnBvcyhmb3JtYXRfdHlwZSh0eS5vaWQs YXR0LmF0dHR5cG1vZCksICcuJykgPiAwIFRIRU4KKwkgIHNwbGl0X3BhcnQo Zm9ybWF0X3R5cGUodHkub2lkLGF0dC5hdHR0eXBtb2QpLCAnLicsIDIpCisJ RUxTRSBmb3JtYXRfdHlwZSh0eS5vaWQsYXR0LmF0dHR5cG1vZCkgRU5EIEFT IGNsdHlwZSwKKwktLSBFbmQgcGdBZG1pbjQKKwlFWElTVFMoU0VMRUNUIDEg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkPWF0dC5hdHRyZWxp ZCBBTkQgY29udHlwZT0nZicgQU5EIGF0dC5hdHRudW09QU5ZKGNvbmtleSkp IEFzIGlzX2ZrLAorCShTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9 JyB8fCBsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5v YmpvaWQ9YXR0LmF0dHR5cGlkIEFORCBzbDEub2Jqc3ViaWQ9MCkgQVMgc2Vj bGFiZWxzLAorCShDQVNFIFdIRU4gKGF0dC5hdHRudW0gPCAxKSBUSEVOIHRy dWUgRWxTRSBmYWxzZSBFTkQpIEFTIGlzX3N5c19jb2x1bW4KK0ZST00gcGdf YXR0cmlidXRlIGF0dAorICBKT0lOIHBnX3R5cGUgdHkgT04gdHkub2lkPWF0 dHR5cGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIHRuIE9OIHRuLm9pZD10eS50 eXBuYW1lc3BhY2UKKyAgSk9JTiBwZ19jbGFzcyBjbCBPTiBjbC5vaWQ9YXR0 LmF0dHJlbGlkCisgIEpPSU4gcGdfbmFtZXNwYWNlIG5hIE9OIG5hLm9pZD1j bC5yZWxuYW1lc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBnX3R5cGUgZXQg T04gZXQub2lkPXR5LnR5cGVsZW0KKyAgTEVGVCBPVVRFUiBKT0lOIHBnX2F0 dHJkZWYgZGVmIE9OIGFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBhZG51bT1h dHQuYXR0bnVtCisgIExFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBk ZXMgT04gKGRlcy5vYmpvaWQ9YXR0LmF0dHJlbGlkIEFORCBkZXMub2Jqc3Vi aWQ9YXR0LmF0dG51bSBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJl Z2NsYXNzKQorICBMRUZUIE9VVEVSIEpPSU4gKHBnX2RlcGVuZCBKT0lOIHBn X2NsYXNzIGNzIE9OIG9iamlkPWNzLm9pZCBBTkQgY3MucmVsa2luZD0nUycp IE9OIHJlZm9iamlkPWF0dC5hdHRyZWxpZCBBTkQgcmVmb2Jqc3ViaWQ9YXR0 LmF0dG51bQorICBMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9O IG5zLm9pZD1jcy5yZWxuYW1lc3BhY2UKKyAgTEVGVCBPVVRFUiBKT0lOIHBn X2luZGV4IHBpIE9OIHBpLmluZHJlbGlkPWF0dC5hdHRyZWxpZCBBTkQgaW5k aXNwcmltYXJ5CisgIExFRlQgT1VURVIgSk9JTiBwZ19jb2xsYXRpb24gY29s bCBPTiBhdHQuYXR0Y29sbGF0aW9uPWNvbGwub2lkCisgIExFRlQgT1VURVIg Sk9JTiBwZ19uYW1lc3BhY2UgbnNwYyBPTiBjb2xsLmNvbGxuYW1lc3BhY2U9 bnNwYy5vaWQKK1dIRVJFIGF0dC5hdHRyZWxpZCA9IHt7dGlkfX06Om9pZAor eyUgaWYgY2xpZCAlfQorICAgIEFORCBhdHQuYXR0bnVtID0ge3tjbGlkfX06 OmludAoreyUgZW5kaWYgJX0KK3sjIyMgVG8gc2hvdyBzeXN0ZW0gb2JqZWN0 cyAjIyN9Cit7JSBpZiBub3Qgc2hvd19zeXNfb2JqZWN0cyAlfQorICAgIEFO RCBhdHQuYXR0bnVtID4gMAoreyUgZW5kaWYgJX0KKyAgICBBTkQgYXR0LmF0 dGlzZHJvcHBlZCBJUyBGQUxTRQorICAgIE9SREVSIEJZIGF0dC5hdHRudW0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW5zL3Rl bXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmZjZTI0YTcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1uL3Nx bC85LjJfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTAxIEBACit7JSBp bXBvcnQgJ2NvbHVtbi9tYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJMRSAlfQoreyUgaW1wb3J0ICdjb2x1bW4vbWFjcm9zL3ByaXZpbGVnZS5t YWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvdmFy aWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgaWYgZGF0YSAlfQor eyMjIyAgUmVuYW1lIGNvbHVtbiBuYW1lICMjI30KK3slIGlmIGRhdGEubmFt ZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAgICBSRU5BTUUge3tj b25ufHF0SWRlbnQob19kYXRhLm5hbWUpfX0gVE8ge3tjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKX19OworeyUgZW5kaWYgJX0KK3sjIyMgIEFsdGVyIGNvbHVt biB0eXBlIGFuZCBjb2xsYXRpb24gIyMjfQoreyUgaWYgZGF0YS5jbHR5cGUg YW5kIGRhdGEuY2x0eXBlICE9IG9fZGF0YS5jbHR5cGUgJX0KK0FMVEVSIFRB QkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19 CisgICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9 fSB7e2RhdGEuY2x0eXBlfX17JSBpZiBkYXRhLmF0dGxlbiAlfQorKHt7ZGF0 YS5hdHRsZW59fXslIGlmIGRhdGEuYXR0cHJlY2lzaW9uJX0sIHt7ZGF0YS5h dHRwcmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9eyUgaWYgZGF0 YS5oYXNTcXJCcmFja2V0ICV9CitbXXslIGVuZGlmICV9eyUgaWYgZGF0YS5j b2xsc3BjbmFtZSBhbmQgZGF0YS5jb2xsc3BjbmFtZSAhPSBvX2RhdGEuY29s bHNwY25hbWUgJX0KKyBDT0xMQVRFIHt7ZGF0YS5jb2xsc3BjbmFtZX19eyUg ZW5kaWYgJX07Cit7JSBlbmRpZiAlfQoreyMjIyAgQWx0ZXIgY29sdW1uIGRl ZmF1bHQgdmFsdWUgIyMjfQoreyUgaWYgZGF0YS5kZWZ2YWwgYW5kIGRhdGEu ZGVmdmFsICE9IG9fZGF0YS5kZWZ2YWwgJX0KK0FMVEVSIFRBQkxFIHt7Y29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19CisgICAgQUxU RVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9fSBTRVQgREVG QVVMVCB7e2RhdGEuZGVmdmFsfX07Cit7JSBlbmRpZiAlfQoreyMjIyAgQWx0 ZXIgY29sdW1uIG5vdCBudWxsIHZhbHVlICMjI30KK3slIGlmICdhdHRub3Ru dWxsJyBpbiBkYXRhICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQorICAgIEFMVEVSIENPTFVNTiB7 e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX0geyUgaWYgZGF0YS5hdHRub3Ru dWxsICV9U0VUeyUgZWxzZSAlfURST1B7JSBlbmRpZiAlfSBOT1QgTlVMTDsK K3slIGVuZGlmICV9Cit7IyMjICBBbHRlciBjb2x1bW4gc3RhdGlzdGljcyB2 YWx1ZSAjIyN9Cit7JSBpZiBkYXRhLmF0dHN0YXR0ZXJnZXQgJX0KK0FMVEVS IFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxl KX19CisgICAgQUxURVIgQ09MVU1OIHt7Y29ubnxxdElkZW50KGRhdGEubmFt ZSl9fSBTRVQgU1RBVElTVElDUyB7e2RhdGEuYXR0c3RhdHRlcmdldH19Owor eyUgZW5kaWYgJX0KK3sjIyMgIEFsdGVyIGNvbHVtbiBzdG9yYWdlIHZhbHVl ICMjI30KK3slIGlmIGRhdGEuYXR0c3RvcmFnZSAlfQorQUxURVIgVEFCTEUg e3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KKyAg ICBBTFRFUiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5uYW1lKX19IFNF VCBTVE9SQUdFIHslaWYgZGF0YS5hdHRzdG9yYWdlID09ICdwJyAlfQorUExB SU57JSBlbGlmIGRhdGEuYXR0c3RvcmFnZSA9PSAnbSclfU1BSU57JSBlbGlm IGRhdGEuYXR0c3RvcmFnZSA9PSAnZSclfQorRVhURVJOQUx7JSBlbGlmIGRh dGEuYXR0c3RvcmFnZSA9PSAneCclfUVYVEVOREVEeyUgZW5kaWYgJX07Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09NTUVO VCBPTiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUsIGRhdGEubmFtZSl9fQorICAgIElTIHt7ZGF0YS5kZXNjcmlwdGlv bnxxdExpdGVyYWx9fTsKK3slIGVuZGlmICV9Cit7IyMjIFVwZGF0ZSBjb2x1 bW4gdmFyaWFibGVzICMjI30KK3slIGlmICdhdHRvcHRpb25zJyBpbiBkYXRh IGFuZCBkYXRhLmF0dG9wdGlvbnN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IHZh cmlhYmxlcyA9IGRhdGEuYXR0b3B0aW9ucyAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4g MCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEudGFibGUpfX0KK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdDT0xV TU4nLCBkYXRhLm5hbWUsIHZhcmlhYmxlcy5kZWxldGVkKSB9fQoreyUgZW5k aWYgJX0KK3slIGlmICdhZGRlZCcgaW4gdmFyaWFibGVzIGFuZCB2YXJpYWJs ZXMuYWRkZWR8bGVuZ3RoID4gMCAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KK3t7IFZBUklBQkxF LlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCB2YXJpYWJsZXMuYWRk ZWQpIH19Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHZhcmlh YmxlcyBhbmQgdmFyaWFibGVzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQorQUxU RVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFi bGUpfX0KK3t7IFZBUklBQkxFLlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5u YW1lLCB2YXJpYWJsZXMuY2hhbmdlZCkgfX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyMjIyBVcGRhdGUgY29sdW1uIHByaXZpbGVnZXMgIyMjfQor eyMgQ2hhbmdlIHRoZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmF0dGFj bCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYXR0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmF0dGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxF R0UuUkVTRVRBTEwoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRh dGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuYXR0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmF0dGFjbC5jaGFuZ2VkICV9Cit7eyBQUklW SUxFR0UuUkVTRVRBTEwoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUs IGRhdGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQore3sgUFJJVklMRUdFLkFQ UExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUs IHByaXYuZ3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAn YWRkZWQnIGluIGRhdGEuYXR0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmF0dGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRh dGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRl ZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyMjIyBV cHBkYXRlIHRhYmxlc3BhY2Ugc2VjdXJpdHlsYWJlbCAjIyN9Cit7IyBUaGUg U1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJl bCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgYW5kIGRhdGEuc2VjbGFiZWxz fGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xh YmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ0NP TFVNTicsIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQor e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ0NPTFVNTicsZGF0YS5zY2hlbWEs IGRhdGEudGFibGUsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2Vk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2Vk ICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNj aGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KK3sjIyMgRW5kIG1haW4gaWYgIyMjfQoreyUgZW5kaWYl fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY0MTE2ZQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsODY5IEBACisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiIgSW1wbGVtZW50cyBJbmRl eCBOb2RlICIiIgorCitmcm9tIGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxh dGUsIG1ha2VfcmVzcG9uc2UsIHJlcXVlc3QsIGpzb25pZnkKK2Zyb20gZmxh c2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9tIHBnYWRtaW4udXRp bHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCisgICAgbWFr ZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0No aWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24g aW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBvcnQgcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgYXMgZGF0 YWJhc2UKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBwcmVjb25k aXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1w b3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxU X0RSSVZFUgorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLnV0aWxzIGltcG9ydCBwYXJzZV9wcml2X2Zyb21fZGIsIFwKKyAg ICBwYXJzZV9wcml2X3RvX2RiCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3Jh cHMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgSW5kZXhlc01vZHVsZShDb2xs ZWN0aW9uTm9kZU1vZHVsZSk6CisgICAgIiIiCisgICAgIGNsYXNzIEluZGV4 ZXNNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpCisKKyAgICAgICAgQSBt b2R1bGUgY2xhc3MgZm9yIEluZGV4IG5vZGUgZGVyaXZlZCBmcm9tIENvbGxl Y3Rpb25Ob2RlTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0t CisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1l dGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIEluZGV4IGFuZCBpdCdz IGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgdGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5l cmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5v ZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3ZlcnJpZGRlbiBmcm9t IGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2Rl LgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1v ZHVsZSBzY3JpcHQgZm9yIHNjaGVtYSwgd2hlbiBhbnkgb2YgdGhlIHNlcnZl ciBub2RlIGlzCisgICAgICAgIGluaXRpYWxpemVkLgorICAgICIiIgorCisg ICAgTk9ERV9UWVBFID0gJ2luZGV4JworICAgIENPTExFQ1RJT05fTEFCRUwg PSBnZXR0ZXh0KCJJbmRleGVzIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxm LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgTWV0 aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgSW5kZXhNb2R1bGUgYW5k IGl0J3MgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgICphcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIi IgorICAgICAgICBzZWxmLm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYu bWF4X3ZlciA9IE5vbmUKKyAgICAgICAgc3VwZXIoSW5kZXhlc01vZHVsZSwg c2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIEJh Y2tlbmRTdXBwb3J0ZWQoc2VsZiwgbWFuYWdlciwgKiprd2FyZ3MpOgorICAg ICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGlzIG1vZHVsZSBpZiB2aWQgaXMg dmlldywgd2Ugd2lsbCBub3QgbG9hZCBpdCB1bmRlcgorICAgICAgICBtYXRl cmlhbCB2aWV3CisgICAgICAgICIiIgorICAgICAgICBpZiBzdXBlcihJbmRl eGVzTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9ydGVkKG1hbmFnZXIsICoq a3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rp b24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICAjIElmIERCIGlz IG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3Nlcgor ICAgICAgICAgICAgaWYgbm90IGNvbm4uY29ubmVjdGVkKCk6CisgICAgICAg ICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKKyAgICAg ICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxv c3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg KQorCisgICAgICAgICAgICBpZiAndmlkJyBub3QgaW4ga3dhcmdzOgorICAg ICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIHRlbXBs YXRlX3BhdGggPSAnaW5kZXgvc3FsLzkuMV9wbHVzJworICAgICAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg ICAgICAgW3RlbXBsYXRlX3BhdGgsICdiYWNrZW5kX3N1cHBvcnQuc3FsJ10p LCB2aWQ9a3dhcmdzWyd2aWQnXSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisKKyAgICAgICAgICAgICMg Y2hlY2sgaWYgYW55IGVycm9ycworICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICMgQ2hlY2sgdmlkIGlz IHZpZXcgbm90IG1hdGVyaWFsIHZpZXcKKyAgICAgICAgICAgICMgdGhlbiB0 cnVlLCBvdGhld2lzZSBmYWxzZQorICAgICAgICAgICAgcmV0dXJuIHJlcwor CisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0 aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgICMgVE9ETzo6CisgICAgICAg IFdlIGNhbiBoYXZlIGZvbGxvd2luZyBhcmd1bWVudHMgZm9yIGRpZmZlcmVu dCB0eXBlIG9mIHBhcmVudHMuCisgICAgICAgIGkuZS4KKyAgICAgICAgdGlk IC0gZm9yIHRhYmxlcworICAgICAgICB2aWQgLSBmb3IgbWF0ZXJpYWxpemVk IHZpZXdzCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQoJ3RpZCcgaW4g a3dhcmdzIG9yICd2aWQnIGluIGt3YXJncykKKyAgICAgICAgeWllbGQgc2Vs Zi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZSgKKyAgICAgICAg ICBrd2FyZ3NbJ3RpZCddIGlmICd0aWQnIGluIGt3YXJncyBlbHNlIGt3YXJn c1sndmlkJ10KKyAgICAgICAgICApCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBM b2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBzZXJ2ZXIsIHdoZW4gYW55IG9m IHRoZSBzZXJ2ZXItZ3JvdXAgbm9kZSBpcworICAgICAgICBpbml0aWFsaXpl ZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBkYXRhYmFzZS5EYXRh YmFzZU1vZHVsZS5OT0RFX1RZUEUKKworICAgIEBwcm9wZXJ0eQorICAgIGRl ZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9h ZCB0aGUgbW9kdWxlIG5vZGUgYXMgYSBsZWFmIG5vZGUKKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBGYWxzZQorCitibHVlcHJpbnQgPSBJbmRleGVz TW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNzIEluZGV4ZXNWaWV3KFBHQ2hp bGROb2RlVmlldyk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBpcyByZXNw b25zaWJsZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yIEluZGV4IG5vZGUK KworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18o Kiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxp emUgdGhlIEluZGV4VmlldyBhbmQgaXQncyBiYXNlIHZpZXcuCisKKyAgICAq IG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJvcGVydHkgZGVmaW5lcyAo aWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUuCisgICAgICAg IE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3duIGxvZ2ljCisK KyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAtIFRoaXMgZnVu Y3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBj aGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVu bmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFu YWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYK KworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB0byBsaXN0IGFsbCB0aGUgSW5kZXggbm9kZXMgd2l0aGluIHRoYXQKKyAg ICAgIGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQg bm9kZSB3aXRoaW4gdGhhdAorICAgICAgICBjb2xsZWN0aW9uLCBIZXJlIGl0 IHdpbGwgY3JlYXRlIGFsbCB0aGUgSW5kZXggbm9kZS4KKworICAgICogcHJv cGVydGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGlkeCkKKyAgICAg IC0gVGhpcyBmdW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2Yg dGhlIHNlbGVjdGVkIEluZGV4IG5vZGUKKworICAgICogY3JlYXRlKGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3 aWxsIGNyZWF0ZSB0aGUgbmV3IEluZGV4IG9iamVjdAorCisgICAgKiB1cGRh dGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBpZHgpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxl Y3RlZCBJbmRleCBub2RlCisKKyAgICAqIGRlbGV0ZShzZWxmLCBnaWQsIHNp ZCwgc2NpZCwgdGlkLCBpZHgpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdp bGwgZHJvcCB0aGUgSW5kZXggb2JqZWN0CisKKyAgICAqIG1zcWwoZ2lkLCBz aWQsIGRpZCwgc2NpZCwgdGlkLCBpZHgpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0aGUgc2Vs ZWN0ZWQKKyAgICAgICAgSW5kZXggbm9kZQorCisgICAgKiBnZXRfc3FsKGRh dGEsIHNjaWQsIHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdl bmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogc3FsKGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGUgc3FsIHRvIHNob3cgaXQgaW4gc3FsIHBhbmUgZm9yIHRoZQor ICAgICAgICBzZWxlY3RlZCBJbmRleCBub2RlLgorCisgICAgKiBkZXBlbmRl bmN5KGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIHdpbGwgZ2VuZXJhdGUgZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4g ZGVwZW5kZW5jeQorICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgSW5k ZXggbm9kZS4KKworICAgICogZGVwZW5kZW50KGdpZCwgc2lkLCBkaWQsIHNj aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgZGVw ZW5kZW50IGxpc3QgdG8gc2hvdyBpdCBpbiBkZXBlbmRlbnQKKyAgICAgICAg cGFuZSBmb3IgdGhlIHNlbGVjdGVkIEluZGV4IG5vZGUuCisgICAgIiIiCisK KyAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBw YXJlbnRfaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdp ZCc6ICdnaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQn OiAnc2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzog J2RpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdz Y2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3Rp ZCd9CisgICAgICAgICAgICBdCisgICAgaWRzID0gWworICAgICAgICAgICAg eyd0eXBlJzogJ2ludCcsICdpZCc6ICdpZHgnfQorICAgICAgICAgICAgXQor CisgICAgb3BlcmF0aW9ucyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWwor ICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAn ZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0 JzogJ2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAg ICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwKKyAgICAg ICAgJ2NoaWxkcmVuJzogW3snZ2V0JzogJ2NoaWxkcmVuJ31dLAorICAgICAg ICAnbm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9 XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAg ICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwK KyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisg ICAgICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9 XSwKKyAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRz J31dLAorICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAn bW9kdWxlX2pzJ31dLAorICAgICAgICAnZ2V0X2NvbGxhdGlvbnMnOiBbeydn ZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsnZ2V0JzogJ2dldF9jb2xsYXRpb25zJ31dLAorICAgICAgICAn Z2V0X2FjY2Vzc19tZXRob2RzJzogW3snZ2V0JzogJ2dldF9hY2Nlc3NfbWV0 aG9kcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnZ2V0 JzogJ2dldF9hY2Nlc3NfbWV0aG9kcyd9XSwKKyAgICAgICAgJ2dldF9vcF9j bGFzcyc6IFt7J2dldCc6ICdnZXRfb3BfY2xhc3MnfSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRfb3BfY2xhc3MnfV0K KyAgICB9KQorCisgICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUg YXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0 YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxs IGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxh dGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAgICAgIiIiCisgICAg ICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcCgqYXJncywgKiprd2Fy Z3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNl bGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgICAg ICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKAorICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10KKyAgICAgICAg ICAgICkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5j b25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAgICAgICAgIyBJ ZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dz ZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6 CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhh cyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgKQorCisgICAgICAgICAgICAjIFdlIG5lZWQgZGF0bGFzdHN5 c29pZCB0byBjaGVjayBpZiBjdXJyZW50IGluZGV4IGlzIHN5c3RlbSBpbmRl eAorICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5tYW5h Z2VyLmRiX2luZm9ba3dhcmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQor CisgICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9y IHNxbCBzY3JpcHRzCisgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAnaW5kZXgvc3FsLzkuMV9wbHVzJworCisgICAgICAgICAgICAjIFdlIG5l ZWQgcGFyZW50J3MgbmFtZSBlZyB0YWJsZSBuYW1lIGFuZCBzY2hlbWEgbmFt ZQorICAgICAgICAgICAgIyB3aGVuIHdlIGNyZWF0ZSBuZXcgaW5kZXggaW4g dXBkYXRlIHdlIGNhbiBmZXRjaCBpdCB1c2luZworICAgICAgICAgICAgIyBw cm9wZXJ0eSBzcWwKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3BhcmVudC5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlk PWt3YXJnc1sndGlkJ10pCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgICAgICBm b3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYSA9IHJvd1snc2NoZW1hJ10KKyAgICAgICAgICAgICAgICBzZWxm LnRhYmxlID0gcm93Wyd0YWJsZSddCisKKyAgICAgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfY29sbGF0aW9u cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGlkeD1Ob25lKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1 cm4gbGlzdCBvZiBjb2xsYXRpb24gYXZhaWxhYmxlCisgICAgICAgIHZpYSBB SkFYIHJlc3BvbnNlCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbeyds YWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnZ2V0X2NvbGxhdGlvbnMuc3FsJ10pKQorICAgICAg ICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJh eShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToK KyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsnbGFiZWwnOiByb3dbJ2NvbGxhdGlvbiddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiByb3dbJ2NvbGxh dGlvbiddfQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0y MDAKKyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBF eGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfYWNjZXNzX21ldGhvZHMoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBpZHg9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGxpc3Qg b2YgYWNjZXNzIG1ldGhvZHMgYXZhaWxhYmxlCisgICAgICAgIHZpYSBBSkFY IHJlc3BvbnNlCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbeydsYWJl bCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAgIHRyeToKKyAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZ2V0X2FtLnNxbCddKSkKKyAgICAgICAgICAgIHN0YXR1 cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAg ICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7J2xhYmVsJzogcm93WydhbW5hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3ZhbHVlJzogcm93WydhbW5hbWUnXX0KKyAgICAgICAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgZ2V0X29wX2NsYXNzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCwgaWR4PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIG9wX2NsYXNzIG1ldGhvZAorICAg ICAgICBmb3IgZWFjaCBhY2Nlc3MgbWV0aG9kcyBhdmFpbGFibGUgdmlhIEFK QVggcmVzcG9uc2UKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IGRpY3Qo KQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIEZldGNoaW5nIGFsbCB0 aGUgYWNjZXNzIG1ldGhvZHMKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X2Ft LnNxbCddKSkKKyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29u bi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZm9yIHJvdyBp biByc2V0Wydyb3dzJ106CisgICAgICAgICAgICAgICAgIyBGZXRjaGluZyBh bGwgdGhlIG9wX2NsYXNzZXMgZm9yIGVhY2ggYWNjZXNzIG1ldGhvZAorICAg ICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9vcF9jbGFzcy5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9pZD1y b3dbJ29pZCddKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzdWx0ID0g c2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgICAgICBvcF9jbGFzc19saXN0ID0gW3snbGFiZWwnOiAnJywgJ3Zh bHVlJzogJyd9XQorCisgICAgICAgICAgICAgICAgZm9yIHIgaW4gcmVzdWx0 Wydyb3dzJ106CisgICAgICAgICAgICAgICAgICAgIG9wX2NsYXNzX2xpc3Qu YXBwZW5kKHsnbGFiZWwnOiByWydvcGNuYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiByWydvcGNu YW1lJ119KQorCisgICAgICAgICAgICAgICAgIyBBcHBlbmQgb3BfY2xhc3Mg bGlzdCBpbiBtYWluIHJlc3VsdCBhcyBjb2xsZWN0aW9uCisgICAgICAgICAg ICAgICAgcmVzW3Jvd1snYW1uYW1lJ11dID0gb3BfY2xhc3NfbGlzdAorCisg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlzdChzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxpc3QgYWxsIHRoZSBzY2hlbWEg bm9kZXMgd2l0aGluIHRoYXQgY29sbGVjdGlvbi4KKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgZ3JvdXAgSUQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNl IElECisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAg IHRpZDogVGFibGUgSUQKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAg ICAgSlNPTiBvZiBhdmFpbGFibGUgc2NoZW1hIG5vZGVzCisgICAgICAgICIi IgorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIHRpZD10aWQpCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAg ICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNw b25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZSB3aXRoaW4gdGhh dCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0IHdpbGwgY3JlYXRlIGFs bCB0aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxl IElECisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEpTT04gb2Yg YXZhaWxhYmxlIHNjaGVtYSBjaGlsZCBub2RlcworICAgICAgICAiIiIKKyAg ICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwgdGlk PXRpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1 dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106Cisg ICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICBz ZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAg ICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcm93Wydu YW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWlu ZGV4IgorICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJldHVy biBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1y ZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg ICAgICkKKworICAgIGRlZiBfY29sdW1uX2RldGFpbHMoc2VsZiwgaWR4LCBk YXRhKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb25hbCB3 aWxsIGZldGNoIGxpc3Qgb2YgY29sdW1uIGRldGFpbHMgZm9yIGluZGV4CisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGlkeDogSW5kZXggT0lECisg ICAgICAgICAgICBkYXRhOiBQcm9wZXJ0aWVzIGRhdGEKKworICAgICAgICBS ZXR1cm5zOgorICAgICAgICAgICAgVXBkYXRlZCBwcm9wZXJ0aWVzIGRhdGEg d2l0aCBjb2x1bW4gZGV0YWlscworICAgICAgICAiIiIKKworICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnY29sdW1uX2RldGFpbHMuc3FsJ10pLCBpZHg9aWR4KQorICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkK KyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKyAgICAgICAg IyAnYXR0ZGVmJyBjb21lcyB3aXRoIHF1b3RlcyBmcm9tIHF1ZXJ5IHNvIHdl IG5lZWQgdG8gc3RyaXAgdGhlbQorICAgICAgICAjICdvcHRpb25zJyB3ZSBu ZWVkIHRydWUvZmFsc2UgdG8gcmVuZGVyIHN3aXRjaCBBU0MoZmFsc2UpL0RF U0ModHJ1ZSkKKyAgICAgICAgY29sdW1ucyA9IFtdCisgICAgICAgIGNvbHMg PSBbXQorICAgICAgICBjbnQgPSAxCisgICAgICAgIGZvciByb3cgaW4gcnNl dFsncm93cyddOgorICAgICAgICAgICAgIyBXZSBuZWVkIGFsbCBkYXRhIGFz IGNvbGxlY3Rpb24gZm9yIENvbHVtbnNNb2RlbAorICAgICAgICAgICAgY29s c19kYXRhID0geworICAgICAgICAgICAgICAgICdjb2xuYW1lJzogcm93Wydh dHRkZWYnXS5zdHJpcCgnIicpLAorICAgICAgICAgICAgICAgICdjb2xsc3Bj bmFtZSc6IHJvd1snY29sbG5zcG5hbWUnXSwKKyAgICAgICAgICAgICAgICAn b3BfY2xhc3MnOiByb3dbJ29wY25hbWUnXSwKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIGlmIHJvd1snb3B0aW9ucyddWzBdID09ICdERVNDJzoKKyAg ICAgICAgICAgICAgICBjb2xzX2RhdGFbJ3NvcnRfb3JkZXInXSA9IFRydWUK KyAgICAgICAgICAgIGNvbHVtbnMuYXBwZW5kKGNvbHNfZGF0YSkKKworICAg ICAgICAgICAgIyBXZSBuZWVkIHNhbWUgZGF0YSBhcyBzdHJpbmcgdG8gZGlz cGxheSBpbiBwcm9wZXJ0aWVzIHdpbmRvdworICAgICAgICAgICAgIyBJZiBt dWx0aXBsZSBjb2x1bW4gdGhlbiBzZXBhcmF0ZSBpdCBieSBjb2xvbgorICAg ICAgICAgICAgY29sc19zdHIgPSByb3dbJ2F0dGRlZiddCisgICAgICAgICAg ICBpZiByb3dbJ2NvbGxuc3BuYW1lJ106CisgICAgICAgICAgICAgICAgY29s c19zdHIgKz0gJyBDT0xMQVRFICcgKyByb3dbJ2NvbGxuc3BuYW1lJ10KKyAg ICAgICAgICAgIGlmIHJvd1snb3BjbmFtZSddOgorICAgICAgICAgICAgICAg IGNvbHNfc3RyICs9ICcgJyArIHJvd1snb3BjbmFtZSddCisgICAgICAgICAg ICBpZiByb3dbJ29wdGlvbnMnXVswXSA9PSAnREVTQyc6CisgICAgICAgICAg ICAgICAgY29sc19zdHIgKz0gJyBERVNDJworICAgICAgICAgICAgY29scy5h cHBlbmQoY29sc19zdHIpCisKKyAgICAgICAgIyBQdXNoIGFzIGNvbGxlY3Rp b24KKyAgICAgICAgZGF0YVsnY29sdW1ucyddID0gY29sdW1ucworICAgICAg ICAjIFB1c2ggYXMgc3RyaW5nCisgICAgICAgIGRhdGFbJ2NvbHMnXSA9ICcs ICcuam9pbihjb2xzKQorCisgICAgICAgIHJldHVybiBkYXRhCisKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGlkeCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVy dGllcyBvZiB0aGUgc2VsZWN0ZWQgc2NoZW1hIG5vZGUuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiAgRGF0 YWJhc2UgSUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxl IElECisgICAgICAgICAgICBpZHg6IEluZGV4IElECisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIEpTT04gb2Ygc2VsZWN0ZWQgc2NoZW1hIG5v ZGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwg aWR4PWlkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGxh c3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQorCisgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICMgTWFr aW5nIGNvcHkgb2Ygb3V0cHV0IGZvciBmdXR1cmUgdXNlCisgICAgICAgIGRh dGEgPSBkaWN0KHJlc1sncm93cyddWzBdKQorCisgICAgICAgICMgQWRkIGNv bHVtbiBkZXRhaWxzIGZvciBjdXJyZW50IGluZGV4CisgICAgICAgIGRhdGEg PSBzZWxmLl9jb2x1bW5fZGV0YWlscyhpZHgsIGRhdGEpCisKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9u c2U9ZGF0YSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGVz IG5ldyB0aGUgc2NoZW1hIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAg ICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFRhYmxl IElECisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3Jt IGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAg ICByZXF1ZXN0LmRhdGEuZGVjb2RlKCkKKyAgICAgICAgKQorICAgICAgICBy ZXF1aXJlZF9hcmdzID0geworICAgICAgICAgICAgJ25hbWUnOiAnTmFtZScs CisgICAgICAgICAgICAnY29sdW1ucyc6ICdDb2x1bW5zJworICAgICAgICB9 CisKKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAg ICAgICAgZXJyX21zZyA9IE5vbmUKKyAgICAgICAgICAgIGlmIGFyZyA9PSAn Y29sdW1ucycgYW5kIGxlbihkYXRhWydjb2x1bW5zJ10pIDwgMToKKyAgICAg ICAgICAgICAgICBlcnJfbXNnID0gIllvdSBtdXN0IHByb3ZpZGUgb25lIG9y IG1vcmUgY29sdW1uIHRvIGNyZWF0ZSBpbmRleCIKKworICAgICAgICAgICAg aWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGVycl9tc2cg PSAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICglcyku IiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRfYXJn c1thcmddCisgICAgICAgICAgICAgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGF0 IGxlYXN0IG9uZSBjb2x1bW4KKyAgICAgICAgICAgIGlmIGVycl9tc2cgaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAg ICAgICBlcnJvcm1zZz1nZXR0ZXh0KGVycl9tc2cpCisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgICMgQWRkaW5nIHBhcmVudCBpbnRvIGRhdGEgZGlj dCwgd2lsbCBiZSB1c2luZyBpdCB3aGlsZSBjcmVhdGluZyBzcWwKKyAgICAg ICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYQorICAgICAgICBkYXRh Wyd0YWJsZSddID0gc2VsZi50YWJsZQorCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25u KQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgIyBJZiB1c2VyIGNob29zZXMg Y29uY3VycmVudCBpbmRleCB0aGVuIHdlIGNhbiBub3QgcnVuIGl0IGFsb25n CisgICAgICAgICAgICAjIHdpdGggb3RoZXIgYWx0ZXIgc3RhdG1lbnRzIHNv IHdlIHdpbGwgc2VwYXJhdGUgYWx0ZXIgaW5kZXggcGFydAorICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdhbHRlci5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubikKKyAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKyAgICAgICAgICAgICMgd2UgbmVlZCBvaWQgdG8gdG8gYWRk IG9iamVjdCBpbiB0cmVlIGF0IGJyb3dzZXIKKyAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnZ2V0X29pZC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGlkPXRpZCwgZGF0YT1kYXRhKQorICAgICAgICAgICAgc3Rh dHVzLCBpZHggPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXRpZCkKKworICAg ICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9k ZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAg ICAgICAgICAgICAgICAgIGlkeCwKKyAgICAgICAgICAgICAgICAgICAgc2Np ZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAorICAgICAg ICAgICAgICAgICAgICBpY29uPSJpY29uLWluZGV4IgorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIGlkeCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlcyBleGlzdGluZyB0aGUgc2NoZW1hIG9iamVjdAor CisgICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAor ICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIGlkeDogSW5k ZXggSUQKKyAgICAgICAgIiIiCisgICAgICAgICMgQmVsb3cgd2lsbCBkZWNp ZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBvciBkcm9wIHdpdGggY2FzY2FkZSBj YWxsCisgICAgICAgIGlmIHNlbGYuY21kID09ICdkZWxldGUnOgorICAgICAg ICAgICAgIyBUaGlzIGlzIGEgY2FzY2FkZSBvcGVyYXRpb24KKyAgICAgICAg ICAgIGNhc2NhZGUgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAg ICBjYXNjYWRlID0gRmFsc2UKKworICAgICAgICB0cnk6CisgICAgICAgICAg ICAjIFdlIHdpbGwgZmlyc3QgZmV0Y2ggdGhlIGluZGV4IG5hbWUgZm9yIGN1 cnJlbnQgcmVxdWVzdAorICAgICAgICAgICAgIyBzbyB0aGF0IHdlIGNyZWF0 ZSB0ZW1wbGF0ZSBmb3IgZHJvcHBpbmcgaW5kZXgKKyAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGlkPXRpZCwgaWR4PWlkeCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0 bGFzdHN5c29pZCkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGRhdGEgPSBk aWN0KHJlc1sncm93cyddWzBdKQorCisgICAgICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rl bGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubiwgY2FzY2FkZT1jYXNjYWRl KQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAg ICAgICAgICAgaW5mbz1nZXR0ZXh0KCJJbmRleCBpcyBkcm9wcGVkIiksCisg ICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdp ZCc6IGlkeCwKKyAgICAgICAgICAgICAgICAgICAgJ3RpZCc6IHRpZAorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIHRpZCwgaWR4KToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGVzIGV4aXN0aW5nIHRoZSBzY2hl bWEgb2JqZWN0CisKKyAgICAgICAgIEFyZ3M6CisgICAgICAgICAgIGdpZDog U2VydmVyIEdyb3VwIElECisgICAgICAgICAgIHNpZDogU2VydmVyIElECisg ICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgc2NpZDog U2NoZW1hIElECisgICAgICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAgICAg ICAgaWR4OiBJbmRleCBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9 IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICB0cnk6CisgICAg ICAgICAgICBTUUwgPSBzZWxmLmdldF9zcWwoc2NpZCwgdGlkLCBpZHgsIGRh dGEpCisgICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBh bmQgU1FMLnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisg ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAg ICAgICBpbmZvPSJJbmRleCB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiBpZHgs CisgICAgICAgICAgICAgICAgICAgICAgICAndGlkJzogdGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNl OgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAg ICAgICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRhdGUiLAorICAgICAgICAg ICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdp ZCc6IGlkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0aWQnOiB0aWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKworICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgaWR4PU5vbmUpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlcyBtb2Rp ZmllZCBzcWwgZm9yIHNjaGVtYSBvYmplY3QKKworICAgICAgICAgQXJnczoK KyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAor ICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlkOiBU YWJsZSBJRAorICAgICAgICAgICBpZHg6IEluZGV4IElEIChXaGVuIHdvcmtp bmcgd2l0aCBleGlzdGluZyBpbmRleCkKKyAgICAgICAgIiIiCisgICAgICAg IGRhdGEgPSBkaWN0KCkKKyAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5h cmdzLml0ZW1zKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg ICAgZGF0YVtrXSA9IGpzb24ubG9hZHModikKKyAgICAgICAgICAgIGV4Y2Vw dCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisK KyAgICAgICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxs IGJlIHVzaW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICBkYXRh WydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAgIGRhdGFbJ3RhYmxl J10gPSBzZWxmLnRhYmxlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg U1FMID0gc2VsZi5nZXRfc3FsKHNjaWQsIHRpZCwgaWR4LCBkYXRhKQorCisg ICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FM LnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9U1FM LAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAg ICAgICAgICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIGRlZiBnZXRfc3FsKHNlbGYs IHNjaWQsIHRpZCwgaWR4LCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5yYXRlIHNxbCBmcm9tIG1vZGVsIGRh dGEKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlkeCBpcyBub3QgTm9uZToK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwgaWR4PWlk eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0 c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKworICAgICAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKworICAg ICAgICAgICAgIyBJZiBuYW1lIGlzIG5vdCBwcmVzZW50IGluIGRhdGEgdGhl bgorICAgICAgICAgICAgIyB3ZSB3aWxsIGZldGNoIGl0IGZyb20gb2xkIGRh dGEsIHdlIGFsc28gbmVlZCBzY2hlbWEgJiB0YWJsZSBuYW1lCisgICAgICAg ICAgICBpZiAnbmFtZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAg ZGF0YVsnbmFtZSddID0gb2xkX2RhdGFbJ25hbWUnXQorCisgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSksCisg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEsIGNv bm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgcmVxdWlyZWRfYXJncyA9IHsKKyAgICAgICAgICAg ICAgICAnbmFtZSc6ICdOYW1lJywKKyAgICAgICAgICAgICAgICAnY29sdW1u cyc6ICdDb2x1bW5zJworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9y IGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgICAgIGVyciA9 IEZhbHNlCisgICAgICAgICAgICAgICAgaWYgYXJnID09ICdjb2x1bW5zJyBh bmQgbGVuKGRhdGFbJ2NvbHVtbnMnXSkgPCAxOgorICAgICAgICAgICAgICAg ICAgICBlcnIgPSBUcnVlCisKKyAgICAgICAgICAgICAgICBpZiBhcmcgbm90 IGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGVyciA9IFRydWUKKyAg ICAgICAgICAgICAgICAgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGF0IGxlYXN0 IG9uZSBjb2x1bW4KKyAgICAgICAgICAgICAgICBpZiBlcnI6CisgICAgICAg ICAgICAgICAgICAgIHJldHVybiBnZXR0ZXh0KCctLSBpbmNvbXBsZXRlIGRl ZmluaXRpb24nKQorCisgICAgICAgICAgICAjIElmIHRoZSByZXF1ZXN0IGZv ciBuZXcgb2JqZWN0IHdoaWNoIGRvIG5vdCBoYXZlIGRpZAorICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisg ICAgICAgICAgICBTUUwgKz0gIlxuIgorICAgICAgICAgICAgU1FMICs9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn YWx0ZXIuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAgIHJl dHVybiBTUUwKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg c3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgaWR4KToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0 ZXMgcmV2ZXJzZSBlbmdpbmVlcmVkIHNxbCBmb3Igc2NoZW1hIG9iamVjdAor CisgICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAor ICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIGlkeDogSW5k ZXggSUQKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGlkPXRpZCwgaWR4PWlkeCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYu ZGF0bGFzdHN5c29pZCkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGRhdGEg PSBkaWN0KHJlc1sncm93cyddWzBdKQorICAgICAgICAgICAgIyBBZGRpbmcg cGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxsIGJlIHVzaW5nIGl0IHdoaWxl IGNyZWF0aW5nIHNxbAorICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBz ZWxmLnNjaGVtYQorICAgICAgICAgICAgZGF0YVsndGFibGUnXSA9IHNlbGYu dGFibGUKKworICAgICAgICAgICAgIyBBZGQgY29sdW1uIGRldGFpbHMgZm9y IGN1cnJlbnQgaW5kZXgKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9jb2x1 bW5fZGV0YWlscyhpZHgsIGRhdGEpCisKKyAgICAgICAgICAgIFNRTCA9IHNl bGYuZ2V0X3NxbChzY2lkLCB0aWQsIE5vbmUsIGRhdGEpCisKKyAgICAgICAg ICAgIHNxbF9oZWFkZXIgPSAiLS0gSW5kZXg6IHswfVxuXG4tLSAiLmZvcm1h dChkYXRhWyduYW1lJ10pCisgICAgICAgICAgICBzcWxfaGVhZGVyICs9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdkZWxldGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29u bikKKworICAgICAgICAgICAgU1FMID0gc3FsX2hlYWRlciArICdcblxuJyAr IFNRTAorCisgICAgICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNw b25zZT1TUUwpCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk LCBpZHgpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBn ZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisg ICAgICAgIGZvciB0aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAg ICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ RAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0 aWQ6IFRhYmxlIElECisgICAgICAgICAgICBpZHg6IEluZGV4IElECisgICAg ICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jlc3VsdCA9IHNlbGYuZ2V0 X2RlcGVuZGVudHMoCisgICAgICAgICAgICBzZWxmLmNvbm4sIGlkeAorICAg ICAgICApCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgaWR4KToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRl bmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0 aGUgc2NoZW1hIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAg ICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IFRhYmxlIElE CisgICAgICAgICAgICBpZHg6IEluZGV4IElECisKKyAgICAgICAgIiIiCisg ICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRl bmNpZXMoCisgICAgICAgICAgICBzZWxmLmNvbm4sIGlkeAorICAgICAgICAp CisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCitJbmRl eGVzVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvc3RhdGljL2lt Zy9jb2xsLWluZGV4LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRl eGVzL3N0YXRpYy9pbWcvY29sbC1pbmRleC5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uYmIxNTEzYzgyODdlMmVlNWIzOWMzNjgzNmZjMDE2MzZlZDM1 Y2Y1ZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDY4CnpjbWVBU0BOPyhv bEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5bGBHYk1mb0IqRT9TMExURmBvM1pQ TWFgUGleNXNYMgp6Pm80bG1vPmk8a0NSVihrSjh3dEZtWnpybW1ycDxjY0tw ZkxMa35haXgkfGwzXiQrVlZ5PDJ8diY0THJKaWRIXjYKekAkQm8tJDZwVEl7 flFwTDxRSjlYNk9wKj4jc3t+TWM7fSF2aGsmQCpNX3dGeF5rdl9AUGRqZFkq bSZqTCVKWGopCnpwTCNYdD0hQHdHcFppMjZkVzkjcmhiRkFQQFlYM1gmZlko RSpYQHMrdWYxUCQ7cUI3WHVqZF9tSXBmZ3R1Mk1mMgp6cCEqbjBnOFlJUjlH PX1zMTlDVkVKUip5TXY8RGN3b3lAaWFHVihvTDk3N343Q25wP1c9PHp3RHFy dFEkPVooeDkKemp+Y3heaTNkI18xKW8yQmAxRnlSZ053OEhGcEVwVClxP0l0 RDw2dEUyT3JrJFRnSH5iOW5qbWRXWGhKRkhGSW9TCnpnYWRrOzdFUmpKd1E4 MnQ1dyEoVXl1UH0qdmF6SypxS3x6MiFwcWEhbFVURE9kIzZNUEJnMGcyJlgx U3gwV0RAPQp6UCVVd2RDYG1+eU53ckVZTihFOTNNaDFva3hgc3gmMjhKTzwy Mzk3PFJ3a3l9MkJ1YTkySl96T3R3UGF8bzFjPUkKaVJ0ZUV5VTx1WCRSQmQ4 cVU8VDF9WUleN3prUUpWO2VsRntyNX1FLTEoISZQOwoKbGl0ZXJhbCAwCkhj bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2luZGV4ZXMvc3RhdGljL2ltZy9pbmRleC5wbmcgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvaW5kZXhlcy9zdGF0aWMvaW1nL2luZGV4LnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi5hMjM5YzEyNTEwOWNhOGQ3M2I2YWZhODQwYjU3 NDBhOGJiMDY5MzRlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NjIKemNt ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiTWYrVz87c1Mw TFRGYG8zWlBNYWBQaV41c1gyCno+bzRsbW8+aTxrQ1JWKGtKOHk/K3twRjQ9 UGZ0SnBjSC0mUnFtUkVGZURIYmktQV9BaWUleVRSe2tsdTxSLVN2YQp6PGth aGNtP1p6YEIpX09jcE5QYnJ3PzJBPUNBZnZleTlDRU0xOyNCbntfXkNydWc5 S3pKQG9MKXpJJmd4VHp8aioKel4xRF4lLXorYC1kY2xjVGJCQDA3aSVSbHxP IVNJSypsX3VzT0tga1hQQEY/Um9TbEV7ajY9XjRLbC14Jnted257CnpLV0BB NlZaKVZvdDFyQT1jSU5mTWxkdDk7ZUwzXmNeUWl9KGN9RkM4aDkkVSVDYikq Z0ZGKlVuRihBJn5LWCZIZgp6PVg+c2ErSjV1SHJtT0dRVVZPWGE/Mz19PlVk PW85YUBPRyYoKylnO2I4TXFCKDhHKStMNExzdTQkcDMrMFhkdW4KejkrQWFC KzU/UTtQRztLeTg4eDBSanYqNDRsTUB0fTQyJXBuRld9ZylYPThETDVfZj9q Z1pZZn1oWXoxVnVDSmg+CnpxTjgrKlJadXs5YGgrUXlyY0luV3h0JjhwTHJj P3A8JSg0K3Zvb0FuTTdDfXpUfmhrPjNvbFF2MEBFP0lXb2dnRQp6cmlFUUkr YXx5JFkrY1JudUFWTCkmTjA5N154MzxJRlEyfUJ7NXBTPEhuYUlFP0dwP1B2 JW0wI3NFYlRtNHxJb1cKemlFQmhqTkA3Vz5SZFBgKGtZWEAwRmZgQ0xHfTFM TjNeNmpXR0JMST9HMVdGT3dLNmM2X2ZCc1dpaVhfJGwrM2hCCmloejB7b3Vt KyVONkR0RVZoPXg8c0wpUVFgRm5HSDl4dlg8YVhhV0c1ZkIyKlQKCmxpdGVy YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9qcy9pbmRleC5qcyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRl eC9qcy9pbmRleC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4xMmVkYzAyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L2pzL2luZGV4Lmpz CkBAIC0wLDAgKzEsMzYyIEBACitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5 JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1p bicsICdwZ2FkbWluLmJyb3dzZXInLAorICAgICAgICAnYmFja2Zvcm0nLCAn YWxlcnRpZnknLCAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nXSwKK2Z1 bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0s IGFsZXJ0aWZ5KSB7CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwt aW5kZXgnXSkgeworICAgIHZhciBkYXRhYmFzZXMgPSBwZ0FkbWluLkJyb3dz ZXIuTm9kZXNbJ2NvbGwtaW5kZXgnXSA9CisgICAgICBwZ0FkbWluLkJyb3dz ZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2RlOiAnaW5kZXgn LAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0luZGV4ZXMnKSB9fScsCisgICAg ICAgIHR5cGU6ICdjb2xsLWluZGV4JywKKyAgICAgICAgY29sdW1uczogWydu YW1lJywgJ29pZCcsICdkZXNjcmlwdGlvbiddCisgICAgICB9KTsKKyAgfTsK KworICAgIC8vIE1vZGVsIHRvIGNyZWF0ZSBjb2x1bW4gY29sbGVjdGlvbiBj b250cm9sCisgICAgdmFyIENvbHVtbk1vZGVsID0gcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAg ICAgICAgICBjb2xuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgY29sbHNw Y25hbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBvcF9jbGFzczogdW5kZWZp bmVkLAorICAgICAgICAgIHNvcnRfb3JkZXI6IGZhbHNlLAorICAgICAgICAg IG51bGxzOiBmYWxzZQorICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFsK KyAgICAgICAgICB7CisgICAgICAgICAgICBpZDogJ2NvbG5hbWUnLCBsYWJl bDone3sgXygnQ29sdW1uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYScsIGVk aXRhYmxlOiBmYWxzZSwKKyAgICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWxp c3QtYnktbmFtZScsIG5vZGU6ICdjb2x1bW4nCisgICAgICAgICAgfSx7Cisg ICAgICAgICAgICBpZDogJ2NvbGxzcGNuYW1lJywgbGFiZWw6J3t7IF8oJ0Nv bGxhdGlvbicpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgICB0 eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBlZGl0YWJsZTog ZmFsc2UsCisgICAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlv bnMnLCB1cmw6ICdnZXRfY29sbGF0aW9ucycsIG5vZGU6ICdpbmRleCcKKyAg ICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnb3BfY2xhc3MnLCBsYWJl bDone3sgXygnT3BlcmF0b3IgY2xhc3MnKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogJ2NoZWNr QWNjZXNzTWV0aG9kJywgZWRpdGFibGU6IGZhbHNlLAorICAgICAgICAgICAg Y29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0X29wX2Ns YXNzJywgbm9kZTogJ2luZGV4JywKKyAgICAgICAgICAgIGRlcHM6IFsnYW1u YW1lJ10sIHRyYW5zZm9ybTogZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAg ICAgIC8qIFdlIG5lZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gY29sbGVjdGlv biBhY2NvcmRpbmcKKyAgICAgICAgICAgICAgKiB0byBhY2Nlc3MgbWV0aG9k IHNlbGVjdGVkIGJ5IHVzZXIgaWYgbm90IHNlbGVjdGVkCisgICAgICAgICAg ICAgICogc2VuZCBidHJlZSByZWxhdGVkIG9wX2NsYXNzIG9wdGlvbnMKKyAg ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICB2YXIgYW1uYW1lID0gdGhp cy5tb2RlbC5oYW5kbGVyLmdldCgnYW1uYW1lJyksCisgICAgICAgICAgICAg ICAgIG9wdGlvbnMgPSBkYXRhWydidHJlZSddOworCisgICAgICAgICAgICAg aWYoXy5pc1VuZGVmaW5lZChhbW5hbWUpKQorICAgICAgICAgICAgICAgcmV0 dXJuIG9wdGlvbnM7CisKKyAgICAgICAgICAgICBfLmVhY2goZGF0YSwgZnVu Y3Rpb24odiwgaykgeworICAgICAgICAgICAgICAgIGlmKGFtbmFtZSA9PT0g aykgeworICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IHY7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICBy ZXR1cm4gb3B0aW9uczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9LHsK KyAgICAgICAgICAgIGlkOiAnc29ydF9vcmRlcicsIGxhYmVsOid7eyBfKCdT b3J0IG9yZGVyJykgfX0nLCBjZWxsOiAnc3dpdGNoJywKKyAgICAgICAgICAg IHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2NoZWNrQWNjZXNzTWV0aG9k JywgZWRpdGFibGU6IGZhbHNlLAorICAgICAgICAgICAgZGVwczogWydhbW5h bWUnXSwKKyAgICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICAn b25UZXh0JzogJ0RFU0MnLCAnb2ZmVGV4dCc6ICdBU0MnLAorICAgICAgICAg ICAgICdvbkNvbG9yJzogJ3N1Y2Nlc3MnLCAnb2ZmQ29sb3InOiAnZGVmYXVs dCcsCisgICAgICAgICAgICAgJ3NpemUnOiAnc21hbGwnCisgICAgICAgICAg ICB9CisgICAgICAgICAgfSx7CisgICAgICAgICAgICBpZDogJ251bGxzJywg bGFiZWw6J3t7IF8oJ05VTExzJykgfX0nLCBjZWxsOiAnc3dpdGNoJywKKyAg ICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2NoZWNrQWNj ZXNzTWV0aG9kJywgZWRpdGFibGU6IGZhbHNlLAorICAgICAgICAgICAgZGVw czogWydhbW5hbWUnLCAnc29ydF9vcmRlciddLAorICAgICAgICAgICAgb3B0 aW9uczogeworICAgICAgICAgICAgICdvblRleHQnOiAnRklSU1QnLCAnb2Zm VGV4dCc6ICdMQVNUJywKKyAgICAgICAgICAgICAnb25Db2xvcic6ICdzdWNj ZXNzJywgJ29mZkNvbG9yJzogJ2RlZmF1bHQnLAorICAgICAgICAgICAgICdz aXplJzogJ3NtYWxsJworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg ICAgICAgXSwKKyAgICAgICAgLy8gV2Ugd2lsbCBjaGVjayBpZiB3ZSBhcmUg dW5kZXIgc2NoZW1hIG5vZGUKKyAgICAgICAgaW5TY2hlbWE6IGZ1bmN0aW9u KCkgeworICAgICAgICAgIGlmKHRoaXMubm9kZV9pbmZvICYmICAnY2F0YWxv ZycgaW4gdGhpcy5ub2RlX2luZm8pIHsKKyAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgIH0sCisgICAgICAgIC8vIFdlIHdpbGwgY2hlY2sgaWYgd2UgYXJl IHVuZGVyIHNjaGVtYSBub2RlICYgaW4gJ2NyZWF0ZScgbW9kZQorICAgICAg ICBpblNjaGVtYVdpdGhNb2RlbENoZWNrOiBmdW5jdGlvbihtKSB7CisgICAg ICAgICAgaWYodGhpcy5ub2RlX2luZm8gJiYgICdzY2hlbWEnIGluIHRoaXMu bm9kZV9pbmZvKSB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUg Y29udHJvbCBpZiBpdCdzIGluICdlZGl0JyBtb2RlCisgICAgICAgICAgICBp ZiAobS5pc05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSwKKyAgICAgICAgLy8gV2Ugd2lsbCBj aGVjayBpZiB3ZSBhcmUgdW5kZXIgc2NoZW1hIG5vZGUgYW5kIGFkZGVkIGNv bmRpdGlvbgorICAgICAgICBjaGVja0FjY2Vzc01ldGhvZDogZnVuY3Rpb24o bSkgeworICAgICAgICAvL0FjY2VzcyBtZXRob2QgaXMgZW1wdHkgb3IgYnRy ZWUgdGhlbiBkbyBub3QgZGlzYWJsZSBmaWVsZAorICAgICAgICAgIHZhciBw YXJlbnRfbW9kZWwgPSBtLmhhbmRsZXI7CisgICAgICAgICAgaWYoIW0uaW5T Y2hlbWEuYXBwbHkodGhpcywgW21dKSAmJgorICAgICAgICAgICAgICAoXy5p c1VuZGVmaW5lZChwYXJlbnRfbW9kZWwuZ2V0KCdhbW5hbWUnKSkgfHwKKyAg ICAgICAgICAgICAgIF8uaXNOdWxsKHBhcmVudF9tb2RlbC5nZXQoJ2FtbmFt ZScpKSB8fAorICAgICAgICAgICAgICAgU3RyaW5nKHBhcmVudF9tb2RlbC5n ZXQoJ2FtbmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcn IHx8CisgICAgICAgICAgICAgICBwYXJlbnRfbW9kZWwuZ2V0KCdhbW5hbWUn KSA9PT0gJ2J0cmVlJykpIHsKKyAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g c2V0IG51bGxzIHRvIHRydWUgaWYgc29ydF9vcmRlciBpcyBzZXQgdG8gZGVz YworICAgICAgICAgICAgLy8gbnVsbHMgZmlyc3QgaXMgZGVmYXVsdCBmb3Ig ZGVzYworICAgICAgICAgICAgaWYobS5nZXQoJ3NvcnRfb3JkZXInKSA9PSB0 cnVlKSB7CisgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg eyBtLnNldCgnbnVsbHMnLCB0cnVlKSB9LCAxMCk7CisgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp IHsgbS5zZXQoJ251bGxzJywgZmFsc2UpIH0sIDEwKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9Cisg ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisgICAgfSk7CisK KyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2luZGV4J10pIHsKKyAgICBwZ0Fk bWluLkJyb3dzZXIuTm9kZXNbJ2luZGV4J10gPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6IFsndGFibGUnLCAn bWF0ZXJpYWxpemVkX3ZpZXcnXSwKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTog Wydjb2xsLXRhYmxlJ10sCisgICAgICB0eXBlOiAnaW5kZXgnLAorICAgICAg bGFiZWw6ICd7eyBfKCdJbmRleCcpIH19JywKKyAgICAgIGhhc1NRTDogIHRy dWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAgSW5pdDogZnVu Y3Rpb24oKSB7CisgICAgICAgIC8qIEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJh dGlvbiBvZiBtZW51cyAqLworICAgICAgICBpZiAodGhpcy5pbml0aWFsaXpl ZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLmluaXRp YWxpemVkID0gdHJ1ZTsKKworICAgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVz KFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9pbmRleF9vbl9jb2xsJywg bm9kZTogJ2NvbGwtaW5kZXgnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAg YXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3No b3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3Jl YXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnSW5kZXguLi4nKSB9 fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWluZGV4Jywg ZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAg ICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAg ICAgIG5hbWU6ICdjcmVhdGVfaW5kZXgnLCBub2RlOiAnaW5kZXgnLCBtb2R1 bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29u dGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAg ICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVs OiAne3sgXygnSW5kZXguLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3dj VGFiSWNvbiBpY29uLWluZGV4JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScs IGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUn CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfaW5kZXhf b25UYWJsZScsIG5vZGU6ICd0YWJsZScsIG1vZHVsZTogdGhpcywKKyAgICAg ICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNr OiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6 ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdJbmRleC4u LicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24taW5k ZXgnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAor ICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7Cisg ICAgICAgICAgbmFtZTogJ2NyZWF0ZV9pbmRleCcsIG5vZGU6ICdtYXRlcmlh bGl6ZWRfdmlldycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNSwgbGFiZWw6ICd7eyBfKCdJbmRleC4uLicpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24taW5kZXgnLCBkYXRhOiB7 YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVu YWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfQorICAgICAgICBdKTsKKyAg ICAgIH0sCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVt YSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiBwZ0Jy b3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIG1v ZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAg ICAgICBkZWZhdWx0czogeworICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwK KyAgICAgICAgICBuc3BuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgdGFi bmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgIHNwY25hbWU6IHVuZGVmaW5l ZAorICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAg aWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCdOYW1lJykgfX0nLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAn aW5TY2hlbWEnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnb2lkJywg bGFiZWw6J3t7IF8oJ09JRCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAg ICAgICAgdHlwZTogJ2ludCcsIGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ2Vk aXQnLCAncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAnc3BjbmFtZScsIGxhYmVsOid7eyBfKCdUYWJsZXNwYWNlJykgfX0nLCBj ZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0 LWJ5LW5hbWUnLCBub2RlOiAndGFibGVzcGFjZScsCisgICAgICAgICAgdHlw ZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2Vk aXQnXSwKKyAgICAgICAgICBkaXNhYmxlZDogJ2luU2NoZW1hJywgZmlsdGVy OiBmdW5jdGlvbihkKSB7CisgICAgICAgICAgICAvLyBJZiB0YWJsZXNwYWNl IG5hbWUgaXMgbm90ICJwZ19nbG9iYWwiIHRoZW4gd2UgbmVlZCB0byBleGNs dWRlIHRoZW0KKyAgICAgICAgICAgIGlmKGQgJiYgZC5sYWJlbC5tYXRjaCgv cGdfZ2xvYmFsLykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdhbW5hbWUnLCBsYWJlbDone3sgXygnQWNjZXNzIE1ldGhvZCcpIH19 JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBt b2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAg ICAgICBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snLCB1cmw6 ICdnZXRfYWNjZXNzX21ldGhvZHMnLAorICAgICAgICAgIGdyb3VwOiAne3sg XygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICBjb250cm9sOiBCYWNr Zm9ybS5Ob2RlQWpheE9wdGlvbnNDb250cm9sLmV4dGVuZCh7CisgICAgICAg ICAgICAgIC8vIFdoZW4gYWNjZXNzIG1ldGhvZCBjaGFuZ2VzIHdlIG5lZWQg dG8gY2xlYXIgY29sdW1ucyBjb2xsZWN0aW9uCisgICAgICAgICAgICAgIG9u Q2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBCYWNrZm9y bS5Ob2RlQWpheE9wdGlvbnNDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5h cHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICAgICAgICAgIHZhciBz ZWxmID0gdGhpcywKKyAgICAgICAgICAgICAgICAvLyBjdXJyZW50IGFjY2Vz cyBtZXRob2QKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FtID0gc2VsZi5t b2RlbC5nZXQoJ2FtbmFtZScpLAorICAgICAgICAgICAgICAgIC8vIHByZXZp b3VzIGFjY2VzcyBtZXRob2QKKyAgICAgICAgICAgICAgICBwcmV2aW91c19h bSA9IHNlbGYubW9kZWwucHJldmlvdXMoJ2FtbmFtZScpOworICAgICAgICAg ICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChjdXJyZW50X2FtKSAmJgorICAg ICAgICAgICAgICAgICAgIChjdXJyZW50X2FtICE9ICdidHJlZScgfHwgY3Vy cmVudF9hbSAhPSAnJykpIHsKKyAgICAgICAgICAgICAgICAgIHZhciBtc2cg PSAne3sgXygnQ2hhbmdpbmcgYWNjZXNzIG1ldGhvZCB3aWxsIGNsZWFyIGNv bHVtbnMgY29sbGVjdGlvbicpIH19JzsKKyAgICAgICAgICAgICAgICAgIGFs ZXJ0aWZ5LmNvbmZpcm0obXNnLCBmdW5jdGlvbiAoZSkgeworICAgICAgICAg ICAgICAgICAgICBpZiAoZSkgeworICAgICAgICAgICAgICAgICAgICAgIC8v IFVzZXIgY2xpY2tzIE9rLCBsZXRzIGNsZWFyIGNvbGxlY3Rpb24KKyAgICAg ICAgICAgICAgICAgICAgICB2YXIgY29sdW1uX2NvbGxlY3Rpb24gPSBzZWxm Lm1vZGVsLmdldCgnY29sdW1ucycpOworICAgICAgICAgICAgICAgICAgICAg IGNvbHVtbl9jb2xsZWN0aW9uLnJlc2V0KCk7CisgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHBy ZXZpb3VzIHZhbHVlIGFnYWluIGluIGNvbWJvIGJveAorICAgICAgICAgICAg ICAgICAgICAgIHNlbGYubW9kZWwuc2V0KCdhbW5hbWUnLCBwcmV2aW91c19h bSwgeyBzaWxlbnQ6IHRydWUgfSk7CisgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSkKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICdjb2xzJywgbGFiZWw6J3t7IF8oJ0NvbHVtbnMnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg ZGlzYWJsZWQ6ICdpblNjaGVtYScsIG1vZGU6IFsncHJvcGVydGllcyddCisg ICAgICAgIH0seworICAgICAgICAgIGlkOiAnZmlsbGZhY3RvcicsIGxhYmVs Oid7eyBfKCdGaWxsIGZhY3RvcicpIH19JywgY2VsbDogJ3N0cmluZycsCisg ICAgICAgICAgdHlwZTogJ2ludCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBt b2RlOiBbJ2NyZWF0ZScsICdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAg ICAgICBtaW46IDEwLCBtYXg6MTAwLCBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdpbmRpc3Vu aXF1ZScsIGxhYmVsOid7eyBfKCdVbmlxdWU/JykgfX0nLCBjZWxsOiAnc3Ry aW5nJywKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6ICdp blNjaGVtYVdpdGhNb2RlbENoZWNrJywKKyAgICAgICAgICBncm91cDogJ3t7 IF8oJ0RlZmluaXRpb24nKSB9fScKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdpbmRpc2NsdXN0ZXJlZCcsIGxhYmVsOid7eyBfKCdDbHVzdGVyZWQ/ JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnc3dp dGNoJywgZGlzYWJsZWQ6ICdpblNjaGVtYScsCisgICAgICAgICAgZ3JvdXA6 ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnaW5kaXN2YWxpZCcsIGxhYmVsOid7eyBfKCdWYWxpZD8nKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gn LCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdpbmRpc3ByaW1hcnknLCBsYWJlbDon e3sgXygnUHJpbWFyeT8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydw cm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdpc19z eXNfaWR4JywgbGFiZWw6J3t7IF8oJ1N5c3RlbSBpbmRleD8nKSB9fScsIGNl bGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNh YmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdpc2NvbmN1cnJlbnQnLCBsYWJlbDone3sgXygn Q29uY3VycmVudCBidWlsZD8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0 aE1vZGVsQ2hlY2snLAorICAgICAgICAgIG1vZGU6IFsnY3JlYXRlJywgJ2Vk aXQnXSwgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAnaW5kY29uc3RyYWludCcsIGxhYmVsOid7 eyBfKCdDb25zdHJhaW50JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9k ZWxDaGVjaycsIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAg ICBjb250cm9sOiAnc3FsLWZpZWxkJywgdmlzaWJsZTogdHJ1ZSwgZ3JvdXA6 ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnY29sdW1ucycsIGxhYmVsOiAnQ29sdW1ucycsIHR5cGU6ICdj b2xsZWN0aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScsIG1vZGVsOiBDb2x1bW5Nb2RlbCwgbW9kZTogWydlZGl0Jywg J2NyZWF0ZSddLAorICAgICAgICAgIGNhbkFkZDogZnVuY3Rpb24obSkgewor ICAgICAgICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxlIGl0IGlmIGl0J3MgaW4g J2VkaXQnIG1vZGUKKyAgICAgICAgICAgIGlmIChtLmlzTmV3KCkpIHsKKyAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9 CisgICAgICAgICAgfSwKKyAgICAgICAgICBjYW5FZGl0OiBmdW5jdGlvbiht KSB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgaXQgaWYgaXQn cyBpbiAnZWRpdCcgbW9kZQorICAgICAgICAgICAgaWYgKG0uaXNOZXcoKSkg eworICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICB9LAorICAgICAgICAgIGNhbkRlbGV0ZTogZnVu Y3Rpb24obSkgeworICAgICAgICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxlIGl0 IGlmIGl0J3MgaW4gJ2VkaXQnIG1vZGUKKyAgICAgICAgICAgIGlmIChtLmlz TmV3KCkpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgfSwKKyAgICAgICAgICBjb250cm9s OiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywgdW5pcXVlQ29sIDogWydjb2xu YW1lJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNjcmlwdGlv bicsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAnc3RyaW5n JywKKyAgICAgICAgICB0eXBlOiAnbXVsdGlsaW5lJywgbW9kZTogWydwcm9w ZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgZGlzYWJs ZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfQorICAgICAgICBdLAorICAgICAg ICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGVyciA9 IHt9LAorICAgICAgICAgICAgICBjaGFuZ2VkQXR0cnMgPSB0aGlzLmNoYW5n ZWQsCisgICAgICAgICAgICAgIG1zZyA9IHVuZGVmaW5lZDsKKyAgICAgICAg ICB0aGlzLmVycm9yTW9kZWwuY2xlYXIoKTsKKworICAgICAgICAgIGlmIChf LmhhcyhjaGFuZ2VkQXR0cnMsdGhpcy5nZXQoJ25hbWUnKSkKKyAgICAgICAg ICAgICAgICAgICAgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnbmFtZScp KQorICAgICAgICAgICAgICB8fCBTdHJpbmcodGhpcy5nZXQoJ25hbWUnKSku cmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAg ICAgbXNnID0gJ3t7IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7 CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgbXNn KTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAgICAgICAg Ly8gV2Ugd2lsbCBjaGVjayBpZiB3ZSBhcmUgdW5kZXIgc2NoZW1hIG5vZGUg JiBpbiAnY3JlYXRlJyBtb2RlCisgICAgICAgIGluU2NoZW1hOiBmdW5jdGlv bigpIHsKKyAgICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAgJ2NhdGFs b2cnIGluIHRoaXMubm9kZV9pbmZvKSB7CisgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICAgICB9LAorICAgICAgICAvLyBXZSB3aWxsIGNoZWNrIGlmIHdlIGFy ZSB1bmRlciBzY2hlbWEgbm9kZSAmIGluICdjcmVhdGUnIG1vZGUKKyAgICAg ICAgaW5TY2hlbWFXaXRoTW9kZWxDaGVjazogZnVuY3Rpb24obSkgeworICAg ICAgICAgIGlmKHRoaXMubm9kZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlz Lm5vZGVfaW5mbykgeworICAgICAgICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxl IGNvbnRyb2wgaWYgaXQncyBpbiAnZWRpdCcgbW9kZQorICAgICAgICAgICAg aWYgKG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAg cmV0dXJuIHRydWU7ICAgIAorICAgICAgICB9LAorICAgICAgICAvLyBDaGVj a3Mgd2VhdGhlciB0byBlbmFibGUvZGlzYWJsZSBjb250cm9sCisgICAgICAg IGluU2NoZW1hV2l0aENvbHVtbkNoZWNrOiBmdW5jdGlvbihtKSB7CisgICAg ICAgICAgaWYodGhpcy5ub2RlX2luZm8gJiYgICdzY2hlbWEnIGluIHRoaXMu bm9kZV9pbmZvKSB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUg Y29udHJvbCBpZiBpdCdzIHN5c3RlbSBjb2x1bW5zCisgICAgICAgICAgICAv LyBpZTogaXQncyBwb3NpdGlvbiBpcyBsZXNzIHRoZW4gMQorICAgICAgICAg ICAgaWYgKG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAvLyBp ZiB3ZSBhcmUgaW4gZWRpdCBtb2RlCisgICAgICAgICAgICAgIGlmICghXy5p c1VuZGVmaW5lZChtLmdldCgnYXR0bnVtJykpICYmIG0uZ2V0KCdhdHRudW0n KSA+PSAxICkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAg ICAgfQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg ICB9KSwKKyAgICAgIC8vIEJlbG93IGZ1bmN0aW9uIHdpbGwgZW5hYmxlIHJp Z2h0IGNsaWNrIG1lbnUgZm9yIGNyZWF0aW5nIGNvbHVtbgorICAgICAgY2Fu Q3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAg ICAgICAgIC8vIElmIGNoZWNrIGlzIGZhbHNlIHRoZW4gLCB3ZSB3aWxsIGFs bG93IGNyZWF0ZSBtZW51CisgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5j aGVjayA9PSBmYWxzZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisg ICAgICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwgaSA9IGl0ZW0sIGQg PSBpdGVtRGF0YSwgcGFyZW50cyA9IFtdOworICAgICAgICAgIC8vIFRvIGl0 ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAg ICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAgIC8vIElmIGl0IGlzIHNjaGVt YSB0aGVuIGFsbG93IHVzZXIgdG8gYyByZWF0ZSB0YWJsZQorICAgICAgICAg ICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBkLl90eXBlKSA+IC0xKQor ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHBhcmVu dHMucHVzaChkLl90eXBlKTsKKyAgICAgICAgICAgIGkgPSB0Lmhhc1BhcmVu dChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsKKyAgICAgICAgICAgIGQgPSBp ID8gdC5pdGVtRGF0YShpKSA6IG51bGw7CisgICAgICAgICAgfQorICAgICAg ICAgIC8vIElmIG5vZGUgaXMgdW5kZXIgY2F0YWxvZyB0aGVuIGRvIG5vdCBh bGxvdyAnY3JlYXRlJyBtZW51CisgICAgICAgICAgaWYgKF8uaW5kZXhPZihw YXJlbnRzLCAnY2F0YWxvZycpID4gLTEpIHsKKyAgICAgICAgICAgIHJldHVy biBmYWxzZTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAgfQorICB9KTsKKyB9CisK KyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snaW5kZXgnXTsKK30pOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxh dGVzL2luZGV4L3NxbC85LjFfcGx1cy9hbHRlci5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9w bHVzL2FsdGVyLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi45M2YzMjNlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1 cy9hbHRlci5zcWwKQEAgLTAsMCArMSw5IEBACit7IyMgQWx0ZXIgaW5kZXgg dG8gdXNlIGNsdXN0ZXIgdHlwZSAjI30KK3slIGlmIGRhdGEuaW5kaXNjbHVz dGVyZWQgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLnRhYmxlKX19CisgICAgQ0xVU1RFUiBPTiB7e2Nvbm58cXRJ ZGVudChkYXRhLm5hbWUpfX07Cit7JSBlbmRpZiAlfQoreyMjIENoYW5nZXMg ZGVzY3JpcHRpb24gIyN9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CitD T01NRU5UIE9OIElOREVYIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9fQor ICAgIElTIHt7ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWx9fTt7JSBlbmRp ZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRl eC9zcWwvOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4x X3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42ZjY2ZWQxCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4 L3NxbC85LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsCkBAIC0wLDAgKzEs OSBAQAoreyM9PT09PT09PT09PT09Q2hlY2tzIGlmIGl0IGlzIG1hdGVyaWFs aXplZCB2aWV3PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAg ICBDQVNFIFdIRU4gYy5yZWxraW5kID0gJ20nIFRIRU4gVHJ1ZSBFTFNFIEZh bHNlIEVORCBBcyBtX3ZpZXcKK0ZST00KKyAgICBwZ19jbGFzcyBjCitXSEVS RQorICAgIGMub2lkID0ge3sgdmlkIH19OjpvaWQKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1w bGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2NvbHVtbl9kZXRhaWxzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRl eC9zcWwvOS4xX3BsdXMvY29sdW1uX2RldGFpbHMuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZjU0MGEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0 ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2NvbHVtbl9kZXRhaWxzLnNxbApAQCAt MCwwICsxLDMwIEBACitTRUxFQ1QKKyAgICBpLmluZGV4cmVsaWQsCisgICAg Q0FTRSBpLmluZG9wdGlvbltpLmF0dG51bSAtIDFdCisgICAgV0hFTiAwIFRI RU4gQVJSQVlbJ0FTQycsICdOVUxMUyBMQVNUJ10KKyAgICBXSEVOIDEgVEhF TiBBUlJBWVsnREVTQycsICdOVUxMUyBGSVJTVCddCisgICAgV0hFTiAyIFRI RU4gQVJSQVlbJ0FTQycsICdOVUxMUyBGSVJTVCddCisgICAgV0hFTiAzIFRI RU4gQVJSQVlbJ0RFU0MnLCAnTlVMTFMgICddCisgICAgRUxTRSBBUlJBWVsn VU5LTk9XTiBPUFRJT04nIHx8IGkuaW5kb3B0aW9uW2kuYXR0bnVtIC0gMV0s ICcnXQorICAgIEVORDo6dGV4dFtdIEFTIG9wdGlvbnMsCisgICAgaS5hdHRu dW0sCisgICAgcGdfZ2V0X2luZGV4ZGVmKGkuaW5kZXhyZWxpZCwgaS5hdHRu dW0sIHRydWUpIGFzIGF0dGRlZiwKKyAgICBDQVNFIFdIRU4gKG8ub3BjZGVm YXVsdCA9IEZBTFNFKSBUSEVOIG8ub3BjbmFtZSBFTFNFIG51bGwgRU5EIEFT IG9wY25hbWUsCisgICAgb3Aub3BybmFtZSBBUyBvcHJuYW1lLAorCUNBU0Ug V0hFTiBsZW5ndGgobnNwYy5uc3BuYW1lKSA+IDAgQU5EIGxlbmd0aChjb2xs LmNvbGxuYW1lKSA+IDAgIFRIRU4KKwkgIGNvbmNhdChxdW90ZV9pZGVudChu c3BjLm5zcG5hbWUpLCAnLicsIHF1b3RlX2lkZW50KGNvbGwuY29sbG5hbWUp KQorCUVMU0UgJycgRU5EIEFTIGNvbGxuc3BuYW1lCitGUk9NICgKKyAgICAg IFNFTEVDVAorICAgICAgICAgIGluZGV4cmVsaWQsIGkuaW5kb3B0aW9uLCBp LmluZGNsYXNzLAorICAgICAgICAgIHVubmVzdChBUlJBWShTRUxFQ1QgZ2Vu ZXJhdGVfc2VyaWVzKDEsIGkuaW5kbmF0dHMpIEFTIG4pKSBBUyBhdHRudW0K KyAgICAgIEZST00KKyAgICAgICAgICBwZ19pbmRleCBpCisgICAgICBXSEVS RSBpLmluZGV4cmVsaWQgPSB7e2lkeH19OjpPSUQKKykgaQorICAgIExFRlQg Sk9JTiBwZ19vcGNsYXNzIG8gT04gKG8ub2lkID0gaS5pbmRjbGFzc1tpLmF0 dG51bSAtIDFdKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19jb25zdHJhaW50 IGMgT04gKGMuY29uaW5kaWQgPSBpLmluZGV4cmVsaWQpCisgICAgTEVGVCBP VVRFUiBKT0lOIHBnX29wZXJhdG9yIG9wIE9OIChvcC5vaWQgPSBjLmNvbmV4 Y2xvcFtpLmF0dG51bV0pCisgICAgTEVGVCBKT0lOIHBnX2F0dHJpYnV0ZSBh IE9OIChhLmF0dHJlbGlkID0gaS5pbmRleHJlbGlkIEFORCBhLmF0dG51bSA9 IGkuYXR0bnVtKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19jb2xsYXRpb24g Y29sbCBPTiBhLmF0dGNvbGxhdGlvbj1jb2xsLm9pZAorICAgIExFRlQgT1VU RVIgSk9JTiBwZ19uYW1lc3BhY2UgbnNwYyBPTiBjb2xsLmNvbGxuYW1lc3Bh Y2U9bnNwYy5vaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2NyZWF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0 ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ3MWE4NAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRl cy9pbmRleC9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDEy IEBACitDUkVBVEUgeyUgaWYgZGF0YS5pbmRpc3VuaXF1ZSAlfVVOSVFVRSB7 JSBlbmRpZiAlfUlOREVYIHslIGlmIGRhdGEuaXNjb25jdXJyZW50ICV9Q09O Q1VSUkVOVExZIHslIGVuZGlmICV9e3tjb25ufHF0SWRlbnQoZGF0YS5uYW1l KX19CisgICAgT04ge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUpfX0geyUgaWYgZGF0YS5hbW5hbWUgJX1VU0lORyB7e2Nvbm58cXRJ ZGVudChkYXRhLmFtbmFtZSl9fXslIGVuZGlmICV9CisKKyAgICAoeyUgZm9y IGMgaW4gZGF0YS5jb2x1bW5zICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9 LCB7JSBlbmRpZiAlfXt7Y29ubnxxdElkZW50KGMuY29sbmFtZSl9fXslIGlm IGMuY29sbHNwY25hbWUgJX0gQ09MTEFURSB7e2MuY29sbHNwY25hbWV9fSB7 JSBlbmRpZiAlfXslIGlmIGMub3BfY2xhc3MgJX0KK3t7Yy5vcF9jbGFzc319 eyUgZW5kaWYgJX17JSBpZiBjLnNvcnRfb3JkZXIgaXMgZGVmaW5lZCAlfXsl IGlmIGMuc29ydF9vcmRlciAlfSBERVNDeyUgZWxzZSAlfSBBU0N7JSBlbmRp ZiAlfXslIGVuZGlmICV9eyUgaWYgYy5udWxscyBpcyBkZWZpbmVkICV9IE5V TExTIHslIGlmIGMubnVsbHMgJX0KK0ZJUlNUeyUgZWxzZSAlfUxBU1R7JSBl bmRpZiAlfXslIGVuZGlmICV9eyUgZW5kZm9yICV9KXslIGlmIGRhdGEuZmls bGZhY3RvciAlfQorCisgICAgV0lUSCAoRklMTEZBQ1RPUj17e2RhdGEuZmls bGZhY3Rvcn19KXslIGVuZGlmICV9eyUgaWYgZGF0YS5zcGNuYW1lICV9CisK KyAgICBUQUJMRVNQQUNFIHt7ZGF0YS5zcGNuYW1lfX17JSBlbmRpZiAlfXsl IGlmIGRhdGEuaW5kY29uc3RyYWludCAlfQorCisgICAgV0hFUkUge3tkYXRh LmluZGNvbnN0cmFpbnR9fXslIGVuZGlmICV9OwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3Nx bC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1cy9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzODA4 ZmEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv aW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2RlbGV0ZS5z cWwKQEAgLTAsMCArMSBAQAorRFJPUCBJTkRFWCB7e2Nvbm58cXRJZGVudChk YXRhLm5zcG5hbWUsIGRhdGEubmFtZSl9fXslIGlmIGNhc2NhZGUgJX0gY2Fz Y2FkZXslIGVuZGlmICV9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rl bXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvZ2V0X2FtLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwv OS4xX3BsdXMvZ2V0X2FtLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41YmI1NzliCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85 LjFfcGx1cy9nZXRfYW0uc3FsCkBAIC0wLDAgKzEsMyBAQAorLS0gRmV0Y2hl cyBhY2Nlc3MgbWV0aG9kcworU0VMRUNUIG9pZCwgYW1uYW1lCitGUk9NIHBn X2FtClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4 L3NxbC85LjFfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9w bHVzL2dldF9jb2xsYXRpb25zLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi40ODJlMDZjCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3Nx bC85LjFfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwKQEAgLTAsMCArMSw3IEBA CitTRUxFQ1QgLS1uc3BuYW1lLCBjb2xsbmFtZSwKKwlDQVNFIFdIRU4gbGVu Z3RoKG5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAgIFRI RU4gCisJICBjb25jYXQocXVvdGVfaWRlbnQobnNwbmFtZSksICcuJywgcXVv dGVfaWRlbnQoY29sbG5hbWUpKQorCUVMU0UgJycgRU5EIEFTIGNvbGxhdGlv bgorRlJPTSBwZ19jb2xsYXRpb24gYywgcGdfbmFtZXNwYWNlIG4KKyAgICBX SEVSRSBjLmNvbGxuYW1lc3BhY2U9bi5vaWQKKyAgICBPUkRFUiBCWSBuc3Bu YW1lLCBjb2xsbmFtZTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZW1w bGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85 LjFfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jMzI0MDJmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85 LjFfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDcgQEAKK1NFTEVDVCBE SVNUSU5DVCBPTihjbHMucmVsbmFtZSkgY2xzLm9pZAorRlJPTSBwZ19pbmRl eCBpZHgKKyAgICBKT0lOIHBnX2NsYXNzIGNscyBPTiBjbHMub2lkPWluZGV4 cmVsaWQKKyAgICBKT0lOIHBnX2NsYXNzIHRhYiBPTiB0YWIub2lkPWluZHJl bGlkCisgICAgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD10YWIucmVs bmFtZXNwYWNlCitXSEVSRSBpbmRyZWxpZCA9IHt7dGlkfX06Ok9JRAorICAg IEFORCBjbHMucmVsbmFtZSA9IHt7ZGF0YS5uYW1lfHF0TGl0ZXJhbH19Owpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwv OS4xX3BsdXMvZ2V0X29wX2NsYXNzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvZ2V0 X29wX2NsYXNzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5hZjAxMzNhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1 cy9nZXRfb3BfY2xhc3Muc3FsCkBAIC0wLDAgKzEsNSBAQAorU0VMRUNUIG9w Y25hbWUsICBvcGNtZXRob2QKK0ZST00gcGdfb3BjbGFzcworICAgIFdIRVJF IG9wY21ldGhvZCA9IHt7b2lkfX06Ok9JRAorICAgIEFORCBOT1Qgb3BjZGVm YXVsdAorICAgIE9SREVSIEJZIDE7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4 ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1cy9nZXRfcGFyZW50LnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9p bmRleC9zcWwvOS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkNWQzYwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRl cy9pbmRleC9zcWwvOS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwKQEAgLTAsMCAr MSw1IEBACitTRUxFQ1QgbnNwLm5zcG5hbWUgQVMgc2NoZW1hICxyZWwucmVs bmFtZSBBUyB0YWJsZQorRlJPTSBwZ19jbGFzcyByZWwKKyAgICBKT0lOIHBn X25hbWVzcGFjZSBuc3AKKyAgICBPTiByZWwucmVsbmFtZXNwYWNlID0gbnNw Lm9pZDo6aW50CisgICAgV0hFUkUgcmVsLm9pZCA9IHt7dGlkfX06OmludApc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9zcWwv OS4xX3BsdXMvbm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2lu ZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRhMDZmMgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRl eGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsCkBA IC0wLDAgKzEsMTEgQEAKK1NFTEVDVCBESVNUSU5DVCBPTihjbHMucmVsbmFt ZSkgY2xzLm9pZCwgY2xzLnJlbG5hbWUgYXMgbmFtZQorRlJPTSBwZ19pbmRl eCBpZHgKKyAgICBKT0lOIHBnX2NsYXNzIGNscyBPTiBjbHMub2lkPWluZGV4 cmVsaWQKKyAgICBKT0lOIHBnX2NsYXNzIHRhYiBPTiB0YWIub2lkPWluZHJl bGlkCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2UgdGEgb24g dGEub2lkPWNscy5yZWx0YWJsZXNwYWNlCisgICAgSk9JTiBwZ19uYW1lc3Bh Y2UgbiBPTiBuLm9pZD10YWIucmVsbmFtZXNwYWNlCisgICAgSk9JTiBwZ19h bSBhbSBPTiBhbS5vaWQ9Y2xzLnJlbGFtCisgICAgTEVGVCBKT0lOIHBnX2Rl cGVuZCBkZXAgT04gKGRlcC5jbGFzc2lkID0gY2xzLnRhYmxlb2lkIEFORCBk ZXAub2JqaWQgPSBjbHMub2lkIEFORCBkZXAucmVmb2Jqc3ViaWQgPSAnMCcg QU5EIGRlcC5yZWZjbGFzc2lkPShTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3Mg V0hFUkUgcmVsbmFtZT0ncGdfY29uc3RyYWludCcpIEFORCBkZXAuZGVwdHlw ZT0naScpCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2NvbnN0cmFpbnQgY29u IE9OIChjb24udGFibGVvaWQgPSBkZXAucmVmY2xhc3NpZCBBTkQgY29uLm9p ZCA9IGRlcC5yZWZvYmppZCkKK1dIRVJFIGluZHJlbGlkID0ge3t0aWR9fTo6 T0lECisgICAgT1JERVIgQlkgY2xzLnJlbG5hbWUKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvaW5kZXhlcy90ZW1wbGF0ZXMvaW5kZXgvc3FsLzkuMV9wbHVzL3Byb3Bl cnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVt cGxhdGVzL2luZGV4L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTg1Zjc0Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMv dGVtcGxhdGVzL2luZGV4L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApA QCAtMCwwICsxLDIzIEBACitTRUxFQ1QgRElTVElOQ1QgT04oY2xzLnJlbG5h bWUpIGNscy5vaWQsIGNscy5yZWxuYW1lIGFzIG5hbWUsIGluZHJlbGlkLCBp bmRrZXksIGluZGlzY2x1c3RlcmVkLAorICAgIGluZGlzdmFsaWQsIGluZGlz dW5pcXVlLCBpbmRpc3ByaW1hcnksIG4ubnNwbmFtZSxpbmRuYXR0cyxjbHMu cmVsdGFibGVzcGFjZSBBUyBzcGNvaWQsCisgICAgQ09BTEVTQ0Uoc3BjbmFt ZSwgJ3BnX2RlZmF1bHQnKSBhcyBzcGNuYW1lLCB0YWIucmVsbmFtZSBhcyB0 YWJuYW1lLCBpbmRjbGFzcywgY29uLm9pZCBBUyBjb25vaWQsCisgICAgQ0FT RSBXSEVOIGNvbnR5cGUgSU4gKCdwJywgJ3UnLCAneCcpIFRIRU4gZGVzcC5k ZXNjcmlwdGlvbgorICAgICAgICAgRUxTRSBkZXMuZGVzY3JpcHRpb24gRU5E IEFTIGRlc2NyaXB0aW9uLAorICAgIHBnX2dldF9leHByKGluZHByZWQsIGlu ZHJlbGlkLCB0cnVlKSBhcyBpbmRjb25zdHJhaW50LCBjb250eXBlLCBjb25k ZWZlcnJhYmxlLCBjb25kZWZlcnJlZCwgYW1uYW1lLAorICAgIHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcoY2xzLnJlbG9wdGlvbnMsICcsJykgZnJvbSAn ZmlsbGZhY3Rvcj0oWzAtOV0qKScpIEFTIGZpbGxmYWN0b3IKK3slIGlmIGRh dGxhc3RzeXNvaWQgJX0KKyAgICAsKENBU0UgV0hFTiBjbHMub2lkIDw9IHt7 IGRhdGxhc3RzeXNvaWR9fTo6b2lkIFRIRU4gdHJ1ZSBFbFNFIGZhbHNlIEVO RCkgQVMgaXNfc3lzX2lkeAoreyUgZW5kaWYgJX0KK0ZST00gcGdfaW5kZXgg aWR4CisgICAgSk9JTiBwZ19jbGFzcyBjbHMgT04gY2xzLm9pZD1pbmRleHJl bGlkCisgICAgSk9JTiBwZ19jbGFzcyB0YWIgT04gdGFiLm9pZD1pbmRyZWxp ZAorICAgIExFRlQgT1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHRhIG9uIHRh Lm9pZD1jbHMucmVsdGFibGVzcGFjZQorICAgIEpPSU4gcGdfbmFtZXNwYWNl IG4gT04gbi5vaWQ9dGFiLnJlbG5hbWVzcGFjZQorICAgIEpPSU4gcGdfYW0g YW0gT04gYW0ub2lkPWNscy5yZWxhbQorICAgIExFRlQgSk9JTiBwZ19kZXBl bmQgZGVwIE9OIChkZXAuY2xhc3NpZCA9IGNscy50YWJsZW9pZCBBTkQgZGVw Lm9iamlkID0gY2xzLm9pZCBBTkQgZGVwLnJlZm9ianN1YmlkID0gJzAnIEFO RCBkZXAucmVmY2xhc3NpZD0oU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdI RVJFIHJlbG5hbWU9J3BnX2NvbnN0cmFpbnQnKSBBTkQgZGVwLmRlcHR5cGU9 J2knKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19jb25zdHJhaW50IGNvbiBP TiAoY29uLnRhYmxlb2lkID0gZGVwLnJlZmNsYXNzaWQgQU5EIGNvbi5vaWQg PSBkZXAucmVmb2JqaWQpCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2Ny aXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jbHMub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAgTEVGVCBPVVRFUiBK T0lOIHBnX2Rlc2NyaXB0aW9uIGRlc3AgT04gKGRlc3Aub2Jqb2lkPWNvbi5v aWQgQU5EIGRlc3Aub2Jqc3ViaWQgPSAwIEFORCBkZXNwLmNsYXNzb2lkPSdw Z19jb25zdHJhaW50Jzo6cmVnY2xhc3MpCitXSEVSRSBpbmRyZWxpZCA9IHt7 dGlkfX06Ok9JRAorICAgIHslIGlmIGlkeCAlfUFORCBjbHMub2lkID0ge3tp ZHh9fTo6T0lEIHslIGVuZGlmICV9CisgICAgT1JERVIgQlkgY2xzLnJlbG5h bWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVz L3RlbXBsYXRlcy9pbmRleC9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5lZmM1MWEzCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L3Nx bC85LjFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMjQgQEAKK3sjIyBD aGFuZ2VzIG5hbWUgIyN9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIG9fZGF0YS5u YW1lICE9IGRhdGEubmFtZSAlfQorQUxURVIgSU5ERVgge3tjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKX19CisgICAgUkVOQU1FIFRP IHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9fTsKK3slIGVuZGlmICV9Cit7 IyMgQ2hhbmdlcyBmaWxsZmFjdG9yICMjfQoreyUgaWYgZGF0YS5maWxsZmFj dG9yIGFuZCBvX2RhdGEuZmlsbGZhY3RvciAhPSBkYXRhLmZpbGxmYWN0b3Ig JX0KK0FMVEVSIElOREVYIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLm5hbWUpfX0KKyAgICBTRVQgKEZJTExGQUNUT1I9e3tkYXRhLmZpbGxm YWN0b3J9fSk7Cit7JSBlbmRpZiAlfQoreyMjIENoYW5nZXMgdGFibGVzcGFj ZSAjI30KK3slIGlmIGRhdGEuc3BjbmFtZSBhbmQgb19kYXRhLnNwY25hbWUg IT0gZGF0YS5zcGNuYW1lICV9CitBTFRFUiBJTkRFWCB7e2Nvbm58cXRJZGVu dChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CisgICAgU0VUIFRBQkxFU1BB Q0Uge3tjb25ufHF0SWRlbnQoZGF0YS5zcGNuYW1lKX19OworeyUgZW5kaWYg JX0KK3sjIyBBbHRlciBpbmRleCB0byB1c2UgY2x1c3RlciB0eXBlICMjfQor eyUgaWYgZGF0YS5pbmRpc2NsdXN0ZXJlZCBhbmQgb19kYXRhLmluZGlzY2x1 c3RlcmVkICE9IGRhdGEuaW5kaXNjbHVzdGVyZWQgJX0KK0FMVEVSIFRBQkxF IHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19Cisg ICAgQ0xVU1RFUiBPTiB7e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX07Cit7 JSBlbmRpZiAlfQoreyMjIENoYW5nZXMgZGVzY3JpcHRpb24gIyN9Cit7JSBp ZiBkYXRhLmRlc2NyaXB0aW9uIGFuZCBvX2RhdGEuZGVzY3JpcHRpb24gIT0g ZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09NTUVOVCBPTiBJTkRFWCB7e2Nvbm58 cXRJZGVudChkYXRhLm5hbWUpfX0KKyAgICBJUyB7e2RhdGEuZGVzY3JpcHRp b258cXRMaXRlcmFsfX07eyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv cnVsZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVs ZXMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMGQxZmZiYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9ydWxlcy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDQ4OSBA QAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor IiIiSW1wbGVtZW50cyBSdWxlIE5vZGUiIiIKKworaW1wb3J0IGpzb24KK2Zy b20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25z ZSwgcmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1w b3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBt YWtlX2pzb25fcmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFq YXhfcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcgorZnJvbSBwZ2Fk bWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldworaW1w b3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMgYXMgc2NoZW1hcyAKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51 dGlscyBpbXBvcnQgXAorICAgIHBhcnNlX3J1bGVfZGVmaW5pdGlvbgorZnJv bSBwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlv bk5vZGVNb2R1bGUKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBw cmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2 ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19E RUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisK KworY2xhc3MgUnVsZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6Cisg ICAgIiIiCisgICAgY2xhc3MgUnVsZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1v ZHVsZSk6CisKKyAgICAgICAgQSBydWxlIGNvbGxlY3Rpb24gTm9kZSB3aGlj aCBpbmhlcml0cyBDb2xsZWN0aW9uTm9kZU1vZHVsZQorICAgICAgICBjbGFz cyBhbmQgZGVmaW5lIG1ldGhvZHM6CisgICAgICAgICAgZ2V0X25vZGVzIC0g VG8gZ2VuZXJhdGUgY29sbGVjdGlvbiBub2RlLgorICAgICAgICAgIHNjcmlw dF9sb2FkIC0gdGVsbHMgd2hlbiB0byBsb2FkIGpzIGZpbGUuCisgICAgICAg ICAgY3Nzc25wcGV0cyAtIGFkZCBjc3MgdG8gcGFnZQorICAgICIiIgorICAg IE5PREVfVFlQRSA9ICdydWxlJworICAgIENPTExFQ1RJT05fTEFCRUwgPSBn ZXR0ZXh0KCJSdWxlcyIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFy Z3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQor ICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisKKyAgICAgICAgc3VwZXIo UnVsZU1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQor CisgICAgZGVmIEJhY2tlbmRTdXBwb3J0ZWQoc2VsZiwgbWFuYWdlciwgKipr d2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGlzIG1vZHVs ZSBpZiB0aWQgaXMgdmlldywgd2Ugd2lsbCBub3QgbG9hZCBpdCB1bmRlcgor ICAgICAgICBtYXRlcmlhbCB2aWV3CisgICAgICAgICIiIgorICAgICAgICBp ZiBzdXBlcihSdWxlTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9ydGVkKG1h bmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBtYW5hZ2Vy LmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICAj IElmIERCIGlzIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8g YnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IGNvbm4uY29ubmVjdGVkKCk6 CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhh cyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgKQorCisgICAgICAgICAgICBpZiAndmlkJyBub3QgaW4ga3dh cmdzOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAg ICAgIHRlbXBsYXRlX3BhdGggPSAncnVsZXMvc3FsJworCisgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAg ICAgICAgICBbdGVtcGxhdGVfcGF0aCwgJ2JhY2tlbmRfc3VwcG9ydC5zcWwn XSksIHZpZD1rd2FyZ3NbJ3ZpZCddKQorICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBjb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICMg Y2hlY2sgaWYgYW55IGVycm9ycworICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICMgQ2hlY2sgdGlkIGlz IHZpZXcgbm90IG1hdGVyaWFsIHZpZXcKKyAgICAgICAgICAgICMgdGhlbiB0 cnVlLCBvdGhld2lzZSBmYWxzZQorICAgICAgICAgICAgaWYgcmVzIGlzIFRy dWU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcworICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYg Z2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsICoqa3dhcmdz KToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0 aW9uIG5vZGUKKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCgndGlkJyBp biBrd2FyZ3Mgb3IgJ3ZpZCcgaW4ga3dhcmdzKQorICAgICAgICB5aWVsZCBz ZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKAorICAgICAg ICAgIGt3YXJnc1sndGlkJ10gaWYgJ3RpZCcgaW4ga3dhcmdzIGVsc2Uga3dh cmdzWyd2aWQnXQorICAgICAgICAgICkKKworICAgIEBwcm9wZXJ0eQorICAg IGRlZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg SWYgYSBub2RlIGhhcyBjaGlsZHJlbiByZXR1cm4gVHJ1ZSBvdGhlcndpc2Ug RmFsc2UKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBGYWxzZQorCisg ICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAg ICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3Ig cnVsZSwgd2hlbiBhbnkgb2YgdGhlIGRhdGFiYXNlIG5vZGVzIGFyZQorICAg ICAgICBpbml0aWFsaXplZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy biBzY2hlbWFzLlNjaGVtYU1vZHVsZS5OT0RFX1RZUEUKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiBjc3NzbmlwcGV0cyhzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgIFJldHVybnMgYSBzbmlwcGV0IG9mIGNzcyB0byBpbmNsdWRl IGluIHRoZSBwYWdlCisgICAgICAgICIiIgorICAgICAgICBzbmlwcGV0cyA9 IFsKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg ICAgICAgICAgICAgICJicm93c2VyL2Nzcy9jb2xsZWN0aW9uLmNzcyIsCisg ICAgICAgICAgICAgICAgICAgIG5vZGVfdHlwZT1zZWxmLm5vZGVfdHlwZSwK KyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICAg ICAgICAgICksCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAor ICAgICAgICAgICAgICAgICAgICAicnVsZXMvY3NzL3J1bGUuY3NzIiwKKyAg ICAgICAgICAgICAgICAgICAgbm9kZV90eXBlPXNlbGYubm9kZV90eXBlLAor ICAgICAgICAgICAgICAgICAgICBfPWdldHRleHQKKyAgICAgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgICAgIF0KKworICAgICAgICBmb3Igc3Vi bW9kdWxlIGluIHNlbGYuc3VibW9kdWxlczoKKyAgICAgICAgICAgIHNuaXBw ZXRzLmV4dGVuZChzdWJtb2R1bGUuY3Nzc25pcHBldHMpCisKKyAgICAgICAg cmV0dXJuIHNuaXBwZXRzCisKKworIyBDcmVhdGUgYmx1ZXByaW50IG9mIFJ1 bGVNb2R1bGUuCitibHVlcHJpbnQgPSBSdWxlTW9kdWxlKF9fbmFtZV9fKQor CisKK2NsYXNzIFJ1bGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CisgICAgIiIi CisgICAgVGhpcyBpcyBhIGNsYXNzIGZvciBydWxlIG5vZGUgd2hpY2ggaW5o ZXJpdHMgdGhlCisgICAgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmcm9tIFBH Q2hpbGROb2RlVmlldyBjbGFzcyBhbmQgZGVmaW5lCisgICAgdmFyaW91cyBt ZXRob2RzIHRvIGxpc3QsIGNyZWF0ZSwgdXBkYXRlIGFuZCBkZWxldGUgcnVs ZS4KKworICAgIFZhcmlhYmxlczoKKyAgICAtLS0tLS0tLS0KKyAgICAqIG5v ZGVfdHlwZSAtIHRlbGxzIHdoaWNoIHR5cGUgb2Ygbm9kZSBpdCBpcworICAg ICogcGFyZW50X2lkcyAtIGlkIHdpdGggaXRzIHR5cGUgYW5kIG5hbWUgb2Yg cGFyZW50IG5vZGVzCisgICAgKiBpZHMgLSBpZCB3aXRoIHR5cGUgYW5kIG5h bWUgb2YgZXh0ZW5zaW9uIG1vZHVsZSBiZWluZyB1c2VkLgorICAgICogb3Bl cmF0aW9ucyAtIGZ1bmN0aW9uIHJvdXRlcyBtYXBwaW5ncyBkZWZpbmVkLgor ICAgICIiIgorICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUK KworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgICAgICB7J3R5cGUnOiAn aW50JywgJ2lkJzogJ2dpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2lu dCcsICdpZCc6ICdzaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQn LCAnaWQnOiAnZGlkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50Jywg J2lkJzogJ3NjaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAn aWQnOiAndGlkJ30KKyAgICAgICAgICAgIF0KKyAgICBpZHMgPSBbCisgICAg ICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3JpZCd9CisgICAgICAg ICAgICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdv YmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2Rl bGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAg ICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAg IF0sCisgICAgICAgICdjaGlsZHJlbic6IFt7CisgICAgICAgICAgICAnZ2V0 JzogJ2NoaWxkcmVuJworICAgICAgICB9XSwKKyAgICAgICAgJ2RlbGV0ZSc6 IFt7J2RlbGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdub2Rlcyc6IFt7 J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAn c3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydn ZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3Rh dHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVu ZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAn ZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAg ICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0s CisgICAgICAgICdjb25maWdzJzogW3snZ2V0JzogJ2NvbmZpZ3MnfV0KKyAg ICB9KQorCisgICAgZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgcHJvcGVydHkgZGVmaW5lcyB3aGV0aGVyIEphdmFz Y3JpcHQgZXhpc3RzIGZvciB0aGlzIG5vZGUuCisgICAgICAgICIiIgorICAg ICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICJydWxlcy9q cy9ydWxlcy5qcyIsCisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAor ICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIDIwMCwg eydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0J30K KyAgICAgICAgICAgICAgICApCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0 aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3 aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrIHRo ZQorICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5n IGEgdmlldy4gSXQgd2lsbCBhbHNvIGF0dGFjaAorICAgICAgICBtYW5hZ2Vy LCBjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAg ICAgICAgIiIiCisgICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3Jh cCgqYXJncywgKiprd2FyZ3MpOgorCisgICAgICAgICAgICAjIEhlcmUgYXJn c1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNp ZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAg ICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKAorICAgICAgICAgICAgICBQ R19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1sn c2lkJ10pCisgICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIu Y29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAgICAgICAgICAg IyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJy b3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVk KCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1 aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVy IGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNv aWQgPSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsnZGF0 bGFzdHN5c29pZCddCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIu dmVyc2lvbgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ3J1 bGVzL3NxbCcKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJn cykKKworICAgICAgICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIHRpZCk6CisgICAgICAgICIiIgorICAgICAgICBGZXRjaCBhbGwgcnVs ZSBwcm9wZXJ0aWVzIGFuZCByZW5kZXIgaW50byBwcm9wZXJ0aWVzIHRhYgor ICAgICAgICAiIiIKKworICAgICAgICAjIGZldGNoIHNjaGVtYSBuYW1lIGJ5 IHNjaGVtYSBpZAorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oCisgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3Bl cnRpZXMuc3FsJ10pLCB0aWQ9dGlkKQorICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10s CisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAg ICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIi CisgICAgICAgIExpc3QgYWxsIHRoZSBydWxlcyB1bmRlciB0aGUgUnVsZXMg Q29sbGVjdGlvbiBub2RlCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBb XQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisg ICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3Fs J10pLCB0aWQ9dGlkKQorCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYu Y29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsn cm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2Rl KAorICAgICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHRpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgaWNv bj0iaWNvbi1ydWxlIgorICAgICAgICAgICAgICAgICAgICApKQorCisgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAg ICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQsIHJpZCk6CisgICAgICAgICIiIgorICAgICAgICBGZXRjaCB0aGUgcHJv cGVydGllcyBvZiBhbiBpbmRpdmlkdWFsIHJ1bGUgYW5kIHJlbmRlciBpbiBw cm9wZXJ0aWVzIHRhYgorCisgICAgICAgICIiIgorICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICBbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXQorICAgICAgICAgICks IHJpZD1yaWQsIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1wYXJzZV9ydWxlX2RlZmluaXRpb24ocmVzKSwKKyAgICAg ICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgYSBuZXcgcnVsZSBvYmpl Y3QKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisg ICAgICAgICAgICAnbmFtZScsCisgICAgICAgIF0KKworICAgICAgICBkYXRh ID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIFwKKyAgICAg ICAgICAgIGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAg ICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBp ZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVz PTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAg ICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAg ICAgICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFt ZXRlciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgICAgICkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAg IFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLCBkYXRhPWRh dGEpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIEZldGNoIHRoZSBydWxl IGlkIGFnYWluc3QgcnVsZSBuYW1lIHRvIGRpc3BsYXkgbm9kZQorICAgICAg ICAgICAgIyBpbiB0cmVlIGJyb3dzZXIKKyAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICBbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAncnVsZV9pZC5zcWwnXSksIHJ1bGVfbmFtZT1k YXRhWyduYW1lJ10pCisgICAgICAgICAgICBzdGF0dXMsIHJ1bGVfaWQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJ1bGVfaWQpCisgICAgICAgICAgICBy ZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1 ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAg ICAgICAgcnVsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgdGlkLAorICAg ICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgIGljb249Imljb24tcnVsZSIKKyAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBy aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHVwZGF0ZSBhIHJ1bGUgb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICBk YXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIFwKKyAg ICAgICAgICAgIGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQor ICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdGlk LCByaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg c3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiUnVs ZSB1cGRhdGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAg ICAgICAgICAgICAgICdpZCc6IHRpZCwKKyAgICAgICAgICAgICAgICAgICAg J3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwK KyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIHRpZCwgcmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCBkcm9wIGEgcnVsZSBvYmplY3QKKyAgICAgICAgIiIiCisg ICAgICAgICMgQmVsb3cgd2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJv cCBvciBkcm9wIHdpdGggY2FzY2FkZSBjYWxsCisgICAgICAgIGNhc2NhZGUg PSBUcnVlIGlmIHNlbGYuY21kID09ICdkZWxldGUnIGVsc2UgRmFsc2UKKwor ICAgICAgICB0cnk6CisgICAgICAgICAgICAjIEdldCBuYW1lIGZvciBydWxl IGZyb20gZGlkCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdkZWxldGUuc3FsJ10pLCByaWQ9cmlkKQorICAgICAgICAgICAgc3RhdHVz LCByZXNfZGF0YSA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc19kYXRhKQor ICAgICAgICAgICAgIyBkcm9wIHJ1bGUKKyAgICAgICAgICAgIHJzZXQgPSBy ZXNfZGF0YVsncm93cyddWzBdCisgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAgW3NlbGYudGVt cGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAg ICBydWxlbmFtZT1yc2V0WydydWxlbmFtZSddLAorICAgICAgICAgICAgICAg ICAgcmVsbmFtZT1yc2V0WydyZWxuYW1lJ10sCisgICAgICAgICAgICAgICAg ICBuc3BuYW1lPXJzZXRbJ25zcG5hbWUnXSwKKyAgICAgICAgICAgICAgICAg IGNhc2NhZGU9Y2FzY2FkZQorICAgICAgICAgICAgKQorICAgICAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgaW5mbz1n ZXR0ZXh0KCJSdWxlIGRyb3BwZWQiKSwKKyAgICAgICAgICAgICAgICBkYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogdGlkLAorICAgICAgICAg ICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAn Z2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIHRpZCwgcmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNRTAorICAg ICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAgICAg ICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdGlkLCByaWQp CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgZGF0YT1TUUwsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCwgcmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCBnZW5lcmF0ZSBzcWwgdG8gcmVuZGVyIGludG8gdGhlIHNxbCBwYW5l bAorICAgICAgICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdw cm9wZXJ0aWVzLnNxbCddKSwgcmlkPXJpZCkKKyAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXNfZGF0YSA9IHBh cnNlX3J1bGVfZGVmaW5pdGlvbihyZXMpCisgICAgICAgIFNRTCA9IHJlbmRl cl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgIFtzZWxmLnRlbXBs YXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgZGF0YT1y ZXNfZGF0YSwgZGlzcGxheV9jb21tZW50cz1UcnVlKQorCisgICAgICAgIHJl dHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgIGRlZiBn ZXRTUUwoc2VsZiwgZ2lkLCBzaWQsIGRhdGEsIHRpZCwgcmlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5yYXRlIHNx bCBmcm9tIG1vZGVsIGRhdGEKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToK KyAgICAgICAgICAgIGlmIHJpZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAg ICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5z cWwnXSksIHJpZD1yaWQpCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgICAg ICByZXNfZGF0YSA9IFtdCisgICAgICAgICAgICAgICAgcmVzX2RhdGEgPSBw YXJzZV9ydWxlX2RlZmluaXRpb24ocmVzKQorICAgICAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAg ICAgIG9sZF9kYXRhID0gcmVzX2RhdGEKKyAgICAgICAgICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIG9fZGF0YT1vbGRfZGF0YQor ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigK KyAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2Ny ZWF0ZS5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAgICAgICAgIHJldHVybiBT UUwKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIo ZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVu ZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCByaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBk ZXBlbmRlbnRzIGFuZCByZXR1cm5zIGFuIGFqYXggcmVzcG9uc2UKKyAgICAg ICAgZm9yIHRoZSBydWxlIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAg ICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAgICAgdGlkOiBWaWV3IElECisgICAgICAgICAgICByaWQ6IFJ1bGUg SUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0g c2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHJpZCkKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1k ZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCwgcmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g Z2V0cyB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm5zIHNuIGFqYXggcmVz cG9uc2UKKyAgICAgICAgZm9yIHRoZSBydWxlIG5vZGUuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAgICAgdGlkOiBWaWV3IElECisgICAgICAgICAg ICByaWQ6IFJ1bGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVu Y2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25u LCByaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAg ICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworUnVsZVZpZXcucmVn aXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9ydWxlcy9zdGF0aWMvaW1nL2NvbGwtcnVsZS5w bmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvc3RhdGljL2ltZy9j b2xsLXJ1bGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmZTZlZDI3 ZDk4MzUxYTAzZTk4NDUxZmU4M2U3ODVhZWI1MTM1MWYKR0lUIGJpbmFyeSBw YXRjaApsaXRlcmFsIDM1Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3 QiE2Mz93eWxgR2JMIVEtRHYxRTBCSkRydDBvVys1Yj1Ie0NfJkAKenxDNEZ8 cEdeQXl4Yk9lZDhVTFRve3tMamt8SGwqbEtraipiKEVzMH5fSjVCJHwyPUJg X3Bzc0whPWBAXj47NjVnCnpgUyttOFk9YHpFcGVjK2NMNExzdTQkcDMrMFhk dW45K0FhQis1P1E7UEc7S3k4QnZ9dGp2KjQ0cn1sYUNIN019Nwp6Slkzayhy QlV+O0tHZDU8PSNKcytXdFhxfU8/QD9lblRFNmtvMTBFPlM7M1pgR2lQKyg5 cnxUaGFWSmMyP3dsaGcKejx3QkZxbWFyOVZuRUthTj1FJFRjT1JYUTUrSkJ2 U3pxcSFGUVFDdGtWUl5DQjM3ez5pQzlWLUFEVHlWaVI+PylGCnpLI0laMHp8 Y1V+JmA4KDdGdlE1ZiVFWntwIzhsaEIpWEtuTS1hRVpqQz5uQ31RIT4qa0Fz UCVVITVWPDdPe0AmZQpXQVIxMGg0X3lQKXp+SmZYPWQjV3pwJFAhN2NaO2Uz CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvcnVsZXMvc3RhdGljL2ltZy9ydWxlLnBuZyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy9zdGF0aWMvaW1nL3J1bGUucG5n Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNDk3ODA5MGUzM2JiZTNkNWY3 ZWQyNDlmZDkzYzJkYTM0ZjUyZDYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs IDM3Mwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR2JL fWN6e29jRTBEZ3NRdWcoa3N7Yz50e0NfKDAKenxDMV5JQU5UJXkpYntVVHty eyk0e3kmLWV8OGY3bk5BM1J9SHZXNTF7cn5DZ3w0Kmo+ZT5+eWVxdDFVMW9C bG5oCnpgUyttd3xJLT0mcEdeQXl4Y2xGdW1WWGF4fDI/U3Ffbj5rSyVqWXpw KFRwV1FlISZiNSZ1KU0/b0NPfHsjWCNCdgp6ak5NTFYrV3tHJm8tVTNkNXxg S1puVHNfVEBIaWBiREVEVWxgZ15gfUdOKVlqS0RCekBPIy1GfFgxQmVjcm8z PUwKelZuVXpgSjl+ZGEjfXJxNl9NV09rSXBQNmd0OGYzMj4jSkRTLTR6ZmN5 KUopfCh5YTRkUX1fUzNuUDlgciRpdyl+CnpBODNKVWlFQmhqTkA3Vz5SZFBg KGtZWEAwRmZgQ0xHfTFMTjNeNmpXR0JMST9HMVdGT3dLNmM2X2ZCc1dpaVhf JAptbCszaEJoejB7b3VtKyVONkR0RVZoPXg8c0wpUVFgRm5HSDl4dlg8YVhh V0VqSzktdlIKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMv Y3NzL3J1bGUuY3NzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rl bXBsYXRlcy9ydWxlcy9jc3MvcnVsZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uM2QyMWJjZgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMv Y3NzL3J1bGUuY3NzCkBAIC0wLDAgKzEsMTYgQEAKKy5pY29uLXJ1bGV7Cisg IGJhY2tncm91bmQtaW1hZ2U6IHVybCgne3sgdXJsX2ZvcignTk9ERS1ydWxl LnN0YXRpYycsIGZpbGVuYW1lPSdpbWcvcnVsZS5wbmcnKSB9fScpICFpbXBv cnRhbnQ7CisgIGJvcmRlci1yYWRpdXM6IDEwcHg7CisgIGJhY2tncm91bmQt cmVwZWF0OiBuby1yZXBlYXQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsK KyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsK K30KKworLnNxbF9maWVsZF9oZWlnaHRfMTQwIHsKKyAgaGVpZ2h0OiAxNDBw eDsKK30KKworLnNxbF9maWVsZF9oZWlnaHRfMjgwIHsKKyAgaGVpZ2h0OiAy ODBweDsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9y dWxlcy90ZW1wbGF0ZXMvcnVsZXMvanMvcnVsZXMuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL2pzL3J1bGVzLmpz Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MTM4ZjQK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVs ZXMvdGVtcGxhdGVzL3J1bGVzL2pzL3J1bGVzLmpzCkBAIC0wLDAgKzEsMjQ1 IEBACitkZWZpbmUoCisgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAndW5k ZXJzY29yZS5zdHJpbmcnLCAncGdhZG1pbicsCisgICAgJ3BnYWRtaW4uYnJv d3NlcicsICdjb2RlbWlycm9yJ10sCisKK2Z1bmN0aW9uKCQsIF8sIFMsIHBn QWRtaW4sIHBnQnJvd3NlciwgQ29kZU1pcnJvcikgeworCisgIC8qKgorICAg IENyZWF0ZSBhbmQgYWRkIGEgcnVsZSBjb2xsZWN0aW9uIGludG8gbm9kZXMK KyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBsYWJlbCAtIExhYmVsIGZvciBOb2Rl CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gdHlwZSAtIFR5cGUgb2YgTm9kZQor ICAgIEBwYXJhbSB7dmFyaWFibGV9IGNvbHVtbnMgLSBMaXN0IG9mIGNvbHVt bnMgdG8KKyAgICAgIGRpc3BsYXkgdW5kZXIgdW5kZXIgcHJvcGVydGllcy4K KyAgICovCisgIGlmICghcGdCcm93c2VyLk5vZGVzWydjb2xsLXJ1bGUnXSkg eworICAgIHZhciBydWxlcyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29s bC1ydWxlJ10gPQorICAgICAgcGdBZG1pbi5Ccm93c2VyLkNvbGxlY3Rpb24u ZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ3J1bGUnLAorICAgICAgICBsYWJl bDogJ3t7IF8oIlJ1bGVzIikgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC1y dWxlJywKKyAgICAgICAgY29sdW1uczogWyJuYW1lIiwgIm93bmVyIiwgImNv bW1lbnQiXQorICAgICAgfSk7CisgIH0KKworCisgIC8qKgorICAgIENyZWF0 ZSBhbmQgQWRkIGFuIFJ1bGUgTm9kZSBpbnRvIG5vZGVzCisgICAgQHBhcmFt IHt2YXJpYWJsZX0gcGFyZW50X3R5cGUgLSBUaGUgbGlzdCBvZiBub2Rlcwor ICAgIHVuZGVyIHdoaWNoIHRoaXMgbm9kZSB0byBkaXNwbGF5CisgICAgQHBh cmFtIHt2YXJpYWJsZX0gdHlwZSAtIFR5cGUgb2YgTm9kZQorICAgIEBwYXJh bSB7dmFyaWFibGV9IGhhc1NRTCAtIFRvIHNob3cgU1FMIHRhYgorICAgIEBw YXJhbSB7dmFyaWFibGV9IGNhbkRyb3AgLSBBZGRzIGRyb3AgcnVsZSBvcHRp b24KKyAgICBpbiB0aGUgY29udGV4dCBtZW51CisgICAgQHBhcmFtIHt2YXJp YWJsZX0gY2FuRHJvcENhc2NhZGUgLSBBZGRzIGRyb3AgQ2FzY2FkZQorICAg IHJ1bGUgb3B0aW9uIGluIHRoZSBjb250ZXh0IG1lbnUKKyAgICovCisgIGlm ICghcGdCcm93c2VyLk5vZGVzWydydWxlJ10pIHsKKyAgICBwZ0FkbWluLkJy b3dzZXIuTm9kZXNbJ3J1bGUnXSA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmV4 dGVuZCh7CisgICAgICBwYXJlbnRfdHlwZTogWyd0YWJsZScsJ3ZpZXcnXSwK KyAgICAgIHR5cGU6ICdydWxlJywKKyAgICAgIGxhYmVsOiAne3sgXygicnVs ZSIpIH19JywKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTogJ2NvbGwtdGFibGUn LAorICAgICAgaGFzU1FMOiAgdHJ1ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRy dWUsCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSdd LmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiBwZ0Jyb3dz ZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIEluaXQ6 IGZ1bmN0aW9uKCkgeworCisgICAgICAgIC8qIEF2b2lkIG11bGl0cGxlIHJl Z2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAgICAgICBpZiAodGhpcy5pbml0 aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz LmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAgICAvKioKKyAgICAgICAg ICBBZGQgImNyZWF0ZSBydWxlIiBtZW51IG9wdGlvbiBpbnRvIGNvbnRleHQg YW5kIG9iamVjdCBtZW51CisgICAgICAgICAgZm9yIHRoZSBmb2xsb3dpbmcg bm9kZXM6CisgICAgICAgICAgY29sbC1ydWxlLCBydWxlIGFuZCB2aWV3IGFu ZCB0YWJsZS4KKyAgICAgICAgICBAcHJvcGVydHkge2RhdGF9IC0gQWxsb3cg Y3JlYXRlIHJ1bGUgb3B0aW9uIG9uIHNjaGVtYSBub2RlIG9yCisgICAgICAg ICAgc3lzdGVtIHJ1bGVzIG5vZGUuCisgICAgICAgICAqLworICAgICAgICBw Z0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0 ZV9ydWxlX29uX2NvbGwnLCBub2RlOiAnY29sbC1ydWxlJywgbW9kdWxlOiB0 aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQn XSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAg ICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7 IF8oIlJ1bGUuLi4iKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNv biBpY29uLXJ1bGUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6 IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAg ICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9ydWxlJywgbm9kZTog J3ZpZXcnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydv YmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3Bl cnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3Jp dHk6IDQsIGxhYmVsOiAne3sgXygiUnVsZS4uLiIpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tcnVsZScsIGRhdGE6IHthY3Rpb246 ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxlOiAn Y2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3Jl YXRlX3J1bGUnLCBub2RlOiAncnVsZScsIG1vZHVsZTogdGhpcywKKyAgICAg ICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNr OiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6 ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCJSdWxlLi4u IikgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1ydWxl JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAg ICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAg ICAgICAgIG5hbWU6ICdjcmVhdGVfcnVsZScsIG5vZGU6ICd0YWJsZScsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdj b250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisg ICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFi ZWw6ICd7eyBfKCJSdWxlLi4uIikgfX0nLAorICAgICAgICAgIGljb246ICd3 Y1RhYkljb24gaWNvbi1ydWxlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScs IGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUn CisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAgICB9LAorCisgICAgICAv KioKKyAgICAgICAgRGVmaW5lIG1vZGVsIGZvciB0aGUgcnVsZSBub2RlIGFu ZCBzcGVjaWZ5IHRoZSBub2RlCisgICAgICAgIHByb3BlcnRpZXMgb2YgdGhl IG1vZGVsIGluIHNjaGVtYS4KKyAgICAgICAqLworICAgICAgbW9kZWw6IHBn QWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGRl ZmF1bHRzOiB7CisgICAgICAgIH0sCisgICAgICAgIHNjaGVtYTogW3sKKyAg ICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8oIk5hbWUiKSB9fScs CisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogZnVuY3Rpb24o bSl7CisgICAgICAgICAgICByZXR1cm4gIW0uaXNOZXcoKTsKKyAgICAgICAg ICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ29p ZCcsIGxhYmVsOid7eyBfKCJPSUQiKSB9fScsCisgICAgICAgICAgdHlwZTog J3RleHQnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10K KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc2NoZW1h JywgbGFiZWw6J3t7IF8oIiIpIH19JywKKyAgICAgICAgICB0eXBlOiAndGV4 dCcsIHZpc2libGU6IGZhbHNlLCBkaXNhYmxlZDogZnVuY3Rpb24obSl7CisK KyAgICAgICAgICAgIC8vIEl0IGlzIHVzZWQgd2hpbGUgZ2VuZXJhdGluZyBz cWwKKyAgICAgICAgICAgIG0uc2V0KCdzY2hlbWEnLCBtLm5vZGVfaW5mby5z Y2hlbWEubGFiZWwpOworICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAg ICAgeworICAgICAgICAgIGlkOiAndmlldycsIGxhYmVsOid7eyBfKCIiKSB9 fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCB2aXNpYmxlOiBmYWxzZSwg ZGlzYWJsZWQ6IGZ1bmN0aW9uKG0peworCisgICAgICAgICAgICAvLyBJdCBp cyB1c2VkIHdoaWxlIGdlbmVyYXRpbmcgc3FsCisgICAgICAgICAgICBtLnNl dCgndmlldycsIHRoaXMubm9kZV9kYXRhLl90eXBlLmxhYmVsKTsKKyAgICAg ICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDog J2NvbW1lbnQnLCBsYWJlbDone3sgXygiQ29tbWVudCIpIH19JywgY2VsbDog J3N0cmluZycsIHR5cGU6ICdtdWx0aWxpbmUnCisgICAgICAgIH0sCisgICAg ICAgIHsKKyAgICAgICAgICBpZDogJ2V2ZW50JywgbGFiZWw6J3t7IF8oIkV2 ZW50IikgfX0nLCBjb250cm9sOiAnc2VsZWN0MicsCisgICAgICAgICAgZ3Jv dXA6ICd7eyBfKCJEZWZpbml0aW9uIikgfX0nLCB0eXBlOiAndGV4dCcsCisg ICAgICAgICAgc2VsZWN0MjogeworICAgICAgICAgICAgd2lkdGg6ICcxMDAl JworICAgICAgICAgIH0sCisgICAgICAgICAgb3B0aW9uczpbCisgICAgICAg ICAgICB7bGFiZWw6ICdTZWxlY3QnLCB2YWx1ZTogJ1NlbGVjdCd9LAorICAg ICAgICAgICAge2xhYmVsOiAnSW5zZXJ0JywgdmFsdWU6ICdJbnNlcnQnfSwK KyAgICAgICAgICAgIHtsYWJlbDogJ1VwZGF0ZScsIHZhbHVlOiAnVXBkYXRl J30sCisgICAgICAgICAgICB7bGFiZWw6ICdEZWxldGUnLCB2YWx1ZTogJ0Rl bGV0ZSd9CisgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg ICAgICAgICAgaWQ6ICdkb19pbnN0ZWFkJywgbGFiZWw6J3t7IF8oIkRvIElu c3RlYWQiKSB9fScsIGdyb3VwOiAne3sgXygiRGVmaW5pdGlvbiIpIH19JywK KyAgICAgICAgICB0eXBlOiAnc3dpdGNoJworICAgICAgICB9LAorICAgICAg ICB7CisgICAgICAgICAgaWQ6ICdjb25kaXRpb24nLCBsYWJlbDone3sgXygi Q29uZGl0aW9uIikgfX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3Jv dXA6ICd7eyBfKCJEZWZpbml0aW9uIikgfX0nLAorICAgICAgICAgIG1vZGU6 IFsnY3JlYXRlJywgJ2VkaXQnXSwgZXh0cmFDbGFzc2VzOiBbJ3NxbF9maWVs ZF9oZWlnaHRfMTQwJ10sCisgICAgICAgICAgY29udHJvbDogQmFja2Zvcm0u U3FsRmllbGRDb250cm9sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ3N0YXRlbWVudHMnLCBsYWJlbDone3sgXygiIikgfX0nLAor ICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCJTdGF0ZW1l bnRzIikgfX0nLAorICAgICAgICAgIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQn XSwgZXh0cmFDbGFzc2VzOiBbJ3NxbF9maWVsZF9oZWlnaHRfMjgwJ10sCisg ICAgICAgICAgY29udHJvbDogQmFja2Zvcm0uU3FsRmllbGRDb250cm9sCisg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3N5c3RlbV9y dWxlJywgbGFiZWw6J3t7IF8oIlN5c3RlbSBydWxlPyIpIH19JywKKyAgICAg ICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAg ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnZW5hYmxlZCcs IGxhYmVsOid7eyBfKCJFbmFibGVkPyIpIH19JywKKyAgICAgICAgICB0eXBl OiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfQor ICAgICAgICBdLAorICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisK KyAgICAgICAgICAvLyBUcmlnZ2VycyBzcGVjaWZpYyBlcnJvciBtZXNzYWdl cyBmb3IgZmllbGRzCisgICAgICAgICAgdmFyIGVyciA9IHt9LAorICAgICAg ICAgICAgZXJybXNnLAorICAgICAgICAgICAgZmllbGRfbmFtZSA9IHRoaXMu Z2V0KCduYW1lJyk7CisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoZmll bGRfbmFtZSkgfHwgXy5pc051bGwoZmllbGRfbmFtZSkgfHwKKyAgICAgICAg ICAgIFN0cmluZyhmaWVsZF9uYW1lKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09PSAnJykKKyAgICAgICAgICB7CisgICAgICAgICAgICBlcnJbJ25h bWUnXSA9ICd7eyBfKCJQbGVhc2Ugc3BlY2lmeSBuYW1lLiIpIH19JzsKKyAg ICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAg ICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ25hbWUnLCBlcnJtc2cp OworICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICB9Cisg ICAgICAgICAgZWxzZQorICAgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMu ZXJyb3JNb2RlbC51bnNldCgnbmFtZScpOworICAgICAgICAgIH0KKyAgICAg ICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgfSksCisKKyAg ICAgIC8vIFNob3cgb3IgaGlkZSBjcmVhdGUgcnVsZSBtZW51IG9wdGlvbiBv biBwYXJlbnQgbm9kZQorICAgICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihpdGVt RGF0YSwgaXRlbSwgZGF0YSkgeworCisgICAgICAgIC8vIElmIGNoZWNrIGlz IGZhbHNlIHRoZW4gLCB3ZSB3aWxsIGFsbG93IGNyZWF0ZSBtZW51CisgICAg ICAgIGlmIChkYXRhICYmIGRhdGEuY2hlY2sgPT09IGZhbHNlKQorICAgICAg ICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHZhciB0ID0gcGdCcm93c2Vy LnRyZWUsIGkgPSBpdGVtLCBkID0gaXRlbURhdGE7CisKKyAgICAgICAgLy8g VG8gaXRlcmF0ZSBvdmVyIHRyZWUgdG8gY2hlY2sgcGFyZW50IG5vZGUKKyAg ICAgICAgd2hpbGUgKGkpIHsKKworICAgICAgICAgIC8vIElmIGl0IGlzIHNj aGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gY3JlYXRlIHJ1bGUKKyAgICAgICAg ICBpZiAoXy5pbmRleE9mKFsnc2NoZW1hJ10sIGQuX3R5cGUpID4gLTEpCisg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgIGlmICgnY29s bC1ydWxlJyA9PSBkLl90eXBlKSB7CisKKyAgICAgICAgICAgIC8vQ2hlY2sg aWYgd2UgYXJlIG5vdCBjaGlsZCBvZiBydWxlCisgICAgICAgICAgICBwcmV2 X2kgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsKKyAg ICAgICAgICAgIHByZXZfZCA9IHByZXZfaSA/IHQuaXRlbURhdGEocHJldl9p KSA6IG51bGw7CisgICAgICAgICAgICBwcmV2X2ogPSB0Lmhhc1BhcmVudChw cmV2X2kpID8gdC5wYXJlbnQocHJldl9pKSA6IG51bGw7CisgICAgICAgICAg ICBwcmV2X2UgPSBwcmV2X2ogPyB0Lml0ZW1EYXRhKHByZXZfaikgOiBudWxs OworICAgICAgICAgICAgcHJldl9rID0gdC5oYXNQYXJlbnQocHJldl9qKSA/ IHQucGFyZW50KHByZXZfaikgOiBudWxsOworICAgICAgICAgICAgcHJldl9m ID0gcHJldl9rID8gdC5pdGVtRGF0YShwcmV2X2spIDogbnVsbDsKKyAgICAg ICAgICAgIGlmKCBwcmV2X2YuX3R5cGUgPT0gJ2NhdGFsb2cnKSB7CisgICAg ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQor ICAgICAgICAgIH0KKworICAgICAgICAgIC8qKgorICAgICAgICAgICAgQ2hl Y2sgaWYgaXQgaXMgdmlldyBhbmQgaXRzIHBhcmVudCBub2RlIGlzIHNjaGVt YQorICAgICAgICAgICAgdGhlbiBhbGxvdyB0byBjcmVhdGUgUnVsZQorICAg ICAgICAgICAqLworICAgICAgICAgIGVsc2UgaWYoJ3ZpZXcnID09IGQuX3R5 cGUpeworICAgICAgICAgICAgcHJldl9pID0gdC5oYXNQYXJlbnQoaSkgPyB0 LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBwcmV2X2QgPSBwcmV2 X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBudWxsOworICAgICAgICAgICAg cHJldl9qID0gdC5oYXNQYXJlbnQocHJldl9pKSA/IHQucGFyZW50KHByZXZf aSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9lID0gcHJldl9qID8gdC5p dGVtRGF0YShwcmV2X2opIDogbnVsbDsKKyAgICAgICAgICAgIGlmKHByZXZf ZS5fdHlwZSA9PSAnc2NoZW1hJykgeworICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAg ICAgIGkgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsK KyAgICAgICAgICBkID0gaSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOworICAg ICAgICB9CisKKyAgICAgICAgLy8gQnkgZGVmYXVsdCB3ZSBkbyBub3Qgd2Fu dCB0byBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICByZXR1cm4gdHJ1ZTsK KworICAgICAgfQorCisgIH0pOworICB9CisKKyAgcmV0dXJuIHBnQnJvd3Nl ci5Ob2Rlc1snY29sbC1ydWxlJ107Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL2Jh Y2tlbmRfc3VwcG9ydC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVs ZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9iYWNrZW5kX3N1cHBvcnQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNWU4ZDgKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMv dGVtcGxhdGVzL3J1bGVzL3NxbC9iYWNrZW5kX3N1cHBvcnQuc3FsCkBAIC0w LDAgKzEsOSBAQAoreyM9PT09PT09PT09PT09Q2hlY2tzIGlmIGl0IGlzIG1h dGVyaWFsaXplZCB2aWV3PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitTRUxF Q1QKKyAgICBDQVNFIFdIRU4gYy5yZWxraW5kID0gJ20nIFRIRU4gRmFsc2Ug RUxTRSBUcnVlIEVORCBBcyBtX3ZpZXcKK0ZST00KKyAgICBwZ19jbGFzcyBj CitXSEVSRQorICAgIGMub2lkID0ge3sgdmlkIH19OjpvaWQKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMv dGVtcGxhdGVzL3J1bGVzL3NxbC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvY3JlYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTI3ZTVi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1 bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsx LDI2IEBACit7IyA9PT09PT09PT09PT1DcmVhdGUgUnVsZT09PT09PT09PT09 PT0gI30KK3slIGlmIGRpc3BsYXlfY29tbWVudHMgJX0KKy0tIFJ1bGU6IHt7 IGRhdGEubmFtZSB9fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBSdWxlIHt7IGRhdGEubmFtZSB9 fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkg fX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEu c2NoZW1hIGFuZCBkYXRhLnZpZXcgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFJV TEUge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX0gQVMKKyAgT04ge3sg ZGF0YS5ldmVudHx1cHBlciBpZiBkYXRhLmV2ZW50IGVsc2UgJ1NFTEVDVCcg fX0gVE8ge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnZpZXcp IH19Cit7JSBpZiBkYXRhLmNvbmRpdGlvbiAlfQorICBXSEVSRSB7eyBkYXRh LmNvbmRpdGlvbiB9fQoreyUgZW5kaWYgJX0KKyAgRE97JSBpZiBkYXRhLmlz X2luc3RlYWQgPT0gVHJ1ZSAlfQore3sgJyBJTlNURUFEJyB9fQoreyUgZWxz ZSAlfQore3sgJycgfX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnN0YXRl bWVudHMgJX0KK3t7IGRhdGEuc3RhdGVtZW50cy5yc3RyaXAoJzsnKSB9fTsK K3slIGVsc2UgJX0KKyAgTk9USElORzsKK3slIGVuZGlmICV9Cit7JSBpZiBk YXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gUlVMRSB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEudmlldykgfX0gSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJh bCB9fTt7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3Fs L2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVt cGxhdGVzL3J1bGVzL3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmNmMTg5MTMKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVz L3NxbC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTYgQEAKK3sjID09PT09PT09 IERyb3AvQ2FzY2FkZSBSdWxlID09PT09PT09PSAjfQoreyUgaWYgcmlkICV9 CitTRUxFQ1QKKyAgICBydy5ydWxlbmFtZSwKKyAgICBjbC5yZWxuYW1lLAor ICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdfcmV3cml0ZSBydworSk9J TiBwZ19jbGFzcyBjbCBPTiBjbC5vaWQ9cncuZXZfY2xhc3MKK0pPSU4gcGdf bmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPWNsLnJlbG5hbWVzcGFjZQorV0hF UkUKKyAgICBydy5vaWQ9e3sgcmlkIH19OworeyUgZW5kaWYgJX0KK3slIGlm IHJ1bGVuYW1lIGFuZCByZWxuYW1lIGFuZCBuc3BuYW1lICV9CitEUk9QIFJV TEUge3sgY29ubnxxdElkZW50KHJ1bGVuYW1lKSB9fSBPTiB7eyBjb25ufHF0 SWRlbnQobnNwbmFtZSwgcmVsbmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBD QVNDQURFIHslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMv c3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1 bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvcHJvcGVydGllcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZkZDEzOQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1w bGF0ZXMvcnVsZXMvc3FsL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMjcg QEAKK3sjID09PT09PT09PT09PT09PT09PT0gRmV0Y2ggUnVsZXMgPT09PT09 PT09PT09PT09PT09PT0gI30KK3slIGlmIHRpZCBvciByaWQgJX0KK1NFTEVD VAorICAgIHJ3Lm9pZCBBUyBvaWQsCisgICAgcncucnVsZW5hbWUgQVMgbmFt ZSwKKyAgICByZWxuYW1lIEFTIHZpZXcsCisgICAgQ0FTRSBXSEVOIHJlbGtp bmQgPSAncicgVEhFTiBUUlVFIEVMU0UgRkFMU0UgRU5EIEFTIHBhcmVudGlz dGFibGUsCisgICAgbnNwbmFtZSBBUyBzY2hlbWEsCisgICAgZGVzY3JpcHRp b24gQVMgY29tbWVudCwKKyAgICB7IyA9PT09PSBDaGVjayB3aGV0aGVyIGl0 IGlzIHN5c3RlbSBydWxlIG9yIG5vdCA9PT09PSAjfQorICAgIENBU0UgV0hF TiBydy5ydWxlbmFtZSA9ICdfUkVUVVJOJyBUSEVOIFRydWUgRUxTRSBGYWxz ZSBFTkQgQVMgc3lzdGVtX3J1bGUsCisgICAgQ0FTRSBXSEVOIHJ3LmV2X2Vu YWJsZWQgIT0gJ0QnIFRIRU4gVHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBlbmFi bGVkLAorICAgIHBnX2dldF9ydWxlZGVmKHJ3Lm9pZCwgdHJ1ZSkgQVMgZGVm aW5pdGlvbgorRlJPTQorICAgIHBnX3Jld3JpdGUgcncKK0pPSU4gcGdfY2xh c3MgY2wgT04gY2wub2lkPXJ3LmV2X2NsYXNzCitKT0lOIHBnX25hbWVzcGFj ZSBuc3AgT04gbnNwLm9pZD1jbC5yZWxuYW1lc3BhY2UKK0xFRlQgT1VURVIg Sk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cncub2lk IEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Jld3JpdGUnOjpyZWdjbGFzcykKK1dI RVJFCisgIHslIGlmIHRpZCAlfQorICAgICAgZXZfY2xhc3MgPSB7eyB0aWQg fX0KKyAgeyUgZWxpZiByaWQgJX0KKyAgICAgIHJ3Lm9pZCA9IHt7IHJpZCB9 fQorICB7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBydy5ydWxlbmFtZQor IHslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9ydWxlX2lkLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3Fs L3J1bGVfaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjNkYzZkYmEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9ydWxlX2lkLnNx bApAQCAtMCwwICsxLDkgQEAKK3sjPT09PT09PT1CZWxvdyB3aWxsIHByb3Zp ZGUgcnVsZSBpZCBmb3IgbGFzdCBjcmVhdGVkIHJ1bGU9PT09PT09PSN9Cit7 JSBpZiBydWxlX25hbWUgJX0KK1NFTEVDVAorICAgIHJ3Lm9pZAorRlJPTQor ICAgIHBnX3Jld3JpdGUgcncKK1dIRVJFCisgICAgcncucnVsZW5hbWU9e3sg cnVsZV9uYW1lfHF0TGl0ZXJhbCB9fQoreyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1wbGF0ZXMvcnVs ZXMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVs ZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC91cGRhdGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MDM2OWEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVz L3J1bGVzL3NxbC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMjIgQEAKK3sjPT09 PT09PT09PT09VXBkYXRlIFJ1bGU9PT09PT09PT09PT09I30KK3slIGlmIGRh dGEuZXZlbnQgb3IgZGF0YS5kb19pbnN0ZWFkIG9yIGRhdGEuY29uZGl0aW9u ICV9CitDUkVBVEUgT1IgUkVQTEFDRSBSVUxFIHt7IGNvbm58cXRJZGVudChv X2RhdGEubmFtZSkgfX0gQVMKKyAgICBPTiB7JSBpZiBkYXRhLmV2ZW50IGFu ZCBkYXRhLmV2ZW50ICE9IG9fZGF0YS5ldmVudCAlfXt7IGRhdGEuZXZlbnR8 dXBwZXIgfX17JSBlbHNlICV9e3sgb19kYXRhLmV2ZW50fHVwcGVyIH19eyUg ZW5kaWYgJX0KKyAgICBUTyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVt YSwgb19kYXRhLnZpZXcpIH19Cit7JSBpZiBkYXRhLmNvbmRpdGlvbiBhbmQg b19kYXRhLmNvbmRpdGlvbiAhPSBkYXRhLmNvbmRpdGlvbiAlfQorICAgIFdI RVJFIHt7IGRhdGEuY29uZGl0aW9uIH19Cit7JSBlbGlmIGRhdGEuY29uZGl0 aW9uIGlzIG5vdCBkZWZpbmVkIGFuZCBvX2RhdGEuY29uZGl0aW9uICV9Cisg ICAgV0hFUkUge3sgb19kYXRhLmNvbmRpdGlvbiB9fQoreyUgZW5kaWYgJX0K KyBET3slIGlmIGRhdGEuZG9faW5zdGVhZCBpbiBbJ3RydWUnLCBUcnVlXSAl fXt7ICcgSU5TVEVBRCcgfX17JSBlbHNlICV9e3sgJyAnIH19Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5zdGF0ZW1lbnRzIGFuZCBkYXRhLnN0YXRlbWVu dHMgIT0gb19kYXRhLnN0YXRlbWVudHMgJX0KKyB7eyBkYXRhLnN0YXRlbWVu dHMucnN0cmlwKCc7JykgfX07CisgeyUgZWxpZiBkYXRhLnN0YXRlbWVudHMg aXMgbm90IGRlZmluZWQgYW5kIG9fZGF0YS5zdGF0ZW1lbnRzICV9Cisge3sg b19kYXRhLnN0YXRlbWVudHMucnN0cmlwKCc7JykgfX07Cit7JSBlbHNlICV9 CisgTk9USElORzsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1l bnQgJX0KK0NPTU1FTlQgT04gUlVMRSB7eyBjb25ufHF0SWRlbnQob19kYXRh Lm5hbWUpIH19IE9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBv X2RhdGEudmlldykgfX0gSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9 fTt7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3N0YXRpYy9pbWcvY29sbC10YWJsZS5wbmcgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvc3RhdGljL2ltZy9jb2xsLXRhYmxlLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi42ODBlODY0NTdlOGM0OGNkMDEzMjlmMDMwM2Q2NjNi MDMwNGFiNDRkCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NTUKemNtZUFT QE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiTWYtVDxFdlMwSnI4 Xj9CRjFlXmJ1P1R6bUQ/CnpzWE1Sa0olMFl8YFNXTWJvKmxqTXRaZTVDZ0U9 b2MmaSlKOUBNLWhhd3xEUX1aOWVfND5lJW82MTMhfkBlaGJfNQp6Kj5tKj0r b2YqfT1lPF4rYFNSWXFkKEVmK2RJM2UyeXcjWmJeOFdxJWp+K2RHe1BeK0hy JSY0dEpiJj11IVNkekgKeipRe0NkPUZPWFRAN30kOWBTUmh6aHMlfk5UZGB1 citPPSFmdVY0U18pdkYxb0swa2x7e1BwWUNGSjhQQHhwTCtFCnpfd1BTYHtQ XzBtK2Z9UHBaUD43MykyMjtObzs+O1I7WF5nWjBZNVptekY3QkheJmlqIWoz cSZTITMrLTFabG5QQAp6b0NPfHsjWCNCdmpOTUxWK1d7RiVKelgzX0JyZUNF S1E3aX1Ba2d9LSQ1Y3lkTyRUZW83TUc9K04jRm08cFhTbEEKekYqXk9mcnJW bU8maXohZyt2Y245TjtLYm9XZT5nM19NZElidGo1NXo0Njd3WXIoOFRmYERN O05nSn0qMlRzOXh0CnphOER2eVJMNyllPUNycDN5TWhuOEk8SV9nUlZUbkRz eG9WRGBHaDw2WmlXKzc5RnVvbVRERyNvXylnbjFsX0tAdAp6YkpMbGFYVzhz ODYxQDheQHZFWjg/fU0zUUFgZHJuYnVRYX4/YGE9QDRkZVY9Zmh7TSRpZiNm clNoZDc4cTlpNDsKekItSlhwQz4yT0M3I1NFRT1vJVg3OFdASGM4Q2FQWlRi WTxAODw8KWQ3fGVVOHcrY2w9WmhsSDtTfHZuLWZoQVoyCmNQXz5EYmZmKz1A c3ArOT5mRXBNKVVIeDN2SVZDZyEwSmxzS2kyd2lxCgpsaXRlcmFsIDAKSGNt Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv c3RhdGljL2ltZy90YWJsZS1yZXBsLXNtLnBuZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9zdGF0aWMvaW1nL3RhYmxlLXJlcGwtc20ucG5nCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjk2N2JkOTM3ZmI4OWM0ODNhOTUxNDZjODhmYjRj MDY2ZjZkYTU3MTEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDY3NQp6Y21l QVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR1hsNDc+eHBhTFJe N2QjaWBHYCZpJEtte14jMU8KenBIQUkqYj9APT5YVjBITWQtbSs7amJ+KiRV bGAxSihRKT0pXlhZJDgkQTBHQF8/ZikoVGlCLTBvfnU5REVgNGhfCnpAM3My T20oOGREZEk3bWgtZkdOengldWtieUxhIzJ5TGEjWXtyaXN8SiRuNTNAemJZ SStZZGFTdzkwd0l3ZnF3bwp6KkZBb0dmQkRNQUgqYTVGdnU0ZWtIKmVtKGQt dzk/JVBIJkpIezMyK2J2PHdETn11azxSe2RNdSl+O1E8ZSpPQWEKenVVPmdI P0tBSD5wRWtMd2NZRGI2bFRualNNem45VGQ7YXxTPih7U35rS0hka2F4ZD98 LVBwd14lamYmXzl1STloCno9diUrbXtRZGopQTN1SjRgfVM/WTtke0NKP31T VzBrdl9lPXtlV05OOT1HWnBqI1ZvU0gqRENqWTE1e2hlUnFOOwp6OX1BeXpJ JiM2T14jYF97eX1hdyhtMGpucj8qOCFNTDtqcElzZExZQ3VmRztNPnMwS0BP RmAzNFdVaE9mZjhkQTQKeiVva0NVanh+RFJ4JiNiMCMqIWV2VTxRWTBIYDBJ eyZIfDZmVmolNFMjJT9GRz9TUENHby1VM2Q1fEAoYDZ4YS11Cno3JntuKmpr JmRAdD1aWXQjbSF3QitOYngmSXxPKHt4UU1LM2FfM1B8JntJXzY2ckNfPitP JnlOQ3g8QD5YeU1TJQp6VClrcXwlRzIyeVMoKGwoQl8mX0tAYlpZN156YF5Q RmZDaVFFYlc9dHc2SlMzWDFDT35ES0pgQnYlOU9PaS0kYG0Kem8wcyFYWGpu ZGRkO2p8Ul4kcHQhNkRFanhDfEliTj0tNFAzb2VJMGB0U3pNPkFTXjlEZjVN Q0BKWjBgJk41dEIkCnpneEpgekdUNDhURygzNjNDa2cwZyllX2Y7bDlhQGZS SUI4b1IzT0QqV01GOFpZaU9pdlU+SVUjVX1hKSNXbiF2cgp6VX18TXhGej1u LURpalU1YDYtIWNsQEpYRW1TN0QpKWgxUjNXKUthaHJpWlFwWUdDa21ePmJQ MGwrWGtLUndfR1IKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9zdGF0aWMvaW1nL3RhYmxlLXJl cGwucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3N0YXRpYy9pbWcvdGFi bGUtcmVwbC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEwODJjNjdi OGMzMDdiNjczZDMyZmMwZGYxMmZiNWU4NTdmYzFmNwpHSVQgYmluYXJ5IHBh dGNoCmxpdGVyYWwgODM5CnpjbVYtTjFHeE4mUCk8aDszS3xMazAwMGUxTkpM VHEwMDBtRzAwMG1PMHt7UjNDQGx8RDAwMDRAUCl0LXMwMDAwWAp6bUZKRG58 Qn0hOXFTTilkKnpNOFo+RUdrJDw+dSQrPUh9WXI8KmQlPFczbEtpbzlLKHJ8 QW94e2UjcmNGIX1ASCMKel8raHlBUjxpUjt0bmZnbT9sKys5RXU4OG1uQ1hT Z3tjRkRYTDhrNkRxM2taND5hXkRHLVFDXlotcm5FZS17OWNqCno7bzslcDte TzF1PEteWSRocmozTz07LU9gPjlXQ3BveE18eXNYRDJ0c3BSRDN0Z05pOz9D a0NCP2VGako+Z3d1ewp6c1g/RUBSPGhpN2sqYENpdngyNiRYcFhIeXFxYnRM dCp4KUd1an1qVShBQkBIeT8zZUJaalExKmxDbnBUeS1iZTEKek9NYU9tTlBA bWlpb3J+WSFCfmxwbzZUVUImMGRlbFIpKTdqQGJLe1JeNzhLUD9zTFo5YW0z emshUUV1QSlLclMzCnpoX3luQiNaclg4T01rTEZ2OVluVHZhKWMqLWZxQyVY dD4hQGhvZ2JHVTUzRjtmeGJ3NHg8WXhjSHUzVENeWWlvZAp6XzRRK30pTXZO WlNEbmpNaUpoZ2xZTEI1KnFfPTkycUUrX3hfVzFidFZYVmAxcVImdX4jYV5x XlRCWG8lbCkxSUYKendZSWpseFZYNllfeEY+dio8K04pSWgqNX14IUc1aiR4 ZTtMU0Rubk8hYG1nNj0zdD1MUitQdFZwVV5kJDxZK0JRCnpfeTdPXjBkIUpN UXZnOGIqayU5IzAxMHFOUyN0bVkwN3c3OzA3dzh2JCFrNlUwMDctZExfdCYt KF8+JkBVXz0yNwp6S21qSVo3RklUUDRvKiVrWlhSQmMwM1d9QXBwZFlMc0Y9 OGZCdj1LWGx6XlojUChWZ2o0azk0MHByRUx2dGZIIT4KeiZaeit3Sz0zdVN6 eWpKanh8KHtiYFVad1ojd0s2XlEhe2Y1T0RrJnxUUlNeQHV6LVczbGUzR2Zv NGJ+WXAlRWo0Cnpob19nOW0kIzN2cFRFMHRLd3VEMUFVR3M2RUljQUlEJXcz SkhafWsjNUVxfTJuM1NCN24mekchbjJgdy1ofGtLLQp6JDw1MHokU2NlJkRs UCZGbCQ0ZzBTNShGWnEqcW5mKVlMTEUpWVVnTUhaYH1qZzQ3cSkpYEcyVll3 emduZl9XYlIKemhnJmt6bjM4O08wMDAwYmJWWFFuV01Pbj1JJTlIV1ZSVTV4 R0I3YlBFaXAxSkZmbWp6RmdpM2RJeTV5YUZmfT9iCnpGck14JXNzSTIwQzNI bnRiWXgrNFdqYndkV05CdTMwNVVLIUZmQX1TRWlmQHVHQll8ZkcmKFJnRD07 LVdGZmh1TwpSUmpkRjIwMDJvdlBESExrVjFoXmFzb3d3cQoKbGl0ZXJhbCAw CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3N0YXRpYy9pbWcvdGFibGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3N0YXRpYy9pbWcvdGFibGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAuLjM3YjIyMjdkOGZlMGNmNzZiZGUyMzg1NTY3NjQwM2M1N2NjZmI1NjkK R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDU5Mwp6Y21lQVNATj8ob2xIeWB1 VkJxIWlhMHZwXjB3QiE2Mz93eWxgR2JNZmpSMm56UzBKcjheP0Mxd3xDNyVE VVVkMkUKenR7WlBKLWhYLWpAJDt3OG88RG9gP0FGN2xZdEI3Uy11T2FxX0tX V0d8NjktZXQyXjxoXnpnNW9lTG9VK2Q8KXozCnoqP1l8Z2h2bzBnN3JmRChe R2E+VCVob2Ywdi1rYVFUPXZkdjtUeWQ8dWVNeCFjbFlreWQtdnwkemttUDFn OWleRQp6Szc5MSgoY3tPRHBGVnhzeldAMSk3Y1hBRWVFSXpPXk9ZLUNLNiZ6 RiY2K2lELW5AREhfVS0laz9fYSVvd1M0KlYKejYpUlMoVUF1UHVgdGA0MHp5 OSN5IT4zUTUtbzFPYmRpQ2xKOCNaaip4Tip+X08mPnBne1FVWHoqUk5sPFpy JUZyCnorcVdNLWVyKCZlWk80dXMtQGt0XnpPfTZ5PXJfaWFBaXJQK2hpNW1e ZkU+O09rSH0mbT9FJUphQyRzSDxqMThWSAp6anYqNDRMKGc5cVlCQ1VMZVZF V01UUEBENXp+fiZQeEZFXiM7b3RpbmNQKl5tLTJNNCVlYEhJYDZ+JmVvQUc3 S0QKekJIanx5d1hmYntmN1FGfU1wcFQqejVmejhUeCtrMDlNN05PbFA+ZFko dzJ5SSpFVEpCI0N4RFZ5TV82aHNxPyp7CnolYlIyeWpeXmJ7YmIwWndkKEJ1 PUo9YkN4Pmp0R0czblIqTnBScUchS2xXSlo9Sih0bmgyaX1UPEZ5VTNlX3Ih Qwp6WT90SV9GNUI8ZyYoVXl2YGZ1WXQ7ZjhwNVJoZGlnX2NMdGJtKiMoNXdo SDdzKWVfZjtsOWFAZlJJQjhvUjNPRCoKeldNRjhaWWlPaXZVPklVI1V9YSkj V24hdnJVfXxNeEZ6PW4tRGlqVTVgNi0hY2xASlhFbVM3RCkpaDFSM1cpS2Fo ClRyaVpRcFlHQ2ttXj5iUDBsK1hrS3chQTlQCgpsaXRlcmFsIDAKSGNtVj9k MDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZWQ2NzVjZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9fX2luaXRfXy5weQpAQCAtMCwwICsx LDg5NCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworIiIiIEltcGxlbWVudHMgVHJpZ2dlciBOb2RlICIiIgorCitmcm9t IGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIG1ha2VfcmVzcG9uc2Us IHJlcXVlc3QsIGpzb25pZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9y dCBnZXR0ZXh0Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFr ZV9qc29uX3Jlc3BvbnNlLCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4 X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1p bi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20g cGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25O b2RlTW9kdWxlCitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMgYXMgZGF0YWJhc2UKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy51dGlscyBpbXBvcnQgXAorICAgIHRyaWdnZXJfZGVmaW5pdGlvbiBh cyBfdHJpZ2dlcl9kZWZpbml0aW9uCitmcm9tIHBnYWRtaW4udXRpbHMuYWph eCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRtaW4u dXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBp bXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gZnVuY3Rvb2xzIGltcG9y dCB3cmFwcworaW1wb3J0IGpzb24KKworCitjbGFzcyBUcmlnZ2VyTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKKyAgICAiIiIKKyAgICAgY2xhc3Mg VHJpZ2dlck1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSkKKworICAgICAg ICBBIG1vZHVsZSBjbGFzcyBmb3IgVHJpZ2dlciBub2RlIGRlcml2ZWQgZnJv bSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1ldGhvZHM6CisgICAg LS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg ICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBUcmlnZ2Vy IGFuZCBpdCdzIGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNl ZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUuCisK KyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3ZlcnJp ZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMg bGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExv YWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHRyaWdnZXIsIHdoZW4gYW55IG9m IHRoZSBzZXJ2ZXIgbm9kZSBpcworICAgICAgICBpbml0aWFsaXplZC4KKyAg ICAiIiIKKworICAgIE5PREVfVFlQRSA9ICd0cmlnZ2VyJworICAgIENPTExF Q1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJUcmlnZ2VycyIpCisKKyAgICBkZWYg X19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIi CisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIFRy aWdnZXJNb2R1bGUgYW5kIGl0J3MgYmFzZSBtb2R1bGUuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgICphcmdzOgorICAgICAgICAgICAgKiprd2Fy Z3M6CisgICAgICAgICIiIgorICAgICAgICBzZWxmLm1pbl92ZXIgPSBOb25l CisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKKyAgICAgICAgc3VwZXIo VHJpZ2dlck1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdz KQorCisgICAgZGVmIEJhY2tlbmRTdXBwb3J0ZWQoc2VsZiwgbWFuYWdlciwg Kiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGlzIG1v ZHVsZSBpZiB2aWQgaXMgdmlldywgd2Ugd2lsbCBub3QgbG9hZCBpdCB1bmRl cgorICAgICAgICBtYXRlcmlhbCB2aWV3CisgICAgICAgICIiIgorICAgICAg ICBpZiBzdXBlcihUcmlnZ2VyTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9y dGVkKG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBt YW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAg ICAgICAjIElmIERCIGlzIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJy b3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IGNvbm4uY29ubmVj dGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9y ZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2Vy dmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiAndmlkJyBub3Qg aW4ga3dhcmdzOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAg ICAgICAgICAgIHRlbXBsYXRlX3BhdGggPSAndHJpZ2dlci9zcWwvOS4xX3Bs dXMnCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oCisgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVfcGF0aCwgJ2JhY2tl bmRfc3VwcG9ydC5zcWwnXSksIHZpZD1rd2FyZ3NbJ3ZpZCddKQorICAgICAg ICAgICAgc3RhdHVzLCByZXMgPSBjb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgICMgY2hlY2sgaWYgYW55IGVycm9ycworICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAg ICMgQ2hlY2sgdmlkIGlzIHZpZXcgbm90IG1hdGVyaWFsIHZpZXcKKyAgICAg ICAgICAgICMgdGhlbiB0cnVlLCBvdGhld2lzZSBmYWxzZQorICAgICAgICAg ICAgcmV0dXJuIHJlcworCisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAg ICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgICMg VE9ETzo6CisgICAgICAgIFdlIGNhbiBoYXZlIGZvbGxvd2luZyBhcmd1bWVu dHMgZm9yIGRpZmZlcmVudCB0eXBlIG9mIHBhcmVudHMuCisgICAgICAgIGku ZS4KKyAgICAgICAgdGlkIC0gZm9yIHRhYmxlcworICAgICAgICB2aWQgLSBm b3IgbWF0ZXJpYWxpemVkIHZpZXdzCisgICAgICAgICIiIgorICAgICAgICBh c3NlcnQoJ3RpZCcgaW4ga3dhcmdzIG9yICd2aWQnIGluIGt3YXJncykKKyAg ICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25f bm9kZSgKKyAgICAgICAgICBrd2FyZ3NbJ3RpZCddIGlmICd0aWQnIGluIGt3 YXJncyBlbHNlIGt3YXJnc1sndmlkJ10KKyAgICAgICAgICApCisKKyAgICBA cHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAg ICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBzZXJ2 ZXIsIHdoZW4gYW55IG9mIHRoZSBzZXJ2ZXItZ3JvdXAgbm9kZSBpcworICAg ICAgICBpbml0aWFsaXplZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy biBkYXRhYmFzZS5EYXRhYmFzZU1vZHVsZS5OT0RFX1RZUEUKKworICAgIEBw cm9wZXJ0eQorICAgIGRlZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIG5vZGUgYXMgYSBsZWFmIG5v ZGUKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBA cHJvcGVydHkKKyAgICBkZWYgY3Nzc25pcHBldHMoc2VsZik6CisgICAgICAg ICIiIgorICAgICAgICBSZXR1cm5zIGEgc25pcHBldCBvZiBjc3MgdG8gaW5j bHVkZSBpbiB0aGUgcGFnZQorICAgICAgICAiIiIKKyAgICAgICAgc25pcHBl dHMgPSBbCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgICAgICAgICAidHJpZ2dlci9jc3MvdHJpZ2dlci5jc3MiLAor ICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9c2VsZi5ub2RlX3R5cGUK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIF0KKwor ICAgICAgICBmb3Igc3VibW9kdWxlIGluIHNlbGYuc3VibW9kdWxlczoKKyAg ICAgICAgICAgIHNuaXBwZXRzLmV4dGVuZChzdWJtb2R1bGUuY3Nzc25pcHBl dHMpCisKKyAgICAgICAgcmV0dXJuIHNuaXBwZXRzCisKK2JsdWVwcmludCA9 IFRyaWdnZXJNb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgVHJpZ2dlclZp ZXcoUEdDaGlsZE5vZGVWaWV3KToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNz IGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHJvdXRlcyBmb3IgVHJp Z2dlciBub2RlCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAq IF9faW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0 byBpbml0aWFsaXplIHRoZSBUcmlnZ2VyVmlldyBhbmQgaXQncyBiYXNlIHZp ZXcuCisKKyAgICAqIG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJvcGVy dHkgZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5v ZGUuCisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIg b3duIGxvZ2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Ig d2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlv biBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMK KyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0 aWVzIHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVu Y3Rpb24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgVHJpZ2dlciBub2RlcyB3 aXRoaW4gdGhhdAorICAgICAgY29sbGVjdGlvbi4KKworICAgICogbm9kZXMo KQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXNlZCB0byBjcmVhdGUg YWxsIHRoZSBjaGlsZCBub2RlIHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxl Y3Rpb24sIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRoZSBUcmlnZ2VyIG5v ZGUuCisKKyAgICAqIHByb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg dGlkLCB0cmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0 aGUgcHJvcGVydGllcyBvZiB0aGUgc2VsZWN0ZWQgVHJpZ2dlciBub2RlCisK KyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIG5ldyBUcmlnZ2Vy IG9iamVjdAorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg dGlkLCB0cmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRl IHRoZSBkYXRhIGZvciB0aGUgc2VsZWN0ZWQgVHJpZ2dlciBub2RlCisKKyAg ICAqIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgc2NpZCwgdGlkLCB0cmlkKToK KyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIFRyaWdnZXIg b2JqZWN0CisKKyAgICAqIGVuYWJsZShzZWxmLCBnaWQsIHNpZCwgc2NpZCwg dGlkLCB0cmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGVuYWJs ZS9kaXNhYmxlIFRyaWdnZXIgb2JqZWN0CisKKyAgICAqIG1zcWwoZ2lkLCBz aWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlkKQorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNl bGVjdGVkCisgICAgICAgIFRyaWdnZXIgbm9kZQorCisgICAgKiBnZXRfc3Fs KGRhdGEsIHNjaWQsIHRpZCwgdHJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlv biB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICog c3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAgICAt IFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgdG8gc2hvdyBpdCBp biBzcWwgcGFuZSBmb3IgdGhlCisgICAgICAgIHNlbGVjdGVkIFRyaWdnZXIg bm9kZS4KKworICAgICogZGVwZW5kZW5jeShnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIHRyaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu ZXJhdGUgZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4gZGVwZW5kZW5jeQor ICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgVHJpZ2dlciBub2RlLgor CisgICAgKiBkZXBlbmRlbnQoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0 cmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIGRl cGVuZGVudCBsaXN0IHRvIHNob3cgaXQgaW4gZGVwZW5kZW50CisgICAgICAg IHBhbmUgZm9yIHRoZSBzZWxlY3RlZCBUcmlnZ2VyIG5vZGUuCisKKyAgICAq IGdldF90cmlnZ2VyX2Z1bmN0aW9ucyhnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQsIHRyaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJu IGxpc3Qgb2YgdHJpZ2dlciBmdW5jdGlvbnMgYXZhaWxhYmxlCisgICAgICAg IHZpYSBBSkFYIHJlc3BvbnNlCisKKyAgICAqIF9jb2x1bW5fZGV0YWlscyh0 aWQsIGNsaXN0KTo6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRj aCB0aGUgY29sdW1ucyBmb3IgdHJpZ2dlcgorICAgICIiIgorCisgICAgbm9k ZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lk cyA9IFsKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lk J30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9 LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfSwK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9LAor ICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICd0aWQnfQorICAg ICAgICAgICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgICAgIHsndHlwZSc6 ICdpbnQnLCAnaWQnOiAndHJpZCd9CisgICAgICAgICAgICBdCisKKyAgICBv cGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAg ICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUn LCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAnbGlz dCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAgICdk ZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAnY2hp bGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4nfV0sCisgICAgICAgICdub2Rl cyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAg ICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwn OiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAg ICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAg J2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAg ICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisg ICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVf anMnfV0sCisgICAgICAgICdnZXRfdHJpZ2dlcmZ1bmN0aW9ucyc6IFt7J2dl dCc6ICdnZXRfdHJpZ2dlcl9mdW5jdGlvbnMnfSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRfdHJpZ2dlcl9mdW5jdGlv bnMnfV0sCisgICAgICAgICdlbmFibGUnOiBbeydwdXQnOiAnZW5hYmxlX2Rp c2FibGVfdHJpZ2dlcid9XQorICAgIH0pCisKKyAgICBkZWYgY2hlY2tfcHJl Y29uZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNo ZWNrcworICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5u aW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAgICBtYW5h Z2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgor ICAgICAgICAiIiIKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiB3 cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAjIEhlcmUgYXJn c1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNp ZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAg ICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVS KS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICAgICAga3dhcmdz WydzaWQnXQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5jb25u ID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10p CisgICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1 cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IHNlbGYu Y29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJl Y29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgICAgICBnZXR0 ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9u IHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICMg V2UgbmVlZCBkYXRsYXN0c3lzb2lkIHRvIGNoZWNrIGlmIGN1cnJlbnQgdHJp Z2dlciBpcyBzeXN0ZW0gdHJpZ2dlcgorICAgICAgICAgICAgc2VsZi5kYXRs YXN0c3lzb2lkID0gc2VsZi5tYW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQn XV1bJ2RhdGxhc3RzeXNvaWQnXQorCisgICAgICAgICAgICAjIHdlIHdpbGwg c2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAgICAgICAg ICBzZWxmLnRlbXBsYXRlX3BhdGggPSAndHJpZ2dlci9zcWwvOS4xX3BsdXMn CisgICAgICAgICAgICAjIFN0b3JlIHNlcnZlciB0eXBlCisgICAgICAgICAg ICBzZWxmLnNlcnZlcl90eXBlID0gc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBl CisgICAgICAgICAgICAjIFdlIG5lZWQgcGFyZW50J3MgbmFtZSBlZyB0YWJs ZSBuYW1lIGFuZCBzY2hlbWEgbmFtZQorICAgICAgICAgICAgIyB3aGVuIHdl IGNyZWF0ZSBuZXcgdHJpZ2dlciBpbiB1cGRhdGUgd2UgY2FuIGZldGNoIGl0 IHVzaW5nCisgICAgICAgICAgICAjIHByb3BlcnR5IHNxbAorICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdnZXRfcGFyZW50LnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aWQ9a3dhcmdzWyd0aWQnXSkKKyAgICAg ICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJy YXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJzZXQpCisKKyAgICAgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cydd OgorICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hID0gcm93WydzY2hlbWEn XQorICAgICAgICAgICAgICAgIHNlbGYudGFibGUgPSByb3dbJ3RhYmxlJ10K KworICAgICAgICAgICAgIyBIZXJlIHdlIGFyZSBzdG9yaW5nIHRyaWdnZXIg ZGVmaW5pdGlvbgorICAgICAgICAgICAgIyBXZSB3aWxsIHVzZSBpdCB0byBj aGVjayB0cmlnZ2VyIHR5cGUgZGVmaW5pdGlvbgorICAgICAgICAgICAgc2Vs Zi50cmlnZ2VyX2RlZmluaXRpb24gPSB7CisgICAgICAgICAgICAgICAgJ1RS SUdHRVJfVFlQRV9ST1cnOiAgICAgICAgICgxIDw8IDApLAorICAgICAgICAg ICAgICAgICdUUklHR0VSX1RZUEVfQkVGT1JFJzogICAgICAoMSA8PCAxKSwK KyAgICAgICAgICAgICAgICAnVFJJR0dFUl9UWVBFX0lOU0VSVCc6ICAgICAg KDEgPDwgMiksCisgICAgICAgICAgICAgICAgJ1RSSUdHRVJfVFlQRV9ERUxF VEUnOiAgICAgICgxIDw8IDMpLAorICAgICAgICAgICAgICAgICdUUklHR0VS X1RZUEVfVVBEQVRFJzogICAgICAoMSA8PCA0KSwKKyAgICAgICAgICAgICAg ICAnVFJJR0dFUl9UWVBFX1RSVU5DQVRFJzogICAgKDEgPDwgNSksCisgICAg ICAgICAgICAgICAgJ1RSSUdHRVJfVFlQRV9JTlNURUFEJzogICAgICgxIDw8 IDYpCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmKCph cmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfdHJpZ2dlcl9mdW5j dGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlkPU5v bmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHJldHVybiBsaXN0IG9mIHRyaWdnZXIgZnVuY3Rpb25zIGF2YWlsYWJsZQor ICAgICAgICB2aWEgQUpBWCByZXNwb25zZQorICAgICAgICAiIiIKKyAgICAg ICAgcmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorCisgICAg ICAgICMgVE9ETzogUkVNT1ZFIFRydWUgQ29uZGl0aW9uICwgaXQncyBqdXN0 IGZvciB0ZXN0aW5nCisgICAgICAgICMgSWYgc2VydmVyIHR5cGUgaXMgRURC LVBQQVMgdGhlbiB3ZSBhbHNvIG5lZWQgdG8gYWRkCisgICAgICAgICMgaW5s aW5lIGVkYi1zcGwgYWxvbmcgd2l0aCBvcHRpb25zIGZldGNoZWQgYnkgYmVs b3cgc3FsCisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAncHBh cyc6CisgICAgICAgICAgICByZXMuYXBwZW5kKHsKKyAgICAgICAgICAgICAg ICAnbGFiZWwnOiAnSW5saW5lIEVEQi1TUEwnLAorICAgICAgICAgICAgICAg ICd2YWx1ZSc6ICdJbmxpbmUgRURCLVNQTCcKKyAgICAgICAgICAgICAgICB9 KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90cmln Z2VyZnVuY3Rpb25zLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaG93X3N5c3RlbV9vYmplY3RzPXNlbGYuYmx1ZXByaW50 LnNob3dfc3lzdGVtX29iamVjdHMKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxm LmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHJlcy5hcHBl bmQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydsYWJlbCc6IHJv d1sndGZ1bmN0aW9ucyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAndmFsdWUnOiByb3dbJ3RmdW5jdGlvbnMnXX0KKyAgICAgICAgICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAg ICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAg ICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlz dChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxpc3QgYWxs IHRoZSB0cmlnZ2VyIG5vZGVzIHdpdGhpbiB0aGF0IGNvbGxlY3Rpb24uCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIGdyb3Vw IElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAg ZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElE CisgICAgICAgICAgICB0aWQ6IFRhYmxlIElECisKKyAgICAgICAgUmV0dXJu czoKKyAgICAgICAgICAgIEpTT04gb2YgYXZhaWxhYmxlIHRyaWdnZXIgbm9k ZXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3Fs J10pLCB0aWQ9dGlkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNo aWxkIG5vZGUgd2l0aGluIHRoYXQgY29sbGVjdGlvbi4KKyAgICAgICAgSGVy ZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIHRyaWdnZXIgbm9kZS4KKworICAg ICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQK KyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElECisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAg ICAgICAgICAgIHRpZDogVGFibGUgSUQKKworICAgICAgICBSZXR1cm5zOgor ICAgICAgICAgICAgSlNPTiBvZiBhdmFpbGFibGUgdHJpZ2dlciBjaGlsZCBu b2RlcworICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ25vZGVzLnNxbCddKSwgdGlkPXRpZCkKKyAgICAgICAgc3RhdHVzLCBy c2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgZm9yIHJv dyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5kKAor ICAgICAgICAgICAgICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9i cm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICByb3dbJ29p ZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICBpY29uPSJpY29uLXRyaWdnZXIiIGlmIHJvd1snaXNfZW5hYmxl X3RyaWdnZXInXQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAiaWNv bi10cmlnZ2VyLWJhZCIKKyAgICAgICAgICAgICAgICAgICAgKSkKKworICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICAgICApCisKKyAgICBkZWYgX2NvbHVtbl9kZXRhaWxzKHNl bGYsIHRpZCwgY2xpc3QpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbmFsIHdpbGwgZmV0Y2ggbGlzdCBvZiBjb2x1bW4gZm9yIHRyaWdn ZXIKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgdGlkOiBUYWJsZSBP SUQKKyAgICAgICAgICAgIGNsaXN0OiBMaXN0IG9mIGNvbHVtbnMKKworICAg ICAgICBSZXR1cm5zOgorICAgICAgICAgICAgVXBkYXRlZCBwcm9wZXJ0aWVz IGRhdGEgd2l0aCBjb2x1bW4KKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2dldF9jb2x1bW5zLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRpZD10aWQsIGNsaXN0PWNsaXN0KQorICAgICAgICBzdGF0dXMs IHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKyAgICAgICAgIyAndGdh dHRyJyBjb250YWlucyBsaXN0IG9mIGNvbHVtbnMgZnJvbSB0YWJsZSB1c2Vk IGluIHRyaWdnZXIKKyAgICAgICAgY29sdW1ucyA9IFtdCisKKyAgICAgICAg Zm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICBjb2x1bW5z LmFwcGVuZCh7J2NvbHVtbic6IHJvd1snbmFtZSddfSkKKworICAgICAgICBy ZXR1cm4gY29sdW1ucworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCwgdHJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2VsZWN0ZWQgdHJp Z2dlciBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQK KyAgICAgICAgICAgIGRpZDogIERhdGFiYXNlIElECisgICAgICAgICAgICBz Y2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAor ICAgICAgICAgICAgdGlkOiBUYWJsZSBJRAorICAgICAgICAgICAgdHJpZDog VHJpZ2dlciBJRAorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBK U09OIG9mIHNlbGVjdGVkIHRyaWdnZXIgbm9kZQorICAgICAgICAiIiIKKwor ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aWQ9dGlkLCB0cmlkPXRyaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0 bGFzdHN5c29pZCkKKworICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAjIE1ha2luZyBjb3B5IG9mIG91dHB1 dCBmb3IgZnV0dXJlIHVzZQorICAgICAgICBkYXRhID0gZGljdChyZXNbJ3Jv d3MnXVswXSkKKyAgICAgICAgaWYgZGF0YVsndGduYXJncyddID4gMToKKyAg ICAgICAgICAgICMgV2Uga25vdyB0aGF0IHRyaWdnZXIgaGFzIG1vcmUgdGhh biAxIGFyZ3VtZW50cywgbGV0J3Mgam9pbiB0aGVtCisgICAgICAgICAgICAj IGFuZCBjb252ZXJ0IGl0IGFzIHN0cmluZworICAgICAgICAgICAgZGF0YVsn dGdhcmdzJ10gPSAnLCAnLmpvaW4oZGF0YVsndGdhcmdzJ10pCisKKyAgICAg ICAgaWYgbGVuKGRhdGFbJ3RnYXR0ciddKSA+IDE6CisgICAgICAgICAgICBj b2x1bW5zID0gJywgJy5qb2luKGRhdGFbJ3RnYXR0ciddLnNwbGl0KCcgJykp CisgICAgICAgICAgICBkYXRhWydjb2x1bW5zJ10gPSBzZWxmLl9jb2x1bW5f ZGV0YWlscyh0aWQsIGNvbHVtbnMpCisKKyAgICAgICAgZGF0YSA9IF90cmln Z2VyX2RlZmluaXRpb24oZGF0YSkKKworICAgICAgICByZXR1cm4gYWpheF9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1kYXRhLAorICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZXMgbmV3IHRoZSB0cmln Z2VyIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAor ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6 IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFRhYmxlIElECisgICAgICAg ICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3Qu Zm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRh dGEuZGVjb2RlKCkKKyAgICAgICAgKQorICAgICAgICByZXF1aXJlZF9hcmdz ID0geworICAgICAgICAgICAgJ25hbWUnOiAnTmFtZScsCisgICAgICAgICAg ICAndGZ1bmN0aW9uJzogJ1RyaWdnZXIgZnVuY3Rpb24nCisgICAgICAgIH0K KworICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAg ICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWNj ZXNzPTAsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0 ZXh0KCJDb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVz KS4iICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1 aXJlZF9hcmdzW2FyZ10pCisgICAgICAgICAgICAgICAgICAgICAgICApCisK KyAgICAgICAgIyBBZGRpbmcgcGFyZW50IGludG8gZGF0YSBkaWN0LCB3aWxs IGJlIHVzaW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNxbAorICAgICAgICBkYXRh WydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCisgICAgICAgIGRhdGFbJ3RhYmxl J10gPSBzZWxmLnRhYmxlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIHdlIG5lZWQgb2lk IHRvIHRvIGFkZCBvYmplY3QgaW4gdHJlZSBhdCBicm93c2VyCisgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2dldF9vaWQuc3FsJ10pLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRpZD10aWQsIGRhdGE9ZGF0YSkKKyAgICAg ICAgICAgIHN0YXR1cywgdHJpZCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 dGlkKQorCisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAg ICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJf bm9kZSgKKyAgICAgICAgICAgICAgICAgICAgdHJpZCwKKyAgICAgICAgICAg ICAgICAgICAgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFt ZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLXRyaWdnZXIi CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlcyBleGlzdGluZyB0aGUg dHJpZ2dlciBvYmplY3QKKworICAgICAgICAgQXJnczoKKyAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgc2lkOiBTZXJ2ZXIg SUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICBz Y2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlkOiBUYWJsZSBJRAorICAg ICAgICAgICB0cmlkOiBUcmlnZ2VyIElECisgICAgICAgICIiIgorICAgICAg ICAjIEJlbG93IHdpbGwgZGVjaWRlIGlmIGl0J3Mgc2ltcGxlIGRyb3Agb3Ig ZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAorICAgICAgICBpZiBzZWxmLmNtZCA9 PSAnZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNhc2NhZGUg b3BlcmF0aW9uCisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1ZQorICAgICAg ICBlbHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNlCisKKyAgICAg ICAgdHJ5OgorICAgICAgICAgICAgIyBXZSB3aWxsIGZpcnN0IGZldGNoIHRo ZSB0cmlnZ2VyIG5hbWUgZm9yIGN1cnJlbnQgcmVxdWVzdAorICAgICAgICAg ICAgIyBzbyB0aGF0IHdlIGNyZWF0ZSB0ZW1wbGF0ZSBmb3IgZHJvcHBpbmcg dHJpZ2dlcgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlk LCB0cmlkPXRyaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQpCisKKyAgICAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICBkYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkK KworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1z ZWxmLmNvbm4sIGNhc2NhZGU9Y2FzY2FkZSkKKyAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4 dCgiVHJpZ2dlciBpcyBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAgZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IHRyaWQsCisgICAgICAg ICAgICAgICAgICAgICd0aWQnOiB0aWQKKyAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl OgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQs IHRyaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3 aWxsIHVwZGF0ZXMgZXhpc3RpbmcgdGhlIHRyaWdnZXIgb2JqZWN0CisKKyAg ICAgICAgIEFyZ3M6CisgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElE CisgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSUQKKyAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAg ICAgICAgIHRpZDogVGFibGUgSUQKKyAgICAgICAgICAgdHJpZDogVHJpZ2dl ciBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9y bSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0 YS5kZWNvZGUoKSkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBTUUwg PSBzZWxmLmdldF9zcWwoc2NpZCwgdGlkLCB0cmlkLCBkYXRhKQorICAgICAg ICAgICAgaWYgU1FMIGFuZCBTUUwuc3RyaXAoJ1xuJykgYW5kIFNRTC5zdHJp cCgnICcpOgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0i VHJpZ2dlciB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17 CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiB0cmlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ3RpZCc6IHRpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICdzY2lkJzogc2NpZAorICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAg IGluZm89Ik5vdGhpbmcgdG8gdXBkYXRlIiwKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiB0cmlk LAorICAgICAgICAgICAgICAgICAgICAgICAgJ3RpZCc6IHRpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZAorICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lkLCBk aWQsIHNjaWQsIHRpZCwgdHJpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZXMgbW9kaWZpZWQgc3Fs IGZvciB0cmlnZ2VyIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAgICAg ICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6IFNl cnZlciBJRAorICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAg ICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFRhYmxlIElE CisgICAgICAgICAgIHRyaWQ6IFRyaWdnZXIgSUQgKFdoZW4gd29ya2luZyB3 aXRoIGV4aXN0aW5nIHRyaWdnZXIpCisgICAgICAgICIiIgorICAgICAgICBk YXRhID0gZGljdCgpCisgICAgICAgIGZvciBrLCB2IGluIHJlcXVlc3QuYXJn cy5pdGVtcygpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg IGRhdGFba10gPSBqc29uLmxvYWRzKHYpCisgICAgICAgICAgICBleGNlcHQg VmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgorCisg ICAgICAgICMgQWRkaW5nIHBhcmVudCBpbnRvIGRhdGEgZGljdCwgd2lsbCBi ZSB1c2luZyBpdCB3aGlsZSBjcmVhdGluZyBzcWwKKyAgICAgICAgZGF0YVsn c2NoZW1hJ10gPSBzZWxmLnNjaGVtYQorICAgICAgICBkYXRhWyd0YWJsZSdd ID0gc2VsZi50YWJsZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNR TCA9IHNlbGYuZ2V0X3NxbChzY2lkLCB0aWQsIHRyaWQsIGRhdGEpCisKKyAg ICAgICAgICAgIGlmIFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwu c3RyaXAoJyAnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1TUUws CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgZGVmIGdldF9zcWwoc2VsZiwg c2NpZCwgdGlkLCB0cmlkLCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5yYXRlIHNxbCBmcm9tIG1vZGVsIGRh dGEKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHRyaWQgaXMgbm90IE5vbmU6 CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQsIHRyaWQ9 dHJpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRs YXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKworICAgICAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKwor ICAgICAgICAgICAgIyBJZiBuYW1lIGlzIG5vdCBwcmVzZW50IGluIGRhdGEg dGhlbgorICAgICAgICAgICAgIyB3ZSB3aWxsIGZldGNoIGl0IGZyb20gb2xk IGRhdGEsIHdlIGFsc28gbmVlZCBzY2hlbWEgJiB0YWJsZSBuYW1lCisgICAg ICAgICAgICBpZiAnbmFtZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAg ICAgZGF0YVsnbmFtZSddID0gb2xkX2RhdGFbJ25hbWUnXQorCisgICAgICAg ICAgICBpZiBvbGRfZGF0YVsndGduYXJncyddID4gMToKKyAgICAgICAgICAg ICAgICAjIFdlIGtub3cgdGhhdCB0cmlnZ2VyIGhhcyBtb3JlIHRoYW4gMSBh cmd1bWVudHMsIGxldCdzIGpvaW4gdGhlbQorICAgICAgICAgICAgICAgIG9s ZF9kYXRhWyd0Z2FyZ3MnXSA9ICcsICcuam9pbihvbGRfZGF0YVsndGdhcmdz J10pCisKKyAgICAgICAgICAgIGlmIGxlbihvbGRfZGF0YVsndGdhdHRyJ10p ID4gMToKKyAgICAgICAgICAgICAgICBjb2x1bW5zID0gJywgJy5qb2luKG9s ZF9kYXRhWyd0Z2F0dHInXS5zcGxpdCgnICcpKQorICAgICAgICAgICAgICAg IG9sZF9kYXRhWydjb2x1bW5zJ10gPSBzZWxmLl9jb2x1bW5fZGV0YWlscyh0 aWQsIGNvbHVtbnMpCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0gX3RyaWdn ZXJfZGVmaW5pdGlvbihvbGRfZGF0YSkKKworICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9sZF9kYXRhLCBjb25uPXNlbGYu Y29ubgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIHJlcXVpcmVkX2FyZ3MgPSB7CisgICAgICAgICAgICAgICAgJ25h bWUnOiAnTmFtZScsCisgICAgICAgICAgICAgICAgJ3RmdW5jdGlvbic6ICdU cmlnZ2VyIGZ1bmN0aW9uJworICAgICAgICAgICAgfQorCisgICAgICAgICAg ICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAgICAg aWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICByZXR1 cm4gZ2V0dGV4dCgnLS0gaW5jb21wbGV0ZSBkZWZpbml0aW9uJykKKworICAg ICAgICAgICAgIyBJZiB0aGUgcmVxdWVzdCBmb3IgbmV3IG9iamVjdCB3aGlj aCBkbyBub3QgaGF2ZSBkaWQKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRl LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAgICByZXR1cm4gU1FM CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIHRyaWQpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlcyByZXZl cnNlIGVuZ2luZWVyZWQgc3FsIGZvciB0cmlnZ2VyIG9iamVjdAorCisgICAg ICAgICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAor ICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6IERh dGFiYXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAg ICAgICB0aWQ6IFRhYmxlIElECisgICAgICAgICAgIHRyaWQ6IFRyaWdnZXIg SUQKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGlkPXRpZCwgdHJpZD10cmlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5k YXRsYXN0c3lzb2lkKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZGF0YSA9 IGRpY3QocmVzWydyb3dzJ11bMF0pCisgICAgICAgICAgICAjIEFkZGluZyBw YXJlbnQgaW50byBkYXRhIGRpY3QsIHdpbGwgYmUgdXNpbmcgaXQgd2hpbGUg Y3JlYXRpbmcgc3FsCisgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHNl bGYuc2NoZW1hCisgICAgICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50 YWJsZQorCisgICAgICAgICAgICBpZiBkYXRhWyd0Z25hcmdzJ10gPiAxOgor ICAgICAgICAgICAgICAgICMgV2Uga25vdyB0aGF0IHRyaWdnZXIgaGFzIG1v cmUgdGhhbiAxIGFyZ3VtZW50cywgbGV0J3Mgam9pbiB0aGVtCisgICAgICAg ICAgICAgICAgZGF0YVsndGdhcmdzJ10gPSAnLCAnLmpvaW4oZGF0YVsndGdh cmdzJ10pCisKKyAgICAgICAgICAgIGlmIGxlbihkYXRhWyd0Z2F0dHInXSkg PiAxOgorICAgICAgICAgICAgICAgIGNvbHVtbnMgPSAnLCAnLmpvaW4oZGF0 YVsndGdhdHRyJ10uc3BsaXQoJyAnKSkKKyAgICAgICAgICAgICAgICBkYXRh Wydjb2x1bW5zJ10gPSBzZWxmLl9jb2x1bW5fZGV0YWlscyh0aWQsIGNvbHVt bnMpCisKKyAgICAgICAgICAgIGRhdGEgPSBfdHJpZ2dlcl9kZWZpbml0aW9u KGRhdGEpCisKKyAgICAgICAgICAgIFNRTCA9IHNlbGYuZ2V0X3NxbChzY2lk LCB0aWQsIE5vbmUsIGRhdGEpCisKKyAgICAgICAgICAgIHNxbF9oZWFkZXIg PSAiLS0gVHJpZ2dlcjogezB9XG5cbi0tICIuZm9ybWF0KGRhdGFbJ25hbWUn XSkKKyAgICAgICAgICAgIHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0 ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAg ICAgICBTUUwgPSBzcWxfaGVhZGVyICsgJ1xuXG4nICsgU1FMLnN0cmlwKCdc bicpCisKKyAgICAgICAgICAgICMgSWYgdHJpZ2dlciBpcyBkaXNiYWxlZCB0 aGVuIGFkZCBzcWwgY29kZSBmb3IgdGhlIHNhbWUKKyAgICAgICAgICAgIGlm IG5vdCBkYXRhWydpc19lbmFibGVfdHJpZ2dlciddOgorICAgICAgICAgICAg ICAgIFNRTCArPSAnXG5cbicKKyAgICAgICAgICAgICAgICBTUUwgKz0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2VuYWJsZV9kaXNhYmxlX3RyaWdnZXIuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBjb25u PXNlbGYuY29ubikKKworICAgICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UocmVzcG9uc2U9U1FMKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBlbmFibGVfZGlzYWJsZV90cmlnZ2VyKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZW5hYmxlIE9SIGRpc2FibGUgdGhl IGN1cnJlbnQgdHJpZ2dlciBvYmplY3QKKworICAgICAgICAgQXJnczoKKyAg ICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgc2lk OiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgdGlkOiBUYWJs ZSBJRAorICAgICAgICAgICB0cmlkOiBUcmlnZ2VyIElECisgICAgICAgICIi IgorCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5m b3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisK KyAgICAgICAgIyBDb252ZXJ0IHN0ciAndHJ1ZScgdG8gYm9vbGVhbiB0eXBl CisgICAgICAgIGlzX2VuYWJsZV9mbGFnID0ganNvbi5sb2FkcyhkYXRhWydl bmFibGUnXSkKKworICAgICAgICB0cnk6CisKKyAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGlkPXRpZCwgdHJpZD10cmlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRs YXN0c3lzb2lkKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgb19kYXRhID0g ZGljdChyZXNbJ3Jvd3MnXVswXSkKKworICAgICAgICAgICAgIyBJZiBlbmFi bGUgaXMgc2V0IHRvIHRydWUgbWVhbnMgd2UgbmVlZCBTUUwgdG8gZW5hYmxl CisgICAgICAgICAgICAjIGN1cnJlbnQgdHJpZ2dlciB3aGljaCBpcyBkaXNh YmxlZCBhbHJlYWR5IHNvIHdlIG5lZWQgdG8KKyAgICAgICAgICAgICMgYWx0 ZXIgdGhlICdpc19lbmFibGVfdHJpZ2dlcicgZmxhZyBzbyB0aGF0IHdlIGNh biByZW5kZXIKKyAgICAgICAgICAgICMgY29ycmVjdCBTUUwgZm9yIG9wZXJh dGlvbgorICAgICAgICAgICAgb19kYXRhWydpc19lbmFibGVfdHJpZ2dlcidd ID0gaXNfZW5hYmxlX2ZsYWcKKworICAgICAgICAgICAgIyBBZGRpbmcgcGFy ZW50IGludG8gZGF0YSBkaWN0LCB3aWxsIGJlIHVzaW5nIGl0IHdoaWxlIGNy ZWF0aW5nIHNxbAorICAgICAgICAgICAgb19kYXRhWydzY2hlbWEnXSA9IHNl bGYuc2NoZW1hCisgICAgICAgICAgICBvX2RhdGFbJ3RhYmxlJ10gPSBzZWxm LnRhYmxlCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW5hYmxlX2Rpc2FibGVf dHJpZ2dlci5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YT1vX2RhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAgICAg ICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FM KQorCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBp bmZvPSJUcmlnZ2VyIHVwZGF0ZWQiLAorICAgICAgICAgICAgICAgIGRhdGE9 eworICAgICAgICAgICAgICAgICAgICAnaWQnOiB0cmlkLAorICAgICAgICAg ICAgICAgICAgICAndGlkJzogdGlkLAorICAgICAgICAgICAgICAgICAgICAn c2NpZCc6IHNjaWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAp CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVu ZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCB0cmlkKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBk ZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAgICBm b3IgdGhlIHRyaWdnZXIgbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDogVGFi bGUgSUQKKyAgICAgICAgICAgIHRyaWQ6IFRyaWdnZXIgSUQKKyAgICAgICAg IiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVw ZW5kZW50cygKKyAgICAgICAgICAgIHNlbGYuY29ubiwgdHJpZAorICAgICAg ICApCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAgICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgdHJpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW5j aWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhl IHRyaWdnZXIgbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDogVGFibGUgSUQK KyAgICAgICAgICAgIHRyaWQ6IFRyaWdnZXIgSUQKKworICAgICAgICAiIiIK KyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVu ZGVuY2llcygKKyAgICAgICAgICAgIHNlbGYuY29ubiwgdHJpZAorICAgICAg ICApCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAg ICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCitU cmlnZ2VyVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3N0YXRp Yy9pbWcvY29sbC10cmlnZ2VyLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90cmlnZ2Vycy9zdGF0aWMvaW1nL2NvbGwtdHJpZ2dlci5wbmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMC4uM2MzMzk0MDZmYTMyNWRhZDY3ZjU5MTQxYTZh MDhhNTMzNGRlYmNkYQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzUwCnpj bWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITczPyQjKWVGUEZ2NUFYP2Ix PTZraVBVPXJ3VD1NREJnYTV4UAp6XzhvdXd8TD4mI0EyWGp7Y1Ijdy1WQkl7 Kz9hUlppOTcoIyp4Q0UkX3VfVllabjhEJU1qV2kmS3Ylbio9NylYMTcKenZE P1hQSjBLJl4pNVM0Xzw5ZjB7a1djfnhiODBkeGh4NUA7UHIpKyotYlE5ai1t QW9Tdk5UVDNHK0Y5NkNEVHRVCnp5cyhnb0RedkdYZlZWZ0VzX1hZbWc3QHko KTZ3WW97RE18KlVtcVZVbzhyPkR2eTlYSW42IzN0N0hgY0dKPmxifgp6YHU2 VEBnPjVoOUcpNWRjdTtmU3MzcXc8dk0yZX5tZGtXQkkpZV9mO2w5YUBmUklC OG9SM09EKldNRjhaWWlPaXYKelU+SVUjVX1hKSNXbiF2clV9fE14Rno9bi1E aWpVNWA2LSFjbEBKWEVtUzdEKSloMVIzVylLYWhyaVpRcFlHQ2ttCkxePmJQ MGwrWGtLQVIlPzMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9zdGF0aWMvaW1n L3RyaWdnZXItYmFkLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmln Z2Vycy9zdGF0aWMvaW1nL3RyaWdnZXItYmFkLnBuZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwLi42Y2MyZmU5NmM4ZjIzNGE3MzY3MmNjNzNmZDI3MmExNWZj N2RlNGY5CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2MTAKemNtZUFTQE4/ KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiTWYmajZuZ1MwTFRHQDEq fDMjVS1CfW8lO1hkCnpAQmpiYmZCZzlNPi1VZkVLbVBwdGNrMCNpPnEkdlI4 NWt+dk07PHdIO0BJREJsY3l7Xj5oNjZ2R3Q7PyE9RiNaYgp6WntfN2orYFg1 cytfMkJxPjBAfCFMfHk7NHZhKVlRTVBLdnNfRTxaNzM9NGJqQEJoeGpHcEBT bFJBOSowK310bDIKejhLMEFxSzdAdzhfWENRMVNvRi1CdjJWfWsjS2UhJChI fXhXLXV3RSFiOVhtZXpoTG8heXwrP1JLTGk2c2VCWmdiCnp0PG97PktlWD19 UC1BZkxkbW8+N3VDOHpGPnxhfTBfJT1gMzw+S31zRENvVm5fZ2ZkJipYSEsw Mz1MbXVZZDdjQQp6ZDxZREQ9akhYKio9NDQpKkdueiE3cGtoeTYlXmgmSVVq TkpuKDU7R1R3WT1RUHBBMW4mb2g8O2Aye21MSmlDencKejxadT52TD4yPlM0 PXtFK25RYUdURWJ3JTM0M1c1O2QtZntkcCMmYioybGNaMW5zPVdyYDJMWFpA WX0hZ1pIJj1JCnpMUkEtKyNOVSFUX0R7cyFXc1kzT15VN2IwJXxUVSlpJTtm a2VBU1l9Xm9EUXdZMk5lVmQrZEcpYTxtREFzV3hUawp6XnMhN0BYPHwxKWFO Xm1nZmcwMVVeY0p9fll6QG1kKighZX10Tmc7LXVabyRQJjVDWjFQbkltcEp0 SDJtPyVJdTwKekA+TTVwJG9FLTF0bDMhP29GWnNgPU8obE4rY3dWJFBzK29l aUFUeF9vYlVefihFeE8tWUtkel5ObEljI3MjUzdQCnpEdik5QEdCN21NSDg5 cFN1bX58VXZOQU5jR08qTShGdGFpK3hjcUVJNXtpYzB7RktiSk81N1MyP0gw SFApV0cyQgpMPmdUZX5EV000Zkk3U0RBCgpsaXRlcmFsIDAKSGNtVj9kMDAw MDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dl cnMvc3RhdGljL2ltZy90cmlnZ2VyLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90cmlnZ2Vycy9zdGF0aWMvaW1nL3RyaWdnZXIucG5nCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjNiNDEzZTRhNjQ4Yzk5OWMwZGNjMDA1YWFhZjAy YTcxMGJlNDQxNGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyNAp6Y21l QVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE3Mz8kIyllRlBIRjNoKVZXMT02 a2lQVT1yd1Q9TURCc3NCSXoKent7TWdjfEJ1Pz11VHZqaV9CeWV7V1laJFVf NEF6JFk+MipqYS1HeDhXa0EpOEJ8KDB7Mz1ZcTNxeWFnYzFzOypiCnpLLXZT MC1BLW9QMFUzZHdFey03XypPTDwobkI3IWVJaHMlMjs1YiFLN30jTG88bEw7 I3Z0XjZQMkNaZUVLN0NTUgp6Nmo7cDY7am41KCtQT0tGb0kwRGJ1NC0qQ1RY dUsxSWNJfXBgWjxUUUpGN1hmVz0+KmE0cjU/PVJXSWFxWFhFc3YKeksqTG9f VHE4PFM1PSZDOGw4YUotNm9aazBwYG9zVXB7fGl9aD1IKmM1RSZZNDg8PCVj N0BWQlVUWSNiPUgkTnBhCnJ0ckRjY0stYSgkczMqazgqdmlEaiVEX3o5eiFh JEEpYiE5YktuKUNAdTZ7MS1vRCFNPDVoaWI2CgpsaXRlcmFsIDAKSGNtVj9k MDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJp Z2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvY3NzL3RyaWdnZXIuY3NzIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2Vy L2Nzcy90cmlnZ2VyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi44MTFjODM4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL2Nzcy90 cmlnZ2VyLmNzcwpAQCAtMCwwICsxLDIwIEBACisuaWNvbi1jb2xsLXRyaWdn ZXIgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05P REUtdHJpZ2dlci5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL2NvbGwtdHJpZ2dl ci5wbmcnICl9fScpICFpbXBvcnRhbnQ7CisgIGJhY2tncm91bmQtcmVwZWF0 OiBuby1yZXBlYXQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgdmVy dGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsKK30KKwor Lmljb24tdHJpZ2dlciB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgne3sg dXJsX2ZvcignTk9ERS10cmlnZ2VyLnN0YXRpYycsIGZpbGVuYW1lPSdpbWcv dHJpZ2dlci5wbmcnKSB9fScpICFpbXBvcnRhbnQ7CisgIGJhY2tncm91bmQt cmVwZWF0OiBuby1yZXBlYXQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsK KyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsK K30KKworLmljb24tdHJpZ2dlci1iYWQgeworICBiYWNrZ3JvdW5kLWltYWdl OiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtdHJpZ2dlci5zdGF0aWMnLCBmaWxl bmFtZT0naW1nL3RyaWdnZXItYmFkLnBuZycpIH19JykgIWltcG9ydGFudDsK KyAgYm9yZGVyLXJhZGl1czogMTBweAorfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL2pz L3RyaWdnZXIuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMv dGVtcGxhdGVzL3RyaWdnZXIvanMvdHJpZ2dlci5qcwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmRiY2Y4Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRl cy90cmlnZ2VyL2pzL3RyaWdnZXIuanMKQEAgLTAsMCArMSw1MzkgQEAKK2Rl ZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRl cnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3Nlcics CisgICAgICAgICdiYWNrZm9ybScsICdhbGVydGlmeScsICdwZ2FkbWluLmJy b3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rpb24oJCwgXywgUywgcGdBZG1p biwgcGdCcm93c2VyLCBCYWNrZm9ybSwgYWxlcnRpZnkpIHsKKworICBpZiAo IXBnQnJvd3Nlci5Ob2Rlc1snY29sbC10cmlnZ2VyJ10pIHsKKyAgICB2YXIg dHJpZ2dlcnMgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtdHJpZ2dl ciddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVu ZCh7CisgICAgICAgIG5vZGU6ICd0cmlnZ2VyJywKKyAgICAgICAgbGFiZWw6 ICd7eyBfKCdUcmlnZ2VycycpIH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwt dHJpZ2dlcicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdvaWQnLCAn ZGVzY3JpcHRpb24nXQorICAgICAgfSk7CisgIH07CisKKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ3RyaWdnZXInXSkgeworICAgIHBnQWRtaW4uQnJvd3Nl ci5Ob2Rlc1sndHJpZ2dlciddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0 ZW5kKHsKKyAgICAgIHBhcmVudF90eXBlOiBbJ3RhYmxlJywgJ3ZpZXcnLCAn bWF0ZXJpYWxpemVkX3ZpZXcnXSwKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTog Wydjb2xsLXRhYmxlJ10sCisgICAgICB0eXBlOiAndHJpZ2dlcicsCisgICAg ICBsYWJlbDogJ3t7IF8oJ1RyaWdnZXInKSB9fScsCisgICAgICBoYXNTUUw6 ICB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIEluaXQ6 IGZ1bmN0aW9uKCkgeworICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSByZWdp c3RyYXRpb24gb2YgbWVudXMgKi8KKyAgICAgICAgaWYgKHRoaXMuaW5pdGlh bGl6ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5p bml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAgcGdCcm93c2VyLmFkZF9t ZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdHJpZ2dlcl9vbl9j b2xsJywgbm9kZTogJ2NvbGwtdHJpZ2dlcicsIG1vZHVsZTogdGhpcywKKyAg ICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxi YWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdv cnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdUcmln Z2VyLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNv bi10cmlnZ2VyJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0 cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAg IH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdHJpZ2dlcicsIG5vZGU6 ICd0cmlnZ2VyJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6 IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9w cm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHBy aW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ1RyaWdnZXIuLi4nKSB9fScsCisg ICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXRyaWdnZXInLCBkYXRh OiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAg IGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV90cmlnZ2VyX29uVGFibGUnLCBub2RlOiAndGFibGUn LCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3Qn LCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMn LAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQs IGxhYmVsOiAne3sgXygnVHJpZ2dlci4uLicpIH19JywKKyAgICAgICAgICBp Y29uOiAnd2NUYWJJY29uIGljb24tdHJpZ2dlcicsIGRhdGE6IHthY3Rpb246 ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxlOiAn Y2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnZW5h YmxlX3RyaWdnZXInLCBub2RlOiAndHJpZ2dlcicsIG1vZHVsZTogdGhpcywK KyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNh bGxiYWNrOiAnZW5hYmxlX3RyaWdnZXInLAorICAgICAgICAgIGNhdGVnb3J5 OiAnY29ubmVjdCcsIHByaW9yaXR5OiAzLCBsYWJlbDogJ3t7IF8oJ0VuYWJs ZSB0cmlnZ2VyJykgfX0nLAorICAgICAgICAgIGljb246ICdmYSBmYS1jaGVj aycsIGVuYWJsZSA6ICdjYW5DcmVhdGVfd2l0aF90cmlnZ2VyX2VuYWJsZScK KyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2Rpc2FibGVfdHJpZ2dl cicsIG5vZGU6ICd0cmlnZ2VyJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAg IGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdk aXNhYmxlX3RyaWdnZXInLAorICAgICAgICAgIGNhdGVnb3J5OiAnZHJvcCcs IHByaW9yaXR5OiAzLCBsYWJlbDogJ3t7IF8oJ0Rpc2FibGUgdHJpZ2dlcicp IH19JywKKyAgICAgICAgICBpY29uOiAnZmEgZmEtdGltZXMnLCBlbmFibGUg OiAnY2FuQ3JlYXRlX3dpdGhfdHJpZ2dlcl9kaXNhYmxlJworICAgICAgICB9 LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3RyaWdnZXInLCBub2RlOiAn dmlldycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29i amVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVy dGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6ICd7eyBfKCdUcmlnZ2VyLi4uJykgfX0nLAorICAgICAg ICAgIGljb246ICd3Y1RhYkljb24gaWNvbi10cmlnZ2VyJywgZGF0YToge2Fj dGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFi bGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAg ICB9LAorICAgICAgY2FsbGJhY2tzOiB7CisgICAgICAgIC8qIEVuYWJsZSB0 cmlnZ2VyICovCisgICAgICAgIGVuYWJsZV90cmlnZ2VyOiBmdW5jdGlvbihh cmdzKSB7CisgICAgICAgICAgdmFyIGlucHV0ID0gYXJncyB8fCB7fTsKKyAg ICAgICAgICBvYmogPSB0aGlzLAorICAgICAgICAgIHQgPSBwZ0Jyb3dzZXIu dHJlZSwKKyAgICAgICAgICBpID0gaW5wdXQuaXRlbSB8fCB0LnNlbGVjdGVk KCksCisgICAgICAgICAgZCA9IGkgJiYgaS5sZW5ndGggPT0gMSA/IHQuaXRl bURhdGEoaSkgOiB1bmRlZmluZWQ7CisKKyAgICAgICAgICBpZiAoIWQpCisg ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICB2YXIgZGF0 YSA9IGQ7CisgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgIHVybDog b2JqLmdlbmVyYXRlX3VybChpLCAnZW5hYmxlJyAsIGQsIHRydWUpLAorICAg ICAgICAgICAgdHlwZTonUFVUJywKKyAgICAgICAgICAgIGRhdGE6IHsnZW5h YmxlJyA6IHRydWV9LAorICAgICAgICAgICAgZGF0YVR5cGU6ICJqc29uIiwK KyAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgeworICAgICAg ICAgICAgICBpZiAocmVzLnN1Y2Nlc3MgPT0gMSkgeworICAgICAgICAgICAg ICAgIGFsZXJ0aWZ5LnN1Y2Nlc3MoInt7IF8oJyIgKyByZXMuaW5mbyArICIn KSB9fSIpOworICAgICAgICAgICAgICAgIHQucmVtb3ZlSWNvbihpKTsKKyAg ICAgICAgICAgICAgICBkYXRhLmljb24gPSAnaWNvbi10cmlnZ2VyJzsKKyAg ICAgICAgICAgICAgICB0LmFkZEljb24oaSwge2ljb246IGRhdGEuaWNvbn0p OworICAgICAgICAgICAgICAgIHQudW5sb2FkKGkpOworICAgICAgICAgICAg ICAgIHQuc2V0SW5vZGUoaSk7CisgICAgICAgICAgICAgICAgdC5kZXNlbGVj dChpKTsKKyAgICAgICAgICAgICAgICAvLyBGZXRjaCB1cGRhdGVkIGRhdGEg ZnJvbSBzZXJ2ZXIKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0 aW9uKCkgeworICAgICAgICAgICAgICAgICAgdC5zZWxlY3QoaSk7CisgICAg ICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgICB9CisgICAgICAg ICAgICB9LAorICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKHhociwgc3Rh dHVzLCBlcnJvcikgeworICAgICAgICAgICAgICB0cnkgeworICAgICAgICAg ICAgICAgIHZhciBlcnIgPSAkLnBhcnNlSlNPTih4aHIucmVzcG9uc2VUZXh0 KTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyLnN1Y2Nlc3MgPT0gMCkgewor ICAgICAgICAgICAgICAgICAgbXNnID0gUygne3sgXygnICsgZXJyLmVycm9y bXNnICsgJyl9fScpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICBhbGVy dGlmeS5lcnJvcigie3sgXygnIiArIGVyci5lcnJvcm1zZyArICInKSB9fSIp OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSBjYXRjaCAo ZSkge30KKyAgICAgICAgICAgICAgdC51bmxvYWQoaSk7CisgICAgICAgICAg ICB9CisgICAgICAgICAgfSkKKyAgICAgICAgfSwKKyAgICAgICAgLyogRGlz YWJsZSB0cmlnZ2VyICovCisgICAgICAgIGRpc2FibGVfdHJpZ2dlcjogZnVu Y3Rpb24oYXJncykgeworICAgICAgICAgIHZhciBpbnB1dCA9IGFyZ3MgfHwg e307CisgICAgICAgICAgb2JqID0gdGhpcywKKyAgICAgICAgICB0ID0gcGdC cm93c2VyLnRyZWUsCisgICAgICAgICAgaSA9IGlucHV0Lml0ZW0gfHwgdC5z ZWxlY3RlZCgpLAorICAgICAgICAgIGQgPSBpICYmIGkubGVuZ3RoID09IDEg PyB0Lml0ZW1EYXRhKGkpIDogdW5kZWZpbmVkOworCisgICAgICAgICAgaWYg KCFkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAg dmFyIGRhdGEgPSBkOworICAgICAgICAgICQuYWpheCh7CisgICAgICAgICAg ICB1cmw6IG9iai5nZW5lcmF0ZV91cmwoaSwgJ2VuYWJsZScgLCBkLCB0cnVl KSwKKyAgICAgICAgICAgIHR5cGU6J1BVVCcsCisgICAgICAgICAgICBkYXRh OiB7J2VuYWJsZScgOiBmYWxzZX0sCisgICAgICAgICAgICBkYXRhVHlwZTog Impzb24iLAorICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzKSB7 CisgICAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcyA9PSAxKSB7CisgICAg ICAgICAgICAgICAgYWxlcnRpZnkuc3VjY2Vzcygie3sgXygnIiArIHJlcy5p bmZvICsgIicpIH19Iik7CisgICAgICAgICAgICAgICAgdC5yZW1vdmVJY29u KGkpOworICAgICAgICAgICAgICAgIGRhdGEuaWNvbiA9ICdpY29uLXRyaWdn ZXItYmFkJzsKKyAgICAgICAgICAgICAgICB0LmFkZEljb24oaSwge2ljb246 IGRhdGEuaWNvbn0pOworICAgICAgICAgICAgICAgIHQudW5sb2FkKGkpOwor ICAgICAgICAgICAgICAgIHQuc2V0SW5vZGUoaSk7CisgICAgICAgICAgICAg ICAgdC5kZXNlbGVjdChpKTsKKyAgICAgICAgICAgICAgICAvLyBGZXRjaCB1 cGRhdGVkIGRhdGEgZnJvbSBzZXJ2ZXIKKyAgICAgICAgICAgICAgICBzZXRU aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgdC5zZWxl Y3QoaSk7CisgICAgICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAg ICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXJyb3I6IGZ1bmN0 aW9uKHhociwgc3RhdHVzLCBlcnJvcikgeworICAgICAgICAgICAgICB0cnkg eworICAgICAgICAgICAgICAgIHZhciBlcnIgPSAkLnBhcnNlSlNPTih4aHIu cmVzcG9uc2VUZXh0KTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyLnN1Y2Nl c3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgbXNnID0gUygne3sgXygn ICsgZXJyLmVycm9ybXNnICsgJyl9fScpLnZhbHVlKCk7CisgICAgICAgICAg ICAgICAgICBhbGVydGlmeS5lcnJvcigie3sgXygnIiArIGVyci5lcnJvcm1z ZyArICInKSB9fSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgfSBjYXRjaCAoZSkge30KKyAgICAgICAgICAgICAgdC51bmxvYWQoaSk7 CisgICAgICAgICAgICB9CisgICAgICAgICAgfSkKKyAgICAgICAgfQorICAg ICAgfSwKKyAgICAgIGNhbkRyb3A6IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1h J10uY2FuQ2hpbGREcm9wLAorICAgICAgY2FuRHJvcENhc2NhZGU6IHBnQnJv d3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAorICAgICAgbW9k ZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAg ICAgIGRlZmF1bHRzOiB7CisgICAgICAgICAgbmFtZTogdW5kZWZpbmVkLAor CQkJCQlpc19yb3dfdHJpZ2dlcjogdHJ1ZQorICAgICAgICB9LAorICAgICAg ICBzY2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7 eyBfKCdOYW1lJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0 eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hlbWEnCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7IF8oJ09JRCcpIH19 JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ2ludCcsIGRp c2FibGVkOiB0cnVlLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ2lzX2VuYWJsZV90cmlnZ2VyJywgbGFiZWw6 J3t7IF8oJ0VuYWJsZSB0cmlnZ2VyPycpIH19JywKKyAgICAgICAgICB0eXBl OiAnc3dpdGNoJywgZGlzYWJsZWQ6ICdpblNjaGVtYScsIG1vZGU6IFsncHJv cGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnaXNfcm93 X3RyaWdnZXInLCBsYWJlbDone3sgXygnUm93IHRyaWdnZXInKSB9fScsCisg ICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIGdyb3VwOiAne3sgXygnRGVmaW5p dGlvbicpIH19JywKKyAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQn LCAncHJvcGVydGllcyddLAorICAgICAgICAgIGRlcHM6IFsnaXNfY29uc3Ry YWludF90cmlnZ2VyJ10sCisgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9u KG0pIHsKKyAgICAgICAgICAgIC8vIElmIGNvbnRyYWludCB0cmlnZ2VyIGlz IHNldCB0byBUcnVlIHRoZW4gcm93IHRyaWdnZXIgd2lsbAorICAgICAgICAg ICAgLy8gYXV0b21hdGljYWxseSBzZXQgdG8gVHJ1ZSBhbmQgYmVjb21lcyBk aXNhYmxlCisgICAgICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmlnZ2Vy ID0gbS5nZXQoJ2lzX2NvbnN0cmFpbnRfdHJpZ2dlcicpOworICAgICAgICAg ICAgaWYoIW0uaW5TY2hlbWFXaXRoTW9kZWxDaGVjay5hcHBseSh0aGlzLCBb bV0pKSB7CisgICAgICAgICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQoaXNf Y29uc3RyYWludF90cmlnZ2VyKSAmJgorICAgICAgICAgICAgICAgIGlzX2Nv bnN0cmFpbnRfdHJpZ2dlciA9PT0gdHJ1ZSkgeworICAgICAgICAgICAgICAg IC8vIGNoYW5nZSBpdCdzIG1vZGVsIHZhbHVlCisgICAgICAgICAgICAgICAg ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IG0uc2V0KCdpc19yb3dfdHJp Z2dlcicsIHRydWUpIH0sIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRGlz YmFsZSBpdAorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg ICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdpc19jb25zdHJhaW50X3RyaWdnZXInLCBsYWJlbDone3sgXygnQ29u c3RyYWludCB0cmlnZ2VyJykgfX0nLAorICAgICAgICAgIHR5cGU6ICdzd2l0 Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snLAorICAg ICAgICAgIG1vZGU6IFsnY3JlYXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10s CisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nCisg ICAgICAgIH0seworICAgICAgICAgIGlkOiAndGdkZWZlcnJhYmxlJywgbGFi ZWw6J3t7IF8oJ0RlZmVycmFibGUnKSB9fScsCisgICAgICAgICAgdHlwZTog J3N3aXRjaCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywKKyAg ICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcydd LAorICAgICAgICAgIGRlcHM6IFsnaXNfY29uc3RyYWludF90cmlnZ2VyJ10s CisgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAg ICAgIC8vIElmIGNvbnRyYWludCB0cmlnZ2VyIGlzIHNldCB0byBUcnVlIHRo ZW4gb25seSBlbmFibGUgaXQKKyAgICAgICAgICAgIHZhciBpc19jb25zdHJh aW50X3RyaWdnZXIgPSBtLmdldCgnaXNfY29uc3RyYWludF90cmlnZ2VyJyk7 CisgICAgICAgICAgICBpZighbS5pblNjaGVtYVdpdGhNb2RlbENoZWNrLmFw cGx5KHRoaXMsIFttXSkpIHsKKyAgICAgICAgICAgICAgICBpZighXy5pc1Vu ZGVmaW5lZChpc19jb25zdHJhaW50X3RyaWdnZXIpICYmCisgICAgICAgICAg ICAgICAgaXNfY29uc3RyYWludF90cmlnZ2VyID09PSB0cnVlKSB7CisgICAg ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1 bmN0aW9uKCkgeyBtLnNldCgndGdkZWZlcnJhYmxlJywgZmFsc2UpIH0sIDEw KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg ICAgICAvLyBEaXNiYWxlIGl0CisgICAgICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ3RnaW5pdGRlZmVycmVkJywgbGFiZWw6J3t7IF8o J0RlZmVycmVkJykgfX0nLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBn cm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAgbW9k ZTogWydjcmVhdGUnLCdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAg ICBkZXBzOiBbJ3RnZGVmZXJyYWJsZSddLAorICAgICAgICAgIGRpc2FibGVk OiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAvLyBJZiBjb250cmFpbnQg dHJpZ2dlciBpcyBzZXQgdG8gVHJ1ZSB0aGVuIG9ubHkgZW5hYmxlIGl0Cisg ICAgICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmlnZ2VyID0gbS5nZXQo J3RnZGVmZXJyYWJsZScpOworICAgICAgICAgICAgaWYoIW0uaW5TY2hlbWFX aXRoTW9kZWxDaGVjay5hcHBseSh0aGlzLCBbbV0pKSB7CisgICAgICAgICAg ICAgICAgaWYoIV8uaXNVbmRlZmluZWQoaXNfY29uc3RyYWludF90cmlnZ2Vy KSAmJgorICAgICAgICAgICAgICAgIGlzX2NvbnN0cmFpbnRfdHJpZ2dlciA9 PT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgbS5zZXQoJ3RnaW5pdGRlZmVy cmVkJywgZmFsc2UpIH0sIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEaXNiYWxlIGl0CisgICAgICAg ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAg ICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RmdW5jdGlvbics IGxhYmVsOid7eyBfKCdUcmlnZ2VyIEZ1bmN0aW9uJykgfX0nLAorICAgICAg ICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2Rl bENoZWNrJywKKyAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAn cHJvcGVydGllcyddLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScs CisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdXJs OiAnZ2V0X3RyaWdnZXJmdW5jdGlvbnMnCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAndGdhcmdzJywgbGFiZWw6J3t7IF8oJ0FyZ3VtZW50cycpIH19 JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdE ZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jyxtb2Rl OiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLCBkZXBzOiBbJ3Rm dW5jdGlvbiddLAorICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7 CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgaXQgd2hlbiBFREIg UFBBUyBhbmQgdHJpZ2dlciBmdW5jdGlvbiBpcworICAgICAgICAgICAgLy8g c2V0IHRvIElubGluZSBFREItU1BMCisgICAgICAgICAgICB2YXIgdGZ1bmN0 aW9uID0gbS5nZXQoJ3RmdW5jdGlvbicpLAorICAgICAgICAgICAgICAgIHNl cnZlcl90eXBlID0gbS5ub2RlX2luZm9bJ3NlcnZlciddWydzZXJ2ZXJfdHlw ZSddOworICAgICAgICAgICAgaWYoIW0uaW5TY2hlbWFXaXRoTW9kZWxDaGVj ay5hcHBseSh0aGlzLCBbbV0pKSB7CisgICAgICAgICAgICAgICAgaWYoc2Vy dmVyX3R5cGUgPT09ICdwcGFzJyAmJgorICAgICAgICAgICAgICAgICAgICAh Xy5pc1VuZGVmaW5lZCh0ZnVuY3Rpb24pICYmCisgICAgICAgICAgICAgICAg dGZ1bmN0aW9uID09PSAnSW5saW5lIEVEQi1TUEwnKSB7CisgICAgICAgICAg ICAgICAgICAgIC8vIERpc2JhbGUgYW5kIGNsZWFyIGl0cyB2YWx1ZQorICAg ICAgICAgICAgICAgICAgICBtLnNldCgndGdhcmdzJywgdW5kZWZpbmVkKQor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgICAvLyBEaXNiYWxlIGl0CisgICAgICAgICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQor ICAgICAgICB9LHsKKyAgICAgICAgaWQ6ICdmaXJlcycsIGxhYmVsOid7eyBf KCdGaXJlcycpIH19JywgZGVwczogWydpc19jb25zdHJhaW50X3RyaWdnZXIn XSwKKyAgICAgICAgbW9kZTogWydjcmVhdGUnLCdlZGl0JywgJ3Byb3BlcnRp ZXMnXSwgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAg ICBvcHRpb25zOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICB2YXIgdGFi bGVfb3B0aW9ucyA9IFsKKyAgICAgICAgICAgICAgICB7bGFiZWw6ICJCRUZP UkUiLCB2YWx1ZTogIkJFRk9SRSJ9LAorICAgICAgICAgICAgICAgIHtsYWJl bDogIkFGVEVSIiwgdmFsdWU6ICJBRlRFUiJ9XSwKKyAgICAgICAgICAgICAg ICB2aWV3X29wdGlvbnMgPSBbCisgICAgICAgICAgICAgICAge2xhYmVsOiAi QkVGT1JFIiwgdmFsdWU6ICJCRUZPUkUifSwKKyAgICAgICAgICAgICAgICB7 bGFiZWw6ICJBRlRFUiIsIHZhbHVlOiAiQUZURVIifSwKKyAgICAgICAgICAg ICAgICB7bGFiZWw6ICJJTlNURUFEIE9GIiwgdmFsdWU6ICJJTlNURUFEIE9G In1dOworICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHVuZGVyIHRhYmxlIHRo ZW4gc2hvdyB0YWJsZSBzcGVjaWZpYyBvcHRpb25zCisgICAgICAgICAgICBp ZihfLmluZGV4T2YoT2JqZWN0LmtleXModGhpcy5tb2RlbC5ub2RlX2luZm8p LCAndGFibGUnKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0 YWJsZV9vcHRpb25zOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICByZXR1cm4gdmlld19vcHRpb25zOworICAgICAgICAgICAgfQor ICAgICAgICB9LAorICAgICAgICAvLyBJZiBjcmVhdGUgbW9kZSB0aGVuIGJ5 IGRlZmF1bHQgb3BlbiBjb21wb3NpdGUgdHlwZQorICAgICAgICBjb250cm9s OiBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5leHRlbmQoeworICAgICAgICAg ICAgcmVuZGVyOiBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIC8vIElu aXRpYWxpemUgcGFyZW50J3MgcmVuZGVyIG1ldGhvZAorICAgICAgICAgICAg ICAgIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3RvdHlwZS5yZW5kZXIu YXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgICAgICAgICBpZih0 aGlzLm1vZGVsLmlzTmV3KCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMubW9kZWwuZ2V0KCdpc19jb25zdHJhaW50X3RyaWdnZXInKSAhPT0g dHJ1ZSApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5zZXQo eydmaXJlcyc6ICdCRUZPUkUnfSwge3NpbGVudDogdHJ1ZX0pOworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfSksCisgICAgICAgIHNlbGVjdDI6IHsg YWxsb3dDbGVhcjogZmFsc2UsIHdpZHRoOiAiMTAwJSIgfSwKKyAgICAgICAg ZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgLy8gSWYgY29udHJh aW50IHRyaWdnZXIgaXMgc2V0IHRvIFRydWUgdGhlbiBvbmx5IGVuYWJsZSBp dAorICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmlnZ2VyID0gbS5nZXQo J2lzX2NvbnN0cmFpbnRfdHJpZ2dlcicpOworICAgICAgICBpZighbS5pblNj aGVtYVdpdGhNb2RlbENoZWNrLmFwcGx5KHRoaXMsIFttXSkpIHsKKyAgICAg ICAgICAgIGlmKCFfLmlzVW5kZWZpbmVkKGlzX2NvbnN0cmFpbnRfdHJpZ2dl cikgJiYKKyAgICAgICAgICAgIGlzX2NvbnN0cmFpbnRfdHJpZ2dlciA9PT0g dHJ1ZSkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o KSB7IG0uc2V0KCdmaXJlcycsICdBRlRFUicsIHtzaWxlbnQ6IHRydWV9KSB9 LCAxMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg IC8vIERpc2JhbGUgaXQKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICB9CisgICAgICAgfQorICAgICAgfSx7CisgICAgICAgIHR5cGU6ICdu ZXN0ZWQnLCBjb250cm9sOiAnZmllbGRzZXQnLCBtb2RlOiBbJ2NyZWF0ZScs J2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICBsYWJlbDogJ3t7IF8o J0V2ZW50cycpIH19JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0n LAorICAgICAgICBzY2hlbWE6W3sKKyAgICAgICAgICAgIGlkOiAnZXZudF9p bnNlcnQnLCBsYWJlbDone3sgXygnSU5TRVJUJykgfX0nLAorICAgICAgICAg ICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3JlYXRlJywnZWRpdCcsICdw cm9wZXJ0aWVzJ10sCisgICAgICAgICAgICBncm91cDogJ3t7IF8oJ0V2ZW50 cycpIH19JywKKyAgICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7 CisgICAgICAgICAgICAgICAgcmV0dXJuIG0uaW5TY2hlbWFXaXRoTW9kZWxD aGVjay5hcHBseSh0aGlzLCBbbV0pOworICAgICAgICAgICAgfQorICAgICAg ICB9LHsKKyAgICAgICAgICAgIGlkOiAnZXZudF91cGRhdGUnLCBsYWJlbDon e3sgXygnVVBEQVRFJykgfX0nLAorICAgICAgICAgICAgdHlwZTogJ3N3aXRj aCcsIG1vZGU6IFsnY3JlYXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisg ICAgICAgICAgICBncm91cDogJ3t7IF8oJ0V2ZW50cycpIH19JywKKyAgICAg ICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAg ICAgcmV0dXJuIG0uaW5TY2hlbWFXaXRoTW9kZWxDaGVjay5hcHBseSh0aGlz LCBbbV0pOworICAgICAgICAgICAgfQorICAgICAgICB9LHsKKyAgICAgICAg ICAgIGlkOiAnZXZudF9kZWxldGUnLCBsYWJlbDone3sgXygnREVMRVRFJykg fX0nLAorICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3Jl YXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgICBncm91 cDogJ3t7IF8oJ0V2ZW50cycpIH19JywKKyAgICAgICAgICAgIGRpc2FibGVk OiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG0uaW5T Y2hlbWFXaXRoTW9kZWxDaGVjay5hcHBseSh0aGlzLCBbbV0pOworICAgICAg ICAgICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnZXZudF90 dXJuY2F0ZScsIGxhYmVsOid7eyBfKCdUVVJOQ0FURScpIH19JywKKyAgICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogJ3t7IF8oJ0V2ZW50cycp IH19JywKKyAgICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7Cisg ICAgICAgICAgICB2YXIgaXNfY29uc3RyYWludF90cmlnZ2VyID0gbS5nZXQo J2lzX2NvbnN0cmFpbnRfdHJpZ2dlcicpLAorICAgICAgICAgICAgICAgIGlz X3Jvd190cmlnZ2VyID0gbS5nZXQoJ2lzX3Jvd190cmlnZ2VyJyksCisgICAg ICAgICAgICAgICAgc2VydmVyX3R5cGUgPSBtLm5vZGVfaW5mb1snc2VydmVy J11bJ3NlcnZlcl90eXBlJ107CisgICAgICAgICAgICBpZighbS5pblNjaGVt YVdpdGhNb2RlbENoZWNrLmFwcGx5KHRoaXMsIFttXSkpIHsKKyAgICAgICAg ICAgICAgICAvLyBXZSB3aWxsIGVuYWJhbGUgdHJ1bmNhdGUgb25seSBmb3Ig RURCIFBQQVMKKyAgICAgICAgICAgICAgICAvLyBhbmQgYm90aCB0cmlnZ2Vy cyByb3cgJiBjb25zdGFyaW50IGFyZSBzZXQgdG8gZmFsc2UKKyAgICAgICAg ICAgICAgICBpZihzZXJ2ZXJfdHlwZSA9PT0gJ3BwYXMnICYmCisgICAgICAg ICAgICAgICAgICAgICFfLmlzVW5kZWZpbmVkKGlzX2NvbnN0cmFpbnRfdHJp Z2dlcikgJiYKKyAgICAgICAgICAgICAgICAgICAgIV8uaXNVbmRlZmluZWQo aXNfcm93X3RyaWdnZXIpICYmCisgICAgICAgICAgICAgICAgaXNfY29uc3Ry YWludF90cmlnZ2VyID09PSBmYWxzZSAmJgorICAgICAgICAgICAgICAgICAg ICBpc19yb3dfdHJpZ2dlciA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg ICAgLy8gRGlzYmFsZSBpdAorICAgICAgICAgICAgICAgIHJldHVybiB0cnVl OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH1dCisgICAg ICAgIH0seworICAgICAgICAgICAgaWQ6ICd3aGVuY2xhdXNlJywgbGFiZWw6 J3t7IF8oJ1doZW4nKSB9fScsCisgICAgICAgICAgICB0eXBlOiAndGV4dCcs IGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9kZWxDaGVjaycsCisgICAgICAg ICAgICBtb2RlOiBbJ2NyZWF0ZScsICdlZGl0JywgJ3Byb3BlcnRpZXMnXSwK KyAgICAgICAgICAgIGNvbnRyb2w6ICdzcWwtZmllbGQnLCB2aXNpYmxlOiB0 cnVlLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScKKyAgICAgICAg fSx7CisgICAgICAgICAgICBpZDogJ2NvbHVtbnMnLCBsYWJlbDogJ3t7IF8o J0NvbHVtbnMnKSB9fScsCisgICAgICAgICAgICB0eXBlOiAnY29sbGVjdGlv bicsIGNvbnRyb2w6ICdtdWx0aS1zZWxlY3QtYWpheCcsCisgICAgICAgICAg ICBkZXBzOiBbJ2V2bnRfdXBkYXRlJ10sIG5vZGU6ICdjb2x1bW4nLCBncm91 cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAgICBtb2Rl bDogcGdCcm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgICAg ICAgICBrZXlzOiBbJ2NvbHVtbiddLCBkZWZhdWx0czogeyBjb2x1bW46IHVu ZGVmaW5lZCB9CisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIGRpc2Fi bGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAgICAgaWYodGhpcy5u b2RlX2luZm8gJiYgICdjYXRhbG9nJyBpbiB0aGlzLm5vZGVfaW5mbykgewor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgLy9EaXNiYWxlIGluIGVkaXQgbW9k ZQorICAgICAgICAgICAgICAgIGlmICghbS5pc05ldygpKSB7CisgICAgICAg ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAvLyBFbmFibGUgY29sdW1uIG9ubHkgaWYgdXBk YXRlIGV2ZW50IGlzIHNldCB0cnVlCisgICAgICAgICAgICAgICAgdmFyIGlz VXBkYXRlID0gbS5nZXQoJ2V2bnRfdXBkYXRlJyk7CisgICAgICAgICAgICAg ICAgaWYoIV8uaXNVbmRlZmluZWQoaXNVcGRhdGUpICYmIGlzVXBkYXRlKSB7 CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICB9CisgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICdjb2RlJywg bGFiZWw6J3t7IF8oJ0NvZGUnKSB9fScsIGdyb3VwOiAne3sgXygnQ29kZScp IH19JywKKyAgICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydjcmVh dGUnLCAnZWRpdCddLCBkZXBzOiBbJ3RmdW5jdGlvbiddLAorICAgICAgICAg ICAgY29udHJvbDogJ3NxbC1maWVsZCcsIHZpc2libGU6IHRydWUsCisgICAg ICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAg ICAgIC8vIFdlIHdpbGwgZW5hYmxlIGl0IG9ubHkgd2hlbiBFREIgUFBBUyBh bmQgdHJpZ2dlciBmdW5jdGlvbiBpcworICAgICAgICAgICAgICAgIC8vIHNl dCB0byBJbmxpbmUgRURCLVNQTAorICAgICAgICAgICAgICAgIHZhciB0ZnVu Y3Rpb24gPSBtLmdldCgndGZ1bmN0aW9uJyksCisgICAgICAgICAgICAgICAg ICAgIHNlcnZlcl90eXBlID0gbS5ub2RlX2luZm9bJ3NlcnZlciddWydzZXJ2 ZXJfdHlwZSddOworICAgICAgICAgICAgICAgIGlmKCFtLmluU2NoZW1hV2l0 aE1vZGVsQ2hlY2suYXBwbHkodGhpcywgW21dKSkgeworICAgICAgICAgICAg ICAgICAgICBpZihzZXJ2ZXJfdHlwZSA9PT0gJ3BwYXMnICYmCisgICAgICAg ICAgICAgICAgICAgICAgICAhXy5pc1VuZGVmaW5lZCh0ZnVuY3Rpb24pICYm CisgICAgICAgICAgICAgICAgICAgIHRmdW5jdGlvbiA9PT0gJ0lubGluZSBF REItU1BMJykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxzbyBjbGVhciBh bmQgZGlzYWJsZSBBcmd1bWVudCBmaWVsZAorICAgICAgICAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBEaXNiYWxlIGl0Cisg ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdpc19zeXNfdHJpZ2dlcicsIGxhYmVsOid7eyBfKCdTeXN0ZW0gdHJp Z2dlcj8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6 ICdzd2l0Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2sn LCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ2lzX2NvbnN0YXJpbnQnLCBsYWJlbDone3sgXygnQ29uc3RyYWlu dD8nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdz d2l0Y2gnLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snLCBt b2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9fScs IGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUn LCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwKKyAg ICAgICAgICBkaXNhYmxlZDogJ2luU2NoZW1hJworIAkJfV0sCisgICAgICAg IHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgZXJyID0g e30sCisgICAgICAgICAgICAgIGNoYW5nZWRBdHRycyA9IHRoaXMuY2hhbmdl ZCwKKyAgICAgICAgICAgICAgbXNnID0gdW5kZWZpbmVkOworICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOworCisgICAgICAgICAgaWYoXy5o YXMoY2hhbmdlZEF0dHJzLHRoaXMuZ2V0KCduYW1lJykpCisgICAgICAgICAg ICAgICAgICAgICYmIF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ25hbWUnKSkK KyAgICAgICAgICAgICAgfHwgU3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJl cGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAg IG1zZyA9ICd7eyBfKCdOYW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOwor ICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7 CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgICAgfQorICAg ICAgICAgIGlmKF8uaGFzKGNoYW5nZWRBdHRycyx0aGlzLmdldCgndGZ1bmN0 aW9uJykpCisgICAgICAgICAgICAgICAgICAgICYmIF8uaXNVbmRlZmluZWQo dGhpcy5nZXQoJ3RmdW5jdGlvbicpKQorICAgICAgICAgICAgICB8fCBTdHJp bmcodGhpcy5nZXQoJ3RmdW5jdGlvbicpKS5yZXBsYWNlKC9eXHMrfFxzKyQv ZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBtc2cgPSAne3sgXygnVHJp Z2dlciBmdW5jdGlvbiBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3RmdW5jdGlvbicsIG1zZyk7 CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgICAgfQorICAg ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0sCisgICAgICAgIC8v IFdlIHdpbGwgY2hlY2sgaWYgd2UgYXJlIHVuZGVyIHNjaGVtYSBub2RlICYg aW4gJ2NyZWF0ZScgbW9kZQorICAgICAgICBpblNjaGVtYTogZnVuY3Rpb24o KSB7CisgICAgICAgICAgaWYodGhpcy5ub2RlX2luZm8gJiYgICdjYXRhbG9n JyBpbiB0aGlzLm5vZGVfaW5mbykgeworICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgfSwKKyAgICAgICAgLy8gV2Ugd2lsbCBjaGVjayBpZiB3ZSBhcmUg dW5kZXIgc2NoZW1hIG5vZGUgJiBpbiAnY3JlYXRlJyBtb2RlCisgICAgICAg IGluU2NoZW1hV2l0aE1vZGVsQ2hlY2s6IGZ1bmN0aW9uKG0pIHsKKyAgICAg ICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAgJ3NjaGVtYScgaW4gdGhpcy5u b2RlX2luZm8pIHsKKyAgICAgICAgICAgIC8vIFdlIHdpbGwgZGlzYWJsZSBj b250cm9sIGlmIGl0J3MgaW4gJ2VkaXQnIG1vZGUKKyAgICAgICAgICAgIGlm IChtLmlzTmV3KCkpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICB9LAorICAgICAgICAvLyBDaGVja3Mgd2Vh dGhlciB0byBlbmFibGUvZGlzYWJsZSBjb250cm9sCisgICAgICAgIGluU2No ZW1hV2l0aENvbHVtbkNoZWNrOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAg aWYodGhpcy5ub2RlX2luZm8gJiYgICdzY2hlbWEnIGluIHRoaXMubm9kZV9p bmZvKSB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgY29udHJv bCBpZiBpdCdzIHN5c3RlbSBjb2x1bW5zCisgICAgICAgICAgICAvLyBpZTog aXQncyBwb3NpdGlvbiBpcyBsZXNzIHRoZW4gMQorICAgICAgICAgICAgaWYg KG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAvLyBpZiB3ZSBh cmUgaW4gZWRpdCBtb2RlCisgICAgICAgICAgICAgIGlmICghXy5pc1VuZGVm aW5lZChtLmdldCgnYXR0bnVtJykpICYmIG0uZ2V0KCdhdHRudW0nKSA+PSAx ICkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgICAgfQor ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICB9KSwK KyAgICAgIC8vIEJlbG93IGZ1bmN0aW9uIHdpbGwgZW5hYmxlIHJpZ2h0IGNs aWNrIG1lbnUgZm9yIGNyZWF0aW5nIGNvbHVtbgorICAgICAgY2FuQ3JlYXRl OiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAgICAgICAg IC8vIElmIGNoZWNrIGlzIGZhbHNlIHRoZW4gLCB3ZSB3aWxsIGFsbG93IGNy ZWF0ZSBtZW51CisgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5jaGVjayA9 PSBmYWxzZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg ICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwgaSA9IGl0ZW0sIGQgPSBpdGVt RGF0YSwgcGFyZW50cyA9IFtdOworICAgICAgICAgIC8vIFRvIGl0ZXJhdGUg b3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAgICAgd2hp bGUgKGkpIHsKKyAgICAgICAgICAgIC8vIElmIGl0IGlzIHNjaGVtYSB0aGVu IGFsbG93IHVzZXIgdG8gYyByZWF0ZSB0YWJsZQorICAgICAgICAgICAgaWYg KF8uaW5kZXhPZihbJ3NjaGVtYSddLCBkLl90eXBlKSA+IC0xKQorICAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHBhcmVudHMucHVz aChkLl90eXBlKTsKKyAgICAgICAgICAgIGkgPSB0Lmhhc1BhcmVudChpKSA/ IHQucGFyZW50KGkpIDogbnVsbDsKKyAgICAgICAgICAgIGQgPSBpID8gdC5p dGVtRGF0YShpKSA6IG51bGw7CisgICAgICAgICAgfQorICAgICAgICAgIC8v IElmIG5vZGUgaXMgdW5kZXIgY2F0YWxvZyB0aGVuIGRvIG5vdCBhbGxvdyAn Y3JlYXRlJyBtZW51CisgICAgICAgICAgaWYgKF8uaW5kZXhPZihwYXJlbnRz LCAnY2F0YWxvZycpID4gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgfQorICAgICAgfSwKKyAgICAgIC8vIENoZWNrIHRv IHdoZXRoZXIgdHJpZ2dlciBpcyBkaXNhYmxlID8KKyAgICAgIGNhbkNyZWF0 ZV93aXRoX3RyaWdnZXJfZW5hYmxlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRl bSwgZGF0YSkgeworICAgICAgICBpZih0aGlzLmNhbkNyZWF0ZS5hcHBseSh0 aGlzLCBbaXRlbURhdGEsIGl0ZW0sIGRhdGFdKSkgeworICAgICAgICAgIC8v IFdlIGFyZSBoZXJlIG1lYW5zIHdlIGNhbiBjcmVhdGUgbWVudSwgbm93IGxl dCdzIGNoZWNrIGNvbmRpdGlvbgorICAgICAgICAgIGlmKGl0ZW1EYXRhLmlj b24gPT09ICdpY29uLXRyaWdnZXItYmFkJykgeworICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0s CisgICAgICAvLyBDaGVjayB0byB3aGV0aGVyIHRyaWdnZXIgaXMgZW5hYmxl ID8KKyAgICAgIGNhbkNyZWF0ZV93aXRoX3RyaWdnZXJfZGlzYWJsZTogZnVu Y3Rpb24oaXRlbURhdGEsIGl0ZW0sIGRhdGEpIHsKKyAgICAgICAgaWYodGhp cy5jYW5DcmVhdGUuYXBwbHkodGhpcywgW2l0ZW1EYXRhLCBpdGVtLCBkYXRh XSkpIHsKKyAgICAgICAgICAvLyBXZSBhcmUgaGVyZSBtZWFucyB3ZSBjYW4g Y3JlYXRlIG1lbnUsIG5vdyBsZXQncyBjaGVjayBjb25kaXRpb24KKyAgICAg ICAgICBpZihpdGVtRGF0YS5pY29uID09PSAnaWNvbi10cmlnZ2VyJykgewor ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAg ICAgIH0KKyAgICAgIH0KKyAgfSk7CisgfQorCisgIHJldHVybiBwZ0Jyb3dz ZXIuTm9kZXNbJ3RyaWdnZXInXTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3Nx bC85LjFfcGx1cy9hbHRlci5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2FsdGVy LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2Yz MjNlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9hbHRl ci5zcWwKQEAgLTAsMCArMSw5IEBACit7IyMgQWx0ZXIgaW5kZXggdG8gdXNl IGNsdXN0ZXIgdHlwZSAjI30KK3slIGlmIGRhdGEuaW5kaXNjbHVzdGVyZWQg JX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLnRhYmxlKX19CisgICAgQ0xVU1RFUiBPTiB7e2Nvbm58cXRJZGVudChk YXRhLm5hbWUpfX07Cit7JSBlbmRpZiAlfQoreyMjIENoYW5nZXMgZGVzY3Jp cHRpb24gIyN9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5U IE9OIElOREVYIHt7Y29ubnxxdElkZW50KGRhdGEubmFtZSl9fQorICAgIElT IHt7ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWx9fTt7JSBlbmRpZiAlfQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9z cWwvOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4x X3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5iYjVlOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmln Z2VyL3NxbC85LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsCkBAIC0wLDAg KzEsOSBAQAoreyM9PT09PT09PT09PT09Q2hlY2tzIGlmIGl0IGlzIG1hdGVy aWFsaXplZCB2aWV3PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitTRUxFQ1QK KyAgICBDQVNFIFdIRU4gYy5yZWxraW5kID0gJ20nIFRIRU4gRmFsc2UgRUxT RSBUcnVlIEVORCBBcyBtX3ZpZXcKK0ZST00KKyAgICBwZ19jbGFzcyBjCitX SEVSRQorICAgIGMub2lkID0ge3sgdmlkIH19OjpvaWQKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMv dGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdn ZXIvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNDc3ZmZhZAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJp Z2dlci9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDI3IEBA Cit7IyMjIFNldCBhIGZsYWcgd2hpY2ggYWxsb3dzIHVzIHRvIHB1dCBPUiBi ZXR3ZWVuIGV2ZW50cyAjIyN9Cit7JSBzZXQgb3JfZmxhZyA9IEZhbHNlICV9 CitDUkVBVEV7JSBpZiBkYXRhLmlzX2NvbnN0cmFpbnRfdHJpZ2dlciAlfSBD T05TVFJBSU5UeyUgZW5kaWYgJX0gVFJJR0dFUiB7eyBjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKSB9fQorICAgIHt7ZGF0YS5maXJlc319IHslIGlmIGRhdGEu ZXZudF9pbnNlcnQgJX1JTlNFUlR7JSBzZXQgb3JfZmxhZyA9IFRydWUgJX0K K3slIGVuZGlmICV9eyUgaWYgZGF0YS5ldm50X2RlbGV0ZSAlfQoreyUgaWYg b3JfZmxhZyAlfSBPUiB7JSBlbmRpZiAlfURFTEVURXslIHNldCBvcl9mbGFn ID0gVHJ1ZSAlfQoreyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfdHVybmNh dGUgJX0KK3slIGlmIG9yX2ZsYWcgJX0gT1IgeyUgZW5kaWYgJX1UUlVOQ0FU RXslIHNldCBvcl9mbGFnID0gVHJ1ZSAlfQoreyUgZW5kaWYgJX17JSBpZiBk YXRhLmV2bnRfdXBkYXRlICV9Cit7JSBpZiBvcl9mbGFnICV9IE9SIHslIGVu ZGlmICV9VVBEQVRFIHslIGlmIGRhdGEuY29sdW1uc3xsZW5ndGggPiAwICV9 T0YgeyUgZm9yIGMgaW4gZGF0YS5jb2x1bW5zICV9eyUgaWYgbG9vcC5pbmRl eCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7IGNvbm58cXRJZGVudChjLmNvbHVt bikgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KKwor ICAgIE9OIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJs ZSkgfX0KK3slIGlmIGRhdGEudGdkZWZlcnJhYmxlICV9CisgICAgREVGRVJS QUJMRXslIGlmIGRhdGEudGdpbml0ZGVmZXJyZWQgJX0gSU5JVElBTExZIERF RkVSUkVEeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CisgICAgRk9SIEVBQ0h7 JSBpZiBkYXRhLmlzX3Jvd190cmlnZ2VyICV9IFJPV3slIGVsc2UgJX0gU1RB VEVNRU5UeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEud2hlbmNsYXVzZSAlfQor CisgICAgV0hFTiB7eyBkYXRhLndoZW5jbGF1c2UgfX17JSBlbmRpZiAlfQor CisgICAgeyUgaWYgZGF0YS5jb2RlICV9e3sgZGF0YS5jb2RlIH19eyUgZWxz ZSAlfUVYRUNVVEUgUFJPQ0VEVVJFIHt7IGRhdGEudGZ1bmN0aW9uIH19KHsl IGlmIGRhdGEudGdhcmdzICV9e3sgZGF0YS50Z2FyZ3MgfX17JSBlbmRpZiV9 KXslIGVuZGlmJX07CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KK0NP TU1FTlQgT04gVFJJR0dFUiB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9 fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUp IH19CisgICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbH19Owor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvZGVs ZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1w bGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzZlODJiCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rl bXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9kZWxldGUuc3FsCkBAIC0w LDAgKzEgQEAKK0RST1AgVFJJR0dFUiB7e2Nvbm58cXRJZGVudChkYXRhLm5h bWUpfX0gT04ge3tjb25ufHF0SWRlbnQoZGF0YS5uc3BuYW1lLCBkYXRhLnJl bG5hbWUgKX19eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC85LjFfcGx1cy9lbmFibGVfZGlzYWJsZV90cmlnZ2VyLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dl ci9zcWwvOS4xX3BsdXMvZW5hYmxlX2Rpc2FibGVfdHJpZ2dlci5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjcwMDkyNwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vy cy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvZW5hYmxlX2Rpc2Fi bGVfdHJpZ2dlci5zcWwKQEAgLTAsMCArMSwyIEBACitBTFRFUiBUQUJMRSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpIH19Cisg ICAgeyUgaWYgZGF0YS5pc19lbmFibGVfdHJpZ2dlciA9PSBUcnVlICV9RU5B QkxFeyUgZWxzZSAlfURJU0FCTEV7JSBlbmRpZiAlfSBUUklHR0VSIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OwpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvZ2V0X2Nv bHVtbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rl bXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfY29sdW1ucy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0YzY4Ygot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmln Z2Vycy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvZ2V0X2NvbHVt bnMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUIGF0dC5hdHRuYW1lIGFz IG5hbWUKK0ZST00gcGdfYXR0cmlidXRlIGF0dAorICAgIFdIRVJFIGF0dC5h dHRyZWxpZCA9IHt7dGlkfX06Om9pZAorICAgIEFORCBhdHQuYXR0bnVtIElO ICh7eyBjbGlzdCB9fSkKKyAgICBBTkQgYXR0LmF0dGlzZHJvcHBlZCBJUyBG QUxTRQorICAgIE9SREVSIEJZIGF0dC5hdHRudW0KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL2dl dF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rl bXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjMwMjU3Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJz L3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbApA QCAtMCwwICsxLDUgQEAKK1NFTEVDVCB0Lm9pZAorRlJPTSBwZ190cmlnZ2Vy IHQKKyAgICBXSEVSRSBOT1QgdGdpc2ludGVybmFsCisgICAgQU5EIHRncmVs aWQgPSB7e3RpZH19OjpPSUQKKyAgICBBTkQgdGduYW1lID0ge3tkYXRhLm5h bWV8cXRMaXRlcmFsfX07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rl bXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9nZXRfcGFyZW50LnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJp Z2dlci9zcWwvOS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkNWQzYwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0 ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvZ2V0X3BhcmVudC5zcWwKQEAgLTAs MCArMSw1IEBACitTRUxFQ1QgbnNwLm5zcG5hbWUgQVMgc2NoZW1hICxyZWwu cmVsbmFtZSBBUyB0YWJsZQorRlJPTSBwZ19jbGFzcyByZWwKKyAgICBKT0lO IHBnX25hbWVzcGFjZSBuc3AKKyAgICBPTiByZWwucmVsbmFtZXNwYWNlID0g bnNwLm9pZDo6aW50CisgICAgV0hFUkUgcmVsLm9pZCA9IHt7dGlkfX06Omlu dApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZW1wbGF0ZXMvdHJpZ2dl ci9zcWwvOS4xX3BsdXMvZ2V0X3RyaWdnZXJmdW5jdGlvbnMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC85LjFfcGx1cy9nZXRfdHJpZ2dlcmZ1bmN0aW9ucy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjEzNGUwZQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90 ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvZ2V0X3RyaWdnZXJmdW5j dGlvbnMuc3FsCkBAIC0wLDAgKzEsMTEgQEAKK1NFTEVDVCBxdW90ZV9pZGVu dChuc3BuYW1lKSB8fCAnLicgfHwgcXVvdGVfaWRlbnQocHJvbmFtZSkgQVMg dGZ1bmN0aW9ucworRlJPTSBwZ19wcm9jIHAsIHBnX25hbWVzcGFjZSBuLCBw Z19sYW5ndWFnZSBsCisgICAgV0hFUkUgcC5wcm9uYW1lc3BhY2UgPSBuLm9p ZAorICAgIEFORCBwLnByb2xhbmcgPSBsLm9pZAorICAgIC0tIFBHT0lEX1RZ UEVfVFJJR0dFUiA9IDIyNzkKKyAgICBBTkQgbC5sYW5uYW1lICE9ICdlZGJz cGwnIEFORCBwcm9yZXR0eXBlID0gMjI3OQorICAgIC0tIElmIFNob3cgU3lz dGVtT2JqZWN0cyBpcyBub3QgdHJ1ZQorICAgIHslIGlmIG5vdCBzaG93X3N5 c3RlbV9vYmplY3RzICV9CisgICAgQU5EIChuc3BuYW1lIE5PVCBMSUtFIEUn cGdcXyUnIEFORCBuc3BuYW1lIE5PVCBpbiAoJ2luZm9ybWF0aW9uX3NjaGVt YScpKQorICAgIHslIGVuZGlmICV9CisgICAgT1JERVIgQlkgbnNwbmFtZSBB U0MsIHByb25hbWUgQVNDCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdHJpZ2dlcnMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVz L25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90 ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NWFkYTMKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMv dGVtcGxhdGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAt MCwwICsxLDUgQEAKK1NFTEVDVCB0Lm9pZCwgdC50Z25hbWUgYXMgbmFtZSwg KENBU0UgV0hFTiB0Z2VuYWJsZWQgPSAnTycgVEhFTiB0cnVlIEVsU0UgZmFs c2UgRU5EKSBBUyBpc19lbmFibGVfdHJpZ2dlcgorRlJPTSBwZ190cmlnZ2Vy IHQKKyAgICBXSEVSRSBOT1QgdGdpc2ludGVybmFsCisgICAgQU5EIHRncmVs aWQgPSB7e3RpZH19OjpPSUQKKyAgICBPUkRFUiBCWSB0Z25hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxh dGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi41MzU2MjdiCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRlcy90 cmlnZ2VyL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsx LDIzIEBACitTRUxFQ1QgdC5vaWQsdC50Z25hbWUgQVMgbmFtZSwgdC54bWlu LCB0LiosIHJlbG5hbWUsIENBU0UgV0hFTiByZWxraW5kID0gJ3InIFRIRU4g VFJVRSBFTFNFIEZBTFNFIEVORCBBUyBwYXJlbnRpc3RhYmxlLAorICAgIG5z cG5hbWUsIGRlcy5kZXNjcmlwdGlvbiwgbC5sYW5uYW1lLCBwLnByb3NyYywg cC5wcm9uYW1lIEFTIHRmdW5jdGlvbiwKKyAgICBDT0FMRVNDRShzdWJzdHJp bmcocGdfZ2V0X3RyaWdnZXJkZWYodC5vaWQpLCAnV0hFTiAoLiopIEVYRUNV VEUgUFJPQ0VEVVJFJyksCisgICAgc3Vic3RyaW5nKHBnX2dldF90cmlnZ2Vy ZGVmKHQub2lkKSwgJ1dIRU4gKC4qKSAgXFwkdHJpZ2dlcicpKSBBUyB3aGVu Y2xhdXNlLAorICAgIC0tIFdlIG5lZWQgdG8gY29udmVydCB0Z2FyZ3MgY29s dW1uIGJ5dGVhIGRhdGF0eXBlIHRvIGFycmF5IGRhdGF0eXBlCisgICAgKHN0 cmluZ190b19hcnJheShlbmNvZGUodGdhcmdzLCAnZXNjYXBlJyksICdcMDAw Jyk6OnRleHRbXSlbMTp0Z25hcmdzXSBBUyB0Z2FyZ3MsCit7JSBpZiBkYXRs YXN0c3lzb2lkICV9CisgICAgKENBU0UgV0hFTiB0Lm9pZCA8PSB7eyBkYXRs YXN0c3lzb2lkfX06Om9pZCBUSEVOIHRydWUgRWxTRSBmYWxzZSBFTkQpIEFT IGlzX3N5c190cmlnZ2VyLAoreyUgZW5kaWYgJX0KKyAgICAoQ0FTRSBXSEVO IHRnY29uc3RyYWludCAhPSAwOjpPSUQgVEhFTiB0cnVlIEVsU0UgZmFsc2Ug RU5EKSBBUyBpc19jb25zdGFyaW50LAorICAgIChDQVNFIFdIRU4gdGdlbmFi bGVkID0gJ08nIFRIRU4gdHJ1ZSBFbFNFIGZhbHNlIEVORCkgQVMgaXNfZW5h YmxlX3RyaWdnZXIKK0ZST00gcGdfdHJpZ2dlciB0CisgICAgSk9JTiBwZ19j bGFzcyBjbCBPTiBjbC5vaWQ9dGdyZWxpZAorICAgIEpPSU4gcGdfbmFtZXNw YWNlIG5hIE9OIG5hLm9pZD1yZWxuYW1lc3BhY2UKKyAgICBMRUZUIE9VVEVS IEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXQub2lk IEFORCBkZXMuY2xhc3NvaWQ9J3BnX3RyaWdnZXInOjpyZWdjbGFzcykKKyAg ICBMRUZUIE9VVEVSIEpPSU4gcGdfcHJvYyBwIE9OIHAub2lkPXQudGdmb2lk CisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2xhbmd1YWdlIGwgT04gbC5vaWQ9 cC5wcm9sYW5nCitXSEVSRSBOT1QgdGdpc2ludGVybmFsCisgICAgQU5EIHRn cmVsaWQgPSB7e3RpZH19OjpPSUQKK3slIGlmIHRyaWQgJX0KKyAgICBBTkQg dC5vaWQgPSB7e3RyaWR9fTo6T0lECit7JSBlbmRpZiAlfQorT1JERVIgQlkg dGduYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Ry aWdnZXJzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy91cGRhdGUu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3RlbXBsYXRl cy90cmlnZ2VyL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNTk0YzIKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVtcGxh dGVzL3RyaWdnZXIvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCAr MSw4IEBACit7JSBpZiBkYXRhLm5hbWUgYW5kIG9fZGF0YS5uYW1lICE9IGRh dGEubmFtZSAlfQorQUxURVIgVFJJR0dFUiB7eyBjb25ufHF0SWRlbnQob19k YXRhLm5hbWUpIH19IE9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubnNwbmFt ZSwgb19kYXRhLnJlbG5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRh dGEuZGVzY3JpcHRpb24gYW5kIG9fZGF0YS5kZXNjcmlwdGlvbiAhPSBkYXRh LmRlc2NyaXB0aW9uICV9CitDT01NRU5UIE9OIFRSSUdHRVIge3sgY29ubnxx dElkZW50KGRhdGEubmFtZSkgfX0gT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5uc3BuYW1lLCBvX2RhdGEucmVsbmFtZSkgfX0KKyAgICBJUyB7e2RhdGEu ZGVzY3JpcHRpb258cXRMaXRlcmFsfX07Cit7JSBlbmRpZiAlfQo= --001a1142052c7b71ba052eb93699 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1142052c7b71ba052eb93699--